diff --git a/.gitattributes b/.gitattributes index 93a2f633834..60c21eb48c0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,6 @@ *.po merge=pofile *.pot merge=pofile + +# Don't export git artifacts into tarball archives +.gitignore export-ignore +.gitattributes export-ignore diff --git a/.gitignore b/.gitignore index 1b3c8abeadc..f3593f2820c 100644 --- a/.gitignore +++ b/.gitignore @@ -11,11 +11,8 @@ build-stamp *.mod.c *.cmd .tmp* -# Ignore generated html files, -/docs/src/*/*.html # Except Gcode quick-ref cards (en,de,sp,fr) which are maintained by hand -!docs/html/gcode*.html -# Ignore all LyX files, we're done with them now. +# Ignore all LyX files, we're done with them now. *.lyx debian/*.debhelper.log rtlib/Module.symvers @@ -23,12 +20,50 @@ share/*/*.desktop share/menus/CNC.menu share/desktop-directories/cnc.directory src/modules.order -docs/html/drivers /configs/*/emc.nml !/configs/common/emc.nml -/docs/src/source-highlight/local +/man/man1/linuxcnc.1 lib/python/gremlin.py lib/python/touchy +tests/*/skip +tests/*/*/skip +tests/*/*/*/skip +/rtlib/ +/libexec/ +/etc/ +tests/rtapi.0/rtapi_test +tests/bitops.0/bitops +# +# emacs droppings +*~ +\#*\# +.\#* +core.* configs/sim/gmoccapy/*.pref configs/sim/gmoccapy/gmoccapy_plasma/*.pref - +# Miscellaneous generated files (Rob) +cscope +cscope.* +*.kdev* +oprofile* +*.log +position.txt +*.9comp +**/DOTGIT +src/machinetalk/generated/* +lib/python/*_pb2.py +lib/python/pb2json.py +lib/python/google/ +lib/python/nanopb_generator.py +lib/python/protoc-gen-nanopb +lib/python/machinekit/__init__.py +lib/python/machinekit/config.py +tests/*/*/*/NUM_PINS_FOUND +src/machinekitcfg.py-tmp +scripts/machinekit.ini.tmpl +src/objects/* +debian/linuxcnc-*.files +src/hal/cython/machinekit/*.c +# mk-build-deps artifact +/machinekit-build-deps_*.deb +.directory diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000000..df9810af03f --- /dev/null +++ b/.travis.yml @@ -0,0 +1,57 @@ +sudo: required + +notifications: + email: + on_success: never + on_failure: always + webhooks: + urls: + - $GITTER_IM_URL + on_success: change + on_failure: always + on_start: never + +language: bash + +services: + - docker + +before_install: + - gem install package_cloud + - .travis/get_sftp_key.sh + +env: + global: + - ROOT=/opt/rootfs + - JOBS=2 + - SFTP_DEPLOY_PORT="${SFTP_DEPLOY_PORT:-22}" + - SFTP_DEPLOY_USER="${SFTP_DEPLOY_USER:-travis}" + - SFTP_DEPLOY_ADDR="${SFTP_DEPLOY_ADDR:-empty}" + - CCACHE_REPO="${CCACHE_REPO:-kinsamanka/mk-ccache}" + matrix: + - TAG=wheezy-64 CMD=run_tests + - TAG=jessie-64 CMD=run_tests + - TAG=wheezy-64 CMD=build_deb + - TAG=wheezy-32 CMD=build_deb + - TAG=wheezy-armhf CMD=build_deb FLAV=posix + - TAG=wheezy-armhf CMD=build_deb FLAV=xenomai + - TAG=wheezy-armhf CMD=build_deb FLAV=rt_preempt + - TAG=jessie-64 CMD=build_deb + - TAG=jessie-32 CMD=build_deb + - TAG=jessie-armhf CMD=build_deb FLAV=posix + - TAG=jessie-armhf CMD=build_deb FLAV=xenomai + - TAG=jessie-armhf CMD=build_deb FLAV=rt_preempt + +before_script: + - .travis/get_ccache.sh + +script: + - .travis/docker_run.sh + +after_success: + - .travis/save_ccache.sh + - .travis/send_binaries.sh + - .travis/upload_packagecloud.sh + +after_script: + - .travis/send_status.sh diff --git a/.travis/build_deb.sh b/.travis/build_deb.sh new file mode 100755 index 00000000000..ffced29dfa2 --- /dev/null +++ b/.travis/build_deb.sh @@ -0,0 +1,110 @@ +#!/bin/bash -ex + +# this script is run inside a docker container +cd ${ROOTFS}${MACHINEKIT_PATH} + +# Verbose build +if ${MK_PACKAGE_VERBOSE}; then + DEBUILD_OPTS+=" -eDH_VERBOSE=1" +fi + +# enable ccache +DEBUILD_OPTS+=" -eCCACHE_DIR=/ccache --prepend-path=/usr/lib/ccache" + +# Supplied variables for package configuration +MAJOR_MINOR_VERSION="${MAJOR_MINOR_VERSION:-0.1}" +PKGSOURCE="${PKGSOURCE:-travis.${TRAVIS_REPO_SLUG/\//.}}" +DEBIAN_SUITE="${DEBIAN_SUITE:-experimental}" +REPO_URL="${REPO_URL:-https://github.com/machinekit/machinekit}" + +# Compute version +if ${IS_PR}; then + # Use build timestamp (now) as pkg version patchlevel + TIMESTAMP="$(date +%s)" + PR_OR_BRANCH="pr${TRAVIS_PULL_REQUEST}" + COMMIT_URL="${REPO_URL}/pull/${TRAVIS_PULL_REQUEST}" +else + # Use merge commit timestamp as pkg version patchlevel + TIMESTAMP="$COMMIT_TIMESTAMP" + PR_OR_BRANCH="${TRAVIS_BRANCH}" + COMMIT_URL="${REPO_URL}/commit/${TRAVIS_COMMIT:0:8}" +fi + +# sanitize upstream version +UPSTREAM=${PKGSOURCE}.${PR_OR_BRANCH} +# remove dash +UPSTREAM=${UPSTREAM//-/} +# remove underscore +UPSTREAM=${UPSTREAM//_/} + +VERSION="${MAJOR_MINOR_VERSION}.${TIMESTAMP}" + +# Compute release +SHA1SHORT="${TRAVIS_COMMIT:0:8}" +RELEASE="1${UPSTREAM}.git${SHA1SHORT}~1${DISTRO}" + +# Generate debian/changelog entry +# +# https://www.debian.org/doc/debian-policy/ch-source.html#s-dpkgchangelog +mv debian/changelog debian/changelog.old +cat > debian/changelog < $(date -R) + +EOF +cat debian/changelog # debug output +cat debian/changelog.old >> debian/changelog + +# build unsigned packages and sources on amd64 +DEBUILD_OPTS+=" -eDEB_BUILD_OPTIONS=parallel=${JOBS} -us -uc -j${JOBS}" +if test ${MARCH} = 64; then + # create upstream tarball only on amd64 + ( + cd ${ROOTFS}${MACHINEKIT_PATH} + git archive HEAD | bzip2 -z > \ + ../machinekit_${VERSION}.orig.tar.bz2 + ) +else + # the rest will be binaries only + DEBUILD_OPTS+=" -b" +fi + +case "${FLAV}" in + "posix") FLAV_OPTS="-p" + ;; + "rt_preempt") FLAV_OPTS="-r" + ;; + "xenomai") FLAV_OPTS="-x" + ;; + *) FLAV_OPTS="-prx" + ;; +esac +export FLAV_OPTS + +# build debs +export DEBUILD_OPTS +proot-helper /bin/sh -exc 'cd ${MACHINEKIT_PATH}; \ + ./debian/configure ${FLAV_OPTS} ; \ + debuild ${DEBUILD_OPTS}' + +# copy results +mkdir ${ROOTFS}/${MACHINEKIT_PATH}/deploy +chmod 0777 ${ROOTFS}/${MACHINEKIT_PATH}/deploy +cd ${ROOTFS}/${MACHINEKIT_PATH}/../ +cp *deb *changes ${ROOTFS}/${MACHINEKIT_PATH}/deploy + +# copy source +if test ${MARCH} = 64; then + cp *bz2 *dsc ${ROOTFS}/${MACHINEKIT_PATH}/deploy +fi + +chmod 0666 ${ROOTFS}/${MACHINEKIT_PATH}/deploy/* + +# display ccache stats +CCACHE_DIR=/ccache proot-helper ccache -s +# reset ccache stats +CCACHE_DIR=/ccache proot-helper ccache -z > /dev/null diff --git a/.travis/build_rip.sh b/.travis/build_rip.sh new file mode 100755 index 00000000000..2558dceaebc --- /dev/null +++ b/.travis/build_rip.sh @@ -0,0 +1,15 @@ +#!/bin/sh -ex + +# this script is run inside a docker container + +# rip build +proot-helper ${TRAVIS_PATH}/build_rip_helper.sh + +# tar the chroot directory +tar czf /tmp/rootfs.tgz -C ${ROOTFS} . +cp /tmp/rootfs.tgz ${ROOTFS}${TRAVIS_PATH}/mk_runtests + +# display ccache stats +CCACHE_DIR=/ccache proot-helper ccache -s +# reset ccache stats +CCACHE_DIR=/ccache proot-helper ccache -z > /dev/null diff --git a/.travis/build_rip_helper.sh b/.travis/build_rip_helper.sh new file mode 100755 index 00000000000..b10701f7d3e --- /dev/null +++ b/.travis/build_rip_helper.sh @@ -0,0 +1,23 @@ +#!/bin/sh -ex + +# Verbose build +if ${MK_BUILD_VERBOSE}; then + VERBOSE="V=1" +fi + +# enable ccache +export CCACHE_DIR=/ccache +export PATH=/usr/lib/ccache:$PATH + +cd ${MACHINEKIT_PATH}/src +./autogen.sh +./configure \ + --with-posix \ + --without-rt-preempt \ + --without-xenomai \ + --without-xenomai-kernel \ + --without-rtai-kernel +make -j${JOBS} ${VERBOSE} +useradd -m -s /bin/bash mk +chown -R mk:mk ../ +make setuid ${VERBOSE} diff --git a/.travis/docker_run.sh b/.travis/docker_run.sh new file mode 100755 index 00000000000..19d3fe9fa4d --- /dev/null +++ b/.travis/docker_run.sh @@ -0,0 +1,79 @@ +#!/bin/bash -ex +cd "$(dirname $0)/.." + +MACHINEKIT_PATH="/usr/src/machinekit" +TRAVIS_PATH="$MACHINEKIT_PATH/.travis" +DOCKER_CONTAINER=${DOCKER_CONTAINER:-"kinsamanka/machinekit_builder"} +COMMITTER_NAME="$(git log -1 --pretty=format:%an)" +COMMITTER_EMAIL="$(git log -1 --pretty=format:%ae)" +COMMIT_TIMESTAMP="$(git log -1 --pretty=format:%at)" +DISTRO=${TAG%-*} +MARCH=${TAG#*-} +test ${TRAVIS_PULL_REQUEST} = false && IS_PR=false || IS_PR=true +# Verbose RIP build output: "true" or "false" +MK_BUILD_VERBOSE=${MK_BUILD_VERBOSE:-"false"} +# Verbose package build output: "true" or "false" +MK_PACKAGE_VERBOSE=${MK_PACKAGE_VERBOSE:-"false"} +# Verbose regression test debug output: "true" or "false" +MK_DEBUG_TESTS=${MK_DEBUG_TESTS:-"false"} + +cmd=${CMD} +if [ ${CMD} == "run_tests" ]; +then + cmd=build_rip +fi + +# only allow x64 builds for PR's to speed up the process +if test ${TRAVIS_PULL_REQUEST} != 'false'; then + if test ${MARCH} != '64'; then + exit 0 + fi +fi + +# run build step +docker run \ + -v $(pwd):/opt/rootfs/${MACHINEKIT_PATH} \ + -v $(pwd)/.travis:/travis \ + -v $(pwd)/../ccache:/opt/rootfs/ccache \ + -e FLAV="${FLAV}" \ + -e JOBS=${JOBS} \ + -e TAG=${TAG} \ + -e DISTRO=${DISTRO} \ + -e MARCH=${MARCH} \ + -e MACHINEKIT_PATH=${MACHINEKIT_PATH} \ + -e TRAVIS_PATH=${TRAVIS_PATH} \ + -e COMMITTER_NAME="${COMMITTER_NAME}" \ + -e COMMITTER_EMAIL="${COMMITTER_EMAIL}" \ + -e COMMIT_TIMESTAMP=${COMMIT_TIMESTAMP} \ + -e MK_BUILD_VERBOSE="${MK_BUILD_VERBOSE}" \ + -e MK_PACKAGE_VERBOSE="${MK_PACKAGE_VERBOSE}" \ + -e IS_PR="${IS_PR}" \ + -e MAJOR_MINOR_VERSION \ + -e PKGSOURCE \ + -e DISTRO \ + -e DEBIAN_SUITE \ + -e GITHUB_URL \ + -e TRAVIS_REPO_SLUG \ + -e TRAVIS_PULL_REQUEST \ + -e TRAVIS_COMMIT \ + -e TRAVIS_BRANCH \ + -e LC_ALL="POSIX" \ + ${DOCKER_CONTAINER}:${TAG} \ + /travis/${cmd}.sh + +if test ${cmd} = build_rip; then + # PR: Run regression tests + # + # tests are run under a new container instead of chrooting + # this will allow us to run docker without using privileged mode + + # create container using RIP rootfs + docker build -t mk_runtest .travis/mk_runtests + + # run regressions + docker run --rm=true \ + -e MACHINEKIT_PATH=${MACHINEKIT_PATH} \ + -e MK_DEBUG_TESTS=${MK_DEBUG_TESTS} \ + -e LC_ALL="POSIX" \ + mk_runtest /run_tests.sh +fi diff --git a/.travis/get_ccache.sh b/.travis/get_ccache.sh new file mode 100755 index 00000000000..ea9cd182353 --- /dev/null +++ b/.travis/get_ccache.sh @@ -0,0 +1,17 @@ +#!/bin/bash -ex + +branch="${TAG}/${CMD}" +if [ ! -z ${FLAV+x} ]; then + branch+="/${FLAV}" +fi + +res=$(git ls-remote git://github.com/${CCACHE_REPO}) + +# fetch if ccache is available +if [[ "${res}" = *"${branch}"* ]]; then + git clone -b ${branch} --depth=1 git://github.com/${CCACHE_REPO} ../ccache + # delete git directory, no need for history + rm -rf ../ccache/.git +else # empty ccache + mkdir ../ccache +fi diff --git a/.travis/get_sftp_key.sh b/.travis/get_sftp_key.sh new file mode 100755 index 00000000000..547a2dccc0a --- /dev/null +++ b/.travis/get_sftp_key.sh @@ -0,0 +1,57 @@ +#!/bin/bash -e +# do not enable verbosity as the decryption keys will be visible on the logs + +die () { + echo $1 + touch ~/no_sftp + exit 0 +} + +# make sure SFTP_DEPLOY_ADDR is defined and not empty +if [ "${SFTP_DEPLOY_ADDR}" != "empty" ] && \ + [ "${TRAVIS_SECURE_ENV_VARS}" = "true" ]; +then + curl http://${SFTP_DEPLOY_ADDR}/travis/${TRAVIS_REPO_SLUG//\//.}/access_key.enc \ + -o ~/access_key.enc || die "Cannot download access_key!" + openssl aes-256-cbc -K $encrypted_sftp_key -iv $encrypted_sftp_iv \ + -in ~/access_key.enc -out ~/.ssh/id_rsa -d || \ + die "Cannot decrypt accesxs_key!" + chmod 0600 ~/.ssh/id_rsa + + # test conection + FILE="${TRAVIS_REPO_SLUG//\//.}_${TRAVIS_BRANCH}_${TRAVIS_JOB_NUMBER}" + + cat >${TRAVIS_BUILD_DIR}/../${FILE} << EOF +TRAVIS_BRANCH=${TRAVIS_BRANCH} +TRAVIS_BUILD_DIR=${TRAVIS_BUILD_DIR} +TRAVIS_BUILD_ID=${TRAVIS_BUILD_ID} +TRAVIS_BUILD_NUMBER=${TRAVIS_BUILD_NUMBER} +TRAVIS_COMMIT=${TRAVIS_COMMIT} +TRAVIS_COMMIT_RANGE=${TRAVIS_COMMIT_RANGE} +TRAVIS_JOB_ID=${TRAVIS_JOB_ID} +TRAVIS_PULL_REQUEST=${TRAVIS_PULL_REQUEST} +TAG=${TAG} +CMD=${CMD} +FLAV=${FLAV} +EOF + + cat >${TRAVIS_BUILD_DIR}/../sftp_cmds <&1 >/dev/null + git remote add origin git@github.com:${CCACHE_REPO}.git + git checkout -b ${branch} + git push --set-upstream origin ${branch} --force || true +fi diff --git a/.travis/send_binaries.sh b/.travis/send_binaries.sh new file mode 100755 index 00000000000..26aaadc76b1 --- /dev/null +++ b/.travis/send_binaries.sh @@ -0,0 +1,24 @@ +#!/bin/bash -e + +FILE="${TRAVIS_REPO_SLUG//\//.}_${TRAVIS_BRANCH}_${TRAVIS_JOB_NUMBER}.tgz" + +if [ "${CMD}" = "run_tests" ]; then + exit 0 +fi + +# skip upload on failure +if [ "${TRAVIS_TEST_RESULT}" -eq 0 ] && [ ! -f ~/no_sftp ]; then + cd ${TRAVIS_BUILD_DIR} + tar cvzf ${FILE} -C deploy . + +cat >sftp_cmds <sftp_cmds < +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +/dts-v1/; +/plugin/; + +/ { + compatible = "ti,beaglebone", "ti,beaglebone-black"; + + /* identification */ + part-number = "BB-LCNC-BEBOPRBR"; + version = "00A0"; + + /* state the resources this cape uses */ + exclusive-use = + /* the pin header uses */ + "P8.7", /* gpio2.2 Enablen */ + "P8.8", /* gpio2.3 X_Min */ + "P8.9", /* gpio2.5 X_Max */ + "P8.10", /* gpio2.4 Y_Min */ + "P8.11", /* gpio1.13 X_Dir */ + "P8.12", /* gpio1.12 X_Step */ + "P8.13", /* gpio0.23 PWM0 */ + "P8.14", /* gpio0.26 Y_Max */ + "P8.15", /* gpio1.15 Y_Dir */ + "P8.16", /* gpio1.14 Y_Step */ + "P8.17", /* gpio0.27 Z_Min */ + "P8.18", /* gpio2.1 Z_Max */ + "P8.19", /* gpio0.22 PWM1 */ + "P8.26", /* gpio1.29 Status */ + "P9.14", /* gpio1.18 PWM2 */ + "P9.15", /* gpio1.16 Z_Step */ + "P9.17", /* gpio0.5 B_Dir */ + "P9.18", /* gpio0.4 B_Step */ + "P9.21", /* gpio0.3 A_Dir */ + "P9.22", /* gpio0.2 A_Step */ + "P9.23", /* gpio1.17 Z_Dir */ + "P9.24", /* gpio0.15 Spindle */ + "P9.26", /* gpio0.14 Mtr_Ena */ +// "P9.33", /* AIN4 Therm0 */ +// "P9.35", /* AIN6 Therm2 */ +// "P9.36", /* AIN5 Therm1 */ + + /* the hardware IP uses */ +/* The following 4 pins conflict with the on-board mmc flash */ + "gpio2_2", + "gpio2_3", + "gpio2_5", + "gpio2_4", + "gpio1_13", + "gpio1_12", + "gpio0_23", + "gpio0_26", + "gpio1_15", + "gpio1_14", + "gpio0_27", + "gpio2_1", + "gpio0_22", + "gpio1_29", + "gpio1_18", + "gpio1_16", + "gpio0_5", + "gpio0_4", + "gpio0_3", + "gpio0_2", + "gpio1_17", + "gpio0_15", + "pru0"; + + fragment@0 { + target = <&am33xx_pinmux>; + __overlay__ { + + foo_pins: foo_pins { + pinctrl-single,pins = < + 0x090 0x3f /* P8.7 gpio2.2 Enablen */ + 0x094 0x3f /* P8.8 gpio2.3 X_Min */ + 0x09c 0x3f /* P8.9 gpio2.5 X_Max */ + 0x098 0x3f /* P8.10 gpio2.4 Y_Min */ + 0x034 0x3f /* P8.11 gpio1.13 X_Dir */ + 0x030 0x3f /* P8.12 gpio1.12 X_Step */ + 0x024 0x3f /* P8.13 gpio0.23 PWM0 */ + 0x028 0x3f /* P8.14 gpio0.26 Y_Max */ + 0x03c 0x3f /* P8.15 gpio1.15 Y_Dir */ + 0x038 0x3f /* P8.16 gpio1.14 Y_Step */ + 0x02c 0x3f /* P8.17 gpio0.27 Z_Min */ + 0x08c 0x3f /* P8.18 gpio2.1 Z_Max */ + 0x020 0x3f /* P8.19 gpio0.22 PWM1 */ + 0x07c 0x3f /* p8.26 gpio1.29 Status */ + 0x048 0x3f /* p9.14 gpio1.18 PWM2 */ + 0x040 0x3f /* p9.15 gpio1.16 Z_Step */ + 0x15c 0x3f /* p9.17 gpio0.5 B_Dir */ + 0x158 0x3f /* p9.18 gpio0.4 B_Step */ + 0x154 0x3f /* p9.21 gpio0.3 A_Dir */ + 0x150 0x3f /* p9.22 gpio0.2 A_Step */ + 0x044 0x3f /* P9.23 gpio1.17 Z_Dir */ + 0x184 0x3f /* P9.24 gpio0.15 Spindle */ + 0x180 0x3f /* P9.26 gpio0.14 Mtr_Ena */ + >; + }; + }; + }; + + fragment@1 { + target = <&pruss>; + __overlay__ { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&foo_pins>; + + }; + }; +}; + diff --git a/configs/ARM/BeagleBone/BeBoPr++/BeBoPr.panel.xml b/configs/ARM/BeagleBone/BeBoPr++/BeBoPr.panel.xml new file mode 100644 index 00000000000..827a07b49ae --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/BeBoPr.panel.xml @@ -0,0 +1,31 @@ + + + + + + + "E0.Temp.set" + "3.1f" + + + + "E0.Temp" + 300 + + + + + + "Bed.Temp.set" + "3.1f" + + + + "Bed.Temp" + 300 + + diff --git a/configs/ARM/BeagleBone/BeBoPr++/BeBoPr.postgui.hal b/configs/ARM/BeagleBone/BeBoPr++/BeBoPr.postgui.hal new file mode 100644 index 00000000000..d9448632adf --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/BeBoPr.postgui.hal @@ -0,0 +1,8 @@ +# Include your customized HAL commands here +# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts + +net e0.temp.set => pyvcp.E0.Temp.set +net e0.temp.meas => pyvcp.E0.Temp +net bed.temp.set => pyvcp.Bed.Temp.set +net bed.temp.meas => pyvcp.Bed.Temp + diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr++Pepper-DecaMux.hal b/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr++Pepper-DecaMux.hal new file mode 100755 index 00000000000..9ae33d43e4b --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr++Pepper-DecaMux.hal @@ -0,0 +1,631 @@ +# ####################################### +# +# HAL file for BeagleBone + BeBoPr++ cape with DECAMUX and two PEPPERs (10 steppers) +# +# Derived from example BeBoPr-Bridge.hal +# +# ######################################## + +# Launch the setup script to make sure hardware setup looks good +loadusr -w ./setup.bridge.sh + + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +loadrt trivkins + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + +# load low-level drivers +loadrt hal_bb_gpio output_pins=107,224,226 input_pins=108,109,110,114,117,118 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg +loadrt pid count=2 +loadrt limit1 count=2 +loadrt pepper count=2 + + +# Python user-mode HAL module to read ADC value and generate a thermostat output for PWM +# t = Thermistor table (only epcos_B57560G1104 or 1 supported for now) +# a = analog input channel +loadusr -Wn Therm ./ReadTemp.py -n Therm --num_chan 2 -t 1 1 -a 4 5 + +# ################################################ +# THREADS +# ################################################ + +addf hpg.capture-position servo-thread +addf bb_gpio.read base-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf pid.0.do-pid-calcs servo-thread +addf pid.1.do-pid-calcs servo-thread +addf limit1.0 servo-thread +addf limit1.1 servo-thread +addf hpg.update servo-thread +addf bb_gpio.write base-thread +addf pepper.update base-thread + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + + +# ################ +# X [0] Axis +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hpg.stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => hpg.stepgen.00.position-cmd + +net motor.00.pos-fb <= hpg.stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN +setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE + +setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +#setp hpg.stepgen.00.step_type 0 +# P8.12 GPIO1_12 +setp hpg.stepgen.00.steppin 0x4C +# P8.11 GPIO1_13 +setp hpg.stepgen.00.dirpin 0x4D + + +# ################ +# Y [1] Axis +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hpg.stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => hpg.stepgen.01.position-cmd + +net motor.01.pos-fb <= hpg.stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN +setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE + +setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +#setp hpg.stepgen.01.step_type 0 +# P8.16 GPIO1_14 +setp hpg.stepgen.01.steppin 0x4E +# P8.15 GPIO1_15 +setp hpg.stepgen.01.dirpin 0x4F + + +# ################ +# Z [2] Axis +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hpg.stepgen.02.enable + + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => hpg.stepgen.02.position-cmd + +net motor.02.pos-fb <= hpg.stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN +setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hpg.stepgen.02.position-scale [AXIS_2]SCALE + +setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +#setp hpg.stepgen.02.step_type 0 +# P9.15 GPIO1_16 +setp hpg.stepgen.02.steppin 0x50 +# P9.23 GPIO1_17 +setp hpg.stepgen.02.dirpin 0x51 + + +# ################ +# A [3] Axis (Extruder 1) +# ################ + +# axis enable chain +newsig emcmot.03.enable bit +sets emcmot.03.enable FALSE + +net emcmot.03.enable <= axis.3.amp-enable-out +net emcmot.03.enable => hpg.stepgen.03.enable + + +# position command and feedback +net emcmot.03.pos-cmd <= axis.3.motor-pos-cmd +net emcmot.03.pos-cmd => hpg.stepgen.03.position-cmd + +net motor.03.pos-fb <= hpg.stepgen.03.position-fb +net motor.03.pos-fb => axis.3.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP +setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD + +setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN +setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE + +setp hpg.stepgen.03.position-scale [AXIS_3]SCALE + +setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL +setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC + +#setp hpg.stepgen.03.step_type 0 +# P9.22 GPIO0_2 +setp hpg.stepgen.03.steppin 0x22 +# P9.21 GPIO0_3 +setp hpg.stepgen.03.dirpin 0x23 + + +# ################ +# B [4] Axis (Extruder 2) +# ################ + +# axis enable chain +newsig emcmot.04.enable bit +sets emcmot.04.enable FALSE + +net emcmot.04.enable <= axis.4.amp-enable-out +net emcmot.04.enable => hpg.stepgen.04.enable + + +# position command and feedback +net emcmot.04.pos-cmd <= axis.4.motor-pos-cmd +net emcmot.04.pos-cmd => hpg.stepgen.04.position-cmd + +net motor.04.pos-fb <= hpg.stepgen.04.position-fb +net motor.04.pos-fb => axis.4.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.04.dirsetup [AXIS_4]DIRSETUP +setp hpg.stepgen.04.dirhold [AXIS_4]DIRHOLD + +setp hpg.stepgen.04.steplen [AXIS_4]STEPLEN +setp hpg.stepgen.04.stepspace [AXIS_4]STEPSPACE + +setp hpg.stepgen.04.position-scale [AXIS_4]SCALE + +setp hpg.stepgen.04.maxvel [AXIS_4]STEPGEN_MAX_VEL +setp hpg.stepgen.04.maxaccel [AXIS_4]STEPGEN_MAX_ACC + +#setp hpg.stepgen.04.step_type 0 +# P9.18 GPIO0_4 +setp hpg.stepgen.04.steppin 0x24 +# P9.17 GPIO0_5 +setp hpg.stepgen.04.dirpin 0x25 + + +# ################ +# U [5] Axis +# ################ + +# axis enable chain +newsig emcmot.05.enable bit +sets emcmot.05.enable FALSE + +net emcmot.05.enable <= axis.5.amp-enable-out +net emcmot.05.enable => hpg.stepgen.05.enable + + +# position command and feedback +net emcmot.05.pos-cmd <= axis.5.motor-pos-cmd +net emcmot.05.pos-cmd => hpg.stepgen.05.position-cmd + +net motor.05.pos-fb <= hpg.stepgen.05.position-fb +net motor.05.pos-fb => axis.5.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.05.dirsetup [AXIS_5]DIRSETUP +setp hpg.stepgen.05.dirhold [AXIS_5]DIRHOLD + +setp hpg.stepgen.05.steplen [AXIS_5]STEPLEN +setp hpg.stepgen.05.stepspace [AXIS_5]STEPSPACE + +setp hpg.stepgen.05.position-scale [AXIS_5]SCALE + +setp hpg.stepgen.05.maxvel [AXIS_5]STEPGEN_MAX_VEL +setp hpg.stepgen.05.maxaccel [AXIS_5]STEPGEN_MAX_ACC + +#setp hpg.stepgen.05.step_type 0 +# P8.12 GPIO1_12 +setp hpg.stepgen.05.steppin 0x8C +# P8.11 GPIO1_13 +setp hpg.stepgen.05.dirpin 0x8D + + +# ################ +# V [6] Axis +# ################ + +# axis enable chain +newsig emcmot.06.enable bit +sets emcmot.06.enable FALSE + +net emcmot.06.enable <= axis.6.amp-enable-out +net emcmot.06.enable => hpg.stepgen.06.enable + + +# position command and feedback +net emcmot.06.pos-cmd <= axis.6.motor-pos-cmd +net emcmot.06.pos-cmd => hpg.stepgen.06.position-cmd + +net motor.06.pos-fb <= hpg.stepgen.06.position-fb +net motor.06.pos-fb => axis.6.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.06.dirsetup [AXIS_6]DIRSETUP +setp hpg.stepgen.06.dirhold [AXIS_6]DIRHOLD + +setp hpg.stepgen.06.steplen [AXIS_6]STEPLEN +setp hpg.stepgen.06.stepspace [AXIS_6]STEPSPACE + +setp hpg.stepgen.06.position-scale [AXIS_6]SCALE + +setp hpg.stepgen.06.maxvel [AXIS_6]STEPGEN_MAX_VEL +setp hpg.stepgen.06.maxaccel [AXIS_6]STEPGEN_MAX_ACC + +#setp hpg.stepgen.06.step_type 0 +# P8.16 GPIO1_14 +setp hpg.stepgen.06.steppin 0x8E +# P8.15 GPIO1_15 +setp hpg.stepgen.06.dirpin 0x8F + + +# ################ +# W [7] Axis +# ################ + +# axis enable chain +newsig emcmot.07.enable bit +sets emcmot.07.enable FALSE + +net emcmot.07.enable <= axis.7.amp-enable-out +net emcmot.07.enable => hpg.stepgen.07.enable + + +# position command and feedback +net emcmot.07.pos-cmd <= axis.7.motor-pos-cmd +net emcmot.07.pos-cmd => hpg.stepgen.07.position-cmd + +net motor.07.pos-fb <= hpg.stepgen.07.position-fb +net motor.07.pos-fb => axis.7.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.07.dirsetup [AXIS_7]DIRSETUP +setp hpg.stepgen.07.dirhold [AXIS_7]DIRHOLD + +setp hpg.stepgen.07.steplen [AXIS_7]STEPLEN +setp hpg.stepgen.07.stepspace [AXIS_7]STEPSPACE + +setp hpg.stepgen.07.position-scale [AXIS_7]SCALE + +setp hpg.stepgen.07.maxvel [AXIS_7]STEPGEN_MAX_VEL +setp hpg.stepgen.07.maxaccel [AXIS_7]STEPGEN_MAX_ACC + +#setp hpg.stepgen.07.step_type 0 +# P9.15 GPIO1_16 +setp hpg.stepgen.07.steppin 0x90 +# P9.23 GPIO1_17 +setp hpg.stepgen.07.dirpin 0x91 + + +# ################ +# C [8] Axis (Extruder 3) +# ################ + +# axis enable chain +newsig emcmot.08.enable bit +sets emcmot.08.enable FALSE + +net emcmot.08.enable <= axis.8.amp-enable-out +net emcmot.08.enable => hpg.stepgen.08.enable + + +# position command and feedback +net emcmot.08.pos-cmd <= axis.8.motor-pos-cmd +net emcmot.08.pos-cmd => hpg.stepgen.08.position-cmd + +net motor.08.pos-fb <= hpg.stepgen.08.position-fb +net motor.08.pos-fb => axis.8.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.08.dirsetup [AXIS_8]DIRSETUP +setp hpg.stepgen.08.dirhold [AXIS_8]DIRHOLD + +setp hpg.stepgen.08.steplen [AXIS_8]STEPLEN +setp hpg.stepgen.08.stepspace [AXIS_8]STEPSPACE + +setp hpg.stepgen.08.position-scale [AXIS_8]SCALE + +setp hpg.stepgen.08.maxvel [AXIS_8]STEPGEN_MAX_VEL +setp hpg.stepgen.08.maxaccel [AXIS_8]STEPGEN_MAX_ACC + +#setp hpg.stepgen.08.step_type 0 +# P9.22 GPIO0_2 +setp hpg.stepgen.08.steppin 0x62 +# P9.21 GPIO0_3 +setp hpg.stepgen.08.dirpin 0x63 + + +## ################ +## D [9] Axis (Extruder 4) +## ################ +# +## axis enable chain +#newsig emcmot.09.enable bit +#sets emcmot.09.enable FALSE +# +#net emcmot.09.enable <= axis.9.amp-enable-out +#net emcmot.09.enable => hpg.stepgen.09.enable +# +# +## position command and feedback +#net emcmot.09.pos-cmd <= axis.9.motor-pos-cmd +#net emcmot.09.pos-cmd => hpg.stepgen.09.position-cmd +# +#net motor.09.pos-fb <= hpg.stepgen.09.position-fb +#net motor.09.pos-fb => axis.9.motor-pos-fb +# +# +## timing parameters +#setp hpg.stepgen.09.dirsetup [AXIS_9]DIRSETUP +#setp hpg.stepgen.09.dirhold [AXIS_9]DIRHOLD +# +#setp hpg.stepgen.09.steplen [AXIS_9]STEPLEN +#setp hpg.stepgen.09.stepspace [AXIS_9]STEPSPACE +# +#setp hpg.stepgen.09.position-scale [AXIS_9]SCALE +# +#setp hpg.stepgen.09.maxvel [AXIS_9]STEPGEN_MAX_VEL +#setp hpg.stepgen.09.maxaccel [AXIS_9]STEPGEN_MAX_ACC +# +##setp hpg.stepgen.09.step_type 0 +## P9.18 GPIO0_4 +#setp hpg.stepgen.09.steppin 0x64 +## P9.17 GPIO0_5 +#setp hpg.stepgen.09.dirpin 0x65 +# + +# ################################################## +# Standard I/O - EStop, Enables, Limit Switches, Etc +# ################################################## + +# create a signal for the estop loopback +net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# P9-17 (B_DIR), P9-18 (B_STP), P9-24 (SPINDLE), P9-26 (AXES_ENA) + +# Machine power (BeBoPr I/O-Enable) +# +# Link pepper component as last item in io_enable chain +# +net estop-loop => pepper.io-ena.in +net io-enable pepper.io-ena.out => bb_gpio.p8.out-07 +setp bb_gpio.p8.out-07.invert 1 + +# feed stepper enables to pepper component +net emcmot.00.enable => pepper.stepper-ena.0.in +net emcmot.01.enable => pepper.stepper-ena.1.in +net emcmot.02.enable => pepper.stepper-ena.2.in +net emcmot.03.enable => pepper.stepper-ena.3.in +net emcmot.04.enable => pepper.stepper-ena.4.in + +# feed resulting enable outputs to bebopr +net ena1 pepper.enable-sck.out => bb_gpio.p9.out-26 +net ena2 pepper.spindle-mosi.out => bb_gpio.p9.out-24 +setp bb_gpio.p9.out-26.invert 1 +setp bb_gpio.p9.out-24.invert 1 + +## +# Set PEPPER configuration parameters +# +setp pepper.no-store [PEPPER]VOLATILE +setp pepper.cycle-time [EMCMOT]BASE_PERIOD + +setp pepper.axis.0.micro-step [AXIS_0]MICRO_STEP +setp pepper.axis.1.micro-step [AXIS_1]MICRO_STEP +setp pepper.axis.2.micro-step [AXIS_2]MICRO_STEP +setp pepper.axis.3.micro-step [AXIS_3]MICRO_STEP +setp pepper.axis.4.micro-step [AXIS_4]MICRO_STEP +setp pepper.axis.5.micro-step [AXIS_5]MICRO_STEP +setp pepper.axis.6.micro-step [AXIS_6]MICRO_STEP +setp pepper.axis.7.micro-step [AXIS_7]MICRO_STEP +setp pepper.axis.8.micro-step [AXIS_8]MICRO_STEP +#setp pepper.axis.9.micro-step [AXIS_9]MICRO_STEP + +setp pepper.axis.0.idle-current [AXIS_0]IDLE_CURRENT +setp pepper.axis.1.idle-current [AXIS_1]IDLE_CURRENT +setp pepper.axis.2.idle-current [AXIS_2]IDLE_CURRENT +setp pepper.axis.3.idle-current [AXIS_3]IDLE_CURRENT +setp pepper.axis.4.idle-current [AXIS_4]IDLE_CURRENT +setp pepper.axis.5.idle-current [AXIS_5]IDLE_CURRENT +setp pepper.axis.6.idle-current [AXIS_6]IDLE_CURRENT +setp pepper.axis.7.idle-current [AXIS_7]IDLE_CURRENT +setp pepper.axis.8.idle-current [AXIS_8]IDLE_CURRENT +#setp pepper.axis.9.idle-current [AXIS_9]IDLE_CURRENT + +setp pepper.axis.0.active-current [AXIS_0]ACTIVE_CURRENT +setp pepper.axis.1.active-current [AXIS_1]ACTIVE_CURRENT +setp pepper.axis.2.active-current [AXIS_2]ACTIVE_CURRENT +setp pepper.axis.3.active-current [AXIS_3]ACTIVE_CURRENT +setp pepper.axis.4.active-current [AXIS_4]ACTIVE_CURRENT +setp pepper.axis.5.active-current [AXIS_5]ACTIVE_CURRENT +setp pepper.axis.6.active-current [AXIS_6]ACTIVE_CURRENT +setp pepper.axis.7.active-current [AXIS_7]ACTIVE_CURRENT +setp pepper.axis.8.active-current [AXIS_8]ACTIVE_CURRENT +#setp pepper.axis.9.active-current [AXIS_9]ACTIVE_CURRENT + +setp pepper.axis.0.idle-decay [AXIS_0]IDLE_DECAY +setp pepper.axis.1.idle-decay [AXIS_1]IDLE_DECAY +setp pepper.axis.2.idle-decay [AXIS_2]IDLE_DECAY +setp pepper.axis.3.idle-decay [AXIS_3]IDLE_DECAY +setp pepper.axis.4.idle-decay [AXIS_4]IDLE_DECAY +setp pepper.axis.5.idle-decay [AXIS_5]IDLE_DECAY +setp pepper.axis.6.idle-decay [AXIS_6]IDLE_DECAY +setp pepper.axis.7.idle-decay [AXIS_7]IDLE_DECAY +setp pepper.axis.8.idle-decay [AXIS_8]IDLE_DECAY +#setp pepper.axis.9.idle-decay [AXIS_9]IDLE_DECAY + +setp pepper.axis.0.active-decay [AXIS_0]ACTIVE_DECAY +setp pepper.axis.1.active-decay [AXIS_1]ACTIVE_DECAY +setp pepper.axis.2.active-decay [AXIS_2]ACTIVE_DECAY +setp pepper.axis.3.active-decay [AXIS_3]ACTIVE_DECAY +setp pepper.axis.4.active-decay [AXIS_4]ACTIVE_DECAY +setp pepper.axis.5.active-decay [AXIS_5]ACTIVE_DECAY +setp pepper.axis.6.active-decay [AXIS_6]ACTIVE_DECAY +setp pepper.axis.7.active-decay [AXIS_7]ACTIVE_DECAY +setp pepper.axis.8.active-decay [AXIS_8]ACTIVE_DECAY +#setp pepper.axis.9.active-decay [AXIS_9]ACTIVE_DECAY + +# ################################################## +# PWM and Temperature Signals +# ################################################## + +# Define signals to use elsewhere (ie: M1xx codes) +# If you change any names here, lots of things will break! +newsig e0.temp.set float +newsig e0.temp.meas float +newsig bed.temp.set float +newsig bed.temp.meas float + + +setp hpg.pwmgen.00.pwm_period 10000000 + +# J2 E0 Heater T10 GPIO0.23 P8.13 +setp hpg.pwmgen.00.out.00.pin 0x37 +setp hpg.pwmgen.00.out.00.enable 1 +setp hpg.pwmgen.00.out.00.value 0.0 + +# J3 E1 Heater U10 GPIO0.22 P8.19 +setp hpg.pwmgen.00.out.01.pin 0x36 +setp hpg.pwmgen.00.out.01.enable 1 +setp hpg.pwmgen.00.out.01.value 0.0 + +# J4 Bed Heater U14 GPIO1.18 P9.14 +setp hpg.pwmgen.00.out.02.pin 0x52 +setp hpg.pwmgen.00.out.02.enable 1 +setp hpg.pwmgen.00.out.02.value 0.0 + +## DECAMUX clock signal U18 GPIO1.28 P9.12 +#setp hpg.pwmgen.00.out.03.pin 0x5C +#setp hpg.pwmgen.00.out.03.enable 1 +#setp hpg.pwmgen.00.out.03.value 0.0 + +# PID for Extruder 0 temperature control +net e0.temp.meas <= Therm.temp0 +net e0.temp.meas => pid.0.feedback + +sets e0.temp.set 0 +net e0.temp.set => pid.0.command + +net e0.heater <= pid.0.output +net e0.heater => limit1.0.in +net e0.heaterl <= limit1.0.out +net e0.heaterl => hpg.pwmgen.00.out.00.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.0.min 0 + +# PID for Bed temperature control +net bed.temp.meas <= Therm.temp1 +net bed.temp.meas => pid.1.feedback + +sets bed.temp.set 0 +net bed.temp.set => pid.1.command + +net bed.heater <= pid.1.output +net bed.heater => limit1.1.in +net bed.heaterl <= limit1.1.out +net bed.heaterl => hpg.pwmgen.00.out.02.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.1.min 0 + +# PID Parameters for adjusting temperature control +# Extruder +#setp pid.0.FF0 0 +#setp pid.0.FF1 0 +#setp pid.0.FF2 0 +setp pid.0.Pgain 0.30 +setp pid.0.Igain 0.00001 +setp pid.0.Dgain 0.9375 +setp pid.0.maxerrorI 1.0 +setp pid.0.bias 0.5 +setp pid.0.enable 1 + +# Bed +#setp pid.1.FF0 0 +#setp pid.1.FF1 0 +#setp pid.1.FF2 0 +setp pid.1.Pgain 1 +setp pid.1.Igain 0.0 +setp pid.1.Dgain 0.0 +setp pid.1.maxerrorI 1.0 +setp pid.1.bias 0.5 +setp pid.1.enable 1 diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr++Pepper-DecaMux.ini b/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr++Pepper-DecaMux.ini new file mode 100755 index 00000000000..f27c950e47d --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr++Pepper-DecaMux.ini @@ -0,0 +1,566 @@ +[PRUCONF] +DRIVER=hal_pru_generic +#CONFIG=pru=1 num_stepgens=5 num_pwmgens=3 disabled=1 +CONFIG=pru=1 num_stepgens=9 num_pwmgens=3 disabled=0 +PRUBIN=xenomai/pru_decamux.bin + +[PEPPER] +# depending on this setting, changes are permanently stored in PEPPER's EEPROM +VOLATILE=1 + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = BeBoPr++Pepper + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +#DISPLAY = gscreen +DISPLAY = axis + +# Touchy currently won't work without some hardware buttons/jog-wheel +#DISPLAY = touchy + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.200 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +PYVCP = BeBoPr.panel.xml + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = ./pru-stepper.var + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Fast task period, in nanoseconds +BASE_PERIOD = 100000 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = BeBoPr++Pepper-DecaMux.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +POSTGUI_HALFILE = ./BeBoPr.postgui.hal + + +[TRAJ] + +AXES = 9 +COORDINATES = X Y Z A B C U V W #X Y Z A B on Pepper #1, U V W C on Pepper #2 (D unavailable) +MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 20.00 +MAX_LINEAR_VELOCITY = 200.00 + + + + + +[AXIS_0] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# + + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +# scale is 200 steps/rev * 5 revs/inch +SCALE = -80 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 220.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +############### +# +# CURRENT: peak current in 0.1 A units (e.g. 15 is 1.5A) +# DECAY: 0 = slow, 1 = fast, 2 = mixed +# MICRO_STEP: 1, 2, 4, 8, 16, 32 +# +MICRO_STEP = 8 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 2 + + +[AXIS_1] + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +SCALE = 80.0 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 250.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +MICRO_STEP = 8 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 2 + + +[AXIS_2] + +TYPE = LINEAR +MAX_VELOCITY = 5.0 +MAX_ACCELERATION = 100.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 6.0 +STEPGEN_MAX_ACC = 125.0 + +BACKLASH = 0.000 + +SCALE = 1511.81102362 + +MIN_LIMIT = -10.0 +MAX_LIMIT = 200.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +MICRO_STEP = 8 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 2 + + +[AXIS_3] + +TYPE = ANGULAR +MAX_VELOCITY = 31.8993189453 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 37.0 +STEPGEN_MAX_ACC = 3750.0 + +BACKLASH = 0.000 + +SCALE = -744.530002058 +#SCALE = -732.32 + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 1.0 +MIN_FERROR = .25 + +HOME = 0.0 +HOME_OFFSET = 0.0 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +MICRO_STEP = 8 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 2 + + +[AXIS_4] + +TYPE = ANGULAR +MAX_VELOCITY = 31.8993189453 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 37.0 +STEPGEN_MAX_ACC = 3750.0 + +BACKLASH = 0.000 + +SCALE = -744.530002058 +#SCALE = -732.32 + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 1.0 +MIN_FERROR = .25 + +HOME = 0.0 +HOME_OFFSET = 0.0 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +MICRO_STEP = 8 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 2 + + + + +[AXIS_5] + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + + +SCALE = -80 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 220.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +MICRO_STEP = 8 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 2 + + +[AXIS_6] + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +SCALE = 80.0 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 250.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +MICRO_STEP = 8 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 2 + + +[AXIS_7] + +TYPE = LINEAR +MAX_VELOCITY = 5.0 +MAX_ACCELERATION = 100.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 6.0 +STEPGEN_MAX_ACC = 125.0 + +BACKLASH = 0.000 + +SCALE = 1511.81102362 + +MIN_LIMIT = -10.0 +MAX_LIMIT = 200.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +MICRO_STEP = 8 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 2 + + +[AXIS_8] + +TYPE = ANGULAR +MAX_VELOCITY = 31.8993189453 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 37.0 +STEPGEN_MAX_ACC = 3750.0 + +BACKLASH = 0.000 + +SCALE = -744.530002058 +#SCALE = -732.32 + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 1.0 +MIN_FERROR = .25 + +HOME = 0.0 +HOME_OFFSET = 0.0 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +MICRO_STEP = 8 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 2 + + +[AXIS_9] + +TYPE = ANGULAR +MAX_VELOCITY = 31.8993189453 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 37.0 +STEPGEN_MAX_ACC = 3750.0 + +BACKLASH = 0.000 + +SCALE = -744.530002058 +#SCALE = -732.32 + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 1.0 +MIN_FERROR = .25 + +HOME = 0.0 +HOME_OFFSET = 0.0 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +MICRO_STEP = 8 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 2 + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = ./tool.tbl + diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr++Pepper.hal b/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr++Pepper.hal new file mode 100755 index 00000000000..17b099b6053 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr++Pepper.hal @@ -0,0 +1,406 @@ +# ####################################### +# +# HAL file for BeagleBone + BeBoPr++ cape with Pepper (5 steppers) +# +# Derived from example BeBoPr-Bridge.hal +# +# ######################################## + +# Launch the setup script to make sure hardware setup looks good +loadusr -w ./setup.bridge.sh + + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +loadrt trivkins + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + +# load low-level drivers +loadrt hal_bb_gpio output_pins=107,126,224,226 input_pins=108,109,110,114,117,118 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg +loadrt pid count=2 +loadrt limit1 count=2 +loadrt pepper count=1 + + +# Python user-mode HAL module to read ADC value and generate a thermostat output for PWM +# t = Thermistor table (only epcos_B57560G1104 or 1 supported for now) +# a = analog input channel +loadusr -Wn Therm ./ReadTemp.py -n Therm --num_chan 2 -t 1 1 -a 4 5 + +# ################################################ +# THREADS +# ################################################ + +addf hpg.capture-position servo-thread +addf bb_gpio.read base-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf pid.0.do-pid-calcs servo-thread +addf pid.1.do-pid-calcs servo-thread +addf limit1.0 servo-thread +addf limit1.1 servo-thread +addf hpg.update servo-thread +addf bb_gpio.write base-thread +addf pepper.update base-thread + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + + +# ################ +# X [0] Axis +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hpg.stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => hpg.stepgen.00.position-cmd + +net motor.00.pos-fb <= hpg.stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN +setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE + +setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +#setp hpg.stepgen.00.step_type 0 +# P8.12 GPIO1_12 +setp hpg.stepgen.00.steppin 0x4C +# P8.11 GPIO1_13 +setp hpg.stepgen.00.dirpin 0x4D + + +# ################ +# Y [1] Axis +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hpg.stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => hpg.stepgen.01.position-cmd + +net motor.01.pos-fb <= hpg.stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN +setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE + +setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +#setp hpg.stepgen.01.step_type 0 +# P8.16 GPIO1_14 +setp hpg.stepgen.01.steppin 0x4E +# P8.15 GPIO1_15 +setp hpg.stepgen.01.dirpin 0x4F + + +# ################ +# Z [2] Axis +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hpg.stepgen.02.enable + + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => hpg.stepgen.02.position-cmd + +net motor.02.pos-fb <= hpg.stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN +setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hpg.stepgen.02.position-scale [AXIS_2]SCALE + +setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +#setp hpg.stepgen.02.step_type 0 +# P9.15 GPIO1_16 +setp hpg.stepgen.02.steppin 0x50 +# P9.23 GPIO1_17 +setp hpg.stepgen.02.dirpin 0x51 + + +# ################ +# A [3] Axis (Extruder 1) +# ################ + +# axis enable chain +newsig emcmot.03.enable bit +sets emcmot.03.enable FALSE + +net emcmot.03.enable <= axis.3.amp-enable-out +net emcmot.03.enable => hpg.stepgen.03.enable + + +# position command and feedback +net emcmot.03.pos-cmd <= axis.3.motor-pos-cmd +net emcmot.03.pos-cmd => hpg.stepgen.03.position-cmd + +net motor.03.pos-fb <= hpg.stepgen.03.position-fb +net motor.03.pos-fb => axis.3.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP +setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD + +setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN +setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE + +setp hpg.stepgen.03.position-scale [AXIS_3]SCALE + +setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL +setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC + +#setp hpg.stepgen.03.step_type 0 +# P9.22 GPIO0_2 +setp hpg.stepgen.03.steppin 0x22 +# P9.21 GPIO0_3 +setp hpg.stepgen.03.dirpin 0x23 + + +# ################ +# B [4] Axis (Extruder 2) +# ################ + +# axis enable chain +newsig emcmot.04.enable bit +sets emcmot.04.enable FALSE + +net emcmot.04.enable <= axis.4.amp-enable-out +net emcmot.04.enable => hpg.stepgen.04.enable + + +# position command and feedback +net emcmot.04.pos-cmd <= axis.4.motor-pos-cmd +net emcmot.04.pos-cmd => hpg.stepgen.04.position-cmd + +net motor.04.pos-fb <= hpg.stepgen.04.position-fb +net motor.04.pos-fb => axis.4.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.04.dirsetup [AXIS_4]DIRSETUP +setp hpg.stepgen.04.dirhold [AXIS_4]DIRHOLD + +setp hpg.stepgen.04.steplen [AXIS_4]STEPLEN +setp hpg.stepgen.04.stepspace [AXIS_4]STEPSPACE + +setp hpg.stepgen.04.position-scale [AXIS_4]SCALE + +setp hpg.stepgen.04.maxvel [AXIS_4]STEPGEN_MAX_VEL +setp hpg.stepgen.04.maxaccel [AXIS_4]STEPGEN_MAX_ACC + +#setp hpg.stepgen.04.step_type 0 +# P9.18 GPIO0_4 +setp hpg.stepgen.04.steppin 0x24 +# P9.17 GPIO0_5 +setp hpg.stepgen.04.dirpin 0x25 + + +# ################################################## +# Standard I/O - EStop, Enables, Limit Switches, Etc +# ################################################## + +# create a signal for the estop loopback +net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# P9-17 (B_DIR), P9-18 (B_STP), P9-24 (SPINDLE), P9-26 (AXES_ENA) + +# Machine power (BeBoPr I/O-Enable) +# +# Link pepper component as last item in io_enable chain +# +net estop-loop => pepper.io-ena.in +net io-enable pepper.io-ena.out => bb_gpio.p8.out-07 +setp bb_gpio.p8.out-07.invert 1 + +# feed stepper enables to pepper component +net emcmot.00.enable => pepper.stepper-ena.0.in +net emcmot.01.enable => pepper.stepper-ena.1.in +net emcmot.02.enable => pepper.stepper-ena.2.in +net emcmot.03.enable => pepper.stepper-ena.3.in +net emcmot.04.enable => pepper.stepper-ena.4.in + +# feed resulting enable outputs to bebopr +net ena1 pepper.enable-sck.out => bb_gpio.p9.out-26 +net ena2 pepper.spindle-mosi.out => bb_gpio.p9.out-24 +setp bb_gpio.p9.out-26.invert 1 +setp bb_gpio.p9.out-24.invert 1 + +## +# Set PEPPER configuration parameters +# +setp pepper.no-store [PEPPER]VOLATILE +setp pepper.cycle-time [EMCMOT]BASE_PERIOD + +setp pepper.axis.0.micro-step [AXIS_0]MICRO_STEP +setp pepper.axis.1.micro-step [AXIS_1]MICRO_STEP +setp pepper.axis.2.micro-step [AXIS_2]MICRO_STEP +setp pepper.axis.3.micro-step [AXIS_3]MICRO_STEP +setp pepper.axis.4.micro-step [AXIS_4]MICRO_STEP + +setp pepper.axis.0.idle-current [AXIS_0]IDLE_CURRENT +setp pepper.axis.1.idle-current [AXIS_1]IDLE_CURRENT +setp pepper.axis.2.idle-current [AXIS_2]IDLE_CURRENT +setp pepper.axis.3.idle-current [AXIS_3]IDLE_CURRENT +setp pepper.axis.4.idle-current [AXIS_4]IDLE_CURRENT + +setp pepper.axis.0.active-current [AXIS_0]ACTIVE_CURRENT +setp pepper.axis.1.active-current [AXIS_1]ACTIVE_CURRENT +setp pepper.axis.2.active-current [AXIS_2]ACTIVE_CURRENT +setp pepper.axis.3.active-current [AXIS_3]ACTIVE_CURRENT +setp pepper.axis.4.active-current [AXIS_4]ACTIVE_CURRENT + +setp pepper.axis.0.idle-decay [AXIS_0]IDLE_DECAY +setp pepper.axis.1.idle-decay [AXIS_1]IDLE_DECAY +setp pepper.axis.2.idle-decay [AXIS_2]IDLE_DECAY +setp pepper.axis.3.idle-decay [AXIS_3]IDLE_DECAY +setp pepper.axis.4.idle-decay [AXIS_4]IDLE_DECAY + +setp pepper.axis.0.active-decay [AXIS_0]ACTIVE_DECAY +setp pepper.axis.1.active-decay [AXIS_1]ACTIVE_DECAY +setp pepper.axis.2.active-decay [AXIS_2]ACTIVE_DECAY +setp pepper.axis.3.active-decay [AXIS_3]ACTIVE_DECAY +setp pepper.axis.4.active-decay [AXIS_4]ACTIVE_DECAY + +# ################################################## +# PWM and Temperature Signals +# ################################################## + +# Define signals to use elsewhere (ie: M1xx codes) +# If you change any names here, lots of things will break! +newsig e0.temp.set float +newsig e0.temp.meas float +newsig bed.temp.set float +newsig bed.temp.meas float + + +setp hpg.pwmgen.00.pwm_period 10000000 + +# J2 E0 Heater PRU1.out1 +setp hpg.pwmgen.00.out.00.pin 0x37 +setp hpg.pwmgen.00.out.00.enable 1 +setp hpg.pwmgen.00.out.00.value 0.0 + +# J3 E1 Heater PRU1.out0 +setp hpg.pwmgen.00.out.01.pin 0x36 +setp hpg.pwmgen.00.out.01.enable 1 +setp hpg.pwmgen.00.out.01.value 0.0 + +# J4 Bed Heater GPIO2.16 +setp hpg.pwmgen.00.out.02.pin 0x52 +setp hpg.pwmgen.00.out.02.enable 1 +setp hpg.pwmgen.00.out.02.value 0.0 + +# PID for Extruder 0 temperature control +net e0.temp.meas <= Therm.temp0 +net e0.temp.meas => pid.0.feedback + +sets e0.temp.set 0 +net e0.temp.set => pid.0.command + +net e0.heater <= pid.0.output +net e0.heater => limit1.0.in +net e0.heaterl <= limit1.0.out +net e0.heaterl => hpg.pwmgen.00.out.00.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.0.min 0 + +# PID for Bed temperature control +net bed.temp.meas <= Therm.temp1 +net bed.temp.meas => pid.1.feedback + +sets bed.temp.set 0 +net bed.temp.set => pid.1.command + +net bed.heater <= pid.1.output +net bed.heater => limit1.1.in +net bed.heaterl <= limit1.1.out +net bed.heaterl => hpg.pwmgen.00.out.02.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.1.min 0 + +# PID Parameters for adjusting temperature control +# Extruder +#setp pid.0.FF0 0 +#setp pid.0.FF1 0 +#setp pid.0.FF2 0 +setp pid.0.Pgain 0.30 +setp pid.0.Igain 0.00001 +setp pid.0.Dgain 0.9375 +setp pid.0.maxerrorI 1.0 +setp pid.0.bias 0.5 +setp pid.0.enable 1 + +# Bed +#setp pid.1.FF0 0 +#setp pid.1.FF1 0 +#setp pid.1.FF2 0 +setp pid.1.Pgain 1 +setp pid.1.Igain 0.0 +setp pid.1.Dgain 0.0 +setp pid.1.maxerrorI 1.0 +setp pid.1.bias 0.5 +setp pid.1.enable 1 diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr++Pepper.ini b/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr++Pepper.ini new file mode 100755 index 00000000000..885b3b3b074 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr++Pepper.ini @@ -0,0 +1,366 @@ +[PRUCONF] +DRIVER=hal_pru_generic +#CONFIG=pru=1 num_stepgens=5 num_pwmgens=3 disabled=1 +CONFIG=pru=1 num_stepgens=5 num_pwmgens=3 disabled=0 +PRUBIN=xenomai/pru_generic.bin + +[PEPPER] +# depending on this setting, changes are permanently stored in PEPPER's EEPROM +VOLATILE=1 + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = BeBoPr++Pepper + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +#DISPLAY = gscreen +DISPLAY = axis + +# Touchy currently won't work without some hardware buttons/jog-wheel +#DISPLAY = touchy + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.200 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +PYVCP = BeBoPr.panel.xml + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = ./pru-stepper.var + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Fast task period, in nanoseconds +BASE_PERIOD = 100000 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = BeBoPr++Pepper.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +POSTGUI_HALFILE = ./BeBoPr.postgui.hal + + +[TRAJ] + +AXES = 5 +COORDINATES = X Y Z A B +MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 20.00 +MAX_LINEAR_VELOCITY = 200.00 + + + + + +[AXIS_0] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# + + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +# scale is 200 steps/rev * 5 revs/inch +SCALE = -80 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 220.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +############### +# +# CURRENT: peak current in 0.1 A units (e.g. 15 is 1.5A) +# DECAY: 0 = slow, 1 = fast, 2 = mixed +# MICRO_STEP: 1, 2, 4, 8, 16, 32 +# +MICRO_STEP = 8 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 2 + + +[AXIS_1] + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +SCALE = 80.0 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 250.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +MICRO_STEP = 8 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 2 + + +[AXIS_2] + +TYPE = LINEAR +MAX_VELOCITY = 5.0 +MAX_ACCELERATION = 100.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 6.0 +STEPGEN_MAX_ACC = 125.0 + +BACKLASH = 0.000 + +SCALE = 1511.81102362 + +MIN_LIMIT = -10.0 +MAX_LIMIT = 200.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +MICRO_STEP = 8 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 2 + + +[AXIS_3] + +TYPE = ANGULAR +MAX_VELOCITY = 31.8993189453 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 37.0 +STEPGEN_MAX_ACC = 3750.0 + +BACKLASH = 0.000 + +SCALE = -744.530002058 +#SCALE = -732.32 + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 1.0 +MIN_FERROR = .25 + +HOME = 0.0 +HOME_OFFSET = 0.0 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +MICRO_STEP = 8 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 2 + + +[AXIS_4] + +TYPE = ANGULAR +MAX_VELOCITY = 31.8993189453 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 37.0 +STEPGEN_MAX_ACC = 3750.0 + +BACKLASH = 0.000 + +SCALE = -744.530002058 +#SCALE = -732.32 + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 1.0 +MIN_FERROR = .25 + +HOME = 0.0 +HOME_OFFSET = 0.0 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +MICRO_STEP = 8 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 2 + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = ./tool.tbl + diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr.panel.xml b/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr.panel.xml new file mode 100644 index 00000000000..827a07b49ae --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr.panel.xml @@ -0,0 +1,31 @@ + + + + + + + "E0.Temp.set" + "3.1f" + + + + "E0.Temp" + 300 + + + + + + "Bed.Temp.set" + "3.1f" + + + + "Bed.Temp" + 300 + + diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr.postgui.hal b/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr.postgui.hal new file mode 100644 index 00000000000..d9448632adf --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pepper/BeBoPr.postgui.hal @@ -0,0 +1,8 @@ +# Include your customized HAL commands here +# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts + +net e0.temp.set => pyvcp.E0.Temp.set +net e0.temp.meas => pyvcp.E0.Temp +net bed.temp.set => pyvcp.Bed.Temp.set +net bed.temp.meas => pyvcp.Bed.Temp + diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pepper/README b/configs/ARM/BeagleBone/BeBoPr++/Pepper/README new file mode 100644 index 00000000000..a923efdcf98 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pepper/README @@ -0,0 +1,19 @@ + +This configuration drives a standard 5-axis 3D printer using the PRU for +high speed step/dir pulse generation, a BeagleBone Black, a BeBoPr++ +interface board and a Pepper 5-axes stepper driver. + +There are currently no limit switches configured, so adjust the MIN_LIMIT +and MAX_LIMIT axis settings in the ini file if your printer has less than +200 mm of X/Y travel. + +Current X and Y settings are appropriate for a typical "MendelMax" style +printer, with the following settings: + +max vel = 200 mm/s +max accel = 3000 mm/s/s +scale = 80 steps/mm + +Adjust as required for your machine. Make scale negative to invert any +axis that is moving 'backwards'. + diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pepper/ReadTemp.py b/configs/ARM/BeagleBone/BeBoPr++/Pepper/ReadTemp.py new file mode 100755 index 00000000000..2eda38ce665 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pepper/ReadTemp.py @@ -0,0 +1,323 @@ +#!/usr/bin/python + +######################################################################## +# Description: temp.py # +# This code reads an ADC input on the BeagleBone and converts the # +# resulting value into a temperature according to the thermistor # +# type, accounting for the analog input circuty as implemented on # +# the BeBoPr cape # +# # +# Author(s): Charles Steinkuehler # +# License: GNU GPL Version 2.0 or (at your option) any later version. # +# # +# Major Changes: # +# 2013-June Charles Steinkuehler # +# Initial version # +######################################################################## +# Copyright (C) 2013 Charles Steinkuehler # +# # +# # +# This program is free software; you can redistribute it and/or # +# modify it under the terms of the GNU General Public License # +# as published by the Free Software Foundation; either version 2 # +# of the License, or (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # +# 02110-1301, USA. # +# # +# THE AUTHORS OF THIS PROGRAM ACCEPT ABSOLUTELY NO LIABILITY FOR # +# ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE # +# TO RELY ON SOFTWARE ALONE FOR SAFETY. Any machinery capable of # +# harming persons must have provisions for completely removing power # +# from all motors, etc, before persons enter any danger area. All # +# machinery must be designed to comply with local and national safety # +# codes, and the authors of this software can not, and do not, take # +# any responsibility for such compliance. # +######################################################################## + +import argparse +import bisect +import glob +import sys +import time + +import hal + +# Fixme: Put thermistor data in an include file +Thermistor = {} +Thermistor["epcos_B57560G1104"] = [ +# Temp, Resistance, alpha +[ -60.0, float('inf'), 7.6 ], +[ -55.0, 10011000, 7.4 ], +[ -50.0, 6956000, 7.2 ], +[ -45.0, 4894500, 6.9 ], +[ -40.0, 3485300, 6.7 ], +[ -35.0, 2510200, 6.5 ], +[ -30.0, 1827500, 6.2 ], +[ -25.0, 1344300, 6.0 ], +[ -20.0, 998530, 5.9 ], +[ -15.0, 748670, 5.7 ], +[ -10.0, 566360, 5.5 ], +[ -5.0, 432120, 5.3 ], +[ 0.0, 332400, 5.2 ], +[ 5.0, 257690, 5.0 ], +[ 10.0, 201270, 4.9 ], +[ 15.0, 158340, 4.7 ], +[ 20.0, 125420, 4.6 ], +[ 25.0, 100000, 4.5 ], +[ 30.0, 80239, 4.3 ], +[ 35.0, 64776, 4.2 ], +[ 40.0, 52598, 4.1 ], +[ 45.0, 42950, 4.0 ], +[ 50.0, 35262, 3.9 ], +[ 55.0, 29100, 3.8 ], +[ 60.0, 24136, 3.7 ], +[ 65.0, 20114, 3.6 ], +[ 70.0, 16841, 3.5 ], +[ 75.0, 14164, 3.4 ], +[ 80.0, 11963, 3.3 ], +[ 85.0, 10147, 3.3 ], +[ 90.0, 8640.7, 3.2 ], +[ 95.0, 7386.7, 3.1 ], +[ 100.0, 6338.3, 3.0 ], +[ 105.0, 5458.4, 3.0 ], +[ 110.0, 4717, 2.9 ], +[ 115.0, 4090.1, 2.8 ], +[ 120.0, 3558.1, 2.8 ], +[ 125.0, 3105, 2.7 ], +[ 130.0, 2717.9, 2.6 ], +[ 135.0, 2386.1, 2.6 ], +[ 140.0, 2100.8, 2.5 ], +[ 145.0, 1854.8, 2.5 ], +[ 150.0, 1641.9, 2.4 ], +[ 155.0, 1457.3, 2.4 ], +[ 160.0, 1296.7, 2.3 ], +[ 165.0, 1156.6, 2.3 ], +[ 170.0, 1034.1, 2.2 ], +[ 175.0, 926.64, 2.2 ], +[ 180.0, 832.24, 2.1 ], +[ 185.0, 749.07, 2.1 ], +[ 190.0, 675.64, 2.0 ], +[ 195.0, 610.64, 2.0 ], +[ 200.0, 552.99, 2.0 ], +[ 205.0, 501.75, 1.9 ], +[ 210.0, 456.11, 1.9 ], +[ 215.0, 415.37, 1.9 ], +[ 220.0, 378.95, 1.8 ], +[ 225.0, 346.31, 1.8 ], +[ 230.0, 317.01, 1.8 ], +[ 235.0, 290.67, 1.7 ], +[ 240.0, 266.93, 1.7 ], +[ 245.0, 245.51, 1.7 ], +[ 250.0, 226.15, 1.6 ], +[ 255.0, 208.62, 1.6 ], +[ 260.0, 192.73, 1.6 ], +[ 265.0, 178.29, 1.5 ], +[ 270.0, 165.16, 1.5 ], +[ 275.0, 153.19, 1.5 ], +[ 280.0, 142.28, 1.5 ], +[ 285.0, 132.31, 1.4 ], +[ 290.0, 123.19, 1.4 ], +[ 295.0, 114.83, 1.4 ], +[ 300.0, 107.16, 1.4 ], +[ 400.0, 0.0, 1.4 ] ] + + +# Temperature table needs resistance to be ordered low [0] to high [n] +Thermistor["epcos_B57560G1104"].reverse() + +# Epcos B57560G1104 is Marlin thermistor table 1 +Thermistor["1"] = Thermistor["epcos_B57560G1104"] + + +Thermistor["semitec_103GT_2"] = [ +# Temp, Resistance, alpha +[ -60.0, float('inf'), 0.0 ], +[ -50.0, 8743000.0, 0.0 ], +[ -40.0, 4218000.0, 0.0 ], +[ -30.0, 2132000.0, 0.0 ], +[ -20.0, 1127000.0, 0.0 ], +[ -10.0, 620000.0, 0.0 ], +[ 0.0, 353700.0, 0.0 ], +[ 10.0, 208600.0, 0.0 ], +[ 20.0, 126800.0, 0.0 ], +[ 30.0, 79360.0, 0.0 ], +[ 40.0, 50960.0, 0.0 ], +[ 50.0, 33490.0, 0.0 ], +[ 60.0, 22510.0, 0.0 ], +[ 70.0, 15440.0, 0.0 ], +[ 80.0, 10800.0, 0.0 ], +[ 90.0, 7686.0, 0.0 ], +[ 100.0, 5556.0, 0.0 ], +[ 110.0, 4082.0, 0.0 ], +[ 120.0, 3043.0, 0.0 ], +[ 130.0, 2298.0, 0.0 ], +[ 140.0, 1758.0, 0.0 ], +[ 150.0, 1360.0, 0.0 ], +[ 160.0, 1064.0, 0.0 ], +[ 170.0, 841.4, 0.0 ], +[ 180.0, 671.4, 0.0 ], +[ 190.0, 540.8, 0.0 ], +[ 200.0, 439.3, 0.0 ], +[ 210.0, 359.7, 0.0 ], +[ 220.0, 296.9, 0.0 ], +[ 230.0, 246.8, 0.0 ], +[ 240.0, 206.5, 0.0 ], +[ 250.0, 174.0, 0.0 ], +[ 260.0, 147.5, 0.0 ], +[ 270.0, 125.8, 0.0 ], +[ 280.0, 107.9, 0.0 ], +[ 290.0, 93.05, 0.0 ], +[ 300.0, 80.65, 0.0 ], +[ 400.0, 0.0, 1.4 ] ] + + +# Temperature table needs resistance to be ordered low [0] to high [n] +Thermistor["semitec_103GT_2"].reverse() + +# ATC Semtec 104GT-2 is Marlin thermistor table 5 +Thermistor["5"] = Thermistor["semitec_103GT_2"] + +# Test for multiple thermistor tables +Thermistor["2"] = [ +[ 400.0, 0.0, 1.4 ], +[ 300.0, 1000.0, 2.0 ], +[ 200.0, 10000.0, 3.0 ], +[ 100.0, 100000.0, 6.0 ], +[ 0.0, float('inf'), 7.6 ] ] + +# The BeBoPr board thermistor input has one side grounded and the other side +# pulled high through a 2.05K resistor to 3.6V. Following this is a 470R +# resistor, some protection diodes, and a voltage divider cosisting of two +# 10.0K resistors. The ADC voltage read is the voltage across the lower 10K +# resistor in the 470R + 10K + 10K series chain +def adc2r(V_adc): + V_T = 0.0 # Voltage across the thermistor (and the 470R + 10K + 10K resistor chain) + I_PU = 0.0 # Current flowing through the 2.05K pull-up resistor + R_TD = 0.0 # Resistance of thermistor and the 470R + 10K + 10K divider chain in parallel + R_T = 0.0 # Resistance of the thermistor + + V_T = V_adc * 2.0470 + + # No dividing by zero or negative voltages despite what the ADC says! + # Clip to a small positive value + I_PU = max((3.6 - V_T ) / 2050, 0.000001) + + R_TD = V_T / I_PU + + # Acutal resistance can't be negative, but we can get a negative value + # from the equation below for some real ADC values, so clip to avoid + # reporting crazy temperature values or dividing by zero + if R_TD >= 20470 : + R_TD = 20470 - 0.1 + + # 1 / Rtotal = 1 / ( 1 / R1 + 1 / R2 ) + # R2 = ( R1 * Rtotal ) / ( R1 - Rtotal ) + R_T = ( 20470 * R_TD ) / ( 20470 - R_TD ) + + # print "V_adc: %f V_T: %f R_TD: %f R_T: %f" % (V_adc, V_T, R_TD, R_T) + + + return R_T + +# Convert resistance value into temperature, using thermistor table +def r2t(n, R_T): + temp_slope = 0.0 + temp = 0.0 + + i = max(bisect.bisect_right(R_Key[n], R_T) - 1, 0) + + temp_slope = (thermistor[n][0][i] - thermistor[n][0][i+1]) / (thermistor[n][1][i] - thermistor[n][1][i+1]) + temp = thermistor[n][0][i] + ((R_T - thermistor[n][1][i]) * temp_slope) + #print "Temp:", temp, "i.R_T:", i, R_T, "slope:", temp_slope, + #print "Deg.left:", Thermistor["epcos_B57560G1104"][i], "Deg.right:", Thermistor["epcos_B57560G1104"][i+1] + return temp + +parser = argparse.ArgumentParser(description='HAL component to read ADC values and convert to temperature') +parser.add_argument('-n','--name', help='HAL component name',required=True) +parser.add_argument('-N','--num_chan', help='Number of analog inputs to support',default=1) +parser.add_argument('-a','--adc', nargs='+', help='ADC input to read', required=True) +parser.add_argument('-t','--therm',nargs='+', help='Thermistor table to use', required=True) +args = parser.parse_args() + +num_chan = int(args.num_chan) + +if len(args.adc) != num_chan : + raise UserWarning('Incorrect number of ADC channels specified! Expected:' + str(args.num_chan) + str(len(args.adc)) ) + +if len(args.therm) != num_chan : + raise UserWarning('Incorrect number of thermistors specified! Expected:' + args.num_chan) + +syspath = '/sys/devices/ocp.*/44e0d000.tscadc/tiadc/iio:device0/' + +FileName = [] + +for i in range(num_chan): + TempName = glob.glob (syspath + 'in_voltage' + args.adc[i] + '_raw') + FileName.insert(i, TempName[0]) + try: + if len(FileName[i]) > 0: + f = open(FileName[i], 'r') + f.close() + time.sleep(0.001) + else: + raise UserWarning('Bad Filename') + except (UserWarning, IOError) : + print("Cannot read ADC input: %s" % Filename[i]) + sys.exit(1) + +thermistor = [] +R_Key = [] +for i in range(num_chan): + if args.therm[i] in Thermistor: + # Shuffle array to make three lists of values (Temp, Resistane, Alpha) + # so we can use bisect to efficiently do table lookups + thermistor.insert(i, map(list, zip(*Thermistor[args.therm[i]])) ) + + # Pull out the resistance values to use as a key for bisect + R_Key.insert(i, thermistor[i][1] ) + + else: + print("Unknown thermistor type: %s" % args.therm) + print 'Try one of:', Thermistor.keys() + sys.exit(1) + +h = hal.component(args.name) +for i in range(num_chan): + h.newpin("raw" + str(i), hal.HAL_U32, hal.HAL_OUT) + h.newpin("temp" + str(i), hal.HAL_FLOAT, hal.HAL_OUT) + +h.ready() + +Err = 0.0 +ADC_V = 0.0 +temp = 0.0 + +while 1: + try: + for i in range(num_chan): + f = open(FileName[i], 'r') + ADC_IN = int(f.readline()) + h['raw' + str(i)] = ADC_IN + ADC_V = float(ADC_IN) * 1.8 / 4096.0 + temp = r2t(i,adc2r(ADC_V)) + h['temp' + str(i)] = temp + #print ADC_IN, temp + f.close() + time.sleep(0.001) + + time.sleep(0.049) + + except IOError: + continue + + except KeyboardInterrupt: + raise SystemExit + diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pepper/lineardelta.hal b/configs/ARM/BeagleBone/BeBoPr++/Pepper/lineardelta.hal new file mode 100755 index 00000000000..6b6e5614e4f --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pepper/lineardelta.hal @@ -0,0 +1,466 @@ +# ####################################### +# +# HAL file for BeagleBone + BeBoPr++ cape with Pepper (5 steppers) +# +# Derived from example BeBoPr++Pepper.hal +# +# ######################################## + +# Launch the setup script to make sure hardware setup looks good +loadusr -w ./setup.bridge.sh + + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +loadrt lineardeltakins + +# settings for delta printer +setp lineardeltakins.L [MACHINE]CF_ROD +setp lineardeltakins.R [MACHINE]DELTA_R + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=lineardeltakins + +# load low-level drivers +loadrt hal_bb_gpio output_pins=107,126,224,226 input_pins=108,109,110,114,117,118 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg +loadrt pid count=2 +loadrt limit1 count=2 +loadrt pepper + +# Python user-mode HAL module to read ADC value and generate a thermostat output for PWM +# t = Thermistor table (only epcos_B57560G1104 or 1 supported for now) +# a = analog input channel +loadusr -Wn Therm ./ReadTemp.py -n Therm --num_chan 2 -t 1 1 -a 4 5 + +#used for comparing temperature set value with actual for waiting on temperature +loadrt wcomp count=1 +# Initialize the sum2 +loadrt sum2 count=2 + +# ################################################ +# THREADS +# ################################################ + +addf hpg.capture-position servo-thread +addf bb_gpio.read base-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf pid.0.do-pid-calcs servo-thread +addf pid.1.do-pid-calcs servo-thread +addf limit1.0 servo-thread +addf limit1.1 servo-thread +addf hpg.update servo-thread +addf bb_gpio.write base-thread +addf pepper.update base-thread + +addf wcomp.0 servo-thread +addf sum2.0 servo-thread +addf sum2.1 servo-thread + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + + +# ################ +# X [0] Axis = column C +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hpg.stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => hpg.stepgen.00.position-cmd + +net motor.00.pos-fb <= hpg.stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN +setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE + +setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +#setp hpg.stepgen.00.step_type 0 +# P8.12 GPIO1_12 +setp hpg.stepgen.00.steppin 0x4C +# P8.11 GPIO1_13 +setp hpg.stepgen.00.dirpin 0x4D + +# because column C is connected to the X-axis output +# the BeBoPr++ signal needs to be X-max means P8.9 +net home-x bb_gpio.p8.in-09 => axis.0.home-sw-in +setp bb_gpio.p8.in-09.invert 1 + +# ################ +# Y [1] Axis = column A +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hpg.stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => hpg.stepgen.01.position-cmd + +net motor.01.pos-fb <= hpg.stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN +setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE + +setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +#setp hpg.stepgen.01.step_type 0 +# P8.16 GPIO1_14 +setp hpg.stepgen.01.steppin 0x4E +# P8.15 GPIO1_15 +setp hpg.stepgen.01.dirpin 0x4F + +# because column A is connected to the Y-axis output +# the BeBoPr++ signal needs to be Y-max means P8.14 +net home-y bb_gpio.p8.in-14 => axis.1.home-sw-in +setp bb_gpio.p8.in-14.invert 1 + +# ################ +# Z [2] Axis = column B +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hpg.stepgen.02.enable + + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => hpg.stepgen.02.position-cmd + +net motor.02.pos-fb <= hpg.stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN +setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hpg.stepgen.02.position-scale [AXIS_2]SCALE + +setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +#setp hpg.stepgen.02.step_type 0 +# P9.15 GPIO1_16 +setp hpg.stepgen.02.steppin 0x50 +# P9.23 GPIO1_17 +setp hpg.stepgen.02.dirpin 0x51 + +# because column B is connected to the Z-axis output +# the BeBoPr++ signal needs to be Z-max means P8.18 +net home-z bb_gpio.p8.in-18 => axis.2.home-sw-in +setp bb_gpio.p8.in-18.invert 1 + +# ################ +# A [3] Axis (Extruder 1) +# ################ + +# axis enable chain +newsig emcmot.03.enable bit +sets emcmot.03.enable FALSE + +net emcmot.03.enable <= axis.3.amp-enable-out +net emcmot.03.enable => hpg.stepgen.03.enable + + +# position command and feedback +net emcmot.03.pos-cmd <= axis.3.motor-pos-cmd +net emcmot.03.pos-cmd => hpg.stepgen.03.position-cmd + +net motor.03.pos-fb <= hpg.stepgen.03.position-fb +net motor.03.pos-fb => axis.3.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP +setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD + +setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN +setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE + +setp hpg.stepgen.03.position-scale [AXIS_3]SCALE + +setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL +setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC + +#setp hpg.stepgen.03.step_type 0 +# P9.22 GPIO0_2 +setp hpg.stepgen.03.steppin 0x22 +# P9.21 GPIO0_3 +setp hpg.stepgen.03.dirpin 0x23 + + +# ################ +# B [4] Axis (Extruder 2) +# ################ + +# axis enable chain +newsig emcmot.04.enable bit +sets emcmot.04.enable FALSE + +net emcmot.04.enable <= axis.4.amp-enable-out +net emcmot.04.enable => hpg.stepgen.04.enable + + +# position command and feedback +net emcmot.04.pos-cmd <= axis.4.motor-pos-cmd +net emcmot.04.pos-cmd => hpg.stepgen.04.position-cmd + +net motor.04.pos-fb <= hpg.stepgen.04.position-fb +net motor.04.pos-fb => axis.4.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.04.dirsetup [AXIS_4]DIRSETUP +setp hpg.stepgen.04.dirhold [AXIS_4]DIRHOLD + +setp hpg.stepgen.04.steplen [AXIS_4]STEPLEN +setp hpg.stepgen.04.stepspace [AXIS_4]STEPSPACE + +setp hpg.stepgen.04.position-scale [AXIS_4]SCALE + +setp hpg.stepgen.04.maxvel [AXIS_4]STEPGEN_MAX_VEL +setp hpg.stepgen.04.maxaccel [AXIS_4]STEPGEN_MAX_ACC + +#setp hpg.stepgen.04.step_type 0 +# P9.18 GPIO0_4 +setp hpg.stepgen.04.steppin 0x24 +# P9.17 GPIO0_5 +setp hpg.stepgen.04.dirpin 0x25 + + +# ################################################## +# Standard I/O - EStop, Enables, Limit Switches, Etc +# ################################################## + +# create a signal for the estop loopback +net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# P9-17 (B_DIR), P9-18 (B_STP), P9-24 (SPINDLE), P9-26 (AXES_ENA) + +# Machine power (BeBoPr I/O-Enable) +# +# Link pepper component as last item in io_enable chain +# +net estop-loop => pepper.io-ena.in +net io-enable pepper.io-ena.out => bb_gpio.p8.out-07 +setp bb_gpio.p8.out-07.invert 1 + +# feed stepper enables to pepper component +net emcmot.00.enable => pepper.stepper-ena.0.in +net emcmot.01.enable => pepper.stepper-ena.1.in +net emcmot.02.enable => pepper.stepper-ena.2.in +net emcmot.03.enable => pepper.stepper-ena.3.in +net emcmot.04.enable => pepper.stepper-ena.4.in + +# feed resulting enable outputs to bebopr +net ena1 pepper.enable-sck.out => bb_gpio.p9.out-26 +net ena2 pepper.spindle-mosi.out => bb_gpio.p9.out-24 +setp bb_gpio.p9.out-26.invert 1 +setp bb_gpio.p9.out-24.invert 1 + +## +# Set PEPPER configuration parameters +# +setp pepper.no-store [PEPPER]VOLATILE +setp pepper.cycle-time [EMCMOT]BASE_PERIOD + +setp pepper.axis.0.micro-step [AXIS_0]MICRO_STEP +setp pepper.axis.1.micro-step [AXIS_1]MICRO_STEP +setp pepper.axis.2.micro-step [AXIS_2]MICRO_STEP +setp pepper.axis.3.micro-step [AXIS_3]MICRO_STEP +setp pepper.axis.4.micro-step [AXIS_4]MICRO_STEP + +setp pepper.axis.0.idle-current [AXIS_0]IDLE_CURRENT +setp pepper.axis.1.idle-current [AXIS_1]IDLE_CURRENT +setp pepper.axis.2.idle-current [AXIS_2]IDLE_CURRENT +setp pepper.axis.3.idle-current [AXIS_3]IDLE_CURRENT +setp pepper.axis.4.idle-current [AXIS_4]IDLE_CURRENT + +setp pepper.axis.0.active-current [AXIS_0]ACTIVE_CURRENT +setp pepper.axis.1.active-current [AXIS_1]ACTIVE_CURRENT +setp pepper.axis.2.active-current [AXIS_2]ACTIVE_CURRENT +setp pepper.axis.3.active-current [AXIS_3]ACTIVE_CURRENT +setp pepper.axis.4.active-current [AXIS_4]ACTIVE_CURRENT + +setp pepper.axis.0.idle-decay [AXIS_0]IDLE_DECAY +setp pepper.axis.1.idle-decay [AXIS_1]IDLE_DECAY +setp pepper.axis.2.idle-decay [AXIS_2]IDLE_DECAY +setp pepper.axis.3.idle-decay [AXIS_3]IDLE_DECAY +setp pepper.axis.4.idle-decay [AXIS_4]IDLE_DECAY + +setp pepper.axis.0.active-decay [AXIS_0]ACTIVE_DECAY +setp pepper.axis.1.active-decay [AXIS_1]ACTIVE_DECAY +setp pepper.axis.2.active-decay [AXIS_2]ACTIVE_DECAY +setp pepper.axis.3.active-decay [AXIS_3]ACTIVE_DECAY +setp pepper.axis.4.active-decay [AXIS_4]ACTIVE_DECAY + +# ################################################## +# PWM and Temperature Signals +# ################################################## + +# Define signals to use elsewhere (ie: M1xx codes) +# If you change any names here, lots of things will break! +newsig e0.temp.set float +newsig e0.temp.meas float +newsig bed.temp.set float +newsig bed.temp.meas float +newsig fan.speed.set float + + +setp hpg.pwmgen.00.pwm_period 10000000 + +# J2 E0 Heater PRU1.out1 +setp hpg.pwmgen.00.out.00.pin 0x37 +setp hpg.pwmgen.00.out.00.enable 1 +setp hpg.pwmgen.00.out.00.value 0.0 + +#signals for comparing set value and actual value of temperature +#newsig M209_set_temp float +newsig sub_temp_min float +newsig add_temp_max float +newsig e0_temp_within_range bit + +#set boundaries with sum2 +1 and -1 of the wanted temperature +sets add_temp_max 1 +sets sub_temp_min -1 + +net e0.temp.set => sum2.0.in0 +setp sum2.0.in1 2 +#net add_temp_max.out => sum2.0.in1 + +net e0.temp.set => sum2.1.in0 +setp sum2.1.in1 -2 +#net sub_temp_min.out => sum2.1.in1 + +#the values will be given to the wcomp.0 function +net minboundary sum2.1.out => wcomp.0.min +net maxboundary sum2.0.out => wcomp.0.max +net e0.temp.meas => wcomp.0.in + +#the output of wcomp.0 will say if measured temperature is in range of set value +#this needs to be coupled to a digital input for M66 readout +net e0_temp_within_range wcomp.0.out => motion.digital-in-00 + +# no longer J3 E1 Heater PRU1.out0 +# instead used for FAN control +# we use scale 255 for compatibility with slicing software +setp hpg.pwmgen.00.out.01.pin 0x36 +setp hpg.pwmgen.00.out.01.enable 1 +setp hpg.pwmgen.00.out.01.value 0.0 +setp hpg.pwmgen.00.out.01.scale 255 + +#linking motion.analog-out-00 to fan speed.set.signal +net fan.speed.set <= motion.analog-out-00 +net fan.speed.set => hpg.pwmgen.00.out.01.value + + +# J4 Bed Heater GPIO2.16 +setp hpg.pwmgen.00.out.02.pin 0x52 +setp hpg.pwmgen.00.out.02.enable 1 +setp hpg.pwmgen.00.out.02.value 0.0 + +# PID for Extruder 0 temperature control +net e0.temp.meas <= Therm.temp0 +net e0.temp.meas => pid.0.feedback + +sets e0.temp.set 0 +net e0.temp.set => pid.0.command + +net e0.heater <= pid.0.output +net e0.heater => limit1.0.in +net e0.heaterl <= limit1.0.out +net e0.heaterl => hpg.pwmgen.00.out.00.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.0.min 0 + +# PID for Bed temperature control +net bed.temp.meas <= Therm.temp1 +net bed.temp.meas => pid.1.feedback + +sets bed.temp.set 0 +net bed.temp.set => pid.1.command + +net bed.heater <= pid.1.output +net bed.heater => limit1.1.in +net bed.heaterl <= limit1.1.out +net bed.heaterl => hpg.pwmgen.00.out.02.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.1.min 0 + +# PID Parameters for adjusting temperature control +# Extruder +#setp pid.0.FF0 0 +#setp pid.0.FF1 0 +#setp pid.0.FF2 0 +setp pid.0.Pgain 0.30 +setp pid.0.Igain 0.00001 +setp pid.0.Dgain 0.9375 +setp pid.0.maxerrorI 1.0 +setp pid.0.bias 0.5 +setp pid.0.enable 1 + +# Bed +#setp pid.1.FF0 0 +#setp pid.1.FF1 0 +#setp pid.1.FF2 0 +setp pid.1.Pgain 1 +setp pid.1.Igain 0.0 +setp pid.1.Dgain 0.0 +setp pid.1.maxerrorI 1.0 +setp pid.1.bias 0.5 +setp pid.1.enable 1 diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pepper/lineardelta.ini b/configs/ARM/BeagleBone/BeBoPr++/Pepper/lineardelta.ini new file mode 100755 index 00000000000..68ba8599661 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pepper/lineardelta.ini @@ -0,0 +1,415 @@ +[PRUCONF] +DRIVER=hal_pru_generic +#CONFIG=pru=1 num_stepgens=5 num_pwmgens=3 disabled=1 +CONFIG=pru=1 num_stepgens=5 num_pwmgens=3 +PRUBIN=xenomai/pru_generic.bin + + +[PEPPER] +# depending on this setting, changes are permanently stored in PEPPER's EEPROM +VOLATILE=1 + +[EMC] +# Name of machine, for use with display, etc. +MACHINE = lineardelta + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + +[MACHINE] +# Machine configuration for delta printer + +# when calibrating, if a move at the center (0,0) is actual +# lower than should be (moves into the bed) , then decrease +# the delta radius +#DELTA_R = 50.807 +DELTA_R = 48.775 + +# now when the effector travels over the bed in a straight line +# insert a fineliner in the effector and draw a 10x10 cm square +# measure the square and decrease the rod length if the drawing is +# bigger than should be. After that do the delta radius correction +#CF_ROD = 326.37 +CF_ROD = 131.12 + + +[DISPLAY] +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +#DISPLAY = gscreen +DISPLAY = axis + +# Touchy currently won't work without some hardware buttons/jog-wheel +#DISPLAY = touchy + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.200 +#CYCLE_TIME for using Gscreen +#CYCLE_TIME = 500 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + +PYVCP = ./BeBoPr.panel.xml + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + +[RS274NGC] +# File containing interpreter variables +PARAMETER_FILE = ./pru-stepper.var + +#subroutine path for the custom FDM printing .ngc files used for remapping +#use directory in config path until more suitable location. this w.r.t the +#fact that not every machine will have an extruder and/or fan +SUBROUTINE_PATH = ./subroutines + +#remapping M106 (fan control in reprap style) to M206 +REMAP=M206 modalgroup=10 argspec=P ngc=fancontrol + + +[EMCMOT] +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Fast task period, in nanoseconds +BASE_PERIOD = 100000 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + +[HAL] +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = lineardelta.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +POSTGUI_HALFILE = ./BeBoPr.postgui.hal + + +[TRAJ] +ARC_BLEND_ENABLE = 1 +ARC_BLEND_FALLBACK_ENABLE = 0 +ARC_BLEND_OPTIMIZATION_DEPTH = 50 +ARC_BLEND_GAP_CYCLES = 4 +ARC_BLEND_RAMP_FREQ = 20 + +AXES = 5 +COORDINATES = X Y Z A B + +# column 0 is wired to axis[0] = x-axis output +# column 1 is wired to axis[1] = y-axis output +# column 2 is wired to axis[2] = z-axis output + +MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 10.00 +MAX_LINEAR_VELOCITY = 50.00 + + +[AXIS_0] +# column 0 +# +# PRU gives 10us steptime with 10 us steplen: max 50 kHz steprate +# Scale is 200 steps/rev * 40 mm/rev = 1000 steps/inch +# 1:32 microstepping => 32*200 / 40 == 160 steps/mm +# 50 kHz => 312.5 mm/s +# Set Stepgen max 20% higher than the axis and lower than PRU limit +# +TYPE = LINEAR +MAX_VELOCITY = 250.0 +#MAX_ACCELERATION = 3000.0 +MAX_ACCELERATION = 1000.0 +STEPGEN_MAX_VEL = 300 +#STEPGEN_MAX_ACC = 3600 +STEPGEN_MAX_ACC = 1200 +BACKLASH = 0.000 +SCALE = 160.0 +MIN_LIMIT = -250.0 +MAX_LIMIT = 250.0 +FERROR = 5.0 +MIN_FERROR = 1.0 + +HOME = 225.9 +HOME_OFFSET = 225.9 +HOME_SEARCH_VEL = 14.9 +HOME_LATCH_VEL = -1.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 0 + +# these are in nanoseconds for DRV8825 +DIRSETUP = 650 +DIRHOLD = 650 +STEPLEN = 1900 +STEPSPACE = 1900 + +# +# PEPPER stepper driver settings: +# CURRENT: peak current in 0.1 A units (e.g. 15 is 1.5A) +# DECAY: 0 = slow, 1 = fast, 2 = mixed +# MICRO_STEP: 1, 2, 4, 8, 16, 32 +# +MICRO_STEP = 32 +ACTIVE_CURRENT = 12 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 3 +IDLE_DECAY = 1 + + +[AXIS_1] +# column 1 +# +# PRU gives 10us steptime with 10 us steplen: max 50 kHz steprate +# Scale is 200 steps/rev * 40 mm/rev = 1000 steps/inch +# 1:32 microstepping => 32*200 / 40 == 160 steps/mm +# 50 kHz => 312.5 mm/s +# Set Stepgen max 20% higher than the axis and lower than PRU limit +# +TYPE = LINEAR +MAX_VELOCITY = 250.0 +#MAX_ACCELERATION = 3000.0 +MAX_ACCELERATION = 1000.0 +STEPGEN_MAX_VEL = 300 +#STEPGEN_MAX_ACC = 3600 +STEPGEN_MAX_ACC = 1200 +BACKLASH = 0.000 +SCALE = 160.0 +MIN_LIMIT = -250.0 +MAX_LIMIT = 250.0 +FERROR = 5.0 +MIN_FERROR = 1.0 + +HOME = 225.9 +HOME_OFFSET = 225.9 +HOME_SEARCH_VEL = 15.1 +HOME_LATCH_VEL = -1.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 0 + +# these are in nanoseconds for DRV8825 +DIRSETUP = 650 +DIRHOLD = 650 +STEPLEN = 1900 +STEPSPACE = 1900 + +# +# PEPPER stepper driver settings: +# CURRENT: peak current in 0.1 A units (e.g. 15 is 1.5A) +# DECAY: 0 = slow, 1 = fast, 2 = mixed +# MICRO_STEP: 1, 2, 4, 8, 16, 32 +# +MICRO_STEP = 32 +ACTIVE_CURRENT = 12 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 3 +IDLE_DECAY = 1 + + +[AXIS_2] +# column 2 +# +# PRU gives 10us steptime with 10 us steplen: max 50 kHz steprate +# Scale is 200 steps/rev * 40 mm/rev = 1000 steps/inch +# 1:32 microstepping => 32*200 / 40 == 160 steps/mm +# 50 kHz => 312.5 mm/s +# Set Stepgen max 20% higher than the axis and lower than PRU limit +# +TYPE = LINEAR +MAX_VELOCITY = 250.0 +#MAX_ACCELERATION = 3000.0 +MAX_ACCELERATION = 1000.0 +STEPGEN_MAX_VEL = 300 +#STEPGEN_MAX_ACC = 3600 +STEPGEN_MAX_ACC = 1200 +BACKLASH = 0.000 +SCALE = 160.0 +MIN_LIMIT = -250.0 +MAX_LIMIT = 250.0 +FERROR = 5.0 +MIN_FERROR = 1.0 + +HOME = 225.9 +HOME_OFFSET = 225.9 +HOME_SEARCH_VEL = 15.0 +HOME_LATCH_VEL = -1.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 0 + +# these are in nanoseconds for DRV8825 +DIRSETUP = 650 +DIRHOLD = 650 +STEPLEN = 1900 +STEPSPACE = 1900 + +# +# PEPPER stepper driver settings: +# CURRENT: peak current in 0.1 A units (e.g. 15 is 1.5A) +# DECAY: 0 = slow, 1 = fast, 2 = mixed +# MICRO_STEP: 1, 2, 4, 8, 16, 32 +# +MICRO_STEP = 32 +ACTIVE_CURRENT = 12 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 3 +IDLE_DECAY = 1 + + +[AXIS_3] +# extruder 1 +# +# PRU gives 10us steptime with 10 us steplen: max 50 kHz steprate +# Scale is 200 steps/rev * 40 mm/rev = 1000 steps/inch +# 1:32 microstepping => 32*200 / 40 == 160 steps/mm +# 50 kHz => 312.5 mm/s +# Set Stepgen max 20% higher than the axis and lower than PRU limit +# +TYPE = LINEAR +MAX_VELOCITY = 25.0 +MAX_ACCELERATION = 3000.0 +STEPGEN_MAX_VEL = 30 +STEPGEN_MAX_ACC = 3600 +BACKLASH = 0.000 +SCALE = 1600.0 +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 +FERROR = 5.0 +MIN_FERROR = 1.0 + +HOME = 0 +HOME_OFFSET = 0 +#HOME_SEARCH_VEL = 20.0 +#HOME_LATCH_VEL = -1.0 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 0 + +# these are in nanoseconds for DRV8825 +DIRSETUP = 650 +DIRHOLD = 650 +STEPLEN = 1900 +STEPSPACE = 1900 + +# +# PEPPER stepper driver settings: +# CURRENT: peak current in 0.1 A units (e.g. 15 is 1.5A) +# DECAY: 0 = slow, 1 = fast, 2 = mixed +# MICRO_STEP: 1, 2, 4, 8, 16, 32 +# +MICRO_STEP = 32 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 1 + + +[AXIS_4] +# extruder 2 +# +# PRU gives 10us steptime with 10 us steplen: max 50 kHz steprate +# Scale is 200 steps/rev * 40 mm/rev = 1000 steps/inch +# 1:32 microstepping => 32*200 / 40 == 160 steps/mm +# 50 kHz => 312.5 mm/s +# Set Stepgen max 20% higher than the axis and lower than PRU limit +# +TYPE = LINEAR +MAX_VELOCITY = 250.0 +MAX_ACCELERATION = 3000.0 +STEPGEN_MAX_VEL = 300 +STEPGEN_MAX_ACC = 3600 +BACKLASH = 0.000 +SCALE = 160.0 +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 +FERROR = 5.0 +MIN_FERROR = 1.0 + +HOME = 0 +HOME_OFFSET = 0 +#HOME_SEARCH_VEL = 20.0 +#HOME_LATCH_VEL = -1.0 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 0 + +# these are in nanoseconds for DRV8825 +DIRSETUP = 650 +DIRHOLD = 650 +STEPLEN = 1900 +STEPSPACE = 1900 + +# +# PEPPER stepper driver settings: +# CURRENT: peak current in 0.1 A units (e.g. 15 is 1.5A) +# DECAY: 0 = slow, 1 = fast, 2 = mixed +# MICRO_STEP: 1, 2, 4, 8, 16, 32 +# +MICRO_STEP = 32 +ACTIVE_CURRENT = 10 +ACTIVE_DECAY = 1 +IDLE_CURRENT = 2 +IDLE_DECAY = 1 + + +[EMCIO] +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = ./tool.tbl diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pepper/setup.bridge.sh b/configs/ARM/BeagleBone/BeBoPr++/Pepper/setup.bridge.sh new file mode 100755 index 00000000000..62407614277 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pepper/setup.bridge.sh @@ -0,0 +1,129 @@ +#!/bin/bash +# Copyright 2013 +# Charles Steinkuehler +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +dtbo_err () { + echo "Error loading device tree overlay file: $DTBO" >&2 + exit 1 +} + +pin_err () { + echo "Error exporting pin:$PIN" >&2 + exit 1 +} + +dir_err () { + echo "Error setting direction:$DIR on pin:$PIN" >&2 + exit 1 +} + +SLOTS=/sys/devices/bone_capemgr.*/slots + +# Export GPIO pins +export_gpio () { + while read PIN DIR JUNK ; do + case "$PIN" in + ""|\#*) + continue ;; + *) + [ -r /sys/class/gpio/gpio$PIN ] && continue + sudo -A su -c "echo $PIN > /sys/class/gpio/export" || pin_err + sudo -A su -c "echo $DIR > /sys/class/gpio/gpio$PIN/direction" || dir_err + ;; + esac + + done +} + +# Make sure required device tree overlay(s) are loaded +ACTIVE="" +for DTBO in cape-bebopr-pp cape-bebopr-brdg BB-LCNC-BEBOPRBR ; do + + BEBOPR=`grep ${DTBO} ${SLOTS} | egrep "[0-9]+: 5[4567]:P-"` + if [ -n "${BEBOPR}" ] ; then + SLOT=`echo ${BEBOPR} | cut -d':' -f1` + echo -n "Cape \"${DTBO}\" with EEPROM in slot ${SLOT} is " + echo ${BEBOPR} | grep -q "0: 54:P---F" + if [ $? -eq 0 ] ; then + echo "active" + ACTIVE=${SLOT} + break + else + echo "not active" + fi + fi + + BEBOPR=`grep ${DTBO} ${SLOTS} | egrep "[0-9]+: ff:P-O-L"` + if [ -n "${BEBOPR}" ] ; then + SLOT=`echo ${BEBOPR} | cut -d':' -f1` + echo "Overlay \"${DTBO}\" in slot ${SLOT} is active" + ACTIVE=${SLOT} + break + fi +done + +if [ -z "${ACTIVE}" ] ; then + echo "Need to load overlay" + +# Try loading an overlay. Start with the ones using most resources +# and most likely to fail on older capes. + + for DTBO in cape-bebopr-pp:R3 cape-bebopr-brdg:R2 BB-LCNC-BEBOPRBR ; do + echo -n "Loading overlay \"${DTBO}\" ... " + if sudo -A su -c "echo $DTBO > $SLOTS" ; then + echo "Success" + break + else + echo "Failed" + fi + done + sleep 1 + +fi + +if [ ! -r /sys/devices/ocp.*/44e0d000.tscadc/tiadc/iio:device0/in_voltage5_raw ] ; then + echo "Analog input files not found in /sys/devices/ocp.*/44e0d000.tscadc/tiadc/iio:device0/" >&2 + exit 1; +fi + +if [ ! -r /sys/class/uio/uio0 ] ; then + echo PRU control files not found in /sys/class/uio/uio0 >&2 + exit 1; +fi + +# Using Official overlay, setup pin muxing to match what the HAL file expects + +# Setup PWM outputs to use GPIO pins +for FILE in /sys/devices/ocp.*/bebopr_pwm_J[234]_pinmux.*/state ; do + if [ -f $FILE ] ; then + sudo -A su -c "echo gpio > $FILE" || bebopr_err pwm: $FILE + fi +done + +# Setup LED with no trigger, so we can drive it with the GPIO pin +# Change this if you want the LED tied to something else (like heartbeat) +FILE=/sys/devices/ocp.*/bebopr_leds.*/leds/bebopr\:status_led/trigger +if [ -f $FILE ] ; then + sudo -A su -c "echo none > $FILE" || bebopr_err led: $FILE +fi + +# Export PWM GPIO pins which are not exported by the overlay +export_gpio <<- EOF + 23 low # P8.13 gpio0.23 PWM0 + 22 low # P8.19 gpio0.22 PWM1 + 50 low # p9.14 gpio1.18 PWM2 +EOF diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pepper/subroutines/fan_and_wait_on_temp_test.ngc b/configs/ARM/BeagleBone/BeBoPr++/Pepper/subroutines/fan_and_wait_on_temp_test.ngc new file mode 100644 index 00000000000..f0be6e50a7c --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pepper/subroutines/fan_and_wait_on_temp_test.ngc @@ -0,0 +1,11 @@ +M206 P255 +M104 P100 +M66 P0 L3 Q100 +G1 Z100 F9000 +M104 P50 +M66 P0 L3 Q1000 +G1 Z200 F9000 +M206 P0 +M104 P0 +G1 Z100 F9000 +M2 \ No newline at end of file diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pepper/subroutines/fancontrol.ngc b/configs/ARM/BeagleBone/BeBoPr++/Pepper/subroutines/fancontrol.ngc new file mode 100644 index 00000000000..ea63c3a4c9d --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pepper/subroutines/fancontrol.ngc @@ -0,0 +1,3 @@ +o sub + M68 E0 Q#

+o end sub \ No newline at end of file diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pepper/tool.tbl b/configs/ARM/BeagleBone/BeBoPr++/Pepper/tool.tbl new file mode 100644 index 00000000000..c0b72de0652 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pepper/tool.tbl @@ -0,0 +1,4 @@ +T1 P1 D0.125000 Z+0.511000 ;1/8 end mill +T2 P2 D0.062500 Z+0.100000 ;1/16 end mill +T3 P3 D0.201000 Z+1.273000 ;#7 tap drill +T99999 P99999 Z+0.100000 ;big tool number diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pololu/BeBoPr++.hal b/configs/ARM/BeagleBone/BeBoPr++/Pololu/BeBoPr++.hal new file mode 100755 index 00000000000..e352c1a5d71 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pololu/BeBoPr++.hal @@ -0,0 +1,323 @@ +# ####################################### +# +# HAL file for BeagleBone + BeBoPr cape with 4 steppers +# +# Derived from example hm2-stepper config +# +# ######################################## + +# Launch the setup script to make sure hardware setup looks good +loadusr -w ./setup.bridge.sh + + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +loadrt trivkins + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + + +# load low-level drivers +loadrt hal_bb_gpio output_pins=107,126,217,218,224,226 input_pins=108,109,110,114,117,118 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg +loadrt pid count=2 +loadrt limit1 count=2 + + +# Python user-mode HAL module to read ADC value and generate a thermostat output for PWM +# t = Thermistor table (only epcos_B57560G1104 or 1 supported for now) +# a = analog input channel +loadusr -Wn Therm ./ReadTemp.py -n Therm --num_chan 2 -t 1 1 -a 4 5 + +# ################################################ +# THREADS +# ################################################ + +addf hpg.capture-position servo-thread +addf bb_gpio.read servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf pid.0.do-pid-calcs servo-thread +addf pid.1.do-pid-calcs servo-thread +addf limit1.0 servo-thread +addf limit1.1 servo-thread +addf hpg.update servo-thread +addf bb_gpio.write servo-thread + + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + + +# ################ +# X [0] Axis +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hpg.stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => hpg.stepgen.00.position-cmd + +net motor.00.pos-fb <= hpg.stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN +setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE + +setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +#setp hpg.stepgen.00.step_type 0 +# P8.12 GPIO44 +setp hpg.stepgen.00.steppin 0x4C +# P8.11 GPIO45 +setp hpg.stepgen.00.dirpin 0x4D + +# ################ +# Y [1] Axis +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hpg.stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => hpg.stepgen.01.position-cmd + +net motor.01.pos-fb <= hpg.stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN +setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE + +setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +#setp hpg.stepgen.01.step_type 0 +# P8.16 GPIO46 +setp hpg.stepgen.01.steppin 0x4E +# P8.15 GPIO47 +setp hpg.stepgen.01.dirpin 0x4F + + +# ################ +# Z [2] Axis +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hpg.stepgen.02.enable + + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => hpg.stepgen.02.position-cmd + +net motor.02.pos-fb <= hpg.stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN +setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hpg.stepgen.02.position-scale [AXIS_2]SCALE + +setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +#setp hpg.stepgen.02.step_type 0 +# P9.15 GPIO48 +setp hpg.stepgen.02.steppin 0x50 +# P9.23 GPIO49 +setp hpg.stepgen.02.dirpin 0x51 + + +# ################ +# A [3] Axis (Extruder) +# ################ + +# axis enable chain +newsig emcmot.03.enable bit +sets emcmot.03.enable FALSE + +net emcmot.03.enable <= axis.3.amp-enable-out +net emcmot.03.enable => hpg.stepgen.03.enable + + +# position command and feedback +net emcmot.03.pos-cmd <= axis.3.motor-pos-cmd +net emcmot.03.pos-cmd => hpg.stepgen.03.position-cmd + +net motor.03.pos-fb <= hpg.stepgen.03.position-fb +net motor.03.pos-fb => axis.3.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP +setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD + +setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN +setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE + +setp hpg.stepgen.03.position-scale [AXIS_3]SCALE + +setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL +setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC + +#setp hpg.stepgen.03.step_type 0 +# P9.22 GPIO2 +setp hpg.stepgen.03.steppin 0x22 +# P9.21 GPIO3 +setp hpg.stepgen.03.dirpin 0x23 + + +# ################################################## +# Standard I/O - EStop, Enables, Limit Switches, Etc +# ################################################## + +# create a signal for the estop loopback +net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# Axis enable signals +net emcmot.00.enable => bb_gpio.p9.out-18 +setp bb_gpio.p9.out-18.invert 1 +net emcmot.01.enable => bb_gpio.p9.out-17 +setp bb_gpio.p9.out-17.invert 1 +net emcmot.02.enable => bb_gpio.p9.out-26 +setp bb_gpio.p9.out-26.invert 1 +net emcmot.03.enable => bb_gpio.p9.out-24 +setp bb_gpio.p9.out-24.invert 1 + +# Machine power (BeBoPr Enable) +# Enable tied to system Reset_n line (P9.10) +net estop-loop => bb_gpio.p8.out-07 +setp bb_gpio.p8.out-07.invert 1 + + +# ################################################## +# PWM and Temperature Signals +# ################################################## + +# Define signals to use elsewhere (ie: M1xx codes) +# If you change any names here, lots of things will break! +newsig e0.temp.set float +newsig e0.temp.meas float +newsig bed.temp.set float +newsig bed.temp.meas float + + +setp hpg.pwmgen.00.pwm_period 10000000 + +# J2 E0 Heater PRU1.out1 +setp hpg.pwmgen.00.out.00.pin 0x37 +setp hpg.pwmgen.00.out.00.enable 1 +setp hpg.pwmgen.00.out.00.value 0.0 + +# J3 E1 Heater PRU1.out0 +setp hpg.pwmgen.00.out.01.pin 0x36 +setp hpg.pwmgen.00.out.01.enable 1 +setp hpg.pwmgen.00.out.01.value 0.0 + +# J4 Bed Heater GPIO2.16 +setp hpg.pwmgen.00.out.02.pin 0x52 +setp hpg.pwmgen.00.out.02.enable 1 +setp hpg.pwmgen.00.out.02.value 0.0 + +# PID for Extruder 0 temperature control +net e0.temp.meas <= Therm.temp0 +net e0.temp.meas => pid.0.feedback + +sets e0.temp.set 0 +net e0.temp.set => pid.0.command + +net e0.heater <= pid.0.output +net e0.heater => limit1.0.in +net e0.heaterl <= limit1.0.out +net e0.heaterl => hpg.pwmgen.00.out.00.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.0.min 0 + +# PID for Bed temperature control +net bed.temp.meas <= Therm.temp1 +net bed.temp.meas => pid.1.feedback + +sets bed.temp.set 0 +net bed.temp.set => pid.1.command + +net bed.heater <= pid.1.output +net bed.heater => limit1.1.in +net bed.heaterl <= limit1.1.out +net bed.heaterl => hpg.pwmgen.00.out.02.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.1.min 0 + +# PID Parameters for adjusting temperature control +# Extruder +#setp pid.0.FF0 0 +#setp pid.0.FF1 0 +#setp pid.0.FF2 0 +setp pid.0.Pgain 0.30 +setp pid.0.Igain 0.00001 +setp pid.0.Dgain 0.9375 +setp pid.0.maxerrorI 1.0 +setp pid.0.bias 0.5 +setp pid.0.enable 1 + +# Bed +#setp pid.1.FF0 0 +#setp pid.1.FF1 0 +#setp pid.1.FF2 0 +setp pid.1.Pgain 1 +setp pid.1.Igain 0.0 +setp pid.1.Dgain 0.0 +setp pid.1.maxerrorI 1.0 +setp pid.1.bias 0.5 +setp pid.1.enable 1 diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pololu/BeBoPr++.ini b/configs/ARM/BeagleBone/BeBoPr++/Pololu/BeBoPr++.ini new file mode 100755 index 00000000000..caf615f5f0f --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pololu/BeBoPr++.ini @@ -0,0 +1,298 @@ +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=4 num_pwmgens=3 +PRUBIN=xenomai/pru_generic.bin + + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = BeBoPr++ + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +#DISPLAY = gscreen +DISPLAY = axis + +# Touchy currently won't work without some hardware buttons/jog-wheel +#DISPLAY = touchy + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.200 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +PYVCP = ./BeBoPr.panel.xml + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = ./pru-stepper.var + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = BeBoPr++.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +POSTGUI_HALFILE = ./BeBoPr.postgui.hal + + +[TRAJ] + +AXES = 4 +COORDINATES = X Y Z A +MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 20.00 +MAX_LINEAR_VELOCITY = 200.00 + + + + + +[AXIS_0] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# + + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +# scale is 200 steps/rev * 5 revs/inch +SCALE = -80 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 220.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_1] + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +SCALE = 80.0 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 250.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_2] + +TYPE = LINEAR +MAX_VELOCITY = 5.0 +MAX_ACCELERATION = 100.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 6.0 +STEPGEN_MAX_ACC = 125.0 + +BACKLASH = 0.000 + +SCALE = 1511.81102362 + +MIN_LIMIT = -10.0 +MAX_LIMIT = 200.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_3] + +TYPE = ANGULAR +MAX_VELOCITY = 31.8993189453 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 37.0 +STEPGEN_MAX_ACC = 3750.0 + +BACKLASH = 0.000 + +SCALE = -744.530002058 +#SCALE = -732.32 + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 1.0 +MIN_FERROR = .25 + +HOME = 0.0 +HOME_OFFSET = 0.0 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = ./tool.tbl diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pololu/BeBoPr.panel.xml b/configs/ARM/BeagleBone/BeBoPr++/Pololu/BeBoPr.panel.xml new file mode 100644 index 00000000000..827a07b49ae --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pololu/BeBoPr.panel.xml @@ -0,0 +1,31 @@ + + + + + + + "E0.Temp.set" + "3.1f" + + + + "E0.Temp" + 300 + + + + + + "Bed.Temp.set" + "3.1f" + + + + "Bed.Temp" + 300 + + diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pololu/BeBoPr.postgui.hal b/configs/ARM/BeagleBone/BeBoPr++/Pololu/BeBoPr.postgui.hal new file mode 100644 index 00000000000..d9448632adf --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pololu/BeBoPr.postgui.hal @@ -0,0 +1,8 @@ +# Include your customized HAL commands here +# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts + +net e0.temp.set => pyvcp.E0.Temp.set +net e0.temp.meas => pyvcp.E0.Temp +net bed.temp.set => pyvcp.Bed.Temp.set +net bed.temp.meas => pyvcp.Bed.Temp + diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pololu/README b/configs/ARM/BeagleBone/BeBoPr++/Pololu/README new file mode 100644 index 00000000000..32160c3b797 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pololu/README @@ -0,0 +1,18 @@ + +This configuration drives a standard 4-axis 3D printer using the PRU for +high speed step/dir pulse generation, a BeagleBone Black, a BeBoPr++ +interface board and four Pololu type stepper drivers. + +There are currently no limit switches configured, so adjust the MIN_LIMIT +and MAX_LIMIT axis settings in the ini file if your printer has less than +200 mm of X/Y travel. + +Current X and Y settings are appropriate for a typical "MendelMax" style +printer, with the following settings: + +max vel = 200 mm/s +max accel = 3000 mm/s/s +scale = 80 steps/mm + +Adjust as required for your machine. Make scale negative to invert any +axis that is moving 'backwards'. diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pololu/ReadTemp.py b/configs/ARM/BeagleBone/BeBoPr++/Pololu/ReadTemp.py new file mode 100755 index 00000000000..2eda38ce665 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pololu/ReadTemp.py @@ -0,0 +1,323 @@ +#!/usr/bin/python + +######################################################################## +# Description: temp.py # +# This code reads an ADC input on the BeagleBone and converts the # +# resulting value into a temperature according to the thermistor # +# type, accounting for the analog input circuty as implemented on # +# the BeBoPr cape # +# # +# Author(s): Charles Steinkuehler # +# License: GNU GPL Version 2.0 or (at your option) any later version. # +# # +# Major Changes: # +# 2013-June Charles Steinkuehler # +# Initial version # +######################################################################## +# Copyright (C) 2013 Charles Steinkuehler # +# # +# # +# This program is free software; you can redistribute it and/or # +# modify it under the terms of the GNU General Public License # +# as published by the Free Software Foundation; either version 2 # +# of the License, or (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # +# 02110-1301, USA. # +# # +# THE AUTHORS OF THIS PROGRAM ACCEPT ABSOLUTELY NO LIABILITY FOR # +# ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE # +# TO RELY ON SOFTWARE ALONE FOR SAFETY. Any machinery capable of # +# harming persons must have provisions for completely removing power # +# from all motors, etc, before persons enter any danger area. All # +# machinery must be designed to comply with local and national safety # +# codes, and the authors of this software can not, and do not, take # +# any responsibility for such compliance. # +######################################################################## + +import argparse +import bisect +import glob +import sys +import time + +import hal + +# Fixme: Put thermistor data in an include file +Thermistor = {} +Thermistor["epcos_B57560G1104"] = [ +# Temp, Resistance, alpha +[ -60.0, float('inf'), 7.6 ], +[ -55.0, 10011000, 7.4 ], +[ -50.0, 6956000, 7.2 ], +[ -45.0, 4894500, 6.9 ], +[ -40.0, 3485300, 6.7 ], +[ -35.0, 2510200, 6.5 ], +[ -30.0, 1827500, 6.2 ], +[ -25.0, 1344300, 6.0 ], +[ -20.0, 998530, 5.9 ], +[ -15.0, 748670, 5.7 ], +[ -10.0, 566360, 5.5 ], +[ -5.0, 432120, 5.3 ], +[ 0.0, 332400, 5.2 ], +[ 5.0, 257690, 5.0 ], +[ 10.0, 201270, 4.9 ], +[ 15.0, 158340, 4.7 ], +[ 20.0, 125420, 4.6 ], +[ 25.0, 100000, 4.5 ], +[ 30.0, 80239, 4.3 ], +[ 35.0, 64776, 4.2 ], +[ 40.0, 52598, 4.1 ], +[ 45.0, 42950, 4.0 ], +[ 50.0, 35262, 3.9 ], +[ 55.0, 29100, 3.8 ], +[ 60.0, 24136, 3.7 ], +[ 65.0, 20114, 3.6 ], +[ 70.0, 16841, 3.5 ], +[ 75.0, 14164, 3.4 ], +[ 80.0, 11963, 3.3 ], +[ 85.0, 10147, 3.3 ], +[ 90.0, 8640.7, 3.2 ], +[ 95.0, 7386.7, 3.1 ], +[ 100.0, 6338.3, 3.0 ], +[ 105.0, 5458.4, 3.0 ], +[ 110.0, 4717, 2.9 ], +[ 115.0, 4090.1, 2.8 ], +[ 120.0, 3558.1, 2.8 ], +[ 125.0, 3105, 2.7 ], +[ 130.0, 2717.9, 2.6 ], +[ 135.0, 2386.1, 2.6 ], +[ 140.0, 2100.8, 2.5 ], +[ 145.0, 1854.8, 2.5 ], +[ 150.0, 1641.9, 2.4 ], +[ 155.0, 1457.3, 2.4 ], +[ 160.0, 1296.7, 2.3 ], +[ 165.0, 1156.6, 2.3 ], +[ 170.0, 1034.1, 2.2 ], +[ 175.0, 926.64, 2.2 ], +[ 180.0, 832.24, 2.1 ], +[ 185.0, 749.07, 2.1 ], +[ 190.0, 675.64, 2.0 ], +[ 195.0, 610.64, 2.0 ], +[ 200.0, 552.99, 2.0 ], +[ 205.0, 501.75, 1.9 ], +[ 210.0, 456.11, 1.9 ], +[ 215.0, 415.37, 1.9 ], +[ 220.0, 378.95, 1.8 ], +[ 225.0, 346.31, 1.8 ], +[ 230.0, 317.01, 1.8 ], +[ 235.0, 290.67, 1.7 ], +[ 240.0, 266.93, 1.7 ], +[ 245.0, 245.51, 1.7 ], +[ 250.0, 226.15, 1.6 ], +[ 255.0, 208.62, 1.6 ], +[ 260.0, 192.73, 1.6 ], +[ 265.0, 178.29, 1.5 ], +[ 270.0, 165.16, 1.5 ], +[ 275.0, 153.19, 1.5 ], +[ 280.0, 142.28, 1.5 ], +[ 285.0, 132.31, 1.4 ], +[ 290.0, 123.19, 1.4 ], +[ 295.0, 114.83, 1.4 ], +[ 300.0, 107.16, 1.4 ], +[ 400.0, 0.0, 1.4 ] ] + + +# Temperature table needs resistance to be ordered low [0] to high [n] +Thermistor["epcos_B57560G1104"].reverse() + +# Epcos B57560G1104 is Marlin thermistor table 1 +Thermistor["1"] = Thermistor["epcos_B57560G1104"] + + +Thermistor["semitec_103GT_2"] = [ +# Temp, Resistance, alpha +[ -60.0, float('inf'), 0.0 ], +[ -50.0, 8743000.0, 0.0 ], +[ -40.0, 4218000.0, 0.0 ], +[ -30.0, 2132000.0, 0.0 ], +[ -20.0, 1127000.0, 0.0 ], +[ -10.0, 620000.0, 0.0 ], +[ 0.0, 353700.0, 0.0 ], +[ 10.0, 208600.0, 0.0 ], +[ 20.0, 126800.0, 0.0 ], +[ 30.0, 79360.0, 0.0 ], +[ 40.0, 50960.0, 0.0 ], +[ 50.0, 33490.0, 0.0 ], +[ 60.0, 22510.0, 0.0 ], +[ 70.0, 15440.0, 0.0 ], +[ 80.0, 10800.0, 0.0 ], +[ 90.0, 7686.0, 0.0 ], +[ 100.0, 5556.0, 0.0 ], +[ 110.0, 4082.0, 0.0 ], +[ 120.0, 3043.0, 0.0 ], +[ 130.0, 2298.0, 0.0 ], +[ 140.0, 1758.0, 0.0 ], +[ 150.0, 1360.0, 0.0 ], +[ 160.0, 1064.0, 0.0 ], +[ 170.0, 841.4, 0.0 ], +[ 180.0, 671.4, 0.0 ], +[ 190.0, 540.8, 0.0 ], +[ 200.0, 439.3, 0.0 ], +[ 210.0, 359.7, 0.0 ], +[ 220.0, 296.9, 0.0 ], +[ 230.0, 246.8, 0.0 ], +[ 240.0, 206.5, 0.0 ], +[ 250.0, 174.0, 0.0 ], +[ 260.0, 147.5, 0.0 ], +[ 270.0, 125.8, 0.0 ], +[ 280.0, 107.9, 0.0 ], +[ 290.0, 93.05, 0.0 ], +[ 300.0, 80.65, 0.0 ], +[ 400.0, 0.0, 1.4 ] ] + + +# Temperature table needs resistance to be ordered low [0] to high [n] +Thermistor["semitec_103GT_2"].reverse() + +# ATC Semtec 104GT-2 is Marlin thermistor table 5 +Thermistor["5"] = Thermistor["semitec_103GT_2"] + +# Test for multiple thermistor tables +Thermistor["2"] = [ +[ 400.0, 0.0, 1.4 ], +[ 300.0, 1000.0, 2.0 ], +[ 200.0, 10000.0, 3.0 ], +[ 100.0, 100000.0, 6.0 ], +[ 0.0, float('inf'), 7.6 ] ] + +# The BeBoPr board thermistor input has one side grounded and the other side +# pulled high through a 2.05K resistor to 3.6V. Following this is a 470R +# resistor, some protection diodes, and a voltage divider cosisting of two +# 10.0K resistors. The ADC voltage read is the voltage across the lower 10K +# resistor in the 470R + 10K + 10K series chain +def adc2r(V_adc): + V_T = 0.0 # Voltage across the thermistor (and the 470R + 10K + 10K resistor chain) + I_PU = 0.0 # Current flowing through the 2.05K pull-up resistor + R_TD = 0.0 # Resistance of thermistor and the 470R + 10K + 10K divider chain in parallel + R_T = 0.0 # Resistance of the thermistor + + V_T = V_adc * 2.0470 + + # No dividing by zero or negative voltages despite what the ADC says! + # Clip to a small positive value + I_PU = max((3.6 - V_T ) / 2050, 0.000001) + + R_TD = V_T / I_PU + + # Acutal resistance can't be negative, but we can get a negative value + # from the equation below for some real ADC values, so clip to avoid + # reporting crazy temperature values or dividing by zero + if R_TD >= 20470 : + R_TD = 20470 - 0.1 + + # 1 / Rtotal = 1 / ( 1 / R1 + 1 / R2 ) + # R2 = ( R1 * Rtotal ) / ( R1 - Rtotal ) + R_T = ( 20470 * R_TD ) / ( 20470 - R_TD ) + + # print "V_adc: %f V_T: %f R_TD: %f R_T: %f" % (V_adc, V_T, R_TD, R_T) + + + return R_T + +# Convert resistance value into temperature, using thermistor table +def r2t(n, R_T): + temp_slope = 0.0 + temp = 0.0 + + i = max(bisect.bisect_right(R_Key[n], R_T) - 1, 0) + + temp_slope = (thermistor[n][0][i] - thermistor[n][0][i+1]) / (thermistor[n][1][i] - thermistor[n][1][i+1]) + temp = thermistor[n][0][i] + ((R_T - thermistor[n][1][i]) * temp_slope) + #print "Temp:", temp, "i.R_T:", i, R_T, "slope:", temp_slope, + #print "Deg.left:", Thermistor["epcos_B57560G1104"][i], "Deg.right:", Thermistor["epcos_B57560G1104"][i+1] + return temp + +parser = argparse.ArgumentParser(description='HAL component to read ADC values and convert to temperature') +parser.add_argument('-n','--name', help='HAL component name',required=True) +parser.add_argument('-N','--num_chan', help='Number of analog inputs to support',default=1) +parser.add_argument('-a','--adc', nargs='+', help='ADC input to read', required=True) +parser.add_argument('-t','--therm',nargs='+', help='Thermistor table to use', required=True) +args = parser.parse_args() + +num_chan = int(args.num_chan) + +if len(args.adc) != num_chan : + raise UserWarning('Incorrect number of ADC channels specified! Expected:' + str(args.num_chan) + str(len(args.adc)) ) + +if len(args.therm) != num_chan : + raise UserWarning('Incorrect number of thermistors specified! Expected:' + args.num_chan) + +syspath = '/sys/devices/ocp.*/44e0d000.tscadc/tiadc/iio:device0/' + +FileName = [] + +for i in range(num_chan): + TempName = glob.glob (syspath + 'in_voltage' + args.adc[i] + '_raw') + FileName.insert(i, TempName[0]) + try: + if len(FileName[i]) > 0: + f = open(FileName[i], 'r') + f.close() + time.sleep(0.001) + else: + raise UserWarning('Bad Filename') + except (UserWarning, IOError) : + print("Cannot read ADC input: %s" % Filename[i]) + sys.exit(1) + +thermistor = [] +R_Key = [] +for i in range(num_chan): + if args.therm[i] in Thermistor: + # Shuffle array to make three lists of values (Temp, Resistane, Alpha) + # so we can use bisect to efficiently do table lookups + thermistor.insert(i, map(list, zip(*Thermistor[args.therm[i]])) ) + + # Pull out the resistance values to use as a key for bisect + R_Key.insert(i, thermistor[i][1] ) + + else: + print("Unknown thermistor type: %s" % args.therm) + print 'Try one of:', Thermistor.keys() + sys.exit(1) + +h = hal.component(args.name) +for i in range(num_chan): + h.newpin("raw" + str(i), hal.HAL_U32, hal.HAL_OUT) + h.newpin("temp" + str(i), hal.HAL_FLOAT, hal.HAL_OUT) + +h.ready() + +Err = 0.0 +ADC_V = 0.0 +temp = 0.0 + +while 1: + try: + for i in range(num_chan): + f = open(FileName[i], 'r') + ADC_IN = int(f.readline()) + h['raw' + str(i)] = ADC_IN + ADC_V = float(ADC_IN) * 1.8 / 4096.0 + temp = r2t(i,adc2r(ADC_V)) + h['temp' + str(i)] = temp + #print ADC_IN, temp + f.close() + time.sleep(0.001) + + time.sleep(0.049) + + except IOError: + continue + + except KeyboardInterrupt: + raise SystemExit + diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pololu/TAKE-5.hal b/configs/ARM/BeagleBone/BeBoPr++/Pololu/TAKE-5.hal new file mode 100755 index 00000000000..fb99d043f18 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pololu/TAKE-5.hal @@ -0,0 +1,366 @@ +# ####################################### +# +# HAL file for BeBoPr++ with TAKE-5 (5 steppers modules) +# +# Derived from BeBoPr++ config +# +# ######################################## + +# Launch the setup script to make sure hardware setup looks good +loadusr -w ./setup.bridge.sh + + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +loadrt trivkins + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + + +# load low-level drivers +loadrt hal_bb_gpio output_pins=107,126,224,226 input_pins=108,109,110,114,117,118 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg +loadrt pid count=2 +loadrt limit1 count=2 + + +# Python user-mode HAL module to read ADC value and generate a thermostat output for PWM +# t = Thermistor table (only epcos_B57560G1104 or 1 supported for now) +# a = analog input channel +loadusr -Wn Therm ./ReadTemp.py -n Therm --num_chan 2 -t 1 1 -a 4 5 + +# ################################################ +# THREADS +# ################################################ + +addf hpg.capture-position servo-thread +addf bb_gpio.read servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf pid.0.do-pid-calcs servo-thread +addf pid.1.do-pid-calcs servo-thread +addf limit1.0 servo-thread +addf limit1.1 servo-thread +addf hpg.update servo-thread +addf bb_gpio.write servo-thread + + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + + +# ################ +# X [0] Axis +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hpg.stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => hpg.stepgen.00.position-cmd + +net motor.00.pos-fb <= hpg.stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN +setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE + +setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +#setp hpg.stepgen.00.step_type 0 +# P8.12 GPIO44 +setp hpg.stepgen.00.steppin 0x4C +# P8.11 GPIO45 +setp hpg.stepgen.00.dirpin 0x4D + + +# ################ +# Y [1] Axis +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hpg.stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => hpg.stepgen.01.position-cmd + +net motor.01.pos-fb <= hpg.stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN +setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE + +setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +#setp hpg.stepgen.01.step_type 0 +# P8.16 GPIO46 +setp hpg.stepgen.01.steppin 0x4E +# P8.15 GPIO47 +setp hpg.stepgen.01.dirpin 0x4F + + +# ################ +# Z [2] Axis +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hpg.stepgen.02.enable + + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => hpg.stepgen.02.position-cmd + +net motor.02.pos-fb <= hpg.stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN +setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hpg.stepgen.02.position-scale [AXIS_2]SCALE + +setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +#setp hpg.stepgen.02.step_type 0 +# P9.15 GPIO48 +setp hpg.stepgen.02.steppin 0x50 +# P9.23 GPIO49 +setp hpg.stepgen.02.dirpin 0x51 + + +# ################ +# A [3] Axis (Extruder) +# ################ + +# axis enable chain +newsig emcmot.03.enable bit +sets emcmot.03.enable FALSE + +net emcmot.03.enable <= axis.3.amp-enable-out +net emcmot.03.enable => hpg.stepgen.03.enable + + +# position command and feedback +net emcmot.03.pos-cmd <= axis.3.motor-pos-cmd +net emcmot.03.pos-cmd => hpg.stepgen.03.position-cmd + +net motor.03.pos-fb <= hpg.stepgen.03.position-fb +net motor.03.pos-fb => axis.3.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP +setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD + +setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN +setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE + +setp hpg.stepgen.03.position-scale [AXIS_3]SCALE + +setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL +setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC + +#setp hpg.stepgen.03.step_type 0 +# P9.22 GPIO2 +setp hpg.stepgen.03.steppin 0x22 +# P9.21 GPIO3 +setp hpg.stepgen.03.dirpin 0x23 + +# ################ +# B [4] Axis (2nd Extruder) +# ################ + +# axis enable chain +newsig emcmot.04.enable bit +sets emcmot.04.enable FALSE + +net emcmot.04.enable <= axis.4.amp-enable-out +net emcmot.04.enable => hpg.stepgen.04.enable + + +# position command and feedback +net emcmot.04.pos-cmd <= axis.4.motor-pos-cmd +net emcmot.04.pos-cmd => hpg.stepgen.04.position-cmd + +net motor.04.pos-fb <= hpg.stepgen.04.position-fb +net motor.04.pos-fb => axis.4.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.04.dirsetup [AXIS_4]DIRSETUP +setp hpg.stepgen.04.dirhold [AXIS_4]DIRHOLD + +setp hpg.stepgen.04.steplen [AXIS_4]STEPLEN +setp hpg.stepgen.04.stepspace [AXIS_4]STEPSPACE + +setp hpg.stepgen.04.position-scale [AXIS_4]SCALE + +setp hpg.stepgen.04.maxvel [AXIS_4]STEPGEN_MAX_VEL +setp hpg.stepgen.04.maxaccel [AXIS_4]STEPGEN_MAX_ACC + +#setp hpg.stepgen.04.step_type 0 +# P9.18 GPIO0_4 +setp hpg.stepgen.04.steppin 0x24 +# P9.17 GPIO0_5 +setp hpg.stepgen.04.dirpin 0x25 + + +# ################################################## +# Standard I/O - EStop, Enables, Limit Switches, Etc +# ################################################## + +# create a signal for the estop loopback +net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# Axes enable signal (should or all enable outputs? for now use only one) +net emcmot.00.enable => bb_gpio.p9.out-26 +setp bb_gpio.p9.out-26.invert 1 + +#net emcmot.01.enable => bb_gpio.p9.out-17 +#setp bb_gpio.p9.out-17.invert 1 +#net emcmot.02.enable => bb_gpio.p9.out-26 +#setp bb_gpio.p9.out-26.invert 1 +#net emcmot.03.enable => bb_gpio.p9.out-24 +#setp bb_gpio.p9.out-24.invert 1 +#net emcmot.04.enable => bb_gpio.p9.out-24 FIXME +#setp bb_gpio.p9.out-24.invert 1 FIXME + +# Machine power (BeBoPr Enable) +# Enable tied to system Reset_n line (P9.10) +net estop-loop => bb_gpio.p8.out-07 +setp bb_gpio.p8.out-07.invert 1 + + +# ################################################## +# PWM and Temperature Signals +# ################################################## + +# Define signals to use elsewhere (ie: M1xx codes) +# If you change any names here, lots of things will break! +newsig e0.temp.set float +newsig e0.temp.meas float +newsig bed.temp.set float +newsig bed.temp.meas float + + +setp hpg.pwmgen.00.pwm_period 10000000 + +# J2 E0 Heater PRU1.out1 +setp hpg.pwmgen.00.out.00.pin 0x37 +setp hpg.pwmgen.00.out.00.enable 1 +setp hpg.pwmgen.00.out.00.value 0.0 + +# J3 E1 Heater PRU1.out0 +setp hpg.pwmgen.00.out.01.pin 0x36 +setp hpg.pwmgen.00.out.01.enable 1 +setp hpg.pwmgen.00.out.01.value 0.0 + +# J4 Bed Heater GPIO2.16 +setp hpg.pwmgen.00.out.02.pin 0x52 +setp hpg.pwmgen.00.out.02.enable 1 +setp hpg.pwmgen.00.out.02.value 0.0 + +# PID for Extruder 0 temperature control +net e0.temp.meas <= Therm.temp0 +net e0.temp.meas => pid.0.feedback + +sets e0.temp.set 0 +net e0.temp.set => pid.0.command + +net e0.heater <= pid.0.output +net e0.heater => limit1.0.in +net e0.heaterl <= limit1.0.out +net e0.heaterl => hpg.pwmgen.00.out.00.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.0.min 0 + +# PID for Bed temperature control +net bed.temp.meas <= Therm.temp1 +net bed.temp.meas => pid.1.feedback + +sets bed.temp.set 0 +net bed.temp.set => pid.1.command + +net bed.heater <= pid.1.output +net bed.heater => limit1.1.in +net bed.heaterl <= limit1.1.out +net bed.heaterl => hpg.pwmgen.00.out.02.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.1.min 0 + +# PID Parameters for adjusting temperature control +# Extruder +#setp pid.0.FF0 0 +#setp pid.0.FF1 0 +#setp pid.0.FF2 0 +setp pid.0.Pgain 0.30 +setp pid.0.Igain 0.00001 +setp pid.0.Dgain 0.9375 +setp pid.0.maxerrorI 1.0 +setp pid.0.bias 0.5 +setp pid.0.enable 1 + +# Bed +#setp pid.1.FF0 0 +#setp pid.1.FF1 0 +#setp pid.1.FF2 0 +setp pid.1.Pgain 1 +setp pid.1.Igain 0.0 +setp pid.1.Dgain 0.0 +setp pid.1.maxerrorI 1.0 +setp pid.1.bias 0.5 +setp pid.1.enable 1 + diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pololu/TAKE-5.ini b/configs/ARM/BeagleBone/BeBoPr++/Pololu/TAKE-5.ini new file mode 100755 index 00000000000..1bfe8ef0e18 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pololu/TAKE-5.ini @@ -0,0 +1,333 @@ +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=5 num_pwmgens=3 +PRUBIN=xenomai/pru_generic.bin + + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = BeBoPr++ + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +#DISPLAY = gscreen +DISPLAY = axis + +# Touchy currently won't work without some hardware buttons/jog-wheel +#DISPLAY = touchy + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.200 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +PYVCP = ./BeBoPr.panel.xml + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = ./pru-stepper.var + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = TAKE-5.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +POSTGUI_HALFILE = ./BeBoPr.postgui.hal + + +[TRAJ] + +AXES = 5 +COORDINATES = X Y Z A B +MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 20.00 +MAX_LINEAR_VELOCITY = 200.00 + + + + + +[AXIS_0] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# + + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +# scale is 200 steps/rev * 5 revs/inch +SCALE = -80 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 220.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_1] + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +SCALE = 80.0 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 250.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_2] + +TYPE = LINEAR +MAX_VELOCITY = 5.0 +MAX_ACCELERATION = 100.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 6.0 +STEPGEN_MAX_ACC = 125.0 + +BACKLASH = 0.000 + +SCALE = 1511.81102362 + +MIN_LIMIT = -10.0 +MAX_LIMIT = 200.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_3] + +TYPE = ANGULAR +MAX_VELOCITY = 31.8993189453 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 37.0 +STEPGEN_MAX_ACC = 3750.0 + +BACKLASH = 0.000 + +SCALE = -744.530002058 +#SCALE = -732.32 + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 1.0 +MIN_FERROR = .25 + +HOME = 0.0 +HOME_OFFSET = 0.0 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + +[AXIS_4] + +TYPE = ANGULAR +MAX_VELOCITY = 31.8993189453 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 37.0 +STEPGEN_MAX_ACC = 3750.0 + +BACKLASH = 0.000 + +SCALE = -744.530002058 +#SCALE = -732.32 + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 1.0 +MIN_FERROR = .25 + +HOME = 0.0 +HOME_OFFSET = 0.0 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = ./tool.tbl diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pololu/lineardelta.hal b/configs/ARM/BeagleBone/BeBoPr++/Pololu/lineardelta.hal new file mode 100755 index 00000000000..3186b3f2364 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pololu/lineardelta.hal @@ -0,0 +1,384 @@ +# ####################################### +# +# HAL file for BeagleBone + BeBoPr++ cape with 4 steppers +# +# Derived from example hm2-stepper config +# +# ######################################## + +# Launch the setup script to make sure hardware setup looks good +loadusr -w ./setup.bridge.sh + + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +loadrt lineardeltakins + +# settings for delta printer +setp lineardeltakins.L [MACHINE]CF_ROD +setp lineardeltakins.R [MACHINE]DELTA_R + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=lineardeltakins + +# load low-level drivers +loadrt hal_bb_gpio output_pins=107,126,217,218,224,226 input_pins=108,109,110,114,117,118 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg +loadrt pid count=2 +loadrt limit1 count=2 + + +# Python user-mode HAL module to read ADC value and generate a thermostat output for PWM +# t = Thermistor table (only epcos_B57560G1104 or 1 supported for now) +# a = analog input channel +loadusr -Wn Therm ./ReadTemp.py -n Therm --num_chan 2 -t 1 1 -a 4 5 + +#used for comparing temperature set value with actual for waiting on temperature +loadrt wcomp count=1 +# Initialize the sum2 +loadrt sum2 count=2 + +# ################################################ +# THREADS +# ################################################ + +addf hpg.capture-position servo-thread +addf bb_gpio.read servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf pid.0.do-pid-calcs servo-thread +addf pid.1.do-pid-calcs servo-thread +addf limit1.0 servo-thread +addf limit1.1 servo-thread +addf hpg.update servo-thread +addf bb_gpio.write servo-thread + +addf wcomp.0 servo-thread +addf sum2.0 servo-thread +addf sum2.1 servo-thread + + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + + +# ################ +# X [0] Axis = column C +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hpg.stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => hpg.stepgen.00.position-cmd + +net motor.00.pos-fb <= hpg.stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN +setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE + +setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +#setp hpg.stepgen.00.step_type 0 +# P8.43 PRU1.out2 +setp hpg.stepgen.00.steppin 0x4C +# P8.44 PRU1.out4 +setp hpg.stepgen.00.dirpin 0x4D + +# because column C is connected to the X-axis output +# the bebopr-bridge signal needs to be X-max means P8.9 +net home-x bb_gpio.p8.in-09 => axis.0.home-sw-in +setp bb_gpio.p8.in-09.invert 1 + +# ################ +# Y [1] Axis = column A +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hpg.stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => hpg.stepgen.01.position-cmd + +net motor.01.pos-fb <= hpg.stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN +setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE + +setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +#setp hpg.stepgen.01.step_type 0 +# P8.42 PRU1.out5 +setp hpg.stepgen.01.steppin 0x4E +# P8.39 PRU1.out6 +setp hpg.stepgen.01.dirpin 0x4F + + +# because column A is connected to the Y-axis output +# the bebopr-bridge signal needs to be Y-max means P8.14 +net home-y bb_gpio.p8.in-14 => axis.1.home-sw-in +setp bb_gpio.p8.in-14.invert 1 + +# ################ +# Z [2] Axis = column B +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hpg.stepgen.02.enable + + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => hpg.stepgen.02.position-cmd + +net motor.02.pos-fb <= hpg.stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN +setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hpg.stepgen.02.position-scale [AXIS_2]SCALE + +setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +#setp hpg.stepgen.02.step_type 0 +# P8.27 PRU1.out8 +setp hpg.stepgen.02.steppin 0x50 +# P8.29 PRU1.out9 +setp hpg.stepgen.02.dirpin 0x51 + +# because column B is connected to the Z-axis output +# the bebopr-bridge signal needs to be Z-max means P8.18 +net home-z bb_gpio.p8.in-18 => axis.2.home-sw-in +setp bb_gpio.p8.in-18.invert 1 + +# ################ +# A [3] Axis (Extruder) +# ################ + +# axis enable chain +newsig emcmot.03.enable bit +sets emcmot.03.enable FALSE + +net emcmot.03.enable <= axis.3.amp-enable-out +net emcmot.03.enable => hpg.stepgen.03.enable + + +# position command and feedback +net emcmot.03.pos-cmd <= axis.3.motor-pos-cmd +net emcmot.03.pos-cmd => hpg.stepgen.03.position-cmd + +net motor.03.pos-fb <= hpg.stepgen.03.position-fb +net motor.03.pos-fb => axis.3.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP +setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD + +setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN +setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE + +setp hpg.stepgen.03.position-scale [AXIS_3]SCALE + +setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL +setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC + +#setp hpg.stepgen.03.step_type 0 +# P8.30 GPIO2.25 +setp hpg.stepgen.03.steppin 0x22 +# P8.21 GPIO1.30 +setp hpg.stepgen.03.dirpin 0x23 + + +# ################################################## +# Standard I/O - EStop, Enables, Limit Switches, Etc +# ################################################## + +# create a signal for the estop loopback +net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# Axis enable signals +net emcmot.00.enable => bb_gpio.p9.out-18 +setp bb_gpio.p9.out-18.invert 1 +net emcmot.01.enable => bb_gpio.p9.out-17 +setp bb_gpio.p9.out-17.invert 1 +net emcmot.02.enable => bb_gpio.p9.out-26 +setp bb_gpio.p9.out-26.invert 1 +net emcmot.03.enable => bb_gpio.p9.out-24 +setp bb_gpio.p9.out-24.invert 1 + +# Machine power (BeBoPr Enable) +# Enable tied to system Reset_n line (P9.10) +net estop-loop => bb_gpio.p8.out-07 +setp bb_gpio.p8.out-07.invert 1 + + +# ################################################## +# PWM and Temperature Signals +# ################################################## + +# Define signals to use elsewhere (ie: M1xx codes) +# If you change any names here, lots of things will break! +newsig e0.temp.set float +newsig e0.temp.meas float +newsig bed.temp.set float +newsig bed.temp.meas float +newsig fan.speed.set float + +setp hpg.pwmgen.00.pwm_period 10000000 + +# J2 E0 Heater PRU1.out1 +setp hpg.pwmgen.00.out.00.pin 0x37 +setp hpg.pwmgen.00.out.00.enable 1 +setp hpg.pwmgen.00.out.00.value 0.0 + +#signals for comparing set value and actual value of temperature +#newsig M209_set_temp float +newsig sub_temp_min float +newsig add_temp_max float +newsig e0_temp_within_range bit + +#set boundaries with sum2 +1 and -1 of the wanted temperature +sets add_temp_max 1 +sets sub_temp_min -1 + +net e0.temp.set => sum2.0.in0 +setp sum2.0.in1 2 +#net add_temp_max.out => sum2.0.in1 + +net e0.temp.set => sum2.1.in0 +setp sum2.1.in1 -2 +#net sub_temp_min.out => sum2.1.in1 + +#the values will be given to the wcomp.0 function +net minboundary sum2.1.out => wcomp.0.min +net maxboundary sum2.0.out => wcomp.0.max +net e0.temp.meas => wcomp.0.in + +#the output of wcomp.0 will say if measured temperature is in range of set value +#this needs to be coupled to a digital input for M66 readout +net e0_temp_within_range wcomp.0.out => motion.digital-in-00 + +# no longer J3 E1 Heater PRU1.out0 +# instead used for FAN control +# we use scale 255 for compatibility with slicing software +setp hpg.pwmgen.00.out.01.pin 0x36 +setp hpg.pwmgen.00.out.01.enable 1 +setp hpg.pwmgen.00.out.01.value 0.0 +setp hpg.pwmgen.00.out.01.scale 255 + +#linking motion.analog-out-00 to fan speed.set.signal +net fan.speed.set <= motion.analog-out-00 +net fan.speed.set => hpg.pwmgen.00.out.01.value + + +# J4 Bed Heater GPIO2.16 +setp hpg.pwmgen.00.out.02.pin 0x52 +setp hpg.pwmgen.00.out.02.enable 1 +setp hpg.pwmgen.00.out.02.value 0.0 + +# PID for Extruder 0 temperature control +net e0.temp.meas <= Therm.temp0 +net e0.temp.meas => pid.0.feedback + +sets e0.temp.set 0 +net e0.temp.set => pid.0.command + +net e0.heater <= pid.0.output +net e0.heater => limit1.0.in +net e0.heaterl <= limit1.0.out +net e0.heaterl => hpg.pwmgen.00.out.00.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.0.min 0 + +# PID for Bed temperature control +net bed.temp.meas <= Therm.temp1 +net bed.temp.meas => pid.1.feedback + +sets bed.temp.set 0 +net bed.temp.set => pid.1.command + +net bed.heater <= pid.1.output +net bed.heater => limit1.1.in +net bed.heaterl <= limit1.1.out +net bed.heaterl => hpg.pwmgen.00.out.02.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.1.min 0 + +# PID Parameters for adjusting temperature control +# Extruder +#setp pid.0.FF0 0 +#setp pid.0.FF1 0 +#setp pid.0.FF2 0 +setp pid.0.Pgain 0.30 +setp pid.0.Igain 0.00001 +setp pid.0.Dgain 0.9375 +setp pid.0.maxerrorI 1.0 +setp pid.0.bias 0.5 +setp pid.0.enable 1 + +# Bed +#setp pid.1.FF0 0 +#setp pid.1.FF1 0 +#setp pid.1.FF2 0 +setp pid.1.Pgain 1 +setp pid.1.Igain 0.0 +setp pid.1.Dgain 0.0 +setp pid.1.maxerrorI 1.0 +setp pid.1.bias 0.5 +setp pid.1.enable 1 diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pololu/lineardelta.ini b/configs/ARM/BeagleBone/BeBoPr++/Pololu/lineardelta.ini new file mode 100755 index 00000000000..e382b66476b --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pololu/lineardelta.ini @@ -0,0 +1,337 @@ +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=4 num_pwmgens=3 +PRUBIN=xenomai/pru_generic.bin + + +[EMC] +# Name of machine, for use with display, etc. +MACHINE = lineardelta4 + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + +[MACHINE] +# Machine configuration for delta printer + +# when calibrating, if a move at the center (0,0) is actual +# lower than should be (moves into the bed) , then decrease +# the delta radius +DELTA_R = 50.807 + +# now when the effector travels over the bed in a straight line +# insert a fineliner in the effector and draw a 10x10 cm square +# measure the square and decrease the rod length if the drawing is +# bigger than should be. After that do the delta radius correction +CF_ROD = 131.12 + + +[DISPLAY] +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +#DISPLAY = gscreen +DISPLAY = axis + +# Touchy currently won't work without some hardware buttons/jog-wheel +#DISPLAY = touchy + +# Cycle time, in seconds, that display will sleep between polls + +CYCLE_TIME = 0.200 +#CYCLE_TIME for using Gscreen +#CYCLE_TIME = 500 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + +PYVCP = ./BeBoPr.panel.xml + + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + +[RS274NGC] +# File containing interpreter variables +PARAMETER_FILE = ./pru-stepper.var + +#subroutine path for the custom FDM printing .ngc files used for remapping +#use directory in config path until more suitable location. this w.r.t the +#fact that not every machine will have an extruder and/or fan +SUBROUTINE_PATH = ./subroutines + +#remapping M106 (fan control in reprap style) to M206 +REMAP=M206 modalgroup=10 argspec=P ngc=fancontrol + + +[EMCMOT] +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + +[HAL] +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = lineardelta.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +POSTGUI_HALFILE = ./BeBoPr.postgui.hal + + +[TRAJ] +ARC_BLEND_ENABLE = 1 +ARC_BLEND_FALLBACK_ENABLE = 0 +ARC_BLEND_OPTIMIZATION_DEPTH = 50 +ARC_BLEND_GAP_CYCLES = 4 +ARC_BLEND_RAMP_FREQ = 20 + +AXES = 4 +COORDINATES = X Y Z A + +# column A is wired to axis[1] = y-axis output +# column B is wired to axis[2] = z-axis output +# column C is wired to axis[0] = x-axis output + +1MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 20.00 +MAX_LINEAR_VELOCITY = 200.00 + + +[AXIS_0] +# column C +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# + + +TYPE = LINEAR +MAX_VELOCITY = 250.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis + +# 1us steptime with 1us steplen gives 2us step perios (stepstick) +# 2us is a stepfreq of 500kHz +# BUT +# PRU gives 10us steptime with 10 us steplen and + +# scale = 160 steps/mm so max vel = 50kHz/160 = 312.5 mm/s +STEPGEN_MAX_VEL = 300 +STEPGEN_MAX_ACC = 3600 + +BACKLASH = 0.000 + +# scale is 128 steps/mm +SCALE = 160 + + +MIN_LIMIT = -1.0 +MAX_LIMIT = 785.0 + +FERROR = 5.0 +MIN_FERROR = 1.0 + +HOME = 247 +HOME_OFFSET = 247 +HOME_SEARCH_VEL = 30.0 +HOME_LATCH_VEL = -1.0 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds for Allegro A4988 +#DIRSETUP = 200 +#DIRHOLD = 200 +#STEPLEN = 1000 +#STEPSPACE = 1000 + +# these are in nanoseconds for DRV8825 +DIRSETUP = 650 +DIRHOLD = 650 +STEPLEN = 1900 +STEPSPACE = 1900 + +HOME_SEQUENCE = 0 + + +[AXIS_1] +# column A +TYPE = LINEAR +MAX_VELOCITY = 250.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +# scale = 160 steps/mm so max vel = 50kHz/160 = 312.5 mm/s +STEPGEN_MAX_VEL = 300 +STEPGEN_MAX_ACC = 3600 +BACKLASH = 0.000 + +SCALE = 160 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 785.0 + +FERROR = 5.0 +MIN_FERROR = 1.0 + +HOME = 248 +HOME_OFFSET = 248 +HOME_SEARCH_VEL = 30.00 +HOME_LATCH_VEL = -1.0 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds for Allegro A4988 +#DIRSETUP = 200 +#DIRHOLD = 200 +#STEPLEN = 1000 +#STEPSPACE = 1000 + +# these are in nanoseconds for DRV8825 +DIRSETUP = 650 +DIRHOLD = 650 +STEPLEN = 1900 +STEPSPACE = 1900 + +HOME_SEQUENCE = 0 + + +[AXIS_2] +# column B +TYPE = LINEAR +MAX_VELOCITY = 250.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +# scale = 160 steps/mm so max vel = 50kHz/160 = 312.5 mm/s +STEPGEN_MAX_VEL = 300 +STEPGEN_MAX_ACC = 3600 + +BACKLASH = 0.000 + +SCALE = 160 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 785 + +FERROR = 5.0 +MIN_FERROR = 1.0 + +HOME = 247 +HOME_OFFSET = 247 +HOME_SEARCH_VEL = 30.0 +HOME_LATCH_VEL = -1.0 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds for DRV8825 +DIRSETUP = 650 +DIRHOLD = 650 +STEPLEN = 1900 +STEPSPACE = 1900 + +HOME_SEQUENCE = 0 + + +[AXIS_3] +# extruder +TYPE = LINEAR +MAX_VELOCITY = 11 +MAX_ACCELERATION = 1000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 13 +STEPGEN_MAX_ACC = 1200 + +BACKLASH = 0.000 + +SCALE = 3800 + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 5.0 +MIN_FERROR = 1.0 + +HOME = 0.0 +HOME_OFFSET = 0.0 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +HOME_SEQUENCE = 0 + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = ./tool.tbl diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pololu/setup.bridge.sh b/configs/ARM/BeagleBone/BeBoPr++/Pololu/setup.bridge.sh new file mode 100755 index 00000000000..62407614277 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pololu/setup.bridge.sh @@ -0,0 +1,129 @@ +#!/bin/bash +# Copyright 2013 +# Charles Steinkuehler +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +dtbo_err () { + echo "Error loading device tree overlay file: $DTBO" >&2 + exit 1 +} + +pin_err () { + echo "Error exporting pin:$PIN" >&2 + exit 1 +} + +dir_err () { + echo "Error setting direction:$DIR on pin:$PIN" >&2 + exit 1 +} + +SLOTS=/sys/devices/bone_capemgr.*/slots + +# Export GPIO pins +export_gpio () { + while read PIN DIR JUNK ; do + case "$PIN" in + ""|\#*) + continue ;; + *) + [ -r /sys/class/gpio/gpio$PIN ] && continue + sudo -A su -c "echo $PIN > /sys/class/gpio/export" || pin_err + sudo -A su -c "echo $DIR > /sys/class/gpio/gpio$PIN/direction" || dir_err + ;; + esac + + done +} + +# Make sure required device tree overlay(s) are loaded +ACTIVE="" +for DTBO in cape-bebopr-pp cape-bebopr-brdg BB-LCNC-BEBOPRBR ; do + + BEBOPR=`grep ${DTBO} ${SLOTS} | egrep "[0-9]+: 5[4567]:P-"` + if [ -n "${BEBOPR}" ] ; then + SLOT=`echo ${BEBOPR} | cut -d':' -f1` + echo -n "Cape \"${DTBO}\" with EEPROM in slot ${SLOT} is " + echo ${BEBOPR} | grep -q "0: 54:P---F" + if [ $? -eq 0 ] ; then + echo "active" + ACTIVE=${SLOT} + break + else + echo "not active" + fi + fi + + BEBOPR=`grep ${DTBO} ${SLOTS} | egrep "[0-9]+: ff:P-O-L"` + if [ -n "${BEBOPR}" ] ; then + SLOT=`echo ${BEBOPR} | cut -d':' -f1` + echo "Overlay \"${DTBO}\" in slot ${SLOT} is active" + ACTIVE=${SLOT} + break + fi +done + +if [ -z "${ACTIVE}" ] ; then + echo "Need to load overlay" + +# Try loading an overlay. Start with the ones using most resources +# and most likely to fail on older capes. + + for DTBO in cape-bebopr-pp:R3 cape-bebopr-brdg:R2 BB-LCNC-BEBOPRBR ; do + echo -n "Loading overlay \"${DTBO}\" ... " + if sudo -A su -c "echo $DTBO > $SLOTS" ; then + echo "Success" + break + else + echo "Failed" + fi + done + sleep 1 + +fi + +if [ ! -r /sys/devices/ocp.*/44e0d000.tscadc/tiadc/iio:device0/in_voltage5_raw ] ; then + echo "Analog input files not found in /sys/devices/ocp.*/44e0d000.tscadc/tiadc/iio:device0/" >&2 + exit 1; +fi + +if [ ! -r /sys/class/uio/uio0 ] ; then + echo PRU control files not found in /sys/class/uio/uio0 >&2 + exit 1; +fi + +# Using Official overlay, setup pin muxing to match what the HAL file expects + +# Setup PWM outputs to use GPIO pins +for FILE in /sys/devices/ocp.*/bebopr_pwm_J[234]_pinmux.*/state ; do + if [ -f $FILE ] ; then + sudo -A su -c "echo gpio > $FILE" || bebopr_err pwm: $FILE + fi +done + +# Setup LED with no trigger, so we can drive it with the GPIO pin +# Change this if you want the LED tied to something else (like heartbeat) +FILE=/sys/devices/ocp.*/bebopr_leds.*/leds/bebopr\:status_led/trigger +if [ -f $FILE ] ; then + sudo -A su -c "echo none > $FILE" || bebopr_err led: $FILE +fi + +# Export PWM GPIO pins which are not exported by the overlay +export_gpio <<- EOF + 23 low # P8.13 gpio0.23 PWM0 + 22 low # P8.19 gpio0.22 PWM1 + 50 low # p9.14 gpio1.18 PWM2 +EOF diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pololu/subroutines/fan_and_wait_on_temp_test.ngc b/configs/ARM/BeagleBone/BeBoPr++/Pololu/subroutines/fan_and_wait_on_temp_test.ngc new file mode 100644 index 00000000000..f0be6e50a7c --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pololu/subroutines/fan_and_wait_on_temp_test.ngc @@ -0,0 +1,11 @@ +M206 P255 +M104 P100 +M66 P0 L3 Q100 +G1 Z100 F9000 +M104 P50 +M66 P0 L3 Q1000 +G1 Z200 F9000 +M206 P0 +M104 P0 +G1 Z100 F9000 +M2 \ No newline at end of file diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pololu/subroutines/fancontrol.ngc b/configs/ARM/BeagleBone/BeBoPr++/Pololu/subroutines/fancontrol.ngc new file mode 100644 index 00000000000..ea63c3a4c9d --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pololu/subroutines/fancontrol.ngc @@ -0,0 +1,3 @@ +o sub + M68 E0 Q#

+o end sub \ No newline at end of file diff --git a/configs/ARM/BeagleBone/BeBoPr++/Pololu/tool.tbl b/configs/ARM/BeagleBone/BeBoPr++/Pololu/tool.tbl new file mode 100644 index 00000000000..c0b72de0652 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/Pololu/tool.tbl @@ -0,0 +1,4 @@ +T1 P1 D0.125000 Z+0.511000 ;1/8 end mill +T2 P2 D0.062500 Z+0.100000 ;1/16 end mill +T3 P3 D0.201000 Z+1.273000 ;#7 tap drill +T99999 P99999 Z+0.100000 ;big tool number diff --git a/configs/ARM/BeagleBone/BeBoPr++/README b/configs/ARM/BeagleBone/BeBoPr++/README new file mode 100644 index 00000000000..9c8aa6c174e --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/README @@ -0,0 +1,14 @@ + +Configurations for BeBoPr++ with BeagleBone Black. + +The BeBoPr++ board supports 4 on-board axes, or 5 with external drivers. +The configurations in this tree are based on the signal assignments +from the BeBoPr++ user manual. + +The Pololu configuration drives a standard 4-axis 3D printer, the Pepper +configuration is for the BeBoPr++ with Pepper 5-axis driver board. +Both configurations use the PRU for high speed step/dir pulse generation. + +Both configurations do not use any of the eMMC and HDMI signals on the +BeagleBone Black, so these interfaces can remain enabled. + diff --git a/configs/ARM/BeagleBone/BeBoPr++/ReadTemp.py b/configs/ARM/BeagleBone/BeBoPr++/ReadTemp.py new file mode 100755 index 00000000000..2eda38ce665 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/ReadTemp.py @@ -0,0 +1,323 @@ +#!/usr/bin/python + +######################################################################## +# Description: temp.py # +# This code reads an ADC input on the BeagleBone and converts the # +# resulting value into a temperature according to the thermistor # +# type, accounting for the analog input circuty as implemented on # +# the BeBoPr cape # +# # +# Author(s): Charles Steinkuehler # +# License: GNU GPL Version 2.0 or (at your option) any later version. # +# # +# Major Changes: # +# 2013-June Charles Steinkuehler # +# Initial version # +######################################################################## +# Copyright (C) 2013 Charles Steinkuehler # +# # +# # +# This program is free software; you can redistribute it and/or # +# modify it under the terms of the GNU General Public License # +# as published by the Free Software Foundation; either version 2 # +# of the License, or (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # +# 02110-1301, USA. # +# # +# THE AUTHORS OF THIS PROGRAM ACCEPT ABSOLUTELY NO LIABILITY FOR # +# ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE # +# TO RELY ON SOFTWARE ALONE FOR SAFETY. Any machinery capable of # +# harming persons must have provisions for completely removing power # +# from all motors, etc, before persons enter any danger area. All # +# machinery must be designed to comply with local and national safety # +# codes, and the authors of this software can not, and do not, take # +# any responsibility for such compliance. # +######################################################################## + +import argparse +import bisect +import glob +import sys +import time + +import hal + +# Fixme: Put thermistor data in an include file +Thermistor = {} +Thermistor["epcos_B57560G1104"] = [ +# Temp, Resistance, alpha +[ -60.0, float('inf'), 7.6 ], +[ -55.0, 10011000, 7.4 ], +[ -50.0, 6956000, 7.2 ], +[ -45.0, 4894500, 6.9 ], +[ -40.0, 3485300, 6.7 ], +[ -35.0, 2510200, 6.5 ], +[ -30.0, 1827500, 6.2 ], +[ -25.0, 1344300, 6.0 ], +[ -20.0, 998530, 5.9 ], +[ -15.0, 748670, 5.7 ], +[ -10.0, 566360, 5.5 ], +[ -5.0, 432120, 5.3 ], +[ 0.0, 332400, 5.2 ], +[ 5.0, 257690, 5.0 ], +[ 10.0, 201270, 4.9 ], +[ 15.0, 158340, 4.7 ], +[ 20.0, 125420, 4.6 ], +[ 25.0, 100000, 4.5 ], +[ 30.0, 80239, 4.3 ], +[ 35.0, 64776, 4.2 ], +[ 40.0, 52598, 4.1 ], +[ 45.0, 42950, 4.0 ], +[ 50.0, 35262, 3.9 ], +[ 55.0, 29100, 3.8 ], +[ 60.0, 24136, 3.7 ], +[ 65.0, 20114, 3.6 ], +[ 70.0, 16841, 3.5 ], +[ 75.0, 14164, 3.4 ], +[ 80.0, 11963, 3.3 ], +[ 85.0, 10147, 3.3 ], +[ 90.0, 8640.7, 3.2 ], +[ 95.0, 7386.7, 3.1 ], +[ 100.0, 6338.3, 3.0 ], +[ 105.0, 5458.4, 3.0 ], +[ 110.0, 4717, 2.9 ], +[ 115.0, 4090.1, 2.8 ], +[ 120.0, 3558.1, 2.8 ], +[ 125.0, 3105, 2.7 ], +[ 130.0, 2717.9, 2.6 ], +[ 135.0, 2386.1, 2.6 ], +[ 140.0, 2100.8, 2.5 ], +[ 145.0, 1854.8, 2.5 ], +[ 150.0, 1641.9, 2.4 ], +[ 155.0, 1457.3, 2.4 ], +[ 160.0, 1296.7, 2.3 ], +[ 165.0, 1156.6, 2.3 ], +[ 170.0, 1034.1, 2.2 ], +[ 175.0, 926.64, 2.2 ], +[ 180.0, 832.24, 2.1 ], +[ 185.0, 749.07, 2.1 ], +[ 190.0, 675.64, 2.0 ], +[ 195.0, 610.64, 2.0 ], +[ 200.0, 552.99, 2.0 ], +[ 205.0, 501.75, 1.9 ], +[ 210.0, 456.11, 1.9 ], +[ 215.0, 415.37, 1.9 ], +[ 220.0, 378.95, 1.8 ], +[ 225.0, 346.31, 1.8 ], +[ 230.0, 317.01, 1.8 ], +[ 235.0, 290.67, 1.7 ], +[ 240.0, 266.93, 1.7 ], +[ 245.0, 245.51, 1.7 ], +[ 250.0, 226.15, 1.6 ], +[ 255.0, 208.62, 1.6 ], +[ 260.0, 192.73, 1.6 ], +[ 265.0, 178.29, 1.5 ], +[ 270.0, 165.16, 1.5 ], +[ 275.0, 153.19, 1.5 ], +[ 280.0, 142.28, 1.5 ], +[ 285.0, 132.31, 1.4 ], +[ 290.0, 123.19, 1.4 ], +[ 295.0, 114.83, 1.4 ], +[ 300.0, 107.16, 1.4 ], +[ 400.0, 0.0, 1.4 ] ] + + +# Temperature table needs resistance to be ordered low [0] to high [n] +Thermistor["epcos_B57560G1104"].reverse() + +# Epcos B57560G1104 is Marlin thermistor table 1 +Thermistor["1"] = Thermistor["epcos_B57560G1104"] + + +Thermistor["semitec_103GT_2"] = [ +# Temp, Resistance, alpha +[ -60.0, float('inf'), 0.0 ], +[ -50.0, 8743000.0, 0.0 ], +[ -40.0, 4218000.0, 0.0 ], +[ -30.0, 2132000.0, 0.0 ], +[ -20.0, 1127000.0, 0.0 ], +[ -10.0, 620000.0, 0.0 ], +[ 0.0, 353700.0, 0.0 ], +[ 10.0, 208600.0, 0.0 ], +[ 20.0, 126800.0, 0.0 ], +[ 30.0, 79360.0, 0.0 ], +[ 40.0, 50960.0, 0.0 ], +[ 50.0, 33490.0, 0.0 ], +[ 60.0, 22510.0, 0.0 ], +[ 70.0, 15440.0, 0.0 ], +[ 80.0, 10800.0, 0.0 ], +[ 90.0, 7686.0, 0.0 ], +[ 100.0, 5556.0, 0.0 ], +[ 110.0, 4082.0, 0.0 ], +[ 120.0, 3043.0, 0.0 ], +[ 130.0, 2298.0, 0.0 ], +[ 140.0, 1758.0, 0.0 ], +[ 150.0, 1360.0, 0.0 ], +[ 160.0, 1064.0, 0.0 ], +[ 170.0, 841.4, 0.0 ], +[ 180.0, 671.4, 0.0 ], +[ 190.0, 540.8, 0.0 ], +[ 200.0, 439.3, 0.0 ], +[ 210.0, 359.7, 0.0 ], +[ 220.0, 296.9, 0.0 ], +[ 230.0, 246.8, 0.0 ], +[ 240.0, 206.5, 0.0 ], +[ 250.0, 174.0, 0.0 ], +[ 260.0, 147.5, 0.0 ], +[ 270.0, 125.8, 0.0 ], +[ 280.0, 107.9, 0.0 ], +[ 290.0, 93.05, 0.0 ], +[ 300.0, 80.65, 0.0 ], +[ 400.0, 0.0, 1.4 ] ] + + +# Temperature table needs resistance to be ordered low [0] to high [n] +Thermistor["semitec_103GT_2"].reverse() + +# ATC Semtec 104GT-2 is Marlin thermistor table 5 +Thermistor["5"] = Thermistor["semitec_103GT_2"] + +# Test for multiple thermistor tables +Thermistor["2"] = [ +[ 400.0, 0.0, 1.4 ], +[ 300.0, 1000.0, 2.0 ], +[ 200.0, 10000.0, 3.0 ], +[ 100.0, 100000.0, 6.0 ], +[ 0.0, float('inf'), 7.6 ] ] + +# The BeBoPr board thermistor input has one side grounded and the other side +# pulled high through a 2.05K resistor to 3.6V. Following this is a 470R +# resistor, some protection diodes, and a voltage divider cosisting of two +# 10.0K resistors. The ADC voltage read is the voltage across the lower 10K +# resistor in the 470R + 10K + 10K series chain +def adc2r(V_adc): + V_T = 0.0 # Voltage across the thermistor (and the 470R + 10K + 10K resistor chain) + I_PU = 0.0 # Current flowing through the 2.05K pull-up resistor + R_TD = 0.0 # Resistance of thermistor and the 470R + 10K + 10K divider chain in parallel + R_T = 0.0 # Resistance of the thermistor + + V_T = V_adc * 2.0470 + + # No dividing by zero or negative voltages despite what the ADC says! + # Clip to a small positive value + I_PU = max((3.6 - V_T ) / 2050, 0.000001) + + R_TD = V_T / I_PU + + # Acutal resistance can't be negative, but we can get a negative value + # from the equation below for some real ADC values, so clip to avoid + # reporting crazy temperature values or dividing by zero + if R_TD >= 20470 : + R_TD = 20470 - 0.1 + + # 1 / Rtotal = 1 / ( 1 / R1 + 1 / R2 ) + # R2 = ( R1 * Rtotal ) / ( R1 - Rtotal ) + R_T = ( 20470 * R_TD ) / ( 20470 - R_TD ) + + # print "V_adc: %f V_T: %f R_TD: %f R_T: %f" % (V_adc, V_T, R_TD, R_T) + + + return R_T + +# Convert resistance value into temperature, using thermistor table +def r2t(n, R_T): + temp_slope = 0.0 + temp = 0.0 + + i = max(bisect.bisect_right(R_Key[n], R_T) - 1, 0) + + temp_slope = (thermistor[n][0][i] - thermistor[n][0][i+1]) / (thermistor[n][1][i] - thermistor[n][1][i+1]) + temp = thermistor[n][0][i] + ((R_T - thermistor[n][1][i]) * temp_slope) + #print "Temp:", temp, "i.R_T:", i, R_T, "slope:", temp_slope, + #print "Deg.left:", Thermistor["epcos_B57560G1104"][i], "Deg.right:", Thermistor["epcos_B57560G1104"][i+1] + return temp + +parser = argparse.ArgumentParser(description='HAL component to read ADC values and convert to temperature') +parser.add_argument('-n','--name', help='HAL component name',required=True) +parser.add_argument('-N','--num_chan', help='Number of analog inputs to support',default=1) +parser.add_argument('-a','--adc', nargs='+', help='ADC input to read', required=True) +parser.add_argument('-t','--therm',nargs='+', help='Thermistor table to use', required=True) +args = parser.parse_args() + +num_chan = int(args.num_chan) + +if len(args.adc) != num_chan : + raise UserWarning('Incorrect number of ADC channels specified! Expected:' + str(args.num_chan) + str(len(args.adc)) ) + +if len(args.therm) != num_chan : + raise UserWarning('Incorrect number of thermistors specified! Expected:' + args.num_chan) + +syspath = '/sys/devices/ocp.*/44e0d000.tscadc/tiadc/iio:device0/' + +FileName = [] + +for i in range(num_chan): + TempName = glob.glob (syspath + 'in_voltage' + args.adc[i] + '_raw') + FileName.insert(i, TempName[0]) + try: + if len(FileName[i]) > 0: + f = open(FileName[i], 'r') + f.close() + time.sleep(0.001) + else: + raise UserWarning('Bad Filename') + except (UserWarning, IOError) : + print("Cannot read ADC input: %s" % Filename[i]) + sys.exit(1) + +thermistor = [] +R_Key = [] +for i in range(num_chan): + if args.therm[i] in Thermistor: + # Shuffle array to make three lists of values (Temp, Resistane, Alpha) + # so we can use bisect to efficiently do table lookups + thermistor.insert(i, map(list, zip(*Thermistor[args.therm[i]])) ) + + # Pull out the resistance values to use as a key for bisect + R_Key.insert(i, thermistor[i][1] ) + + else: + print("Unknown thermistor type: %s" % args.therm) + print 'Try one of:', Thermistor.keys() + sys.exit(1) + +h = hal.component(args.name) +for i in range(num_chan): + h.newpin("raw" + str(i), hal.HAL_U32, hal.HAL_OUT) + h.newpin("temp" + str(i), hal.HAL_FLOAT, hal.HAL_OUT) + +h.ready() + +Err = 0.0 +ADC_V = 0.0 +temp = 0.0 + +while 1: + try: + for i in range(num_chan): + f = open(FileName[i], 'r') + ADC_IN = int(f.readline()) + h['raw' + str(i)] = ADC_IN + ADC_V = float(ADC_IN) * 1.8 / 4096.0 + temp = r2t(i,adc2r(ADC_V)) + h['temp' + str(i)] = temp + #print ADC_IN, temp + f.close() + time.sleep(0.001) + + time.sleep(0.049) + + except IOError: + continue + + except KeyboardInterrupt: + raise SystemExit + diff --git a/configs/ARM/BeagleBone/BeBoPr++/cape-bebopr-brdg-R3.dts b/configs/ARM/BeagleBone/BeBoPr++/cape-bebopr-brdg-R3.dts new file mode 100644 index 00000000000..34bf1acfa7f --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/cape-bebopr-brdg-R3.dts @@ -0,0 +1,550 @@ +/* + * Copyright (C) 2013 Bas Laarhoven + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * version 1.1 - 2013-08-08 initial version from 2191-R2.dts + * version 1.2 - 2013-08-11 version for BeBoPr with Bridge using alternate + * signals freeing signals used for HDMI and eMMC on BBB. + */ +/dts-v1/; +/plugin/; + +/ { + compatible = "aes,bebopr", "ti,beaglebone", "ti,beaglebone-black"; + + /* identification */ + part-number = "cape-bebopr-brdg"; + version = "R2"; + + exclusive-use = + /* state the resources this cape uses */ + + /* ------ IO POWER ------ */ + + "P8.7", /* gpio2.2 timer4 gpio66 Enablen */ + + /* ------ PWM ------ */ + + "P8.13", /* gpio0.23 EHRPWM2B J2_PWM0 */ + "P8.19", /* gpio0.22 EHRPWM2A J3_PWM1 */ + "P9.14", /* gpio1.18 EHRPWM1A J4_PWM2 */ + "ehrpwm1A", + "ehrpwm2A", + "ehrpwm2B", + + /* ------ STEPPERS ------ */ + + "P8.12", /* gpio1.12 #X_STP */ + "P8.11", /* gpio1.13 #X_DIR */ + "P9.18", /* gpio0.4 #X_ENA */ + "P8.16", /* gpio1.14 #Y_STP */ + "P8.15", /* gpio1.15 #Y_DIR */ + "P9.17", /* gpio0.5 #Y_ENA */ + "P9.15", /* gpio1.16 #Z_STP */ + "P9.23", /* gpio1.17 #Z_DIR */ + "P9.26", /* gpio0.14 #Z_ENA */ + "P9.22", /* gpio0.2 #E_STP */ + "P9.21", /* gpio0.3 #E_DIR */ + "P9.24", /* gpio0.15 #E_ENA */ + "P9.12", /* gpio1.28 DMUX_CLK */ + "pru1", + "pruss", + + /* ------ SENSORS ------ */ + + "P8.8", /* gpio2.3 #X_MIN */ + "P8.9", /* gpio2.5 #X_MAX */ + "P8.10", /* gpio2.4 #Y_MIN */ + "P8.14", /* gpio0.26 #Y_MAX */ + "P8.17", /* gpio0.27 #Z_MIN */ + "P8.18", /* gpio2.1 #Z_MAX */ + + /* ------ ADC ------ */ + + "P9.33", /* AIN4 */ + "P9.36", /* AIN5 */ + "P9.35", /* AIN6 */ + "tscadc", + + /* ------ LED ------ */ + + "P8.26"; /* gpio1.29 LED */ + + + + /* ----------- IO ENABLE ------------ */ + + fragment@0 { + target = <&am33xx_pinmux>; + __overlay__ { + + bebopr_io_enable_pins: pinmux_bebopr_io_enable_pins { + pinctrl-single,pins = < + 0x090 0x07 /* P8-7 TIMER4 gpmc_advn_ale.gpio2[2] */ + >; + }; + }; + }; + + fragment@1 { + target = <&ocp>; + __overlay__ { + + bebopr_io_enables { + compatible = "gpio-of-helper"; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&bebopr_io_enable_pins>; + + io_enable_n { + gpio-name = "bebopr:io_enable_n"; + gpio = <&gpio3 2 0>; + output; + init-high; + }; + }; + }; + }; + + /* ----------- PWM ------------ */ + + fragment@11 { + target = <&epwmss1>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@12 { + target = <&ehrpwm1>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@13 { + target = <&epwmss2>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@14 { + target = <&ehrpwm2>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@15 { + target = <&am33xx_pinmux>; + __overlay__ { + + // J2_PWM0 + P8_13_ehrpwm_pin: pinmux_P8_13_ehrpwm_pin { + pinctrl-single,pins = <0x024 0x4>; /* P8_13 (ZCZ ball T10) | MODE 4 */ + }; + + P8_13_gpio_pin: pinmux_P8_13_gpio_pin { + pinctrl-single,pins = <0x024 0x7>; /* P8_13 (ZCZ ball T10) | MODE 7 */ + }; + + // J3_PWM1 + P8_19_ehrpwm_pin: pinmux_P8_19_ehrpwm_pin { + pinctrl-single,pins = <0x020 0x4>; /* P8_19 (ZCZ ball U10) | MODE 4 */ + }; + + P8_19_gpio_pin: pinmux_P8_19_gpio_pin { + pinctrl-single,pins = <0x020 0x7>; /* P8_19 (ZCZ ball U10) | MODE 7 */ + }; + + // J4_PWM2 + P9_14_ehrpwm_pin: pinmux_P9_14_ehrpwm_pin { + pinctrl-single,pins = <0x048 0x6>; /* P9_14 (ZCZ ball U14) | MODE 6 */ + }; + + P9_14_gpio_pin: pinmux_P9_14_gpio_pin { + pinctrl-single,pins = <0x048 0x7>; /* P9_14 (ZCZ ball U14) | MODE 7 */ + }; + }; + }; + + fragment@16 { + target = <&ocp>; + __overlay__ { + + bebopr_pwm_J2_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&P8_13_ehrpwm_pin>; + pinctrl-1 = <&P8_13_gpio_pin>; + }; + + bebopr_pwm_J3_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&P8_19_ehrpwm_pin>; + pinctrl-1 = <&P8_19_gpio_pin>; + }; + + bebopr_pwm_J4_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&P9_14_ehrpwm_pin>; + pinctrl-1 = <&P9_14_gpio_pin>; + }; + + bebopr_pwm_J2 { + compatible = "pwm_test"; + pwms = <&ehrpwm2 1 10000000 0>; + pwm-names = "PWM0_J2_FAN"; + enabled = <0>; + duty = <0>; + status = "okay"; + }; + + bebopr_pwm_J3 { + compatible = "pwm_test"; + pwms = <&ehrpwm2 0 10000000 0>; + pwm-names = "PWM1_J3_EXTR"; + enabled = <0>; + duty = <0>; + status = "okay"; + }; + + bebopr_pwm_J4 { + compatible = "pwm_test"; + pwms = <&ehrpwm1 0 100000000 0>; + pwm-names = "PWM2_J4_BED"; + enabled = <0>; + duty = <0>; + status = "okay"; + }; + }; + }; + + /* ----------- STEPPERS ------------ */ + + fragment@21 { + target = <&am33xx_pinmux>; + __overlay__ { + + bebopr_stepper_pins: pinmux_bebopr_stepper_pins { + status = "okay"; + pinctrl-single,pins = < + /* stepper outputs */ + 0x030 0x07 /* #X_STP, P8_12, gpio1.12, mode7 out */ + 0x034 0x07 /* #X_DIR, P8_11, gpio1.13, mode7 out */ + 0x038 0x07 /* #Y_STP, P8_16, gpio1.14, mode7 out */ + 0x03c 0x07 /* #Y_DIR, P8_15, gpio1.15, mode7 out */ + 0x040 0x07 /* #Z_STP, P9_15, gpio1.16, mode7 out */ + 0x044 0x07 /* #Z_DIR, P9_23, gpio1.17, mode7 out */ + + 0x150 0x07 /* #E_STP, P9_22, gpio0.2, mode7 out */ + 0x154 0x07 /* #E_DIR, P9_21, gpio0.3, mode7 out */ + 0x158 0x07 /* #X_ENA, P9_18, gpio0.4, mode7 out */ + 0x15c 0x07 /* #Y_ENA, P9_17, gpio0.5, mode7 out */ + + 0x180 0x07 /* #Z_ENA, P9_26, gpio0.14, mode7 out */ + 0x184 0x07 /* #E_ENA, P9_24, gpio0.15, mode7 out */ + + 0x078 0x07 /* DMUX_CLK P9_12, gpio1.28, mode7 out */ + >; + }; + }; + }; + + fragment@22 { + target = <&ocp>; + __overlay__ { + + bebopr_steppers { + compatible = "gpio-of-helper"; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&bebopr_stepper_pins>; + + x_stp { + gpio-name = "bebopr:x_stp"; + gpio = <&gpio2 12 0>; + output; + init-low; + }; + x_dir { + gpio-name = "bebopr:x_dir"; + gpio = <&gpio2 13 0>; + output; + init-low; + }; + x_ena { + gpio-name = "bebopr:x_ena"; + gpio = <&gpio1 4 0>; + output; + init-high; + }; + + y_stp { + gpio-name = "bebopr:y_stp"; + gpio = <&gpio2 14 0>; + output; + init-low; + }; + y_dir { + gpio-name = "bebopr:y_dir"; + gpio = <&gpio2 15 0>; + output; + init-low; + }; + y_ena { + gpio-name = "bebopr:y_ena"; + gpio = <&gpio1 5 0>; + output; + init-high; + }; + + z_stp { + gpio-name = "bebopr:z_stp"; + gpio = <&gpio2 16 0>; + output; + init-low; + }; + z_dir { + gpio-name = "bebopr:z_dir"; + gpio = <&gpio2 17 0>; + output; + init-low; + }; + z_ena { + gpio-name = "bebopr:z_ena"; + gpio = <&gpio1 14 0>; + output; + init-high; + }; + + e_stp { + gpio-name = "bebopr:e_stp"; + gpio = <&gpio1 2 0>; + output; + init-low; + }; + e_dir { + gpio-name = "bebopr:e_dir"; + gpio = <&gpio1 3 0>; + output; + init-low; + }; + e_ena { + gpio-name = "bebopr:e_ena"; + gpio = <&gpio1 15 0>; + output; + init-high; + }; + dmux_clk { + gpio-name = "bebopr:dmux_clk"; + gpio = <&gpio2 28 0>; + output; + init-high; + }; + }; + }; + }; + + fragment@23 { + target = <&pruss>; + __overlay__ { + status = "okay"; + }; + }; + + /* ----------- SENSORS ------------ */ + + fragment@31 { + target = <&am33xx_pinmux>; + __overlay__ { + + bebopr_sensor_pins: pinmux_bebopr_sensor_pins { + status = "okay"; + pinctrl-single,pins = < + /* sensor inputs with pull-downs */ + 0x94 0x2f /* #X_MIN, P8_8, gpio2.3, mode7 in */ + 0x9c 0x2f /* #X_MAX, P8_9, gpio2.5, mode7 in */ + 0x98 0x2f /* #Y_MIN, P8_10, gpio2.4, mode7 in */ + 0x28 0x2f /* #Y_MAX, P8_14, gpio0.26, mode7 in */ + 0x2c 0x2f /* #Z_MIN, P8_17, gpio0.27, mode7 in */ + 0x8c 0x2f /* #Z_MAX, P8_18, gpio2.1, mode7 in */ + >; + }; + }; + }; + + fragment@33 { + target = <&ocp>; + __overlay__ { + + bebopr_sensors { + compatible = "gpio-of-helper"; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&bebopr_sensor_pins>; + + x_min { + gpio-name = "bebopr:x_min"; + gpio = <&gpio3 3 0>; + input; + }; + x_max { + gpio-name = "bebopr:x_max"; + gpio = <&gpio3 5 0>; + input; + }; + y_min { + gpio-name = "bebopr:y_min"; + gpio = <&gpio3 4 0>; + input; + }; + y_max { + gpio-name = "bebopr:y_max"; + gpio = <&gpio1 26 0>; + input; + }; + z_min { + gpio-name = "bebopr:z_min"; + gpio = <&gpio1 27 0>; + input; + }; + z_max { + gpio-name = "bebopr:z_max"; + gpio = <&gpio3 1 0>; + input; + }; + }; + }; + }; + + /* ----------- ADC ------------ */ + + /* no pinmux needed */ + + fragment@41 { + target = <&ocp>; + __overlay__ { + + #address-cells = <1>; + #size-cells = <1>; + + tscadc { + compatible = "ti,ti-tscadc"; + status = "okay"; + + reg = <0x44e0d000 0x1000>; + interrupt-parent = <&intc>; + interrupts = <16>; + ti,hwmods = "adc_tsc"; + adc { + ti,adc-channels = <0 1 2 3 4 5 6 7>; + }; + }; + + bebopr_adc { + compatible = "bone-iio-helper"; + status = "okay"; + /* scale to raw bit value */ + vsense-name = "AIN0", "AIN1", "AIN2", "AIN3", "AIN4", "AIN5", "AIN7"; + vsense-scale = < 228 228 228 228 228 228 228>; + }; + + }; + }; + + + /* ----------- LED ------------ */ + + fragment@51 { + target = <&am33xx_pinmux>; + __overlay__ { + + bebopr_led_pins: pinmux_bebopr_led_pins { + pinctrl-single,pins = < + 0x07c 0x07 /* P8-26 GPIO1_29 gpmc_csn0.gpio1[29] */ + >; + }; + }; + }; + + fragment@52 { + target = <&ocp>; + __overlay__ { + + bebopr_leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&bebopr_led_pins>; + + status_led { + label = "bebopr:status_led"; + gpios = <&gpio2 29 0>; + linux,default-trigger = "heartbeat"; + default-state = "off"; + }; + }; + }; + }; + + /* ----------- ADS1015 ------------ */ + +/* + fragment@61 { + target = <&i2c2>; + __overlay__ { + // needed to avoid gripping by DTC + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; // probably already set + + ads1015: ads1015@48 { + + compatible = "ti,ads1015"; + status = "okay"; + + #address-cells = <1>; + #size-cells = <0>; + reg = <0x48>; + + hi_res = <1>; + + channel@1 { + reg = <4>; + ti,gain = <2>; + ti,datarate = <2>; + }; + channel@2 { + reg = <5>; + ti,gain = <2>; + ti,datarate = <2>; + }; + channel@3 { + reg = <6>; + ti,gain = <2>; + ti,datarate = <2>; + }; + channel@4 { + reg = <0>; + ti,gain = <3>; + ti,datarate = <2>; + }; + }; + }; + + }; +*/ + +}; diff --git a/configs/ARM/BeagleBone/BeBoPr++/cape-bebopr-pp-R3.dts b/configs/ARM/BeagleBone/BeBoPr++/cape-bebopr-pp-R3.dts new file mode 100644 index 00000000000..a40f72d1460 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/cape-bebopr-pp-R3.dts @@ -0,0 +1,550 @@ +/* + * Copyright (C) 2013,2014 Bas Laarhoven + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * version 1.1 - 2013-08-08 initial version from 2191-R2.dts + * version 1.2 - 2013-08-11 version for BeBoPr with Bridge using alternate + * signals freeing signals used for HDMI and eMMC on BBB. + * version 1.3 - 2014-07-05 created BeBoPr++ version from cape-bebopr-brdg-R2.dts. + * Added signal naming for 5 axes (external stepper drivers). + * Added J5.16 signal for DECAMUX and enabled ADS1015. + */ +/dts-v1/; +/plugin/; + +/ { + compatible = "aes,bebopr", "ti,beaglebone", "ti,beaglebone-black"; + + /* identification */ + part-number = "cape-bebopr-pp"; + version = "R3"; + + exclusive-use = + /* state the resources this cape uses */ + + /* ------ IO POWER ------ */ + + "P8.7", /* gpio2.2 timer4 gpio66 Enablen */ + + /* ------ PWM ------ */ + + "P8.13", /* gpio0.23 EHRPWM2B J2_PWM0 */ + "P8.19", /* gpio0.22 EHRPWM2A J3_PWM1 */ + "P9.14", /* gpio1.18 EHRPWM1A J4_PWM2 */ + "ehrpwm1A", + "ehrpwm2A", + "ehrpwm2B", + + /* ------ STEPPERS ------ */ + + "P8.12", /* gpio1.12 X_STP */ + "P8.11", /* gpio1.13 X_DIR */ + "P9.18", /* gpio0.4 B_STP or #X_ENA */ + "P8.16", /* gpio1.14 Y_STP */ + "P8.15", /* gpio1.15 Y_DIR */ + "P9.17", /* gpio0.5 B_DIR or #Y_ENA */ + "P9.15", /* gpio1.16 Z_STP */ + "P9.23", /* gpio1.17 Z_DIR */ + "P9.26", /* gpio0.14 #ENA1 or #X_ENA */ + "P9.22", /* gpio0.2 A_STP or E_STP */ + "P9.21", /* gpio0.3 A_DIR or E_DIR */ + "P9.24", /* gpio0.15 #ENA2 or #E_ENA */ + "P9.12", /* gpio1.28 DECA_CLK */ + "pru1", + "pruss", + + /* ------ SENSORS ------ */ + + "P8.8", /* gpio2.3 #X_MIN */ + "P8.9", /* gpio2.5 #X_MAX */ + "P8.10", /* gpio2.4 #Y_MIN */ + "P8.14", /* gpio0.26 #Y_MAX */ + "P8.17", /* gpio0.27 #Z_MIN */ + "P8.18", /* gpio2.1 #Z_MAX */ + + /* ------ ADC ------ */ + + "P9.33", /* AIN4 */ + "P9.36", /* AIN5 */ + "P9.35", /* AIN6 */ + "tscadc", + + /* ------ LED ------ */ + + "P8.26"; /* gpio1.29 LED */ + + + /* ----------- IO ENABLE ------------ */ + + fragment@0 { + target = <&am33xx_pinmux>; + __overlay__ { + + bebopr_io_enable_pins: pinmux_bebopr_io_enable_pins { + pinctrl-single,pins = < + 0x090 0x07 /* P8-7 TIMER4 gpmc_advn_ale.gpio2[2] */ + >; + }; + }; + }; + + fragment@1 { + target = <&ocp>; + __overlay__ { + + bebopr_io_enables { + compatible = "gpio-of-helper"; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&bebopr_io_enable_pins>; + + io_enable_n { + gpio-name = "bebopr:io_enable_n"; + gpio = <&gpio3 2 0>; + output; + init-high; + }; + }; + }; + }; + + /* ----------- PWM ------------ */ + + fragment@11 { + target = <&epwmss1>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@12 { + target = <&ehrpwm1>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@13 { + target = <&epwmss2>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@14 { + target = <&ehrpwm2>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@15 { + target = <&am33xx_pinmux>; + __overlay__ { + + // J2_PWM0 + P8_13_ehrpwm_pin: pinmux_P8_13_ehrpwm_pin { + pinctrl-single,pins = <0x024 0x4>; /* P8_13 (ZCZ ball T10) | MODE 4 */ + }; + + P8_13_gpio_pin: pinmux_P8_13_gpio_pin { + pinctrl-single,pins = <0x024 0x7>; /* P8_13 (ZCZ ball T10) | MODE 7 */ + }; + + // J3_PWM1 + P8_19_ehrpwm_pin: pinmux_P8_19_ehrpwm_pin { + pinctrl-single,pins = <0x020 0x4>; /* P8_19 (ZCZ ball U10) | MODE 4 */ + }; + + P8_19_gpio_pin: pinmux_P8_19_gpio_pin { + pinctrl-single,pins = <0x020 0x7>; /* P8_19 (ZCZ ball U10) | MODE 7 */ + }; + + // J4_PWM2 + P9_14_ehrpwm_pin: pinmux_P9_14_ehrpwm_pin { + pinctrl-single,pins = <0x048 0x6>; /* P9_14 (ZCZ ball U14) | MODE 6 */ + }; + + P9_14_gpio_pin: pinmux_P9_14_gpio_pin { + pinctrl-single,pins = <0x048 0x7>; /* P9_14 (ZCZ ball U14) | MODE 7 */ + }; + }; + }; + + fragment@16 { + target = <&ocp>; + __overlay__ { + + bebopr_pwm_J2_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&P8_13_ehrpwm_pin>; + pinctrl-1 = <&P8_13_gpio_pin>; + }; + + bebopr_pwm_J3_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&P8_19_ehrpwm_pin>; + pinctrl-1 = <&P8_19_gpio_pin>; + }; + + bebopr_pwm_J4_pinmux { + compatible = "bone-pinmux-helper"; + status = "okay"; + + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&P9_14_ehrpwm_pin>; + pinctrl-1 = <&P9_14_gpio_pin>; + }; + + bebopr_pwm_J2 { + compatible = "pwm_test"; + pwms = <&ehrpwm2 1 10000000 0>; + pwm-names = "PWM0_J2_FAN"; + enabled = <0>; + duty = <0>; + status = "okay"; + }; + + bebopr_pwm_J3 { + compatible = "pwm_test"; + pwms = <&ehrpwm2 0 10000000 0>; + pwm-names = "PWM1_J3_EXTR"; + enabled = <0>; + duty = <0>; + status = "okay"; + }; + + bebopr_pwm_J4 { + compatible = "pwm_test"; + pwms = <&ehrpwm1 0 100000000 0>; + pwm-names = "PWM2_J4_BED"; + enabled = <0>; + duty = <0>; + status = "okay"; + }; + }; + }; + + /* ----------- STEPPERS ------------ */ + + fragment@21 { + target = <&am33xx_pinmux>; + __overlay__ { + + bebopr_stepper_pins: pinmux_bebopr_stepper_pins { + status = "okay"; + pinctrl-single,pins = < + /* stepper outputs */ + 0x030 0x07 /* #X_STP, P8_12, gpio1.12, mode7 out */ + 0x034 0x07 /* #X_DIR, P8_11, gpio1.13, mode7 out */ + 0x038 0x07 /* #Y_STP, P8_16, gpio1.14, mode7 out */ + 0x03c 0x07 /* #Y_DIR, P8_15, gpio1.15, mode7 out */ + 0x040 0x07 /* #Z_STP, P9_15, gpio1.16, mode7 out */ + 0x044 0x07 /* #Z_DIR, P9_23, gpio1.17, mode7 out */ + + 0x150 0x07 /* #A_STP, P9_22, gpio0.2, mode7 out */ + 0x154 0x07 /* #A_DIR, P9_21, gpio0.3, mode7 out */ + 0x158 0x07 /* #B_STP, P9_18, gpio0.4, mode7 out */ + 0x15c 0x07 /* #B_DIR, P9_17, gpio0.5, mode7 out */ + + 0x180 0x07 /* #Z_ENA, P9_26, gpio0.14, mode7 out */ + 0x184 0x07 /* #E_ENA, P9_24, gpio0.15, mode7 out */ + + 0x078 0x07 /* DECA_CLK P9_12, gpio1.28, mode7 out */ + >; + }; + }; + }; + + fragment@22 { + target = <&ocp>; + __overlay__ { + + bebopr_steppers { + compatible = "gpio-of-helper"; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&bebopr_stepper_pins>; + + x_stp { + gpio-name = "bebopr:x_stp"; + gpio = <&gpio2 12 0>; + output; + init-low; + }; + x_dir { + gpio-name = "bebopr:x_dir"; + gpio = <&gpio2 13 0>; + output; + init-low; + }; + x_ena { + gpio-name = "bebopr:x_ena"; + gpio = <&gpio1 4 0>; + output; + init-high; + }; + + y_stp { + gpio-name = "bebopr:y_stp"; + gpio = <&gpio2 14 0>; + output; + init-low; + }; + y_dir { + gpio-name = "bebopr:y_dir"; + gpio = <&gpio2 15 0>; + output; + init-low; + }; + y_ena { + gpio-name = "bebopr:y_ena"; + gpio = <&gpio1 5 0>; + output; + init-high; + }; + + z_stp { + gpio-name = "bebopr:z_stp"; + gpio = <&gpio2 16 0>; + output; + init-low; + }; + z_dir { + gpio-name = "bebopr:z_dir"; + gpio = <&gpio2 17 0>; + output; + init-low; + }; + z_ena { + gpio-name = "bebopr:z_ena"; + gpio = <&gpio1 14 0>; + output; + init-high; + }; + + e_stp { + gpio-name = "bebopr:e_stp"; + gpio = <&gpio1 2 0>; + output; + init-low; + }; + e_dir { + gpio-name = "bebopr:e_dir"; + gpio = <&gpio1 3 0>; + output; + init-low; + }; + e_ena { + gpio-name = "bebopr:e_ena"; + gpio = <&gpio1 15 0>; + output; + init-high; + }; + deca_clk { + gpio-name = "bebopr:deca_clk"; + gpio = <&gpio2 28 0>; + output; + init-high; + }; + }; + }; + }; + + fragment@23 { + target = <&pruss>; + __overlay__ { + status = "okay"; + }; + }; + + /* ----------- SENSORS ------------ */ + + fragment@31 { + target = <&am33xx_pinmux>; + __overlay__ { + + bebopr_sensor_pins: pinmux_bebopr_sensor_pins { + status = "okay"; + pinctrl-single,pins = < + /* sensor inputs with pull-downs */ + 0x94 0x2f /* #X_MIN, P8_8, gpio2.3, mode7 in */ + 0x9c 0x2f /* #X_MAX, P8_9, gpio2.5, mode7 in */ + 0x98 0x2f /* #Y_MIN, P8_10, gpio2.4, mode7 in */ + 0x28 0x2f /* #Y_MAX, P8_14, gpio0.26, mode7 in */ + 0x2c 0x2f /* #Z_MIN, P8_17, gpio0.27, mode7 in */ + 0x8c 0x2f /* #Z_MAX, P8_18, gpio2.1, mode7 in */ + >; + }; + }; + }; + + fragment@33 { + target = <&ocp>; + __overlay__ { + + bebopr_sensors { + compatible = "gpio-of-helper"; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&bebopr_sensor_pins>; + + x_min { + gpio-name = "bebopr:x_min"; + gpio = <&gpio3 3 0>; + input; + }; + x_max { + gpio-name = "bebopr:x_max"; + gpio = <&gpio3 5 0>; + input; + }; + y_min { + gpio-name = "bebopr:y_min"; + gpio = <&gpio3 4 0>; + input; + }; + y_max { + gpio-name = "bebopr:y_max"; + gpio = <&gpio1 26 0>; + input; + }; + z_min { + gpio-name = "bebopr:z_min"; + gpio = <&gpio1 27 0>; + input; + }; + z_max { + gpio-name = "bebopr:z_max"; + gpio = <&gpio3 1 0>; + input; + }; + }; + }; + }; + + /* ----------- ADC ------------ */ + + /* no pinmux needed */ + + fragment@41 { + target = <&ocp>; + __overlay__ { + + #address-cells = <1>; + #size-cells = <1>; + + tscadc { + compatible = "ti,ti-tscadc"; + status = "okay"; + + reg = <0x44e0d000 0x1000>; + interrupt-parent = <&intc>; + interrupts = <16>; + ti,hwmods = "adc_tsc"; + adc { + ti,adc-channels = <0 1 2 3 4 5 6 7>; + }; + }; + + bebopr_adc { + compatible = "bone-iio-helper"; + status = "okay"; + /* scale to raw bit value */ + vsense-name = "AIN0", "AIN1", "AIN2", "AIN3", "AIN4", "AIN5", "AIN7"; + vsense-scale = < 228 228 228 228 228 228 228>; + }; + + }; + }; + + + /* ----------- LED ------------ */ + + fragment@51 { + target = <&am33xx_pinmux>; + __overlay__ { + + bebopr_led_pins: pinmux_bebopr_led_pins { + pinctrl-single,pins = < + 0x07c 0x07 /* P8-26 GPIO1_29 gpmc_csn0.gpio1[29] */ + >; + }; + }; + }; + + fragment@52 { + target = <&ocp>; + __overlay__ { + + bebopr_leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&bebopr_led_pins>; + + status_led { + label = "bebopr:status_led"; + gpios = <&gpio2 29 0>; + linux,default-trigger = "heartbeat"; + default-state = "off"; + }; + }; + }; + }; + + /* ----------- ADS1015 ------------ */ + + fragment@61 { + target = <&i2c2>; + __overlay__ { + // needed to avoid gripping by DTC + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; // probably already set + + ads1015: ads1015@48 { + + compatible = "ti,ads1015"; + status = "okay"; + + #address-cells = <1>; + #size-cells = <0>; + reg = <0x48>; + + hi_res = <1>; + + channel@1 { + reg = <4>; + ti,gain = <2>; + ti,datarate = <2>; + }; + channel@2 { + reg = <5>; + ti,gain = <2>; + ti,datarate = <2>; + }; + channel@3 { + reg = <6>; + ti,gain = <2>; + ti,datarate = <2>; + }; + channel@4 { + reg = <0>; + ti,gain = <3>; + ti,datarate = <2>; + }; + }; + }; + + }; + +}; diff --git a/configs/ARM/BeagleBone/BeBoPr++/dtc.sh b/configs/ARM/BeagleBone/BeBoPr++/dtc.sh new file mode 100755 index 00000000000..e8fc8f7d4e9 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/dtc.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# Copyright 2013 +# Charles Steinkuehler +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +for dto in BB-LCNC-BEBOPRBR-00A0 cape-bebopr-brdg-R3 cape-bebopr-pp-R3 ; do + dtc -O dtb -o ${dto}.dtbo -b 0 -@ ${dto}.dts && sudo cp ${dto}.dtbo /lib/firmware/ +done diff --git a/configs/ARM/BeagleBone/BeBoPr++/setup.bridge.sh b/configs/ARM/BeagleBone/BeBoPr++/setup.bridge.sh new file mode 100755 index 00000000000..62407614277 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/setup.bridge.sh @@ -0,0 +1,129 @@ +#!/bin/bash +# Copyright 2013 +# Charles Steinkuehler +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +dtbo_err () { + echo "Error loading device tree overlay file: $DTBO" >&2 + exit 1 +} + +pin_err () { + echo "Error exporting pin:$PIN" >&2 + exit 1 +} + +dir_err () { + echo "Error setting direction:$DIR on pin:$PIN" >&2 + exit 1 +} + +SLOTS=/sys/devices/bone_capemgr.*/slots + +# Export GPIO pins +export_gpio () { + while read PIN DIR JUNK ; do + case "$PIN" in + ""|\#*) + continue ;; + *) + [ -r /sys/class/gpio/gpio$PIN ] && continue + sudo -A su -c "echo $PIN > /sys/class/gpio/export" || pin_err + sudo -A su -c "echo $DIR > /sys/class/gpio/gpio$PIN/direction" || dir_err + ;; + esac + + done +} + +# Make sure required device tree overlay(s) are loaded +ACTIVE="" +for DTBO in cape-bebopr-pp cape-bebopr-brdg BB-LCNC-BEBOPRBR ; do + + BEBOPR=`grep ${DTBO} ${SLOTS} | egrep "[0-9]+: 5[4567]:P-"` + if [ -n "${BEBOPR}" ] ; then + SLOT=`echo ${BEBOPR} | cut -d':' -f1` + echo -n "Cape \"${DTBO}\" with EEPROM in slot ${SLOT} is " + echo ${BEBOPR} | grep -q "0: 54:P---F" + if [ $? -eq 0 ] ; then + echo "active" + ACTIVE=${SLOT} + break + else + echo "not active" + fi + fi + + BEBOPR=`grep ${DTBO} ${SLOTS} | egrep "[0-9]+: ff:P-O-L"` + if [ -n "${BEBOPR}" ] ; then + SLOT=`echo ${BEBOPR} | cut -d':' -f1` + echo "Overlay \"${DTBO}\" in slot ${SLOT} is active" + ACTIVE=${SLOT} + break + fi +done + +if [ -z "${ACTIVE}" ] ; then + echo "Need to load overlay" + +# Try loading an overlay. Start with the ones using most resources +# and most likely to fail on older capes. + + for DTBO in cape-bebopr-pp:R3 cape-bebopr-brdg:R2 BB-LCNC-BEBOPRBR ; do + echo -n "Loading overlay \"${DTBO}\" ... " + if sudo -A su -c "echo $DTBO > $SLOTS" ; then + echo "Success" + break + else + echo "Failed" + fi + done + sleep 1 + +fi + +if [ ! -r /sys/devices/ocp.*/44e0d000.tscadc/tiadc/iio:device0/in_voltage5_raw ] ; then + echo "Analog input files not found in /sys/devices/ocp.*/44e0d000.tscadc/tiadc/iio:device0/" >&2 + exit 1; +fi + +if [ ! -r /sys/class/uio/uio0 ] ; then + echo PRU control files not found in /sys/class/uio/uio0 >&2 + exit 1; +fi + +# Using Official overlay, setup pin muxing to match what the HAL file expects + +# Setup PWM outputs to use GPIO pins +for FILE in /sys/devices/ocp.*/bebopr_pwm_J[234]_pinmux.*/state ; do + if [ -f $FILE ] ; then + sudo -A su -c "echo gpio > $FILE" || bebopr_err pwm: $FILE + fi +done + +# Setup LED with no trigger, so we can drive it with the GPIO pin +# Change this if you want the LED tied to something else (like heartbeat) +FILE=/sys/devices/ocp.*/bebopr_leds.*/leds/bebopr\:status_led/trigger +if [ -f $FILE ] ; then + sudo -A su -c "echo none > $FILE" || bebopr_err led: $FILE +fi + +# Export PWM GPIO pins which are not exported by the overlay +export_gpio <<- EOF + 23 low # P8.13 gpio0.23 PWM0 + 22 low # P8.19 gpio0.22 PWM1 + 50 low # p9.14 gpio1.18 PWM2 +EOF diff --git a/configs/ARM/BeagleBone/BeBoPr++/tool.tbl b/configs/ARM/BeagleBone/BeBoPr++/tool.tbl new file mode 100644 index 00000000000..c0b72de0652 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr++/tool.tbl @@ -0,0 +1,4 @@ +T1 P1 D0.125000 Z+0.511000 ;1/8 end mill +T2 P2 D0.062500 Z+0.100000 ;1/16 end mill +T3 P3 D0.201000 Z+1.273000 ;#7 tap drill +T99999 P99999 Z+0.100000 ;big tool number diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/BB-LCNC-BEBOPRBR-00A0.dts b/configs/ARM/BeagleBone/BeBoPr-Bridge/BB-LCNC-BEBOPRBR-00A0.dts new file mode 100644 index 00000000000..3cde9eabb72 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/BB-LCNC-BEBOPRBR-00A0.dts @@ -0,0 +1,129 @@ +// Copyright 2013 +// Charles Steinkuehler +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +/dts-v1/; +/plugin/; + +/ { + compatible = "ti,beaglebone", "ti,beaglebone-black"; + + /* identification */ + part-number = "BB-LCNC-BEBOPRBR"; + version = "00A0"; + + /* state the resources this cape uses */ + exclusive-use = + /* the pin header uses */ + "P8.7", /* gpio2.2 Enablen */ + "P8.8", /* gpio2.3 X_Min */ + "P8.9", /* gpio2.5 X_Max */ + "P8.10", /* gpio2.4 Y_Min */ + "P8.11", /* gpio1.13 X_Dir */ + "P8.12", /* gpio1.12 X_Step */ + "P8.13", /* gpio0.23 PWM0 */ + "P8.14", /* gpio0.26 Y_Max */ + "P8.15", /* gpio1.15 Y_Dir */ + "P8.16", /* gpio1.14 Y_Step */ + "P8.17", /* gpio0.27 Z_Min */ + "P8.18", /* gpio2.1 Z_Max */ + "P8.19", /* gpio0.22 PWM1 */ + "P8.26", /* gpio1.29 Status */ + "P9.14", /* gpio1.18 PWM2 */ + "P9.15", /* gpio1.16 Z_Step */ + "P9.17", /* gpio0.5 B_Dir */ + "P9.18", /* gpio0.4 B_Step */ + "P9.21", /* gpio0.3 A_Dir */ + "P9.22", /* gpio0.2 A_Step */ + "P9.23", /* gpio1.17 Z_Dir */ + "P9.24", /* gpio0.15 Spindle */ + "P9.26", /* gpio0.14 Mtr_Ena */ +// "P9.33", /* AIN4 Therm0 */ +// "P9.35", /* AIN6 Therm2 */ +// "P9.36", /* AIN5 Therm1 */ + + /* the hardware IP uses */ +/* The following 4 pins conflict with the on-board mmc flash */ + "gpio2_2", + "gpio2_3", + "gpio2_5", + "gpio2_4", + "gpio1_13", + "gpio1_12", + "gpio0_23", + "gpio0_26", + "gpio1_15", + "gpio1_14", + "gpio0_27", + "gpio2_1", + "gpio0_22", + "gpio1_29", + "gpio1_18", + "gpio1_16", + "gpio0_5", + "gpio0_4", + "gpio0_3", + "gpio0_2", + "gpio1_17", + "gpio0_15", + "pru0"; + + fragment@0 { + target = <&am33xx_pinmux>; + __overlay__ { + + foo_pins: foo_pins { + pinctrl-single,pins = < + 0x090 0x3f /* P8.7 gpio2.2 Enablen */ + 0x094 0x3f /* P8.8 gpio2.3 X_Min */ + 0x09c 0x3f /* P8.9 gpio2.5 X_Max */ + 0x098 0x3f /* P8.10 gpio2.4 Y_Min */ + 0x034 0x3f /* P8.11 gpio1.13 X_Dir */ + 0x030 0x3f /* P8.12 gpio1.12 X_Step */ + 0x024 0x3f /* P8.13 gpio0.23 PWM0 */ + 0x028 0x3f /* P8.14 gpio0.26 Y_Max */ + 0x03c 0x3f /* P8.15 gpio1.15 Y_Dir */ + 0x038 0x3f /* P8.16 gpio1.14 Y_Step */ + 0x02c 0x3f /* P8.17 gpio0.27 Z_Min */ + 0x08c 0x3f /* P8.18 gpio2.1 Z_Max */ + 0x020 0x3f /* P8.19 gpio0.22 PWM1 */ + 0x07c 0x3f /* p8.26 gpio1.29 Status */ + 0x048 0x3f /* p9.14 gpio1.18 PWM2 */ + 0x040 0x3f /* p9.15 gpio1.16 Z_Step */ + 0x15c 0x3f /* p9.17 gpio0.5 B_Dir */ + 0x158 0x3f /* p9.18 gpio0.4 B_Step */ + 0x154 0x3f /* p9.21 gpio0.3 A_Dir */ + 0x150 0x3f /* p9.22 gpio0.2 A_Step */ + 0x044 0x3f /* P9.23 gpio1.17 Z_Dir */ + 0x184 0x3f /* P9.24 gpio0.15 Spindle */ + 0x180 0x3f /* P9.26 gpio0.14 Mtr_Ena */ + >; + }; + }; + }; + + fragment@1 { + target = <&pruss>; + __overlay__ { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&foo_pins>; + + }; + }; +}; + diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/BeBoPr-Bridge.hal b/configs/ARM/BeagleBone/BeBoPr-Bridge/BeBoPr-Bridge.hal new file mode 100755 index 00000000000..9179352e233 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/BeBoPr-Bridge.hal @@ -0,0 +1,324 @@ +# ####################################### +# +# HAL file for BeagleBone + BeBoPr cape with 4 steppers +# +# Derived from example hm2-stepper config +# +# ######################################## + +# Launch the setup script to make sure hardware setup looks good +loadusr -w ./setup.bridge.sh + + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +loadrt trivkins + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + + +# load low-level drivers +loadrt hal_bb_gpio output_pins=107,126,217,218,224,226 input_pins=108,109,110,114,117,118 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg +loadrt pid count=2 +loadrt limit1 count=2 + + +# Python user-mode HAL module to read ADC value and generate a thermostat output for PWM +# t = Thermistor table (only epcos_B57560G1104 or 1 supported for now) +# a = analog input channel +loadusr -Wn Therm ./ReadTemp.py -n Therm --num_chan 2 -t 1 1 -a 4 5 + +# ################################################ +# THREADS +# ################################################ + +addf hpg.capture-position servo-thread +addf bb_gpio.read servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf pid.0.do-pid-calcs servo-thread +addf pid.1.do-pid-calcs servo-thread +addf limit1.0 servo-thread +addf limit1.1 servo-thread +addf hpg.update servo-thread +addf bb_gpio.write servo-thread + + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + + +# ################ +# X [0] Axis +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hpg.stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => hpg.stepgen.00.position-cmd + +net motor.00.pos-fb <= hpg.stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN +setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE + +setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +#setp hpg.stepgen.00.step_type 0 +# P8.43 PRU1.out2 +setp hpg.stepgen.00.steppin 0x4C +# P8.44 PRU1.out4 +setp hpg.stepgen.00.dirpin 0x4D + + +# ################ +# Y [1] Axis +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hpg.stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => hpg.stepgen.01.position-cmd + +net motor.01.pos-fb <= hpg.stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN +setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE + +setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +#setp hpg.stepgen.01.step_type 0 +# P8.42 PRU1.out5 +setp hpg.stepgen.01.steppin 0x4E +# P8.39 PRU1.out6 +setp hpg.stepgen.01.dirpin 0x4F + + +# ################ +# Z [2] Axis +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hpg.stepgen.02.enable + + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => hpg.stepgen.02.position-cmd + +net motor.02.pos-fb <= hpg.stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN +setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hpg.stepgen.02.position-scale [AXIS_2]SCALE + +setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +#setp hpg.stepgen.02.step_type 0 +# P8.27 PRU1.out8 +setp hpg.stepgen.02.steppin 0x50 +# P8.29 PRU1.out9 +setp hpg.stepgen.02.dirpin 0x51 + + +# ################ +# A [3] Axis (Extruder) +# ################ + +# axis enable chain +newsig emcmot.03.enable bit +sets emcmot.03.enable FALSE + +net emcmot.03.enable <= axis.3.amp-enable-out +net emcmot.03.enable => hpg.stepgen.03.enable + + +# position command and feedback +net emcmot.03.pos-cmd <= axis.3.motor-pos-cmd +net emcmot.03.pos-cmd => hpg.stepgen.03.position-cmd + +net motor.03.pos-fb <= hpg.stepgen.03.position-fb +net motor.03.pos-fb => axis.3.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP +setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD + +setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN +setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE + +setp hpg.stepgen.03.position-scale [AXIS_3]SCALE + +setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL +setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC + +#setp hpg.stepgen.03.step_type 0 +# P8.30 GPIO2.25 +setp hpg.stepgen.03.steppin 0x22 +# P8.21 GPIO1.30 +setp hpg.stepgen.03.dirpin 0x23 + + +# ################################################## +# Standard I/O - EStop, Enables, Limit Switches, Etc +# ################################################## + +# create a signal for the estop loopback +net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# Axis enable signals +net emcmot.00.enable => bb_gpio.p9.out-18 +setp bb_gpio.p9.out-18.invert 1 +net emcmot.01.enable => bb_gpio.p9.out-17 +setp bb_gpio.p9.out-17.invert 1 +net emcmot.02.enable => bb_gpio.p9.out-26 +setp bb_gpio.p9.out-26.invert 1 +net emcmot.03.enable => bb_gpio.p9.out-24 +setp bb_gpio.p9.out-24.invert 1 + +# Machine power (BeBoPr Enable) +# Enable tied to system Reset_n line (P9.10) +net estop-loop => bb_gpio.p8.out-07 +setp bb_gpio.p8.out-07.invert 1 + + +# ################################################## +# PWM and Temperature Signals +# ################################################## + +# Define signals to use elsewhere (ie: M1xx codes) +# If you change any names here, lots of things will break! +newsig e0.temp.set float +newsig e0.temp.meas float +newsig bed.temp.set float +newsig bed.temp.meas float + + +setp hpg.pwmgen.00.pwm_period 10000000 + +# J2 E0 Heater PRU1.out1 +setp hpg.pwmgen.00.out.00.pin 0x37 +setp hpg.pwmgen.00.out.00.enable 1 +setp hpg.pwmgen.00.out.00.value 0.0 + +# J3 E1 Heater PRU1.out0 +setp hpg.pwmgen.00.out.01.pin 0x36 +setp hpg.pwmgen.00.out.01.enable 1 +setp hpg.pwmgen.00.out.01.value 0.0 + +# J4 Bed Heater GPIO2.16 +setp hpg.pwmgen.00.out.02.pin 0x52 +setp hpg.pwmgen.00.out.02.enable 1 +setp hpg.pwmgen.00.out.02.value 0.0 + +# PID for Extruder 0 temperature control +net e0.temp.meas <= Therm.temp0 +net e0.temp.meas => pid.0.feedback + +sets e0.temp.set 0 +net e0.temp.set => pid.0.command + +net e0.heater <= pid.0.output +net e0.heater => limit1.0.in +net e0.heaterl <= limit1.0.out +net e0.heaterl => hpg.pwmgen.00.out.00.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.0.min 0 + +# PID for Bed temperature control +net bed.temp.meas <= Therm.temp1 +net bed.temp.meas => pid.1.feedback + +sets bed.temp.set 0 +net bed.temp.set => pid.1.command + +net bed.heater <= pid.1.output +net bed.heater => limit1.1.in +net bed.heaterl <= limit1.1.out +net bed.heaterl => hpg.pwmgen.00.out.02.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.1.min 0 + +# PID Parameters for adjusting temperature control +# Extruder +#setp pid.0.FF0 0 +#setp pid.0.FF1 0 +#setp pid.0.FF2 0 +setp pid.0.Pgain 0.30 +setp pid.0.Igain 0.00001 +setp pid.0.Dgain 0.9375 +setp pid.0.maxerrorI 1.0 +setp pid.0.bias 0.5 +setp pid.0.enable 1 + +# Bed +#setp pid.1.FF0 0 +#setp pid.1.FF1 0 +#setp pid.1.FF2 0 +setp pid.1.Pgain 1 +setp pid.1.Igain 0.0 +setp pid.1.Dgain 0.0 +setp pid.1.maxerrorI 1.0 +setp pid.1.bias 0.5 +setp pid.1.enable 1 diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/BeBoPr-Bridge.ini b/configs/ARM/BeagleBone/BeBoPr-Bridge/BeBoPr-Bridge.ini new file mode 100755 index 00000000000..e4510b47279 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/BeBoPr-Bridge.ini @@ -0,0 +1,303 @@ +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=4 num_pwmgens=3 +PRUBIN=xenomai/pru_generic.bin + + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = BeBoPr + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +#DISPLAY = gscreen +DISPLAY = axis + +# Touchy currently won't work without some hardware buttons/jog-wheel +#DISPLAY = touchy + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.200 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +PYVCP = BeBoPr.panel.xml + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = pru-stepper.var + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = BeBoPr-Bridge.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +POSTGUI_HALFILE = BeBoPr.postgui.hal + + +[TRAJ] + +AXES = 4 +COORDINATES = X Y Z A +MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 20.00 +MAX_LINEAR_VELOCITY = 200.00 + + + + + +[AXIS_0] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# + + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +# scale is 200 steps/rev * 5 revs/inch +SCALE = -80 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 220.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 0 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_1] + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +SCALE = 80.0 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 250.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 0 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_2] + +TYPE = LINEAR +MAX_VELOCITY = 5.0 +MAX_ACCELERATION = 100.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 6.0 +STEPGEN_MAX_ACC = 125.0 + +BACKLASH = 0.000 + +SCALE = 1511.81102362 + +MIN_LIMIT = -10.0 +MAX_LIMIT = 200.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 0 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_3] + +TYPE = ANGULAR +MAX_VELOCITY = 31.8993189453 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 37.0 +STEPGEN_MAX_ACC = 3750.0 + +BACKLASH = 0.000 + +SCALE = -744.530002058 +#SCALE = -732.32 + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 1.0 +MIN_FERROR = .25 + +HOME = 0.0 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 0 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl + diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/BeBoPr.panel.xml b/configs/ARM/BeagleBone/BeBoPr-Bridge/BeBoPr.panel.xml new file mode 100644 index 00000000000..827a07b49ae --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/BeBoPr.panel.xml @@ -0,0 +1,31 @@ + + + + + + + "E0.Temp.set" + "3.1f" + + + + "E0.Temp" + 300 + + + + + + "Bed.Temp.set" + "3.1f" + + + + "Bed.Temp" + 300 + + diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/BeBoPr.postgui.hal b/configs/ARM/BeagleBone/BeBoPr-Bridge/BeBoPr.postgui.hal new file mode 100644 index 00000000000..d9448632adf --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/BeBoPr.postgui.hal @@ -0,0 +1,8 @@ +# Include your customized HAL commands here +# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts + +net e0.temp.set => pyvcp.E0.Temp.set +net e0.temp.meas => pyvcp.E0.Temp +net bed.temp.set => pyvcp.Bed.Temp.set +net bed.temp.meas => pyvcp.Bed.Temp + diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/README b/configs/ARM/BeagleBone/BeBoPr-Bridge/README new file mode 100644 index 00000000000..0a5f41a091b --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/README @@ -0,0 +1,34 @@ +These configurations drive a standard 4-axis 3D printer using the PRU +for high speed step/dir pulse generation and work with the following +hardware: + + BeBoPr++ + BeBoPr+ + BeBoPr with Bridge + Other boards using the somewhat standard BeBoPr-Bridge pinout + +If using a BeagleBone Black, you may leave the eMMC and HDMI interfaces +enabled. + +Configuration Details +===================== +Adjust as required for your machine. Make scale negative to invert any +axis that is moving 'backwards'. + +BeBoPr-Bridge: +-------------- +A typical "MendelMax" style printer + +lineardelta: +------------ +A linear delta or "Rostock" style printer + + +lineardelta-vel-extr: +--------------------- +A linear delta printer using dynamicaly calculated velocity control of +the extruder, rather than operating as a coordinated 4-axis machine. + +For detalis, see: +http://basdebruijn.com/2014/05/machinekit-and-additive-manufacturing/ + diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/ReadTemp.py b/configs/ARM/BeagleBone/BeBoPr-Bridge/ReadTemp.py new file mode 100755 index 00000000000..2eda38ce665 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/ReadTemp.py @@ -0,0 +1,323 @@ +#!/usr/bin/python + +######################################################################## +# Description: temp.py # +# This code reads an ADC input on the BeagleBone and converts the # +# resulting value into a temperature according to the thermistor # +# type, accounting for the analog input circuty as implemented on # +# the BeBoPr cape # +# # +# Author(s): Charles Steinkuehler # +# License: GNU GPL Version 2.0 or (at your option) any later version. # +# # +# Major Changes: # +# 2013-June Charles Steinkuehler # +# Initial version # +######################################################################## +# Copyright (C) 2013 Charles Steinkuehler # +# # +# # +# This program is free software; you can redistribute it and/or # +# modify it under the terms of the GNU General Public License # +# as published by the Free Software Foundation; either version 2 # +# of the License, or (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # +# 02110-1301, USA. # +# # +# THE AUTHORS OF THIS PROGRAM ACCEPT ABSOLUTELY NO LIABILITY FOR # +# ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE # +# TO RELY ON SOFTWARE ALONE FOR SAFETY. Any machinery capable of # +# harming persons must have provisions for completely removing power # +# from all motors, etc, before persons enter any danger area. All # +# machinery must be designed to comply with local and national safety # +# codes, and the authors of this software can not, and do not, take # +# any responsibility for such compliance. # +######################################################################## + +import argparse +import bisect +import glob +import sys +import time + +import hal + +# Fixme: Put thermistor data in an include file +Thermistor = {} +Thermistor["epcos_B57560G1104"] = [ +# Temp, Resistance, alpha +[ -60.0, float('inf'), 7.6 ], +[ -55.0, 10011000, 7.4 ], +[ -50.0, 6956000, 7.2 ], +[ -45.0, 4894500, 6.9 ], +[ -40.0, 3485300, 6.7 ], +[ -35.0, 2510200, 6.5 ], +[ -30.0, 1827500, 6.2 ], +[ -25.0, 1344300, 6.0 ], +[ -20.0, 998530, 5.9 ], +[ -15.0, 748670, 5.7 ], +[ -10.0, 566360, 5.5 ], +[ -5.0, 432120, 5.3 ], +[ 0.0, 332400, 5.2 ], +[ 5.0, 257690, 5.0 ], +[ 10.0, 201270, 4.9 ], +[ 15.0, 158340, 4.7 ], +[ 20.0, 125420, 4.6 ], +[ 25.0, 100000, 4.5 ], +[ 30.0, 80239, 4.3 ], +[ 35.0, 64776, 4.2 ], +[ 40.0, 52598, 4.1 ], +[ 45.0, 42950, 4.0 ], +[ 50.0, 35262, 3.9 ], +[ 55.0, 29100, 3.8 ], +[ 60.0, 24136, 3.7 ], +[ 65.0, 20114, 3.6 ], +[ 70.0, 16841, 3.5 ], +[ 75.0, 14164, 3.4 ], +[ 80.0, 11963, 3.3 ], +[ 85.0, 10147, 3.3 ], +[ 90.0, 8640.7, 3.2 ], +[ 95.0, 7386.7, 3.1 ], +[ 100.0, 6338.3, 3.0 ], +[ 105.0, 5458.4, 3.0 ], +[ 110.0, 4717, 2.9 ], +[ 115.0, 4090.1, 2.8 ], +[ 120.0, 3558.1, 2.8 ], +[ 125.0, 3105, 2.7 ], +[ 130.0, 2717.9, 2.6 ], +[ 135.0, 2386.1, 2.6 ], +[ 140.0, 2100.8, 2.5 ], +[ 145.0, 1854.8, 2.5 ], +[ 150.0, 1641.9, 2.4 ], +[ 155.0, 1457.3, 2.4 ], +[ 160.0, 1296.7, 2.3 ], +[ 165.0, 1156.6, 2.3 ], +[ 170.0, 1034.1, 2.2 ], +[ 175.0, 926.64, 2.2 ], +[ 180.0, 832.24, 2.1 ], +[ 185.0, 749.07, 2.1 ], +[ 190.0, 675.64, 2.0 ], +[ 195.0, 610.64, 2.0 ], +[ 200.0, 552.99, 2.0 ], +[ 205.0, 501.75, 1.9 ], +[ 210.0, 456.11, 1.9 ], +[ 215.0, 415.37, 1.9 ], +[ 220.0, 378.95, 1.8 ], +[ 225.0, 346.31, 1.8 ], +[ 230.0, 317.01, 1.8 ], +[ 235.0, 290.67, 1.7 ], +[ 240.0, 266.93, 1.7 ], +[ 245.0, 245.51, 1.7 ], +[ 250.0, 226.15, 1.6 ], +[ 255.0, 208.62, 1.6 ], +[ 260.0, 192.73, 1.6 ], +[ 265.0, 178.29, 1.5 ], +[ 270.0, 165.16, 1.5 ], +[ 275.0, 153.19, 1.5 ], +[ 280.0, 142.28, 1.5 ], +[ 285.0, 132.31, 1.4 ], +[ 290.0, 123.19, 1.4 ], +[ 295.0, 114.83, 1.4 ], +[ 300.0, 107.16, 1.4 ], +[ 400.0, 0.0, 1.4 ] ] + + +# Temperature table needs resistance to be ordered low [0] to high [n] +Thermistor["epcos_B57560G1104"].reverse() + +# Epcos B57560G1104 is Marlin thermistor table 1 +Thermistor["1"] = Thermistor["epcos_B57560G1104"] + + +Thermistor["semitec_103GT_2"] = [ +# Temp, Resistance, alpha +[ -60.0, float('inf'), 0.0 ], +[ -50.0, 8743000.0, 0.0 ], +[ -40.0, 4218000.0, 0.0 ], +[ -30.0, 2132000.0, 0.0 ], +[ -20.0, 1127000.0, 0.0 ], +[ -10.0, 620000.0, 0.0 ], +[ 0.0, 353700.0, 0.0 ], +[ 10.0, 208600.0, 0.0 ], +[ 20.0, 126800.0, 0.0 ], +[ 30.0, 79360.0, 0.0 ], +[ 40.0, 50960.0, 0.0 ], +[ 50.0, 33490.0, 0.0 ], +[ 60.0, 22510.0, 0.0 ], +[ 70.0, 15440.0, 0.0 ], +[ 80.0, 10800.0, 0.0 ], +[ 90.0, 7686.0, 0.0 ], +[ 100.0, 5556.0, 0.0 ], +[ 110.0, 4082.0, 0.0 ], +[ 120.0, 3043.0, 0.0 ], +[ 130.0, 2298.0, 0.0 ], +[ 140.0, 1758.0, 0.0 ], +[ 150.0, 1360.0, 0.0 ], +[ 160.0, 1064.0, 0.0 ], +[ 170.0, 841.4, 0.0 ], +[ 180.0, 671.4, 0.0 ], +[ 190.0, 540.8, 0.0 ], +[ 200.0, 439.3, 0.0 ], +[ 210.0, 359.7, 0.0 ], +[ 220.0, 296.9, 0.0 ], +[ 230.0, 246.8, 0.0 ], +[ 240.0, 206.5, 0.0 ], +[ 250.0, 174.0, 0.0 ], +[ 260.0, 147.5, 0.0 ], +[ 270.0, 125.8, 0.0 ], +[ 280.0, 107.9, 0.0 ], +[ 290.0, 93.05, 0.0 ], +[ 300.0, 80.65, 0.0 ], +[ 400.0, 0.0, 1.4 ] ] + + +# Temperature table needs resistance to be ordered low [0] to high [n] +Thermistor["semitec_103GT_2"].reverse() + +# ATC Semtec 104GT-2 is Marlin thermistor table 5 +Thermistor["5"] = Thermistor["semitec_103GT_2"] + +# Test for multiple thermistor tables +Thermistor["2"] = [ +[ 400.0, 0.0, 1.4 ], +[ 300.0, 1000.0, 2.0 ], +[ 200.0, 10000.0, 3.0 ], +[ 100.0, 100000.0, 6.0 ], +[ 0.0, float('inf'), 7.6 ] ] + +# The BeBoPr board thermistor input has one side grounded and the other side +# pulled high through a 2.05K resistor to 3.6V. Following this is a 470R +# resistor, some protection diodes, and a voltage divider cosisting of two +# 10.0K resistors. The ADC voltage read is the voltage across the lower 10K +# resistor in the 470R + 10K + 10K series chain +def adc2r(V_adc): + V_T = 0.0 # Voltage across the thermistor (and the 470R + 10K + 10K resistor chain) + I_PU = 0.0 # Current flowing through the 2.05K pull-up resistor + R_TD = 0.0 # Resistance of thermistor and the 470R + 10K + 10K divider chain in parallel + R_T = 0.0 # Resistance of the thermistor + + V_T = V_adc * 2.0470 + + # No dividing by zero or negative voltages despite what the ADC says! + # Clip to a small positive value + I_PU = max((3.6 - V_T ) / 2050, 0.000001) + + R_TD = V_T / I_PU + + # Acutal resistance can't be negative, but we can get a negative value + # from the equation below for some real ADC values, so clip to avoid + # reporting crazy temperature values or dividing by zero + if R_TD >= 20470 : + R_TD = 20470 - 0.1 + + # 1 / Rtotal = 1 / ( 1 / R1 + 1 / R2 ) + # R2 = ( R1 * Rtotal ) / ( R1 - Rtotal ) + R_T = ( 20470 * R_TD ) / ( 20470 - R_TD ) + + # print "V_adc: %f V_T: %f R_TD: %f R_T: %f" % (V_adc, V_T, R_TD, R_T) + + + return R_T + +# Convert resistance value into temperature, using thermistor table +def r2t(n, R_T): + temp_slope = 0.0 + temp = 0.0 + + i = max(bisect.bisect_right(R_Key[n], R_T) - 1, 0) + + temp_slope = (thermistor[n][0][i] - thermistor[n][0][i+1]) / (thermistor[n][1][i] - thermistor[n][1][i+1]) + temp = thermistor[n][0][i] + ((R_T - thermistor[n][1][i]) * temp_slope) + #print "Temp:", temp, "i.R_T:", i, R_T, "slope:", temp_slope, + #print "Deg.left:", Thermistor["epcos_B57560G1104"][i], "Deg.right:", Thermistor["epcos_B57560G1104"][i+1] + return temp + +parser = argparse.ArgumentParser(description='HAL component to read ADC values and convert to temperature') +parser.add_argument('-n','--name', help='HAL component name',required=True) +parser.add_argument('-N','--num_chan', help='Number of analog inputs to support',default=1) +parser.add_argument('-a','--adc', nargs='+', help='ADC input to read', required=True) +parser.add_argument('-t','--therm',nargs='+', help='Thermistor table to use', required=True) +args = parser.parse_args() + +num_chan = int(args.num_chan) + +if len(args.adc) != num_chan : + raise UserWarning('Incorrect number of ADC channels specified! Expected:' + str(args.num_chan) + str(len(args.adc)) ) + +if len(args.therm) != num_chan : + raise UserWarning('Incorrect number of thermistors specified! Expected:' + args.num_chan) + +syspath = '/sys/devices/ocp.*/44e0d000.tscadc/tiadc/iio:device0/' + +FileName = [] + +for i in range(num_chan): + TempName = glob.glob (syspath + 'in_voltage' + args.adc[i] + '_raw') + FileName.insert(i, TempName[0]) + try: + if len(FileName[i]) > 0: + f = open(FileName[i], 'r') + f.close() + time.sleep(0.001) + else: + raise UserWarning('Bad Filename') + except (UserWarning, IOError) : + print("Cannot read ADC input: %s" % Filename[i]) + sys.exit(1) + +thermistor = [] +R_Key = [] +for i in range(num_chan): + if args.therm[i] in Thermistor: + # Shuffle array to make three lists of values (Temp, Resistane, Alpha) + # so we can use bisect to efficiently do table lookups + thermistor.insert(i, map(list, zip(*Thermistor[args.therm[i]])) ) + + # Pull out the resistance values to use as a key for bisect + R_Key.insert(i, thermistor[i][1] ) + + else: + print("Unknown thermistor type: %s" % args.therm) + print 'Try one of:', Thermistor.keys() + sys.exit(1) + +h = hal.component(args.name) +for i in range(num_chan): + h.newpin("raw" + str(i), hal.HAL_U32, hal.HAL_OUT) + h.newpin("temp" + str(i), hal.HAL_FLOAT, hal.HAL_OUT) + +h.ready() + +Err = 0.0 +ADC_V = 0.0 +temp = 0.0 + +while 1: + try: + for i in range(num_chan): + f = open(FileName[i], 'r') + ADC_IN = int(f.readline()) + h['raw' + str(i)] = ADC_IN + ADC_V = float(ADC_IN) * 1.8 / 4096.0 + temp = r2t(i,adc2r(ADC_V)) + h['temp' + str(i)] = temp + #print ADC_IN, temp + f.close() + time.sleep(0.001) + + time.sleep(0.049) + + except IOError: + continue + + except KeyboardInterrupt: + raise SystemExit + diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/dtc.sh b/configs/ARM/BeagleBone/BeBoPr-Bridge/dtc.sh new file mode 100755 index 00000000000..59bbd698832 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/dtc.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# Copyright 2013 +# Charles Steinkuehler +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +dtc -O dtb -o BB-LCNC-BEBOPRBR-00A0.dtbo -b 0 -@ BB-LCNC-BEBOPRBR-00A0.dts && \ +cp BB-LCNC-BEBOPRBR-00A0.dtbo /lib/firmware/ + diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/lineardelta.hal b/configs/ARM/BeagleBone/BeBoPr-Bridge/lineardelta.hal new file mode 100644 index 00000000000..8314ef6c2ec --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/lineardelta.hal @@ -0,0 +1,385 @@ +# ####################################### +# +# HAL file for BeagleBone + BeBoPr cape with 4 steppers +# +# Derived from example hm2-stepper config +# +# ######################################## + +# Launch the setup script to make sure hardware setup looks good +loadusr -w ./setup.bridge.sh + + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +#loadrt trivkins +loadrt lineardeltakins + +# settings for delta printer +setp lineardeltakins.L [MACHINE]CF_ROD +setp lineardeltakins.R [MACHINE]DELTA_R + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=lineardeltakins + +# load low-level drivers +loadrt hal_bb_gpio output_pins=107,126,217,218,224,226 input_pins=108,109,110,114,117,118 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg +loadrt pid count=2 +loadrt limit1 count=2 + + +# Python user-mode HAL module to read ADC value and generate a thermostat output for PWM +# t = Thermistor table (only epcos_B57560G1104 or 1 supported for now) +# a = analog input channel +loadusr -Wn Therm ./ReadTemp.py -n Therm --num_chan 2 -t 1 1 -a 4 5 + +#used for comparing temperature set value with actual for waiting on temperature +loadrt wcomp count=1 +# Initialize the sum2 +loadrt sum2 count=2 + +# ################################################ +# THREADS +# ################################################ + +addf hpg.capture-position servo-thread +addf bb_gpio.read servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf pid.0.do-pid-calcs servo-thread +addf pid.1.do-pid-calcs servo-thread +addf limit1.0 servo-thread +addf limit1.1 servo-thread +addf hpg.update servo-thread +addf bb_gpio.write servo-thread + +addf wcomp.0 servo-thread +addf sum2.0 servo-thread +addf sum2.1 servo-thread + + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + + +# ################ +# X [0] Axis = column C +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hpg.stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => hpg.stepgen.00.position-cmd + +net motor.00.pos-fb <= hpg.stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN +setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE + +setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +#setp hpg.stepgen.00.step_type 0 +# P8.43 PRU1.out2 +setp hpg.stepgen.00.steppin 0x4C +# P8.44 PRU1.out4 +setp hpg.stepgen.00.dirpin 0x4D + +# because column C is connected to the X-axis output +# the bebopr-bridge signal needs to be X-max means P8.9 +net home-x bb_gpio.p8.in-09 => axis.0.home-sw-in +setp bb_gpio.p8.in-09.invert 1 + +# ################ +# Y [1] Axis = column A +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hpg.stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => hpg.stepgen.01.position-cmd + +net motor.01.pos-fb <= hpg.stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN +setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE + +setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +#setp hpg.stepgen.01.step_type 0 +# P8.42 PRU1.out5 +setp hpg.stepgen.01.steppin 0x4E +# P8.39 PRU1.out6 +setp hpg.stepgen.01.dirpin 0x4F + + +# because column A is connected to the Y-axis output +# the bebopr-bridge signal needs to be Y-max means P8.14 +net home-y bb_gpio.p8.in-14 => axis.1.home-sw-in +setp bb_gpio.p8.in-14.invert 1 + +# ################ +# Z [2] Axis = column B +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hpg.stepgen.02.enable + + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => hpg.stepgen.02.position-cmd + +net motor.02.pos-fb <= hpg.stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN +setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hpg.stepgen.02.position-scale [AXIS_2]SCALE + +setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +#setp hpg.stepgen.02.step_type 0 +# P8.27 PRU1.out8 +setp hpg.stepgen.02.steppin 0x50 +# P8.29 PRU1.out9 +setp hpg.stepgen.02.dirpin 0x51 + +# because column B is connected to the Z-axis output +# the bebopr-bridge signal needs to be Z-max means P8.18 +net home-z bb_gpio.p8.in-18 => axis.2.home-sw-in +setp bb_gpio.p8.in-18.invert 1 + +# ################ +# A [3] Axis (Extruder) +# ################ + +# axis enable chain +newsig emcmot.03.enable bit +sets emcmot.03.enable FALSE + +net emcmot.03.enable <= axis.3.amp-enable-out +net emcmot.03.enable => hpg.stepgen.03.enable + + +# position command and feedback +net emcmot.03.pos-cmd <= axis.3.motor-pos-cmd +net emcmot.03.pos-cmd => hpg.stepgen.03.position-cmd + +net motor.03.pos-fb <= hpg.stepgen.03.position-fb +net motor.03.pos-fb => axis.3.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP +setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD + +setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN +setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE + +setp hpg.stepgen.03.position-scale [AXIS_3]SCALE + +setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL +setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC + +#setp hpg.stepgen.03.step_type 0 +# P8.30 GPIO2.25 +setp hpg.stepgen.03.steppin 0x22 +# P8.21 GPIO1.30 +setp hpg.stepgen.03.dirpin 0x23 + + +# ################################################## +# Standard I/O - EStop, Enables, Limit Switches, Etc +# ################################################## + +# create a signal for the estop loopback +net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# Axis enable signals +net emcmot.00.enable => bb_gpio.p9.out-18 +setp bb_gpio.p9.out-18.invert 1 +net emcmot.01.enable => bb_gpio.p9.out-17 +setp bb_gpio.p9.out-17.invert 1 +net emcmot.02.enable => bb_gpio.p9.out-26 +setp bb_gpio.p9.out-26.invert 1 +net emcmot.03.enable => bb_gpio.p9.out-24 +setp bb_gpio.p9.out-24.invert 1 + +# Machine power (BeBoPr Enable) +# Enable tied to system Reset_n line (P9.10) +net estop-loop => bb_gpio.p8.out-07 +setp bb_gpio.p8.out-07.invert 1 + + +# ################################################## +# PWM and Temperature Signals +# ################################################## + +# Define signals to use elsewhere (ie: M1xx codes) +# If you change any names here, lots of things will break! +newsig e0.temp.set float +newsig e0.temp.meas float +newsig bed.temp.set float +newsig bed.temp.meas float +newsig fan.speed.set float + +setp hpg.pwmgen.00.pwm_period 10000000 + +# J2 E0 Heater PRU1.out1 +setp hpg.pwmgen.00.out.00.pin 0x37 +setp hpg.pwmgen.00.out.00.enable 1 +setp hpg.pwmgen.00.out.00.value 0.0 + +#signals for comparing set value and actual value of temperature +#newsig M209_set_temp float +newsig sub_temp_min float +newsig add_temp_max float +newsig e0_temp_within_range bit + +#set boundaries with sum2 +1 and -1 of the wanted temperature +sets add_temp_max 1 +sets sub_temp_min -1 + +net e0.temp.set => sum2.0.in0 +setp sum2.0.in1 2 +#net add_temp_max.out => sum2.0.in1 + +net e0.temp.set => sum2.1.in0 +setp sum2.1.in1 -2 +#net sub_temp_min.out => sum2.1.in1 + +#the values will be given to the wcomp.0 function +net minboundary sum2.1.out => wcomp.0.min +net maxboundary sum2.0.out => wcomp.0.max +net e0.temp.meas => wcomp.0.in + +#the output of wcomp.0 will say if measured temperature is in range of set value +#this needs to be coupled to a digital input for M66 readout +net e0_temp_within_range wcomp.0.out => motion.digital-in-00 + +# no longer J3 E1 Heater PRU1.out0 +# instead used for FAN control +# we use scale 255 for compatibility with slicing software +setp hpg.pwmgen.00.out.01.pin 0x36 +setp hpg.pwmgen.00.out.01.enable 1 +setp hpg.pwmgen.00.out.01.value 0.0 +setp hpg.pwmgen.00.out.01.scale 255 + +#linking motion.analog-out-00 to fan speed.set.signal +net fan.speed.set <= motion.analog-out-00 +net fan.speed.set => hpg.pwmgen.00.out.01.value + + +# J4 Bed Heater GPIO2.16 +setp hpg.pwmgen.00.out.02.pin 0x52 +setp hpg.pwmgen.00.out.02.enable 1 +setp hpg.pwmgen.00.out.02.value 0.0 + +# PID for Extruder 0 temperature control +net e0.temp.meas <= Therm.temp0 +net e0.temp.meas => pid.0.feedback + +sets e0.temp.set 0 +net e0.temp.set => pid.0.command + +net e0.heater <= pid.0.output +net e0.heater => limit1.0.in +net e0.heaterl <= limit1.0.out +net e0.heaterl => hpg.pwmgen.00.out.00.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.0.min 0 + +# PID for Bed temperature control +net bed.temp.meas <= Therm.temp1 +net bed.temp.meas => pid.1.feedback + +sets bed.temp.set 0 +net bed.temp.set => pid.1.command + +net bed.heater <= pid.1.output +net bed.heater => limit1.1.in +net bed.heaterl <= limit1.1.out +net bed.heaterl => hpg.pwmgen.00.out.02.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.1.min 0 + +# PID Parameters for adjusting temperature control +# Extruder +#setp pid.0.FF0 0 +#setp pid.0.FF1 0 +#setp pid.0.FF2 0 +setp pid.0.Pgain 0.30 +setp pid.0.Igain 0.00001 +setp pid.0.Dgain 0.9375 +setp pid.0.maxerrorI 1.0 +setp pid.0.bias 0.5 +setp pid.0.enable 1 + +# Bed +#setp pid.1.FF0 0 +#setp pid.1.FF1 0 +#setp pid.1.FF2 0 +setp pid.1.Pgain 1 +setp pid.1.Igain 0.0 +setp pid.1.Dgain 0.0 +setp pid.1.maxerrorI 1.0 +setp pid.1.bias 0.5 +setp pid.1.enable 1 diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/lineardelta.ini b/configs/ARM/BeagleBone/BeBoPr-Bridge/lineardelta.ini new file mode 100644 index 00000000000..3e5c500ac7c --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/lineardelta.ini @@ -0,0 +1,377 @@ +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=4 num_pwmgens=3 +PRUBIN=xenomai/pru_generic.bin + + + + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = LinearDelta + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[MACHINE] + +# Machine configuration for delta printer + +# when calibrating, if a move at the center (0,0) is actual +# lower than should be (moves into the bed) , then decrease +# the delta radius + +DELTA_R = 158.55 + +# now when the effector travels over the bed in a straight line +# insert a fineliner in the effector and draw a 10x10 cm square +# measure the square and decrease the rod length if the drawing is +# bigger than should be. After that do the delta radius correction +CF_ROD = 326.37 + + + + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +#DISPLAY = gscreen +DISPLAY = axis + +# Touchy currently won't work without some hardware buttons/jog-wheel +#DISPLAY = touchy + +# Cycle time, in seconds, that display will sleep between polls + +CYCLE_TIME = 0.200 +#CYCLE_TIME for using Gscreen +#CYCLE_TIME = 500 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +PYVCP = BeBoPr.panel.xml + + + + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = pru-stepper.var + +#subroutine path for the custom FDM printing .ngc files used for remapping +#use directory in config path until more suitable location. this w.r.t the +#fact that not every machine will have an extruder and/or fan +SUBROUTINE_PATH = ./subroutines + +#remapping M106 (fan control in reprap style) to M206 +REMAP=M206 modalgroup=10 argspec=P ngc=fancontrol + + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = lineardelta.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +POSTGUI_HALFILE = BeBoPr.postgui.hal + + + + +[TRAJ] + +ARC_BLEND_ENABLE = 1 +ARC_BLEND_FALLBACK_ENABLE = 0 +ARC_BLEND_OPTIMIZATION_DEPTH = 50 +ARC_BLEND_GAP_CYCLES = 4 +ARC_BLEND_RAMP_FREQ = 20 + +AXES = 4 +COORDINATES = X Y Z A + +# column A is wired to axis[1] = y-axis output +# column B is wired to axis[2] = z-axis output +# column C is wired to axis[0] = x-axis output + + +1MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 20.00 +MAX_LINEAR_VELOCITY = 200.00 + + + + + +[AXIS_0] +# column C +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# + + +TYPE = LINEAR +MAX_VELOCITY = 350.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis + +# 1us steptime with 1us steplen gives 2us step perios (stepstick) +# 2us is a stepfreq of 500kHz +# BUT +# PRU gives 10us steptime with 10 us steplen and + +# scale = 128 steps/mm so max vel = 50kHz/128 = 390.625 mm/s +STEPGEN_MAX_VEL = 390 +STEPGEN_MAX_ACC = 3600 + +BACKLASH = 0.000 + +# scale is 128 steps/mm +SCALE = 128 + + +MIN_LIMIT = -1.0 +MAX_LIMIT = 785.0 + +FERROR = 5.0 +MIN_FERROR = 1.0 + +HOME = 779.05 +HOME_OFFSET = 779.05 +HOME_SEARCH_VEL = 100.0 +HOME_LATCH_VEL = -1.0 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds for Allegro A4988 +#DIRSETUP = 200 +#DIRHOLD = 200 +#STEPLEN = 1000 +#STEPSPACE = 1000 + +# these are in nanoseconds for DRV8825 +DIRSETUP = 650 +DIRHOLD = 650 +STEPLEN = 1900 +STEPSPACE = 1900 + +HOME_SEQUENCE = 0 + + +[AXIS_1] +# column A +TYPE = LINEAR +MAX_VELOCITY = 350.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 390 +STEPGEN_MAX_ACC = 3600 +BACKLASH = 0.000 + +SCALE = 128 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 785.0 + +FERROR = 5.0 +MIN_FERROR = 1.0 + +HOME = 779.35 +HOME_OFFSET = 779.35 +HOME_SEARCH_VEL = 100.00 +HOME_LATCH_VEL = -1.0 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds for Allegro A4988 +#DIRSETUP = 200 +#DIRHOLD = 200 +#STEPLEN = 1000 +#STEPSPACE = 1000 + +# these are in nanoseconds for DRV8825 +DIRSETUP = 650 +DIRHOLD = 650 +STEPLEN = 1900 +STEPSPACE = 1900 + +HOME_SEQUENCE = 0 + + +[AXIS_2] +# column B +TYPE = LINEAR +MAX_VELOCITY = 350.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 390 +STEPGEN_MAX_ACC = 3600 + +BACKLASH = 0.000 + +SCALE = 128 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 785 + +FERROR = 5.0 +MIN_FERROR = 1.0 + +HOME = 779.15 +HOME_OFFSET = 779.15 +HOME_SEARCH_VEL = 100.0 +HOME_LATCH_VEL = -1.0 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds for Allegro A4988 +#DIRSETUP = 200 +#DIRHOLD = 200 +#STEPLEN = 1000 +#STEPSPACE = 1000 + +# these are in nanoseconds for DRV8825 +DIRSETUP = 650 +DIRHOLD = 650 +STEPLEN = 1900 +STEPSPACE = 1900 + +HOME_SEQUENCE = 0 + + +[AXIS_3] +# extruder +TYPE = LINEAR +MAX_VELOCITY = 11 +MAX_ACCELERATION = 1000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 13 +STEPGEN_MAX_ACC = 1200 + +BACKLASH = 0.000 + +SCALE = 3800 + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 5.0 +MIN_FERROR = 1.0 + +HOME = 0.0 +HOME_OFFSET = 0.0 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +HOME_SEQUENCE = 0 + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl + + + diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/setup.bridge.sh b/configs/ARM/BeagleBone/BeBoPr-Bridge/setup.bridge.sh new file mode 100755 index 00000000000..1a4375195bc --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/setup.bridge.sh @@ -0,0 +1,122 @@ +#!/bin/bash +# Copyright 2013 +# Charles Steinkuehler +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +dtbo_err () { + echo "Error loading device tree overlay file: $DTBO" >&2 + exit 1 +} + +pin_err () { + echo "Error exporting pin:$PIN" >&2 + exit 1 +} + +dir_err () { + echo "Error setting direction:$DIR on pin:$PIN" >&2 + exit 1 +} + +SLOTS=/sys/devices/bone_capemgr.*/slots + +# Export GPIO pins +export_gpio () { + while read PIN DIR JUNK ; do + case "$PIN" in + ""|\#*) + continue ;; + *) + [ -r /sys/class/gpio/gpio$PIN ] && continue + sudo -A su -c "echo $PIN > /sys/class/gpio/export" || pin_err + sudo -A su -c "echo $DIR > /sys/class/gpio/gpio$PIN/direction" || dir_err + ;; + esac + + done +} + +# Identify if a particular cape or overlay is actually loaded +# $1 = cape to look for +cape_loaded() { + grep ,$1\$ $SLOTS | { + # Default to cape not loaded + RET=1 + + # Check for cape + while read SLOT STATUS CAPE JUNK ; do + case $STATUS in + *L ) RET=0 ; break ;; # Cape is loaded + *- ) RET=2 ;; # Cape is present, but not loaded + * ) RET=3 ;; # Unknown status + esac + done + + return $RET + } +} + +# Load a cape +# $1 = cape to load +# $2 = revision (optional) +load_cape () { + echo Loading $1 overlay + sudo -A bash -c "echo $1${2:+:$2} > $SLOTS" || dtbo_err + sleep 1 +} + +# Make sure required device tree overlay(s) are loaded +DTBO=cape-bebopr-brdg +REV=R2 +if cape_loaded $DTBO ; then + echo $DTBO overlay found +else + load_cape $DTBO $REV +fi + +if [ ! -r /sys/devices/ocp.*/44e0d000.tscadc/tiadc/iio:device0/in_voltage5_raw ] ; then + echo "Analog input files not found in /sys/devices/ocp.*/44e0d000.tscadc/tiadc/iio:device0/" >&2 + exit 1; +fi + +if [ ! -r /sys/class/uio/uio0 ] ; then + echo PRU control files not found in /sys/class/uio/uio0 >&2 + exit 1; +fi + +# Using Official overlay, setup pin muxing to match what the HAL file expects + +# Setup PWM outputs to use GPIO pins +for FILE in /sys/devices/ocp.*/bebopr_pwm_J[234]_pinmux.*/state ; do + if [ -f $FILE ] ; then + sudo -A su -c "echo gpio > $FILE" || bebopr_err pwm: $FILE + fi +done + +# Setup LED with no trigger, so we can drive it with the GPIO pin +# Change this if you want the LED tied to something else (like heartbeat) +FILE=/sys/devices/ocp.*/bebopr_leds.*/leds/bebopr\:status_led/trigger +if [ -f $FILE ] ; then + sudo -A su -c "echo none > $FILE" || bebopr_err led: $FILE +fi + +# Export PWM GPIO pins which are not exported by the overlay +export_gpio <<- EOF + 23 low # P8.13 gpio0.23 PWM0 + 22 low # P8.19 gpio0.22 PWM1 + 50 low # p9.14 gpio1.18 PWM2 +EOF + diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/subroutines/fan_and_wait_on_temp_test.ngc b/configs/ARM/BeagleBone/BeBoPr-Bridge/subroutines/fan_and_wait_on_temp_test.ngc new file mode 100644 index 00000000000..f0be6e50a7c --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/subroutines/fan_and_wait_on_temp_test.ngc @@ -0,0 +1,11 @@ +M206 P255 +M104 P100 +M66 P0 L3 Q100 +G1 Z100 F9000 +M104 P50 +M66 P0 L3 Q1000 +G1 Z200 F9000 +M206 P0 +M104 P0 +G1 Z100 F9000 +M2 \ No newline at end of file diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/subroutines/fancontrol.ngc b/configs/ARM/BeagleBone/BeBoPr-Bridge/subroutines/fancontrol.ngc new file mode 100644 index 00000000000..ea63c3a4c9d --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/subroutines/fancontrol.ngc @@ -0,0 +1,3 @@ +o sub + M68 E0 Q#

+o end sub \ No newline at end of file diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/tool.tbl b/configs/ARM/BeagleBone/BeBoPr-Bridge/tool.tbl new file mode 100644 index 00000000000..c0b72de0652 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/tool.tbl @@ -0,0 +1,4 @@ +T1 P1 D0.125000 Z+0.511000 ;1/8 end mill +T2 P2 D0.062500 Z+0.100000 ;1/16 end mill +T3 P3 D0.201000 Z+1.273000 ;#7 tap drill +T99999 P99999 Z+0.100000 ;big tool number diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/README b/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/README new file mode 100644 index 00000000000..ff02b1a8d3b --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/README @@ -0,0 +1,35 @@ +This is a configuration for use with an Additive Manufacturing machine (a.k.a. a 3D printer) without the A-axes positions. +The only 3 coordinates to be used are X, Y and Z. In the g-code file you must specify the appropriate layer height and line widths, as well (un)link the extruder with the nozzle velocity. + +Usage: +setting of the layer height: M68 E3 Qn.nn +( where n.nn is the height in mm ) + +setting of the line width : M68 E2 Qn.nn +( where n.nn is the width in mm ) + +The extrusion should be (un)linked from the nozzle motion. +linking : M64 P2 +unlinking : M65 P2 + +When (un)linking the extruder automatically generates a retract/precharge motion. This is default set to zero. You can change this in the g-code with: + +M68 E4 Qn.nn (where n.nn is the time of the retract/precharge) + +Processing Slic3r generated G-code files: +For removing all A-axes positions, as well as cleanup of the slic3r g-code file and automatic generation of layer height, line widths, (un)linking of extruder with the nozzle speed there is a shell script and a python script in this directory. + +Known issue: +At this time there is only the possibility to find in the slic3r g-code file certain markers (first layer, other layer, perimeter and infill) so generate g-code only with same widths for all type of lines, being perimeter or top/solid/infill. + +To do in scripts: +- set retract/precharge time when encountering "retract" marker +- set retract/precharge time to zero when encountering "compensation + for retracting" + +To find out: +- getting commented output of all line types in Slic3r output. + +To do GUI: +- remove obsolete buttons for AM use (coolant, mist etc) +- make buttons and sensor for temperature etc. diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/cleanup-for-velocity-extrusion.py b/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/cleanup-for-velocity-extrusion.py new file mode 100644 index 00000000000..9a61beaad28 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/cleanup-for-velocity-extrusion.py @@ -0,0 +1,227 @@ +import os, sys, re + +GcodeFileInput = sys.argv[1] +w_perim = sys.argv[2] +w_infill = sys.argv[3] +h_layer = sys.argv[4] +h_first = sys.argv[5] + +GcodeFileOutput = "result-" + GcodeFileInput + +# in the .hal file are netted: +# +# net line-width motion.analog-out-02 => mult2.0.in0 +# net line-height motion.analog-out-03 => mult2.0.in1 +# +# this means that with the M68 E.. Q.. the signals +# line-width and line-height are set from the G-code +cmd_line_width = "M68 E2 Q" +cmd_line_height = "M68 E3 Q" +# the retract and precharge are done with setting/resetting +# motion.digital-out-02. This couples the extrudion to the motion and +# on the rising edge triggers a precharge, on the falling edge a retract + +# net trigger motion.digital-out-02 oneshot.0.in mux4.0.sel1 +cmd_extr_connect = "M64 P2" +cmd_extr_disconnect = "M65 P2" + +#should there be error checking on all input arguments? + +#print "Gcodefile = " + GcodeFileInput +print "perimeter w = " + w_perim +print "infill w = " + w_infill +print "layer height = " + h_layer +print "first layer = " + h_first + +#define regular expressions to test for + +# test of there is an Ax.xxxx or A-x.xxxx in the string +re_extr_a_position = re.compile(r' A[0-9]+\-*\.[0-9]+ ') +# test for G1 at the beginning of a line +re_cmd_G1 = re.compile(r'^G1') +# first layer start +re_hgt_first_layer = re.compile(r'; move to next layer \(0\)') +# other layer start +re_hgt_other_layer = re.compile(r'; move to next layer \(1\)') +# perimeter +re_perimeter = re.compile(r'; perimeter') +# infill (furrently all infill is the same +re_fill = re.compile(r'; fill') +#re_w_inf_solid = +#re_w_inf_top = +# first layer start +re_skirt = re.compile(r'; skirt') +#find M68 retrach/precharge in line +re_retract_precharge = re.compile(r'^M68 E4 Q.*') + +#fileDir = os.path.abspath(sys.argv[0]) +#fileDir = os.path.dirname(fileDir) +#file_path_GcodeInput = os.path.join(fileDir, GcodeFileInput) +#GcodeLines = open(file_path_GcodeInput, 'rU').readlines() +GcodeLines = open(GcodeFileInput, 'rU').readlines() + +# new program for output +GcodeProgram = [] +b_firstlayer = False +b_extr_disconnect = False +b_extr_connect = False +b_linetypechange_up = False +b_otherlayer = False +b_linetype_infill = False +b_linetype_perimeter = False +prevous_linetype = "" +current_linetype = "" +prevous_layer = "" +current_layer = "" +# traverse G-code file +#for i in range(len(GcodeLines)): +i=0 +while (i < len(GcodeLines)): + # set line to "" + line = "" + # do some checks + result_A_curr = re_extr_a_position.search(GcodeLines[i]) + result_G1_curr = re_cmd_G1.search(GcodeLines[i]) + result_firstlayer = re_hgt_first_layer.search(GcodeLines[i]) + result_retract_precharge_curr = re_retract_precharge.search(GcodeLines[i]) + # only do below when there is a line to read (end of file) + if i < len(GcodeLines)-1: + result_A_next = re_extr_a_position.search(GcodeLines[i+1]) + result_G1_next = re_cmd_G1.search(GcodeLines[i+1]) + result_otherlayer = re_hgt_other_layer.search(GcodeLines[i+1]) + result_perimeter = re_perimeter.search(GcodeLines[i+1]) + result_infill = re_fill.search(GcodeLines[i+1]) + result_skirt = re_skirt.search(GcodeLines[i+1]) + result_retract_precharge_next = re_retract_precharge.search(GcodeLines[i+1]) + + if i > 1: + result_A_prev = re_extr_a_position.search(GcodeLines[i-1]) + # decide upon results above + if result_A_curr != None: + #line += "A is there\n" + #str_split = re_extr_a_position.split(GcodeLines[i]) + #new_line = str_split[1]+str_split[2] + if result_A_next == None: + # disconnect (and retract) the extruder velocity with the nozzle + # velocity because extruder position not on next line + # line += "add disconnect code\n" + b_extr_disconnect = True + # connect (and precharge) the extruder velocity with the nozzle + # velocity after this line because extruder position isnt previous line + # line += "add connect code\n" + else: + # there is no A position, now we need to look for + # the next line to have an A position + if result_A_next != None: + # line += "add precharge code\n" + b_extr_connect = True + + if result_firstlayer != None: + #line += "first layer\n" + #set the layer height with G-code + #line += "add Gcode for setting first layer height\n" + b_firstlayer = True + current_layer = "first layer" + + if result_otherlayer != None: + if current_layer == "first layer": + # search for when we leave first layer + b_otherlayer = True + current_layer = "other layer" + + if result_skirt != None: + if prevous_linetype != "perimeter": + b_linetypechange_up = True + b_linetype_perimeter = True + #prevous_linetype = current_linetype + current_linetype = "perimeter" + if result_perimeter != None: + if prevous_linetype != "perimeter": + b_linetypechange_up = True + b_linetype_perimeter = True + #prevous_linetype = current_linetype + current_linetype = "perimeter" + if result_infill != None: + if prevous_linetype != "infill": + b_linetypechange_up = True + b_linetype_infill = True + #prevous_linetype = current_linetype + current_linetype = "infill" + if result_retract_precharge_curr != None: + b_retract_precharge_curr = True + else: + b_retract_precharge_curr = False + if result_retract_precharge_next != None: + b_retract_precharge_next = True + else: + b_retract_precharge_next = False + +# wait and make sure that the connecting/disconnecting of the +# velocity with the nozzle movement is done after setting +# the time of the retract. So skip one line before adding +# the said g-code + +# specific order for setting line width and/or height in +# combination with connecting extruder velocity with the +# motion (and thus) precharge +# first do the precharge +# then change line widths and heiht + + if b_linetypechange_up == True: + prevous_linetype = current_linetype + b_linetypechange_up = False + if b_linetype_perimeter == True: + #line += "** change line width to perimeter code\n" + line += cmd_line_width + w_perim + "\n" + #GcodeProgram.append(GcodeLines[i]+line) + b_linetype_perimeter = False + if b_linetype_infill == True: + #line += "** change line width to infill code\n" + line += cmd_line_width + w_infill + "\n" + #GcodeProgram.append(GcodeLines[i]+line) + b_linetype_infill = False + + if b_firstlayer == True: + #line += "** first layer height code\n" + line += cmd_line_height + h_first + "\n" + #GcodeProgram.append(GcodeLines[i]+line) + b_firstlayer = False + if b_otherlayer == True: + #line += "** other layer height code\n" + line += cmd_line_height + h_layer + "\n" + #GcodeProgram.append(GcodeLines[i]+line) + b_otherlayer = False + if b_extr_disconnect == True: + if b_retract_precharge_next != True: + line += cmd_extr_disconnect + "\n" + b_extr_disconnect = False + + if b_extr_connect == True: + line += cmd_extr_connect + "\n" + if b_retract_precharge_curr != True: + #line += "** precharge code\n" + #line += cmd_extr_connect + "\n" + b_extr_connect = False + + if (((b_extr_disconnect == True) & \ + (b_retract_precharge_curr == True)) | \ + ((b_extr_connect == True) & \ + (b_retract_precharge_curr == True))): + GcodeProgram.append(line + GcodeLines[i]) + b_extr_disconnect = False + b_extr_connect = False + else: + GcodeProgram.append(GcodeLines[i]+line) + + i += 1 +#return to while loop + + +GcodeFile = open(GcodeFileOutput, 'w+') +for prog_line in GcodeProgram: + # print line + print >> GcodeFile, prog_line + + + + diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/correct-retract-on-next-layer.py b/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/correct-retract-on-next-layer.py new file mode 100755 index 00000000000..08697d40d3a --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/correct-retract-on-next-layer.py @@ -0,0 +1,118 @@ +import os, sys, re + +GcodeFileInput = sys.argv[1] +#print GcodeFileInput +GcodeFileOutput = "swapped-" + GcodeFileInput + +# now the following occurs: +# the time of the retract period is not set before the disconnect of the +# extruder with the nozzle motion. It's something in the slic3r output +# before the .py script the file is like this: +# +#G1 X-15.574 Y-18.156 A541.86412 ; fill +#G0 Z9.000 F18000.000 ; move to next layer (44) +#G1 F1800.000 A540.56412 ; retract +# +#and afterwards it's like this: +# +#G1 X-15.574 Y-18.156 A541.86412 ; fill +#M65 P2 +#G0 Z9.000 F18000.000 ; move to next layer (44) +#M68 E4 Q0.2 +# +# +#but also multiple lines in between like +#M65 P2 +#G0 X17.755 Y-14.143 F18000.000 ; move inwards before travel +#G0 Z0.600 F18000.000 ; move to next layer (2) +#M68 E4 Q0.2 + +#define regular expressions to test for +# move to next layer +re_move_layer = re.compile(r'; move to next layer \(') +# move like infill +re_move_other = re.compile(r'^G[01]') +# disconnect with motion +re_disconnect = re.compile(r'^M65 P2') +# connect with motion +re_connect = re.compile(r'^M64 P2') +# set retract time +re_retract_time= re.compile(r'^M68 E4 Q\.*') + +#fileDir = os.path.abspath(sys.argv[0]) +#fileDir = os.path.dirname(fileDir) +#file_path_GcodeInput = os.path.join(fileDir, GcodeFileInput) +#GcodeLines = open(file_path_GcodeInput, 'rU').readlines() +GcodeLines = open(GcodeFileInput, 'rU').readlines() + +# new program for output +GcodeProgram = [] + +# traverse G-code file +# for i in range(len(GcodeLines)): +i=0 +j=0 +while (i < len(GcodeLines)): + #re_disconnect is a start of a sub loop, say 1 = 543 + #search from this line in a loop for re_retract_time. + #if no re_retract_time then put the offset line in a buffer + #if re_retract time is found, than that line needs to be first before the + #current line. remember the line offset. like offset = 3, meaning in + #line 546 the re_retract_time is found. + #if re_connect occurs the buffer must be written to the new file because + #there is no retract happening in between. + result_disconnect = re_disconnect.search(GcodeLines[i]) + if (result_disconnect != None): + b_exit = False + j=1 + buffer = [] + while (b_exit == False): + if ((i + j) < len(GcodeLines)): + result_connect = re_connect.search(GcodeLines[i+j]) + result_retract_time = re_retract_time.search(GcodeLines[i+j]) + # if one of these below, then almost end of the sub loop + if ((result_connect != None) \ + | (result_retract_time != None)): + b_exit = True + # when terminated by retractino time, move retraction time + # the retract line (Gcodeline[i]) and don't add the current line + # to the buffer + if (result_retract_time != None): + GcodeProgram.append(GcodeLines[i+j]) + GcodeProgram.append(GcodeLines[i]) + for index, line in enumerate(buffer): + GcodeProgram.append(line) + else: + GcodeProgram.append(GcodeLines[i]) + for index, line in enumerate(buffer): + GcodeProgram.append(line) + GcodeProgram.append(GcodeLines[i+j]) + i += j + # just a common line so append the current line to the buffer + else: + buffer.append(GcodeLines[i+j]) + + # end of file is reached, no connect to be found + else: + b_exit = True + GcodeProgram.append(GcodeLines[i]) + for index, line in enumerate(buffer): + GcodeProgram.append(line) + #GcodeProgram.append(GcodeLines[i+j]) + i += j + # up number for next line in loop + j += 1 + else: + GcodeProgram.append(GcodeLines[i]) + i += 1 + +#return to while loop + +GcodeFile = open(GcodeFileOutput, 'w+') +for prog_line in GcodeProgram: + # print line + print >> GcodeFile, prog_line + + + + diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/lineardelta-vel-extr.hal b/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/lineardelta-vel-extr.hal new file mode 100644 index 00000000000..9b672f1fbbc --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/lineardelta-vel-extr.hal @@ -0,0 +1,517 @@ +# ####################################### +# +# HAL file for BeagleBone + BeBoPr-Bridge cape with 4 steppers +# extruding is done via velocity control of the extruder motor +# +# Derived from example hm2-stepper config +# +# ######################################## + +# Launch the setup script to make sure hardware setup looks good +loadusr -w ../setup.bridge.sh + + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +#loadrt trivkins +loadrt lineardeltakins + +# settings for delta printer +setp lineardeltakins.L [MACHINE]CF_ROD +setp lineardeltakins.R [MACHINE]DELTA_R + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES num_aio=5 tp=tp kins=lineardeltakins + +# load low-level drivers +loadrt hal_bb_gpio output_pins=107,126,217,218,224,226 input_pins=108,109,110,114,117,118 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg +loadrt pid count=2 +loadrt limit1 count=2 + + +# Python user-mode HAL module to read ADC value and generate a thermostat output for PWM +# t = Thermistor table (only epcos_B57560G1104 or 1 supported for now) +# a = analog input channel +loadusr -Wn Therm ../ReadTemp.py -n Therm --num_chan 2 -t 1 1 -a 4 5 + +#used for comparing temperature set value with actual for waiting on temperature +loadrt wcomp count=1 +loadrt sum2 count=4 +loadrt mult2 count=5 +loadrt abs count=6 +loadrt hypot count=2 +loadrt invert count=1 +loadrt mux4 count=1 +loadrt oneshot count=1 +loadrt ddt count=4 +#loadrt lincurve count=1 personality=3 +newinst lincurve lincurve.0 pincount=3 +loadrt lineardeltajointscartesian count=1 + + +# ################################################ +# THREADS +# ################################################ + +addf hpg.capture-position servo-thread +addf bb_gpio.read servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf pid.0.do-pid-calcs servo-thread +addf pid.1.do-pid-calcs servo-thread +#addf pid.2.do-pid-calcs servo-thread +addf limit1.0 servo-thread +addf limit1.1 servo-thread +addf hpg.update servo-thread +addf bb_gpio.write servo-thread + +addf wcomp.0 servo-thread +addf sum2.0 servo-thread +addf sum2.1 servo-thread +addf sum2.2 servo-thread +addf sum2.3 servo-thread +addf mult2.0 servo-thread +addf mult2.1 servo-thread +addf mult2.2 servo-thread +addf mult2.3 servo-thread +addf mult2.4 servo-thread +#addf abs.0 servo-thread +#addf abs.1 servo-thread +#addf abs.2 servo-thread +addf abs.3 servo-thread +addf abs.4 servo-thread +addf abs.5 servo-thread +#addf hypot.0 servo-thread +addf hypot.1 servo-thread +addf invert.0 servo-thread +addf mux4.0 servo-thread +addf oneshot.0 servo-thread +addf ddt.0 servo-thread +addf ddt.1 servo-thread +addf ddt.2 servo-thread +addf ddt.3 servo-thread +addf lincurve.0 servo-thread +addf lineardeltajointscartesian.0 servo-thread +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + + +# ################ +# X [0] Axis = column C +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hpg.stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => hpg.stepgen.00.position-cmd + +net motor.00.pos-fb <= hpg.stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN +setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE + +setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +#setp hpg.stepgen.00.step_type 0 +# P8.43 PRU1.out2 +setp hpg.stepgen.00.steppin 0x4C +# P8.44 PRU1.out4 +setp hpg.stepgen.00.dirpin 0x4D + +# because column C is connected to the X-axis output +# the bebopr-bridge signal needs to be X-max means P8.9 +net home-x bb_gpio.p8.in-09 => axis.0.home-sw-in +setp bb_gpio.p8.in-09.invert 1 + +# ################ +# Y [1] Axis = column A +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hpg.stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => hpg.stepgen.01.position-cmd + +net motor.01.pos-fb <= hpg.stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN +setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE + +setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +#setp hpg.stepgen.01.step_type 0 +# P8.42 PRU1.out5 +setp hpg.stepgen.01.steppin 0x4E +# P8.39 PRU1.out6 +setp hpg.stepgen.01.dirpin 0x4F + + +# because column A is connected to the Y-axis output +# the bebopr-bridge signal needs to be Y-max means P8.14 +net home-y bb_gpio.p8.in-14 => axis.1.home-sw-in +setp bb_gpio.p8.in-14.invert 1 + +# ################ +# Z [2] Axis = column B +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hpg.stepgen.02.enable + + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => hpg.stepgen.02.position-cmd + +net motor.02.pos-fb <= hpg.stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN +setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hpg.stepgen.02.position-scale [AXIS_2]SCALE + +setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +#setp hpg.stepgen.02.step_type 0 +# P8.27 PRU1.out8 +setp hpg.stepgen.02.steppin 0x50 +# P8.29 PRU1.out9 +setp hpg.stepgen.02.dirpin 0x51 + +# because column B is connected to the Z-axis output +# the bebopr-bridge signal needs to be Z-max means P8.18 +net home-z bb_gpio.p8.in-18 => axis.2.home-sw-in +setp bb_gpio.p8.in-18.invert 1 + + +# ################ +# A [3] Axis (Extruder velocity controlled) +# ################ +# axis enable chain +newsig emcmot.03.enable bit +sets emcmot.03.enable FALSE + +net emcmot.03.enable <= axis.3.amp-enable-out +net emcmot.03.enable => hpg.stepgen.03.enable + +#here i pass the value of the analog output from M67 E1 Q.. or M68 E1 Q.. to the multiplicator +net line-width motion.analog-out-02 => mult2.0.in0 +net line-height motion.analog-out-03 => mult2.0.in1 +net line-cross-section mult2.0.out => mult2.1.in1 + +#take all the actual speeds from the axes and calculate resulting speed. +#if you don't have a linear delta then use hypot.0.out as input for the calculations +#net xvel axis.0.joint-vel-cmd => abs.0.in +#net xvel-abs abs.0.out => hypot.0.in0 +#net yvel axis.1.joint-vel-cmd => abs.1.in +#net yvel-abs abs.1.out => hypot.0.in1 +#net zvel axis.2.joint-vel-cmd => abs.2.in +#net zvel-abs abs.2.out => hypot.0.in2 + +net joint-0-pos axis.0.joint-pos-cmd lineardeltajointscartesian.0.C-pos +net joint-1-pos axis.1.joint-pos-cmd lineardeltajointscartesian.0.A-pos +net joint-2-pos axis.2.joint-pos-cmd lineardeltajointscartesian.0.B-pos +setp lineardeltajointscartesian.0.ROD [MACHINE]CF_ROD +setp lineardeltajointscartesian.0.RAD [MACHINE]DELTA_R + +net xpos lineardeltajointscartesian.0.x-pos => ddt.1.in +net xvel ddt.1.out abs.3.in +net xvel-abs abs.3.out => hypot.1.in0 + +net ypos lineardeltajointscartesian.0.y-pos => ddt.2.in +net yvel ddt.2.out abs.4.in +net yvel-abs abs.4.out => hypot.1.in1 + +net zpos lineardeltajointscartesian.0.z-pos => ddt.3.in +net zvel ddt.3.out abs.5.in +net zvel-abs abs.5.out => hypot.1.in2 + +#multiply area with speed and we get discharge (mm^3 per second) +#use this one (below when you have a lineardelta type machine +net nozzle-vel-cartesian hypot.1.out => mult2.1.in0 +#uncomment line below if you have a cartesian type machine +#net nozzle-vel-cartesian hypot.0.out => mult2.1.in0 + +net nozzle-discharge mult2.1.out => mult2.2.in0 + +#calculate filament cross section area +#PI divided by 4 +setp mult2.3.in0 0.7854 +setp mult2.4.in0 [EXTRUDER]DIA_FILAMENT +setp mult2.4.in1 [EXTRUDER]DIA_FILAMENT + +net diameter-squared mult2.4.out => mult2.3.in1 +net filament-area mult2.3.out => invert.0.in +net divide-by-filament-area invert.0.out => mult2.2.in1 + +# now the solution of Andy Pugh for automatically retracting/priming +#loadrt mux4 count=1 +#00 = motion without extrusion +#01 = retract +#10 = motion with extrusion +#11 = pre-charge + +setp mux4.0.in0 0 +setp mux4.0.in1 -4 +net extrude-rate mult2.2.out => mux4.0.in2 +setp mux4.0.in3 4 + +# We want the retract-charge to run for a fixed time: +# when sel0 set to "1" meaning motion with extrusion" the on the rising edge +# there will temporarily be also sel1 which is high, meaning a pre-charge because the +# sel combination is 11 +# when sel1 set to "0" meaning decoupling motion with extrusion" then the falling edge +# will trigger a 01 combination, meaning a retract +net trigger motion.digital-out-02 oneshot.0.in mux4.0.sel1 +net pulse oneshot.0.out mux4.0.sel0 motion.feed-hold +setp oneshot.0.rising 1 +setp oneshot.0.falling 1 +setp oneshot.0.retriggerable 1 +#setp oneshot.0.width 0.0 +#by setting the width, the automatic retract/precharge can be disabled +net trigger-time motion.analog-out-04 => oneshot.0.width + +#get readout from the current motion pin +net current-motion-type motion.current-motion + +# these are used for a small offset in velocity during acceleration (buildup pressure inside +# the nozzle because of the current speed. Take the maximum accel you've specified in .ini + +setp lincurve.0.y-val-00 -5.0 +setp lincurve.0.y-val-01 0 +setp lincurve.0.y-val-02 5.0 +setp lincurve.0.x-val-00 -35 +setp lincurve.0.x-val-01 0 +setp lincurve.0.x-val-02 35 + +# get the extruder speed into sum2.2 and ddt +net extruder-speed mux4.0.out sum2.2.in0 ddt.0.in +# get acceleration into lincurve +net extruder-accel ddt.0.out lincurve.0.in +# get adjusted speed for adding to current speed during accelleration +net speed-adjustment lincurve.0.out sum2.2.in1 +net extruder-speed-adjusted sum2.2.out hpg.stepgen.03.velocity-cmd + +######### +###todo +###manual extrusion with analog out 01 (velocity in mm/s) and mux2 selectable by digital input 01 +######### + +# timing parameters +setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP +setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD + +setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN +setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE + +setp hpg.stepgen.03.position-scale [AXIS_3]SCALE + +setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL +setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC + +setp hpg.stepgen.03.control-type 1 + +#setp hpg.stepgen.03.step_type 0 +# P8.30 GPIO2.25 +setp hpg.stepgen.03.steppin 0x22 +# P8.21 GPIO1.30 +setp hpg.stepgen.03.dirpin 0x23 + + +# ################################################## +# Standard I/O - EStop, Enables, Limit Switches, Etc +# ################################################## + +# create a signal for the estop loopback +net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# Axis enable signals +net emcmot.00.enable => bb_gpio.p9.out-18 +setp bb_gpio.p9.out-18.invert 1 +net emcmot.01.enable => bb_gpio.p9.out-17 +setp bb_gpio.p9.out-17.invert 1 +net emcmot.02.enable => bb_gpio.p9.out-26 +setp bb_gpio.p9.out-26.invert 1 +net emcmot.03.enable => bb_gpio.p9.out-24 +setp bb_gpio.p9.out-24.invert 1 + +# Machine power (BeBoPr Enable) +# Enable tied to system Reset_n line (P9.10) +net estop-loop => bb_gpio.p8.out-07 +setp bb_gpio.p8.out-07.invert 1 + + +# ################################################## +# PWM and Temperature Signals +# ################################################## + +# Define signals to use elsewhere (ie: M1xx codes) +# If you change any names here, lots of things will break! +newsig e0.temp.set float +newsig e0.temp.meas float +newsig bed.temp.set float +newsig bed.temp.meas float +newsig fan.speed.set float + +setp hpg.pwmgen.00.pwm_period 10000000 + +# J2 E0 Heater PRU1.out1 +setp hpg.pwmgen.00.out.00.pin 0x37 +setp hpg.pwmgen.00.out.00.enable 1 +setp hpg.pwmgen.00.out.00.value 0.0 + +#signals for comparing set value and actual value of temperature +#newsig M209_set_temp float +newsig sub_temp_min float +newsig add_temp_max float +newsig e0_temp_within_range bit + +#set boundaries with sum2 +1 and -1 of the wanted temperature +sets add_temp_max 1 +sets sub_temp_min -1 + +net e0.temp.set => sum2.0.in0 +setp sum2.0.in1 2 +#net add_temp_max.out => sum2.0.in1 + +net e0.temp.set => sum2.1.in0 +setp sum2.1.in1 -2 +#net sub_temp_min.out => sum2.1.in1 + +#the values will be given to the wcomp.0 function +net minboundary sum2.1.out => wcomp.0.min +net maxboundary sum2.0.out => wcomp.0.max +net e0.temp.meas => wcomp.0.in + +#the output of wcomp.0 will say if measured temperature is in range of set value +#this needs to be coupled to a digital input for M66 readout +#net e0_temp_within_range.in <= wcomp.0.out +#net e0_temp_within_range.out => motion.digital-in-00 +net e0_temp_within_range wcomp.0.out => motion.digital-in-00 + +# no longer J3 E1 Heater PRU1.out0 +# instead used for FAN control +# we use scalse 255 for campatibility with slicing software +setp hpg.pwmgen.00.out.01.pin 0x36 +setp hpg.pwmgen.00.out.01.enable 1 +setp hpg.pwmgen.00.out.01.value 0.0 +setp hpg.pwmgen.00.out.01.scale 255 + +#linking motion.analog-out-00 to fan speed.set.signal +net fan.speed.set <= motion.analog-out-00 +net fan.speed.set => hpg.pwmgen.00.out.01.value + + +# J4 Bed Heater GPIO2.16 +setp hpg.pwmgen.00.out.02.pin 0x52 +setp hpg.pwmgen.00.out.02.enable 1 +setp hpg.pwmgen.00.out.02.value 0.0 + +# PID for Extruder 0 temperature control +net e0.temp.meas <= Therm.temp0 +net e0.temp.meas => pid.0.feedback + +sets e0.temp.set 0 +net e0.temp.set => pid.0.command + +net e0.heater <= pid.0.output +net e0.heater => limit1.0.in +net e0.heaterl <= limit1.0.out +net e0.heaterl => hpg.pwmgen.00.out.00.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.0.min 0 + +# PID for Bed temperature control +net bed.temp.meas <= Therm.temp1 +net bed.temp.meas => pid.1.feedback + +sets bed.temp.set 0 +net bed.temp.set => pid.1.command + +net bed.heater <= pid.1.output +net bed.heater => limit1.1.in +net bed.heaterl <= limit1.1.out +net bed.heaterl => hpg.pwmgen.00.out.02.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.1.min 0 + +# PID Parameters for adjusting temperature control +# Extruder +#setp pid.0.FF0 0 +#setp pid.0.FF1 0 +#setp pid.0.FF2 0 +setp pid.0.Pgain 0.30 +setp pid.0.Igain 0.00001 +setp pid.0.Dgain 0.9375 +setp pid.0.maxerrorI 1.0 +setp pid.0.bias 0.5 +setp pid.0.enable 1 + +# Bed +#setp pid.1.FF0 0 +#setp pid.1.FF1 0 +#setp pid.1.FF2 0 +setp pid.1.Pgain 1 +setp pid.1.Igain 0.0 +setp pid.1.Dgain 0.0 +setp pid.1.maxerrorI 1.0 +setp pid.1.bias 0.5 +setp pid.1.enable 1 diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/lineardelta-vel-extr.ini b/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/lineardelta-vel-extr.ini new file mode 100644 index 00000000000..2933be7efd9 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/lineardelta-vel-extr.ini @@ -0,0 +1,387 @@ +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=4 num_pwmgens=3 +PRUBIN=xenomai/pru_generic.bin + + + + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = LinearDelta AM with velocity extrusion control + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[MACHINE] + +# Machine configuration for delta printer + +# when calibrating, if a move at the center (0,0) is actual +# lower than should be (moves into the bed) , then decrease +# the delta radius + +DELTA_R = 158.55 + +# now when the effector travels over the bed in a straight line +# insert a fineliner in the effector and draw a 10x10 cm square +# measure the square and decrease the rod length if the drawing is +# bigger than should be. After that do the delta radius correction +CF_ROD = 326.37 + + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +DISPLAY = gscreen +#DISPLAY = axis +#DISPLAY = keystick + +# Touchy currently won't work without some hardware buttons/jog-wheel +#DISPLAY = touchy + +# Cycle time, in seconds, that display will sleep between polls +#CYCLE_TIME = 0.0200 +CYCLE_TIME = 200 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +#PYVCP = ../BeBoPr.panel.xml + + + + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = pru-stepper.var + +#subroutine path for the custom FDM printing .ngc files used for remapping +#use directory in config path until more suitable location. this w.r.t the +#fact that not every machine will have an extruder and/or fan +SUBROUTINE_PATH = ../subroutines + +#remapping M106 (fan control in reprap style) to M206 +REMAP=M206 modalgroup=10 argspec=P ngc=fancontrol + + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = lineardelta-vel-extr.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +#POSTGUI_HALFILE = ../BeBoPr.postgui.hal + + + + +[TRAJ] + +ARC_BLEND_ENABLE = 1 +ARC_BLEND_FALLBACK_ENABLE = 0 +ARC_BLEND_OPTIMIZATION_DEPTH = 50 +ARC_BLEND_GAP_CYCLES = 4 +ARC_BLEND_RAMP_FREQ = 20 + +AXES = 4 +COORDINATES = X Y Z + +# column A is wired to axis[1] = y-axis output +# column B is wired to axis[2] = z-axis output +# column C is wired to axis[0] = x-axis output + +MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 20.00 +MAX_LINEAR_VELOCITY = 00.00 + + + + + +[AXIS_0] +# column C +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# + + +TYPE = LINEAR +MAX_VELOCITY = 350.0 +MAX_ACCELERATION = 2400.0 +# Set Stepgen max 20% higher than the axis + +# 1us steptime with 1us steplen gives 2us step perios (stepstick) +# 2us is a stepfreq of 500kHz +# BUT +# PRU gives 10us steptime with 10 us steplen and + +# scale = 128 steps/mm so max vel = 50kHz/128 = 390.625 mm/s +STEPGEN_MAX_VEL = 390 +STEPGEN_MAX_ACC = 3600 + +BACKLASH = 0.000 + +# scale is 128 steps/mm +SCALE = 128 + + +MIN_LIMIT = -1.0 +MAX_LIMIT = 785.0 + +FERROR = 5.0 +MIN_FERROR = 1.0 + +HOME = 779.05 +HOME_OFFSET = 779.05 +HOME_SEARCH_VEL = 100.0 +HOME_LATCH_VEL = -1.0 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds for Allegro A4988 +#DIRSETUP = 200 +#DIRHOLD = 200 +#STEPLEN = 1000 +#STEPSPACE = 1000 + +# these are in nanoseconds for DRV8825 +DIRSETUP = 650 +DIRHOLD = 650 +STEPLEN = 1900 +STEPSPACE = 1900 + +HOME_SEQUENCE = 0 + + +[AXIS_1] +# column A +TYPE = LINEAR +MAX_VELOCITY = 350.0 +MAX_ACCELERATION = 2400.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 390 +STEPGEN_MAX_ACC = 3600 +BACKLASH = 0.000 + +SCALE = 128 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 785.0 + +FERROR = 5.0 +MIN_FERROR = 1.0 + +HOME = 779.35 +HOME_OFFSET = 779.35 +HOME_SEARCH_VEL = 100.00 +HOME_LATCH_VEL = -1.0 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds for Allegro A4988 +#DIRSETUP = 200 +#DIRHOLD = 200 +#STEPLEN = 1000 +#STEPSPACE = 1000 + +# these are in nanoseconds for DRV8825 +DIRSETUP = 650 +DIRHOLD = 650 +STEPLEN = 1900 +STEPSPACE = 1900 + +HOME_SEQUENCE = 0 + + +[AXIS_2] +# column B +TYPE = LINEAR +MAX_VELOCITY = 350.0 +MAX_ACCELERATION = 2400.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 390 +STEPGEN_MAX_ACC = 3600 + +BACKLASH = 0.000 + +SCALE = 128 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 785 + +FERROR = 5.0 +MIN_FERROR = 1.0 + +HOME = 779.15 +HOME_OFFSET = 779.15 +HOME_SEARCH_VEL = 100.0 +HOME_LATCH_VEL = -1.0 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds for Allegro A4988 +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +# these are in nanoseconds for DRV8825 +#DIRSETUP = 650 +#DIRHOLD = 650 +#STEPLEN = 1900 +#STEPSPACE = 1900 + +HOME_SEQUENCE = 0 + + +[EXTRUDER] +PI_DIVIDED_BY_FOUR = 0.7854 +DIA_FILAMENT = 2.85 + + + +[AXIS_3] +#EXTRUDER +TYPE = LINEAR +MAX_VELOCITY = 7 +MAX_ACCELERATION = 2500.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 9 +STEPGEN_MAX_ACC = 1200 + +BACKLASH = 0.000 + +SCALE = 2100 + + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 5.0 +MIN_FERROR = 1.0 + +#HOME = 0.0 +#HOME_OFFSET = 0.0 + +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +#keystick +#HOME_SEARCH_VEL = 0 +#HOME_LATCH_VEL = 0 +#HOME_USE_INDEX = NO +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +#HOME_SEQUENCE = 0 + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = ../tool.tbl + + + diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/lineardeltajointscartesian.comp b/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/lineardeltajointscartesian.comp new file mode 100644 index 00000000000..2847d016e15 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/lineardeltajointscartesian.comp @@ -0,0 +1,72 @@ +component lineardeltajointscartesian "Calculation of cartesian position from lineardelta joints position"; +pin in float C_pos "position of joint of joint0"; +pin in float A_pos "position of joint of joint1"; +pin in float B_pos "position of joint of joint2"; +pin in float ROD "Rod Length"; +pin in float RAD "Delta Radius"; +pin out float x_pos "x-position"; +pin out float y_pos "y-position"; +pin out float z_pos "z-position"; + +function _ fp "Update the position"; +license "GPL"; +author "Bas de Bruijn"; +;; +#include +//#define pi (3.14159265) +// below is a mash-up from the lineardeltakins for calculating the x, y and z-position +#define SQ3 (sqrt(3)) +#define SIN_60 (SQ3/2) +#define COS_60 (.5) + +FUNCTION(_) { + static double L, R; + static double Ax, Ay, Bx, By, Cx, Cy, L2; + L = ROD; + R = RAD; + + L2 = L*L; + + Ax = 0.0; + Ay = R; + + Bx = -SIN_60 * R; + By = -COS_60 * R; + + Cx = SIN_60 * R; + Cy = -COS_60 * R; + +// from ini file +// column A is wired to axis[1] = y-axis output +// column B is wired to axis[2] = z-axis output +// column C is wired to axis[0] = x-axis output + + double q1 = C_pos; // joints[0]; + double q2 = A_pos; // joints[1]; + double q3 = B_pos; // joints[2]; + + double den = (By-Ay)*Cx-(Cy-Ay)*Bx; + + double w1 = Ay*Ay + q1*q1; // n.b. assumption that Ax is 0 all through here + double w2 = Bx*Bx + By*By + q2*q2; + double w3 = Cx*Cx + Cy*Cy + q3*q3; + + double a1 = (q2-q1)*(Cy-Ay)-(q3-q1)*(By-Ay); + double b1 = -((w2-w1)*(Cy-Ay)-(w3-w1)*(By-Ay))/2.0; + + double a2 = -(q2-q1)*Cx+(q3-q1)*Bx; + double b2 = ((w2-w1)*Cx - (w3-w1)*Bx)/2.0; + + // a*z^2 + b*z + c = 0 + double a = a1*a1 + a2*a2 + den*den; + double b = 2*(a1*b1 + a2*(b2-Ay*den) - q1*den*den); + double c = (b2-Ay*den)*(b2-Ay*den) + b1*b1 + den*den*(q1*q1 - L*L); + + double discr = b*b - 4.0*a*c; +// if (discr < 0) return -1; // non-existing point + + double z = -0.5*(b+sqrt(discr))/a; + z_pos = z; + x_pos = (a1*z + b1)/den; + y_pos = (a2*z + b2)/den; +} \ No newline at end of file diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/slic3r-postprocess.sh b/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/slic3r-postprocess.sh new file mode 100755 index 00000000000..81fa6a746a6 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/slic3r-postprocess.sh @@ -0,0 +1,141 @@ +#!/bin/sh + +# first get the variables needed for setting width and height for +# extruding from the slic3r file +#; layer_height = 0.10 +#; nozzle_diameter = 0.35 +#; filament_diameter = 2.85 +#; extrusion_multiplier = 1.0 +#; perimeters extrusion width = 0.40mm +#; infill extrusion width = 1.10mm +#; solid infill extrusion width = 0.40mm +#; top infill extrusion width = 0.40mm +#; first_layer_height = 0.10 + +# fill all variables needed to change the velocity control extrudion settings +# settings at beginning, filament diameter +# nozzle diameter not yet used for anything +# meaning height of layer and width of typical job (infill, solid, +# perimeter etc) width of current line +layer_height=$(grep -m 1 '; layer_height = ' "$1" \ + | rev | cut -d ' ' -f1 | rev) +# above is line, reversed, then cut wit space delimeter, first part +# is kept, and then reversed +nozzle_diameter=$(grep -m 1 '; nozzle_diameter = ' "$1" \ + | rev | cut -d ' ' -f1 | rev) +filament_diameter=$(grep -m 1 '; filament_diameter = ' "$1" \ + | rev | cut -d ' ' -f1 | rev) +extrusion_multiplier=$(grep -m 1 '; extrusion_multiplier = ' "$1" \ + | rev | cut -d ' ' -f1 | rev) +perimeters_extrusion_width=$(grep -m 1 '; perimeters extrusion width = ' "$1" \ + | rev | cut -d ' ' -f1 | rev | sed 's|mm||') +# above line is also trimmed of the 2 tratling 'mm' characters +infill_extrusion_width=$(grep -m 1 '; infill extrusion width = ' "$1" \ + | rev | cut -d ' ' -f1 | rev | sed 's|mm||') +solid_infill_extrusion_width=$(grep -m 1 '; solid infill extrusion width = ' "$1" \ + | rev | cut -d ' ' -f1 | rev | sed 's|mm||') +top_infill_extrusion_width=$(grep -m 1 '; top infill extrusion width = ' "$1" \ + | rev | cut -d ' ' -f1 | rev | sed 's|mm||') +first_layer_height=$(grep -m 1 '; first_layer_height = ' "$1" \ + | rev | cut -d ' ' -f1 | rev) + +# above would be nicer in a loop, although with the different commands (sed for the 'mm') maybe not + +echo "layer height = $layer_height" +echo "first layer height first = $first_layer_height" +echo "nozzle diameter = $nozzle_diameter" +echo "filament diameter = $filament_diameter" +echo "extrusion multiplier = $extrusion_multiplier" +echo "width perimeter = $perimeters_extrusion_width" +echo "width infill = $infill_extrusion_width" +echo "width solid infill = $solid_infill_extrusion_width" +echo "width top infill = $top_infill_extrusion_width" + +#instf="instellingen.txt" +#echo "layer height=$layer_height" > $instf +#echo "first layer height first=$first_layer_height" >> $instf +#echo "nozzle diameter=$nozzle_diameter" >> $instf +#echo "filament diameter=$filament_diameter" >> $instf +#echo "extrusion multiplier=$extrusion_multiplier" >> $instf +#echo "width perimeter=$perimeters_extrusion_width" >> $instf +#echo "width infill=$infill_extrusion_width" >> $instf +#echo "width solid infill=$solid_infill_extrusion_width" >> $instf +#echo "width top infill=$top_infill_extrusion_width" >> $instf + + +# remove all comment lines, convert all E to A axis, convert M106 to M206 +sed -e 's|^;.*$||' \ + -e 's| E| A|' \ + -e 's|^M106 |M206 |' \ + "$1" > "e_axes_converted_$1" + +sed ' +/^M109 / a\ +M66 P0 L3 Q100 +' "e_axes_converted_$1" > "M66-added_$1" +rm "e_axes_converted_$1" + +sed -e 's|^M109 |M104 |' \ + -e 's|^G92 A.*$||' \ + -e 's|^G1.*; retract$|M68 E4 Q0.2|' \ + -e 's|^G11 ; unretract|M68 E4 Q0.0|' \ + -e 's|^.*; compensate retraction|M68 E4 Q0.0|' \ + -e '/^$/ d' \ + "M66-added_$1" > "cleaned_$1" +rm "M66-added_$1" + +python ./cleanup-for-velocity-extrusion.py \ + "cleaned_$1" "$perimeters_extrusion_width" \ + "$infill_extrusion_width" \ + "$layer_height" \ + "$first_layer_height" +rm "cleaned_$1" + +# remove empty lines for next script +sed -e '/^$/ d' "result-cleaned_$1" > "cleaned_$1" +rm "result-cleaned_$1" + +# now the following occurs: +# the time of the retract period is not set before the disconnect of the +# extruder with the nozzle motion. It's something in the slic3r output +# before the .py script the file is like this: +# +#G1 X-15.574 Y-18.156 A541.86412 ; fill +#G0 Z9.000 F18000.000 ; move to next layer (44) +#G1 F1800.000 A540.56412 ; retract +# +#and afterwards it's like this: +# +#G1 X-15.574 Y-18.156 A541.86412 ; fill +#M65 P2 +#G0 Z9.000 F18000.000 ; move to next layer (44) +#M68 E4 Q0.2 +# +python ./correct-retract-on-next-layer.py "cleaned_$1" +rm "cleaned_$1" + +#convert g1 line segments to g2 or g3 if possible +g1-to-g23 "swapped-cleaned_$1" "swapped-cleaned_$1.bak" +mv "swapped-cleaned_$1.bak" "swapped-cleaned_$1" + +# convert all M106 to B axis +#sed '/^M106/s/M106 P/G0 B/' "$1post" > "$1" +#rm "$1post" + +# s = substitute, | = delimiter, get from $1post and write to $1 +# sed 's|..|..|' "$1post" > "$1" +# first part should be A0.7777 or A-0.7777 (or more or less numbers) + +# make a regular expression with space followed with an A as anchor +# the expression should then have a . with 1 or more [0-9] before and 1 or +# more [0-9] after that AND the [0-9] before the . has to have zero or +# more - signs befor that. +# -few- +# then replace it with nothing (note ||) + +# remove all A's, change retract comments, and all empty lines +#sed -e 's| A[0-9\-\.]* | |' +sed -e 's| A\-*[0-9\.]* | |' \ + -e '/^$/ d' \ + "swapped-cleaned_$1" > "processed_$1" +rm "swapped-cleaned_$1" diff --git a/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/test_lincurve.ngc b/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/test_lincurve.ngc new file mode 100644 index 00000000000..26af2442059 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr-Bridge/velocity-extruding/test_lincurve.ngc @@ -0,0 +1,67 @@ +( linking : M64 P2 ) +( unlinking : M65 P2 ) +( setting of the line width : M68 E2 Qn.nn ) +( setting of the layer height: M68 E3 Qn.nn ) + +( set fan on) +M206 P255 +( set temperature at 205 degree) +M104 P205 +( wait for temperature to be reached) +M66 P0 L3 Q100 + +( with halcmd setp lincurve.0.x-val-00 you can experiment with settings ) +( same goes for x-val-01, y-val-00 and y-val-01 ) + +M68 E2 Q0.6 ( width ) +M68 E3 Q0.2 ( height ) + +( set retract/precharge time to 0.0 sec ) +M68 E4 Q0.0 + +( go to point and prime nozzle ) +G1 X-95 Y-50 Z50 F8000 +( link the extruder ) +M64 P2 +G1 Z100 F5000 +G1 Z1 +( unlink ) +M65 P2 + +G1 X-75 Y0 Z0.2 F8000 +( 0.3 because of test paper on bed ) + +( link the extruder without retract / precharge ) +M64 P2 +G1 X75 F4800 +M65 P2 +G1 Y10 +M64 P2 +G1 X-75 +M65 P2 +G1 Y20 +M64 P2 +G1 X75 +M65 P2 + +G0 X-75 Y30 Z0.2 F18000 +( link the extruder with retract / precharge ) +M64 P2 +( set retract/precharge time to 0.2 sec ) +M68 E4 Q0.2 +G1 X75 F4800 +M65 P2 +G1 Y40 +M64 P2 +G1 X-75 +M65 P2 +G1 Y50 +M64 P2 +G1 X75 +M65 P2 + +( up ) +G0 Z200 F18000 + +( end ) +M2 \ No newline at end of file diff --git a/configs/ARM/BeagleBone/BeBoPr/BB-LCNC-BEBOPR-00A0.dts b/configs/ARM/BeagleBone/BeBoPr/BB-LCNC-BEBOPR-00A0.dts new file mode 100644 index 00000000000..4f1a11a3f3b --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr/BB-LCNC-BEBOPR-00A0.dts @@ -0,0 +1,123 @@ +// Copyright 2013 +// Charles Steinkuehler +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +/dts-v1/; +/plugin/; + +/ { + compatible = "ti,beaglebone", "ti,beaglebone-black"; + + /* identification */ + part-number = "BB-LCNC-BEBOPR"; + version = "00A0"; + + /* state the resources this cape uses */ + exclusive-use = + /* the pin header uses */ + "P8.3", /* gpio1.6 Enable */ + "P8.5", /* gpio1.2 Enablen */ + "P8.7", /* gpio2.2 Enablen */ + "P8.20", /* gpio1.31 E_Ena */ + "P8.21", /* pru1.r30.12 E_Dir */ + "P8.25", /* gpio1.0 Status */ + "P8.27", /* pru1.r30.8 Z_Step */ + "P8.28", /* gpio2.24 Z_Ena */ + "P8.29", /* pru1.r30.9 Z_Dir */ + "P8.30", /* pru1.r30.11 E_Step */ + "P8.31", /* gpio0.10 X_Min */ + "P8.32", /* gpio0.11 X_Max */ + "P8.33", /* gpio0.9 Y_Max */ + "P8.35", /* gpio0.8 Y_Min */ + "P8.36", /* gpio2.16 J4_PWM */ + "P8.37", /* gpio2.14 Z_Max */ + "P8.38", /* gpio2.15 Z_Min */ + "P8.39", /* pru1.r30.6 Y_Dir */ + "P8.40", /* gpio2.13 Y_Ena */ + "P8.41", /* gpio2.10 X_Ena */ + "P8.42", /* pru1.r30.5 Y_Step */ + "P8.43", /* pru1.r30.2 X_Step */ + "P8.44", /* pru1.r30.3 X_Dir */ + "P8.45", /* pru1.r30.0 J3_PWM */ + "P8.46", /* pru1.r30.1 J2_PWM */ + + /* the hardware IP uses */ +/* The following 4 pins conflict with the on-board mmc flash */ + "gpio1_6", + "gpio1_2", + "gpio2_2", + "gpio1_31", + "gpio1_0", + "gpio2_24", + "gpio0_10", + "gpio0_11", + "gpio0_9", + "gpio0_8", + "gpio2_16", + "gpio2_14", + "gpio2_15", + "gpio2_13", + "gpio2_10", + "pru0"; + + fragment@0 { + target = <&am33xx_pinmux>; + __overlay__ { + + foo_pins: foo_pins { + pinctrl-single,pins = < + 0x18 0x3F /* p8.3 gpio1_6 */ + 0x08 0x3F /* p8.5 gpio1_2 */ + 0x90 0x3F /* p8.7 gpio2_2 */ + 0x84 0x3F /* p8.20 gpio1_31 */ + 0x80 0x0D /* p8.21 pru1.r30.13 */ + 0x00 0x3F /* P8.25 gpio1.0 */ + 0xe0 0x0D /* p8.27 pru1.r30.8 */ + 0xe8 0x0D /* p8.28 pru1.r30.10 */ + 0xe4 0x0D /* p8.29 pru1.r30.9 */ + 0xec 0x0D /* p8.30 pru1.r30.11 */ + 0xD8 0x3F /* P8.31 gpio0.10 */ + 0xDC 0x3F /* P8.32 gpio0.11 */ + 0xD4 0x3F /* P8.33 gpio0.9 */ + 0xD0 0x3F /* P8.35 gpio0.8 */ + 0xc8 0x3F /* p8.36 gpio2_16 */ + 0xC0 0x3F /* P8.37 gpio2.14 */ + 0xC4 0x3F /* P8.38 gpio2.15 */ + 0xb8 0x0D /* p8.39 pru1.r30.6 */ + 0xbc 0x3F /* p8.40 gpio2_13 */ + 0xb0 0x3F /* p8.41 gpio2_10 */ + 0xb4 0x0D /* p8.42 pru1.r30.5 */ + 0xa8 0x0D /* p8.43 pru1.r30.2 */ + 0xac 0x0D /* p8.44 pru1.r30.3 */ + 0xa0 0x0D /* p8.45 pru1.r30.0 */ + 0xa4 0x0D /* p8.46 pru1.r30.1 */ + >; + }; + }; + }; + + fragment@1 { + target = <&pruss>; + __overlay__ { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&foo_pins>; + + }; + }; +}; + diff --git a/configs/ARM/BeagleBone/BeBoPr/BeBoPr.hal b/configs/ARM/BeagleBone/BeBoPr/BeBoPr.hal new file mode 100755 index 00000000000..7ab1876f20d --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr/BeBoPr.hal @@ -0,0 +1,329 @@ +# ####################################### +# +# HAL file for BeagleBone + BeBoPr cape with 4 steppers +# +# Derived from example hm2-stepper config +# +# ######################################## + +# Launch the setup script to make sure hardware setup looks good +loadusr -w ./setup.sh + + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +loadrt trivkins + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + + +# load low-level drivers +loadrt hal_bb_gpio output_pins=103,105,107,120,128,140,141 input_pins=131,132,133,135,137,138 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg +loadrt pid count=2 +loadrt limit1 count=2 + + +# Python user-mode HAL module to read ADC value and generate a thermostat output for PWM +# t = Thermistor table (only epcos_B57560G1104 or 1 supported for now) +# a = analog input channel +loadusr -Wn Therm ./ReadTemp.py -n Therm --num_chan 2 -t 1 1 -a 1 3 + +# ################################################ +# THREADS +# ################################################ + +addf hpg.capture-position servo-thread +addf bb_gpio.read servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf pid.0.do-pid-calcs servo-thread +addf pid.1.do-pid-calcs servo-thread +addf limit1.0 servo-thread +addf limit1.1 servo-thread +addf hpg.update servo-thread +addf bb_gpio.write servo-thread + + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + + +# ################ +# X [0] Axis +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hpg.stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => hpg.stepgen.00.position-cmd + +net motor.00.pos-fb <= hpg.stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN +setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE + +setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +#setp hpg.stepgen.00.step_type 0 +# P8.43 PRU1.out2 +setp hpg.stepgen.00.steppin 0xA2 +# P8.44 PRU1.out4 +setp hpg.stepgen.00.dirpin 0xA3 + + +# ################ +# Y [1] Axis +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hpg.stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => hpg.stepgen.01.position-cmd + +net motor.01.pos-fb <= hpg.stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN +setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE + +setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +#setp hpg.stepgen.01.step_type 0 +# P8.42 PRU1.out5 +setp hpg.stepgen.01.steppin 0xA5 +# P8.39 PRU1.out6 +setp hpg.stepgen.01.dirpin 0xA6 + + +# ################ +# Z [2] Axis +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hpg.stepgen.02.enable + + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => hpg.stepgen.02.position-cmd + +net motor.02.pos-fb <= hpg.stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN +setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hpg.stepgen.02.position-scale [AXIS_2]SCALE + +setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +#setp hpg.stepgen.02.step_type 0 +# P8.27 PRU1.out8 +setp hpg.stepgen.02.steppin 0xA8 +# P8.29 PRU1.out9 +setp hpg.stepgen.02.dirpin 0xA9 + + +# ################ +# A [3] Axis (Extruder) +# ################ + +# axis enable chain +newsig emcmot.03.enable bit +sets emcmot.03.enable FALSE + +net emcmot.03.enable <= axis.3.amp-enable-out +net emcmot.03.enable => hpg.stepgen.03.enable + + +# position command and feedback +net emcmot.03.pos-cmd <= axis.3.motor-pos-cmd +net emcmot.03.pos-cmd => hpg.stepgen.03.position-cmd + +net motor.03.pos-fb <= hpg.stepgen.03.position-fb +net motor.03.pos-fb => axis.3.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP +setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD + +setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN +setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE + +setp hpg.stepgen.03.position-scale [AXIS_3]SCALE + +setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL +setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC + +#setp hpg.stepgen.03.step_type 0 +# P8.30 GPIO2.25 +setp hpg.stepgen.03.steppin 0xAB +# P8.21 GPIO1.30 +setp hpg.stepgen.03.dirpin 0xAC + + +# ################################################## +# Standard I/O Block - EStop, Etc +# ################################################## + +# create a signal for the estop loopback +net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# Axis enable signals +net emcmot.00.enable => bb_gpio.p8.out-41 +setp bb_gpio.p8.out-41.invert 1 +net emcmot.01.enable => bb_gpio.p8.out-40 +setp bb_gpio.p8.out-40.invert 1 +net emcmot.02.enable => bb_gpio.p8.out-28 +setp bb_gpio.p8.out-28.invert 1 +net emcmot.03.enable => bb_gpio.p8.out-20 +setp bb_gpio.p8.out-20.invert 1 + +# Machine power (BeBoPr Enable) +net estop-loop => bb_gpio.p8.out-03 +net estop-loop => bb_gpio.p8.out-05 +setp bb_gpio.p8.out-05.invert 1 + +# BeBoPr ECO locations for enable signalsto avoid eMMC noise on startup: +# Enable (P8.3) tied to system Reset_n line (P9.10) +net estop-loop => bb_gpio.p8.out-07 +setp bb_gpio.p8.out-07.invert 1 + + +# ################################################## +# PWM and Temperature Signals +# ################################################## + +# Define signals to use elsewhere (ie: M1xx codes) +# If you change any names here, lots of things will break! +newsig e0.temp.set float +newsig e0.temp.meas float +newsig bed.temp.set float +newsig bed.temp.meas float + + +setp hpg.pwmgen.00.pwm_period 10000000 + +# J2 E0 Heater PRU1.out1 +setp hpg.pwmgen.00.out.00.pin 0xA1 +setp hpg.pwmgen.00.out.00.enable 1 +setp hpg.pwmgen.00.out.00.value 0.0 + +# J3 E1 Heater PRU1.out0 +setp hpg.pwmgen.00.out.01.pin 0xA0 +setp hpg.pwmgen.00.out.01.enable 1 +setp hpg.pwmgen.00.out.01.value 0.0 + +# J4 Bed Heater GPIO2.16 +setp hpg.pwmgen.00.out.02.pin 0x70 +setp hpg.pwmgen.00.out.02.enable 1 +setp hpg.pwmgen.00.out.02.value 0.0 + +# PID for Extruder 0 temperature control +net e0.temp.meas <= Therm.temp0 +net e0.temp.meas => pid.0.feedback + +sets e0.temp.set 0 +net e0.temp.set => pid.0.command + +net e0.heater <= pid.0.output +net e0.heater => limit1.0.in +net e0.heaterl <= limit1.0.out +net e0.heaterl => hpg.pwmgen.00.out.00.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.0.min 0 + +# PID for Bed temperature control +net bed.temp.meas <= Therm.temp1 +net bed.temp.meas => pid.1.feedback + +sets bed.temp.set 0 +net bed.temp.set => pid.1.command + +net bed.heater <= pid.1.output +net bed.heater => limit1.1.in +net bed.heaterl <= limit1.1.out +net bed.heaterl => hpg.pwmgen.00.out.02.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.1.min 0 + +# PID Parameters for adjusting temperature control +# Extruder +#setp pid.0.FF0 0 +#setp pid.0.FF1 0 +#setp pid.0.FF2 0 +setp pid.0.Pgain 0.30 +setp pid.0.Igain 0.00001 +setp pid.0.Dgain 0.9375 +setp pid.0.maxerrorI 1.0 +setp pid.0.bias 0.5 +setp pid.0.enable 1 + +# Bed +#setp pid.1.FF0 0 +#setp pid.1.FF1 0 +#setp pid.1.FF2 0 +setp pid.1.Pgain 1 +setp pid.1.Igain 0.0 +setp pid.1.Dgain 0.0 +setp pid.1.maxerrorI 1.0 +setp pid.1.bias 0.5 +setp pid.1.enable 1 diff --git a/configs/ARM/BeagleBone/BeBoPr/BeBoPr.ini b/configs/ARM/BeagleBone/BeBoPr/BeBoPr.ini new file mode 100755 index 00000000000..7d574fe438b --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr/BeBoPr.ini @@ -0,0 +1,298 @@ +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=4 num_pwmgens=3 +PRUBIN=xenomai/pru_generic.bin + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = BeBoPr + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +#DISPLAY = gscreen +DISPLAY = axis + +# Touchy currently won't work without some hardware buttons/jog-wheel +#DISPLAY = touchy + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.200 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +PYVCP = BeBoPr.panel.xml + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = pru-stepper.var + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = BeBoPr.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +POSTGUI_HALFILE = BeBoPr.postgui.hal + + +[TRAJ] + +AXES = 4 +COORDINATES = X Y Z A +MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 20.00 +MAX_LINEAR_VELOCITY = 200.00 + + + + + +[AXIS_0] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# + + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +# scale is 200 steps/rev * 5 revs/inch +SCALE = -80 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 220.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_1] + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +SCALE = 80.0 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 250.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_2] + +TYPE = LINEAR +MAX_VELOCITY = 5.0 +MAX_ACCELERATION = 100.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 6.0 +STEPGEN_MAX_ACC = 125.0 + +BACKLASH = 0.000 + +SCALE = 1511.81102362 + +MIN_LIMIT = -10.0 +MAX_LIMIT = 200.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_3] + +TYPE = ANGULAR +MAX_VELOCITY = 31.8993189453 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 37.0 +STEPGEN_MAX_ACC = 3750.0 + +BACKLASH = 0.000 + +SCALE = -744.530002058 +#SCALE = -732.32 + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 1.0 +MIN_FERROR = .25 + +HOME = 0.0 +HOME_OFFSET = 0.0 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl + diff --git a/configs/ARM/BeagleBone/BeBoPr/BeBoPr.panel.xml b/configs/ARM/BeagleBone/BeBoPr/BeBoPr.panel.xml new file mode 100644 index 00000000000..827a07b49ae --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr/BeBoPr.panel.xml @@ -0,0 +1,31 @@ + + + + + + + "E0.Temp.set" + "3.1f" + + + + "E0.Temp" + 300 + + + + + + "Bed.Temp.set" + "3.1f" + + + + "Bed.Temp" + 300 + + diff --git a/configs/ARM/BeagleBone/BeBoPr/BeBoPr.postgui.hal b/configs/ARM/BeagleBone/BeBoPr/BeBoPr.postgui.hal new file mode 100644 index 00000000000..d9448632adf --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr/BeBoPr.postgui.hal @@ -0,0 +1,8 @@ +# Include your customized HAL commands here +# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts + +net e0.temp.set => pyvcp.E0.Temp.set +net e0.temp.meas => pyvcp.E0.Temp +net bed.temp.set => pyvcp.Bed.Temp.set +net bed.temp.meas => pyvcp.Bed.Temp + diff --git a/configs/ARM/BeagleBone/BeBoPr/README b/configs/ARM/BeagleBone/BeBoPr/README new file mode 100644 index 00000000000..321ebb6901e --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr/README @@ -0,0 +1,23 @@ + +This configuration drives a standard 4-axis 3D printer using the PRU for +high speed step/dir pulse generation and a BeBoPr driver board. The +BeBoPr configuration is for the original version of the BeBoPr board and +requires you disable HDMI. + +The BeBoPr-Bridge configuration is for use with the new bridge board +that shuffles pins around so you can leave HDMI enabled. + +There are currently no limit switches configured, so adjust the MIN_LIMIT +and MAX_LIMIT axis settings in the ini file if your printer has less than +200 mm of X/Y travel. + +Current X and Y settings are appropriate for a typical "MendelMax" style +printer, with the following settings: + +max vel = 200 mm/s +max accel = 3000 mm/s/s +scale = 80 steps/mm + +Adjust as required for your machine. Make scale negative to invert any +axis that is moving 'backwards'. + diff --git a/configs/ARM/BeagleBone/BeBoPr/ReadTemp.py b/configs/ARM/BeagleBone/BeBoPr/ReadTemp.py new file mode 100755 index 00000000000..2eda38ce665 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr/ReadTemp.py @@ -0,0 +1,323 @@ +#!/usr/bin/python + +######################################################################## +# Description: temp.py # +# This code reads an ADC input on the BeagleBone and converts the # +# resulting value into a temperature according to the thermistor # +# type, accounting for the analog input circuty as implemented on # +# the BeBoPr cape # +# # +# Author(s): Charles Steinkuehler # +# License: GNU GPL Version 2.0 or (at your option) any later version. # +# # +# Major Changes: # +# 2013-June Charles Steinkuehler # +# Initial version # +######################################################################## +# Copyright (C) 2013 Charles Steinkuehler # +# # +# # +# This program is free software; you can redistribute it and/or # +# modify it under the terms of the GNU General Public License # +# as published by the Free Software Foundation; either version 2 # +# of the License, or (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # +# 02110-1301, USA. # +# # +# THE AUTHORS OF THIS PROGRAM ACCEPT ABSOLUTELY NO LIABILITY FOR # +# ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE # +# TO RELY ON SOFTWARE ALONE FOR SAFETY. Any machinery capable of # +# harming persons must have provisions for completely removing power # +# from all motors, etc, before persons enter any danger area. All # +# machinery must be designed to comply with local and national safety # +# codes, and the authors of this software can not, and do not, take # +# any responsibility for such compliance. # +######################################################################## + +import argparse +import bisect +import glob +import sys +import time + +import hal + +# Fixme: Put thermistor data in an include file +Thermistor = {} +Thermistor["epcos_B57560G1104"] = [ +# Temp, Resistance, alpha +[ -60.0, float('inf'), 7.6 ], +[ -55.0, 10011000, 7.4 ], +[ -50.0, 6956000, 7.2 ], +[ -45.0, 4894500, 6.9 ], +[ -40.0, 3485300, 6.7 ], +[ -35.0, 2510200, 6.5 ], +[ -30.0, 1827500, 6.2 ], +[ -25.0, 1344300, 6.0 ], +[ -20.0, 998530, 5.9 ], +[ -15.0, 748670, 5.7 ], +[ -10.0, 566360, 5.5 ], +[ -5.0, 432120, 5.3 ], +[ 0.0, 332400, 5.2 ], +[ 5.0, 257690, 5.0 ], +[ 10.0, 201270, 4.9 ], +[ 15.0, 158340, 4.7 ], +[ 20.0, 125420, 4.6 ], +[ 25.0, 100000, 4.5 ], +[ 30.0, 80239, 4.3 ], +[ 35.0, 64776, 4.2 ], +[ 40.0, 52598, 4.1 ], +[ 45.0, 42950, 4.0 ], +[ 50.0, 35262, 3.9 ], +[ 55.0, 29100, 3.8 ], +[ 60.0, 24136, 3.7 ], +[ 65.0, 20114, 3.6 ], +[ 70.0, 16841, 3.5 ], +[ 75.0, 14164, 3.4 ], +[ 80.0, 11963, 3.3 ], +[ 85.0, 10147, 3.3 ], +[ 90.0, 8640.7, 3.2 ], +[ 95.0, 7386.7, 3.1 ], +[ 100.0, 6338.3, 3.0 ], +[ 105.0, 5458.4, 3.0 ], +[ 110.0, 4717, 2.9 ], +[ 115.0, 4090.1, 2.8 ], +[ 120.0, 3558.1, 2.8 ], +[ 125.0, 3105, 2.7 ], +[ 130.0, 2717.9, 2.6 ], +[ 135.0, 2386.1, 2.6 ], +[ 140.0, 2100.8, 2.5 ], +[ 145.0, 1854.8, 2.5 ], +[ 150.0, 1641.9, 2.4 ], +[ 155.0, 1457.3, 2.4 ], +[ 160.0, 1296.7, 2.3 ], +[ 165.0, 1156.6, 2.3 ], +[ 170.0, 1034.1, 2.2 ], +[ 175.0, 926.64, 2.2 ], +[ 180.0, 832.24, 2.1 ], +[ 185.0, 749.07, 2.1 ], +[ 190.0, 675.64, 2.0 ], +[ 195.0, 610.64, 2.0 ], +[ 200.0, 552.99, 2.0 ], +[ 205.0, 501.75, 1.9 ], +[ 210.0, 456.11, 1.9 ], +[ 215.0, 415.37, 1.9 ], +[ 220.0, 378.95, 1.8 ], +[ 225.0, 346.31, 1.8 ], +[ 230.0, 317.01, 1.8 ], +[ 235.0, 290.67, 1.7 ], +[ 240.0, 266.93, 1.7 ], +[ 245.0, 245.51, 1.7 ], +[ 250.0, 226.15, 1.6 ], +[ 255.0, 208.62, 1.6 ], +[ 260.0, 192.73, 1.6 ], +[ 265.0, 178.29, 1.5 ], +[ 270.0, 165.16, 1.5 ], +[ 275.0, 153.19, 1.5 ], +[ 280.0, 142.28, 1.5 ], +[ 285.0, 132.31, 1.4 ], +[ 290.0, 123.19, 1.4 ], +[ 295.0, 114.83, 1.4 ], +[ 300.0, 107.16, 1.4 ], +[ 400.0, 0.0, 1.4 ] ] + + +# Temperature table needs resistance to be ordered low [0] to high [n] +Thermistor["epcos_B57560G1104"].reverse() + +# Epcos B57560G1104 is Marlin thermistor table 1 +Thermistor["1"] = Thermistor["epcos_B57560G1104"] + + +Thermistor["semitec_103GT_2"] = [ +# Temp, Resistance, alpha +[ -60.0, float('inf'), 0.0 ], +[ -50.0, 8743000.0, 0.0 ], +[ -40.0, 4218000.0, 0.0 ], +[ -30.0, 2132000.0, 0.0 ], +[ -20.0, 1127000.0, 0.0 ], +[ -10.0, 620000.0, 0.0 ], +[ 0.0, 353700.0, 0.0 ], +[ 10.0, 208600.0, 0.0 ], +[ 20.0, 126800.0, 0.0 ], +[ 30.0, 79360.0, 0.0 ], +[ 40.0, 50960.0, 0.0 ], +[ 50.0, 33490.0, 0.0 ], +[ 60.0, 22510.0, 0.0 ], +[ 70.0, 15440.0, 0.0 ], +[ 80.0, 10800.0, 0.0 ], +[ 90.0, 7686.0, 0.0 ], +[ 100.0, 5556.0, 0.0 ], +[ 110.0, 4082.0, 0.0 ], +[ 120.0, 3043.0, 0.0 ], +[ 130.0, 2298.0, 0.0 ], +[ 140.0, 1758.0, 0.0 ], +[ 150.0, 1360.0, 0.0 ], +[ 160.0, 1064.0, 0.0 ], +[ 170.0, 841.4, 0.0 ], +[ 180.0, 671.4, 0.0 ], +[ 190.0, 540.8, 0.0 ], +[ 200.0, 439.3, 0.0 ], +[ 210.0, 359.7, 0.0 ], +[ 220.0, 296.9, 0.0 ], +[ 230.0, 246.8, 0.0 ], +[ 240.0, 206.5, 0.0 ], +[ 250.0, 174.0, 0.0 ], +[ 260.0, 147.5, 0.0 ], +[ 270.0, 125.8, 0.0 ], +[ 280.0, 107.9, 0.0 ], +[ 290.0, 93.05, 0.0 ], +[ 300.0, 80.65, 0.0 ], +[ 400.0, 0.0, 1.4 ] ] + + +# Temperature table needs resistance to be ordered low [0] to high [n] +Thermistor["semitec_103GT_2"].reverse() + +# ATC Semtec 104GT-2 is Marlin thermistor table 5 +Thermistor["5"] = Thermistor["semitec_103GT_2"] + +# Test for multiple thermistor tables +Thermistor["2"] = [ +[ 400.0, 0.0, 1.4 ], +[ 300.0, 1000.0, 2.0 ], +[ 200.0, 10000.0, 3.0 ], +[ 100.0, 100000.0, 6.0 ], +[ 0.0, float('inf'), 7.6 ] ] + +# The BeBoPr board thermistor input has one side grounded and the other side +# pulled high through a 2.05K resistor to 3.6V. Following this is a 470R +# resistor, some protection diodes, and a voltage divider cosisting of two +# 10.0K resistors. The ADC voltage read is the voltage across the lower 10K +# resistor in the 470R + 10K + 10K series chain +def adc2r(V_adc): + V_T = 0.0 # Voltage across the thermistor (and the 470R + 10K + 10K resistor chain) + I_PU = 0.0 # Current flowing through the 2.05K pull-up resistor + R_TD = 0.0 # Resistance of thermistor and the 470R + 10K + 10K divider chain in parallel + R_T = 0.0 # Resistance of the thermistor + + V_T = V_adc * 2.0470 + + # No dividing by zero or negative voltages despite what the ADC says! + # Clip to a small positive value + I_PU = max((3.6 - V_T ) / 2050, 0.000001) + + R_TD = V_T / I_PU + + # Acutal resistance can't be negative, but we can get a negative value + # from the equation below for some real ADC values, so clip to avoid + # reporting crazy temperature values or dividing by zero + if R_TD >= 20470 : + R_TD = 20470 - 0.1 + + # 1 / Rtotal = 1 / ( 1 / R1 + 1 / R2 ) + # R2 = ( R1 * Rtotal ) / ( R1 - Rtotal ) + R_T = ( 20470 * R_TD ) / ( 20470 - R_TD ) + + # print "V_adc: %f V_T: %f R_TD: %f R_T: %f" % (V_adc, V_T, R_TD, R_T) + + + return R_T + +# Convert resistance value into temperature, using thermistor table +def r2t(n, R_T): + temp_slope = 0.0 + temp = 0.0 + + i = max(bisect.bisect_right(R_Key[n], R_T) - 1, 0) + + temp_slope = (thermistor[n][0][i] - thermistor[n][0][i+1]) / (thermistor[n][1][i] - thermistor[n][1][i+1]) + temp = thermistor[n][0][i] + ((R_T - thermistor[n][1][i]) * temp_slope) + #print "Temp:", temp, "i.R_T:", i, R_T, "slope:", temp_slope, + #print "Deg.left:", Thermistor["epcos_B57560G1104"][i], "Deg.right:", Thermistor["epcos_B57560G1104"][i+1] + return temp + +parser = argparse.ArgumentParser(description='HAL component to read ADC values and convert to temperature') +parser.add_argument('-n','--name', help='HAL component name',required=True) +parser.add_argument('-N','--num_chan', help='Number of analog inputs to support',default=1) +parser.add_argument('-a','--adc', nargs='+', help='ADC input to read', required=True) +parser.add_argument('-t','--therm',nargs='+', help='Thermistor table to use', required=True) +args = parser.parse_args() + +num_chan = int(args.num_chan) + +if len(args.adc) != num_chan : + raise UserWarning('Incorrect number of ADC channels specified! Expected:' + str(args.num_chan) + str(len(args.adc)) ) + +if len(args.therm) != num_chan : + raise UserWarning('Incorrect number of thermistors specified! Expected:' + args.num_chan) + +syspath = '/sys/devices/ocp.*/44e0d000.tscadc/tiadc/iio:device0/' + +FileName = [] + +for i in range(num_chan): + TempName = glob.glob (syspath + 'in_voltage' + args.adc[i] + '_raw') + FileName.insert(i, TempName[0]) + try: + if len(FileName[i]) > 0: + f = open(FileName[i], 'r') + f.close() + time.sleep(0.001) + else: + raise UserWarning('Bad Filename') + except (UserWarning, IOError) : + print("Cannot read ADC input: %s" % Filename[i]) + sys.exit(1) + +thermistor = [] +R_Key = [] +for i in range(num_chan): + if args.therm[i] in Thermistor: + # Shuffle array to make three lists of values (Temp, Resistane, Alpha) + # so we can use bisect to efficiently do table lookups + thermistor.insert(i, map(list, zip(*Thermistor[args.therm[i]])) ) + + # Pull out the resistance values to use as a key for bisect + R_Key.insert(i, thermistor[i][1] ) + + else: + print("Unknown thermistor type: %s" % args.therm) + print 'Try one of:', Thermistor.keys() + sys.exit(1) + +h = hal.component(args.name) +for i in range(num_chan): + h.newpin("raw" + str(i), hal.HAL_U32, hal.HAL_OUT) + h.newpin("temp" + str(i), hal.HAL_FLOAT, hal.HAL_OUT) + +h.ready() + +Err = 0.0 +ADC_V = 0.0 +temp = 0.0 + +while 1: + try: + for i in range(num_chan): + f = open(FileName[i], 'r') + ADC_IN = int(f.readline()) + h['raw' + str(i)] = ADC_IN + ADC_V = float(ADC_IN) * 1.8 / 4096.0 + temp = r2t(i,adc2r(ADC_V)) + h['temp' + str(i)] = temp + #print ADC_IN, temp + f.close() + time.sleep(0.001) + + time.sleep(0.049) + + except IOError: + continue + + except KeyboardInterrupt: + raise SystemExit + diff --git a/configs/ARM/BeagleBone/BeBoPr/dtc.sh b/configs/ARM/BeagleBone/BeBoPr/dtc.sh new file mode 100755 index 00000000000..7ac8d799c7f --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr/dtc.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# Copyright 2013 +# Charles Steinkuehler +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +dtc -O dtb -o BB-LCNC-BEBOPR-00A0.dtbo -b 0 -@ BB-LCNC-BEBOPR-00A0.dts && \ +cp BB-LCNC-BEBOPR-00A0.dtbo /lib/firmware/ + + diff --git a/configs/ARM/BeagleBone/BeBoPr/setup.sh b/configs/ARM/BeagleBone/BeBoPr/setup.sh new file mode 100755 index 00000000000..c68c8c47710 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr/setup.sh @@ -0,0 +1,86 @@ +#!/bin/bash +# Copyright 2013 +# Charles Steinkuehler +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +dtbo_err () { + echo "Error loading device tree overlay file: $DTBO" >&2 + exit 1 +} + +pin_err () { + echo "Error exporting pin:$PIN" >&2 + exit 1 +} + +dir_err () { + echo "Error setting direction:$DIR on pin:$PIN" >&2 + exit 1 +} + +SLOTS=/sys/devices/bone_capemgr.*/slots + +# Make sure required device tree overlay(s) are loaded +for DTBO in BB-LCNC-BEBOPR cape-bone-iio ; do + + if grep -q $DTBO $SLOTS ; then + echo $DTBO overlay found + else + echo Loading $DTBO overlay + sudo -A su -c "echo $DTBO > $SLOTS" || dtbo_err + sleep 1 + fi +done; + +if [ ! -r /sys/devices/ocp.*/helper.*/AIN0 ] ; then + echo Analog input files not found in /sys/devices/ocp.*/helper.* >&2 + exit 1; +fi + +if [ ! -r /sys/class/uio/uio0 ] ; then + echo PRU control files not found in /sys/class/uio/uio0 >&2 + exit 1; +fi + +# Export GPIO pins +# This really only needs to be done to enable the low-level clocks for the GPIO +# modules. There is probably a better way to do this... +while read PIN DIR JUNK ; do + case "$PIN" in + ""|\#*) + continue ;; + *) + [ -r /sys/class/gpio/gpio$PIN ] && continue + sudo -A su -c "echo $PIN > /sys/class/gpio/export" || pin_err + sudo -A su -c "echo $DIR > /sys/class/gpio/gpio$PIN/direction" || dir_err + ;; + esac + +done <<- EOF + 38 low # gpio1.6 P8.3 Enable + 34 high # gpio1.2 P8.5 Enable_n + 66 high # gpio2.2 P8.7 Enable_n (ECO location) + 92 out # gpio2.24 P8.28 Z_Ena + 10 in # gpio0.10 P8.31 X_Min + 11 in # gpio0.11 P8.32 X_Max + 9 in # gpio0.9 P8.33 Y_Max + 8 in # gpio0.8 P8.35 Y_Min + 80 out # gpio2.16 P8.36 J4.PWM + 78 in # gpio2.14 P8.37 Z_Max + 79 in # gpio2.15 P8.38 Z_Min + 77 out # gpio2.13 P8.40 Y_Ena + 74 out # gpio2.10 P8.41 X_Ena +EOF diff --git a/configs/ARM/BeagleBone/BeBoPr/tool.tbl b/configs/ARM/BeagleBone/BeBoPr/tool.tbl new file mode 100644 index 00000000000..c0b72de0652 --- /dev/null +++ b/configs/ARM/BeagleBone/BeBoPr/tool.tbl @@ -0,0 +1,4 @@ +T1 P1 D0.125000 Z+0.511000 ;1/8 end mill +T2 P2 D0.062500 Z+0.100000 ;1/16 end mill +T3 P3 D0.201000 Z+1.273000 ;#7 tap drill +T99999 P99999 Z+0.100000 ;big tool number diff --git a/configs/ARM/BeagleBone/CRAMPS/3D.Temps.panel.xml b/configs/ARM/BeagleBone/CRAMPS/3D.Temps.panel.xml new file mode 100644 index 00000000000..827a07b49ae --- /dev/null +++ b/configs/ARM/BeagleBone/CRAMPS/3D.Temps.panel.xml @@ -0,0 +1,31 @@ + + + + + + + "E0.Temp.set" + "3.1f" + + + + "E0.Temp" + 300 + + + + + + "Bed.Temp.set" + "3.1f" + + + + "Bed.Temp" + 300 + + diff --git a/configs/ARM/BeagleBone/CRAMPS/3D.postgui.hal b/configs/ARM/BeagleBone/CRAMPS/3D.postgui.hal new file mode 100644 index 00000000000..d9448632adf --- /dev/null +++ b/configs/ARM/BeagleBone/CRAMPS/3D.postgui.hal @@ -0,0 +1,8 @@ +# Include your customized HAL commands here +# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts + +net e0.temp.set => pyvcp.E0.Temp.set +net e0.temp.meas => pyvcp.E0.Temp +net bed.temp.set => pyvcp.Bed.Temp.set +net bed.temp.meas => pyvcp.Bed.Temp + diff --git a/configs/ARM/BeagleBone/CRAMPS/CRAMPS.ShuttleXpress.ini b/configs/ARM/BeagleBone/CRAMPS/CRAMPS.ShuttleXpress.ini new file mode 100755 index 00000000000..6826ba49eb6 --- /dev/null +++ b/configs/ARM/BeagleBone/CRAMPS/CRAMPS.ShuttleXpress.ini @@ -0,0 +1,338 @@ +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=4 num_pwmgens=6 +PRUBIN=xenomai/pru_generic.bin + + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = MendelMax-CRAMPS + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +#DISPLAY = gscreen +DISPLAY = axis + +# Touchy currently won't work without some hardware buttons/jog-wheel +#DISPLAY = touchy + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.200 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +PYVCP = 3D.Temps.panel.xml +GLADEVCP = ShuttleXpress.glade + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = pru-stepper.var + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = CRAMPS.hal +HALFILE = ../../../common/shuttlexpress.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +HALUI = halui + +POSTGUI_HALFILE = 3D.postgui.hal +POSTGUI_HALFILE = ShuttleXpress.postgui.hal + + +[TRAJ] + +AXES = 4 +COORDINATES = X Y Z A +MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 20.00 +MAX_LINEAR_VELOCITY = 200.00 + + + + + +[AXIS_0] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# + + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +# scale is 200 steps/rev * 5 revs/inch +SCALE = -160 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 220.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_IGNORE_LIMITS = YES +HOME_USE_INDEX = NO +HOME_SEQUENCE = 0 + +# Set to zero if you don't have physical home/limit switches +# Set to the desired homing and latch velocity if you have switches +# See: https://github.com/machinekit/machinekit-docs +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +# Set to one for active low step pulses +STEP_INVERT = 0 + + + + +[AXIS_1] + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +SCALE = 160.0 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 250.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_IGNORE_LIMITS = YES +HOME_USE_INDEX = NO +HOME_SEQUENCE = 0 + +# Set to zero if you don't have physical home/limit switches +# Set to the desired homing and latch velocity if you have switches +# See: https://github.com/machinekit/machinekit-docs +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +# Set to one for active low step pulses +STEP_INVERT = 0 + + + + +[AXIS_2] + +TYPE = LINEAR +MAX_VELOCITY = 5.0 +MAX_ACCELERATION = 100.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 6.0 +STEPGEN_MAX_ACC = 125.0 + +BACKLASH = 0.000 + +#SCALE = 1511.81102362 +SCALE = 3023.6 + +MIN_LIMIT = -10.0 +MAX_LIMIT = 200.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_IGNORE_LIMITS = YES +HOME_USE_INDEX = NO +HOME_SEQUENCE = 0 + +# Set to zero if you don't have physical home/limit switches +# Set to the desired homing and latch velocity if you have switches +# See: https://github.com/machinekit/machinekit-docs +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +# Set to one for active low step pulses +STEP_INVERT = 0 + + + + +[AXIS_3] + +TYPE = ANGULAR +MAX_VELOCITY = 31.8993189453 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 37.0 +STEPGEN_MAX_ACC = 3750.0 + +BACKLASH = 0.000 + +#SCALE = -744.530002058 +SCALE = -1489.06 +#SCALE = -732.32 + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 1.0 +MIN_FERROR = .25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_IGNORE_LIMITS = YES +HOME_USE_INDEX = NO +HOME_SEQUENCE = 0 + +# Set to zero if you don't have physical home/limit switches +# Set to the desired homing and latch velocity if you have switches +# See: https://github.com/machinekit/machinekit-docs +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +# Set to one for active low step pulses +STEP_INVERT = 0 + + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl + diff --git a/configs/ARM/BeagleBone/CRAMPS/CRAMPS.hal b/configs/ARM/BeagleBone/CRAMPS/CRAMPS.hal new file mode 100755 index 00000000000..984194d97e8 --- /dev/null +++ b/configs/ARM/BeagleBone/CRAMPS/CRAMPS.hal @@ -0,0 +1,417 @@ +# ####################################### +# +# HAL file for BeagleBone + BeBoPr cape with 4 steppers +# +# Derived from example hm2-stepper config +# +# ######################################## + +# Launch the setup script to make sure hardware setup looks good +loadusr -w ./setup.sh + + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +loadrt trivkins + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + + +# load low-level drivers +loadrt hal_bb_gpio output_pins=816,822,823,824,825,826,914,923,925 input_pins=807,808,809,810,817,911,913 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg +loadrt pid count=2 +loadrt limit1 count=2 + + +# Python user-mode HAL module to read ADC value and generate a thermostat output for PWM +# c = analog input channel and thermistor table +loadusr -Wn Therm hal_temp_bbb -n Therm -c 04:epcos_B57560G1104,05:epcos_B57560G1104 -b CRAMPS + +# ################################################ +# THREADS +# ################################################ + +addf hpg.capture-position servo-thread +addf bb_gpio.read servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf pid.0.do-pid-calcs servo-thread +addf pid.1.do-pid-calcs servo-thread +addf limit1.0 servo-thread +addf limit1.1 servo-thread +addf hpg.update servo-thread +addf bb_gpio.write servo-thread + + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + + +# ################ +# X [0] Axis +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hpg.stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => hpg.stepgen.00.position-cmd + +net motor.00.pos-fb <= hpg.stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN +setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE + +setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +#setp hpg.stepgen.00.step_type 0 +# P8.43 PRU1.out2 +setp hpg.stepgen.00.steppin 813 +# P8.44 PRU1.out4 +setp hpg.stepgen.00.dirpin 812 + + +# ################ +# Y [1] Axis +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hpg.stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => hpg.stepgen.01.position-cmd + +net motor.01.pos-fb <= hpg.stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN +setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE + +setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +#setp hpg.stepgen.01.step_type 0 +# P8.42 PRU1.out5 +setp hpg.stepgen.01.steppin 815 +# P8.39 PRU1.out6 +setp hpg.stepgen.01.dirpin 814 + + +# ################ +# Z [2] Axis +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hpg.stepgen.02.enable + + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => hpg.stepgen.02.position-cmd + +net motor.02.pos-fb <= hpg.stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN +setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hpg.stepgen.02.position-scale [AXIS_2]SCALE + +setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +#setp hpg.stepgen.02.step_type 0 +# P8.27 PRU1.out8 +setp hpg.stepgen.02.steppin 819 +# P8.29 PRU1.out9 +setp hpg.stepgen.02.dirpin 818 + + +# ################ +# A [3] Axis (Extruder) +# ################ + +# axis enable chain +newsig emcmot.03.enable bit +sets emcmot.03.enable FALSE + +net emcmot.03.enable <= axis.3.amp-enable-out +net emcmot.03.enable => hpg.stepgen.03.enable + + +# position command and feedback +net emcmot.03.pos-cmd <= axis.3.motor-pos-cmd +net emcmot.03.pos-cmd => hpg.stepgen.03.position-cmd + +net motor.03.pos-fb <= hpg.stepgen.03.position-fb +net motor.03.pos-fb => axis.3.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP +setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD + +setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN +setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE + +setp hpg.stepgen.03.position-scale [AXIS_3]SCALE + +setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL +setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC + +#setp hpg.stepgen.03.step_type 0 +# P8.30 GPIO2.25 +setp hpg.stepgen.03.steppin 916 +# P8.21 GPIO1.30 +setp hpg.stepgen.03.dirpin 912 + + +# ################################################## +# Standard I/O - EStop, Enables, Limit Switches, Etc +# ################################################## + +# Create estop signal chain +# Drive software estop to hardware +net estop-out iocontrol.0.user-enable-out => bb_gpio.p8.out-26 +setp bb_gpio.p8.out-26.invert 1 + +# Monitor estop input from hardware +net estop-loop bb_gpio.p8.in-17 => iocontrol.0.emc-enable-in +setp bb_gpio.p8.in-17.invert 1 + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# Axis enable signal (active low) +net emcmot.00.enable => bb_gpio.p9.out-14 +setp bb_gpio.p9.out-14.invert 1 + +# Machine power +# Use halui.machine.is-on instead? +net emcmot.00.enable => bb_gpio.p9.out-23 + +# Tie machine power signal to the CRAMPS LED +# Feel free to tie any other signal you like to the LED +net emcmot.00.enable => bb_gpio.p9.out-25 + +# ################ +# Limit Switches +# ################ +newsig limit-x-min bit +newsig limit-x-max bit +newsig limit-y-min bit +newsig limit-y-max bit +newsig limit-z-min bit +newsig limit-z-max bit + +net limit-x-min <= bb_gpio.p8.in-08 +net limit-x-max <= bb_gpio.p8.in-07 +net limit-y-min <= bb_gpio.p8.in-10 +net limit-y-max <= bb_gpio.p8.in-09 +net limit-z-min <= bb_gpio.p9.in-13 +net limit-z-max <= bb_gpio.p9.in-11 + +# Adjust as needed for your switch polarity +setp bb_gpio.p8.in-08.invert 1 +setp bb_gpio.p8.in-07.invert 1 +setp bb_gpio.p8.in-10.invert 1 +setp bb_gpio.p8.in-09.invert 1 +setp bb_gpio.p9.in-11.invert 1 +setp bb_gpio.p9.in-13.invert 1 + +# Uncomment if you actually have limit switches setup +# You probably want to setup homing in the INI file, as well +#net limit-x-min => axis.0.home-sw-in +#net limit-x-min => axis.0.neg-lim-sw-in +#net limit-x-max => axis.0.pos-lim-sw-in +#net limit-y-min => axis.1.home-sw-in +#net limit-y-min => axis.1.neg-lim-sw-in +#net limit-y-max => axis.1.pos-lim-sw-in +#net limit-z-min => axis.2.home-sw-in +#net limit-z-min => axis.2.neg-lim-sw-in +#net limit-z-max => axis.2.pos-lim-sw-in + +# ################ +# Servo signals +# ################ + +# There is currently no driver to generate pulses for actual +# radio-control style servos, but the buffered 5V output +# signals can be used as GPIO + +# !!! WARNING !!! +# BBB on-board eMMC *MUST* be disabled in order to use these! +# Drive eMMC-disabled signal high to enable signals that overlap +# with the eMMC pins on P8, otherwise they are tri-stated +# +# You also need to edit the setup.sh file to enable the GPIO pins + +# Signal the hardware that eMMC has been disabled and it is safe +# to drive the signals connected to eMMC lines (active low) +newsig eMMC-disabled bit +sets eMMC-disabled 0 +net eMMC-disabled bb_gpio.p8.out-16 +setp bb_gpio.p8.out-16.invert 1 + +# Servo signals, output only, driven by an 'ACT125 + +newsig servo.1 bit +newsig servo.2 bit +newsig servo.3 bit +newsig servo.4 bit + +sets servo.1 0 +sets servo.2 0 +sets servo.3 0 +sets servo.4 0 + +net servo.1 bb_gpio.p8.out-25 +net servo.2 bb_gpio.p8.out-24 +net servo.3 bb_gpio.p8.out-23 +net servo.4 bb_gpio.p8.out-22 + + +# ################################################## +# PWM and Temperature Signals +# ################################################## + +# Define signals to use elsewhere (ie: M1xx codes) +# If you change any names here, lots of things will break! +newsig e0.temp.set float +newsig e0.temp.meas float +newsig bed.temp.set float +newsig bed.temp.meas float + + +setp hpg.pwmgen.00.pwm_period 10000000 + +# Bed Heater FET 1 +setp hpg.pwmgen.00.out.00.pin 811 +setp hpg.pwmgen.00.out.00.enable 1 +setp hpg.pwmgen.00.out.00.value 0.0 + +# E0 Heater FET 2 +setp hpg.pwmgen.00.out.01.pin 915 +setp hpg.pwmgen.00.out.01.enable 1 +setp hpg.pwmgen.00.out.01.value 0.0 + +# E1 Heater FET 3 +setp hpg.pwmgen.00.out.02.pin 927 +setp hpg.pwmgen.00.out.02.enable 1 +setp hpg.pwmgen.00.out.02.value 0.0 + +# E2 Heater FET 4 +setp hpg.pwmgen.00.out.03.pin 921 +setp hpg.pwmgen.00.out.03.enable 1 +setp hpg.pwmgen.00.out.03.value 0.0 + +# FET 5 - Fan / LED +setp hpg.pwmgen.00.out.04.pin 941 +setp hpg.pwmgen.00.out.04.enable 1 +setp hpg.pwmgen.00.out.04.value 0.0 + +# FET 6 - Fan / LED +setp hpg.pwmgen.00.out.05.pin 922 +setp hpg.pwmgen.00.out.05.enable 1 +setp hpg.pwmgen.00.out.05.value 0.0 + +# PID for Extruder 0 temperature control +net e0.temp.meas <= Therm.ch-04.value +net e0.temp.meas => pid.0.feedback + +sets e0.temp.set 0 +net e0.temp.set => pid.0.command + +net e0.heater <= pid.0.output +net e0.heater => limit1.0.in +net e0.heaterl <= limit1.0.out +net e0.heaterl => hpg.pwmgen.00.out.01.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.0.min 0 + +# PID for Bed temperature control +net bed.temp.meas <= Therm.ch-05.value +net bed.temp.meas => pid.1.feedback + +sets bed.temp.set 0 +net bed.temp.set => pid.1.command + +net bed.heater <= pid.1.output +net bed.heater => limit1.1.in +net bed.heaterl <= limit1.1.out +net bed.heaterl => hpg.pwmgen.00.out.00.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.1.min 0 + +# PID Parameters for adjusting temperature control +# Extruder +#setp pid.0.FF0 0 +#setp pid.0.FF1 0 +#setp pid.0.FF2 0 +setp pid.0.Pgain 0.30 +setp pid.0.Igain 0.00001 +setp pid.0.Dgain 0.9375 +setp pid.0.maxerrorI 1.0 +setp pid.0.bias 0.5 +setp pid.0.enable 1 + +# Bed +#setp pid.1.FF0 0 +#setp pid.1.FF1 0 +#setp pid.1.FF2 0 +setp pid.1.Pgain 1 +setp pid.1.Igain 0.0 +setp pid.1.Dgain 0.0 +setp pid.1.maxerrorI 1.0 +setp pid.1.bias 0.5 +setp pid.1.enable 1 diff --git a/configs/ARM/BeagleBone/CRAMPS/CRAMPS.ini b/configs/ARM/BeagleBone/CRAMPS/CRAMPS.ini new file mode 100755 index 00000000000..bb924636189 --- /dev/null +++ b/configs/ARM/BeagleBone/CRAMPS/CRAMPS.ini @@ -0,0 +1,321 @@ +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=0 num_stepgens=4 num_pwmgens=6 +PRUBIN=xenomai/pru_generic.bin + + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = MendelMax-CRAMPS + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +#DISPLAY = gscreen +DISPLAY = axis + +# Touchy currently won't work without some hardware buttons/jog-wheel +#DISPLAY = touchy + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.200 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +PYVCP = 3D.Temps.panel.xml + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = pru-stepper.var + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = CRAMPS.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +POSTGUI_HALFILE = 3D.postgui.hal + + +[TRAJ] + +AXES = 4 +COORDINATES = X Y Z A +MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 20.00 +MAX_LINEAR_VELOCITY = 200.00 + + + + + +[AXIS_0] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# + + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +# scale is 200 steps/rev * 5 revs/inch +SCALE = -160 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 220.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_IGNORE_LIMITS = YES +HOME_USE_INDEX = NO +HOME_SEQUENCE = 0 + +# Set to zero if you don't have physical home/limit switches +# Set to the desired homing and latch velocity if you have switches +# See: https://github.com/machinekit/machinekit-docs +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_1] + +TYPE = LINEAR +MAX_VELOCITY = 200.0 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 240.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +SCALE = 160.0 + +MIN_LIMIT = -1.0 +MAX_LIMIT = 250.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_IGNORE_LIMITS = YES +HOME_USE_INDEX = NO +HOME_SEQUENCE = 0 + +# Set to zero if you don't have physical home/limit switches +# Set to the desired homing and latch velocity if you have switches +# See: https://github.com/machinekit/machinekit-docs +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_2] + +TYPE = LINEAR +MAX_VELOCITY = 5.0 +MAX_ACCELERATION = 100.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 6.0 +STEPGEN_MAX_ACC = 125.0 + +BACKLASH = 0.000 + +#SCALE = 1511.81102362 +SCALE = 3023.6 + +MIN_LIMIT = -10.0 +MAX_LIMIT = 200.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_IGNORE_LIMITS = YES +HOME_USE_INDEX = NO +HOME_SEQUENCE = 0 + +# Set to zero if you don't have physical home/limit switches +# Set to the desired homing and latch velocity if you have switches +# See: https://github.com/machinekit/machinekit-docs +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_3] + +TYPE = ANGULAR +MAX_VELOCITY = 31.8993189453 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 37.0 +STEPGEN_MAX_ACC = 3750.0 + +BACKLASH = 0.000 + +#SCALE = -744.530002058 +SCALE = -1489.06 +#SCALE = -732.32 + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 1.0 +MIN_FERROR = .25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_IGNORE_LIMITS = YES +HOME_USE_INDEX = NO +HOME_SEQUENCE = 0 + +# Set to zero if you don't have physical home/limit switches +# Set to the desired homing and latch velocity if you have switches +# See: https://github.com/machinekit/machinekit-docs +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl + diff --git a/configs/ARM/BeagleBone/CRAMPS/README b/configs/ARM/BeagleBone/CRAMPS/README new file mode 100644 index 00000000000..95d266a9ce5 --- /dev/null +++ b/configs/ARM/BeagleBone/CRAMPS/README @@ -0,0 +1,19 @@ + +This configuration drives a standard 4-axis 3D printer using the PRU for +high speed step/dir pulse generation and a CRAMPS driver board. + +There are currently no limit switches configured, so adjust the MIN_LIMIT +and MAX_LIMIT axis settings in the ini file if your printer has less than +200 mm of X/Y travel. If you have limit switches, uncomment the marked +lines in the HAL file to enable them. + +Current X and Y settings are appropriate for a typical "MendelMax" style +printer, with the following settings: + +max vel = 200 mm/s +max accel = 3000 mm/s/s +scale = 80 steps/mm + +Adjust as required for your machine. Make scale negative to invert any +axis that is moving 'backwards'. + diff --git a/configs/ARM/BeagleBone/CRAMPS/ShuttleXpress.glade b/configs/ARM/BeagleBone/CRAMPS/ShuttleXpress.glade new file mode 100644 index 00000000000..2a3423b0b55 --- /dev/null +++ b/configs/ARM/BeagleBone/CRAMPS/ShuttleXpress.glade @@ -0,0 +1,277 @@ + + + + + + + + + 300 + 300 + True + 6 + 5 + 16 + True + + + True + X + + + + + + + 2 + 3 + + + + + True + Y + + + + + + + 3 + 4 + + + + + True + Z + + + + + + + 4 + 5 + + + + + True + A + + + + + + + 5 + 6 + + + + + True + 2 + + + 1 + 2 + 2 + 3 + + + + + True + 2 + + + 1 + 2 + 3 + 4 + + + + + True + 2 + + + 1 + 2 + 4 + 5 + + + + + True + 2 + + + 1 + 2 + 5 + 6 + + + + + True + 0.1 + + + 2 + 3 + 5 + 6 + + + + + True + .01 + + + 2 + 3 + 4 + 5 + + + + + True + .005 + + + 2 + 3 + 3 + 4 + + + + + True + .001 + + + 2 + 3 + 2 + 3 + + + + + True + yellow + 1 + 9 + + + 3 + 4 + 5 + 6 + + + + + True + yellow + 1 + 9 + + + 3 + 4 + 2 + 3 + + + + + True + yellow + 1 + 9 + + + 3 + 4 + 3 + 4 + + + + + True + yellow + 1 + 9 + + + 3 + 4 + 4 + 5 + + + + + True + Axis Selected + + + 2 + 1 + 2 + + + + + True + Increment + + + 2 + 4 + 1 + 2 + + + + + True + ShuttleXpress + + + 4 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/configs/ARM/BeagleBone/CRAMPS/ShuttleXpress.postgui.hal b/configs/ARM/BeagleBone/CRAMPS/ShuttleXpress.postgui.hal new file mode 100644 index 00000000000..ee6952ee033 --- /dev/null +++ b/configs/ARM/BeagleBone/CRAMPS/ShuttleXpress.postgui.hal @@ -0,0 +1,10 @@ +# Include your customized HAL commands here +# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts +net sxp.x-button => gladevcp.x_led1 +net sxp.y-button => gladevcp.y_led2 +net sxp.z-button => gladevcp.z_led3 +net sxp.a-button => gladevcp.a_led4 +net sxp.select-jog-increment-0 => gladevcp.Increment_led1 +net sxp.select-jog-increment-1 => gladevcp.Increment_led2 +net sxp.select-jog-increment-2 => gladevcp.Increment_led3 +net sxp.select-jog-increment-3 => gladevcp.Increment_led4 diff --git a/configs/ARM/BeagleBone/CRAMPS/setup.sh b/configs/ARM/BeagleBone/CRAMPS/setup.sh new file mode 100755 index 00000000000..454b4603e55 --- /dev/null +++ b/configs/ARM/BeagleBone/CRAMPS/setup.sh @@ -0,0 +1,130 @@ +#!/bin/bash +# Copyright 2013 +# Charles Steinkuehler +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +dtbo_err () { + echo "Error loading device tree overlay file: $DTBO" >&2 + exit 1 +} + +pin_err () { + echo "Error exporting pin:$PIN" >&2 + exit 1 +} + +dir_err () { + echo "Error setting direction:$DIR on pin:$PIN" >&2 + exit 1 +} + +SLOTS=/sys/devices/bone_capemgr.*/slots + +# Make sure required device tree overlay(s) are loaded +for DTBO in cape-universal cape-bone-iio ; do + + if grep -q $DTBO $SLOTS ; then + echo $DTBO overlay found + else + echo Loading $DTBO overlay + sudo -A su -c "echo $DTBO > $SLOTS" || dtbo_err + sleep 1 + fi +done; + +if [ ! -r /sys/devices/ocp.*/helper.*/AIN0 ] ; then + echo Analog input files not found in /sys/devices/ocp.*/helper.* >&2 + exit 1; +fi + +if [ ! -r /sys/class/uio/uio0 ] ; then + echo PRU control files not found in /sys/class/uio/uio0 >&2 + exit 1; +fi + +# Export GPIO pins: +# One pin needs to be exported to enable the low-level clocks for the GPIO +# modules (there is probably a better way to do this) +# +# Any GPIO pins driven by the PRU need to have their direction set properly +# here. The PRU does not do any setup of the GPIO, it just yanks on the +# pins and assumes you have the output enables configured already +# +# Direct PRU inputs and outputs do not need to be configured here, the pin +# mux setup (which is handled by the device tree overlay) should be all +# the setup needed. +# +# Any GPIO pins driven by the hal_bb_gpio driver do not need to be +# configured here. The hal_bb_gpio module handles setting the output +# enable bits properly. These pins _can_ however be set here without +# causing problems. You may wish to do this for documentation or to make +# sure the pin starts with a known value as soon as possible. + +sudo $(which config-pin) -f - <<- EOF + + P8.07 in # X Max + P8.08 in # X Min + P8.09 in # Y Max + P8.10 in # Y Min + P8.11 low # FET 1 : Heated Bed + P8.12 low # X Dir + P8.13 low # X Step + P8.14 low # Y Dir + P8.15 low # Y Step + P8.16 high # eMMC Enable + P8.17 in # ESTOP + P8.18 low # Z Dir + P8.19 low # Z Step + +# eMMC signals, uncomment *ONLY* if you have disabled the on-board eMMC! +# Machinekit images disable eMMC and HDMI audio by default in uEnv.txt: +# capemgr.disable_partno=BB-BONELT-HDMI,BB-BONE-EMMC-2G +# P8.22 low # Servo 4 +# P8.23 low # Servo 3 +# P8.24 low # Servo 2 +# P8.25 low # Servo 1 + + P8.26 high # ESTOP Out + + P9.11 in # Z Max + P9.12 low # E0 Dir + P9.13 in # Z Min + P9.14 high # Axis Enable, active low + P9.15 low # FET 2 : E0 + P9.16 low # E0 Step + P9.17 low # E1 Step + P9.18 low # E1 Dir +# P9.19 low # I2C SCL +# P9.20 low # I2C SDA + P9.21 low # FET 4 : E1 + P9.22 low # FET 6 + P9.23 low # Machine Power + P9.24 low # E2 Step + P9.25 low # LED + P9.26 low # E2 Dir + P9.27 low # FET 3 : E2 + P9.28 low # SPI CS0 + P9.29 low # SPI MISO + P9.30 low # SPI MOSI + P9.31 low # SPI SCLK + + P9.41 low # FET 5 + P9.91 in # Reserved, connected to P9.41 + + P9.42 low # SPI CS1 + P9.92 in # Reserved, connected to P9.42 +EOF + diff --git a/configs/ARM/BeagleBone/CRAMPS/tool.tbl b/configs/ARM/BeagleBone/CRAMPS/tool.tbl new file mode 100644 index 00000000000..c0b72de0652 --- /dev/null +++ b/configs/ARM/BeagleBone/CRAMPS/tool.tbl @@ -0,0 +1,4 @@ +T1 P1 D0.125000 Z+0.511000 ;1/8 end mill +T2 P2 D0.062500 Z+0.100000 ;1/16 end mill +T3 P3 D0.201000 Z+1.273000 ;#7 tap drill +T99999 P99999 Z+0.100000 ;big tool number diff --git a/configs/ARM/BeagleBone/PMDX-432/Device_Tree_Overlays/BB-BLACK-LCNC-K9-00A0.dts b/configs/ARM/BeagleBone/PMDX-432/Device_Tree_Overlays/BB-BLACK-LCNC-K9-00A0.dts new file mode 100644 index 00000000000..e8303cf35ff --- /dev/null +++ b/configs/ARM/BeagleBone/PMDX-432/Device_Tree_Overlays/BB-BLACK-LCNC-K9-00A0.dts @@ -0,0 +1,266 @@ +//This source file is provided under MIT License terms. +//Copyright (c) 2013 Calypso Ventures, Inc. +// +//Permission is hereby granted, free of charge, to any person obtaining a copy +//of this software and associated documentation files (the "Software"), to deal +//in the Software without restriction, including without limitation the rights +//to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +//copies of the Software, and to permit persons to whom the Software is +//furnished to do so, subject to the following conditions: +// +//The above copyright notice and this permission notice shall be included in +//all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +//THE SOFTWARE. + +/dts-v1/; +/plugin/; + +/ { + compatible = "ti,beaglebone", "ti,beaglebone-black"; + + /* identification */ + part-number = "BB-LCNC-K9"; + version = "00A0"; + + /* state the resources this cape uses */ + exclusive-use = + /* the pin header uses */ +/* "J8.3", gpio1_6 */ +/* "J8.4", gpio1_7 */ +/* "J8.5", gpio1_2 */ +/* "J8.6", gpio1_3 */ + "J8.7", /* gpio2_2 */ + "J8.8", /* gpio2_3 */ + "J8.9", /* gpio2_5 */ + "J8.10", /* gpio2_4 */ + "J8.11", /* gpio1_13 */ + "J8.12", /* gpio1_12 */ + "J8.13", /* gpio0_23 */ + "J8.14", /* gpio0_26 */ + "J8.15", /* gpio1_15 */ + "J8.16", /* gpio1_14 */ + "J8.17", /* gpio0_27 */ + "J8.18", /* gpio2_1 */ + "J8.19", /* gpio0_22 */ +/* "J8.20", gpio1_31 */ +/* "J8.21", gpio1_30 */ +/* "J8.22", gpio1_5 */ +/* "J8.23", gpio1_4 */ +/* "J8.24", gpio1_1 */ +/* "J8.25", gpio1_0 */ + "J8.26", /* gpio1_29 */ +/* "J8.27", gpio2_22 */ +/* "J8.28", gpio2_24 */ +/* "J8.29", gpio2_23 */ +/* "J8.30", gpio2_25 */ +/* "J8.31", gpio0_10 */ +/* "J8.32", gpio0_11 */ +/* "J8.33", gpio0_9 */ +/* "J8.34", gpio2_17 */ +/* "J8.35", gpio0_8 */ +/* "J8.36", gpio2_16 */ +/* "J8.37", gpio2_14 */ +/* "J8.38", gpio2_15 */ +/* "J8.39", gpio2_12 */ +/* "J8.40", gpio2_13 */ +/* "J8.41", gpio2_10 */ +/* "J8.42", gpio2_11 */ +/* "J8.43", gpio2_8 */ +/* "J8.44", gpio2_9 */ +/* "J8.45", gpio2_6 */ +/* "J8.46", gpio2_7 */ + + "J9.11", /* gpio0_30 */ + "J9.12", /* gpio1_28 */ + "J9.13", /* gpio0_31 */ + "J9.14", /* gpio1_18 */ + "J9.15", /* gpio1_16 */ + "J9.16", /* gpio1_19 */ + "J9.17", /* gpio0_5 */ + "J9.18", /* gpio0_4 */ +/* "J9.19", gpio0_13 */ +/* "J9.20", gpio0_12 */ + "J9.21", /* gpio0_3 */ + "J9.22", /* gpio0_2 */ + "J9.23", /* gpio1_17 */ + "J9.24", /* gpio0_15 */ + "J9.25", /* gpio3_21 */ + "J9.26", /* gpio0_14 */ + "J9.27", /* gpio3_19 */ + "J9.28", /* gpio3_17 */ + "J9.29", /* gpio3_15 */ + "J9.30", /* gpio3_16 */ + "J9.31", /* gpio3_14 */ + "J9.41", /* gpio3_20 */ + "J9.42", /* gpio3_18 */ + + /* the hardware IP uses */ +/* "gpio1_6", */ +/* "gpio1_7", */ +/* "gpio1_2", */ +/* "gpio1_3", */ + "gpio2_2", + "gpio2_3", + "gpio2_5", + "gpio2_4", + "gpio1_13", + "gpio1_12", + "gpio0_23", + "gpio0_26", + "gpio1_15", + "gpio1_14", + "gpio0_27", + "gpio2_1", + "gpio0_22", +/* "gpio1_31", */ +/* "gpio1_30", */ +/* "gpio1_5", */ +/* "gpio1_4", */ +/* "gpio1_1", */ +/* "gpio1_0", */ + "gpio1_29", +/* "gpio2_22", */ +/* "gpio2_24", */ +/* "gpio2_23", */ +/* "gpio2_25", */ +/* "gpio0_10", */ +/* "gpio0_11", */ +/* "gpio0_9", */ +/* "gpio2_17", */ +/* "gpio0_8", */ +/* "gpio2_16", */ +/* "gpio2_14", */ +/* "gpio2_15", */ +/* "gpio2_12", */ +/* "gpio2_13", */ +/* "gpio2_10", */ +/* "gpio2_11", */ +/* "gpio2_8", */ +/* "gpio2_9", */ +/* "gpio2_6", */ +/* "gpio2_7", */ + + "gpio0_30", + "gpio1_28", + "gpio0_31", + "gpio1_18", + "gpio1_16", + "gpio1_19", + "gpio0_5", + "gpio0_4", +/* "gpio0_13", */ +/* "gpio0_12", */ + "gpio0_3", + "gpio0_2", + "gpio1_17", + "gpio0_15", + "gpio3_21", + "gpio0_14", + "gpio3_19", + "gpio3_17", + "gpio3_15", + "gpio3_16", + "gpio3_14", + "gpio3_20", + "gpio3_18", + + "pru0"; + + fragment@0 { + target = <&am33xx_pinmux>; + __overlay__ { + + K9_gpio_pins: K9_gpio_pins { + pinctrl-single,pins = < +/* 0x018 mmc J8.3 gpio1_6 */ +/* 0x01C mmc J8.4 gpio1_7 */ +/* 0x008 mmc J8.5 gpio1_2 */ +/* 0x00C mmc J8.6 gpio1_3 */ + 0x090 0x3F /* J8.7 gpio2_2 */ + 0x094 0x3F /* J8.8 gpio2_3 */ + 0x09C 0x3F /* J8.9 gpio2_5 */ + 0x098 0x3F /* J8.10 gpio2_4 */ + 0x034 0x3F /* J8.11 gpio1_13 */ + 0x030 0x3F /* J8.12 gpio1_12 */ + 0x024 0x3F /* J8.13 gpio0_23 */ + 0x028 0x3F /* J8.14 gpio0_26 */ + 0x03C 0x3F /* J8.15 gpio1_15 */ + 0x038 0x3F /* J8.16 gpio1_14 */ + 0x02C 0x3F /* J8.17 gpio0_27 */ + 0x08C 0x3F /* J8.18 gpio2_1 */ + 0x020 0x3F /* J8.19 gpio0_22 */ +/* 0x084 mmc J8.20 gpio1_31 */ +/* 0x080 mmc J8.21 gpio1_30 */ +/* 0x014 mmc J8.22 gpio1_5 */ +/* 0x010 mmc J8.23 gpio1_4 */ +/* 0x004 mmc J8.24 gpio1_1 */ +/* 0x000 mmc J8.25 gpio1_0 */ + 0x07C 0x3F /* J8.26 gpio1_29 */ +/* 0x0E0 0x3F J8.27 gpio2_22 */ +/* 0x0E8 0x3F J8.28 gpio2_24 */ +/* 0x0E4 0x3F J8.29 gpio2_23 */ +/* 0x0EC 0x3F J8.30 gpio2_25 */ +/* 0x0D8 0x3F J8.31 gpio0_10 */ +/* 0x0DC 0x3F J8.32 gpio0_11 */ +/* 0x0D4 0x3F J8.33 gpio0_9 */ +/* 0x0CC 0x3F J8.34 gpio2_17 */ +/* 0x0D0 0x3F J8.35 gpio0_8 */ +/* 0x0C8 0x3F J8.36 gpio2_16 */ +/* 0x0C0 0x3F J8.37 gpio2_14 */ +/* 0x0C4 ??? J8.38 gpio2_15 */ +/* 0x0B8 0x3F J8.39 gpio2_12 */ +/* 0x0BC 0x3F J8.40 gpio2_13 */ +/* 0x0B0 0x3F J8.41 gpio2_10 */ +/* 0x0B4 0x3F J8.42 gpio2_11 */ +/* 0x0A8 0x3F J8.43 gpio2_8 */ +/* 0x0AC 0x3F J8.44 gpio2_9 */ +/* 0x0A0 0x3F J8.45 gpio2_6 */ +/* 0x0A4 0x3F J8.46 gpio2_7 */ + + 0x070 0x3F /* J9.11 gpio0_30 */ + 0x078 0x3F /* J9.12 gpio1_28 */ + 0x074 0x3F /* J9.13 gpio0_31 */ + 0x048 0x3F /* J9.14 gpio1_18 */ + 0x040 0x3F /* J9.15 gpio1_16 */ + 0x04C 0x3F /* J9.16 gpio1_19 */ + 0x15C 0x3F /* J9.17 gpio0_5 */ + 0x158 0x3F /* J9.18 gpio0_4 */ +/* 0x17C N/C J9.19 gpio0_13 */ +/* 0x178 N/C J9.20 gpio0_12 */ + 0x154 0x3F /* J9.21 gpio0_3 */ + 0x150 0x3F /* J9.22 gpio0_2 */ + 0x044 0x3F /* J9.23 gpio1_17 */ + 0x184 0x3F /* J9.24 gpio0_15 */ + 0x1AC 0x3F /* J9.25 gpio3_21 */ + 0x180 0x3F /* J9.26 gpio0_14 */ + 0x1A4 0x3F /* J9.27 gpio3_19 */ + 0x19C 0x3F /* J9.28 gpio3_17 */ + 0x194 0x3F /* J9.29 gpio3_15 */ + 0x198 0x3F /* J9.30 gpio3_16 */ + 0x190 0x3F /* J9.31 gpio3_14 */ + 0x1A8 0x3F /* J9.41 gpio3_20 */ + 0x1A0 0x3F /* J9.42 gpio3_18 */ + >; + }; + }; + }; + + fragment@1 { + target = <&pruss>; + __overlay__ { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&K9_gpio_pins>; + + }; + }; +}; + diff --git a/configs/ARM/BeagleBone/PMDX-432/Device_Tree_Overlays/dtc.sh b/configs/ARM/BeagleBone/PMDX-432/Device_Tree_Overlays/dtc.sh new file mode 100755 index 00000000000..75c6630aa14 --- /dev/null +++ b/configs/ARM/BeagleBone/PMDX-432/Device_Tree_Overlays/dtc.sh @@ -0,0 +1,25 @@ +#!/bin/sh +#This source file is provided under MIT License terms. +#Copyright (c) 2013 Calypso Ventures, Inc. +# +#Permission is hereby granted, free of charge, to any person obtaining a copy +#of this software and associated documentation files (the "Software"), to deal +#in the Software without restriction, including without limitation the rights +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +#copies of the Software, and to permit persons to whom the Software is +#furnished to do so, subject to the following conditions: +# +#The above copyright notice and this permission notice shall be included in +#all copies or substantial portions of the Software. +# +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +#THE SOFTWARE. + +dtc -O dtb -o BB-BLACK-LCNC-K9-00A0.dtbo -b 0 -@ BB-BLACK-LCNC-K9-00A0.dts && \ +cp BB-BLACK-LCNC-K9-00A0.dtbo /lib/firmware/ + diff --git a/configs/ARM/BeagleBone/PMDX-432/Shapeoko/GPIO-Driven.ini b/configs/ARM/BeagleBone/PMDX-432/Shapeoko/GPIO-Driven.ini new file mode 100644 index 00000000000..de9345f4f3c --- /dev/null +++ b/configs/ARM/BeagleBone/PMDX-432/Shapeoko/GPIO-Driven.ini @@ -0,0 +1,353 @@ +########### +# +# NOTE: this is the Shapeoko start up file for BBB using GPIO for all pins +# +#This source file is provided under MIT License terms. +#Copyright (c) 2013 Calypso Ventures, Inc. +# +#Permission is hereby granted, free of charge, to any person obtaining a copy +#of this software and associated documentation files (the "Software"), to deal +#in the Software without restriction, including without limitation the rights +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +#copies of the Software, and to permit persons to whom the Software is +#furnished to do so, subject to the following conditions: +# +#The above copyright notice and this permission notice shall be included in +#all copies or substantial portions of the Software. +# +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +#THE SOFTWARE. +########### + +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=4 num_pwmgens=3 +PRUBIN=xenomai/pru_generic.bin + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = K9.GPIO.Shapeoko + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +DISPLAY = axis + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.200 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = pru-stepper.var + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = Shapeoko.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + + + + +[TRAJ] + +AXES = 4 +COORDINATES = X Y Z A +LINEAR_UNITS = mm + +ANGULAR_UNITS = degree + +MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 + +MAX_LINEAR_VELOCITY = 300.0 +DEFAULT_VELOCITY = 100.0 + +CYCLE_TIME = 0.010 +POSITION_FILE = position.txt +NO_FORCE_HOMING = 1 + + + +[AXIS_0] + +# +# Step timing used in Shapeoko arduino electronics was 30 us steplen + 30 us stepspace +# That gave a 60 us step period = 16.7 KHz step freq +# +# X axis drive mechanics are: +# stepper = 200 step/rev +# 8 usteps/step (K9 Pololu switch setting for all axes) +# 18 tooth/rev (the belt drive pulley) +# 0.08 inch/tooth belt pitch (MXL belts) +# +# so Scale = (200*8 / 18*0.08 ) / 25.4 mm/in = 43.74 usteps/mm +# +# This gives a max velocity of 60 usec/ustep * 43.74 usteps/mm = 2.624 msec/mm => 381 mm/sec +# + + +TYPE = LINEAR +MAX_VELOCITY = 400.0 +# Set Stepgen max vel 20% higher than the axis +STEPGEN_MAX_VEL = 480.0 + +MAX_ACCELERATION = 3000.0 +# Set Stepgen max accel 10% higher than the axis +STEPGEN_MAX_ACC = 3300.0 + +BACKLASH = 0.000 + +SCALE = 43.74 + +#MIN_LIMIT = -1.0 +#MAX_LIMIT = 185.0 + +FERROR = 1.0 +MIN_FERROR = 0.10 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + + + +[AXIS_1] +# +# Y axis drive mechanics are: +# stepper = 200 step/rev +# 8 usteps/step (K9 Pololu switch setting for all axes) +# 18 tooth/rev (the belt drive pulley) +# 0.08 inch/tooth belt pitch (MXL belts) +# +# so Scale = (200*8 / 18*0.08 ) / 25.4 mm/in = 43.74 usteps/mm +# +# The Arduinco controlthus gave a max velocity of 60 usec/ustep * 43.74 usteps/mm = 2.624 msec/mm => 381 mm/sec +# + +TYPE = LINEAR +MAX_VELOCITY = 400.0 +# Set Stepgen max vel 20% higher than the axis +STEPGEN_MAX_VEL = 480.0 + +MAX_ACCELERATION = 3000.0 +# Set Stepgen max accel 10% higher than the axis +STEPGEN_MAX_ACC = 3300.0 + +BACKLASH = 0.000 + +SCALE = 43.74 + +#MIN_LIMIT = -200.0 +#MAX_LIMIT = 1.0 + +FERROR = 1.0 +MIN_FERROR = 0.10 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_2] +# +# Z axis drive mechanics are: +# stepper = 200 step/rev +# 8 usteps/step (K9 Pololu switch setting for all axes) +# 1.25 mm/rev led screw +# +# so Scale = (200*8 / 1.25) = 1280 usteps/mm +# + +TYPE = LINEAR +MAX_VELOCITY = 15.0 +# Set Stepgen max vel 20% higher than the axis +STEPGEN_MAX_VEL = 18.0 + +MAX_ACCELERATION = 150.0 +# Set Stepgen max accel 10% higher than the axis +STEPGEN_MAX_ACC = 165.0 + +BACKLASH = 0.000 + +SCALE = 1280 + +MIN_LIMIT = -100.0 +MAX_LIMIT = 1.0 + +FERROR = 1.0 +MIN_FERROR = 0.10 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + +[AXIS_3] +# TBD set up as a copy of axis_2 just to have a way to test the 4th axis driver on the K9 + +TYPE = LINEAR +MAX_VELOCITY = 15.0 +# Set Stepgen max vel 20% higher than the axis +STEPGEN_MAX_VEL = 18.0 + +MAX_ACCELERATION = 150.0 +# Set Stepgen max accel 10% higher than the axis +STEPGEN_MAX_ACC = 165.0 + +BACKLASH = 0.000 + +SCALE = 1280 + +MIN_LIMIT = -100.0 +MAX_LIMIT = 100.0 + +FERROR = 1.0 +MIN_FERROR = 0.10 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl + diff --git a/configs/ARM/BeagleBone/PMDX-432/Shapeoko/PRU-Driven.ini b/configs/ARM/BeagleBone/PMDX-432/Shapeoko/PRU-Driven.ini new file mode 100644 index 00000000000..86e86f5140c --- /dev/null +++ b/configs/ARM/BeagleBone/PMDX-432/Shapeoko/PRU-Driven.ini @@ -0,0 +1,354 @@ +########### +# +# NOTE: this is intended to eventually be the Shapeoko start up file for BBB using PRUs to drive S&D +# This is a work in progress and right now it is the same as the GPIO ini file\ +# +########### +#This source file is provided under MIT License terms. +#Copyright (c) 2013 Calypso Ventures, Inc. +# +#Permission is hereby granted, free of charge, to any person obtaining a copy +#of this software and associated documentation files (the "Software"), to deal +#in the Software without restriction, including without limitation the rights +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +#copies of the Software, and to permit persons to whom the Software is +#furnished to do so, subject to the following conditions: +# +#The above copyright notice and this permission notice shall be included in +#all copies or substantial portions of the Software. +# +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +#THE SOFTWARE. + +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=4 num_pwmgens=3 +PRUBIN=xenomai/pru_generic.bin + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = K9.PRU.Shapeoko + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +DISPLAY = axis + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.200 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = pru-stepper.var + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = Shapeoko.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + + + + +[TRAJ] + +AXES = 4 +COORDINATES = X Y Z A +LINEAR_UNITS = mm + +ANGULAR_UNITS = degree + +MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 + +MAX_LINEAR_VELOCITY = 300.0 +DEFAULT_VELOCITY = 100.0 + +CYCLE_TIME = 0.010 +POSITION_FILE = position.txt +NO_FORCE_HOMING = 1 + + + +[AXIS_0] + +# +# Step timing used in Shapeoko arduino electronics was 30 us steplen + 30 us stepspace +# That gave a 60 us step period = 16.7 KHz step freq +# +# X axis drive mechanics are: +# stepper = 200 step/rev +# 8 usteps/step (K9 Pololu switch setting for all axes) +# 18 tooth/rev (the belt drive pulley) +# 0.08 inch/tooth belt pitch (MXL belts) +# +# so Scale = (200*8 / 18*0.08 ) / 25.4 mm/in = 43.74 usteps/mm +# +# This gives a max velocity of 60 usec/ustep * 43.74 usteps/mm = 2.624 msec/mm => 381 mm/sec +# + + +TYPE = LINEAR +MAX_VELOCITY = 400.0 +# Set Stepgen max vel 20% higher than the axis +STEPGEN_MAX_VEL = 480.0 + +MAX_ACCELERATION = 3000.0 +# Set Stepgen max accel 10% higher than the axis +STEPGEN_MAX_ACC = 3300.0 + +BACKLASH = 0.000 + +SCALE = 43.74 + +#MIN_LIMIT = -1.0 +#MAX_LIMIT = 185.0 + +FERROR = 1.0 +MIN_FERROR = 0.10 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + + + +[AXIS_1] +# +# Y axis drive mechanics are: +# stepper = 200 step/rev +# 8 usteps/step (K9 Pololu switch setting for all axes) +# 18 tooth/rev (the belt drive pulley) +# 0.08 inch/tooth belt pitch (MXL belts) +# +# so Scale = (200*8 / 18*0.08 ) / 25.4 mm/in = 43.74 usteps/mm +# +# The Arduinco controlthus gave a max velocity of 60 usec/ustep * 43.74 usteps/mm = 2.624 msec/mm => 381 mm/sec +# + +TYPE = LINEAR +MAX_VELOCITY = 400.0 +# Set Stepgen max vel 20% higher than the axis +STEPGEN_MAX_VEL = 480.0 + +MAX_ACCELERATION = 3000.0 +# Set Stepgen max accel 10% higher than the axis +STEPGEN_MAX_ACC = 3300.0 + +BACKLASH = 0.000 + +SCALE = 43.74 + +#MIN_LIMIT = -200.0 +#MAX_LIMIT = 1.0 + +FERROR = 1.0 +MIN_FERROR = 0.10 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_2] +# +# Z axis drive mechanics are: +# stepper = 200 step/rev +# 8 usteps/step (K9 Pololu switch setting for all axes) +# 1.25 mm/rev led screw +# +# so Scale = (200*8 / 1.25) = 1280 usteps/mm +# + +TYPE = LINEAR +MAX_VELOCITY = 15.0 +# Set Stepgen max vel 20% higher than the axis +STEPGEN_MAX_VEL = 18.0 + +MAX_ACCELERATION = 150.0 +# Set Stepgen max accel 10% higher than the axis +STEPGEN_MAX_ACC = 165.0 + +BACKLASH = 0.000 + +SCALE = 1280 + +MIN_LIMIT = -100.0 +MAX_LIMIT = 1.0 + +FERROR = 1.0 +MIN_FERROR = 0.10 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + +[AXIS_3] +# TBD set up as a copy of axis_2 just to have a way to test the 4th axis driver on the K9 + +TYPE = LINEAR +MAX_VELOCITY = 15.0 +# Set Stepgen max vel 20% higher than the axis +STEPGEN_MAX_VEL = 18.0 + +MAX_ACCELERATION = 150.0 +# Set Stepgen max accel 10% higher than the axis +STEPGEN_MAX_ACC = 165.0 + +BACKLASH = 0.000 + +SCALE = 1280 + +MIN_LIMIT = -100.0 +MAX_LIMIT = 100.0 + +FERROR = 1.0 +MIN_FERROR = 0.10 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl + diff --git a/configs/ARM/BeagleBone/PMDX-432/Shapeoko/README b/configs/ARM/BeagleBone/PMDX-432/Shapeoko/README new file mode 100644 index 00000000000..6e7cc0f1c64 --- /dev/null +++ b/configs/ARM/BeagleBone/PMDX-432/Shapeoko/README @@ -0,0 +1,26 @@ +Configurations for the K9 board running a Shapeoko Router +Initial Versions: 4 Aug 2013 + +This is an example configuration for the BeagleBone platform, running with the PMDX-432 K9 CNC I/O Cape. +Configuration assumes the BeagleBone Black was booted with HDMIN (HDMI w/o audio) for the base device tree (K9 uses the Audio pins on the BBB). + +Ther are two configs for this machine: + +GPIO-Driven: All BBB GPIO, no direct PRU IO access. + +PRU-Driven: BBB direct PRU driving of S&D signals; the rest is GPIO. + +The K9 is configured for the Shapeoko mechanical kit plus the Inventable's stepper motors being driven from the on-board Pololu stepper drivers. +This configuration is for a Shapeoko with + +Spindle: on/off rotary spindle. + +Home switches: none + +Limit Switches: none + + +This is a 4 axis + spindle subset of the K9 IO. + + + diff --git a/configs/ARM/BeagleBone/PMDX-432/Shapeoko/Shapeoko.hal b/configs/ARM/BeagleBone/PMDX-432/Shapeoko/Shapeoko.hal new file mode 100644 index 00000000000..f91d589ec71 --- /dev/null +++ b/configs/ARM/BeagleBone/PMDX-432/Shapeoko/Shapeoko.hal @@ -0,0 +1,275 @@ +# ####################################### +# +# HAL file for BeagleBone + K9 with 4 steppers +# +#This source file is provided under MIT License terms. +#Copyright (c) 2013 Calypso Ventures, Inc. +# +#Permission is hereby granted, free of charge, to any person obtaining a copy +#of this software and associated documentation files (the "Software"), to deal +#in the Software without restriction, including without limitation the rights +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +#copies of the Software, and to permit persons to whom the Software is +#furnished to do so, subject to the following conditions: +# +#The above copyright notice and this permission notice shall be included in +#all copies or substantial portions of the Software. +# +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +#THE SOFTWARE. +# ######################################## + +# Launch the setup script to make sure hardware setup looks good +loadusr -w ./setup.Shapeoko.sh + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +loadrt trivkins + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + + +# load low-level drivers +# uncertain about P9-17 to 20, these are I2C channels - are these needed if we want to use BB-IO to talk to them? +loadrt hal_bb_gpio input_pins=107,108,109,110,111,112,115,116,126,211,212,214,215,216,222,223,224,226 output_pins=113,114,117,118,119,127,129,134,136,139,140,141,142,143,144,145,146,213,217,218,221 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg + + +# Python user-mode HAL module to read ADC value and generate a thermostat output for PWM +#loadusr -W ./bbio_temp + +# ################################################ +# THREADS +# ################################################ + +addf hpg.capture-position servo-thread +addf bb_gpio.read servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +# revel in the free time here from not having to run PID +addf hpg.update servo-thread +addf bb_gpio.write servo-thread + + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + + +# ################ +# X [0] Axis +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hpg.stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => hpg.stepgen.00.position-cmd + +net motor.00.pos-fb <= hpg.stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN +setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE + +setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +#setp hpg.stepgen.00.step_type 0 +# P9.31 GPIO3_14 +setp hpg.stepgen.00.steppin 0x8E +# P9.29 GPIO3_15 +setp hpg.stepgen.00.dirpin 0x8F + + +# ################ +# Y [1] Axis +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hpg.stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => hpg.stepgen.01.position-cmd + +net motor.01.pos-fb <= hpg.stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN +setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE + +setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +#setp hpg.stepgen.01.step_type 0 +# P9.30 GPIO3_16 +setp hpg.stepgen.01.steppin 0x90 +# P9.28 GPIO3_17 +setp hpg.stepgen.01.dirpin 0x91 + + +# ################ +# Z [2] Axis +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hpg.stepgen.02.enable + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => hpg.stepgen.02.position-cmd + +net motor.02.pos-fb <= hpg.stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN +setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hpg.stepgen.02.position-scale [AXIS_2]SCALE + +setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +#setp hpg.stepgen.02.step_type 0 +# P9.42 GPIO3_18 / GPIO0_7 +setp hpg.stepgen.02.steppin 0x92 +# P9.27 GPIO3_19 +setp hpg.stepgen.02.dirpin 0x93 + + +# ################ +# A [3] Axis (Extruder) +# ################ + +# axis enable chain +newsig emcmot.03.enable bit +sets emcmot.03.enable FALSE + +net emcmot.03.enable <= axis.3.amp-enable-out +net emcmot.03.enable => hpg.stepgen.03.enable + + +# position command and feedback +net emcmot.03.pos-cmd <= axis.3.motor-pos-cmd +net emcmot.03.pos-cmd => hpg.stepgen.03.position-cmd + +net motor.03.pos-fb <= hpg.stepgen.03.position-fb +net motor.03.pos-fb => axis.3.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP +setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD + +setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN +setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE + +setp hpg.stepgen.03.position-scale [AXIS_3]SCALE + +setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL +setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC + +#setp hpg.stepgen.03.step_type 0 +# P9.41 GPIO3_20 / GPIO0_20 +setp hpg.stepgen.03.steppin 0x94 +# P9.25 GPIO3_21 +setp hpg.stepgen.03.dirpin 0x95 + + +# ################################################## +# Standard I/O Block - EStop, Etc +# ################################################## + +# create a signal for the estop loopback +net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# Axis enable signals +# FIXME: These need to be inverted! +#net emcmot.00.enable => bb_gpio.p8.out-41 +#net emcmot.01.enable => bb_gpio.p8.out-40 +#net emcmot.02.enable => bb_gpio.p8.out-28 +#net emcmot.03.enable => bb_gpio.p8.out-20 +#setp bb_gpio.p8.out-41 0 +#setp bb_gpio.p8.out-40 0 +#setp bb_gpio.p8.out-28 0 +#setp bb_gpio.p8.out-20 0 + +# Machine power +#net estop-loop => bb_gpio.p8.out-03 +#setp bb_gpio.p8.out-05 0 + + +# ################################################## +# PWM Signals +# ################################################## + +#setp hpg.pwmgen.00.pwm_period 10000000 + +# J2 PRU1.out1 +#setp hpg.pwmgen.00.out.00.pin 0xA1 +#setp hpg.pwmgen.00.out.00.enable 1 +#setp hpg.pwmgen.00.out.00.value 0.2 + +# J3 PRU1.out0 +#setp hpg.pwmgen.00.out.01.pin 0xA0 +#setp hpg.pwmgen.00.out.01.enable 1 +#setp hpg.pwmgen.00.out.01.value 0.2 + +# J4 GPIO2.16 +#setp hpg.pwmgen.00.out.02.pin 0x50 +#setp hpg.pwmgen.00.out.02.enable 1 +#setp hpg.pwmgen.00.out.02.value 0.2 + +#setp bbio_temp.set 0x480 +#net thermostat <= bbio_temp.temp hpg.pwmgen.00.out.00.value +#net thermostat => hpg.pwmgen.00.out.00.value diff --git a/configs/ARM/BeagleBone/PMDX-432/Shapeoko/setup.Shapeoko.sh b/configs/ARM/BeagleBone/PMDX-432/Shapeoko/setup.Shapeoko.sh new file mode 100755 index 00000000000..f311be9eee5 --- /dev/null +++ b/configs/ARM/BeagleBone/PMDX-432/Shapeoko/setup.Shapeoko.sh @@ -0,0 +1,138 @@ +#!/bin/bash +#This source file is provided under MIT License terms. +#Copyright (c) 2013 Calypso Ventures, Inc. +# +#Permission is hereby granted, free of charge, to any person obtaining a copy +#of this software and associated documentation files (the "Software"), to deal +#in the Software without restriction, including without limitation the rights +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +#copies of the Software, and to permit persons to whom the Software is +#furnished to do so, subject to the following conditions: +# +#The above copyright notice and this permission notice shall be included in +#all copies or substantial portions of the Software. +# +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +#THE SOFTWARE. + +dtbo_err () { + echo "Error loading device tree overlay file: $DTBO" >&2 + exit 1 +} + +pin_err () { + echo "Error exporting pin:$PIN" >&2 + exit 1 +} + +dir_err () { + echo "Error setting direction:$DIR on pin:$PIN" >&2 + exit 1 +} + +SLOTS=/sys/devices/bone_capemgr.*/slots + +# Make sure required device tree overlay(s) are loaded +for DTBO in BB-BLACK-LCNC-K9 ; do + + if grep -q $DTBO $SLOTS ; then + echo $DTBO overlay found + else + echo Loading $DTBO overlay + sudo -A su -c "echo $DTBO > $SLOTS" || dtbo_err + sleep 1 + fi +done; + +if [ ! -r /sys/class/uio/uio0 ] ; then + echo PRU control files not found in /sys/class/uio/uio0 >&2 + exit 1; +fi + +# Export GPIO pins +# This really only needs to be done to enable the low-level clocks for the GPIO +# modules. There is probably a better way to do this... +while read PIN DIR JUNK ; do + case "$PIN" in + ""|\#*) + continue ;; + *) + [ -r /sys/class/gpio/gpio$PIN ] && continue + sudo -A su -c "echo $PIN > /sys/class/gpio/export" || pin_err + sudo -A su -c "echo $DIR > /sys/class/gpio/gpio$PIN/direction" || dir_err + ;; + esac + +done <<- EOF + 66 in # J8.7 gpio2_2 + 67 in # J8.8 gpio2_3 + 69 in # J8.9 gpio2_5 + 67 in # J8.10 gpio2_4 + 45 in # J8.11 gpio1_13 + 44 in # J8.12 gpio1_12 + 23 out # J8.13 gpio0_23 + 26 out # J8.14 gpio0_26 + 47 in # J8.15 gpio1_15 + 46 in # J8.16 gpio1_14 + 27 out # J8.17 gpio0_27 + 65 out # J8.18 gpio2_1 + 22 out # J8.19 gpio0_22 +# eMMC pins J8.20 +# thru +# J8.25 + + 61 in # J8.26 gpio1_29 + +# Start HDMI pins +# 86 out # J8.27 gpio2_22 +# 88 in # J8.28 gpio2_24 +# 87 out # J8.29 gpio2_23 +# 89 in # J8.30 gpio2_25 +# 10 in # J8.31 gpio0_10 +# 11 in # J8.32 gpio0_11 +# 9 in # J8.33 gpio0_9 +# 81 out # J8.34 gpio2_17 +# 9 in # J8.35 gpio0_8 +# 80 out # J8.36 gpio2_16 +# 78 in # J8.37 gpio2_14 +# 76 out # J8.39 gpio2_12 +# 77 out # J8.40 gpio2_13 +# 74 out # J8.41 gpio2_10 +# 75 out # J8.42 gpio2_11 +# 72 out # J8.43 gpio2_8 +# 73 out # J8.44 gpio2_9 +# 70 out # J8.45 gpio2_6 +# 71 out # J8.46 gpio2_7 +# end HDMI pins + + 30 in # J9.11 gpio0_30 + 60 in # J9.12 gpio1_28 + 31 out # J9.13 gpio0_31 + 50 in # J9.14 gpio1_18 + 48 in # J9.15 gpio1_16 + 51 in # J9.16 gpio1_19 + 5 out # J9.17 gpio0_5 + 4 out # J9.18 gpio0_4 + 3 out # J9.21 gpio0_3 + 2 in # J9.22 gpio0_2 + 49 in # J9.23 gpio1_17 + 15 in # J9.24 gpio0_15 + 117 out # J9.25 gpio3_21 + 14 in # J9.26 gpio0_14 + 115 out # J9.27 gpio3_19 + 113 out # J9.28 gpio3_17 K9 use of BBB HDMI Audio pin + 111 out # J9.29 gpio3_15 K9 use of BBB HDMI Audio pin + 112 out # J9.30 gpio3_16 + 110 out # J9.31 gpio3_14 K9 use of BBB HDMI Audio pin + + 20 in # J9.41 gpio0_20 set = in => other signal on pin used + 116 out # J9.41 gpio3_20 + 7 in # J9.42 gpio0_7 set = in => other signal on pin used + 114 out # J9.42 gpio3_18 +EOF + diff --git a/configs/ARM/BeagleBone/PMDX-432/Shapeoko/temp/LCNC-BBB-K9S-00A0.dts b/configs/ARM/BeagleBone/PMDX-432/Shapeoko/temp/LCNC-BBB-K9S-00A0.dts new file mode 100644 index 00000000000..868e4ae135b --- /dev/null +++ b/configs/ARM/BeagleBone/PMDX-432/Shapeoko/temp/LCNC-BBB-K9S-00A0.dts @@ -0,0 +1,266 @@ +//This source file is provided under MIT License terms. +//Copyright (c) 2013 Calypso Ventures, Inc. +// +//Permission is hereby granted, free of charge, to any person obtaining a copy +//of this software and associated documentation files (the "Software"), to deal +//in the Software without restriction, including without limitation the rights +//to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +//copies of the Software, and to permit persons to whom the Software is +//furnished to do so, subject to the following conditions: +// +//The above copyright notice and this permission notice shall be included in +//all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +//THE SOFTWARE. + +/dts-v1/; +/plugin/; + +/ { + compatible = "ti,beaglebone", "ti,beaglebone-black"; + + /* identification */ + part-number = "BB-LCNC-K9Shapeoko"; + version = "00A0"; + + /* state the resources this cape uses */ + exclusive-use = + /* the pin header uses */ +/* "J8.3", gpio1_6 */ +/* "J8.4", gpio1_7 */ +/* "J8.5", gpio1_2 */ +/* "J8.6", gpio1_3 */ + "J8.7", /* gpio2_2 */ + "J8.8", /* gpio2_3 */ + "J8.9", /* gpio2_5 */ + "J8.10", /* gpio2_4 */ + "J8.11", /* gpio1_13 */ + "J8.12", /* gpio1_12 */ + "J8.13", /* gpio0_23 */ + "J8.14", /* gpio0_26 */ + "J8.15", /* gpio1_15 */ + "J8.16", /* gpio1_14 */ + "J8.17", /* gpio0_27 */ + "J8.18", /* gpio2_1 */ + "J8.19", /* gpio0_22 */ +/* "J8.20", gpio1_31 */ +/* "J8.21", gpio1_30 */ +/* "J8.22", gpio1_5 */ +/* "J8.23", gpio1_4 */ +/* "J8.24", gpio1_1 */ +/* "J8.25", gpio1_0 */ + "J8.26", /* gpio1_29 */ +/* "J8.27", gpio2_22 */ +/* "J8.28", gpio2_24 */ +/* "J8.29", gpio2_23 */ +/* "J8.30", gpio2_25 */ +/* "J8.31", gpio0_10 */ +/* "J8.32", gpio0_11 */ +/* "J8.33", gpio0_9 */ +/* "J8.34", gpio2_17 */ +/* "J8.35", gpio0_8 */ +/* "J8.36", gpio2_16 */ +/* "J8.37", gpio2_14 */ +/* "J8.38", gpio2_15 */ +/* "J8.39", gpio2_12 */ +/* "J8.40", gpio2_13 */ +/* "J8.41", gpio2_10 */ +/* "J8.42", gpio2_11 */ +/* "J8.43", gpio2_8 */ +/* "J8.44", gpio2_9 */ +/* "J8.45", gpio2_6 */ +/* "J8.46", gpio2_7 */ + + "J9.11", /* gpio0_30 */ + "J9.12", /* gpio1_28 */ + "J9.13", /* gpio0_31 */ + "J9.14", /* gpio1_18 */ + "J9.15", /* gpio1_16 */ + "J9.16", /* gpio1_19 */ + "J9.17", /* gpio0_5 */ + "J9.18", /* gpio0_4 */ +/* "J9.19", gpio0_13 */ +/* "J9.20", gpio0_12 */ + "J9.21", /* gpio0_3 */ + "J9.22", /* gpio0_2 */ + "J9.23", /* gpio1_17 */ + "J9.24", /* gpio0_15 */ + "J9.25", /* gpio3_21 */ + "J9.26", /* gpio0_14 */ + "J9.27", /* gpio3_19 */ + "J9.28", /* gpio3_17 */ + "J9.29", /* gpio3_15 */ + "J9.30", /* gpio3_16 */ + "J9.31", /* gpio3_14 */ + "J9.41", /* gpio3_20 */ + "J9.42", /* gpio3_18 */ + + /* the hardware IP uses */ +/* "gpio1_6", */ +/* "gpio1_7", */ +/* "gpio1_2", */ +/* "gpio1_3", */ + "gpio2_2", + "gpio2_3", + "gpio2_5", + "gpio2_4", + "gpio1_13", + "gpio1_12", + "gpio0_23", + "gpio0_26", + "gpio1_15", + "gpio1_14", + "gpio0_27", + "gpio2_1", + "gpio0_22", +/* "gpio1_31", */ +/* "gpio1_30", */ +/* "gpio1_5", */ +/* "gpio1_4", */ +/* "gpio1_1", */ +/* "gpio1_0", */ + "gpio1_29", +/* "gpio2_22", */ +/* "gpio2_24", */ +/* "gpio2_23", */ +/* "gpio2_25", */ +/* "gpio0_10", */ +/* "gpio0_11", */ +/* "gpio0_9", */ +/* "gpio2_17", */ +/* "gpio0_8", */ +/* "gpio2_16", */ +/* "gpio2_14", */ +/* "gpio2_15", */ +/* "gpio2_12", */ +/* "gpio2_13", */ +/* "gpio2_10", */ +/* "gpio2_11", */ +/* "gpio2_8", */ +/* "gpio2_9", */ +/* "gpio2_6", */ +/* "gpio2_7", */ + + "gpio0_30", + "gpio1_28", + "gpio0_31", + "gpio1_18", + "gpio1_16", + "gpio1_19", + "gpio0_5", + "gpio0_4", +/* "gpio0_13", */ +/* "gpio0_12", */ + "gpio0_3", + "gpio0_2", + "gpio1_17", + "gpio0_15", + "gpio3_21", + "gpio0_14", + "gpio3_19", + "gpio3_17", + "gpio3_15", + "gpio3_16", + "gpio3_14", + "gpio3_20", + "gpio3_18", + + "pru0"; + + fragment@0 { + target = <&am33xx_pinmux>; + __overlay__ { + + K9_gpio_pins: K9_gpio_pins { + pinctrl-single,pins = < +/* 0x018 mmc J8.3 gpio1_6 */ +/* 0x01C mmc J8.4 gpio1_7 */ +/* 0x008 mmc J8.5 gpio1_2 */ +/* 0x00C mmc J8.6 gpio1_3 */ + 0x090 0x3F /* J8.7 gpio2_2 */ + 0x094 0x3F /* J8.8 gpio2_3 */ + 0x09C 0x3F /* J8.9 gpio2_5 */ + 0x098 0x3F /* J8.10 gpio2_4 */ + 0x034 0x3F /* J8.11 gpio1_13 */ + 0x030 0x3F /* J8.12 gpio1_12 */ + 0x024 0x3F /* J8.13 gpio0_23 */ + 0x028 0x3F /* J8.14 gpio0_26 */ + 0x03C 0x3F /* J8.15 gpio1_15 */ + 0x038 0x3F /* J8.16 gpio1_14 */ + 0x02C 0x3F /* J8.17 gpio0_27 */ + 0x08C 0x3F /* J8.18 gpio2_1 */ + 0x020 0x3F /* J8.19 gpio0_22 */ +/* 0x084 mmc J8.20 gpio1_31 */ +/* 0x080 mmc J8.21 gpio1_30 */ +/* 0x014 mmc J8.22 gpio1_5 */ +/* 0x010 mmc J8.23 gpio1_4 */ +/* 0x004 mmc J8.24 gpio1_1 */ +/* 0x000 mmc J8.25 gpio1_0 */ + 0x07C 0x3F /* J8.26 gpio1_29 */ +/* 0x0E0 0x3F J8.27 gpio2_22 */ +/* 0x0E8 0x3F J8.28 gpio2_24 */ +/* 0x0E4 0x3F J8.29 gpio2_23 */ +/* 0x0EC 0x3F J8.30 gpio2_25 */ +/* 0x0D8 0x3F J8.31 gpio0_10 */ +/* 0x0DC 0x3F J8.32 gpio0_11 */ +/* 0x0D4 0x3F J8.33 gpio0_9 */ +/* 0x0CC 0x3F J8.34 gpio2_17 */ +/* 0x0D0 0x3F J8.35 gpio0_8 */ +/* 0x0C8 0x3F J8.36 gpio2_16 */ +/* 0x0C0 0x3F J8.37 gpio2_14 */ +/* 0x0C4 ??? J8.38 gpio2_15 */ +/* 0x0B8 0x3F J8.39 gpio2_12 */ +/* 0x0BC 0x3F J8.40 gpio2_13 */ +/* 0x0B0 0x3F J8.41 gpio2_10 */ +/* 0x0B4 0x3F J8.42 gpio2_11 */ +/* 0x0A8 0x3F J8.43 gpio2_8 */ +/* 0x0AC 0x3F J8.44 gpio2_9 */ +/* 0x0A0 0x3F J8.45 gpio2_6 */ +/* 0x0A4 0x3F J8.46 gpio2_7 */ + + 0x070 0x3F /* J9.11 gpio0_30 */ + 0x078 0x3F /* J9.12 gpio1_28 */ + 0x074 0x3F /* J9.13 gpio0_31 */ + 0x048 0x3F /* J9.14 gpio1_18 */ + 0x040 0x3F /* J9.15 gpio1_16 */ + 0x04C 0x3F /* J9.16 gpio1_19 */ + 0x15C 0x3F /* J9.17 gpio0_5 */ + 0x158 0x3F /* J9.18 gpio0_4 */ +/* 0x17C N/C J9.19 gpio0_13 */ +/* 0x178 N/C J9.20 gpio0_12 */ + 0x154 0x3F /* J9.21 gpio0_3 */ + 0x150 0x3F /* J9.22 gpio0_2 */ + 0x044 0x3F /* J9.23 gpio1_17 */ + 0x184 0x3F /* J9.24 gpio0_15 */ + 0x1AC 0x3F /* J9.25 gpio3_21 */ + 0x180 0x3F /* J9.26 gpio0_14 */ + 0x1A4 0x3F /* J9.27 gpio3_19 */ + 0x19C 0x3F /* J9.28 gpio3_17 */ + 0x194 0x3F /* J9.29 gpio3_15 */ + 0x198 0x3F /* J9.30 gpio3_16 */ + 0x190 0x3F /* J9.31 gpio3_14 */ + 0x1A8 0x3F /* J9.41 gpio3_20 */ + 0x1A0 0x3F /* J9.42 gpio3_18 */ + >; + }; + }; + }; + + fragment@1 { + target = <&pruss>; + __overlay__ { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&K9_gpio_pins>; + + }; + }; +}; + diff --git a/configs/ARM/BeagleBone/PMDX-432/Shapeoko/temp/dtc.sh b/configs/ARM/BeagleBone/PMDX-432/Shapeoko/temp/dtc.sh new file mode 100755 index 00000000000..c3e77421b5b --- /dev/null +++ b/configs/ARM/BeagleBone/PMDX-432/Shapeoko/temp/dtc.sh @@ -0,0 +1,25 @@ +#!/bin/sh +#This source file is provided under MIT License terms. +#Copyright (c) 2013 Calypso Ventures, Inc. +# +#Permission is hereby granted, free of charge, to any person obtaining a copy +#of this software and associated documentation files (the "Software"), to deal +#in the Software without restriction, including without limitation the rights +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +#copies of the Software, and to permit persons to whom the Software is +#furnished to do so, subject to the following conditions: +# +#The above copyright notice and this permission notice shall be included in +#all copies or substantial portions of the Software. +# +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +#THE SOFTWARE. + +dtc -O dtb -o LCNC-BBB-K9S-00A0.dtbo -b 0 -@ LCNC-BBB-K9S-00A0.dts && \ +cp LCNC-BBB-K9S-00A0.dtbo /lib/firmware/ + diff --git a/configs/ARM/BeagleBone/PMDX-432/Shapeoko/tool.tbl b/configs/ARM/BeagleBone/PMDX-432/Shapeoko/tool.tbl new file mode 100644 index 00000000000..c0b72de0652 --- /dev/null +++ b/configs/ARM/BeagleBone/PMDX-432/Shapeoko/tool.tbl @@ -0,0 +1,4 @@ +T1 P1 D0.125000 Z+0.511000 ;1/8 end mill +T2 P2 D0.062500 Z+0.100000 ;1/16 end mill +T3 P3 D0.201000 Z+1.273000 ;#7 tap drill +T99999 P99999 Z+0.100000 ;big tool number diff --git a/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/GPIO-Driven.ini b/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/GPIO-Driven.ini new file mode 100644 index 00000000000..77018f2be6b --- /dev/null +++ b/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/GPIO-Driven.ini @@ -0,0 +1,354 @@ +########### +# +# NOTE: this is the Shapeoko start up file for BBB using GPIO for all pins +# +#This source file is provided under MIT License terms. +#Copyright (c) 2013 Calypso Ventures, Inc. +# +#Permission is hereby granted, free of charge, to any person obtaining a copy +#of this software and associated documentation files (the "Software"), to deal +#in the Software without restriction, including without limitation the rights +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +#copies of the Software, and to permit persons to whom the Software is +#furnished to do so, subject to the following conditions: +# +#The above copyright notice and this permission notice shall be included in +#all copies or substantial portions of the Software. +# +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +#THE SOFTWARE. +########### + + +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=4 num_pwmgens=3 +PRUBIN=xenomai/pru_generic.bin + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = K9.GPIO.Generic + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +DISPLAY = axis + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.200 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = pru-stepper.var + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = K9-Generic.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + + + + +[TRAJ] + +AXES = 4 +COORDINATES = X Y Z A +LINEAR_UNITS = mm + +ANGULAR_UNITS = degree + +MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 + +MAX_LINEAR_VELOCITY = 300.0 +DEFAULT_VELOCITY = 100.0 + +CYCLE_TIME = 0.010 +POSITION_FILE = position.txt +NO_FORCE_HOMING = 1 + + + +[AXIS_0] + +# +# Step timing used in Shapeoko arduino electronics was 30 us steplen + 30 us stepspace +# That gave a 60 us step period = 16.7 KHz step freq +# +# X axis drive mechanics are: +# stepper = 200 step/rev +# 8 usteps/step (K9 Pololu switch setting for all axes) +# 18 tooth/rev (the belt drive pulley) +# 0.08 inch/tooth belt pitch (MXL belts) +# +# so Scale = (200*8 / 18*0.08 ) / 25.4 mm/in = 43.74 usteps/mm +# +# This gives a max velocity of 60 usec/ustep * 43.74 usteps/mm = 2.624 msec/mm => 381 mm/sec +# + + +TYPE = LINEAR +MAX_VELOCITY = 400.0 +# Set Stepgen max vel 20% higher than the axis +STEPGEN_MAX_VEL = 480.0 + +MAX_ACCELERATION = 3000.0 +# Set Stepgen max accel 10% higher than the axis +STEPGEN_MAX_ACC = 3300.0 + +BACKLASH = 0.000 + +SCALE = 43.74 + +#MIN_LIMIT = -1.0 +#MAX_LIMIT = 185.0 + +FERROR = 1.0 +MIN_FERROR = 0.10 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + + + +[AXIS_1] +# +# Y axis drive mechanics are: +# stepper = 200 step/rev +# 8 usteps/step (K9 Pololu switch setting for all axes) +# 18 tooth/rev (the belt drive pulley) +# 0.08 inch/tooth belt pitch (MXL belts) +# +# so Scale = (200*8 / 18*0.08 ) / 25.4 mm/in = 43.74 usteps/mm +# +# The Arduinco controlthus gave a max velocity of 60 usec/ustep * 43.74 usteps/mm = 2.624 msec/mm => 381 mm/sec +# + +TYPE = LINEAR +MAX_VELOCITY = 400.0 +# Set Stepgen max vel 20% higher than the axis +STEPGEN_MAX_VEL = 480.0 + +MAX_ACCELERATION = 3000.0 +# Set Stepgen max accel 10% higher than the axis +STEPGEN_MAX_ACC = 3300.0 + +BACKLASH = 0.000 + +SCALE = 43.74 + +#MIN_LIMIT = -200.0 +#MAX_LIMIT = 1.0 + +FERROR = 1.0 +MIN_FERROR = 0.10 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_2] +# +# Z axis drive mechanics are: +# stepper = 200 step/rev +# 8 usteps/step (K9 Pololu switch setting for all axes) +# 1.25 mm/rev led screw +# +# so Scale = (200*8 / 1.25) = 1280 usteps/mm +# + +TYPE = LINEAR +MAX_VELOCITY = 15.0 +# Set Stepgen max vel 20% higher than the axis +STEPGEN_MAX_VEL = 18.0 + +MAX_ACCELERATION = 150.0 +# Set Stepgen max accel 10% higher than the axis +STEPGEN_MAX_ACC = 165.0 + +BACKLASH = 0.000 + +SCALE = 1280 + +MIN_LIMIT = -100.0 +MAX_LIMIT = 1.0 + +FERROR = 1.0 +MIN_FERROR = 0.10 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + +[AXIS_3] +# TBD set up as a copy of axis_2 just to have a way to test the 4th axis driver on the K9 + +TYPE = LINEAR +MAX_VELOCITY = 15.0 +# Set Stepgen max vel 20% higher than the axis +STEPGEN_MAX_VEL = 18.0 + +MAX_ACCELERATION = 150.0 +# Set Stepgen max accel 10% higher than the axis +STEPGEN_MAX_ACC = 165.0 + +BACKLASH = 0.000 + +SCALE = 1280 + +MIN_LIMIT = -100.0 +MAX_LIMIT = 100.0 + +FERROR = 1.0 +MIN_FERROR = 0.10 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl + diff --git a/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/K9-Generic.hal b/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/K9-Generic.hal new file mode 100644 index 00000000000..601029049a7 --- /dev/null +++ b/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/K9-Generic.hal @@ -0,0 +1,275 @@ +# ####################################### +# +# HAL file for BeagleBone + K9 with 4 steppers +# +#This source file is provided under MIT License terms. +#Copyright (c) 2013 Calypso Ventures, Inc. +# +#Permission is hereby granted, free of charge, to any person obtaining a copy +#of this software and associated documentation files (the "Software"), to deal +#in the Software without restriction, including without limitation the rights +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +#copies of the Software, and to permit persons to whom the Software is +#furnished to do so, subject to the following conditions: +# +#The above copyright notice and this permission notice shall be included in +#all copies or substantial portions of the Software. +# +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +#THE SOFTWARE. +######################################## + +# Launch the setup script to make sure hardware setup looks good +loadusr -w ./setup.K9-DTO.sh + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +loadrt trivkins + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + + +# load low-level drivers +# uncertain about P9-17 to 20, these are I2C channels - are these needed if we want to use BB-IO to talk to them? +loadrt hal_bb_gpio input_pins=107,108,109,110,111,112,115,116,126,211,212,214,215,216,222,223,224,226 output_pins=113,114,117,118,119,127,129,134,136,139,140,141,142,143,144,145,146,213,217,218,221 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg + + +# Python user-mode HAL module to read ADC value and generate a thermostat output for PWM +#loadusr -W ./bbio_temp + +# ################################################ +# THREADS +# ################################################ + +addf hpg.capture-position servo-thread +addf bb_gpio.read servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +# revel in the free time here from not having to run PID +addf hpg.update servo-thread +addf bb_gpio.write servo-thread + + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + + +# ################ +# X [0] Axis +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hpg.stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => hpg.stepgen.00.position-cmd + +net motor.00.pos-fb <= hpg.stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN +setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE + +setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +#setp hpg.stepgen.00.step_type 0 +# P9.31 GPIO3_14 +setp hpg.stepgen.00.steppin 0x8E +# P9.29 GPIO3_15 +setp hpg.stepgen.00.dirpin 0x8F + + +# ################ +# Y [1] Axis +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hpg.stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => hpg.stepgen.01.position-cmd + +net motor.01.pos-fb <= hpg.stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN +setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE + +setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +#setp hpg.stepgen.01.step_type 0 +# P9.30 GPIO3_16 +setp hpg.stepgen.01.steppin 0x90 +# P9.28 GPIO3_17 +setp hpg.stepgen.01.dirpin 0x91 + + +# ################ +# Z [2] Axis +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hpg.stepgen.02.enable + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => hpg.stepgen.02.position-cmd + +net motor.02.pos-fb <= hpg.stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN +setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hpg.stepgen.02.position-scale [AXIS_2]SCALE + +setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +#setp hpg.stepgen.02.step_type 0 +# P9.42 GPIO3_18 / GPIO0_7 +setp hpg.stepgen.02.steppin 0x92 +# P9.27 GPIO3_19 +setp hpg.stepgen.02.dirpin 0x93 + + +# ################ +# A [3] Axis (Extruder) +# ################ + +# axis enable chain +newsig emcmot.03.enable bit +sets emcmot.03.enable FALSE + +net emcmot.03.enable <= axis.3.amp-enable-out +net emcmot.03.enable => hpg.stepgen.03.enable + + +# position command and feedback +net emcmot.03.pos-cmd <= axis.3.motor-pos-cmd +net emcmot.03.pos-cmd => hpg.stepgen.03.position-cmd + +net motor.03.pos-fb <= hpg.stepgen.03.position-fb +net motor.03.pos-fb => axis.3.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP +setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD + +setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN +setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE + +setp hpg.stepgen.03.position-scale [AXIS_3]SCALE + +setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL +setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC + +#setp hpg.stepgen.03.step_type 0 +# P9.41 GPIO3_20 / GPIO0_20 +setp hpg.stepgen.03.steppin 0x94 +# P9.25 GPIO3_21 +setp hpg.stepgen.03.dirpin 0x95 + + +# ################################################## +# Standard I/O Block - EStop, Etc +# ################################################## + +# create a signal for the estop loopback +net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# Axis enable signals +# FIXME: These need to be inverted! +#net emcmot.00.enable => bb_gpio.p8.out-41 +#net emcmot.01.enable => bb_gpio.p8.out-40 +#net emcmot.02.enable => bb_gpio.p8.out-28 +#net emcmot.03.enable => bb_gpio.p8.out-20 +#setp bb_gpio.p8.out-41 0 +#setp bb_gpio.p8.out-40 0 +#setp bb_gpio.p8.out-28 0 +#setp bb_gpio.p8.out-20 0 + +# Machine power +#net estop-loop => bb_gpio.p8.out-03 +#setp bb_gpio.p8.out-05 0 + + +# ################################################## +# PWM Signals +# ################################################## + +#setp hpg.pwmgen.00.pwm_period 10000000 + +# J2 PRU1.out1 +#setp hpg.pwmgen.00.out.00.pin 0xA1 +#setp hpg.pwmgen.00.out.00.enable 1 +#setp hpg.pwmgen.00.out.00.value 0.2 + +# J3 PRU1.out0 +#setp hpg.pwmgen.00.out.01.pin 0xA0 +#setp hpg.pwmgen.00.out.01.enable 1 +#setp hpg.pwmgen.00.out.01.value 0.2 + +# J4 GPIO2.16 +#setp hpg.pwmgen.00.out.02.pin 0x50 +#setp hpg.pwmgen.00.out.02.enable 1 +#setp hpg.pwmgen.00.out.02.value 0.2 + +#setp bbio_temp.set 0x480 +#net thermostat <= bbio_temp.temp hpg.pwmgen.00.out.00.value +#net thermostat => hpg.pwmgen.00.out.00.value diff --git a/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/PRU-Driven.ini b/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/PRU-Driven.ini new file mode 100644 index 00000000000..df71ec194e9 --- /dev/null +++ b/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/PRU-Driven.ini @@ -0,0 +1,355 @@ +########### +# +# NOTE: this is intended to eventually be the Shapeoko start up file for BBB using PRUs to drive S&D +# This is a work in progress and right now it is the same as the GPIO ini file\ +# +#This source file is provided under MIT License terms. +#Copyright (c) 2013 Calypso Ventures, Inc. +# +#Permission is hereby granted, free of charge, to any person obtaining a copy +#of this software and associated documentation files (the "Software"), to deal +#in the Software without restriction, including without limitation the rights +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +#copies of the Software, and to permit persons to whom the Software is +#furnished to do so, subject to the following conditions: +# +#The above copyright notice and this permission notice shall be included in +#all copies or substantial portions of the Software. +# +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +#THE SOFTWARE. +########### + + +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=4 num_pwmgens=3 +PRUBIN=xenomai/pru_generic.bin + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = K9.PRU.Generic + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +DISPLAY = axis + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.200 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = pru-stepper.var + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = K9-Generic.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + + + + +[TRAJ] + +AXES = 4 +COORDINATES = X Y Z A +LINEAR_UNITS = mm + +ANGULAR_UNITS = degree + +MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 + +MAX_LINEAR_VELOCITY = 300.0 +DEFAULT_VELOCITY = 100.0 + +CYCLE_TIME = 0.010 +POSITION_FILE = position.txt +NO_FORCE_HOMING = 1 + + + +[AXIS_0] + +# +# Step timing used in Shapeoko arduino electronics was 30 us steplen + 30 us stepspace +# That gave a 60 us step period = 16.7 KHz step freq +# +# X axis drive mechanics are: +# stepper = 200 step/rev +# 8 usteps/step (K9 Pololu switch setting for all axes) +# 18 tooth/rev (the belt drive pulley) +# 0.08 inch/tooth belt pitch (MXL belts) +# +# so Scale = (200*8 / 18*0.08 ) / 25.4 mm/in = 43.74 usteps/mm +# +# This gives a max velocity of 60 usec/ustep * 43.74 usteps/mm = 2.624 msec/mm => 381 mm/sec +# + + +TYPE = LINEAR +MAX_VELOCITY = 400.0 +# Set Stepgen max vel 20% higher than the axis +STEPGEN_MAX_VEL = 480.0 + +MAX_ACCELERATION = 3000.0 +# Set Stepgen max accel 10% higher than the axis +STEPGEN_MAX_ACC = 3300.0 + +BACKLASH = 0.000 + +SCALE = 43.74 + +#MIN_LIMIT = -1.0 +#MAX_LIMIT = 185.0 + +FERROR = 1.0 +MIN_FERROR = 0.10 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + + + +[AXIS_1] +# +# Y axis drive mechanics are: +# stepper = 200 step/rev +# 8 usteps/step (K9 Pololu switch setting for all axes) +# 18 tooth/rev (the belt drive pulley) +# 0.08 inch/tooth belt pitch (MXL belts) +# +# so Scale = (200*8 / 18*0.08 ) / 25.4 mm/in = 43.74 usteps/mm +# +# The Arduinco controlthus gave a max velocity of 60 usec/ustep * 43.74 usteps/mm = 2.624 msec/mm => 381 mm/sec +# + +TYPE = LINEAR +MAX_VELOCITY = 400.0 +# Set Stepgen max vel 20% higher than the axis +STEPGEN_MAX_VEL = 480.0 + +MAX_ACCELERATION = 3000.0 +# Set Stepgen max accel 10% higher than the axis +STEPGEN_MAX_ACC = 3300.0 + +BACKLASH = 0.000 + +SCALE = 43.74 + +#MIN_LIMIT = -200.0 +#MAX_LIMIT = 1.0 + +FERROR = 1.0 +MIN_FERROR = 0.10 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_2] +# +# Z axis drive mechanics are: +# stepper = 200 step/rev +# 8 usteps/step (K9 Pololu switch setting for all axes) +# 1.25 mm/rev led screw +# +# so Scale = (200*8 / 1.25) = 1280 usteps/mm +# + +TYPE = LINEAR +MAX_VELOCITY = 15.0 +# Set Stepgen max vel 20% higher than the axis +STEPGEN_MAX_VEL = 18.0 + +MAX_ACCELERATION = 150.0 +# Set Stepgen max accel 10% higher than the axis +STEPGEN_MAX_ACC = 165.0 + +BACKLASH = 0.000 + +SCALE = 1280 + +MIN_LIMIT = -100.0 +MAX_LIMIT = 1.0 + +FERROR = 1.0 +MIN_FERROR = 0.10 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + +[AXIS_3] +# TBD set up as a copy of axis_2 just to have a way to test the 4th axis driver on the K9 + +TYPE = LINEAR +MAX_VELOCITY = 15.0 +# Set Stepgen max vel 20% higher than the axis +STEPGEN_MAX_VEL = 18.0 + +MAX_ACCELERATION = 150.0 +# Set Stepgen max accel 10% higher than the axis +STEPGEN_MAX_ACC = 165.0 + +BACKLASH = 0.000 + +SCALE = 1280 + +MIN_LIMIT = -100.0 +MAX_LIMIT = 100.0 + +FERROR = 1.0 +MIN_FERROR = 0.10 + +HOME = 0.000 +HOME_OFFSET = 0.00 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl + diff --git a/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/README b/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/README new file mode 100644 index 00000000000..8dc91d0b2f6 --- /dev/null +++ b/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/README @@ -0,0 +1,23 @@ +Example standard (generic) configurations for the K9 board + +Initial Version: 22 July 2013 + +This is an example configuration for the BeagleBone platform, running with the PMDX-432 K9 CNC I/O Cape. +Configuration assumes the BeagelBoneBlack was booted with HDMIN device tree (HDMI w/o audio) as the boot time config (K9 uses the Audio pins on the BBB). + +The K9 is configured for the Shapeoko mechanical kit plus the Inventable's stepper motors being driven from the on-board Pololu stepper drivers. + +The initial configuration will be for a Shapeoko with + +Spindle: on/off rotary spindle. + +Home switches: none + +Limit Switches: none + +BB IO: all GPIO, no direct PRU IO access. + +This is a 4 axis + spindle subset of the K9 IO. + + + diff --git a/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/setup.K9-DTO.sh b/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/setup.K9-DTO.sh new file mode 100755 index 00000000000..f311be9eee5 --- /dev/null +++ b/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/setup.K9-DTO.sh @@ -0,0 +1,138 @@ +#!/bin/bash +#This source file is provided under MIT License terms. +#Copyright (c) 2013 Calypso Ventures, Inc. +# +#Permission is hereby granted, free of charge, to any person obtaining a copy +#of this software and associated documentation files (the "Software"), to deal +#in the Software without restriction, including without limitation the rights +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +#copies of the Software, and to permit persons to whom the Software is +#furnished to do so, subject to the following conditions: +# +#The above copyright notice and this permission notice shall be included in +#all copies or substantial portions of the Software. +# +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +#THE SOFTWARE. + +dtbo_err () { + echo "Error loading device tree overlay file: $DTBO" >&2 + exit 1 +} + +pin_err () { + echo "Error exporting pin:$PIN" >&2 + exit 1 +} + +dir_err () { + echo "Error setting direction:$DIR on pin:$PIN" >&2 + exit 1 +} + +SLOTS=/sys/devices/bone_capemgr.*/slots + +# Make sure required device tree overlay(s) are loaded +for DTBO in BB-BLACK-LCNC-K9 ; do + + if grep -q $DTBO $SLOTS ; then + echo $DTBO overlay found + else + echo Loading $DTBO overlay + sudo -A su -c "echo $DTBO > $SLOTS" || dtbo_err + sleep 1 + fi +done; + +if [ ! -r /sys/class/uio/uio0 ] ; then + echo PRU control files not found in /sys/class/uio/uio0 >&2 + exit 1; +fi + +# Export GPIO pins +# This really only needs to be done to enable the low-level clocks for the GPIO +# modules. There is probably a better way to do this... +while read PIN DIR JUNK ; do + case "$PIN" in + ""|\#*) + continue ;; + *) + [ -r /sys/class/gpio/gpio$PIN ] && continue + sudo -A su -c "echo $PIN > /sys/class/gpio/export" || pin_err + sudo -A su -c "echo $DIR > /sys/class/gpio/gpio$PIN/direction" || dir_err + ;; + esac + +done <<- EOF + 66 in # J8.7 gpio2_2 + 67 in # J8.8 gpio2_3 + 69 in # J8.9 gpio2_5 + 67 in # J8.10 gpio2_4 + 45 in # J8.11 gpio1_13 + 44 in # J8.12 gpio1_12 + 23 out # J8.13 gpio0_23 + 26 out # J8.14 gpio0_26 + 47 in # J8.15 gpio1_15 + 46 in # J8.16 gpio1_14 + 27 out # J8.17 gpio0_27 + 65 out # J8.18 gpio2_1 + 22 out # J8.19 gpio0_22 +# eMMC pins J8.20 +# thru +# J8.25 + + 61 in # J8.26 gpio1_29 + +# Start HDMI pins +# 86 out # J8.27 gpio2_22 +# 88 in # J8.28 gpio2_24 +# 87 out # J8.29 gpio2_23 +# 89 in # J8.30 gpio2_25 +# 10 in # J8.31 gpio0_10 +# 11 in # J8.32 gpio0_11 +# 9 in # J8.33 gpio0_9 +# 81 out # J8.34 gpio2_17 +# 9 in # J8.35 gpio0_8 +# 80 out # J8.36 gpio2_16 +# 78 in # J8.37 gpio2_14 +# 76 out # J8.39 gpio2_12 +# 77 out # J8.40 gpio2_13 +# 74 out # J8.41 gpio2_10 +# 75 out # J8.42 gpio2_11 +# 72 out # J8.43 gpio2_8 +# 73 out # J8.44 gpio2_9 +# 70 out # J8.45 gpio2_6 +# 71 out # J8.46 gpio2_7 +# end HDMI pins + + 30 in # J9.11 gpio0_30 + 60 in # J9.12 gpio1_28 + 31 out # J9.13 gpio0_31 + 50 in # J9.14 gpio1_18 + 48 in # J9.15 gpio1_16 + 51 in # J9.16 gpio1_19 + 5 out # J9.17 gpio0_5 + 4 out # J9.18 gpio0_4 + 3 out # J9.21 gpio0_3 + 2 in # J9.22 gpio0_2 + 49 in # J9.23 gpio1_17 + 15 in # J9.24 gpio0_15 + 117 out # J9.25 gpio3_21 + 14 in # J9.26 gpio0_14 + 115 out # J9.27 gpio3_19 + 113 out # J9.28 gpio3_17 K9 use of BBB HDMI Audio pin + 111 out # J9.29 gpio3_15 K9 use of BBB HDMI Audio pin + 112 out # J9.30 gpio3_16 + 110 out # J9.31 gpio3_14 K9 use of BBB HDMI Audio pin + + 20 in # J9.41 gpio0_20 set = in => other signal on pin used + 116 out # J9.41 gpio3_20 + 7 in # J9.42 gpio0_7 set = in => other signal on pin used + 114 out # J9.42 gpio3_18 +EOF + diff --git a/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/tool.tbl b/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/tool.tbl new file mode 100644 index 00000000000..c0b72de0652 --- /dev/null +++ b/configs/ARM/BeagleBone/PMDX-432/Standard-Configs/tool.tbl @@ -0,0 +1,4 @@ +T1 P1 D0.125000 Z+0.511000 ;1/8 end mill +T2 P2 D0.062500 Z+0.100000 ;1/16 end mill +T3 P3 D0.201000 Z+1.273000 ;#7 tap drill +T99999 P99999 Z+0.100000 ;big tool number diff --git a/configs/ARM/BeagleBone/PocketNC/!!!readMe!!!.txt b/configs/ARM/BeagleBone/PocketNC/!!!readMe!!!.txt new file mode 100644 index 00000000000..5bffe268f4c --- /dev/null +++ b/configs/ARM/BeagleBone/PocketNC/!!!readMe!!!.txt @@ -0,0 +1,14 @@ +Navigate to '/home/machinekit/machinekit-dev/configs/ARM/BeagleBone' + +DELETE your any 'PocketNC' directory +then copy: + PocketNC + +Should end up with: + /home/machinekit/machinekit-dev/configs/ARM/BeagleBone/PocketNC/ + +then from a console type in... + chmod +x install + +then... + ./install \ No newline at end of file diff --git a/configs/ARM/BeagleBone/PocketNC/PocketNC.hal b/configs/ARM/BeagleBone/PocketNC/PocketNC.hal new file mode 100644 index 00000000000..d5d71584e2e --- /dev/null +++ b/configs/ARM/BeagleBone/PocketNC/PocketNC.hal @@ -0,0 +1,507 @@ +# ####################################### +# +# HAL file for BeagleBone + BeBoPr cape with 4 steppers +# +# Derived from example hm2-stepper config +# +# ######################################## + +# Launch the setup script to make sure hardware setup looks good +loadusr -w /home/machinekit/machinekit-dev/configs/ARM/BeagleBone/PocketNC/setup.bridge.sh + + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +loadrt trivkins + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + + +# load low-level drivers +#loadrt hal_bb_gpio output_pins=107,126,217,218,224,226 input_pins=108,110,114,117,118 +#loadrt hal_bb_gpio output_pins=107,126,211,212,218,224,226 input_pins=108,109,110,114,117,118,122 +loadrt hal_bb_gpio output_pins=211,212,218,224 input_pins=107,108,109,110,114,117,118,119,122,126,213,216 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg +loadrt pid count=2 +loadrt limit1 count=2 + +# Spindle math +loadrt scale names=spindleScale + +# Some 'glue' logic +#loadrt toggle names=pwrToggle,eStpToggle +#loadrt not names=pwrNot,eStpNot +loadrt toggle count=8 +loadrt not count=8 + +# Python user-mode HAL module to read ADC value and generate a thermostat output for PWM +# t = Thermistor table (only epcos_B57560G1104 or 1 supported for now) +# a = analog input channel +loadusr -Wn Therm /home/machinekit/machinekit-dev/configs/ARM/BeagleBone/BeBoPr-Bridge/ReadTemp.py -n Therm --num_chan 2 -t 1 1 -a 4 5 + +# ################################################ +# THREADS +# ################################################ + +addf hpg.capture-position servo-thread +addf bb_gpio.read servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf pid.0.do-pid-calcs servo-thread +addf pid.1.do-pid-calcs servo-thread +addf limit1.0 servo-thread +addf limit1.1 servo-thread +addf hpg.update servo-thread +addf bb_gpio.write servo-thread +addf spindleScale servo-thread +#addf pwrToggle servo-thread +#addf pwrNot servo-thread +#addf eStpToggle servo-thread +#addf eStpNot servo-thread +addf toggle.0 servo-thread +addf toggle.1 servo-thread +addf toggle.2 servo-thread +addf toggle.3 servo-thread +addf toggle.4 servo-thread +addf toggle.5 servo-thread +addf toggle.6 servo-thread +addf toggle.7 servo-thread +addf not.0 servo-thread +addf not.1 servo-thread +addf not.2 servo-thread +addf not.3 servo-thread +addf not.4 servo-thread +addf not.5 servo-thread +addf not.6 servo-thread +addf not.7 servo-thread + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + + +# ################ +# X [0] Axis +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hpg.stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => hpg.stepgen.00.position-cmd + +net motor.00.pos-fb <= hpg.stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN +setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE + +setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +#setp hpg.stepgen.00.step_type 0 +# P8.43 PRU1.out2 +setp hpg.stepgen.00.steppin 0x4C +# P8.44 PRU1.out4 +setp hpg.stepgen.00.dirpin 0x4D + + +# ################ +# Y [1] Axis +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hpg.stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => hpg.stepgen.01.position-cmd + +net motor.01.pos-fb <= hpg.stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN +setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE + +setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +#setp hpg.stepgen.01.step_type 0 +# P8.42 PRU1.out5 +setp hpg.stepgen.01.steppin 0x4E +# P8.39 PRU1.out6 +setp hpg.stepgen.01.dirpin 0x4F + + +# ################ +# Z [2] Axis +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hpg.stepgen.02.enable + + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => hpg.stepgen.02.position-cmd + +net motor.02.pos-fb <= hpg.stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN +setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hpg.stepgen.02.position-scale [AXIS_2]SCALE + +setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +#setp hpg.stepgen.02.step_type 0 +# P8.27 PRU1.out8 +setp hpg.stepgen.02.steppin 0x50 +# P8.29 PRU1.out9 +setp hpg.stepgen.02.dirpin 0x51 + + +# ################ +# A [3] Axis +# ################ + +# axis enable chain +newsig emcmot.03.enable bit +sets emcmot.03.enable FALSE + +net emcmot.03.enable <= axis.3.amp-enable-out +net emcmot.03.enable => hpg.stepgen.03.enable + + +# position command and feedback +net emcmot.03.pos-cmd <= axis.3.motor-pos-cmd +net emcmot.03.pos-cmd => hpg.stepgen.03.position-cmd + +net motor.03.pos-fb <= hpg.stepgen.03.position-fb +net motor.03.pos-fb => axis.3.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP +setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD + +setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN +setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE + +setp hpg.stepgen.03.position-scale [AXIS_3]SCALE + +setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL +setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC + +#setp hpg.stepgen.03.step_type 0 +## P9.22 GPIO2.25 +#setp hpg.stepgen.03.steppin 0x22 +## P9.21 GPIO1.30 +#setp hpg.stepgen.03.dirpin 0x23 + + +# P9.27 GPIO3.19 +setp hpg.stepgen.03.steppin 0x93 +# P9.28 GPIO3.17 +setp hpg.stepgen.03.dirpin 0x91 + + + + +# ################ +# B [4] Axis +# ################ + +# axis enable chain +newsig emcmot.04.enable bit +sets emcmot.04.enable FALSE + +net emcmot.04.enable <= axis.4.amp-enable-out +net emcmot.04.enable => hpg.stepgen.04.enable + + +# position command and feedback +net emcmot.04.pos-cmd <= axis.4.motor-pos-cmd +net emcmot.04.pos-cmd => hpg.stepgen.04.position-cmd + +net motor.04.pos-fb <= hpg.stepgen.04.position-fb +net motor.04.pos-fb => axis.4.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.04.dirsetup [AXIS_4]DIRSETUP +setp hpg.stepgen.04.dirhold [AXIS_4]DIRHOLD + +setp hpg.stepgen.04.steplen [AXIS_4]STEPLEN +setp hpg.stepgen.04.stepspace [AXIS_4]STEPSPACE + +setp hpg.stepgen.04.position-scale [AXIS_4]SCALE + +setp hpg.stepgen.04.maxvel [AXIS_4]STEPGEN_MAX_VEL +setp hpg.stepgen.04.maxaccel [AXIS_4]STEPGEN_MAX_ACC + +#setp hpg.stepgen.04.step_type 0 +# P8.30 GPIO2.25 +#setp hpg.stepgen.04.steppin 0x24 +# P8.21 GPIO1.30 +#setp hpg.stepgen.04.dirpin 0x25 + + +# P9.29 GPIO3.15 +setp hpg.stepgen.04.steppin 0x8f +# P9.30 GPIO3.16 +setp hpg.stepgen.04.dirpin 0x90 + + +# ################################################## +# Standard I/O - EStop, Enables, Limit Switches, Etc +# ################################################## + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# Axis enable signals +#net emcmot.00.enable => bb_gpio.p9.out-18 +#setp bb_gpio.p9.out-18.invert 1 +#net emcmot.01.enable => bb_gpio.p9.out-17 +#setp bb_gpio.p9.out-17.invert 1 +#net emcmot.02.enable => bb_gpio.p9.out-26 #A-min +#setp bb_gpio.p9.out-26.invert 1 +#net emcmot.04.enable => bb_gpio.p9.out-24 #Spindle on. +#setp bb_gpio.p9.out-24.invert 1 + + +### Home and Limit switches ### +# X axis +net XmaxAndHome <= bb_gpio.p8.in-09 +net XmaxAndHome => axis.0.pos-lim-sw-in axis.0.home-sw-in +net Xmin <= bb_gpio.p8.in-08 +net Xmin => axis.0.neg-lim-sw-in + +# Y axis +net YmaxAndHome <= bb_gpio.p8.in-14 +net YmaxAndHome => axis.1.pos-lim-sw-in axis.1.home-sw-in +net Ymin <= bb_gpio.p8.in-10 +net Ymin => axis.1.neg-lim-sw-in + +# Z axis +net ZmaxAndHome <= bb_gpio.p8.in-18 +net ZmaxAndHome => axis.2.pos-lim-sw-in axis.2.home-sw-in +net Zmin <= bb_gpio.p8.in-17 +net Zmin => axis.2.neg-lim-sw-in + +# A axis +net AmaxAndHome <= bb_gpio.p9.in-16 +net AmaxAndHome => axis.3.pos-lim-sw-in axis.3.home-sw-in +net Amin <= bb_gpio.p9.in-13 +net Amin => axis.3.neg-lim-sw-in +setp bb_gpio.p9.in-13.invert 1 + +# B axis +net BhomeAndIndex <= bb_gpio.p8.in-19 +net BhomeAndIndex => axis.4.home-sw-in + +### Control Panel Buttons ### +# eStop +net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in +net eStopToggle toggle.0.in <= bb_gpio.p8.in-07 +setp toggle.0.debounce 2 +setp bb_gpio.p8.in-07.invert 1 +net eStopOn toggle.0.out => halui.estop.activate => not.0.in +net eStopOff not.0.out => halui.estop.reset + +# Machine power +net powerToggle toggle.1.in <= bb_gpio.p8.in-26 +setp toggle.1.debounce 2 +setp bb_gpio.p8.in-26.invert 0 +net powerOn toggle.1.out => halui.machine.on => not.1.in +net powerOff not.1.out => halui.machine.off + +# Program start/run +#net programRun <= bb_gpio.p9.in-14 +#setp toggle.1.debounce 2 +#setp bb_gpio.p8.in-26.invert 0 +#net powerOn toggle.2.out => halui.machine.on => not.2.in +#net powerOff not.2.out => halui.machine.off + +# Program step +#net powerToggle toggle.1.in <= bb_gpio.p8.in-26 +#setp toggle.1.debounce 2 +#setp bb_gpio.p8.in-26.invert 0 +#net powerOn toggle.1.out => halui.machine.on => not.1.in +#net powerOff not.1.out => halui.machine.off + +# Program pause +#net powerToggle toggle.1.in <= bb_gpio.p8.in-26 +#setp toggle.1.debounce 2 +#setp bb_gpio.p8.in-26.invert 0 +#net powerOn toggle.1.out => halui.machine.on => not.1.in +#net powerOff not.1.out => halui.machine.off + +# Program stop +#net powerToggle toggle.1.in <= bb_gpio.p8.in-26 +#setp toggle.1.debounce 2 +#setp bb_gpio.p8.in-26.invert 0 +#net powerOn toggle.1.out => halui.machine.on => not.1.in +#net powerOff not.1.out => halui.machine.off + +# Program block delete +#net powerToggle toggle.1.in <= bb_gpio.p8.in-26 +#setp toggle.1.debounce 2 +#setp bb_gpio.p8.in-26.invert 0 +#net powerOn toggle.1.out => halui.machine.on => not.1.in +#net powerOff not.1.out => halui.machine.off + +# Program optional stop +#net powerToggle toggle.1.in <= bb_gpio.p8.in-26 +#setp toggle.1.debounce 2 +#setp bb_gpio.p8.in-26.invert 0 +#net powerOn toggle.1.out => halui.machine.on => not.1.in +#net powerOff not.1.out => halui.machine.off + +### Spindle ### +net spindleEnable <= motion.spindle-on +net spindleEnable => bb_gpio.p9.out-24 + +net spindleDirection <= motion.spindle-forward +net spindleDirection => bb_gpio.p9.out-11 +net displaySpindleReverseButton <= motion.spindle-reverse + +# spindleSpeed is on p8.13 +setp spindleScale.gain 0.005 +setp spindleScale.offset 0.035 +net spindleSpeedDummy motion.spindle-speed-out +net spindleSpeed motion.spindle-speed-out-rps => spindleScale.in +net spindlePwm spindleScale.out => hpg.pwmgen.00.out.00.value + +net spindleAtSpeed <= bb_gpio.p8.in-22 +net spindleAtSpeed => motion.spindle-at-speed + + + +# ################################################## +# PWM and Temperature Signals +# ################################################## + +# Define signals to use elsewhere (ie: M1xx codes) +# If you change any names here, lots of things will break! +newsig e0.temp.set float +newsig e0.temp.meas float +newsig bed.temp.set float +newsig bed.temp.meas float + + +setp hpg.pwmgen.00.pwm_period 10000000 + +# J2 E0 Heater PRU1.out1 +setp hpg.pwmgen.00.out.00.pin 0x37 +setp hpg.pwmgen.00.out.00.enable 1 +##setp hpg.pwmgen.00.out.00.value 0.0 + +# J3 E1 Heater PRU1.out0 +#setp hpg.pwmgen.00.out.01.pin 0x36 +#setp hpg.pwmgen.00.out.01.enable 1 +#setp hpg.pwmgen.00.out.01.value 0.0 + +# J4 Bed Heater GPIO2.16 +#setp hpg.pwmgen.00.out.02.pin 0x52 +#setp hpg.pwmgen.00.out.02.enable 1 +#setp hpg.pwmgen.00.out.02.value 0.0 + +# PID for Extruder 0 temperature control +net e0.temp.meas <= Therm.temp0 +net e0.temp.meas => pid.0.feedback + +sets e0.temp.set 0 +net e0.temp.set => pid.0.command + +net e0.heater <= pid.0.output +#net e0.heater => limit1.0.in +#net e0.heaterl <= limit1.0.out +#net e0.heaterl => hpg.pwmgen.00.out.00.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +#setp limit1.0.min 0 + +# PID for Bed temperature control +net bed.temp.meas <= Therm.temp1 +net bed.temp.meas => pid.1.feedback + +sets bed.temp.set 0 +net bed.temp.set => pid.1.command + +#net bed.heater <= pid.1.output +#net bed.heater => limit1.1.in +#net bed.heaterl <= limit1.1.out +#net bed.heaterl => hpg.pwmgen.00.out.02.value + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.1.min 0 + +# PID Parameters for adjusting temperature control +# Extruder +#setp pid.0.FF0 0 +#setp pid.0.FF1 0 +#setp pid.0.FF2 0 +setp pid.0.Pgain 0.30 +setp pid.0.Igain 0.00001 +setp pid.0.Dgain 0.9375 +setp pid.0.maxerrorI 1.0 +setp pid.0.bias 0.5 +setp pid.0.enable 1 + +# Bed +#setp pid.1.FF0 0 +#setp pid.1.FF1 0 +#setp pid.1.FF2 0 +setp pid.1.Pgain 1 +setp pid.1.Igain 0.0 +setp pid.1.Dgain 0.0 +setp pid.1.maxerrorI 1.0 +setp pid.1.bias 0.5 +setp pid.1.enable 1 diff --git a/configs/ARM/BeagleBone/PocketNC/PocketNC.ini b/configs/ARM/BeagleBone/PocketNC/PocketNC.ini new file mode 100644 index 00000000000..6fec8a9a5bb --- /dev/null +++ b/configs/ARM/BeagleBone/PocketNC/PocketNC.ini @@ -0,0 +1,344 @@ +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=5 num_pwmgens=4 +PRUBIN=xenomai/pru_generic.bin + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = PocketNC + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +#DISPLAY = gscreen +DISPLAY = axis + +# Touchy currently won't work without some hardware buttons/jog-wheel +#DISPLAY = touchy + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.1000 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 3 + +# Prefix to be used +PROGRAM_PREFIX = ~/machinekit-dev/nc_files/ + +# Introductory graphic +#INTRO_GRAPHIC = machinekit.gif +#INTRO_TIME = 3 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +#PYVCP = BeBoPr.panel.xml + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +#TASK = milltask +TASK = /home/machinekit/machinekit-dev/bin/milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = pru-stepper.var + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear +HALUI = halui +HALFILE = PocketNC.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +POSTGUI_HALFILE = PocketNC.postgui.hal + + +[TRAJ] + +AXES = 5 +COORDINATES = X Y Z A B +MAX_ANGULAR_VELOCITY = 90 +DEFAULT_ANGULAR_VELOCITY = 40 +LINEAR_UNITS = inch +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 0.5 +MAX_LINEAR_VELOCITY = 2.00 + + + + + +[AXIS_0] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# + + +TYPE = LINEAR +MAX_VELOCITY = 1.5 +MAX_ACCELERATION = 4.5 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 1.8 +STEPGEN_MAX_ACC = 5.4 + +BACKLASH = 0.000 + +# scale is 200 steps/rev * 5 revs/inch +SCALE = -4166.666666666666666667 + +MIN_LIMIT = -2.25 +MAX_LIMIT = 0.25 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 2.25 +HOME_SEARCH_VEL = 1.10 +HOME_LATCH_VEL = -0.01 +HOME_IS_SHARED = 1 +#HOME_USE_INDEX = YES +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 1 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_1] + +TYPE = LINEAR +MAX_VELOCITY = 1.5 +MAX_ACCELERATION = 4.5 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 1.8 +STEPGEN_MAX_ACC = 5.4 + +BACKLASH = 0.000 + +SCALE = -4166.666666666666666667 + +MIN_LIMIT = -2.25 +MAX_LIMIT = 2.25 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 2.25 +HOME_SEARCH_VEL = 1.10 +HOME_LATCH_VEL = -0.01 +HOME_IS_SHARED = 1 +#HOME_USE_INDEX = YES +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 2 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_2] + +TYPE = LINEAR +MAX_VELOCITY = 1.5 +MAX_ACCELERATION = 4.5 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 1.8 +STEPGEN_MAX_ACC = 5.4 + +BACKLASH = 0.000 + +SCALE = 4000 + +MIN_LIMIT = -1.87007874 +MAX_LIMIT = 1.87007874 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.0 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 1.10 +HOME_LATCH_VEL = -0.01 +HOME_IS_SHARED = 1 +#HOME_USE_INDEX = YES +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 0 +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_3] + +TYPE = ANGULAR +MAX_VELOCITY = 80 +MAX_ACCELERATION = 200 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 96 +STEPGEN_MAX_ACC = 240 + +BACKLASH = 0.000 + +SCALE = 8.889 +#SCALE = 360 +#SCALE = -732.32 + +MIN_LIMIT = -185 +MAX_LIMIT = 185 + +FERROR = 5.0 +MIN_FERROR = .5 + +HOME = 0.0 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 2.10 +HOME_LATCH_VEL = -0.1 +HOME_IS_SHARED = 1 +#HOME_USE_INDEX = YES +HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 3 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + +[AXIS_4] + +TYPE = ANGULAR +MAX_VELOCITY = 20 +MAX_ACCELERATION = 200 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 24 +STEPGEN_MAX_ACC = 240 + +BACKLASH = 0.000 + +SCALE = 8.889 +#SCALE = 360 +#SCALE = -732.32 + +#WRAPPED_ROTARY = 1 +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 5.0 +MIN_FERROR = .5 + +HOME = 0.0 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 2.10 +HOME_LATCH_VEL = -0.1 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 4 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl + + diff --git a/configs/ARM/BeagleBone/PocketNC/PocketNC.postgui.hal b/configs/ARM/BeagleBone/PocketNC/PocketNC.postgui.hal new file mode 100644 index 00000000000..c546e13ead4 --- /dev/null +++ b/configs/ARM/BeagleBone/PocketNC/PocketNC.postgui.hal @@ -0,0 +1,8 @@ +# Include your customized HAL commands here +# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts + +#net e0.temp.set => pyvcp.E0.Temp.set +#net e0.temp.meas => pyvcp.E0.Temp +#net bed.temp.set => pyvcp.Bed.Temp.set +#net bed.temp.meas => pyvcp.Bed.Temp + diff --git a/configs/ARM/BeagleBone/PocketNC/PocketNCdriver-00A0.dts b/configs/ARM/BeagleBone/PocketNC/PocketNCdriver-00A0.dts new file mode 100644 index 00000000000..de27e94e11d --- /dev/null +++ b/configs/ARM/BeagleBone/PocketNC/PocketNCdriver-00A0.dts @@ -0,0 +1,123 @@ +/dts-v1/; +/plugin/; + +/ { + compatible = "ti,beaglebone", "ti,beaglebone-black"; + + /* identification */ +// part-number = "BB-LCNC-BEBOPRBR"; + part-number = "PocketNCdriver"; + version = "00A0"; + + /* state the resources this cape uses */ + exclusive-use = + /* the pin header uses */ + "P8.7", /* gpio2.2 Enablen */ + "P8.8", /* gpio2.3 X_Min */ + "P8.9", /* gpio2.5 X_Max */ + "P8.10", /* gpio2.4 Y_Min */ + "P8.11", /* gpio1.13 X_Dir */ + "P8.12", /* gpio1.12 X_Step */ + "P8.13", /* gpio0.23 PWM0 */ + "P8.14", /* gpio0.26 Y_Max */ + "P8.15", /* gpio1.15 Y_Dir */ + "P8.16", /* gpio1.14 Y_Step */ + "P8.17", /* gpio0.27 Z_Min */ + "P8.18", /* gpio2.01 Z_Max */ + "P8.19", /* gpio0.22 B Index */ + "P8.26", /* gpio1.29 M.Power */ + "P9.11", /* gpio0.30 SpndDir */ + "P9.12", /* gpio1.28 SpndIdx */ + "P9.14", /* gpio1.18 PWM2 */ + "P9.15", /* gpio1.16 Z_Step */ + "P9.16", /* gpio1.19 A_Home */ + "P9.17", /* gpio0.05 B_Dir */ + "P9.18", /* gpio0.04 B_Step */ + "P9.21", /* gpio0.03 A_Dir */ + "P9.22", /* gpio0.02 A_Step */ + "P9.23", /* gpio1.17 Z_Dir */ + "P9.24", /* gpio0.15 Spindle */ + "P9.13", /* gpio0.31 A_Min */ + "P9.26", /* gpio0.14 Mtr_Ena */ + "P8.22", /* gpio1.05 SpndAtS */ +// "P9.33", /* AIN4 Therm0 */ +// "P9.35", /* AIN6 Therm2 */ +// "P9.36", /* AIN5 Therm1 */ + + /* the hardware IP uses */ +/* The following 4 pins conflict with the on-board mmc flash */ + "gpio2_2", + "gpio2_3", + "gpio2_5", + "gpio2_4", + "gpio1_13", + "gpio1_12", + "gpio0_23", + "gpio0_26", + "gpio1_15", + "gpio1_14", + "gpio0_27", + "gpio2_1", + "gpio0_22", + "gpio1_29", + "gpio1_18", + "gpio1_16", + "gpio0_5", + "gpio0_4", + "gpio0_3", + "gpio0_2", + "gpio1_17", + "gpio0_15", + "pru0"; + + fragment@0 { + target = <&am33xx_pinmux>; + __overlay__ { + + foo_pins: foo_pins { + pinctrl-single,pins = < + 0x090 0x3f /* P8.7 gpio2.2 Enablen */ + 0x094 0x3f /* P8.8 gpio2.3 X_Min */ + 0x09c 0x3f /* P8.9 gpio2.5 X_Max */ + 0x098 0x3f /* P8.10 gpio2.4 Y_Min */ + 0x034 0x3f /* P8.11 gpio1.13 X_Dir */ + 0x030 0x3f /* P8.12 gpio1.12 X_Step */ + 0x024 0x3f /* P8.13 gpio0.23 PWM0 */ + 0x028 0x3f /* P8.14 gpio0.26 Y_Max */ + 0x03c 0x3f /* P8.15 gpio1.15 Y_Dir */ + 0x038 0x3f /* P8.16 gpio1.14 Y_Step */ + 0x02c 0x3f /* P8.17 gpio0.27 Z_Min */ + 0x08c 0x3f /* P8.18 gpio2.1 Z_Max */ + 0x020 0x3f /* P8.19 gpio0.22 B_Index */ + 0x814 0x3f /* P8.22 gpio1.5 SpndAtSp*/ + 0x87c 0x3f /* p8.26 gpio1.29 M.Power */ + 0x870 0x3f /* P9.11 gpio0.30 SpndlDr */ + 0x878 0x3f /* P9.12 gpio1.28 SpndIdx */ + 0x048 0x3f /* p9.14 gpio1.18 PWM2 */ + 0x040 0x3f /* p9.15 gpio1.16 Z_Step */ + 0x84c 0x3f /* p9.16 gpio1.19 A_Home */ + 0x15c 0x3f /* p9.17 gpio0.5 B_Dir */ + 0x158 0x3f /* p9.18 gpio0.4 B_Step */ + 0x154 0x3f /* p9.21 gpio0.3 A_Dir */ + 0x150 0x3f /* p9.22 gpio0.2 A_Step */ + 0x044 0x3f /* P9.23 gpio1.17 Z_Dir */ + 0x184 0x3f /* P9.24 gpio0.15 Spindle */ + 0x874 0x3f /* P9.13 gpio0.31 A_Min */ + 0x180 0x3f /* P9.26 gpio0.14 Mtr_Ena */ + >; + }; + }; + }; + + fragment@1 { + target = <&pruss>; + __overlay__ { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&foo_pins>; + + }; + }; +}; + diff --git a/configs/ARM/BeagleBone/PocketNC/README b/configs/ARM/BeagleBone/PocketNC/README new file mode 100644 index 00000000000..a1296774a85 --- /dev/null +++ b/configs/ARM/BeagleBone/PocketNC/README @@ -0,0 +1,23 @@ + +This configuration drives a standard 4-axis 3D printer using the PRU for +high speed step/dir pulse generation and a BeBoPr driver board. The +BeBoPr configuration is for the original version of the BeBoPr board and a BeagleBoneWhite and +requires you disable HDMI. + +The BeBoPr-Bridge configuration is for use with the new bridge board +that shuffles pins around so you can leave HDMI enabled. + +There are currently no limit switches configured, so adjust the MIN_LIMIT +and MAX_LIMIT axis settings in the ini file if your printer has less than +200 mm of X/Y travel. + +Current X and Y settings are appropriate for a typical "MendelMax" style +printer, with the following settings: + +max vel = 200 mm/s +max accel = 3000 mm/s/s +scale = 80 steps/mm + +Adjust as required for your machine. Make scale negative to invert any +axis that is moving 'backwards'. + diff --git a/configs/ARM/BeagleBone/PocketNC/ReadTemp.py b/configs/ARM/BeagleBone/PocketNC/ReadTemp.py new file mode 100644 index 00000000000..2eda38ce665 --- /dev/null +++ b/configs/ARM/BeagleBone/PocketNC/ReadTemp.py @@ -0,0 +1,323 @@ +#!/usr/bin/python + +######################################################################## +# Description: temp.py # +# This code reads an ADC input on the BeagleBone and converts the # +# resulting value into a temperature according to the thermistor # +# type, accounting for the analog input circuty as implemented on # +# the BeBoPr cape # +# # +# Author(s): Charles Steinkuehler # +# License: GNU GPL Version 2.0 or (at your option) any later version. # +# # +# Major Changes: # +# 2013-June Charles Steinkuehler # +# Initial version # +######################################################################## +# Copyright (C) 2013 Charles Steinkuehler # +# # +# # +# This program is free software; you can redistribute it and/or # +# modify it under the terms of the GNU General Public License # +# as published by the Free Software Foundation; either version 2 # +# of the License, or (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # +# 02110-1301, USA. # +# # +# THE AUTHORS OF THIS PROGRAM ACCEPT ABSOLUTELY NO LIABILITY FOR # +# ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE # +# TO RELY ON SOFTWARE ALONE FOR SAFETY. Any machinery capable of # +# harming persons must have provisions for completely removing power # +# from all motors, etc, before persons enter any danger area. All # +# machinery must be designed to comply with local and national safety # +# codes, and the authors of this software can not, and do not, take # +# any responsibility for such compliance. # +######################################################################## + +import argparse +import bisect +import glob +import sys +import time + +import hal + +# Fixme: Put thermistor data in an include file +Thermistor = {} +Thermistor["epcos_B57560G1104"] = [ +# Temp, Resistance, alpha +[ -60.0, float('inf'), 7.6 ], +[ -55.0, 10011000, 7.4 ], +[ -50.0, 6956000, 7.2 ], +[ -45.0, 4894500, 6.9 ], +[ -40.0, 3485300, 6.7 ], +[ -35.0, 2510200, 6.5 ], +[ -30.0, 1827500, 6.2 ], +[ -25.0, 1344300, 6.0 ], +[ -20.0, 998530, 5.9 ], +[ -15.0, 748670, 5.7 ], +[ -10.0, 566360, 5.5 ], +[ -5.0, 432120, 5.3 ], +[ 0.0, 332400, 5.2 ], +[ 5.0, 257690, 5.0 ], +[ 10.0, 201270, 4.9 ], +[ 15.0, 158340, 4.7 ], +[ 20.0, 125420, 4.6 ], +[ 25.0, 100000, 4.5 ], +[ 30.0, 80239, 4.3 ], +[ 35.0, 64776, 4.2 ], +[ 40.0, 52598, 4.1 ], +[ 45.0, 42950, 4.0 ], +[ 50.0, 35262, 3.9 ], +[ 55.0, 29100, 3.8 ], +[ 60.0, 24136, 3.7 ], +[ 65.0, 20114, 3.6 ], +[ 70.0, 16841, 3.5 ], +[ 75.0, 14164, 3.4 ], +[ 80.0, 11963, 3.3 ], +[ 85.0, 10147, 3.3 ], +[ 90.0, 8640.7, 3.2 ], +[ 95.0, 7386.7, 3.1 ], +[ 100.0, 6338.3, 3.0 ], +[ 105.0, 5458.4, 3.0 ], +[ 110.0, 4717, 2.9 ], +[ 115.0, 4090.1, 2.8 ], +[ 120.0, 3558.1, 2.8 ], +[ 125.0, 3105, 2.7 ], +[ 130.0, 2717.9, 2.6 ], +[ 135.0, 2386.1, 2.6 ], +[ 140.0, 2100.8, 2.5 ], +[ 145.0, 1854.8, 2.5 ], +[ 150.0, 1641.9, 2.4 ], +[ 155.0, 1457.3, 2.4 ], +[ 160.0, 1296.7, 2.3 ], +[ 165.0, 1156.6, 2.3 ], +[ 170.0, 1034.1, 2.2 ], +[ 175.0, 926.64, 2.2 ], +[ 180.0, 832.24, 2.1 ], +[ 185.0, 749.07, 2.1 ], +[ 190.0, 675.64, 2.0 ], +[ 195.0, 610.64, 2.0 ], +[ 200.0, 552.99, 2.0 ], +[ 205.0, 501.75, 1.9 ], +[ 210.0, 456.11, 1.9 ], +[ 215.0, 415.37, 1.9 ], +[ 220.0, 378.95, 1.8 ], +[ 225.0, 346.31, 1.8 ], +[ 230.0, 317.01, 1.8 ], +[ 235.0, 290.67, 1.7 ], +[ 240.0, 266.93, 1.7 ], +[ 245.0, 245.51, 1.7 ], +[ 250.0, 226.15, 1.6 ], +[ 255.0, 208.62, 1.6 ], +[ 260.0, 192.73, 1.6 ], +[ 265.0, 178.29, 1.5 ], +[ 270.0, 165.16, 1.5 ], +[ 275.0, 153.19, 1.5 ], +[ 280.0, 142.28, 1.5 ], +[ 285.0, 132.31, 1.4 ], +[ 290.0, 123.19, 1.4 ], +[ 295.0, 114.83, 1.4 ], +[ 300.0, 107.16, 1.4 ], +[ 400.0, 0.0, 1.4 ] ] + + +# Temperature table needs resistance to be ordered low [0] to high [n] +Thermistor["epcos_B57560G1104"].reverse() + +# Epcos B57560G1104 is Marlin thermistor table 1 +Thermistor["1"] = Thermistor["epcos_B57560G1104"] + + +Thermistor["semitec_103GT_2"] = [ +# Temp, Resistance, alpha +[ -60.0, float('inf'), 0.0 ], +[ -50.0, 8743000.0, 0.0 ], +[ -40.0, 4218000.0, 0.0 ], +[ -30.0, 2132000.0, 0.0 ], +[ -20.0, 1127000.0, 0.0 ], +[ -10.0, 620000.0, 0.0 ], +[ 0.0, 353700.0, 0.0 ], +[ 10.0, 208600.0, 0.0 ], +[ 20.0, 126800.0, 0.0 ], +[ 30.0, 79360.0, 0.0 ], +[ 40.0, 50960.0, 0.0 ], +[ 50.0, 33490.0, 0.0 ], +[ 60.0, 22510.0, 0.0 ], +[ 70.0, 15440.0, 0.0 ], +[ 80.0, 10800.0, 0.0 ], +[ 90.0, 7686.0, 0.0 ], +[ 100.0, 5556.0, 0.0 ], +[ 110.0, 4082.0, 0.0 ], +[ 120.0, 3043.0, 0.0 ], +[ 130.0, 2298.0, 0.0 ], +[ 140.0, 1758.0, 0.0 ], +[ 150.0, 1360.0, 0.0 ], +[ 160.0, 1064.0, 0.0 ], +[ 170.0, 841.4, 0.0 ], +[ 180.0, 671.4, 0.0 ], +[ 190.0, 540.8, 0.0 ], +[ 200.0, 439.3, 0.0 ], +[ 210.0, 359.7, 0.0 ], +[ 220.0, 296.9, 0.0 ], +[ 230.0, 246.8, 0.0 ], +[ 240.0, 206.5, 0.0 ], +[ 250.0, 174.0, 0.0 ], +[ 260.0, 147.5, 0.0 ], +[ 270.0, 125.8, 0.0 ], +[ 280.0, 107.9, 0.0 ], +[ 290.0, 93.05, 0.0 ], +[ 300.0, 80.65, 0.0 ], +[ 400.0, 0.0, 1.4 ] ] + + +# Temperature table needs resistance to be ordered low [0] to high [n] +Thermistor["semitec_103GT_2"].reverse() + +# ATC Semtec 104GT-2 is Marlin thermistor table 5 +Thermistor["5"] = Thermistor["semitec_103GT_2"] + +# Test for multiple thermistor tables +Thermistor["2"] = [ +[ 400.0, 0.0, 1.4 ], +[ 300.0, 1000.0, 2.0 ], +[ 200.0, 10000.0, 3.0 ], +[ 100.0, 100000.0, 6.0 ], +[ 0.0, float('inf'), 7.6 ] ] + +# The BeBoPr board thermistor input has one side grounded and the other side +# pulled high through a 2.05K resistor to 3.6V. Following this is a 470R +# resistor, some protection diodes, and a voltage divider cosisting of two +# 10.0K resistors. The ADC voltage read is the voltage across the lower 10K +# resistor in the 470R + 10K + 10K series chain +def adc2r(V_adc): + V_T = 0.0 # Voltage across the thermistor (and the 470R + 10K + 10K resistor chain) + I_PU = 0.0 # Current flowing through the 2.05K pull-up resistor + R_TD = 0.0 # Resistance of thermistor and the 470R + 10K + 10K divider chain in parallel + R_T = 0.0 # Resistance of the thermistor + + V_T = V_adc * 2.0470 + + # No dividing by zero or negative voltages despite what the ADC says! + # Clip to a small positive value + I_PU = max((3.6 - V_T ) / 2050, 0.000001) + + R_TD = V_T / I_PU + + # Acutal resistance can't be negative, but we can get a negative value + # from the equation below for some real ADC values, so clip to avoid + # reporting crazy temperature values or dividing by zero + if R_TD >= 20470 : + R_TD = 20470 - 0.1 + + # 1 / Rtotal = 1 / ( 1 / R1 + 1 / R2 ) + # R2 = ( R1 * Rtotal ) / ( R1 - Rtotal ) + R_T = ( 20470 * R_TD ) / ( 20470 - R_TD ) + + # print "V_adc: %f V_T: %f R_TD: %f R_T: %f" % (V_adc, V_T, R_TD, R_T) + + + return R_T + +# Convert resistance value into temperature, using thermistor table +def r2t(n, R_T): + temp_slope = 0.0 + temp = 0.0 + + i = max(bisect.bisect_right(R_Key[n], R_T) - 1, 0) + + temp_slope = (thermistor[n][0][i] - thermistor[n][0][i+1]) / (thermistor[n][1][i] - thermistor[n][1][i+1]) + temp = thermistor[n][0][i] + ((R_T - thermistor[n][1][i]) * temp_slope) + #print "Temp:", temp, "i.R_T:", i, R_T, "slope:", temp_slope, + #print "Deg.left:", Thermistor["epcos_B57560G1104"][i], "Deg.right:", Thermistor["epcos_B57560G1104"][i+1] + return temp + +parser = argparse.ArgumentParser(description='HAL component to read ADC values and convert to temperature') +parser.add_argument('-n','--name', help='HAL component name',required=True) +parser.add_argument('-N','--num_chan', help='Number of analog inputs to support',default=1) +parser.add_argument('-a','--adc', nargs='+', help='ADC input to read', required=True) +parser.add_argument('-t','--therm',nargs='+', help='Thermistor table to use', required=True) +args = parser.parse_args() + +num_chan = int(args.num_chan) + +if len(args.adc) != num_chan : + raise UserWarning('Incorrect number of ADC channels specified! Expected:' + str(args.num_chan) + str(len(args.adc)) ) + +if len(args.therm) != num_chan : + raise UserWarning('Incorrect number of thermistors specified! Expected:' + args.num_chan) + +syspath = '/sys/devices/ocp.*/44e0d000.tscadc/tiadc/iio:device0/' + +FileName = [] + +for i in range(num_chan): + TempName = glob.glob (syspath + 'in_voltage' + args.adc[i] + '_raw') + FileName.insert(i, TempName[0]) + try: + if len(FileName[i]) > 0: + f = open(FileName[i], 'r') + f.close() + time.sleep(0.001) + else: + raise UserWarning('Bad Filename') + except (UserWarning, IOError) : + print("Cannot read ADC input: %s" % Filename[i]) + sys.exit(1) + +thermistor = [] +R_Key = [] +for i in range(num_chan): + if args.therm[i] in Thermistor: + # Shuffle array to make three lists of values (Temp, Resistane, Alpha) + # so we can use bisect to efficiently do table lookups + thermistor.insert(i, map(list, zip(*Thermistor[args.therm[i]])) ) + + # Pull out the resistance values to use as a key for bisect + R_Key.insert(i, thermistor[i][1] ) + + else: + print("Unknown thermistor type: %s" % args.therm) + print 'Try one of:', Thermistor.keys() + sys.exit(1) + +h = hal.component(args.name) +for i in range(num_chan): + h.newpin("raw" + str(i), hal.HAL_U32, hal.HAL_OUT) + h.newpin("temp" + str(i), hal.HAL_FLOAT, hal.HAL_OUT) + +h.ready() + +Err = 0.0 +ADC_V = 0.0 +temp = 0.0 + +while 1: + try: + for i in range(num_chan): + f = open(FileName[i], 'r') + ADC_IN = int(f.readline()) + h['raw' + str(i)] = ADC_IN + ADC_V = float(ADC_IN) * 1.8 / 4096.0 + temp = r2t(i,adc2r(ADC_V)) + h['temp' + str(i)] = temp + #print ADC_IN, temp + f.close() + time.sleep(0.001) + + time.sleep(0.049) + + except IOError: + continue + + except KeyboardInterrupt: + raise SystemExit + diff --git a/configs/ARM/BeagleBone/PocketNC/dtc.sh b/configs/ARM/BeagleBone/PocketNC/dtc.sh new file mode 100644 index 00000000000..74df11ae5d8 --- /dev/null +++ b/configs/ARM/BeagleBone/PocketNC/dtc.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +dtc -O dtb -o PocketNCdriver-00A0.dtbo -b 0 -@ PocketNCdriver-00A0.dts && \ +cp PocketNCdriver-00A0.dtbo /lib/firmware/ + diff --git a/configs/ARM/BeagleBone/PocketNC/install b/configs/ARM/BeagleBone/PocketNC/install new file mode 100644 index 00000000000..b4b3ddd52a3 --- /dev/null +++ b/configs/ARM/BeagleBone/PocketNC/install @@ -0,0 +1,13 @@ +#!/bin/bash + +echo "To start Machinekit preconfigured for PocketNC, simply type:" +echo " PocketNC" + +echo '#!/bin/bash' > /usr/bin/PocketNC +echo "machinekit $PWD/PocketNC.ini" >> /usr/bin/PocketNC +chown 750 /usr/bin/PocketNC +chmod +x /usr/bin/PocketNC + +chmod +x dtc.sh +./dtc.sh + diff --git a/configs/ARM/BeagleBone/PocketNC/setup.bridge.sh b/configs/ARM/BeagleBone/PocketNC/setup.bridge.sh new file mode 100644 index 00000000000..0a6257c3f43 --- /dev/null +++ b/configs/ARM/BeagleBone/PocketNC/setup.bridge.sh @@ -0,0 +1,99 @@ +#!/bin/bash + +dtbo_err () { + echo "Error loading device tree overlay file: $DTBO" >&2 + exit 1 +} + +pin_err () { + echo "Error exporting pin:$PIN" >&2 + exit 1 +} + +dir_err () { + echo "Error setting direction:$DIR on pin:$PIN" >&2 + exit 1 +} + +SLOTS=/sys/devices/bone_capemgr.*/slots + +# Make sure required device tree overlay(s) are loaded +for DTBO in PocketNCdriver cape-bone-iio ; do + + if grep -q $DTBO $SLOTS ; then + echo $DTBO overlay found + else + echo Loading $DTBO overlay + sudo -A su -c "echo $DTBO > $SLOTS" || dtbo_err + sleep 1 + fi +done; + +if [ ! -r /sys/devices/ocp.*/helper.*/AIN0 ] ; then + echo Analog input files not found in /sys/devices/ocp.*/helper.* >&2 + exit 1; +fi + +if [ ! -r /sys/class/uio/uio0 ] ; then + echo PRU control files not found in /sys/class/uio/uio0 >&2 + exit 1; +fi + +# Export GPIO pins: +# One pin needs to be exported to enable the low-level clocks for the GPIO +# modules (there is probably a better way to do this) +# +# Any GPIO pins driven by the PRU need to have their direction set properly +# here. The PRU does not do any setup of the GPIO, it just yanks on the +# pins and assumes you have the output enables configured already +# +# Direct PRU inputs and outputs do not need to be configured here, the pin +# mux setup (which is handled by the device tree overlay) should be all +# the setup needed. +# +# Any GPIO pins driven by the hal_bb_gpio driver do not need to be +# configured here. The hal_bb_gpio module handles setting the output +# enable bits properly. These pins _can_ however be set here without +# causing problems. You may wish to do this for documentation or to make +# sure the pin starts with a known value as soon as possible. + +while read PIN DIR JUNK ; do + case "$PIN" in + ""|\#*) + continue ;; + *) + [ -r /sys/class/gpio/gpio$PIN ] && continue + sudo -A su -c "echo $PIN > /sys/class/gpio/export" || pin_err + sudo -A su -c "echo $DIR > /sys/class/gpio/gpio$PIN/direction" || dir_err + ;; + esac + +done <<- EOF + 66 out # P8.7 gpio2.2 Enable_n (ECO location) +# 67 out # P8.8 gpio2.3 X_Min +# 69 out # P8.9 gpio2.5 X_Max +# 68 out # P8.10 gpio2.4 Y_Min + 45 out # P8.11 gpio1.13 X_Dir + 44 out # P8.12 gpio1.12 X_Step + 23 out # P8.13 gpio0.23 PWM0 +# 26 out # P8.14 gpio0.26 Y_Max + 47 out # P8.15 gpio1.15 Y_Dir + 46 out # P8.16 gpio1.14 Y_Step +# 27 out # P8.17 gpio0.27 Z_Min +# 65 out # P8.18 gpio2.1 Z_Max + 22 out # P8.19 gpio0.22 PWM1 +# 61 out # p8.26 gpio1.29 Status + 50 out # p9.14 gpio1.18 PWM2 + 48 out # p9.15 gpio1.16 Z_Step +# 5 out # p9.17 gpio0.5 B_Dir +# 4 out # p9.18 gpio0.4 B_Step +# 3 out # p9.21 gpio0.3 A_Dir +# 2 out # p9.22 gpio0.2 A_Step + 112 out # p9.30 gpio3.16 B_Dir + 111 out # p9.29 gpio3.15 B_Step + 113 out # p9.21 gpio0.3 A_Dir + 115 out # p9.22 gpio0.2 A_Step + 49 out # P9.23 gpio1.17 Z_Dir +# 15 out # P9.24 gpio0.15 Spindle +# 14 out # P9.26 gpio0.14 Mtr_Ena +EOF diff --git a/configs/ARM/BeagleBone/PocketNC/tool.tbl b/configs/ARM/BeagleBone/PocketNC/tool.tbl new file mode 100644 index 00000000000..c0b72de0652 --- /dev/null +++ b/configs/ARM/BeagleBone/PocketNC/tool.tbl @@ -0,0 +1,4 @@ +T1 P1 D0.125000 Z+0.511000 ;1/8 end mill +T2 P2 D0.062500 Z+0.100000 ;1/16 end mill +T3 P3 D0.201000 Z+1.273000 ;#7 tap drill +T99999 P99999 Z+0.100000 ;big tool number diff --git a/configs/ARM/BeagleBone/Probotix/Comet.hal b/configs/ARM/BeagleBone/Probotix/Comet.hal new file mode 100644 index 00000000000..310cf43bd27 --- /dev/null +++ b/configs/ARM/BeagleBone/Probotix/Comet.hal @@ -0,0 +1,150 @@ +# configuration for 3-axis gantry router with tandem motors on the y-axis +# also supports a Logitech F310 Gamepad as a jog pendant if loaded by custom_postgui.hal + +# Launch the setup script to make sure hardware setup looks good +loadusr -w ./setup.sh + +loadrt trivkins +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]SERVO_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins +#loadrt probe_parport +#loadrt hal_parport cfg=0x378 +#setp parport.0.reset-time 5000 +#loadrt stepgen step_type=0,0,0 +# loadrt threads fp1=0 name1=fast period1=50000 name2=slow period2=1000000 + +loadrt hal_bb_gpio output_pins=113,116 input_pins=108,114,115,117,118 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg +#loadrt gantry count=1 personality=2 +newinst gantry gantry.0 pincount=2 + +addf hpg.capture-position servo-thread +addf bb_gpio.read servo-thread +addf gantry.0.read servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf gantry.0.write servo-thread +addf hpg.update servo-thread +addf bb_gpio.write servo-thread + + +# setup GPIO polarity +setp bb_gpio.p8.in-08.invert 0 +setp bb_gpio.p8.in-14.invert 0 +setp bb_gpio.p8.in-15.invert 1 +setp bb_gpio.p8.in-17.invert 0 +setp bb_gpio.p8.in-18.invert 0 + + +# set up the axis parameters and create the axis signals + +# x-axis +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE +setp hpg.stepgen.00.steplen 2000 +setp hpg.stepgen.00.stepspace 2000 +setp hpg.stepgen.00.dirhold 35000 +setp hpg.stepgen.00.dirsetup 35000 +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAXACCEL +#setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +net xpos-cmd axis.0.motor-pos-cmd => hpg.stepgen.00.position-cmd +net xpos-fb hpg.stepgen.00.position-fb => axis.0.motor-pos-fb +net xenable axis.0.amp-enable-out => hpg.stepgen.00.enable + +setp hpg.stepgen.00.steppin 142 +setp hpg.stepgen.00.dirpin 143 + +# y-axis gantry +net y1pos-cmd gantry.0.joint.00.pos-cmd => hpg.stepgen.01.position-cmd +net y1pos-fb gantry.0.joint.00.pos-fb <= hpg.stepgen.01.position-fb +net y2pos-cmd gantry.0.joint.01.pos-cmd => hpg.stepgen.02.position-cmd +net y2pos-fb gantry.0.joint.01.pos-fb <= hpg.stepgen.02.position-fb +net ypos-cmd gantry.0.position-cmd <= axis.1.motor-pos-cmd +net ypos-fb gantry.0.position-fb => axis.1.motor-pos-fb +net yenable axis.1.amp-enable-out => hpg.stepgen.01.enable hpg.stepgen.02.enable +setp gantry.0.search-vel [AXIS_1]HOME_SEARCH_VEL + +# y1-axis +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE +setp hpg.stepgen.01.steplen 2000 +setp hpg.stepgen.01.stepspace 2000 +setp hpg.stepgen.01.dirhold 35000 +setp hpg.stepgen.01.dirsetup 35000 +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAXACCEL + +setp hpg.stepgen.01.steppin 144 +setp hpg.stepgen.01.dirpin 145 + +# y2-axis +setp hpg.stepgen.02.position-scale [AXIS_1]SCALE +setp hpg.stepgen.02.steplen 2000 +setp hpg.stepgen.02.stepspace 2000 +setp hpg.stepgen.02.dirhold 35000 +setp hpg.stepgen.02.dirsetup 35000 +setp hpg.stepgen.02.maxaccel [AXIS_1]STEPGEN_MAXACCEL + +setp hpg.stepgen.02.steppin 52 +setp hpg.stepgen.02.dirpin 147 + +# z-axis +setp hpg.stepgen.03.position-scale [AXIS_2]SCALE +setp hpg.stepgen.03.steplen 2000 +setp hpg.stepgen.03.stepspace 2000 +setp hpg.stepgen.03.dirhold 35000 +setp hpg.stepgen.03.dirsetup 35000 +setp hpg.stepgen.03.maxaccel [AXIS_2]STEPGEN_MAXACCEL +net zpos-cmd axis.2.motor-pos-cmd => hpg.stepgen.03.position-cmd +net zpos-fb hpg.stepgen.03.position-fb => axis.2.motor-pos-fb +net zenable axis.2.amp-enable-out => hpg.stepgen.03.enable + +setp hpg.stepgen.03.steppin 39 +setp hpg.stepgen.03.dirpin 149 + + +# debounce the y-axis switches and connect them to signals +net switches-y1 <= bb_gpio.p8.in-08 +net switches-y2 <= bb_gpio.p8.in-14 + +# join the home switch signals so that both switches have to be closed to trigger a home position +net switches-y1 => gantry.0.joint.00.home +net switches-y2 => gantry.0.joint.01.home +net home-y <= gantry.0.home +net home-y => axis.1.home-sw-in +net limit-y <= gantry.0.limit +net limit-y => axis.1.neg-lim-sw-in + +# set up the other home and limit switches +net switches-x <= bb_gpio.p8.in-18 +net switches-x => axis.0.home-sw-in +net switches-x => axis.0.neg-lim-sw-in +net switches-x => axis.0.pos-lim-sw-in + +net switches-z <= bb_gpio.p8.in-17 +net switches-z => axis.2.home-sw-in +net switches-z => axis.2.pos-lim-sw-in + +# connect the spindle control to the relay pin +net spindle-cw => bb_gpio.p8.out-16 +net spindle-cw <= motion.spindle-forward + +# connect the shop vac to the flood coolant signal +net flood => iocontrol.0.coolant-flood +net flood => bb_gpio.p8.out-13 + +# set up the e-stop switch +net estop-ext <= bb_gpio.p8.in-15 +net estop-ext => iocontrol.0.emc-enable-in + + + +#net estop-out <= iocontrol.0.user-enable-out +#net estop-out => iocontrol.0.emc-enable-in + +net estop-out <= iocontrol.0.user-enable-out + + +loadusr -W hal_manualtoolchange +net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change +net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed +net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number +net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared diff --git a/configs/ARM/BeagleBone/Probotix/Comet.ini b/configs/ARM/BeagleBone/Probotix/Comet.ini new file mode 100644 index 00000000000..b964ec10b37 --- /dev/null +++ b/configs/ARM/BeagleBone/Probotix/Comet.ini @@ -0,0 +1,120 @@ +# Generated by stepconf at Thu Apr 9 23:04:57 2009 +# If you make changes to this file, they will be +# overwritten when you run stepconf again + +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=5 +PRUBIN=xenomai/pru_generic.bin + +[EMC] +MACHINE = Comet +#NML_FILE = emc.nml +DEBUG = 0 + +[DISPLAY] +DISPLAY = axis +POSITION_OFFSET = RELATIVE +POSITION_FEEDBACK = ACTUAL +MAX_FEED_OVERRIDE = 1.2 +INTRO_GRAPHIC = emc2.gif +INTRO_TIME = 5 +PROGRAM_PREFIX = /home/probotix/emc2/nc_files +INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in +#PYVCP = panel.xml + +[PENDANT] +SPEED_1 = 20 +SPEED_2 = 30 +SPEED_3 = 60 + +[TASK] +TASK = milltask +CYCLE_TIME = 0.010 + +[RS274NGC] +PARAMETER_FILE = inch.var + +[EMCMOT] +EMCMOT = motmod +SHMEM_KEY = 111 +COMM_TIMEOUT = 1.0 +COMM_WAIT = 0.010 +BASE_PERIOD = 110000 +SERVO_PERIOD = 1100000 + +[HAL] +HALFILE = Comet.hal +HALFILE = custom.hal +POSTGUI_HALFILE = custom_postgui.hal +HALUI = halui + +[TRAJ] +AXES = 3 +COORDINATES = X Y Z +LINEAR_UNITS = inch +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 5.0 +MAX_LINEAR_VELOCITY = 5.0 +NO_FORCE_HOMING = 0 + +[EMCIO] +EMCIO = io +CYCLE_TIME = 0.100 +TOOL_TABLE = tool.tbl + +[AXIS_0] +TYPE = LINEAR +HOME = 12.5 +MAX_VELOCITY = 5.0 +MAX_ACCELERATION = 6 +STEPGEN_MAXACCEL = 30 +SCALE = -800.0 +FERROR = 0.05 +MIN_FERROR = 0.01 +MIN_LIMIT = -0.1 +MAX_LIMIT = 25.2783 +HOME_OFFSET = -0.2 +HOME_SEARCH_VEL = -0.5 +HOME_LATCH_VEL = -0.2 +HOME_IGNORE_LIMITS = 1 +HOME_SEQUENCE = 1 +HOME_FINAL_VEL = 3.0 + +[AXIS_1] +TYPE = LINEAR +HOME = 12.5 +MAX_VELOCITY = 5.0 +MAX_ACCELERATION = 6 +STEPGEN_MAXACCEL = 30 +SCALE = -800.0 +FERROR = 0.05 +MIN_FERROR = 0.01 +MIN_LIMIT = -0.1 +MAX_LIMIT = 25.1152 +HOME_OFFSET = -0.2 +HOME_SEARCH_VEL = -0.5 +HOME_LATCH_VEL = -0.2 +HOME_IGNORE_LIMITS = 1 +HOME_SEQUENCE = 1 +HOME_FINAL_VEL = 3.0 + +[AXIS_2] +TYPE = LINEAR +HOME = 0 +MAX_VELOCITY = 1 +MAX_ACCELERATION = 10.0 +STEPGEN_MAXACCEL = 31.5 +SCALE = -2000 +FERROR = 0.05 +MIN_FERROR = 0.01 +MIN_LIMIT = -6.0 +MAX_LIMIT = 0.1 +HOME_OFFSET = 0.2 +HOME_SEARCH_VEL = 0.5 +HOME_LATCH_VEL = 0.2 +HOME_IGNORE_LIMITS = 1 +HOME_SEQUENCE = 0 + + diff --git a/configs/ARM/BeagleBone/Probotix/CometNP.ini b/configs/ARM/BeagleBone/Probotix/CometNP.ini new file mode 100644 index 00000000000..faf4c16c0b5 --- /dev/null +++ b/configs/ARM/BeagleBone/Probotix/CometNP.ini @@ -0,0 +1,120 @@ +# Generated by stepconf at Thu Apr 9 23:04:57 2009 +# If you make changes to this file, they will be +# overwritten when you run stepconf again + +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=5 +PRUBIN=xenomai/pru_generic.bin + +[EMC] +MACHINE = Comet_NP +#NML_FILE = emc.nml +DEBUG = 0 + +[DISPLAY] +DISPLAY = axis +POSITION_OFFSET = RELATIVE +POSITION_FEEDBACK = ACTUAL +MAX_FEED_OVERRIDE = 1.2 +INTRO_GRAPHIC = emc2.gif +INTRO_TIME = 5 +PROGRAM_PREFIX = /home/probotix/emc2/nc_files +INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in +#PYVCP = panel.xml + +[PENDANT] +SPEED_1 = 20 +SPEED_2 = 30 +SPEED_3 = 60 + +[TASK] +TASK = milltask +CYCLE_TIME = 0.010 + +[RS274NGC] +PARAMETER_FILE = inch.var + +[EMCMOT] +EMCMOT = motmod +SHMEM_KEY = 111 +COMM_TIMEOUT = 1.0 +COMM_WAIT = 0.010 +BASE_PERIOD = 110000 +SERVO_PERIOD = 1100000 + +[HAL] +HALFILE = Comet.hal +HALFILE = custom.hal +#POSTGUI_HALFILE = custom_postgui.hal +HALUI = halui + +[TRAJ] +AXES = 3 +COORDINATES = X Y Z +LINEAR_UNITS = inch +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 5.0 +MAX_LINEAR_VELOCITY = 5.0 +NO_FORCE_HOMING = 0 + +[EMCIO] +EMCIO = io +CYCLE_TIME = 0.100 +TOOL_TABLE = tool.tbl + +[AXIS_0] +TYPE = LINEAR +HOME = 12.5 +MAX_VELOCITY = 5.0 +MAX_ACCELERATION = 6 +STEPGEN_MAXACCEL = 30 +SCALE = -800.0 +FERROR = 0.05 +MIN_FERROR = 0.01 +MIN_LIMIT = -0.1 +MAX_LIMIT = 25.2783 +HOME_OFFSET = -0.2 +HOME_SEARCH_VEL = -0.5 +HOME_LATCH_VEL = -0.2 +HOME_IGNORE_LIMITS = 1 +HOME_SEQUENCE = 1 +HOME_FINAL_VEL = 3.0 + +[AXIS_1] +TYPE = LINEAR +HOME = 12.5 +MAX_VELOCITY = 5.0 +MAX_ACCELERATION = 6 +STEPGEN_MAXACCEL = 30 +SCALE = -800.0 +FERROR = 0.05 +MIN_FERROR = 0.01 +MIN_LIMIT = -0.1 +MAX_LIMIT = 25.1152 +HOME_OFFSET = -0.2 +HOME_SEARCH_VEL = -0.5 +HOME_LATCH_VEL = -0.2 +HOME_IGNORE_LIMITS = 1 +HOME_SEQUENCE = 1 +HOME_FINAL_VEL = 3.0 + +[AXIS_2] +TYPE = LINEAR +HOME = 0 +MAX_VELOCITY = 1 +MAX_ACCELERATION = 10.0 +STEPGEN_MAXACCEL = 31.5 +SCALE = -2000 +FERROR = 0.05 +MIN_FERROR = 0.01 +MIN_LIMIT = -6.0 +MAX_LIMIT = 0.1 +HOME_OFFSET = 0.2 +HOME_SEARCH_VEL = 0.5 +HOME_LATCH_VEL = 0.2 +HOME_IGNORE_LIMITS = 1 +HOME_SEQUENCE = 0 + + diff --git a/configs/ARM/BeagleBone/Probotix/CometNP_Metric.ini b/configs/ARM/BeagleBone/Probotix/CometNP_Metric.ini new file mode 100644 index 00000000000..b6a17666c51 --- /dev/null +++ b/configs/ARM/BeagleBone/Probotix/CometNP_Metric.ini @@ -0,0 +1,125 @@ +# Generated by stepconf at Thu Apr 9 23:04:57 2009 +# If you make changes to this file, they will be +# overwritten when you run stepconf again + +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=5 +PRUBIN=xenomai/pru_generic.bin + +[EMC] +MACHINE = Comet (metric) +#NML_FILE = emc.nml +DEBUG = 0 + +[DISPLAY] +DISPLAY = axis +POSITION_OFFSET = RELATIVE +POSITION_FEEDBACK = ACTUAL +MAX_FEED_OVERRIDE = 1.2 +INTRO_GRAPHIC = emc2.gif +INTRO_TIME = 5 +PROGRAM_PREFIX = /home/probotix/emc2/nc_files +INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm +#PYVCP = panel.xml + +[PENDANT] +SPEED_1 = 400 +SPEED_2 = 600 +SPEED_3 = 1200 + +[TASK] +TASK = milltask +CYCLE_TIME = 0.010 + +[RS274NGC] +PARAMETER_FILE = metric.var + +[EMCMOT] +EMCMOT = motmod +SHMEM_KEY = 111 +COMM_TIMEOUT = 1.0 +COMM_WAIT = 0.010 +BASE_PERIOD = 110000 +SERVO_PERIOD = 1100000 + +[HAL] +HALFILE = Comet.hal +HALFILE = custom.hal +#POSTGUI_HALFILE = custom_postgui.hal +HALUI = halui + +[TRAJ] +AXES = 3 +COORDINATES = X Y Z +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 12.70 +MAX_LINEAR_VELOCITY = 127.00 +NO_FORCE_HOMING = 0 + +[EMCIO] +EMCIO = io +CYCLE_TIME = 0.100 +TOOL_TABLE = tool.tbl + +[AXIS_0] +TYPE = LINEAR +HOME = 325 +MAX_VELOCITY = 127.0 +MAX_ACCELERATION = 762.0 +STEPGEN_MAXACCEL = 952.5 +SCALE = -31.4960629921 +FERROR = 1 +MIN_FERROR = .25 + +MIN_LIMIT = -3 +MAX_LIMIT = 650 +HOME_OFFSET = -5 +HOME_SEARCH_VEL = -13 +HOME_LATCH_VEL = -6 +HOME_IGNORE_LIMITS = 1 +HOME_SEQUENCE = 1 +HOME_FINAL_VEL = 127 + + +[AXIS_1] +TYPE = LINEAR +HOME = 320 +MAX_VELOCITY = 127.0 +MAX_ACCELERATION = 762.0 +STEPGEN_MAXACCEL = 952.5 +SCALE = -31.4960629921 +FERROR = 1 +MIN_FERROR = .25 + +MIN_LIMIT = -3 +MAX_LIMIT = 640 +HOME_OFFSET = -5 +HOME_SEARCH_VEL = -13 +HOME_LATCH_VEL = -6 +HOME_IGNORE_LIMITS = 1 +HOME_SEQUENCE = 1 +HOME_FINAL_VEL = 127 + + +[AXIS_2] +TYPE = LINEAR +HOME = 0 +MAX_VELOCITY = 25 +MAX_ACCELERATION = 254.0 +STEPGEN_MAXACCEL = 317.5 +SCALE = -78.7401574803 +FERROR = 1 +MIN_FERROR = .25 + +MIN_LIMIT = -130 +MAX_LIMIT = 3 +HOME_OFFSET = 5 +HOME_SEARCH_VEL = 13 +HOME_LATCH_VEL = 6 +HOME_IGNORE_LIMITS = 1 +HOME_SEQUENCE = 0 + + diff --git a/configs/ARM/BeagleBone/Probotix/Comet_Metric.ini b/configs/ARM/BeagleBone/Probotix/Comet_Metric.ini new file mode 100644 index 00000000000..40eed3552ca --- /dev/null +++ b/configs/ARM/BeagleBone/Probotix/Comet_Metric.ini @@ -0,0 +1,125 @@ +# Generated by stepconf at Thu Apr 9 23:04:57 2009 +# If you make changes to this file, they will be +# overwritten when you run stepconf again + +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=5 +PRUBIN=xenomai/pru_generic.bin + +[EMC] +MACHINE = Comet (metric) +#NML_FILE = emc.nml +DEBUG = 0 + +[DISPLAY] +DISPLAY = axis +POSITION_OFFSET = RELATIVE +POSITION_FEEDBACK = ACTUAL +MAX_FEED_OVERRIDE = 1.2 +INTRO_GRAPHIC = emc2.gif +INTRO_TIME = 5 +PROGRAM_PREFIX = /home/probotix/emc2/nc_files +INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm +#PYVCP = panel.xml + +[PENDANT] +SPEED_1 = 400 +SPEED_2 = 600 +SPEED_3 = 1200 + +[TASK] +TASK = milltask +CYCLE_TIME = 0.010 + +[RS274NGC] +PARAMETER_FILE = metric.var + +[EMCMOT] +EMCMOT = motmod +SHMEM_KEY = 111 +COMM_TIMEOUT = 1.0 +COMM_WAIT = 0.010 +BASE_PERIOD = 110000 +SERVO_PERIOD = 1100000 + +[HAL] +HALFILE = Comet.hal +HALFILE = custom.hal +POSTGUI_HALFILE = custom_postgui.hal +HALUI = halui + +[TRAJ] +AXES = 3 +COORDINATES = X Y Z +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 12.70 +MAX_LINEAR_VELOCITY = 127.00 +NO_FORCE_HOMING = 0 + +[EMCIO] +EMCIO = io +CYCLE_TIME = 0.100 +TOOL_TABLE = tool.tbl + +[AXIS_0] +TYPE = LINEAR +HOME = 325 +MAX_VELOCITY = 127.0 +MAX_ACCELERATION = 762.0 +STEPGEN_MAXACCEL = 952.5 +SCALE = -31.4960629921 +FERROR = 1 +MIN_FERROR = .25 + +MIN_LIMIT = -3 +MAX_LIMIT = 650 +HOME_OFFSET = -5 +HOME_SEARCH_VEL = -13 +HOME_LATCH_VEL = -6 +HOME_IGNORE_LIMITS = 1 +HOME_SEQUENCE = 1 +HOME_FINAL_VEL = 127 + + +[AXIS_1] +TYPE = LINEAR +HOME = 320 +MAX_VELOCITY = 127.0 +MAX_ACCELERATION = 762.0 +STEPGEN_MAXACCEL = 952.5 +SCALE = -31.4960629921 +FERROR = 1 +MIN_FERROR = .25 + +MIN_LIMIT = -3 +MAX_LIMIT = 640 +HOME_OFFSET = -5 +HOME_SEARCH_VEL = -13 +HOME_LATCH_VEL = -6 +HOME_IGNORE_LIMITS = 1 +HOME_SEQUENCE = 1 +HOME_FINAL_VEL = 127 + + +[AXIS_2] +TYPE = LINEAR +HOME = 0 +MAX_VELOCITY = 25 +MAX_ACCELERATION = 254.0 +STEPGEN_MAXACCEL = 317.5 +SCALE = -78.7401574803 +FERROR = 1 +MIN_FERROR = .25 + +MIN_LIMIT = -130 +MAX_LIMIT = 3 +HOME_OFFSET = 5 +HOME_SEARCH_VEL = 13 +HOME_LATCH_VEL = 6 +HOME_IGNORE_LIMITS = 1 +HOME_SEQUENCE = 0 + + diff --git a/configs/ARM/BeagleBone/Probotix/README b/configs/ARM/BeagleBone/Probotix/README new file mode 100644 index 00000000000..8a9d0518b00 --- /dev/null +++ b/configs/ARM/BeagleBone/Probotix/README @@ -0,0 +1,13 @@ +Configurations for a Probotix Comet router + +Comet + Imperial (inch) configuration with Logitech gamepad MPG + +Comet_Metric + Metric configuration with Logitech gamepad MPG + +CometNP + Imperial (inch) configuration with no MPG + +CometNP_Metric + Metric configuration with no MPG diff --git a/configs/ARM/BeagleBone/Probotix/custom.hal b/configs/ARM/BeagleBone/Probotix/custom.hal new file mode 100644 index 00000000000..395d3660900 --- /dev/null +++ b/configs/ARM/BeagleBone/Probotix/custom.hal @@ -0,0 +1,2 @@ +# Include your customized HAL commands here +# This file will not be overwritten when you run stepconf again diff --git a/configs/ARM/BeagleBone/Probotix/custom_postgui.hal b/configs/ARM/BeagleBone/Probotix/custom_postgui.hal new file mode 100644 index 00000000000..c668cdda7b0 --- /dev/null +++ b/configs/ARM/BeagleBone/Probotix/custom_postgui.hal @@ -0,0 +1,60 @@ +# Include your customized HAL commands here +# The commands in this file are run after the AXIS GUI (including PyVCP panel) +# starts +# This file will not be overwritten when you run stepconf again + +# load the Gamepad Pro module +loadusr -W hal_input -KRAL X-Box + +# load the modules for the pendant +loadrt or2 count=2 +loadrt mux4 count=1 + +setp halui.jog-speed 10 + +addf or2.0 servo-thread +addf or2.1 servo-thread +addf mux4.0 servo-thread +#addf not.1 servo-thread + +#net reverse_button not.1.in <= input.button.4 +#net estop-ext2 <= not.1.out +#net estop-ext2 => iocontrol.0.emc-enable-in + +setp mux4.0.in0 0 +setp mux4.0.in1 [PENDANT]SPEED_1 +setp mux4.0.in2 [PENDANT]SPEED_2 +setp mux4.0.in3 [PENDANT]SPEED_3 + +net remote-speed-slow or2.0.in0 input.0.btn-x +net remote-speed-medium or2.1.in0 input.0.btn-a +net remote-speed-fast or2.0.in1 or2.1.in1 input.0.btn-b + +net joy-speed-1 mux4.0.sel0 <= or2.0.out +net joy-speed-2 mux4.0.sel1 <= or2.1.out +net joy-speed-final halui.jog-speed <= mux4.0.out + +net joy-x-jog halui.jog.0.analog <= input.0.abs-x-position +#net joy-y-jog halui.jog.1.analog <= input.0.abs-y-position +#net joy-z-jog halui.jog.2.analog <= input.0.abs-ry-position + +loadrt sum2 count=2 +addf sum2.0 servo-thread +addf sum2.1 servo-thread + +setp sum2.0.gain0 -1 +net reverse-y sum2.0.in0 <= input.0.abs-y-position +net joy-y-jog halui.jog.1.analog <= sum2.0.out + +setp sum2.1.gain0 -1 +net reverse-z sum2.1.in0 <= input.0.abs-ry-position +net joy-z-jog halui.jog.2.analog <= sum2.1.out + +#net button-home-all <= input.button.8 +#net button-home-all => halui.joint.2.home + +#net button-abort <= input.button.4 +#net button-abort => halui.abort + + + diff --git a/configs/ARM/BeagleBone/Probotix/panel.xml b/configs/ARM/BeagleBone/Probotix/panel.xml new file mode 100644 index 00000000000..f91b88e18aa --- /dev/null +++ b/configs/ARM/BeagleBone/Probotix/panel.xml @@ -0,0 +1,7 @@ + + + + diff --git a/configs/ARM/BeagleBone/Probotix/setup.sh b/configs/ARM/BeagleBone/Probotix/setup.sh new file mode 100755 index 00000000000..928cfb719a1 --- /dev/null +++ b/configs/ARM/BeagleBone/Probotix/setup.sh @@ -0,0 +1,98 @@ +#!/bin/bash +# Copyright 2014 +# Charles Steinkuehler +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +dtbo_err () { + echo "Error loading device tree overlay file: $DTBO" >&2 + exit 1 +} + +pin_err () { + echo "Error exporting pin:$PIN" >&2 + exit 1 +} + +dir_err () { + echo "Error setting direction:$DIR on pin:$PIN" >&2 + exit 1 +} + +SLOTS=/sys/devices/bone_capemgr.*/slots + +# Make sure required device tree overlay(s) are loaded +for DTBO in cape-universal ; do + + if grep -q $DTBO $SLOTS ; then + echo $DTBO overlay found + else + echo Loading $DTBO overlay + sudo -A su -c "echo $DTBO > $SLOTS" || dtbo_err + sleep 1 + fi +done; + +if [ ! -r /sys/class/uio/uio0 ] ; then + echo PRU control files not found in /sys/class/uio/uio0 >&2 + exit 1; +fi + +# Export GPIO pins: +# One pin needs to be exported to enable the low-level clocks for the GPIO +# modules (there is probably a better way to do this) +# +# Any GPIO pins driven by the PRU need to have their direction set properly +# here. The PRU does not do any setup of the GPIO, it just yanks on the +# pins and assumes you have the output enables configured already +# +# Direct PRU inputs and outputs do not need to be configured here, the pin +# mux setup (which is handled by the device tree overlay) should be all +# the setup needed. +# +# Any GPIO pins driven by the hal_bb_gpio driver do not need to be +# configured here. The hal_bb_gpio module handles setting the output +# enable bits properly. These pins _can_ however be set here without +# causing problems. You may wish to do this for documentation or to make +# sure the pin starts with a known value as soon as possible. + +sudo $(which config-pin) -f - <<- EOF + + P8.08 in # Y Limit + P8.11 low # YENA / RELAY2 / BSTP / ASTP + P8.12 low # XENA / RELAY3 / BSTP / ADIR + P8.13 low # AENA / RELAY2 + P8.14 in # Z Limit + P8.15 in # ESTOP + P8.16 low # ZENA / RELAY1 / BENA / RELAY1 + P8.17 in # A Limit + P8.18 in # X Limit + P8.19 low # PWM 2 + + P9.14 low # PWM 3 + P9.25 low # ZDIR + P9.27 low # ADIR / Y2DIR + P9.28 low # YDIR / Y1DIR + P9.29 low # XDIR + P9.30 low # YSTP / Y1STP + P9.31 low # XSTP + + P9.41 low # ASTP / Y2STP + P9.91 in # Reserved, connected to P9.41 + + P9.42 low # ZSTP + P9.92 in # Reserved, connected to P9.42 +EOF + diff --git a/configs/ARM/BeagleBone/Probotix/tool.tbl b/configs/ARM/BeagleBone/Probotix/tool.tbl new file mode 100644 index 00000000000..1744d6833bb --- /dev/null +++ b/configs/ARM/BeagleBone/Probotix/tool.tbl @@ -0,0 +1,8 @@ +POC FMS LEN DIAM COMMENT + +1 1 0.5 0.0625 first tool +2 2 0.7 0.125 +3 3 0.5 1.25 +4 4 0.7 1.0 +5 5 0 0.5 +32 32 0.5 0.0 last tool diff --git a/configs/ARM/BeagleBone/Replicape/3D.Temps.panel.xml b/configs/ARM/BeagleBone/Replicape/3D.Temps.panel.xml new file mode 100644 index 00000000000..327742118ae --- /dev/null +++ b/configs/ARM/BeagleBone/Replicape/3D.Temps.panel.xml @@ -0,0 +1,37 @@ + + + + + +
+
+ + + +
+
+
diff --git a/configs/ARM/BeagleBone/Replicape/3D.postgui.hal b/configs/ARM/BeagleBone/Replicape/3D.postgui.hal new file mode 100644 index 00000000000..c9e3dbe54dc --- /dev/null +++ b/configs/ARM/BeagleBone/Replicape/3D.postgui.hal @@ -0,0 +1,14 @@ +# Include your customized HAL commands here +# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts + +net e0.temp.set-actual => pyvcp.e0.sv +net e0.temp.meas => pyvcp.e0.pv +net e0.on => pyvcp.e0.on +net e0.temp.ov => mux2.0.sel <= pyvcp.e0.ov +net e0.temp.set-ov => mux2.0.in1 <= pyvcp.e0.set-sv-f + +net bed.temp.set-actual => pyvcp.bed.sv +net bed.temp.meas => pyvcp.bed.pv +net bed.on => pyvcp.bed.on +net bed.temp.ov => mux2.1.sel <= pyvcp.bed.ov +net bed.temp.set-ov => mux2.1.in1 <= pyvcp.bed.set-sv-f diff --git a/configs/ARM/BeagleBone/Replicape/LICENSE b/configs/ARM/BeagleBone/Replicape/LICENSE new file mode 100644 index 00000000000..8cdb8451d9b --- /dev/null +++ b/configs/ARM/BeagleBone/Replicape/LICENSE @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {description} + Copyright (C) {year} {fullname} + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + {signature of Ty Coon}, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + diff --git a/configs/ARM/BeagleBone/Replicape/README b/configs/ARM/BeagleBone/Replicape/README new file mode 100644 index 00000000000..8e436da3a9d --- /dev/null +++ b/configs/ARM/BeagleBone/Replicape/README @@ -0,0 +1,22 @@ +Replicape Configuration for MachineKit +====================================== + +This is to make Replicape usable in Machinekit, essentially this contains: +* A sample HAL linking up the hardware and GPIO +* An PyVCP for temperature monitoring (adopted from CRAMPS config) +* Python HAL module for PWM controlling (Replicape uses a dedicated PWM controller) +* Python HAL module for Stepper configuration such as Enable, Microstepping, Decay, and DAC configuration for the stepper current settings. + +This is developed based on the CRAMPS configuration that comes with the Machinekit. This uses the same generic PRUSS firmware that comes with Machinekit/CRAMPS in case you are interested. + +Prerequisite +------------ +* Machinekit (of course) +* Device Overlay Tree for Replicape +See README in Redeem for details https://bitbucket.org/intelligentagent/redeem/src/ +* Python Module spi, smbus + +Bugs / TODO +----------- +* You might need to copy the M1xx ncfiles to your PROGRAM_PREFIX folder. The 'getp' halcmd in them should be changed to 'gets'. +* The acceleration, velocity, microstepping, stepper current settings must be tuned for your system diff --git a/configs/ARM/BeagleBone/Replicape/hal_hwconfig_replicape b/configs/ARM/BeagleBone/Replicape/hal_hwconfig_replicape new file mode 100755 index 00000000000..a4d98420764 --- /dev/null +++ b/configs/ARM/BeagleBone/Replicape/hal_hwconfig_replicape @@ -0,0 +1,154 @@ +#!/usr/bin/python +# encoding: utf-8 +# vim: set sw=4 sts=4 et: + +''' +A machinekit/LinuxCNC user module for Replicape hardware config + +Configure the steppers on Replicape A4/A4A through HAL +Driver mode pins are connected through a bit shifter and +hence accessible with SPI. Current limit is through an DAC chip. + +The settings are populated when the "enable" pin is turned on + +The following pins are exported +* enable + Enable the steppers +* stepper.x.microstepping + Microstepping settings for steppers 0 to 5. + Value is treated as 1/2^x, e.g. 5 means 1/32 microstepping mode. +* stepper.x.decay + True for slow decay +* stepper.x.current + Current settings for steppers 0 to 5. + Value is treated as current in Amps + +Copyright (C) 2013 Sam Wong +GNU GPL Version 2.0 or (at your option) any later version +''' + +import argparse +import glob +import sys +import time + +import hal +from spi import SPI + +parser = argparse.ArgumentParser(description='HAL component to configure Replicape hardware') +parser.add_argument('-n','--name', help='HAL component name',required=True) +args = parser.parse_args() + +# Initialize SPI +spi2_0 = None +spi2_1 = None + +# Load SPI module +try: + # init the SPI for the DAC + try: + spi2_0 = SPI((0, 0)) + except IOError: + spi2_0 = SPI((1, 0)) + spi2_0.mode = 1 + + # Init the SPI for the serial to parallel + try: + spi2_1 = SPI((0, 1)) + except IOError: + spi2_1 = SPI((1, 1)) + spi2_1.mode = 0 +except IOError: + print("Unable to set up SPI") + exit(-1) + +# Initialize HAL +h = hal.component(args.name) +enablePin = h.newpin("enable", hal.HAL_BIT, hal.HAL_IN) + +N = 5 # We have 5 steppers +microsteppingPins = [None] * N +decayPins = [None] * N +currentPins = [None] * N + +vRef = 3.3 +rSense = 0.1 + +for i in range(0,N): + microsteppingPins[i] = h.newparam(("stepper.%d.microstepping" % i), hal.HAL_U32, hal.HAL_RW) + decayPins[i] = h.newparam(("stepper.%d.decay" % i), hal.HAL_BIT, hal.HAL_RW) + currentPins[i] = h.newparam(("stepper.%d.current" % i), hal.HAL_FLOAT, hal.HAL_RW) +h.ready() + +''' +The bits in the shift register are as follows (Rev A4) : +Bit - name - init val +D0 = - = Don't Care +D1 = MODE2 = 0 +D2 = MODE1 = 0 +D3 = MODE0 = 0 +D4 = nENABLE = 0 - Enabled +D5 = DECAY = 0 - Slow decay +D6 = nSLEEP = 1 - Not sleeping +D7 = nRESET = 1 - Not in reset mode +''' + +def commit(): + ''' Turn on the stepper chips ''' + + # Writing the current + for i in range(0,N): + vOut = currentPins[i].value * 5.0 * rSense + dacVal = int((vOut * 256.0) / vRef) + spi2_0.write([ \ + (dacVal & 0xF0) >> 4 | (i << 4), \ + (dacVal & 0x0F) << 4]) + spi2_0.write([0xA0, 0xFF]) # Commits to output + + # Writing the modes + bytes = [] + for i in range(0,N): + state = decayPins[i].value << 5 | \ + ((microsteppingPins[i].value & 0x04) >> 2) << 1 | \ + ((microsteppingPins[i].value & 0x02) >> 1) << 2 | \ + ((microsteppingPins[i].value & 0x01) >> 0) << 3 | \ + 0 << 4 | 1 << 6 | 1 << 7 + bytes.append(state) + # Reverse the writting orders due to serial chain sequence + spi2_1.write(bytes[::-1]) + +def reset(): + ''' Reset the stepper chip ''' + bytes = [] + for i in range(0,N): + state = 1 << 4 | 0 << 6 | 0 << 7 + bytes.append(state) + # Reverse the writting orders due to serial chain sequence + spi2_1.write(bytes[::-1]) + +def turnOff(): + ''' Turn off all stepper chips ''' + bytes = [] + for i in range(0,N): + state = 1 << 4 | 0 << 6 | 1 << 7 + bytes.append(state) + # Reverse the writting orders due to serial chain sequence + spi2_1.write(bytes[::-1]) + +try: + oldEnable = False + reset() + while (True): + enable = enablePin.value + if (enable and not oldEnable): + commit() + if (oldEnable and not enable): + turnOff() + oldEnable = enable + + time.sleep(0.05) +except BaseException as e: + reset() + print(("exiting HAL component %s: %s") % (args.name, e)) + h.exit() + diff --git a/configs/ARM/BeagleBone/Replicape/hal_pwm_replicape b/configs/ARM/BeagleBone/Replicape/hal_pwm_replicape new file mode 100755 index 00000000000..89897511ed2 --- /dev/null +++ b/configs/ARM/BeagleBone/Replicape/hal_pwm_replicape @@ -0,0 +1,120 @@ +#!/usr/bin/python +# encoding: utf-8 +# vim: set sw=4 sts=4 et: + +''' +A machinekit/LinuxCNC user module for Replicape PWM control + +The PWM is enabled when the "enable" pin is turned on + +The following pins are exported +* enable + Enable the PWM +* out.x + PWM output for channel 0 to 15. Values are from 0.0 to 1.0 + +Copyright (C) 2013 Sam Wong +GNU GPL Version 2.0 or (at your option) any later version +''' + +import argparse +import glob +import sys +import time + +import hal +import smbus + +parser = argparse.ArgumentParser(description='HAL component to configure Replicape hardware') +parser.add_argument('-n','--name', help='HAL component name',required=True) +parser.add_argument('-d', '--debug', help='Debug - Turn off all output and exit', action='store_true') +args = parser.parse_args() + +PCA9685_ADDR = 0x70 +PCA9685_MODE1 = 0x0 +PCA9685_PRESCALE = 0xFE +PCA9685_ALL_LED_ON_L = 0xFA +N = 16 + +bus = None +try: + try: + bus = smbus.SMBus(2) + except IOError: + bus = smbus.SMBus(1) +except IOError: + print("Unable to set up PWM chip") + exit(-1) + +def initChip(): + bus.write_byte(0x00, 0x06) # Broadcast Reset + time.sleep(0.01) + + freq = 100 + prescaleval = 25000000 + prescaleval /= 4096 + prescaleval /= float(freq) + prescaleval -= 1 + prescale = int(prescaleval + 0.5) + + bus.write_byte_data(PCA9685_ADDR, PCA9685_MODE1, 0x11) # Sleep + bus.write_byte_data(PCA9685_ADDR, PCA9685_PRESCALE, prescale) + bus.write_byte_data(PCA9685_ADDR, PCA9685_MODE1, 0x21) # Out of sleep + time.sleep(0.01) + bus.write_byte_data(PCA9685_ADDR, PCA9685_MODE1, 0xA1) # Restart, AI, Allcall + +def turnOff(): + bus.write_i2c_block_data(PCA9685_ADDR, PCA9685_ALL_LED_ON_L, [0, 0, 0, 0x10]); # All off + if (not args.debug): + for i in range(0,N): + onPins[i].value = 0 + oldOutputs[i] = 0 + +for i in range(0,N): + oldOutputs = 0.0 + +if (not args.debug): + # Initialize HAL + h = hal.component(args.name) + enablePin = h.newpin("enable", hal.HAL_BIT, hal.HAL_IN) + outPins = [None] * N + onPins = [None] * N + oldOutputs = [0] * N + for i in range(0,N): + outPins[i] = h.newpin(("%d.out" % i), hal.HAL_FLOAT, hal.HAL_IN) + onPins[i] = h.newpin(("%d.on" % i), hal.HAL_BIT, hal.HAL_OUT) + onPins[i].value = 0 + h.ready() + +initChip() +turnOff() + +if (args.debug): + exit(0) + +def commit(): + for i in range(0,N): + if (outPins[i].value != oldOutputs[i]): + oldOutputs[i] = outPins[i].value + off = min(1.0, oldOutputs[i]) + off = int(off * 4095) + onPins[i].value = off > 0 + bytes = [0x00, 0x00, off & 0xFF, off >> 8] + bus.write_i2c_block_data(PCA9685_ADDR, 0x06 + (4 * i), bytes) + +try: + oldEnable = False + while (True): + enable = enablePin.value + if (enable): + commit() + if (oldEnable and not enable): + turnOff() + oldEnable = enable + + time.sleep(0.05) +except BaseException as e: + turnOff() + print(("exiting HAL component %s: %s") % (args.name, e)) + h.exit() + diff --git a/configs/ARM/BeagleBone/Replicape/hal_temp_bbb b/configs/ARM/BeagleBone/Replicape/hal_temp_bbb new file mode 100755 index 00000000000..00c8f389f99 --- /dev/null +++ b/configs/ARM/BeagleBone/Replicape/hal_temp_bbb @@ -0,0 +1,269 @@ +#!/usr/bin/python +# encoding: utf-8 + +######################################################################## +# Description: temp.py # +# This code reads an ADC input on the BeagleBone and converts the # +# resulting value into a temperature according to the thermistor # +# type, accounting for the analog input circuty as implemented on # +# the BeBoPr cape # +# # +# Author(s): Charles Steinkuehler # +# License: GNU GPL Version 2.0 or (at your option) any later version. # +# # +# Major Changes: # +# 2013-June Charles Steinkuehler # +# Initial version # +# 2014-July Alexander Roessler # +# Port to the R2Temp component # +######################################################################## +# Copyright (C) 2013 Charles Steinkuehler # +# # +# # +# This program is free software; you can redistribute it and/or # +# modify it under the terms of the GNU General Public License # +# as published by the Free Software Foundation; either version 2 # +# of the License, or (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # +# 02110-1301, USA. # +# # +# THE AUTHORS OF THIS PROGRAM ACCEPT ABSOLUTELY NO LIABILITY FOR # +# ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE # +# TO RELY ON SOFTWARE ALONE FOR SAFETY. Any machinery capable of # +# harming persons must have provisions for completely removing power # +# from all motors, etc, before persons enter any danger area. All # +# machinery must be designed to comply with local and national safety # +# codes, and the authors of this software can not, and do not, take # +# any responsibility for such compliance. # +######################################################################## + +import argparse +import glob +import sys +import time + +import hal +from fdm.r2temp import R2Temp + + +# The BeBoPr board thermistor input has one side grounded and the other side +# pulled high through a 2.05K resistor to 3.6V. Following this is a 470R +# resistor, some protection diodes, and a voltage divider cosisting of two +# 10.0K resistors. The ADC voltage read is the voltage across the lower 10K +# resistor in the 470R + 10K + 10K series chain +def adc2r_bebopr(pin): + V_adc = pin.rawValue * 1.8 / 4096.0 + + V_T = 0.0 # Voltage across the thermistor (and the 470R + 10K + 10K resistor chain) + I_PU = 0.0 # Current flowing through the 2.05K pull-up resistor + R_TD = 0.0 # Resistance of thermistor and the 470R + 10K + 10K divider chain in parallel + R_T = 0.0 # Resistance of the thermistor + + V_T = V_adc * 2.0470 + + # No dividing by zero or negative voltages despite what the ADC says! + # Clip to a small positive value + I_PU = max((3.6 - V_T) / 2050, 0.000001) + + R_TD = V_T / I_PU + + # Acutal resistance can't be negative, but we can get a negative value + # from the equation below for some real ADC values, so clip to avoid + # reporting crazy temperature values or dividing by zero + if R_TD >= 20470: + R_TD = 20470 - 0.1 + + # 1 / Rtotal = 1 / ( 1 / R1 + 1 / R2 ) + # R2 = ( R1 * Rtotal ) / ( R1 - Rtotal ) + R_T = (20470 * R_TD) / (20470 - R_TD) + + # print "V_adc: %f V_T: %f R_TD: %f R_T: %f" % (V_adc, V_T, R_TD, R_T) + + return R_T + +# The CRAMPS board thermistor input has one side grounded and the other side +# pulled high through a 1.00K resistor to 1.8V. Following this is a 4.7K +# resistor, some protection diodes, and filtering capacitors. The ADC voltage +# read is the filtered voltage across the thermistor. +def adc2r_cramps(pin): + V_adc = pin.rawValue * 1.8 / 4096.0 + V_T = 0.0 # Voltage across the thermistor + R_PU = 2000.0 #Pull-up resistence + I_PU = 0.0 # Current flowing through the pull-up resistor + R_T = 0.0 # Resistance of the thermistor + + V_T = V_adc + + # No dividing by zero or negative voltages despite what the ADC says! + # Clip to a small positive value + I_PU = max((1.8 - V_T ) / R_PU, 0.000001) + + R_T = V_T / I_PU + + return R_T + +# The Replicape board thermistor input is pulled up to ADC (1.8v) with 4.7k. +# VADC ---- 4.7k --- [SENSE] -- [Thermistor] --- GND +def adc2r_replicape(pin): + V_adc = pin.rawValue * 1.8 / 4096.0 + V_T = 0.0 # Voltage across the thermistor + R_PU = 4700.0 #Pull-up resistence + I_PU = 0.0 # Current flowing through the pull-up resistor + R_T = 0.0 # Resistance of the thermistor + + V_T = V_adc + + # No dividing by zero or negative voltages despite what the ADC says! + # Clip to a small positive value + I_PU = max((1.8 - V_T ) / R_PU, 0.000001) + + R_T = V_T / I_PU + + return R_T + +class Pin: + def __init__(self, pin): + self.pin = pin + self.r2temp = None + self.halValuePin = None + self.halRawPin = None + self.filterSamples = [] + self.filterSize = 10 + self.rawValue = 0.0 + self.filename = "" + self.filterSamples = [] + self.rawValue = 0.0 + + def addSample(self, value): + self.filterSamples.append(value) + if (len(self.filterSamples) > self.filterSize): + self.filterSamples.pop(0) + sampleSum = 0.0 + for sample in self.filterSamples: + sampleSum += sample + self.rawValue = sampleSum / len(self.filterSamples) + + +def adc2Temp(pin): + if(args.cape_board == 'BeBoPr'): + R = adc2r_bebopr(pin) + elif (args.cape_board == 'CRAMPS'): + R = adc2r_cramps(pin) + elif (args.cape_board == 'Replicape'): + R = adc2r_replicape(pin) + else: + print("Invalid -b cape name: %s" % args.cape_board) + print("Valid names are: BeBoPr, CRAMPS, Replicape") + sys.exit(1) + return round(pin.r2temp.r2t(R) * 10.0) / 10.0 + + +def getHalName(pin): + return "ch-" + '{0:02d}'.format(pin.pin) + + +def checkAdcInput(pin): + syspath = '/sys/devices/ocp.*/44e0d000.tscadc/tiadc/iio:device0/' + tempName = glob.glob(syspath + 'in_voltage' + str(pin.pin) + '_raw') + pin.filename = tempName[0] + try: + if len(pin.filename) > 0: + f = open(pin.filename, 'r') + f.close() + time.sleep(0.001) + else: + raise UserWarning('Bad Filename') + except (UserWarning, IOError): + print(("Cannot read ADC input: %s" % pin.filename)) + sys.exit(1) + + +parser = argparse.ArgumentParser(description='HAL component to read ADC values and convert to temperature') +parser.add_argument('-n','--name', help='HAL component name',required=True) +parser.add_argument('-i', '--interval', help='Adc update interval', default=0.2) +parser.add_argument('-c', '--channels', help='Komma separated list of channels and thermistors to use e.g. 01:semitec_103GT_2,02:epcos_B57560G1104', required=True) +parser.add_argument('-f', '--filter_size', help='Size of the low pass filter to use', default=10) +parser.add_argument('-b', '--cape_board', help='Type of cape used', default='BeBoPr') +parser.add_argument('-d', '--debug', help='Debug - prints the values in console and exit', action='store_true') + +args = parser.parse_args() + +updateInterval = float(args.interval) +filterSize = int(args.filter_size) +error = False +watchdog = True + +# Create pins +pins = [] + +if (args.channels != ""): + channelsRaw = args.channels.split(',') + for channel in channelsRaw: + pinRaw = channel.split(':') + if (len(pinRaw) != 2): + print(("wrong input")) + sys.exit(1) + pin = Pin(int(pinRaw[0])) + if ((pin.pin > 7) or (pin.pin < 0)): + print(("Pin not available")) + sys.exit(1) + checkAdcInput(pin) + if (pinRaw[1] != "none"): + pin.r2temp = R2Temp(pinRaw[1]) + pin.filterSize = filterSize + pins.append(pin) + + +if (not args.debug): + # Initialize HAL + h = hal.component(args.name) + for pin in pins: + pin.halRawPin = h.newpin(getHalName(pin) + ".raw", hal.HAL_FLOAT, hal.HAL_OUT) + if (pin.r2temp is not None): + pin.halValuePin = h.newpin(getHalName(pin) + ".value", hal.HAL_FLOAT, hal.HAL_OUT) + halErrorPin = h.newpin("error", hal.HAL_BIT, hal.HAL_OUT) + halNoErrorPin = h.newpin("no-error", hal.HAL_BIT, hal.HAL_OUT) + halWatchdogPin = h.newpin("watchdog", hal.HAL_BIT, hal.HAL_OUT) + h.ready() + + halErrorPin.value = error + halNoErrorPin.value = not error + halWatchdogPin.value = watchdog + +try: + while (True): + try: + for pin in pins: + with open(pin.filename, 'r') as f: + value = float(f.readline()) + pin.addSample(value) + if (not args.debug): + pin.halRawPin.value = pin.rawValue + if (pin.r2temp is not None): + pin.halValuePin.value = adc2Temp(pin) + else: + print(("%s - raw: %d, temp: %0.1f") % (getHalName(pin), pin.rawValue, adc2Temp(pin))) + error = False + except IOError as e: + print(("Error in reading temperature %s: %s" % (pin.filename, e))) + error = True + + if (not args.debug): + halErrorPin.value = error + halNoErrorPin.value = not error + watchdog = not watchdog + halWatchdogPin.value = watchdog + time.sleep(updateInterval) +except BaseException as e: + print(("exiting HAL component %s: %s") % (args.name, e)) + if (not args.debug): + h.exit() + diff --git a/configs/ARM/BeagleBone/Replicape/replicape.hal b/configs/ARM/BeagleBone/Replicape/replicape.hal new file mode 100755 index 00000000000..89ded40d557 --- /dev/null +++ b/configs/ARM/BeagleBone/Replicape/replicape.hal @@ -0,0 +1,353 @@ +# ####################################### +# +# HAL file for BeagleBone + BeBoPr cape with 4 steppers +# +# Derived from example hm2-stepper config +# +# ######################################## + +# Launch the setup script to make sure hardware setup looks good +loadusr -w ./setup.sh + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +loadrt trivkins + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + +# load low-level drivers +loadrt hal_bb_gpio output_pins= input_pins=923,925,916,918,911,913 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg +loadrt pid count=2 +loadrt limit1 count=2 +loadrt mux2 count=2 +loadrt and2 count=2 +loadrt wcomp count=2 + +# Python user-mode HAL module to read ADC value and generate a thermostat output for PWM +# c = analog input channel and thermistor table +loadusr -Wn Therm ./hal_temp_bbb -n Therm -c 04:epcos_B57560G1104,06:epcos_B57560G1104 -b Replicape +loadusr -Wn Pwm ./hal_pwm_replicape -n Pwm +loadusr -Wn HwConfig ./hal_hwconfig_replicape -n HwConfig + +# ################################################ +# THREADS +# ################################################ + +addf hpg.capture-position servo-thread +addf bb_gpio.read servo-thread +addf bb_gpio.write servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf pid.0.do-pid-calcs servo-thread +addf pid.1.do-pid-calcs servo-thread +addf limit1.0 servo-thread +addf limit1.1 servo-thread +addf hpg.update servo-thread +addf mux2.0 servo-thread +addf mux2.1 servo-thread +addf and2.0 servo-thread +addf and2.1 servo-thread +addf wcomp.0 servo-thread +addf wcomp.1 servo-thread + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + +# ################ +# X [0] Axis +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hpg.stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => hpg.stepgen.00.position-cmd + +net motor.00.pos-fb <= hpg.stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN +setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE + +setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +setp hpg.stepgen.00.steppin 817 +setp hpg.stepgen.00.dirpin 826 + + +# ################ +# Y [1] Axis +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hpg.stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => hpg.stepgen.01.position-cmd + +net motor.01.pos-fb <= hpg.stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN +setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE + +setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +setp hpg.stepgen.01.steppin 812 +setp hpg.stepgen.01.dirpin 819 + + +# ################ +# Z [2] Axis +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hpg.stepgen.02.enable + + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => hpg.stepgen.02.position-cmd + +net motor.02.pos-fb <= hpg.stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN +setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hpg.stepgen.02.position-scale [AXIS_2]SCALE + +setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +setp hpg.stepgen.02.steppin 813 +setp hpg.stepgen.02.dirpin 814 + + +# ################ +# A [3] Axis (Extruder) +# ################ + +# axis enable chain +newsig emcmot.03.enable bit +sets emcmot.03.enable FALSE + +net emcmot.03.enable <= axis.3.amp-enable-out +net emcmot.03.enable => hpg.stepgen.03.enable + + +# position command and feedback +net emcmot.03.pos-cmd <= axis.3.motor-pos-cmd +net emcmot.03.pos-cmd => hpg.stepgen.03.position-cmd + +net motor.03.pos-fb <= hpg.stepgen.03.position-fb +net motor.03.pos-fb => axis.3.motor-pos-fb + + +# timing parameters +setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP +setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD + +setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN +setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE + +setp hpg.stepgen.03.position-scale [AXIS_3]SCALE + +setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL +setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC + +setp hpg.stepgen.03.steppin 912 +setp hpg.stepgen.03.dirpin 815 + + +# ################################################## +# Standard I/O - EStop, Enables, Limit Switches, Etc +# ################################################## + +# Create estop signal chain +# Drive software estop to hardware +#net estop-out iocontrol.0.user-enable-out => bb_gpio.p8.out-26 +#setp bb_gpio.p8.out-26.invert 1 + +# Monitor estop input from hardware +#net estop-loop bb_gpio.p8.in-17 => iocontrol.0.emc-enable-in +#setp bb_gpio.p8.in-17.invert 1 +net estop-loop <= Therm.no-error => iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# Axis enable signal (active low) +#net emcmot.00.enable => bb_gpio.p9.out-14 +#setp bb_gpio.p9.out-14.invert 1 + +# Machine power +net main_enable <= halui.machine.is-on => HwConfig.enable => Pwm.enable + +# Microstepping and Mode +# value = 1/2^value. e.g. 5 means 1/32 microstepping. +setp HwConfig.stepper.0.microstepping 5 +setp HwConfig.stepper.1.microstepping 5 +setp HwConfig.stepper.2.microstepping 5 +setp HwConfig.stepper.3.microstepping 5 +setp HwConfig.stepper.0.current 2 +setp HwConfig.stepper.1.current 2 +setp HwConfig.stepper.2.current 1 +setp HwConfig.stepper.3.current 1.5 + + +# ################ +# Limit Switches +# ################ +newsig limit-x-min bit +newsig limit-x-max bit +newsig limit-y-min bit +newsig limit-y-max bit +newsig limit-z-min bit +newsig limit-z-max bit + +net limit-x-min <= bb_gpio.p9.in-25 +net limit-x-max <= bb_gpio.p9.in-11 +net limit-y-min <= bb_gpio.p9.in-23 +net limit-y-max <= bb_gpio.p9.in-16 +net limit-z-min <= bb_gpio.p9.in-13 +net limit-z-max <= bb_gpio.p9.in-18 + +# Adjust as needed for your switch polarity +# setp bb_gpio.p8.in-08.invert 0 + +# Uncomment if you actually have limit switches setup +# You probably want to setup homing in the INI file, as well +net limit-x-min => axis.0.home-sw-in +net limit-x-min => axis.0.neg-lim-sw-in +#net limit-x-max => axis.0.pos-lim-sw-in +net limit-y-max => axis.1.home-sw-in +#net limit-y-min => axis.1.neg-lim-sw-in +net limit-y-max => axis.1.pos-lim-sw-in +net limit-z-max => axis.2.home-sw-in +#net limit-z-min => axis.2.neg-lim-sw-in +net limit-z-max => axis.2.pos-lim-sw-in + +# ################################################## +# PWM and Temperature Signals +# ################################################## + +# Define signals to use elsewhere (ie: M1xx codes) +# If you change any names here, lots of things will break! +newsig e0.temp.set float +newsig e0.temp.meas float +newsig bed.temp.set float +newsig bed.temp.meas float + +# PID for Extruder 0 temperature control +net e0.temp.meas <= Therm.ch-04.value +net e0.temp.meas => pid.0.feedback => wcomp.0.in + +setp wcomp.0.min -100 +setp wcomp.0.max 250 # Maximum temperature limit +net main_enable => and2.0.in0 +net e0.safe <= wcomp.0.out => and2.0.in1 +net e0.pid-en <= and2.0.out => pid.0.enable + +sets e0.temp.set 0 +net e0.temp.set => mux2.0.in0 +net e0.temp.set-actual <= mux2.0.out => pid.0.command + +net e0.heater <= pid.0.output +net e0.heater => limit1.0.in +net e0.heaterl <= limit1.0.out +net e0.heaterl => Pwm.5.out +net e0.on <= Pwm.5.on + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.0.min 0 + +# PID for Bed temperature control +net bed.temp.meas <= Therm.ch-06.value +net bed.temp.meas => pid.1.feedback => wcomp.1.in + +setp wcomp.1.min -100 +setp wcomp.1.max 150 # Maximum temperature limit +net main_enable => and2.1.in0 +net bed.safe <= wcomp.1.out => and2.1.in1 +net bed.pid-en <= and2.1.out => pid.1.enable + +sets bed.temp.set 0 +net bed.temp.set => mux2.1.in0 +net bed.temp.set-actual <= mux2.1.out => pid.1.command + +net bed.heater <= pid.1.output +net bed.heater => limit1.1.in +net bed.heaterl <= limit1.1.out +net bed.heaterl => Pwm.4.out +net bed.on <= Pwm.4.on + +# Limit heater PWM to positive values +# PWM mimics hm2 implementation, which generates output for negative values +setp limit1.1.min 0 + +# PID Parameters for adjusting temperature control +# Extruder +#setp pid.0.FF0 0 +#setp pid.0.FF1 0 +#setp pid.0.FF2 0 +setp pid.0.Pgain 0.11381434 +setp pid.0.Igain 0.00140295027788 +setp pid.0.Dgain 2.30829711 +setp pid.0.maxoutput 1.0 + +# Bed +#setp pid.1.FF0 0 +#setp pid.1.FF1 0 +#setp pid.1.FF2 0 +setp pid.1.Pgain 0.05367 +setp pid.1.Igain 0.001875 +setp pid.1.Dgain 0.3879 +setp pid.1.maxoutput 1.0 diff --git a/configs/ARM/BeagleBone/Replicape/replicape.ini b/configs/ARM/BeagleBone/Replicape/replicape.ini new file mode 100755 index 00000000000..910b6267b1b --- /dev/null +++ b/configs/ARM/BeagleBone/Replicape/replicape.ini @@ -0,0 +1,299 @@ +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=0 num_stepgens=4 num_pwmgens=0 +PRUBIN=xenomai/pru_generic.bin + +[EMC] +# Name of machine, for use with display, etc. +MACHINE = Replicape + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + +[DISPLAY] +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +#DISPLAY = gscreen +DISPLAY = axis + +# Touchy currently won't work without some hardware buttons/jog-wheel +#DISPLAY = touchy + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.200 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 2.0 + +# Prefix to be used +PROGRAM_PREFIX = /home/sam/linuxcnc/nc_files + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 +MIN_LINEAR_VELOCITY = 5 +MAX_LINEAR_VELOCITY = 100 +DEFAULT_LINEAR_VELOCITY = 20 +MIN_ANGULAR_VELOCITY = 1 +MAX_ANGULAR_VELOCITY = 50 +DEFAULT_ANGULAR_VELOCITY = 10 + +PYVCP = 3D.Temps.panel.xml + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] +# Name of task controller program, e.g., milltask +TASK = milltask +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = pru-stepper.var + +[EMCMOT] +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = replicape.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +HALUI = halui +POSTGUI_HALFILE = 3D.postgui.hal + + +[TRAJ] + +AXES = 4 +COORDINATES = X Y Z A +DEFAULT_VELOCITY = 20 +MAX_VELOCITY = 2000 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 + +ARC_BLEND_ENABLE = 1 +ARC_BLEND_FALLBACK_ENABLE = 0 +ARC_BLEND_OPTIMIZATION_DEPTH = 50 +ARC_BLEND_GAP_CYCLES = 4 +ARC_BLEND_RAMP_FREQ = 20 + + +[AXIS_0] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# + +TYPE = LINEAR +MAX_VELOCITY = 400.0 +MAX_ACCELERATION = 800.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 480.0 +STEPGEN_MAX_ACC = 1000.0 + +BACKLASH = 0.000 + +SCALE = 91.428571 + +MIN_LIMIT = 1 +MAX_LIMIT = 195 + +FERROR = 1.0 +MIN_FERROR = 0.1 + +HOME = 3 +HOME_OFFSET = 0.000 +HOME_IGNORE_LIMITS = YES +HOME_USE_INDEX = NO +HOME_SEQUENCE = 1 +HOME_SEARCH_VEL = -25 +HOME_LATCH_VEL = -5 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_1] + +TYPE = LINEAR +MAX_VELOCITY = 400.0 +MAX_ACCELERATION = 250.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 480.0 +STEPGEN_MAX_ACC = 300.0 + +BACKLASH = 0.000 + +SCALE = 91.428571 + +MIN_LIMIT = 0 +MAX_LIMIT = 214 + +FERROR = 1.0 +MIN_FERROR = 0.1 + +HOME = 212 +HOME_OFFSET = 215.00 +HOME_IGNORE_LIMITS = YES +HOME_USE_INDEX = NO +HOME_SEQUENCE = 1 + +# Set to zero if you don't have physical home/limit switches +# Set to the desired homing and latch velocity if you have switches +# See: https://github.com/machinekit/machinekit-docs +HOME_SEARCH_VEL = 25.0 +HOME_LATCH_VEL = 5.0 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + + + +[AXIS_2] + +TYPE = LINEAR +MAX_VELOCITY = 20 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 25.0 +STEPGEN_MAX_ACC = 3600.0 + +BACKLASH = 0.000 + +SCALE = -1280 + +MIN_LIMIT = 0.0 +MAX_LIMIT = 95.0 + +FERROR = 1.0 +MIN_FERROR = 0.1 + +HOME = 94.000 +HOME_OFFSET = 95.5 +HOME_IGNORE_LIMITS = YES +HOME_USE_INDEX = NO +HOME_SEQUENCE = 0 + +# Set to zero if you don't have physical home/limit switches +# Set to the desired homing and latch velocity if you have switches +# See: https://github.com/machinekit/machinekit-docs +HOME_SEARCH_VEL = 20.0 +HOME_LATCH_VEL = 5.0 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + +[AXIS_3] + +TYPE = ANGULAR +MAX_VELOCITY = 80 +MAX_ACCELERATION = 3000.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 100.0 +STEPGEN_MAX_ACC = 3750.0 + +BACKLASH = 0.000 + +SCALE = 430 + +MIN_LIMIT = -2147483647 +MAX_LIMIT = 2147483647 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_IGNORE_LIMITS = YES +HOME_USE_INDEX = NO +HOME_SEQUENCE = 0 + +# Set to zero if you don't have physical home/limit switches +# Set to the desired homing and latch velocity if you have switches +# See: https://github.com/machinekit/machinekit-docs +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl + diff --git a/configs/ARM/BeagleBone/Replicape/setup.sh b/configs/ARM/BeagleBone/Replicape/setup.sh new file mode 100755 index 00000000000..291cc92a01f --- /dev/null +++ b/configs/ARM/BeagleBone/Replicape/setup.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +SLOTS=/sys/devices/bone_capemgr.*/slots +for DTBO in BB-BONE-REPLICAP ; do + if grep -q $DTBO $SLOTS ; then + echo $DTBO overlay found + else + echo $DTBO overlay not found + exit 1 + fi +done; + +if [ ! -r /sys/class/uio/uio0 ] ; then + echo PRU control files not found in /sys/class/uio/uio0 >&2 + exit 1; +fi + diff --git a/configs/ARM/BeagleBone/Xylotex/README b/configs/ARM/BeagleBone/Xylotex/README new file mode 100644 index 00000000000..80c5a5cc208 --- /dev/null +++ b/configs/ARM/BeagleBone/Xylotex/README @@ -0,0 +1,18 @@ +This configuration drives a standard 4-axis system using the PRU for +high speed step/dir pulse generation and a Xylotex BBB interface board. The +interface board sets up the STEP/DIR/Limit as:XS-2, XD-3, XL-11, YS-4, +YD-5, YL-12, ZS-6, ZD-7, ZL-13, AS-8, AD-9, AL-15 + +The STOP Input is Pin 10 and the Enable Input is Pin 1 + +There are 3 additional Outputs, Pin 14 Spindle On, Pin 16 Flood Coolant, +Pin 17 Mist Coolant + +Current axis settings: + +max vel = 1.0 in/s +max accel = 15.0 in/s/s +scale = 32000 steps/in + +Adjust as required for your machine. Make scale negative to invert any +axis that is moving 'backwards'. diff --git a/configs/ARM/BeagleBone/Xylotex/ShuttleXpress.glade b/configs/ARM/BeagleBone/Xylotex/ShuttleXpress.glade new file mode 100644 index 00000000000..2a3423b0b55 --- /dev/null +++ b/configs/ARM/BeagleBone/Xylotex/ShuttleXpress.glade @@ -0,0 +1,277 @@ + + + + + + + + + 300 + 300 + True + 6 + 5 + 16 + True + + + True + X + + + + + + + 2 + 3 + + + + + True + Y + + + + + + + 3 + 4 + + + + + True + Z + + + + + + + 4 + 5 + + + + + True + A + + + + + + + 5 + 6 + + + + + True + 2 + + + 1 + 2 + 2 + 3 + + + + + True + 2 + + + 1 + 2 + 3 + 4 + + + + + True + 2 + + + 1 + 2 + 4 + 5 + + + + + True + 2 + + + 1 + 2 + 5 + 6 + + + + + True + 0.1 + + + 2 + 3 + 5 + 6 + + + + + True + .01 + + + 2 + 3 + 4 + 5 + + + + + True + .005 + + + 2 + 3 + 3 + 4 + + + + + True + .001 + + + 2 + 3 + 2 + 3 + + + + + True + yellow + 1 + 9 + + + 3 + 4 + 5 + 6 + + + + + True + yellow + 1 + 9 + + + 3 + 4 + 2 + 3 + + + + + True + yellow + 1 + 9 + + + 3 + 4 + 3 + 4 + + + + + True + yellow + 1 + 9 + + + 3 + 4 + 4 + 5 + + + + + True + Axis Selected + + + 2 + 1 + 2 + + + + + True + Increment + + + 2 + 4 + 1 + 2 + + + + + True + ShuttleXpress + + + 4 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/configs/ARM/BeagleBone/Xylotex/ShuttleXpress.postgui.hal b/configs/ARM/BeagleBone/Xylotex/ShuttleXpress.postgui.hal new file mode 100644 index 00000000000..ee6952ee033 --- /dev/null +++ b/configs/ARM/BeagleBone/Xylotex/ShuttleXpress.postgui.hal @@ -0,0 +1,10 @@ +# Include your customized HAL commands here +# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts +net sxp.x-button => gladevcp.x_led1 +net sxp.y-button => gladevcp.y_led2 +net sxp.z-button => gladevcp.z_led3 +net sxp.a-button => gladevcp.a_led4 +net sxp.select-jog-increment-0 => gladevcp.Increment_led1 +net sxp.select-jog-increment-1 => gladevcp.Increment_led2 +net sxp.select-jog-increment-2 => gladevcp.Increment_led3 +net sxp.select-jog-increment-3 => gladevcp.Increment_led4 diff --git a/configs/ARM/BeagleBone/Xylotex/Xylotex.ShuttleXpress.ini b/configs/ARM/BeagleBone/Xylotex/Xylotex.ShuttleXpress.ini new file mode 100644 index 00000000000..8dcf2d31398 --- /dev/null +++ b/configs/ARM/BeagleBone/Xylotex/Xylotex.ShuttleXpress.ini @@ -0,0 +1,342 @@ +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=4 +PRUBIN=xenomai/pru_generic.bin + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = Xylotex + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[DISPLAY] + +GLADEVCP = ShuttleXpress.glade + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +#DISPLAY = gscreen +DISPLAY = axis + +# Touchy currently won't work without some hardware buttons/jog-wheel +#DISPLAY = touchy + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.0500 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +#(JP)PYVCP = BeBoPr.panel.xml + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = pru-stepper.var + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = Xylotex.hal +HALFILE = ../../../common/shuttlexpress.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta +HALUI = halui +POSTGUI_HALFILE = ShuttleXpress.postgui.hal + + +[TRAJ] + +AXES = 4 +COORDINATES = X Y Z A +MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 +LINEAR_UNITS = inch +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 2.00 +MAX_LINEAR_VELOCITY =2.00 + +################################################################ +[AXIS_0] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# +TYPE = LINEAR +MAX_VELOCITY = 1.0 +MAX_ACCELERATION = 15.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 1.2 +STEPGEN_MAX_ACC = 18.75 + +BACKLASH = 0.000 +# scale is 200 steps/rev * 8 mirostep * 10 tpi +SCALE = 32000 + +MIN_LIMIT = -0.0 +MAX_LIMIT = 15.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_SEARCH_VEL = -.10 +HOME_LATCH_VEL = .2 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +# Set to one for active low step pulses +STEP_INVERT = 0 + + +# PID tuning params +DEADBAND = 0 +P = 50 +I = 0 +D = 0 +FF0 = 0 +FF1 = 1 +FF2 = 0 +BIAS = 0 +MAX_OUTPUT = 0 + +################################## +[AXIS_1] + +TYPE = LINEAR +MAX_VELOCITY = 1.0 +MAX_ACCELERATION = 15.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 1.2 +STEPGEN_MAX_ACC = 18.75 + +BACKLASH = 0.000 + +SCALE = 32000 + +MIN_LIMIT = 0.0 +MAX_LIMIT = 15.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_SEARCH_VEL = -.10 +HOME_LATCH_VEL = .20 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +# Set to one for active low step pulses +STEP_INVERT = 0 + +# PID tuning params +DEADBAND = 0 +P = 50 +I = 0 +D = 0 +FF0 = 0 +FF1 = 1 +FF2 = 0 +BIAS = 0 +MAX_OUTPUT = 0 + +##################################### +[AXIS_2] + +TYPE = LINEAR +MAX_VELOCITY = 1.0 +MAX_ACCELERATION = 15.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 1.2 +STEPGEN_MAX_ACC = 18.75 + +BACKLASH = 0.000 + +SCALE = 32000 + +MIN_LIMIT = -10.00 +MAX_LIMIT = 10.0 + +FERROR = 1.0 +MIN_FERROR = 0.25 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_SEARCH_VEL = .100 +HOME_LATCH_VEL = -.200 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +# Set to one for active low step pulses +STEP_INVERT = 0 + +# PID tuning params +DEADBAND = 0 +P = 50 +I = 0 +D = 0 +FF0 = 0 +FF1 = 1 +FF2 = 0 +BIAS = 0 +MAX_OUTPUT = 0 + +############################ +[AXIS_3] + +TYPE = ANGULAR +MAX_VELOCITY = 1.0 +MAX_ACCELERATION =15.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 1.2 +STEPGEN_MAX_ACC = 18.75 + +BACKLASH = 0.000 + +SCALE = 32000 +#SCALE = -732.32 + +MIN_LIMIT = -9999.0 +MAX_LIMIT = 999999999.0 + +FERROR = 1.0 +MIN_FERROR = .25 + +HOME = 0.0 +HOME_OFFSET = 0.0 + +HOME_SEARCH_VEL = 0.10 +HOME_LATCH_VEL = -0.2 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 1000 +STEPSPACE = 1000 + +# Set to one for active low step pulses +STEP_INVERT = 0 + +# PID tuning params +DEADBAND = 0 +P = 50 +I = 0 +D = 0 +FF0 = 0 +FF1 = 1 +FF2 = 0 +BIAS = 0 +MAX_OUTPUT = 0 + +############################################ + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl diff --git a/configs/ARM/BeagleBone/Xylotex/Xylotex.hal b/configs/ARM/BeagleBone/Xylotex/Xylotex.hal new file mode 100644 index 00000000000..b31459b72b4 --- /dev/null +++ b/configs/ARM/BeagleBone/Xylotex/Xylotex.hal @@ -0,0 +1,339 @@ +# These buffer ALL signals used on the DB25 port +# The board also has a pair of a set of four 0805 size jumper resistors +# these can be used to output either the standard Spindle/Mist/flood and +# input ALIM from the DB25 pins +# or allow BBB SPI singnals to be routed to the DB25 connector instead. +# The ALIM RC buffer Capacitor would need to change if this +# option was used. The LIM Switch input signals are pulled to 3V3 through +# 10K resistors +# then go through a 1K resistor and bypassed with a .22uF cap. This is +# the cap that should be removed +# if the SPI port (untested option) is used. The 4 SPI signals are also +# directly routed +# to six through-holes which include 3V3 and GND. This signals are +# otherwise Unbuffered and +# go directly to the BBB +# At powerup the LVC541 enable signals are pulled high, disabling the +# drivers until +# the BBB and Machinekit pull the enable signal low. +# +######################################## + + +# Launch the setup script to make sure hardware setup looks good +loadusr -w ./setup.sh + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +loadrt trivkins + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + + +# load low-level drivers +loadrt hal_bb_gpio output_pins=107,113,119,126,214 input_pins=109,110,114,118,241 +loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) halname=hpg +#(JP) Not suing PID loop so comment out +loadrt pid count=4 +loadrt limit1 count=2 + +# ################################################ +# THREADS +# ################################################ + +addf hpg.capture-position servo-thread +addf bb_gpio.read servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +#(JP) Not doing PID for temperature sensor for PWM output +addf pid.0.do-pid-calcs servo-thread +addf pid.1.do-pid-calcs servo-thread +addf pid.2.do-pid-calcs servo-thread +addf pid.3.do-pid-calcs servo-thread +addf limit1.0 servo-thread +addf limit1.1 servo-thread +addf hpg.update servo-thread +addf bb_gpio.write servo-thread + + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + +# ################ +# X [0] Axis +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hpg.stepgen.00.enable pid.0.enable + +# position command and feedback +net emcmot.00.pos-cmd axis.0.motor-pos-cmd => pid.0.command +net emcmot.00.vel-cmd axis.0.joint-vel-cmd => pid.0.command-deriv +net motor.00.pos-fb <= hpg.stepgen.00.position-fb axis.0.motor-pos-fb pid.0.feedback +net motor.00.command pid.0.output hpg.stepgen.00.velocity-cmd +setp pid.0.error-previous-target true +setp pid.0.maxerror .001 + +# timing parameters +setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN +setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hpg.stepgen.00.position-scale [AXIS_0]SCALE + +setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +setp hpg.stepgen.00.control-type 1 +setp hpg.stepgen.00.stepinvert [AXIS_0]STEP_INVERT +#setp hpg.stepgen.00.step_type 0 +setp hpg.stepgen.00.steppin 0x4C +setp hpg.stepgen.00.dirpin 0x4D + +# set PID loop gains from inifile +setp pid.0.Pgain [AXIS_0]P +setp pid.0.Igain [AXIS_0]I +setp pid.0.Dgain [AXIS_0]D +setp pid.0.bias [AXIS_0]BIAS +setp pid.0.FF0 [AXIS_0]FF0 +setp pid.0.FF1 [AXIS_0]FF1 +setp pid.0.FF2 [AXIS_0]FF2 +setp pid.0.deadband [AXIS_0]DEADBAND +setp pid.0.maxoutput [AXIS_0]MAX_OUTPUT + +#(JP) Add home switch input on DB25-11 +net home-x bb_gpio.p8.in-10 => axis.0.home-sw-in +#setp bb_gpio.p8.in-10.invert 1 + +# ################ +# Y [1] Axis +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hpg.stepgen.01.enable pid.1.enable + +# position command and feedback +net emcmot.01.pos-cmd axis.1.motor-pos-cmd => pid.1.command +net emcmot.01.vel-cmd axis.1.joint-vel-cmd => pid.1.command-deriv +net motor.01.pos-fb <= hpg.stepgen.01.position-fb axis.1.motor-pos-fb pid.1.feedback +net motor.01.command pid.1.output hpg.stepgen.01.velocity-cmd +setp pid.1.error-previous-target true +setp pid.1.maxerror .001 + +# timing parameters +setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN +setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hpg.stepgen.01.position-scale [AXIS_1]SCALE + +setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +setp hpg.stepgen.01.control-type 1 +setp hpg.stepgen.01.stepinvert [AXIS_1]STEP_INVERT +#setp hpg.stepgen.01.step_type 0 +setp hpg.stepgen.01.steppin 0x4E +setp hpg.stepgen.01.dirpin 0x4F + +# set PID loop gains from inifile +setp pid.1.Pgain [AXIS_1]P +setp pid.1.Igain [AXIS_1]I +setp pid.1.Dgain [AXIS_1]D +setp pid.1.bias [AXIS_1]BIAS +setp pid.1.FF0 [AXIS_1]FF0 +setp pid.1.FF1 [AXIS_1]FF1 +setp pid.1.FF2 [AXIS_1]FF2 +setp pid.1.deadband [AXIS_1]DEADBAND +setp pid.1.maxoutput [AXIS_1]MAX_OUTPUT + + +#(JP) Add home switch input on DB25-12 +net home-y bb_gpio.p8.in-14 => axis.1.home-sw-in +#setp bb_gpio.p8.in-14.invert 1 + +# ################ +# Z [2] Axis +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hpg.stepgen.02.enable pid.2.enable + +# position command and feedback +net emcmot.02.pos-cmd axis.2.motor-pos-cmd => pid.2.command +net emcmot.02.vel-cmd axis.2.joint-vel-cmd => pid.2.command-deriv +net motor.02.pos-fb <= hpg.stepgen.02.position-fb axis.2.motor-pos-fb pid.2.feedback +net motor.02.command pid.2.output hpg.stepgen.02.velocity-cmd +setp pid.2.error-previous-target true +setp pid.2.maxerror .001 + +# timing parameters +setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN +setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hpg.stepgen.02.position-scale [AXIS_2]SCALE + +setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +setp hpg.stepgen.02.control-type 1 +setp hpg.stepgen.02.stepinvert [AXIS_2]STEP_INVERT +#setp hpg.stepgen.02.step_type 0 +setp hpg.stepgen.02.steppin 0x50 +setp hpg.stepgen.02.dirpin 0x51 + +# set PID loop gains from inifile +setp pid.2.Pgain [AXIS_2]P +setp pid.2.Igain [AXIS_2]I +setp pid.2.Dgain [AXIS_2]D +setp pid.2.bias [AXIS_2]BIAS +setp pid.2.FF0 [AXIS_2]FF0 +setp pid.2.FF1 [AXIS_2]FF1 +setp pid.2.FF2 [AXIS_2]FF2 +setp pid.2.deadband [AXIS_2]DEADBAND +setp pid.2.maxoutput [AXIS_2]MAX_OUTPUT + + +#(JP) Add home switch input on DB25-13 +net home-z bb_gpio.p8.in-18 => axis.2.home-sw-in +#setp bb_gpio.p8.in-18.invert 1 + +# ################ +# A [3] Axis +# ################ + +# axis enable chain +newsig emcmot.03.enable bit +sets emcmot.03.enable FALSE + +net emcmot.03.enable <= axis.3.amp-enable-out +net emcmot.03.enable => hpg.stepgen.03.enable pid.3.enable + +# position command and feedback +net emcmot.03.pos-cmd axis.3.motor-pos-cmd => pid.3.command +net emcmot.03.vel-cmd axis.3.joint-vel-cmd => pid.3.command-deriv +net motor.03.pos-fb <= hpg.stepgen.03.position-fb axis.3.motor-pos-fb pid.3.feedback +net motor.03.command pid.3.output hpg.stepgen.03.velocity-cmd +setp pid.3.error-previous-target true +setp pid.3.maxerror .001 + +# timing parameters +setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP +setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD + +setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN +setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE + +setp hpg.stepgen.03.position-scale [AXIS_3]SCALE + +setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL +setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC + +setp hpg.stepgen.03.control-type 1 +setp hpg.stepgen.03.stepinvert [AXIS_3]STEP_INVERT +#setp hpg.stepgen.03.step_type 0 +setp hpg.stepgen.03.steppin 0x3E +setp hpg.stepgen.03.dirpin 0x3F + +# set PID loop gains from inifile +setp pid.3.Pgain [AXIS_3]P +setp pid.3.Igain [AXIS_3]I +setp pid.3.Dgain [AXIS_3]D +setp pid.3.bias [AXIS_3]BIAS +setp pid.3.FF0 [AXIS_3]FF0 +setp pid.3.FF1 [AXIS_3]FF1 +setp pid.3.FF2 [AXIS_3]FF2 +setp pid.3.deadband [AXIS_3]DEADBAND +setp pid.3.maxoutput [AXIS_3]MAX_OUTPUT + + +#(JP) Add home switch input +net home-a bb_gpio.p9.in-41 => axis.3.home-sw-in +#setp bb_gpio.p9.in-41.invert 1 + +# ################################################## +# Standard I/O - EStop, Enables, Limit Switches, Etc +# ################################################## + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + +# Axis enable and IO control enable signals are all on one pin P8-7 which +# goes to DB25-1 +# and is used to place the LVC541 drivers on the interface board in active +# (LOW) or unactive (HIGH) state +# All external Inputs and Outputs on external boards +# should have pullups/downs since when the interface board is +# not enabled, it will look disconnected for all signals + +# this pin is output on DB25-1 +# it is also used to enable the LVC541 driver/receiver on the interface board +net machine-on bb_gpio.p8.out-07 bb_gpio.p8.out-26 => halui.machine.is-on +setp bb_gpio.p8.out-07.invert 1 + +# this currently goes to an LED on the interface board +# it is simply a duplicate of the enable signal on DB25-1 right now +setp bb_gpio.p8.out-26.invert 1 + +# this input signal must be active LOW to allow the system to energize. +# this should be fed through an NC STOP type switch from DB25-1 to DB25-10 +#net estop-in bb_gpio.p8.in-09 => iocontrol.0.emc-enable-in +#setp bb_gpio.p8.in-09.invert 1 +#newsig test bit +#sets test 1 +#net test iocontrol.0.emc-enable-in +#net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in +#setp iocontrol.0.emc-enable-in true + +#probe input +#net probe motion.probe-input <= bb_gpio.p8.in-18 +#setp bb_gpio.p8.in-18.invert 1 + +# this input signal must be active LOW to allow the system to energize. +# this should be fed through an NC STOP type switch from DB25-1 to DB25-10 +net estop-in bb_gpio.p8.in-09 => iocontrol.0.emc-enable-in +setp bb_gpio.p8.in-09.invert 1 + +# This output is on DB25-14 and is currently tied to spindle control (M3/M5) +#net Output1 bb_gpio.p8.out-13 => motion.spindle-on +#setp bb_gpio.p8.out-13.invert 1 +#net Output1 bb_gpio.p8.out-13 => halui.spindle.is-on +net Output1 bb_gpio.p8.out-13 => motion.spindle-on +setp bb_gpio.p8.out-13.invert 1 + +# This output is on DB25-16 +net Output2 bb_gpio.p8.out-19 => halui.mist.is-on +setp bb_gpio.p8.out-19.invert 1 + +# This output is on DB25-17 (M8/M9) +net Output3 bb_gpio.p9.out-14 => halui.flood.is-on +setp bb_gpio.p9.out-14.invert 1 + + diff --git a/configs/ARM/BeagleBone/Xylotex/Xylotex.ini b/configs/ARM/BeagleBone/Xylotex/Xylotex.ini new file mode 100644 index 00000000000..a941dd7fdc4 --- /dev/null +++ b/configs/ARM/BeagleBone/Xylotex/Xylotex.ini @@ -0,0 +1,392 @@ +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=pru=1 num_stepgens=4 +PRUBIN=xenomai/pru_generic.bin + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = Xylotex + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[DISPLAY] +#uncomment the line below if the shuttleexpress is installed +#(JP)GLADEVCP = shuttlexpress.glade +#leave the follwoing two alone + +#EMBED_TAB_NAME = GladeVCP demo +#EMBED_TAB_COMMAND = halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -u shuttlexpress.py -x {XID} shuttlexpress.glade + +# Name of display program, e.g., tkemc +DISPLAY = axis +#DISPLAY = jtgremlin + +#EDITOR = mousepad + +# Touchy currently will not work without some hardware buttons/jog-wheel +#DISPLAY = touchy + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.200 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.0 + +# Prefix to be used +PROGRAM_PREFIX = ~/machinekit/nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# Increments for the JOG section +INCREMENTS = 10 1 0.1 0.01 + + +[FILTER] + +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script + +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = pru-stepper.var +RS274NGC_STARTUP_CODE = G00 G17 G21 G40 G49 G64 P0.1 Q0.1 G80 G90 + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = Xylotex.hal +#(JP) uncomment the line below if the shuttlexpress jig wheel is used +#HALFILE = ../../../shuttlexpress.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta +HALUI = halui +POSTGUI_HALFILE = Xylotex.postgui.hal + + +[TRAJ] + +AXES = 4 +COORDINATES = X Y Z A +MAX_ANGULAR_VELOCITY = 45.00 +DEFAULT_ANGULAR_VELOCITY = 4.50 +LINEAR_UNITS = inch +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 2.0 +MAX_LINEAR_VELOCITY = 2.0 +NO_FORCE_HOMING = 1 + +################################################################ +[AXIS_0] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# +TYPE = LINEAR +MAX_VELOCITY = 1.0 +MAX_ACCELERATION = 15.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 1.2 +STEPGEN_MAX_ACC = 18.75 + +BACKLASH = 0.000 +# scale is 200 steps/rev * 8 mirostep * 10 tpi +SCALE = 32000 + +MIN_LIMIT = -0.0 +MAX_LIMIT = 20.0 + +FERROR = .1 +MIN_FERROR = 0.05 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_SEARCH_VEL = -.1 +HOME_LATCH_VEL = 0.2 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES +#HOME_IS_SHARED = 1 +#HOME_SEQUENCE = 2 + +# these are in nanoseconds +DIRSETUP = 1000 +DIRHOLD = 20000 +STEPLEN = 500 +STEPSPACE = 4000 + +# Set to one for active low step pulses +STEP_INVERT = 0 + +# PID tuning params +DEADBAND = 0 +P = 50 +I = 0 +D = 0 +FF0 = 0 +FF1 = 1 +FF2 = 0 +BIAS = 0 +MAX_OUTPUT = 0 + + +################################################################ +[AXIS_1] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# +TYPE = LINEAR +MAX_VELOCITY = 1.0 +MAX_ACCELERATION = 15.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 1.2 +STEPGEN_MAX_ACC = 18.75 + +BACKLASH = 0.000 +# scale is 200 steps/rev * 8 mirostep * 10 tpi +SCALE = 32000 + +MIN_LIMIT = -0.0 +MAX_LIMIT = 20.0 + +FERROR = .1 +MIN_FERROR = 0.05 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_SEARCH_VEL = -.1 +HOME_LATCH_VEL = 0.2 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES +#HOME_IS_SHARED = 1 +#HOME_SEQUENCE = 2 + +# these are in nanoseconds +DIRSETUP = 1000 +DIRHOLD = 20000 +STEPLEN = 500 +STEPSPACE = 4000 + +# Set to one for active low step pulses +STEP_INVERT = 0 + +# PID tuning params +DEADBAND = 0 +P = 50 +I = 0 +D = 0 +FF0 = 0 +FF1 = 1 +FF2 = 0 +BIAS = 0 +MAX_OUTPUT = 0 + + +################################################################ +[AXIS_2] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# +TYPE = LINEAR +MAX_VELOCITY = 1.0 +MAX_ACCELERATION = 15.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 1.2 +STEPGEN_MAX_ACC = 18.75 + +BACKLASH = 0.000 +# scale is 200 steps/rev * 8 mirostep * 10 tpi +SCALE = 32000 + +MIN_LIMIT = -20.0 +MAX_LIMIT = 20.0 + +FERROR = .1 +MIN_FERROR = 0.05 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_SEARCH_VEL = -.1 +HOME_LATCH_VEL = 0.2 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES +#HOME_IS_SHARED = 1 +#HOME_SEQUENCE = 2 + +# these are in nanoseconds +DIRSETUP = 1000 +DIRHOLD = 20000 +STEPLEN = 500 +STEPSPACE = 4000 + +# Set to one for active low step pulses +STEP_INVERT = 0 + +# PID tuning params +DEADBAND = 0 +P = 50 +I = 0 +D = 0 +FF0 = 0 +FF1 = 1 +FF2 = 0 +BIAS = 0 +MAX_OUTPUT = 0 + +################################################################ +[AXIS_3] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# +TYPE = ANGULAR +MAX_VELOCITY = 1.0 +MAX_ACCELERATION = 15.0 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 1.2 +STEPGEN_MAX_ACC = 18.75 + +BACKLASH = 0.000 +# scale is 200 steps/rev * 8 mirostep * 10 tpi +SCALE = 32000 + +MIN_LIMIT = -0.0 +MAX_LIMIT = 15.0 + +FERROR = .1 +MIN_FERROR = 0.05 + +HOME = 0.000 +HOME_OFFSET = 0.00 +HOME_SEARCH_VEL = -.1 +HOME_LATCH_VEL = 0.2 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES +#HOME_IS_SHARED = 1 +#HOME_SEQUENCE = 2 + +# these are in nanoseconds +DIRSETUP = 1000 +DIRHOLD = 20000 +STEPLEN = 500 +STEPSPACE = 4000 + +# Set to one for active low step pulses +STEP_INVERT = 0 + +# PID tuning params +DEADBAND = 0 +P = 50 +I = 0 +D = 0 +FF0 = 0 +FF1 = 1 +FF2 = 0 +BIAS = 0 +MAX_OUTPUT = 0 + + + + +############################ + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl diff --git a/configs/ARM/BeagleBone/Xylotex/Xylotex.postgui.hal b/configs/ARM/BeagleBone/Xylotex/Xylotex.postgui.hal new file mode 100644 index 00000000000..3690a7989f6 --- /dev/null +++ b/configs/ARM/BeagleBone/Xylotex/Xylotex.postgui.hal @@ -0,0 +1,4 @@ +# Include your customized HAL commands here +# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts + +# The Xylotex BBB_DB25 does not need a postgui configuration setup diff --git a/configs/ARM/BeagleBone/Xylotex/setup.sh b/configs/ARM/BeagleBone/Xylotex/setup.sh new file mode 100755 index 00000000000..a2504a06c17 --- /dev/null +++ b/configs/ARM/BeagleBone/Xylotex/setup.sh @@ -0,0 +1,99 @@ +#!/bin/bash +# Copyright 2014 +# Charles Steinkuehler +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +dtbo_err () { + echo "Error loading device tree overlay file: $DTBO" >&2 + exit 1 +} + +pin_err () { + echo "Error exporting pin:$PIN" >&2 + exit 1 +} + +dir_err () { + echo "Error setting direction:$DIR on pin:$PIN" >&2 + exit 1 +} + +SLOTS=/sys/devices/bone_capemgr.*/slots + +# Make sure required device tree overlay(s) are loaded +for DTBO in cape-universal cape-bone-iio ; do + + if grep -q $DTBO $SLOTS ; then + echo $DTBO overlay found + else + echo Loading $DTBO overlay + sudo -A bash -c "echo $DTBO > $SLOTS" || dtbo_err + sleep 1 + fi +done; + +if [ ! -r /sys/devices/ocp.*/helper.*/AIN0 ] ; then + echo Analog input files not found in /sys/devices/ocp.*/helper.* >&2 + exit 1; +fi + +if [ ! -r /sys/class/uio/uio0 ] ; then + echo PRU control files not found in /sys/class/uio/uio0 >&2 + exit 1; +fi + +# Export GPIO pins: +# One pin needs to be exported to enable the low-level clocks for the GPIO +# modules (there is probably a better way to do this) +# +# Any GPIO pins driven by the PRU need to have their direction set properly +# here. The PRU does not do any setup of the GPIO, it just yanks on the +# pins and assumes you have the output enables configured already +# +# Direct PRU inputs and outputs do not need to be configured here, the pin +# mux setup (which is handled by the device tree overlay) should be all +# the setup needed. +# +# Any GPIO pins driven by the hal_bb_gpio driver do not need to be +# configured here. The hal_bb_gpio module handles setting the output +# enable bits properly. These pins _can_ however be set here without +# causing problems. You may wish to do this for documentation or to make +# sure the pin starts with a known value as soon as possible. + +sudo $(which config-pin) -f - <<- EOF + + P8.07 out # gpio2.2 Enable System + P8.10 in # gpio2.4 XLIM + P8.11 out # gpio1.13 X_Dir + P8.12 out # gpio1.12 X_Step + P8.13 out # gpio0.23 PWM0/SPINDLE + P8.14 in # gpio0.26 YLIM + P8.15 out # gpio1.15 Y_Dir + P8.16 out # gpio1.14 Y_Step + P8.18 in # gpio2.1 ZLIM + P8.19 out # gpio0.22 PWM1 + P9.14 out # gpio1.18 PWM2 + P9.15 out # gpio1.16 Z_Step + P9.23 out # gpio1.17 Z_Dir +# P9.17 out # gpio0.5 SCS +# P9.18 in # gpio0.4 SDI +# P9.21 out # gpio0.3 SDO +# P9.22 out # gpio0.2 SCK + P9.13 out # gpio0.30 A_Dir + P9.11 out # gpio0.31 A_Step + P8.09 in # gpio2.5 STOPin +EOF + diff --git a/configs/ARM/PRU-Debugger/Makefile b/configs/ARM/PRU-Debugger/Makefile new file mode 100644 index 00000000000..8bc199e8e8b --- /dev/null +++ b/configs/ARM/PRU-Debugger/Makefile @@ -0,0 +1,12 @@ + +TARGET=pruexample.bin + +all: $(TARGET) + + +%.bin: %.p + echo Assembling PRU code $@ + pasm -b -d -L $(basename $@).p + +clean: + rm -f *.bin *.dbg *.lst diff --git a/configs/ARM/PRU-Debugger/README b/configs/ARM/PRU-Debugger/README new file mode 100644 index 00000000000..06e1fe62daf --- /dev/null +++ b/configs/ARM/PRU-Debugger/README @@ -0,0 +1,29 @@ +This is an example for debugging PRU code with the haldebugpru component. + +The assumed scenario is like so: + +- there's some component (here: hal_pru) which loads some PRU code +- the hal_prudebug comp can be loaded separately, with a GladeVCP UI, to attach to the PRU + and trace/singlestep/inspect the registers- +- the UI component can read the .dbg output of the PASM assembler to correlate the source line + and program counter. + +first, run 'make' in this directory +this will create the .bin and .dbg files + +then run this as: + +$ halcmd -f debugger-example.hal + +- in the file chooser, select pruexample.dbg +- select stepping, contuous +- step through program by clicking continue + +(on a beaglebone or some other AM335x CPU based board) + +Notes: +- the glade editor in the arm ubuntu precise package stream is not good for editing the .ui file + I did this on a normal livcd based PC +- the text highlighting/scrolling doesnt work reliable, I'd need a good example for Text view + or gtksourceview for this. +- You might need to run 'sudo apt-get install python-gtksourceview2' . diff --git a/configs/ARM/PRU-Debugger/prudebug.ui b/configs/ARM/PRU-Debugger/prudebug.ui new file mode 100644 index 00000000000..d2d068dca0c --- /dev/null +++ b/configs/ARM/PRU-Debugger/prudebug.ui @@ -0,0 +1,779 @@ + + + + + + + + + + True + + + True + 0 + none + + + True + + + True + + + + 0 + + + + + + + + + + + + + True + <b>PRU Debugger</b> + True + + + + + 0 + + + + + + + + True + + + + + + + + + + + + True + 2 + CONTROL: %8.8x + + + False + False + 3 + + + + + True + 2 + PC: %d + + + + False + False + 4 + + + + + + + + + + + + + + + + + 2 + + + + + True + + + pru + True + True + True + + + False + False + 0 + + + + + continuous + True + True + True + + + False + False + 1 + + + + + stepping + True + True + True + + + False + False + 2 + + + + + continue + True + True + True + + + False + False + 3 + + + + + reset + True + True + True + + + False + False + 4 + + + + + halt + True + True + True + + + False + False + 5 + + + + + snap + True + True + True + + + False + False + 6 + + + + + + + + + + + 3 + + + + + True + True + automatic + automatic + + + 300 + 450 + True + True + 2 + 2 + 4 + True + False + + + + + + 4 + + + + + + + + + + + True + 18 + 4 + + + True + 2 + R1: %8.8x + + + 1 + 2 + + + + + True + 2 + R2: %8.8x + + + 2 + 3 + + + + + True + 2 + R3: %8.8x + + + 3 + 4 + + + + + True + 2 + R4: %8.8x + + + 4 + 5 + + + + + True + 2 + R5: %8.8x + + + 5 + 6 + + + + + True + 2 + R6: %8.8x + + + 6 + 7 + + + + + True + 2 + R7: %8.8x + + + 7 + 8 + + + + + True + 2 + R8: %8.8x + + + 8 + 9 + + + + + True + 2 + R9: %8.8x + + + 9 + 10 + + + + + True + 2 + R10: %8.8x + + + 10 + 11 + + + + + True + 2 + R11: %8.8x + + + 11 + 12 + + + + + True + 2 + R12: %8.8x + + + 12 + 13 + + + + + True + 2 + R13: %8.8x + + + 13 + 14 + + + + + True + 2 + R14: %8.8x + + + 14 + 15 + + + + + True + 2 + R15: %8.8x + + + 15 + 16 + + + + + True + + 2 + R16: %8.8x + + + 1 + 2 + + + + + True + label + 2 + R17: %8.8x + + + 1 + 2 + 1 + 2 + + + + + True + label + 2 + R18: %8.8x + + + 1 + 2 + 2 + 3 + + + + + True + label + 2 + R19: %8.8x + + + 1 + 2 + 3 + 4 + + + + + True + label + 2 + R20: %8.8x + + + 1 + 2 + 4 + 5 + + + + + True + label + 2 + R21: %8.8x + + + 1 + 2 + 5 + 6 + + + + + True + label + 2 + R22: %8.8x + + + 1 + 2 + 6 + 7 + + + + + True + label + 2 + R23: %8.8x + + + 1 + 2 + 7 + 8 + + + + + True + label + 2 + R24: %8.8x + + + 1 + 2 + 8 + 9 + + + + + True + label + 2 + R25: %8.8x + + + 1 + 2 + 9 + 10 + + + + + True + label + 2 + R26: %8.8x + + + 1 + 2 + 10 + 11 + + + + + True + label + 2 + R27: %8.8x + + + 1 + 2 + 11 + 12 + + + + + True + label + 2 + R28: %8.8x + + + 1 + 2 + 12 + 13 + + + + + True + label + 2 + R29: %8.8x + + + 1 + 2 + 13 + 14 + + + + + True + label + 2 + R30: %8.8x + + + 1 + 2 + 14 + 15 + + + + + True + label + 2 + R31: %8.8x + + + 1 + 2 + 15 + 16 + + + + + True + label + 2 + R0: %8.8x + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + False + 7 + + + + + + + + + + + + + + diff --git a/configs/ARM/PRU-Debugger/pruexample.p b/configs/ARM/PRU-Debugger/pruexample.p new file mode 100644 index 00000000000..0601cf390b0 --- /dev/null +++ b/configs/ARM/PRU-Debugger/pruexample.p @@ -0,0 +1,235 @@ +// Written by Charles Steinkuehler as an example for the pru_debugger +// This code is released into the public domain +// You may copy, modify, sell, re-license, or do pretty much anything you +// want to do with this code. + + +// References to the current TI PRU manual (spruhf8) should also be +// considered pointers to the similar section in the revision c +// AM335x manual (spruh73c), ie: +// spruhf8 AM335x PRU-ICSS Reference Guide 5.3.2.1.4 +// spruh73c AM335x TRM 4.5.3.2.1.4 + + +// Some constants so we don't have to include a header file + +// Use the special set/clear register to change the I/O pin, which avoids +// having to do an atomic read-modify-write +// See the AM335x TRM sections 25.4.19-20 for details +#define GPIO1 0x4804c000 +#define GPIO2 0x481ac000 +#define GPIO_CLEARDATAOUT 0x190 + +// spruhf8 AM335x PRU-ICSS Reference Guide 5.2.1 +#define CONST_PRUCFG C4 +#define CONST_IEP C26 + + +// BeagleBone Black SRM section 6.6 +#define USR0_BIT 21 // GPIO1_21 +#define USR1_BIT 22 // GPIO1_22 +#define USR2_BIT 23 // GPIO1_23 +#define USR3_BIT 24 // GPIO1_24 + + +// This code doesn't use any calls, but the default call register is r30, +// which overlaps with the PRU direct I/O pins, so let's set it to a +// different location to avoid problems later when you expand this example +// spruhf8 AM335x PRU-ICSS Reference Guide 5.3.2.1.4 +.setcallreg r24.w2 + +.origin 0 +.entrypoint START + + +// Create a structure and map it onto some registers to make the assembly +// code a bit easier to read +// spruhf8 AM335x PRU-ICSS Reference Guide 5.3.2.1.8 +.struct LEDs + .u8 PWM0 // PWM value for LED0 + .u8 PWM1 // PWM value for LED1 + .u8 PWM2 // PWM value for LED2 + .u8 PWM3 // PWM value for LED3 + .u32 ACCUM // Accumulator +.ends + + +START: + // Clear syscfg[standby_init] to enable ocp master port + // spruhf8 AM335x PRU-ICSS Reference Guide 11.1.2 + LBCO r0, CONST_PRUCFG, 4, 4 + CLR r0, r0, 4 + SBCO r0, CONST_PRUCFG, 4, 4 + + + // Setup IEP timer + // spruhf8 AM335x PRU-ICSS Reference Guide 10.x + LBCO r6, CONST_IEP, 0x40, 40 // Read all 10 32-bit CMP registers into r6-r15 + OR r6, r6, 0x03 // Set count reset and enable compare 0 event + + // Set loop period to 10 uS, or 10,000 nS + MOV r8, 10000 + + SBCO r6, CONST_IEP, 0x40, 40 // Save 10 32-bit CMP registers + + MOV r2, 0x00000551 // Enable counter, configured to count nS (increments by 5 each clock) + SBCO r2, CONST_IEP, 0x00, 4 // Save IEP GLOBAL_CFG register + + + // Setup the initial operating constraints + // First, map the LEDs struct to some registers: + // spruhf8 AM335x PRU-ICSS Reference Guide 5.3.2.1.10 + .assign LEDs, r4, r5, LED + + // Start with different values in the LED PWM registers + // The 'raw' way: + MOV r4.b0, 0x00 + + // The pretty way: + MOV LED.PWM1, 0x40 + + // ...but a MOV can load 16 bits at once... + // You can override the defined struct element sizes using raw registers + // The efficient way: + MOV r4.w2, 0xc080 + + // Start with zero in the accumulator + LDI LED.ACCUM, 0 + + + // Start with all LEDs turned on + LDI r3, 0x0f + LSL r3, r3, USR0_BIT + MOV r2, GPIO1 + GPIO_CLEARDATAOUT + + // Write with an offset of 4 = Set data register + SBBO r3, r2, 4, 4 + + +MAINLOOP: + // We either just started, or the timer expired + + ADD LED.ACCUM, LED.ACCUM, 1 + + // Update the PWM output states + // Note this is written to be doing something interesting in the debugger, + // rather than trying to be particularly efficient. + + // The PWM sets all outputs high when the PWM period timer rolls over + // and sets a particular output low if it's PWM value matches the PWM + // counter on this pass through the loop + + // Setup the output register to point to GPIO 1 + MOV r2, GPIO1 + GPIO_CLEARDATAOUT + + // The bit we want to clear + LDI r3, 1 + LSL r3, r3, USR0_BIT + + // Skip clearing the output if the PWM setting doesn't match the accumulator + QBNE USR1, LED.ACCUM.b0, LED.PWM0 + + // Clear the output bit + SBBO r3, r2, 0, 4 + +USR1: + // USR1 is the next bit in GPIO 1 + LSL r3, r3, 1 + + // Do we have a match? + QBNE USR2, LED.ACCUM.b0, LED.PWM1 + + // If so, clear the output + SBBO r3, r2, 0, 4 + +USR2: + // USR2 is the next bit in GPIO 1 + LSL r3, r3, 1 + + // Do we have a match? + QBNE USR3, LED.ACCUM.b0, LED.PWM2 + + // If so, clear the output + SBBO r3, r2, 0, 4 + +USR3: + // USR3 is the next bit in GPIO 1 + LSL r3, r3, 1 + + // Do we have a match? + QBNE PWM_DONE, LED.ACCUM.b0, LED.PWM3 + + // If so, clear the output + SBBO r3, r2, 0, 4 + +PWM_DONE: + // Is the PWM cycle finished? + QBNE WAIT, LED.ACCUM.b0, 255 + + // If so, set all the outputs + LDI r3, 0x0f + LSL r3, r3, USR0_BIT + MOV r2, GPIO1 + GPIO_CLEARDATAOUT + + // Write with an offset of 4 = Set data register + SBBO r3, r2, 4, 4 + + // Update PWM values based on accumulator using a jump-table + + // Grab two higher bits of the accumulator for a value of 0-3 + AND r8.w0, LED.ACCUM.b2, 0x03 + + // Get the start address of the jump table + LDI r8.w2, #JUMPTABLE + + // Create a pointer to the desired destination + // Note instruction memory is indexed by words, there is no need + // to account for the 32-bit size of the instruction + ADD r8.w2, r8.w2, r8.w0 + + // ...and Jump + JMP r8.w2 + + +WAIT: + LBCO r2, CONST_IEP, 0x44, 4 // Load CMP_STATUS register + QBBC WAIT, r2, 0 // Wait until counter times out + SBCO r2, CONST_IEP, 0x44, 4 // Clear counter timeout bit + + JMP MAINLOOP + + +JUMPTABLE: + JMP _0_1 // LED position between 0 & 1 + JMP _1_2 // LED position between 1 & 2 + JMP _2_3 // LED position between 2 & 3 + JMP _3_0 // LED position between 3 & 0 + +_0_1: + RSB LED.PWM0, LED.ACCUM.b1, 1 + MOV LED.PWM1, LED.ACCUM.b1 + LDI LED.PWM2, 0 + LDI LED.PWM3, 0 + JMP WAIT + +_1_2: + LDI LED.PWM0, 0 + RSB LED.PWM1, LED.ACCUM.b1, 1 + MOV LED.PWM2, LED.ACCUM.b1 + LDI LED.PWM3, 0 + JMP WAIT + +_2_3: + LDI LED.PWM0, 0 + LDI LED.PWM1, 0 + RSB LED.PWM2, LED.ACCUM.b1, 1 + MOV LED.PWM3, LED.ACCUM.b1 + JMP WAIT + +_3_0: + MOV LED.PWM0, LED.ACCUM.b1 + LDI LED.PWM1, 0 + LDI LED.PWM2, 0 + RSB LED.PWM3, LED.ACCUM.b1, 1 + JMP WAIT + diff --git a/configs/ARM/PRU-Debugger/ui.py b/configs/ARM/PRU-Debugger/ui.py new file mode 100644 index 00000000000..e8360907f0c --- /dev/null +++ b/configs/ARM/PRU-Debugger/ui.py @@ -0,0 +1,218 @@ +import hal +import glib +import pango + +import struct +import string +import sys,os +import gtk +import gtksourceview2 as gtksourceview + + +debug = 0 +font = 'courier bold 12' + +def nullstrip(s): + try: + s = s[:s.index('\x00')] + except ValueError: + pass + return s + +class DebugText: + # decode structure of PASM .dbg output + + # label record size = 68 + def decode_labels(self): + for i in range(self.label_count): + off = self.label_offset + i *68 + (loffset,lname) = struct.unpack("@I64s",self.data[off:off+68]) + lname.rstrip('\0') + if debug: print "label: ", loffset, lname + self.labelsbyname[lname] = loffset + self.labelsbyaddr[loffset] = lname + + # filename record size = 64 + def decode_filenames(self): + for i in range(self.file_count): + off = self.file_offset + i *64 + (f,) = struct.unpack("64s",self.data[off:off+64]) + fname = nullstrip(f) + if debug: print "fname: ", i, fname + self.filenames[i] = fname + self.files[i] = open(fname, "r").read().splitlines() + + # code record size = 16 + def decode_code(self): + for i in range(self.code_count): + off = self.code_offset + i *16 + (f, resv8,fi,l,offset,word) = struct.unpack("@bbHIII",self.data[off:off+16]) + if debug: print "code: ", f, fi,l,offset,word + self.code [offset ] = word + self.line [offset ] = l + self.fileindex [offset ] = fi + self.cflags [offset] = f + + def gen_text(self): + self.text = "" + for adr in sorted(self.code.iterkeys()): + l = "" + l = format("%-3.3s: %8.8x %3.3d " % (adr, self.code[adr],self.line[adr])) + src = self.files[self.fileindex[adr]] + if self.labelsbyaddr.has_key(adr): + l += self.labelsbyaddr[adr] + l += ":" + l += src[self.line[adr]-1] + self.text += l + self.text += "\n" + return self.text + + def __init__(self, filename): + + # labels by labelname, returns code address + self.labelsbyname = dict() + # labels by address, returns label name + self.labelsbyaddr = dict() + # other stuff by address + self.code = dict() + self.fileindex = dict() + self.line = dict() + self.cflags = dict() + # lists of lines, indexed by fileindex + self.files = dict() + # lists of files, indexed by fileindex + self.filenames = dict() + + self.data = open(filename, "r").read() + (self.file_id,self.label_count, + self.label_offset,self.file_count,self.file_offset,self.code_count, + self.code_offset,self.entrypoint,selfflags) = struct.unpack("@IIIIIIIII", self.data[0:36]) + if self.file_id != (0x10150000 | 0x03): # see pasm source + sys.stderr.write("file id doesnt match: %x/%x", fid, file_id) + + self.decode_labels() + self.decode_filenames() + self.decode_code() + +class HandlerClass: + + def populate_popup(self,textview,menu,data=None): + separator = gtk.SeparatorMenuItem() + sbp_item = gtk.MenuItem("Set breakpoint") + sbp_item.connect("activate", self.set_breakpoint,"foo") + rbp_item = gtk.MenuItem("Remove breakpoint") + rbp_item.connect("activate", self.remove_breakpoint,"foo") + menu.append(separator) + separator.show() + menu.append(sbp_item) + sbp_item.show() + menu.append(rbp_item) + rbp_item.show() + + def set_breakpoint(self,widget,data=None): + if self.bpline: + self._set_bp_line(None) + self.bpline = self.textbuffer.get_iter_at_mark(self.textbuffer.get_insert()).get_line() +1 + print "not implemented yet: setting breakpoint at line=",self.bpline + self._set_bp_line(self.bpline) + + def remove_breakpoint(self,widget,data=None): + if self.bpline: + self._set_bp_line(None) + self.bpline = None + + def _set_bp_line(self,l): + if not l: + if self.bpmark: + self.textbuffer.delete_mark(self.bpmark) + self.bpmark = None + return + line = self.textbuffer.get_iter_at_line(l-1) + if not self.bpmark: + self.bpmark = self.textbuffer.create_source_mark('breakpoint', 'breakpoint', line) + self.bpmark.set_visible(True) + else: + self.textbuffer.move_mark(self.bpmark, line) + #self.sourceview.scroll_to_mark(self.bpmark, 0, True, 0, 0.5) + + + def _set_line(self,l): + if not l: + if self.mark: + self.textbuffer.delete_mark(self.mark) + self.mark = None + return + line = self.textbuffer.get_iter_at_line(l-1) + if not self.mark: + self.mark = self.textbuffer.create_source_mark('highlight', 'highlight', line) + self.mark.set_visible(True) + else: + self.textbuffer.move_mark(self.mark, line) + self.sourceview.scroll_to_mark(self.mark, 0, True, 0, 0.5) + + def load_file(self, filename): + self.dbtxt = DebugText(filename) + data = self.dbtxt.gen_text() + # the reader routines leave some fluff in the strings, so clean up + txt = data.replace('\x00', '').decode('utf-8', 'replace').encode('utf-8') + self.textbuffer.set_text(txt) + self._set_line(0) + self.have_file = True + + + def file_set(self,widget,data=None): + filename = widget.get_filename() + if debug: print "file_set",filename + self.load_file(filename) + + def pc_changed(self,widget,data=None): + line = widget.hal_pin.get() + if debug: print "pc_changed: ",line + + if not self.have_file: + return + self._set_line(line+1) + + def __init__(self, halcomp,builder,useropts,compname): + + self.halcomp = halcomp + self.builder = builder + + self.line = 1 + self.sourceview = builder.get_object('sourceview') + self.textbuffer = gtksourceview.Buffer() + self.sourceview.set_buffer(self.textbuffer) + + self.sourceview.set_editable(False) + self.sourceview.set_show_line_numbers(False) + self.sourceview.set_show_line_marks(True) + self.sourceview.set_highlight_current_line(True) + self.sourceview.modify_font(pango.FontDescription(font)) + + self.sourceview.set_mark_category_background('highlight', gtk.gdk.Color('yellow')) + self.sourceview.set_mark_category_background('breakpoint', gtk.gdk.Color('green')) + self.mark = None + self.bpmark = None + self.bpline = None + + for i in range(32): + builder.get_object(format('R%d' % (i))).modify_font(pango.FontDescription(font)) + builder.get_object("CONTROL").modify_font(pango.FontDescription(font)) + builder.get_object("PC").modify_font(pango.FontDescription(font)) + + for cmd in useropts: + exec cmd in globals() + + self.chooser = builder.get_object('chooser') + self.chooser.set_current_folder(os.getcwd()) + + if 'filename' in globals(): + self.load_file(filename) + self.have_file = True + else: + self.have_file = False + + +def get_handlers(halcomp,builder,useropts,compname): + + return [HandlerClass(halcomp,builder,useropts,compname)] diff --git a/configs/ARM/README-ARM-Dir-Structure.txt b/configs/ARM/README-ARM-Dir-Structure.txt new file mode 100644 index 00000000000..e4be207ecf2 --- /dev/null +++ b/configs/ARM/README-ARM-Dir-Structure.txt @@ -0,0 +1,21 @@ +Pror to the addition of ARM support to Machinekit the only architecture supported was x86. +This meant that all the LCNC configs in the machinekit/configs directory were a flat collection of configs. +With the addition of ARM support, some structure has been added to the config tree to make it easier to find things. +The new structure is present in the ARM sub-tree of the config dir. +Once the Arm support is mergerd back to LCNC mainline, the existing x86 config examples can be rearranged to fit the heiarchy. + +The basic dir structure is: +machinekit/configs//// + +For example: LCNC running on an ARM9, on a BeagleBone Black, using a K9 Beaglebone Black cape, configured to drive a Shapeoko router would can be found in: +machinekit/configs/ARM/BeagelBoneBlack/K9/Shapeoko + +This makes the choices that appear in the LCNC config picker have reasonably obvious names. + +Once ARM support is merged into LCNC, we expect to see these additional top level config branches: +machinekit/configs/x86/ +machinekit/configs/x86/PC +machinekit/configs/x86/SIM + + + diff --git a/configs/ARM/Zedboard/CAN8/README b/configs/ARM/Zedboard/CAN8/README new file mode 100644 index 00000000000..3c45de7c60e --- /dev/null +++ b/configs/ARM/Zedboard/CAN8/README @@ -0,0 +1 @@ +This directory contains some simple example of usage of the CAN8 interface for GPIO and CAN Bus on the Zedboard platform diff --git a/configs/ARM/Zedboard/CAN8/e-stop/README b/configs/ARM/Zedboard/CAN8/e-stop/README new file mode 100644 index 00000000000..3254b47ef12 --- /dev/null +++ b/configs/ARM/Zedboard/CAN8/e-stop/README @@ -0,0 +1 @@ +This is a simple example how to use the Zedboard GPIO driver to connect an emergency stop button. diff --git a/configs/ARM/Zedboard/CAN8/e-stop/zio.hal b/configs/ARM/Zedboard/CAN8/e-stop/zio.hal new file mode 100644 index 00000000000..21e948ac160 --- /dev/null +++ b/configs/ARM/Zedboard/CAN8/e-stop/zio.hal @@ -0,0 +1,38 @@ +# +# Test Zedboard IO +# + +# 1:1 correspondence between joints and axes. +loadrt trivkins +loadrt tp + +# parameters defined in test.ini (motmod) +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + +# load/rt HAL module +# loadrt hal_zed_gpio module from the source trees (linuxcnc/src/hal/drivers/) +loadrt hal_zed_gpio + +# signal inverter +loadrt not + +# +# hal_zed_gpio.pin-00-in emergency button +# + +# add functions to threads +addf motion-command-handler servo-thread +addf motion-controller servo-thread +# addf hal_zed_gpio.write servo-thread +addf hal_zed_gpio.read servo-thread +addf not.0 servo-thread + +# fake feedback from motor +net xpos-cmd axis.0.motor-pos-cmd => axis.0.motor-pos-fb + +# emergency stop +net estop <= hal_zed_gpio.pin-00-in +net estop => not.0.in +net nestop <= not.0.out +net nestop => iocontrol.0.emc-enable-in + diff --git a/configs/ARM/Zedboard/CAN8/e-stop/zio.ini b/configs/ARM/Zedboard/CAN8/e-stop/zio.ini new file mode 100644 index 00000000000..1128d8618d4 --- /dev/null +++ b/configs/ARM/Zedboard/CAN8/e-stop/zio.ini @@ -0,0 +1,93 @@ +; +; machinekit on Zedboard (xenomai) +; Simple example how to use the GPIO driver to connect an emergency stop button +; + +[EMC] +MACHINE = HAL2CAN8 +; DEBUG = 0x7FFFFFFF +DEBUG = 0 + +[FILTER] +PROGRAM_EXTENSION = .py Python Script +py = python + +[TRAJ] +AXES = 1 +COORDINATES = X +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +; units/sec = mm/sec +MAX_LINEAR_VELOCITY = 100.0 +; mm/sec +DEFAULT_VELOCITY = 100 + +[AXIS_0] +; axis parameters +TYPE = LINEAR +SCALE = 1.0 +HOME = 0.0 +MAX_VELOCITY = 20 +MAX_ACCELERATION = 300 +; following error in machine units +FERROR = 0.1 +MIN_FERROR = 0.01 +; soft limit in machine units +MIN_LIMIT = -400 +MAX_LIMIT = 400 +; homing parameters +HOME_SEQUENCE = 0 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 ;10 +HOME_LATCH_VEL = 0.0 ;5 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO + +[DISPLAY] +; possibile styles: axis, touchy, keystick, mini, tklinuxcnc, xemc +DISPLAY = axis +EDITOR = leafpad +POSITION_OFFSET = RELATIVE +; visualizza la posizione da encoder o da setpoint +POSITION_FEEDBACK = ACTUAL +; POSITION_FEEDBACK = COMMANDED +; +MAX_FEED_OVERRIDE = 5 +; splash screen +INTRO_GRAPHIC = ../../machinekit-zed.gif +INTRO_TIME = 3 +; posizione di default +PROGRAM_PREFIX = . +; file opened at startup +OPEN_FILE = ./x.ngc + +[EMCMOT] +EMCMOT = motmod +; the Base (fastest) task period in nanoseconds. +BASE_PERIOD = 200000 +; This is the "Servo" task period in nanoseconds. +SERVO_PERIOD = 2000000 +; This is the Trajectory Planner task period in nanoseconds. +TRAJ_PERIOD = 2000000 + +[TASK] +; +TASK = milltask +; tempo di esecuzione del task in secondi +CYCLE_TIME = 0.10 + +[RS274NGC] +PARAMETER_FILE = emc.var + +[HAL] +HALUI = halui +; first to load +HALFILE = zio.hal +; second to load +; HALFILE = second.hal +; POSTGUI_HALFILE = third.hal + +[EMCIO] +EMCIO = io +CYCLE_TIME = 0.010 + diff --git a/configs/ARM/Zedboard/CAN8/encoder/README b/configs/ARM/Zedboard/CAN8/encoder/README new file mode 100644 index 00000000000..54fe1422874 --- /dev/null +++ b/configs/ARM/Zedboard/CAN8/encoder/README @@ -0,0 +1 @@ +This is a simple example how to use the Zedboard GPIO driver to connect an encoder for manual jog-ging your machine. diff --git a/configs/ARM/Zedboard/CAN8/encoder/zio.hal b/configs/ARM/Zedboard/CAN8/encoder/zio.hal new file mode 100644 index 00000000000..c6e0c58ec3c --- /dev/null +++ b/configs/ARM/Zedboard/CAN8/encoder/zio.hal @@ -0,0 +1,78 @@ +# +# Test Zedboard IO as encoder for jog movments +# + +# 1:1 correspondence between joints and axes. +loadrt trivkins +loadrt tp + +# parameters defined in test.ini (motmod) +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + +# +# GPIO connections: +# hal_zed_gpio.pin-00-in emergency button +# +# hal_zed_gpio.pin-01-in loop cycle activation of axis +# hal_zed_gpio.pin-02-in A channel +# hal_zed_gpio.pin-03-in B channel +# + +# loadrt hal_zed_gpio module +loadrt hal_zed_gpio + +# signal inverter +loadrt not + +# encoder +loadrt encoder num_chan=1 + +# to select the axis to jog (WIP) +loadrt select8 count=1 +loadrt updown count=1 + +# add functions to threads +addf motion-command-handler servo-thread +addf motion-controller servo-thread +# addf hal_zed_gpio.write servo-thread +addf hal_zed_gpio.read servo-thread +addf not.0 servo-thread +addf encoder.update-counters servo-thread +addf encoder.capture-position servo-thread +addf updown.0 servo-thread +addf select8.0 servo-thread + +# fake feedback from motor +net xpos-cmd axis.0.motor-pos-cmd => axis.0.motor-pos-fb +net ypos-cmd axis.1.motor-pos-cmd => axis.1.motor-pos-fb + +# emergency stop +net estop <= hal_zed_gpio.pin-00-in +net estop => not.0.in +net nestop <= not.0.out +net nestop => iocontrol.0.emc-enable-in + +# connect inputs to the encoder +net encA encoder.0.phase-A <= hal_zed_gpio.pin-02-in +net encB encoder.0.phase-B <= hal_zed_gpio.pin-03-in + +# configure jog +net enc-counts encoder.0.counts => axis.0.jog-counts axis.1.jog-counts +setp axis.0.jog-scale 0.10 +setp axis.1.jog-scale 0.10 +setp axis.0.jog-vel-mode 0 +setp axis.1.jog-vel-mode 0 + +# GPIO 1 cycle selected axis +net jog-button updown.0.countup <= hal_zed_gpio.pin-01-in +net jog-choice updown.0.count => select8.0.sel + +# enable jog +net jog-x axis.0.jog-enable <= select8.0.out0 +net jog-y axis.1.jog-enable <= select8.0.out1 + +# loop from axis 'min' to axis 'max' +setp updown.0.max 1 +setp updown.0.min 0 +setp updown.0.wrap 1 + diff --git a/configs/ARM/Zedboard/CAN8/encoder/zio.ini b/configs/ARM/Zedboard/CAN8/encoder/zio.ini new file mode 100644 index 00000000000..b0f65031daa --- /dev/null +++ b/configs/ARM/Zedboard/CAN8/encoder/zio.ini @@ -0,0 +1,112 @@ +; +; machinekit on Zedboard (xenomai) +; + +[EMC] +MACHINE = HAL2CAN8 +; DEBUG = 0x7FFFFFFF +DEBUG = 0 + +[FILTER] +PROGRAM_EXTENSION = .py Python Script +py = python + +[TRAJ] +AXES = 2 +COORDINATES = XY +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +; units/sec = mm/sec +MAX_LINEAR_VELOCITY = 100.0 +; mm/sec +DEFAULT_VELOCITY = 100 + +[AXIS_0] +; axis parameters +TYPE = LINEAR +SCALE = 1.0 +HOME = 0.0 +MAX_VELOCITY = 20 +MAX_ACCELERATION = 300 +; following error in machine units +FERROR = 0.1 +MIN_FERROR = 0.01 +; soft limit in machine units +MIN_LIMIT = -400 +MAX_LIMIT = 400 +; homing parameters +HOME_SEQUENCE = 0 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 ;10 +HOME_LATCH_VEL = 0.0 ;5 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO + +[AXIS_1] +; axis parameters +TYPE = LINEAR +SCALE = 1.0 +HOME = 0.0 +MAX_VELOCITY = 20 +MAX_ACCELERATION = 300 +; following error in machine units +FERROR = 0.1 +MIN_FERROR = 0.01 +; soft limit in machine units +MIN_LIMIT = -400 +MAX_LIMIT = 400 +; homing parameters +HOME_SEQUENCE = 0 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 ;10 +HOME_LATCH_VEL = 0.0 ;5 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO + +[DISPLAY] +; possibile styles: axis, touchy, keystick, mini, tklinuxcnc, xemc +DISPLAY = axis +EDITOR = leafpad +POSITION_OFFSET = RELATIVE +; visualizza la posizione da encoder o da setpoint +POSITION_FEEDBACK = ACTUAL +; POSITION_FEEDBACK = COMMANDED +; +MAX_FEED_OVERRIDE = 5 +; splash screen +INTRO_GRAPHIC = ../../machinekit-zed.gif +INTRO_TIME = 3 +; posizione di default +PROGRAM_PREFIX = . +; file opened at startup +OPEN_FILE = ./x.ngc + +[EMCMOT] +EMCMOT = motmod +; the Base (fastest) task period in nanoseconds. +BASE_PERIOD = 200000 +; This is the "Servo" task period in nanoseconds. +SERVO_PERIOD = 1000000 +; This is the Trajectory Planner task period in nanoseconds. +TRAJ_PERIOD = 1000000 + +[TASK] +; +TASK = milltask +CYCLE_TIME = 0.10 + +[RS274NGC] +PARAMETER_FILE = emc.var + +[HAL] +HALUI = halui +; first to load +HALFILE = zio.hal +; second to load +; HALFILE = second.hal +; POSTGUI_HALFILE = pg.hal + +[EMCIO] +EMCIO = io +CYCLE_TIME = 0.010 + diff --git a/configs/ARM/Zedboard/CAN8/spindle/README b/configs/ARM/Zedboard/CAN8/spindle/README new file mode 100644 index 00000000000..0b91499135c --- /dev/null +++ b/configs/ARM/Zedboard/CAN8/spindle/README @@ -0,0 +1 @@ +This is a simple example how to use the Zedboard GPIO driver to connect an encoder to control spindle speed with PWM. diff --git a/configs/ARM/Zedboard/CAN8/spindle/zio.hal b/configs/ARM/Zedboard/CAN8/spindle/zio.hal new file mode 100644 index 00000000000..22563b6c510 --- /dev/null +++ b/configs/ARM/Zedboard/CAN8/spindle/zio.hal @@ -0,0 +1,74 @@ +# +# Test Zedboard IO for spindle speed PWM control with encoder +# + +# +# GPIO connections: +# hal_zed_gpio.pin-00-in emergency button +# +# hal_zed_gpio.pin-02-in A channel +# hal_zed_gpio.pin-03-in B channel +# +# hal_zed_gpio.pin-01-out PWM +# + +# 1:1 correspondence between joints and axes. +loadrt trivkins +loadrt tp + +# parameters defined in test.ini (motmod) +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + +# loadrt hal_zed_gpio module +loadrt hal_zed_gpio + +# signal inverter +loadrt not + +# encoder +loadrt encoder num_chan=1 + +# PWM generator for output test +loadrt pwmgen output_type=0 + +# +loadrt conv_s32_float + +# add functions to threads +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf hal_zed_gpio.write servo-thread +addf hal_zed_gpio.read servo-thread +addf not.0 servo-thread +addf encoder.update-counters servo-thread +addf encoder.capture-position servo-thread +addf pwmgen.make-pulses servo-thread +addf pwmgen.update servo-thread +addf conv-s32-float.0 servo-thread + +# fake feedback from motor +net xpos-cmd axis.0.motor-pos-cmd => axis.0.motor-pos-fb + +# emergency stop +net estop <= hal_zed_gpio.pin-00-in +net estop => not.0.in +net nestop <= not.0.out +net nestop => iocontrol.0.emc-enable-in + +# connect inputs to the encoder +net encA encoder.0.phase-A <= hal_zed_gpio.pin-02-in +net encB encoder.0.phase-B <= hal_zed_gpio.pin-03-in + +# PWM +# max speed in RPM +setp pwmgen.0.scale 4000 +setp pwmgen.0.pwm-freq 10 +# PWM out to the spindle +net PWM pwmgen.0.pwm => hal_zed_gpio.pin-00-out +# activate PWM when !e-stop +net nestop => pwmgen.0.enable + +# connect encoder counts to PWM +net enc-counts encoder.0.counts => conv-s32-float.0.in +net enc-counts-f conv-s32-float.0.out => pwmgen.0.value + diff --git a/configs/ARM/Zedboard/CAN8/spindle/zio.ini b/configs/ARM/Zedboard/CAN8/spindle/zio.ini new file mode 100644 index 00000000000..b2e5176869a --- /dev/null +++ b/configs/ARM/Zedboard/CAN8/spindle/zio.ini @@ -0,0 +1,91 @@ +; +; machinekit on Zedboard (xenomai) +; + +[EMC] +MACHINE = HAL2CAN8 +; DEBUG = 0x7FFFFFFF +DEBUG = 0 + +[FILTER] +PROGRAM_EXTENSION = .py Python Script +py = python + +[TRAJ] +AXES = 1 +COORDINATES = X +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +; units/sec = mm/sec +MAX_LINEAR_VELOCITY = 100.0 +; mm/sec +DEFAULT_VELOCITY = 100 + +[AXIS_0] +; axis parameters +TYPE = LINEAR +SCALE = 1.0 +HOME = 0.0 +MAX_VELOCITY = 20 +MAX_ACCELERATION = 300 +; following error in machine units +FERROR = 0.1 +MIN_FERROR = 0.01 +; soft limit in machine units +MIN_LIMIT = -400 +MAX_LIMIT = 400 +; homing parameters +HOME_SEQUENCE = 0 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 ;10 +HOME_LATCH_VEL = 0.0 ;5 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO + +[DISPLAY] +; possibile styles: axis, touchy, keystick, mini, tklinuxcnc, xemc +DISPLAY = axis +EDITOR = leafpad +POSITION_OFFSET = RELATIVE +; visualizza la posizione da encoder o da setpoint +POSITION_FEEDBACK = ACTUAL +; POSITION_FEEDBACK = COMMANDED +; +MAX_FEED_OVERRIDE = 5 +; splash screen +INTRO_GRAPHIC = ../../machinekit-zed.gif +INTRO_TIME = 3 +; posizione di default +PROGRAM_PREFIX = . +; file opened at startup +OPEN_FILE = ./x.ngc + +[EMCMOT] +EMCMOT = motmod +; the Base (fastest) task period in nanoseconds. +BASE_PERIOD = 200000 +; This is the "Servo" task period in nanoseconds. +SERVO_PERIOD = 1000000 +; This is the Trajectory Planner task period in nanoseconds. +TRAJ_PERIOD = 1000000 + +[TASK] +; +TASK = milltask +CYCLE_TIME = 0.10 + +[RS274NGC] +PARAMETER_FILE = emc.var + +[HAL] +HALUI = halui +; first to load +HALFILE = zio.hal +; second to load +; HALFILE = second.hal +; POSTGUI_HALFILE = third.hal + +[EMCIO] +EMCIO = io +CYCLE_TIME = 0.010 + diff --git a/configs/ARM/Zedboard/README b/configs/ARM/Zedboard/README new file mode 100644 index 00000000000..389eef21e12 --- /dev/null +++ b/configs/ARM/Zedboard/README @@ -0,0 +1 @@ +This directory contains some simple example for the Zedboard platform diff --git a/configs/ARM/Zedboard/machinekit-zed.gif b/configs/ARM/Zedboard/machinekit-zed.gif new file mode 100644 index 00000000000..fc10bf65080 Binary files /dev/null and b/configs/ARM/Zedboard/machinekit-zed.gif differ diff --git a/configs/apps/README b/configs/apps/README index 16f7ce3c637..abe0fbe3ccc 100644 --- a/configs/apps/README +++ b/configs/apps/README @@ -2,6 +2,7 @@ info: create system information file Directories: +axis-alterations -- demo sim config of changes gladevcp -- demonstration widgets halrun ---- start halrun in xterm latency --- apps to investigate latency diff --git a/configs/apps/axis-alterations/README b/configs/apps/axis-alterations/README new file mode 100644 index 00000000000..4666be86e35 --- /dev/null +++ b/configs/apps/axis-alterations/README @@ -0,0 +1,88 @@ + +-- axis_mm.ini (AXIS based config, with mm settings) ------------ + +Demo of user keys, preview disable, load last file, write current file name, disable run, axis-remote --run etc + +User Defined Command keys +~~~~~~~~~~~~~~~~~~~~~~~~~~ +# precedes a halcmd + This will be sent and the return waited for before continuing +.... +$ precedes a system command + This will be spawned to a new process and return immediately +.... +No prefix before a gcode instruction + +To bind the user keys to the numeric 0-9 keys +set NUMKEYS = YES +Use this carefully, the main reason for its inclusion +is to allow HID type pendant to operate commands from keystrokes +If using a keyboard probably best set to NO and just use Alt U + n (0-9). +. +Example:- + +[USER_COMMANDS] +USER0 = #setp iocontrol.0.lube_level 1 +USER1 = G0 X0 Y0 Z0 +USER2 = G0 X5 Y5 Z5 +USER3 = G0 X10 Y10 Z10 +USER4 = G0 X15 Y15 Z15 +USER5 = G0 X20 Y20 Z20 +USER6 = G0 X25 Y25 +USER7 = G0 X30 Y30 +USER8 = $firefox "www.machinekit.io" +USER9 = $gedit +NUMBERKEYS = YES + +Preview Disable +~~~~~~~~~~~~~~~ + +Loading big files can crash Axis if the preview is enabled, because it consumes huge amounts of memory +This option turns the preview off +The live plot will still be drawn + +In the ini file + +[USER_COMMANDS] +DISABLE_PREVIEW = YES + +run-disable pin +~~~~~~~~~~~~~~~~~ + +A pin called axisui.run-disable is created at startup of Axis + +If this pin is TRUE (1) it will prevent any program being run + +Use this pin in your hal file netted to signals from safety interlocks etc and you will prevent +a program being started which safety screens etc are open, but still allow jogging for touch off etc + + +Open Last File +~~~~~~~~~~~~~~ + +Unless Machinekit is launched with a file in the command line, +or there is a file specified to be opened in the ini file or in the environment variable, +the file that was open when machinekit was last closed, will be re-opened if the variable in the ini file is set. + +[USER_COMMANDS] +LOAD_LASTFILE = YES + + +Write File Name +~~~~~~~~~~~~~~~~ + +To overcome the inability to interogate Axis as to what file it has open, it is now written to +/tmp/emc.filename whenever a file is opened. +If no file is open it will contain "No File Loaded" + +This info can then be used in scripts etc. +The original purpose was to use it for a job timestamp file started and stopped with a M code script + +Remote Run +~~~~~~~~~~~~ + +axis-remote has been extended to include a 'run' switch ( -R or --run ) + +A corresponding command in Axis will run the currently loaded file + +This gives the ability to not only run MDI commands remotely, but to load a file and run it remotely diff --git a/configs/apps/axis-alterations/axis_manualtoolchange.hal b/configs/apps/axis-alterations/axis_manualtoolchange.hal new file mode 100644 index 00000000000..45dbe63ea5f --- /dev/null +++ b/configs/apps/axis-alterations/axis_manualtoolchange.hal @@ -0,0 +1,10 @@ +loadusr -W hal_manualtoolchange + +# in case they were linked already +unlinkp iocontrol.0.tool-change +unlinkp iocontrol.0.tool-changed + +net tool-change hal_manualtoolchange.change iocontrol.0.tool-change +net tool-changed hal_manualtoolchange.changed iocontrol.0.tool-changed +net tool-prep-number hal_manualtoolchange.number iocontrol.0.tool-prep-number + diff --git a/configs/apps/axis-alterations/axis_mm.ini b/configs/apps/axis-alterations/axis_mm.ini new file mode 100755 index 00000000000..d60ea9ac8c7 --- /dev/null +++ b/configs/apps/axis-alterations/axis_mm.ini @@ -0,0 +1,228 @@ +# EMC controller parameters for a simulated machine. + +# General note: Comments can either be preceded with a # or ; - either is +# acceptable, although # is in keeping with most linux config files. + +# General section ------------------------------------------------------------- +[EMC] + +# Version of this INI file +VERSION = $Revision: 1.6 $ + +# Name of machine, for use with display, etc. +MACHINE = EMC-HAL-SIM-AXIS + +# Name of NML file to use, default is emc.nml +#NML_FILE = emc.nml + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +# DEBUG = 0x7FFFFFFF +DEBUG = 0 + +# Sections for display options ------------------------------------------------ +[DISPLAY] + +DISPLAY = axis + +CYCLE_TIME = 0.100 + +# Path to help file +HELP_FILE = doc/help.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.2 +MAX_SPINDLE_OVERRIDE = 1.0 +# Prefix to be used +PROGRAM_PREFIX = /root/emc2/ngc/ + +# Introductory graphic +INTRO_GRAPHIC = emc2.gif +INTRO_TIME = 5 + +EDITOR = gedit + +INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm +#INCREMENTS = 1 mm, .01 in, .1mm, 1 mil, .1 mil, 1/8000 in + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +PROGRAM_EXTENSION = .nc, .NC + +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +dxf = image-to-gcode +py = python +nc = /usr/bin/axis + +# Task controller section ----------------------------------------------------- +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.001 + +# Part program interpreter section -------------------------------------------- +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = sim_mm.var + +# Motion control section ------------------------------------------------------ +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# BASE_PERIOD is unused in this configuration but specified in core_sim.hal +BASE_PERIOD = 50000 +# Servo task period, in nano-seconds +SERVO_PERIOD = 100000 + +# Hardware Abstraction Layer section -------------------------------------------------- +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. +# + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear +HALFILE = core_sim.hal +HALFILE = axis_manualtoolchange.hal +HALFILE = simulated_home.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + + +HALUI = halui + +[HALUI] +# add halui MDI commands here (max 64) + +[USER_COMMANDS] +USER0 = #setp iocontrol.0.lube_level 1 +USER1 = G0 X0 Y0 Z0 +USER2 = G0 X5 Y5 Z5 +USER3 = G0 X10 Y10 Z10 +USER4 = G0 X15 Y15 Z15 +USER5 = G0 X20 Y20 Z20 +USER6 = G0 X25 Y25 +USER7 = G0 X30 Y30 +USER8 = $firefox "www.machinekit.io" +USER9 = $gedit +NUMBERKEYS = NO +DISABLE_PREVIEW = YES +LOAD_LASTFILE = YES + +# Trajectory planner section -------------------------------------------------- +[TRAJ] + +AXES = 3 +COORDINATES = X Y Z +HOME = 0 0 0 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 30.48 +MAX_VELOCITY = 53.34 +DEFAULT_ACCELERATION = 508 +MAX_ACCELERATION = 508 +POSITION_FILE = position_mm.txt + +# Axes sections --------------------------------------------------------------- + +# First axis +[AXIS_0] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 157.48 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -254 +MAX_LIMIT = 254 +FERROR = 1.27 +MIN_FERROR = .254 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0 +HOME_LATCH_VEL = 0 +HOME_USE_INDEX = NO +#HOME_IGNORE_LIMITS = YES +HOME_SEQUENCE = 0 +#HOME_IS_SHARED = 1 + +# Second axis +[AXIS_1] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 157.48 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -254 +MAX_LIMIT = 254 +FERROR = 1.27 +MIN_FERROR = .254 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0 +HOME_LATCH_VEL = 0 +#HOME_USE_INDEX = NO +#HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 + +# Third axis +[AXIS_2] + +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 157.48 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -150 +MAX_LIMIT = 101.6 +FERROR = 1.27 +MIN_FERROR = .254 +HOME_OFFSET = 0 +HOME_SEARCH_VEL = 0 +HOME_LATCH_VEL = 0 +#HOME_USE_INDEX = NO +#HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +#HOME_IS_SHARED = 1 + +# section for main IO controller parameters ----------------------------------- +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = sim_mm.tbl +TOOL_CHANGE_POSITION = 0 0 50.8 +#RANDOM_TOOLCHANGER = 1 diff --git a/configs/apps/axis-alterations/check_constraints.hal b/configs/apps/axis-alterations/check_constraints.hal new file mode 100644 index 00000000000..2d579b430fb --- /dev/null +++ b/configs/apps/axis-alterations/check_constraints.hal @@ -0,0 +1,63 @@ +# HAL config file to check vel/acc constraints +# +loadrt wcomp count=6 + +addf wcomp.0 servo-thread +addf wcomp.1 servo-thread +addf wcomp.2 servo-thread +addf wcomp.3 servo-thread +addf wcomp.4 servo-thread +addf wcomp.5 servo-thread + +net Xacc => wcomp.0.in +net Xvel => wcomp.1.in +net Yacc => wcomp.2.in +net Yvel => wcomp.3.in +net Zacc => wcomp.4.in +net Zvel => wcomp.5.in + +net acc-ok-x <= wcomp.0.out +net vel-ok-x <= wcomp.1.out +net acc-ok-y <= wcomp.2.out +net vel-ok-y <= wcomp.3.out +net acc-ok-z <= wcomp.4.out +net vel-ok-z <= wcomp.5.out + +setp wcomp.0.max 20.001 +setp wcomp.0.min -20.001 +setp wcomp.1.max 1.2001 +setp wcomp.1.min -1.2001 +setp wcomp.2.max 20.001 +setp wcomp.2.min -20.001 +setp wcomp.3.max 1.2001 +setp wcomp.3.min -1.2001 +setp wcomp.4.max 20.001 +setp wcomp.4.min -20.001 +setp wcomp.5.max 1.2001 +setp wcomp.5.min -1.2001 + +loadrt match8 count=1 + +addf match8.0 servo-thread + +net acc-ok-x => match8.0.a0 +setp match8.0.b0 1 +net vel-ok-x => match8.0.a1 +setp match8.0.b1 1 +net acc-ok-y => match8.0.a2 +setp match8.0.b2 1 +net vel-ok-y => match8.0.a3 +setp match8.0.b3 1 +net acc-ok-z => match8.0.a4 +setp match8.0.b4 1 +net vel-ok-z => match8.0.a5 +setp match8.0.b5 1 + +setp match8.0.a6 0 +setp match8.0.a7 0 +setp match8.0.b6 0 +setp match8.0.b7 0 + +setp match8.0.in 1 + +net constraints-ok <= match8.0.out diff --git a/configs/apps/axis-alterations/core_sim.hal b/configs/apps/axis-alterations/core_sim.hal new file mode 100644 index 00000000000..1614b063eba --- /dev/null +++ b/configs/apps/axis-alterations/core_sim.hal @@ -0,0 +1,62 @@ +# core HAL config file for simulation + +# first load all the RT modules that will be needed +# kinematics +loadrt trivkins +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins +loadrt threads name3=real_servo_thread period3=1000000 fp3=1 + +# load 6 differentiators (for velocity and accel signals +loadrt ddt count=6 +# load additional blocks +loadrt hypot count=2 +loadrt comp count=3 +loadrt or2 count=1 + +# add motion controller functions to servo thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread + +# link the differentiator functions into the code +addf ddt.0 servo-thread +addf ddt.1 servo-thread +addf ddt.2 servo-thread +addf ddt.3 servo-thread +addf ddt.4 servo-thread +addf ddt.5 servo-thread +addf hypot.0 servo-thread +addf hypot.1 servo-thread + +# create HAL signals for position commands from motion module +# loop position commands back to motion module feedback +net Xpos axis.0.motor-pos-cmd => axis.0.motor-pos-fb ddt.0.in +net Ypos axis.1.motor-pos-cmd => axis.1.motor-pos-fb ddt.2.in +net Zpos axis.2.motor-pos-cmd => axis.2.motor-pos-fb ddt.4.in + +# send the position commands thru differentiators to +# generate velocity and accel signals +net Xvel ddt.0.out => ddt.1.in hypot.0.in0 +net Xacc <= ddt.1.out +net Yvel ddt.2.out => ddt.3.in hypot.0.in1 +net Yacc <= ddt.3.out +net Zvel ddt.4.out => ddt.5.in hypot.1.in0 +net Zacc <= ddt.5.out + +# Cartesian 2- and 3-axis velocities +net XYvel hypot.0.out => hypot.1.in1 +net XYZvel <= hypot.1.out + +# estop loopback +net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in + + + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed + + + diff --git a/configs/apps/axis-alterations/emc.nml b/configs/apps/axis-alterations/emc.nml new file mode 100755 index 00000000000..2b2693d5073 --- /dev/null +++ b/configs/apps/axis-alterations/emc.nml @@ -0,0 +1,47 @@ + +# Note: emcsvr is the master for all NML channels, and therefore is the +# first to start. + +# Buffers +# Name Type Host size neut? (old) buffer# MP --- + +# Top-level buffers to EMC +B emcCommand SHMEM localhost 8192 0 0 1 16 1001 TCP=5005 xdr +B emcStatus SHMEM localhost 10240 0 0 2 16 1002 TCP=5005 xdr +B emcError SHMEM localhost 8192 0 0 3 16 1003 TCP=5005 xdr queue + +# These are for the IO controller, EMCIO +B toolCmd SHMEM localhost 1024 0 0 4 16 1004 TCP=5005 xdr +B toolSts SHMEM localhost 8192 0 0 5 16 1005 TCP=5005 xdr + +# Processes +# Name Buffer Type Host Ops server? timeout master? cnum + +P emc emcCommand LOCAL localhost RW 0 1.0 0 0 +P emc emcStatus LOCAL localhost W 0 1.0 0 0 +P emc emcError LOCAL localhost W 0 1.0 0 0 +P emc toolCmd LOCAL localhost W 0 1.0 0 0 +P emc toolSts LOCAL localhost R 0 1.0 0 0 + +P emcsvr emcCommand LOCAL localhost W 1 1.0 1 2 +P emcsvr emcStatus LOCAL localhost R 1 1.0 1 2 +P emcsvr emcError LOCAL localhost R 1 1.0 1 2 +P emcsvr toolCmd LOCAL localhost W 1 1.0 1 2 +P emcsvr toolSts LOCAL localhost R 1 1.0 1 2 +P emcsvr default LOCAL localhost RW 1 1.0 1 2 + +P tool emcError LOCAL localhost W 0 1.0 0 3 +P tool toolCmd LOCAL localhost RW 0 1.0 0 3 +P tool toolSts LOCAL localhost W 0 1.0 0 3 + +P xemc emcCommand LOCAL localhost W 0 10.0 0 10 +P xemc emcStatus LOCAL localhost R 0 10.0 0 10 +P xemc emcError LOCAL localhost R 0 10.0 0 10 +P xemc toolCmd LOCAL localhost W 0 10.0 0 10 +P xemc toolSts LOCAL localhost R 0 10.0 0 10 + +P keystick emcCommand LOCAL localhost W 0 10.0 0 10 +P keystick emcStatus LOCAL localhost R 0 10.0 0 10 +P keystick emcError LOCAL localhost R 0 10.0 0 10 +P keystick toolCmd LOCAL localhost W 0 10.0 0 10 +P keystick toolSts LOCAL localhost R 0 10.0 0 10 diff --git a/configs/apps/axis-alterations/sim_mm.tbl b/configs/apps/axis-alterations/sim_mm.tbl new file mode 100644 index 00000000000..51dbd6ff5b2 --- /dev/null +++ b/configs/apps/axis-alterations/sim_mm.tbl @@ -0,0 +1,3 @@ +T3 P0 D0.201000 Z+1.273000 ;#7 tap drill +T1 P2 D0.125000 Z+0.511000 ;1/8 end mill +T2 P3 D0.062500 Z+0.100000 ;1/16 end mill diff --git a/configs/apps/axis-alterations/simpockets.tbl b/configs/apps/axis-alterations/simpockets.tbl new file mode 100644 index 00000000000..391e727b86f --- /dev/null +++ b/configs/apps/axis-alterations/simpockets.tbl @@ -0,0 +1,4 @@ +T1 P1 D0.125000 Z+0.511000 ;1/8 end mill +T2 P2 D0.062500 Z+0.100000 ;1/16 end mill +T3 P3 D0.201000 Z+1.273000 ;#7 tap drill +T99999 P9 Z+0.100000 ;big tool number diff --git a/configs/apps/axis-alterations/simulated_home.hal b/configs/apps/axis-alterations/simulated_home.hal new file mode 100644 index 00000000000..b3b8295affe --- /dev/null +++ b/configs/apps/axis-alterations/simulated_home.hal @@ -0,0 +1,29 @@ +net Xhomeswpos => comp.0.in0 +net Yhomeswpos => comp.1.in0 +net Zhomeswpos => comp.2.in0 + +sets Xhomeswpos 1 +sets Yhomeswpos .5 +sets Zhomeswpos 2 + +net Xpos => comp.0.in1 +net Ypos => comp.1.in1 +net Zpos => comp.2.in1 + +setp comp.0.hyst .02 +setp comp.1.hyst .02 +setp comp.2.hyst .02 + +net Xhomesw <= comp.0.out +net Yhomesw <= comp.1.out => axis.1.home-sw-in +net Zhomesw <= comp.2.out + +net Xhomesw => or2.0.in0 +net Zhomesw => or2.0.in1 +net XZhomesw or2.0.out => axis.0.home-sw-in axis.2.home-sw-in + +addf comp.0 servo-thread +addf comp.1 servo-thread +addf comp.2 servo-thread + +addf or2.0 servo-thread diff --git a/configs/apps/axis-alterations/simulated_limits.hal b/configs/apps/axis-alterations/simulated_limits.hal new file mode 100644 index 00000000000..055f55eefd9 --- /dev/null +++ b/configs/apps/axis-alterations/simulated_limits.hal @@ -0,0 +1,76 @@ +# HAL config file to simulate limit switches using window comparators +# +# first install nine comparators +loadrt wcomp count=9 + +# add comparators to servo thread so they will be evaluated +# every servo period +addf wcomp.0 servo-thread +addf wcomp.1 servo-thread +addf wcomp.2 servo-thread +addf wcomp.3 servo-thread +addf wcomp.4 servo-thread +addf wcomp.5 servo-thread +addf wcomp.6 servo-thread +addf wcomp.7 servo-thread +addf wcomp.8 servo-thread + +# connect position feedback from step generators +# to window comparators +net Xpos-fb => wcomp.0.in +net Xpos-fb => wcomp.1.in +net Xpos-fb => wcomp.2.in +net Ypos-fb => wcomp.3.in +net Ypos-fb => wcomp.4.in +net Ypos-fb => wcomp.5.in +net Zpos-fb => wcomp.6.in +net Zpos-fb => wcomp.7.in +net Zpos-fb => wcomp.8.in + +# connect simulated switch outputs to motion controller +net Xminlim wcomp.0.out => axis.0.neg-lim-sw-in +net Xmaxlim wcomp.1.out => axis.0.pos-lim-sw-in +net Xhome wcomp.2.out => axis.0.home-sw-in + +net Yminlim wcomp.3.out => axis.1.neg-lim-sw-in +net Ymaxlim wcomp.4.out => axis.1.pos-lim-sw-in +net Yhome wcomp.5.out => axis.1.home-sw-in + +net Zminlim wcomp.6.out => axis.2.neg-lim-sw-in +net Zmaxlim wcomp.7.out => axis.2.pos-lim-sw-in +net Zhome wcomp.8.out => axis.2.home-sw-in + +# configure the points at which the simulated switches trip +# X axis first +# set min limit switch to trip at -10.2, release at -1000 +setp wcomp.0.max -10.2 +setp wcomp.0.min -1000 +# set max limit switch to trip at +10.2, release at +10.21 +setp wcomp.1.min 10.20 +setp wcomp.1.max 10.21 +# set home switch to trip at 9.5 and release at 9.75 +setp wcomp.2.min 9.5 +setp wcomp.2.max 9.75 + +# Y axis +# set min limit switch to trip at -10.2, release at -1000 +setp wcomp.3.max -10.2 +setp wcomp.3.min -1000 +# set max limit switch to trip at +10.2, release at +10.21 +setp wcomp.4.min 10.20 +setp wcomp.4.max 10.21 +# set home switch to trip at 9.5 and release at 9.75 +setp wcomp.5.min 9.5 +setp wcomp.5.max 9.75 + +# Z axis +# set min limit switch to trip at -2.1, release at -1000 +setp wcomp.6.max -2.1 +setp wcomp.6.min -1000 +# set max limit switch to trip at +4.05,release at +5 +setp wcomp.7.min 4.05 +setp wcomp.7.max 5 +# set home switch to trip at 3.9 and release at 4.1 +setp wcomp.8.min 3.9 +setp wcomp.8.max 4.1 + diff --git a/configs/apps/axis-alterations/tool.tbl b/configs/apps/axis-alterations/tool.tbl new file mode 100644 index 00000000000..7581922c2f1 --- /dev/null +++ b/configs/apps/axis-alterations/tool.tbl @@ -0,0 +1,5 @@ +1 1 0 0 +2 2 0.7 0.125 +3 3 0.5 1.25 +4 4 0.7 1.0 + diff --git a/configs/apps/gladevcp/README.changes b/configs/apps/gladevcp/README.changes index 08b47f111d1..af615b03ace 100644 --- a/configs/apps/gladevcp/README.changes +++ b/configs/apps/gladevcp/README.changes @@ -9,13 +9,13 @@ parameter any more as well: class HandlerClass: ... - def __init__(self, halcomp,builder,useropts): + def __init__(self, halcomp,builder,useropts,compname): self.halcomp = halcomp self.builder = builder -def get_handlers(halcomp,builder,useropts): +def get_handlers(halcomp,builder,useropts,compname): - return [HandlerClass(halcomp,builder,useropts)] + return [HandlerClass(halcomp,builder,useropts,compname)] Widget access in handler classes: ================================= diff --git a/configs/apps/gladevcp/animated-backdrop/cairodraw.py b/configs/apps/gladevcp/animated-backdrop/cairodraw.py index 747ce999f8e..e1e65dbf3ed 100644 --- a/configs/apps/gladevcp/animated-backdrop/cairodraw.py +++ b/configs/apps/gladevcp/animated-backdrop/cairodraw.py @@ -31,7 +31,7 @@ def on_expose(self,widget,data=None): - def __init__(self, halcomp,builder,useropts): + def __init__(self, halcomp,builder,useropts,compname): self.builder = builder win = self.builder.get_object("window1") @@ -56,6 +56,6 @@ def __init__(self, halcomp,builder,useropts): # however the fixed widget does NOT do proportional scaling self.scale = 1 -def get_handlers(halcomp,builder,useropts): +def get_handlers(halcomp,builder,useropts,compname): - return [HandlerClass(halcomp,builder,useropts)] + return [HandlerClass(halcomp,builder,useropts,compname)] diff --git a/configs/apps/gladevcp/by-widget/combobox.py b/configs/apps/gladevcp/by-widget/combobox.py index 98cc7e1bc2d..b3d0e0cf4d3 100644 --- a/configs/apps/gladevcp/by-widget/combobox.py +++ b/configs/apps/gladevcp/by-widget/combobox.py @@ -23,18 +23,18 @@ def on_destroy(self,obj,data=None): def on_changed(self, combobox, data=None): print "on_changed %f %d" % (combobox.hal_pin_f.get(),combobox.hal_pin_s.get()) - def __init__(self, halcomp,builder,useropts): + def __init__(self, halcomp,builder,useropts,compname): self.halcomp = halcomp self.builder = builder self.useropts = useropts self.combo = self.builder.get_object('hal_combobox1') -def get_handlers(halcomp,builder,useropts): +def get_handlers(halcomp,builder,useropts,compname): global debug for cmd in useropts: exec cmd in globals() - return [HandlerClass(halcomp,builder,useropts)] + return [HandlerClass(halcomp,builder,useropts,compname)] diff --git a/configs/apps/gladevcp/by-widget/combobox_manual_list.py b/configs/apps/gladevcp/by-widget/combobox_manual_list.py index 0607cf944a1..e59fcd4695c 100644 --- a/configs/apps/gladevcp/by-widget/combobox_manual_list.py +++ b/configs/apps/gladevcp/by-widget/combobox_manual_list.py @@ -28,7 +28,7 @@ def on_changed(self, combobox, data=None): return - def __init__(self, halcomp,builder,useropts): + def __init__(self, halcomp,builder,useropts,compname): self.halcomp = halcomp self.builder = builder self.useropts = useropts @@ -49,11 +49,11 @@ def __init__(self, halcomp,builder,useropts): self.combo.add_attribute(cell, "text", 0) -def get_handlers(halcomp,builder,useropts): +def get_handlers(halcomp,builder,useropts,compname): global debug for cmd in useropts: exec cmd in globals() - return [HandlerClass(halcomp,builder,useropts)] + return [HandlerClass(halcomp,builder,useropts,compname)] diff --git a/configs/apps/gladevcp/by-widget/radio.py b/configs/apps/gladevcp/by-widget/radio.py index c77e8bbd9bc..5ed1efdf3ee 100644 --- a/configs/apps/gladevcp/by-widget/radio.py +++ b/configs/apps/gladevcp/by-widget/radio.py @@ -57,7 +57,7 @@ def on_destroy(self,obj,data=None): self.halcomp.exit() # avoid lingering HAL component gtk.main_quit() - def __init__(self, halcomp,builder,useropts): + def __init__(self, halcomp,builder,useropts,compname): self.halcomp = halcomp self.builder = builder self.useropts = useropts @@ -76,11 +76,11 @@ def __init__(self, halcomp,builder,useropts): } self.on_showoutput_btn_toggled(self.builder.get_object('showoutput_btn')) -def get_handlers(halcomp,builder,useropts): +def get_handlers(halcomp,builder,useropts,compname): global debug for cmd in useropts: exec cmd in globals() - return [HandlerClass(halcomp,builder,useropts)] + return [HandlerClass(halcomp,builder,useropts,compname)] diff --git a/configs/apps/gladevcp/by-widget/sourceview.py b/configs/apps/gladevcp/by-widget/sourceview.py index 04fd6632b01..952cb3eb6da 100644 --- a/configs/apps/gladevcp/by-widget/sourceview.py +++ b/configs/apps/gladevcp/by-widget/sourceview.py @@ -34,7 +34,7 @@ def on_up(self,widget,data=None): self.line -= 1 self._set_line(self.line) - def __init__(self, halcomp,builder,useropts): + def __init__(self, halcomp,builder,useropts,compname): self.halcomp = halcomp self.builder = builder @@ -51,6 +51,6 @@ def __init__(self, halcomp,builder,useropts): self.mark = None -def get_handlers(halcomp,builder,useropts): +def get_handlers(halcomp,builder,useropts,compname): - return [HandlerClass(halcomp,builder,useropts)] + return [HandlerClass(halcomp,builder,useropts,compname)] diff --git a/configs/apps/gladevcp/by-widget/spinbutton.py b/configs/apps/gladevcp/by-widget/spinbutton.py index cd32abf6a77..109ba9f1a98 100644 --- a/configs/apps/gladevcp/by-widget/spinbutton.py +++ b/configs/apps/gladevcp/by-widget/spinbutton.py @@ -10,7 +10,7 @@ def on_spinbutton_realize(self,widget,data=None): widget.set_value(3.14) -def get_handlers(halcomp,builder,useropts): +def get_handlers(halcomp,builder,useropts,compname): return [HandlerClass()] diff --git a/configs/apps/gladevcp/class-callback/class_callback.py b/configs/apps/gladevcp/class-callback/class_callback.py index 042eabee087..898d38a15df 100644 --- a/configs/apps/gladevcp/class-callback/class_callback.py +++ b/configs/apps/gladevcp/class-callback/class_callback.py @@ -42,7 +42,7 @@ def _on_timer_tick(self,userdata=None): return True - def __init__(self, halcomp,builder,useropts): + def __init__(self, halcomp,builder,useropts,compname): ''' Handler classes are instantiated in the following state: - the widget tree is created, but not yet realized (no toplevel window.show() executed yet) @@ -74,7 +74,7 @@ def __init__(self, halcomp,builder,useropts): other = OtherClass() # executed at import time -def get_handlers(halcomp,builder,useropts): +def get_handlers(halcomp,builder,useropts,compname): ''' this function is called by gladevcp at import time (when this module is passed with '-u .py') @@ -83,4 +83,4 @@ def get_handlers(halcomp,builder,useropts): the 'get_handlers' name is reserved - gladevcp expects it, so do not change ''' - return [HandlerClass(halcomp,builder,useropts)] + return [HandlerClass(halcomp,builder,useropts,compname)] diff --git a/configs/apps/gladevcp/colored-label/coloredlabel.py b/configs/apps/gladevcp/colored-label/coloredlabel.py index ce7801d06c0..1541aaf43d6 100644 --- a/configs/apps/gladevcp/colored-label/coloredlabel.py +++ b/configs/apps/gladevcp/colored-label/coloredlabel.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # vim: sts=4 sw=4 et -# This is a component of LinuxCNC +# This is a component of Machinekit # complex.py Copyright 2011 Michael Haberler # # @@ -75,10 +75,10 @@ def on_label_hal_pin_change(self, hal_widget, data=None): hal_widget.set_label(text) self.colorize(hal_widget, gtk.STATE_NORMAL, color) - def __init__(self, halcomp,builder,useropts): + def __init__(self, halcomp,builder,useropts,compname): self.hal_button1 = builder.get_object('hal_button1') -def get_handlers(halcomp,builder,useropts): - return [HandlerClass(halcomp,builder,useropts)] +def get_handlers(halcomp,builder,useropts,compname): + return [HandlerClass(halcomp,builder,useropts,compname)] diff --git a/configs/apps/gladevcp/complex/complex.py b/configs/apps/gladevcp/complex/complex.py index 1a5cdc61bfc..cee52b24162 100644 --- a/configs/apps/gladevcp/complex/complex.py +++ b/configs/apps/gladevcp/complex/complex.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # vim: sts=4 sw=4 et -# This is a component of LinuxCNC +# This is a component of Machinekit # complex.py Copyright 2010 Michael Haberler # # @@ -129,7 +129,7 @@ def _hal_setup(self,halcomp, builder): self.example_trigger = hal_glib.GPin(halcomp.newpin('example-trigger', hal.HAL_BIT, hal.HAL_IN)) self.example_trigger.connect('value-changed', self._on_example_trigger_change) - def __init__(self, halcomp,builder,useropts): + def __init__(self, halcomp,builder,useropts,compname): ''' Handler classes are instantiated in the following state: - the widget tree is created, but not yet realized (no toplevel window.show() executed yet) @@ -190,7 +190,7 @@ def __init__(self, halcomp,builder,useropts): glib.timeout_add_seconds(1, self._on_timer_tick) -def get_handlers(halcomp,builder,useropts): +def get_handlers(halcomp,builder,useropts,compname): ''' this function is called by gladevcp at import time (when this module is passed with '-u .py') @@ -210,4 +210,4 @@ def get_handlers(halcomp,builder,useropts): if debug: print "%s.get_handlers() called" % (__name__) - return [HandlerClass(halcomp,builder,useropts)] + return [HandlerClass(halcomp,builder,useropts,compname)] diff --git a/configs/apps/gladevcp/templates/classhandler.py b/configs/apps/gladevcp/templates/classhandler.py index abb7b75396a..6fa09e95d3b 100644 --- a/configs/apps/gladevcp/templates/classhandler.py +++ b/configs/apps/gladevcp/templates/classhandler.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # vim: sts=4 sw=4 et -# This is a component of LinuxCNC +# This is a component of Machinekit # classhandler.py Copyright 2010 Michael Haberler # # @@ -40,7 +40,7 @@ def _on_timer_tick(self,userdata=None): return True - def __init__(self, halcomp,builder,useropts): + def __init__(self, halcomp,builder,useropts,compname): self.halcomp = halcomp self.builder = builder self.useropts = useropts @@ -51,9 +51,9 @@ def __init__(self, halcomp,builder,useropts): glib.timeout_add_seconds(1, self._on_timer_tick) -def get_handlers(halcomp,builder,useropts): +def get_handlers(halcomp,builder,useropts,compname): for cmd in useropts: exec cmd in globals() - return [HandlerClass(halcomp,builder,useropts)] + return [HandlerClass(halcomp,builder,useropts,compname)] diff --git a/configs/apps/gladevcp/templates/classhandler_persistent.py b/configs/apps/gladevcp/templates/classhandler_persistent.py index f11423d4772..ccd465a0a6e 100644 --- a/configs/apps/gladevcp/templates/classhandler_persistent.py +++ b/configs/apps/gladevcp/templates/classhandler_persistent.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # vim: sts=4 sw=4 et -# This is a component of LinuxCNC +# This is a component of Machinekit # classhandler_persistent.py Copyright 2010 Michael Haberler # # @@ -51,7 +51,7 @@ def on_restore_defaults(self,button,data=None): self.ini.restore_state(self) - def __init__(self, halcomp,builder,useropts): + def __init__(self, halcomp,builder,useropts,compname): self.halcomp = halcomp self.builder = builder self.useropts = useropts @@ -81,7 +81,7 @@ def __init__(self, halcomp,builder,useropts): self.ini.restore_state(self) -def get_handlers(halcomp,builder,useropts): +def get_handlers(halcomp,builder,useropts,compname): global debug for cmd in useropts: @@ -90,4 +90,4 @@ def get_handlers(halcomp,builder,useropts): # get some detail what save/restore etc are doing set_debug(debug) - return [HandlerClass(halcomp,builder,useropts)] + return [HandlerClass(halcomp,builder,useropts,compname)] diff --git a/configs/apps/halrun/README b/configs/apps/halrun/README index b6548a74066..afa67a89427 100644 --- a/configs/apps/halrun/README +++ b/configs/apps/halrun/README @@ -4,5 +4,5 @@ Start halrun in an xterm First command 'help' shows commands Note: - Linuxcnc must not be running + Machinekit must not be running Any other instance of halrun is terminated. diff --git a/configs/apps/halrun/halrun.demo b/configs/apps/halrun/halrun.demo index 09101691590..1ff864db984 100755 --- a/configs/apps/halrun/halrun.demo +++ b/configs/apps/halrun/halrun.demo @@ -41,7 +41,7 @@ if [ ! -z "$debug" ] ; then fi if $REALTIME status >/dev/null ; then - msg="$prog: LinuxCNC is active" + msg="$prog: Machinekit is active" echo "$msg" popup "$msg" exit 1 diff --git a/configs/apps/info.demo b/configs/apps/info.demo index f41dec76e0c..27108f4e637 100755 --- a/configs/apps/info.demo +++ b/configs/apps/info.demo @@ -1,3 +1,3 @@ #!/bin/bash -linuxcnc_info +machinekit_info diff --git a/configs/apps/info.txt b/configs/apps/info.txt index 54e08d6a5ba..b1e96533a98 100644 --- a/configs/apps/info.txt +++ b/configs/apps/info.txt @@ -1,3 +1,3 @@ -info: Create a file with information about LinuxCNC and important system items. +info: Create a file with information about Machinekit and important system items. The file is created in /tmp and is suitable for posting for aid in diagnosing problems. diff --git a/configs/apps/latency/README b/configs/apps/latency/README index 91b60212c81..18dc946e07a 100644 --- a/configs/apps/latency/README +++ b/configs/apps/latency/README @@ -1,6 +1,6 @@ Latency evaluation programs -latency-test -- Standard test for linuxcnc +latency-test -- Standard test for machinekit latency-plot -- Plot latencies for default base and servo threads diff --git a/configs/apps/parport/README b/configs/apps/parport/README index 5f5434f459f..eacd492d013 100644 --- a/configs/apps/parport/README +++ b/configs/apps/parport/README @@ -3,4 +3,4 @@ Parport Test using pyvcp parport_0x278 test port 0x278 parport_0x378 test port 0x378 -Note: For simulator, a 'root access required' message may be displayed. Using root is not recommended for running linuxcnc. +Note: For simulator, a 'root access required' message may be displayed. Using root is not recommended for running machinekit. diff --git a/configs/attic/dallur-thc/README b/configs/attic/dallur-thc/README index d73b30a4fe0..864efe1c890 100644 --- a/configs/attic/dallur-thc/README +++ b/configs/attic/dallur-thc/README @@ -1,8 +1,8 @@ -This config is for a plasma cutting machine with "stepper" control, along with ClassicLadder connections to some of the LinuxCNC IO. +This config is for a plasma cutting machine with "stepper" control, along with ClassicLadder connections to some of the Machinekit IO. It is based on the classicladder stepper sample config, but also includes a charge pump and a Torch Height Control system for Bob Cambells THC300 and CandCNC THC systems. The stepper pinouts are for a standard breakout board/combo board as provided by Bob Campbell. This configuration is out of date and will not run without updating, since it -uses freqgen, which has been removed in preparation for Linuxcnc 2.6. +uses freqgen, which has been removed in preparation for Machinekit 2.6. diff --git a/configs/attic/dallur-thc/dallur-advanced.ini b/configs/attic/dallur-thc/dallur-advanced.ini index 3c609aa7446..264818ff434 100644 --- a/configs/attic/dallur-thc/dallur-advanced.ini +++ b/configs/attic/dallur-thc/dallur-advanced.ini @@ -12,7 +12,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-DALLUR-ADVANCED +MACHINE = Machinekit-DALLUR-ADVANCED # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others # DEBUG = 0x00000001 @@ -52,7 +52,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 2 # Increments for the JOG section diff --git a/configs/attic/dallur-thc/dallur-core_stepper.hal b/configs/attic/dallur-thc/dallur-core_stepper.hal index c452f185f8a..c61cf83fd31 100644 --- a/configs/attic/dallur-thc/dallur-core_stepper.hal +++ b/configs/attic/dallur-thc/dallur-core_stepper.hal @@ -4,7 +4,9 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # stepper module, three step generators, all three using step/dir loadrt stepgen step_type=0,0,0 diff --git a/configs/attic/demo_mazak/demo_mazak.hal b/configs/attic/demo_mazak/demo_mazak.hal index 110ef057a42..f4929eef735 100644 --- a/configs/attic/demo_mazak/demo_mazak.hal +++ b/configs/attic/demo_mazak/demo_mazak.hal @@ -3,7 +3,9 @@ # kinematics loadrt trivkins # first load the motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD tp=tp kins=trivkins # next load I/O drivers. This retrofit uses three different I/O devices # @@ -27,9 +29,11 @@ loadrt hal_parport cfg="0x0378_in" # 4) Weighted summer, driven by toolchanger slot position inputs # This adds together the 5 bits (with bit 4 being equal to 13) -# and outputs the sum as an S32 +# and outputs the sum as a S32 # -loadrt weighted_sum wsum_sizes=5 +# Not in fact connected in this demo +# this line would create a new icomp called wsum with 5 in pins and 5 weights +# newinst weighted_sum wsum pincount=5 # I/O Mapping - Physical I/O points to driver pins # -------------------------------------------------------- @@ -100,7 +104,7 @@ loadrt encoder num_chan=1 # PID loops: 3 for axis control and one for spindle orient # -loadrt pid num_chan=4 +loadrt pid count=4 # classicladder for machine logic # (load the realtime portion) @@ -110,7 +114,7 @@ loadrt classicladder_rt numRungs=50 numBits=50 numWords=8 numTimers=20 numMonost loadusr -w classicladder --nogui demo_mazak.clp # load debounce to handle the pushbuttons on the operator panels -loadrt debounce cfg="8" +newinst debounce debounce.0 pincount=8 setp debounce.0.delay 3 # ----------------------------------------------- @@ -405,7 +409,7 @@ net arm-retracted ax5214h.0.in-29 net arm-extended ax5214h.0.in-30 # FIXME!! This sensor is broken, so we are using a delay # instead - 2 seconds after the cylinder is actuated, we -# assume that we have reached the desired position and +# assume that we have reached the desired position and # set the signal true. The commented out line below is # the proper source for the signal. But for now, it is # driven by classicladder output number 27 (see ladder diff --git a/configs/attic/demo_mazak/demo_mazak.ini b/configs/attic/demo_mazak/demo_mazak.ini index b753c099816..73396a6d738 100644 --- a/configs/attic/demo_mazak/demo_mazak.ini +++ b/configs/attic/demo_mazak/demo_mazak.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-MAZAK-RF +MACHINE = Machinekit-MAZAK-RF # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others # DEBUG = 0x00000003 @@ -52,7 +52,7 @@ PROGRAM_PREFIX = ../../nc_files/ PYVCP=panel.xml # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 1 EDITOR = gedit diff --git a/configs/by_interface/general_mechatronics/GM6-PCI/3-axis-servo.hal b/configs/by_interface/general_mechatronics/GM6-PCI/3-axis-servo.hal index 83cb509f0b4..7c01811e74f 100644 --- a/configs/by_interface/general_mechatronics/GM6-PCI/3-axis-servo.hal +++ b/configs/by_interface/general_mechatronics/GM6-PCI/3-axis-servo.hal @@ -5,8 +5,10 @@ loadrt trivkins loadrt hal_gm -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES -loadrt pid num_chan=3 +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins +loadrt pid count=3 loadrt not loadusr halmeter diff --git a/configs/by_interface/general_mechatronics/GM6-PCI/3-axis-stepper.hal b/configs/by_interface/general_mechatronics/GM6-PCI/3-axis-stepper.hal index 58f91e0b012..6c956d26837 100644 --- a/configs/by_interface/general_mechatronics/GM6-PCI/3-axis-stepper.hal +++ b/configs/by_interface/general_mechatronics/GM6-PCI/3-axis-stepper.hal @@ -5,7 +5,9 @@ loadrt trivkins loadrt hal_gm -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins loadrt not loadusr halmeter #loadusr halscope -f diff --git a/configs/by_interface/mesa/hm2-servo/3x20-small.ini b/configs/by_interface/mesa/hm2-servo/3x20-small.ini index 8f439ef36d2..ab4b6401d83 100644 --- a/configs/by_interface/mesa/hm2-servo/3x20-small.ini +++ b/configs/by_interface/mesa/hm2-servo/3x20-small.ini @@ -44,7 +44,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-servo/4i65.ini b/configs/by_interface/mesa/hm2-servo/4i65.ini index c59d8b1aa21..587fba1c728 100644 --- a/configs/by_interface/mesa/hm2-servo/4i65.ini +++ b/configs/by_interface/mesa/hm2-servo/4i65.ini @@ -44,7 +44,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-servo/4i68.ini b/configs/by_interface/mesa/hm2-servo/4i68.ini index f9ccfce154a..537caf22458 100644 --- a/configs/by_interface/mesa/hm2-servo/4i68.ini +++ b/configs/by_interface/mesa/hm2-servo/4i68.ini @@ -44,7 +44,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-servo/5i20.ini b/configs/by_interface/mesa/hm2-servo/5i20.ini index 78e7c58276e..97874d94629 100644 --- a/configs/by_interface/mesa/hm2-servo/5i20.ini +++ b/configs/by_interface/mesa/hm2-servo/5i20.ini @@ -44,7 +44,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-servo/5i22-big.ini b/configs/by_interface/mesa/hm2-servo/5i22-big.ini index 1e5f465b637..9c9bfa0205d 100644 --- a/configs/by_interface/mesa/hm2-servo/5i22-big.ini +++ b/configs/by_interface/mesa/hm2-servo/5i22-big.ini @@ -44,7 +44,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-servo/5i22-small.ini b/configs/by_interface/mesa/hm2-servo/5i22-small.ini index b01e74b6635..b2efb603536 100644 --- a/configs/by_interface/mesa/hm2-servo/5i22-small.ini +++ b/configs/by_interface/mesa/hm2-servo/5i22-small.ini @@ -44,7 +44,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-servo/5i23.ini b/configs/by_interface/mesa/hm2-servo/5i23.ini index 051d1b52eb2..2cb3ef8a0a6 100644 --- a/configs/by_interface/mesa/hm2-servo/5i23.ini +++ b/configs/by_interface/mesa/hm2-servo/5i23.ini @@ -44,7 +44,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-servo/7i43-big.ini b/configs/by_interface/mesa/hm2-servo/7i43-big.ini index b7e68552bd2..1bb23000dfc 100644 --- a/configs/by_interface/mesa/hm2-servo/7i43-big.ini +++ b/configs/by_interface/mesa/hm2-servo/7i43-big.ini @@ -44,7 +44,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-servo/7i43-small.ini b/configs/by_interface/mesa/hm2-servo/7i43-small.ini index d9ae0b99066..29c88ada28e 100644 --- a/configs/by_interface/mesa/hm2-servo/7i43-small.ini +++ b/configs/by_interface/mesa/hm2-servo/7i43-small.ini @@ -44,7 +44,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-servo/hm2-servo.hal b/configs/by_interface/mesa/hm2-servo/hm2-servo.hal index 552e74c4e84..68ab4d41b20 100644 --- a/configs/by_interface/mesa/hm2-servo/hm2-servo.hal +++ b/configs/by_interface/mesa/hm2-servo/hm2-servo.hal @@ -5,7 +5,7 @@ # Derived from Ted Hyde's original hm2-servo config # # Based up work and discussion with Seb & Peter & Jeff -# GNU license references - insert here. www.linuxcnc.org +# GNU license references - insert here. www.machinekit.io # # # ######################################## @@ -29,10 +29,12 @@ loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # standard components -loadrt pid num_chan=3 +loadrt pid count=3 # only the 7i43 needs this, but it doesnt hurt the others loadrt probe_parport @@ -63,7 +65,7 @@ addf pid.2.do-pid-calcs servo-thread addf hm2_[HOSTMOT2](BOARD).0.write servo-thread addf hm2_[HOSTMOT2](BOARD).0.pet_watchdog servo-thread - + # ###################################################### # Axis-of-motion Specific Configs (not the GUI) @@ -79,7 +81,7 @@ newsig emcmot.00.enable bit sets emcmot.00.enable FALSE net emcmot.00.enable => pid.0.enable net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.pwmgen.00.enable -net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable <= axis.0.amp-enable-out # encoder feedback setp hm2_[HOSTMOT2](BOARD).0.encoder.00.counter-mode 0 @@ -120,7 +122,7 @@ newsig emcmot.01.enable bit sets emcmot.01.enable FALSE net emcmot.01.enable => pid.1.enable net emcmot.01.enable => hm2_[HOSTMOT2](BOARD).0.pwmgen.01.enable -net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable <= axis.1.amp-enable-out # encoder feedback setp hm2_[HOSTMOT2](BOARD).0.encoder.01.counter-mode 0 @@ -161,7 +163,7 @@ newsig emcmot.02.enable bit sets emcmot.02.enable FALSE net emcmot.02.enable => pid.2.enable net emcmot.02.enable => hm2_[HOSTMOT2](BOARD).0.pwmgen.02.enable -net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable <= axis.2.amp-enable-out # encoder feedback setp hm2_[HOSTMOT2](BOARD).0.encoder.02.counter-mode 0 diff --git a/configs/by_interface/mesa/hm2-stepper/3x20-small.ini b/configs/by_interface/mesa/hm2-stepper/3x20-small.ini index 2ec57c412ee..fb8445d367f 100644 --- a/configs/by_interface/mesa/hm2-stepper/3x20-small.ini +++ b/configs/by_interface/mesa/hm2-stepper/3x20-small.ini @@ -45,7 +45,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-stepper/4i65.ini b/configs/by_interface/mesa/hm2-stepper/4i65.ini index 9396b386986..052496c6347 100644 --- a/configs/by_interface/mesa/hm2-stepper/4i65.ini +++ b/configs/by_interface/mesa/hm2-stepper/4i65.ini @@ -45,7 +45,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-stepper/4i68.ini b/configs/by_interface/mesa/hm2-stepper/4i68.ini index fa24e273c64..59c4ff471a7 100644 --- a/configs/by_interface/mesa/hm2-stepper/4i68.ini +++ b/configs/by_interface/mesa/hm2-stepper/4i68.ini @@ -45,7 +45,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-stepper/5i20.ini b/configs/by_interface/mesa/hm2-stepper/5i20.ini index 2c4cf2e04a3..7bc4ee76540 100644 --- a/configs/by_interface/mesa/hm2-stepper/5i20.ini +++ b/configs/by_interface/mesa/hm2-stepper/5i20.ini @@ -45,7 +45,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-stepper/5i22-big.ini b/configs/by_interface/mesa/hm2-stepper/5i22-big.ini index 7e74e9687aa..1c6a1452447 100644 --- a/configs/by_interface/mesa/hm2-stepper/5i22-big.ini +++ b/configs/by_interface/mesa/hm2-stepper/5i22-big.ini @@ -45,7 +45,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-stepper/5i22-small.ini b/configs/by_interface/mesa/hm2-stepper/5i22-small.ini index 354a16c52ac..41f3e4bfef5 100644 --- a/configs/by_interface/mesa/hm2-stepper/5i22-small.ini +++ b/configs/by_interface/mesa/hm2-stepper/5i22-small.ini @@ -45,7 +45,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-stepper/5i23.ini b/configs/by_interface/mesa/hm2-stepper/5i23.ini index e296e62dfbf..ed8ee12c507 100644 --- a/configs/by_interface/mesa/hm2-stepper/5i23.ini +++ b/configs/by_interface/mesa/hm2-stepper/5i23.ini @@ -45,7 +45,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-stepper/7i43-big.ini b/configs/by_interface/mesa/hm2-stepper/7i43-big.ini index c8de182563a..87f9689a490 100644 --- a/configs/by_interface/mesa/hm2-stepper/7i43-big.ini +++ b/configs/by_interface/mesa/hm2-stepper/7i43-big.ini @@ -45,7 +45,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-stepper/7i43-small.ini b/configs/by_interface/mesa/hm2-stepper/7i43-small.ini index 0693192385e..36b0ceedc2e 100644 --- a/configs/by_interface/mesa/hm2-stepper/7i43-small.ini +++ b/configs/by_interface/mesa/hm2-stepper/7i43-small.ini @@ -45,7 +45,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/mesa/hm2-stepper/hm2-stepper.hal b/configs/by_interface/mesa/hm2-stepper/hm2-stepper.hal index 43309224775..99401402025 100644 --- a/configs/by_interface/mesa/hm2-stepper/hm2-stepper.hal +++ b/configs/by_interface/mesa/hm2-stepper/hm2-stepper.hal @@ -5,7 +5,7 @@ # Derived from Ted Hyde's original hm2-servo config # # Based up work and discussion with Seb & Peter & Jeff -# GNU license references - insert here. www.linuxcnc.org +# GNU license references - insert here. www.machinekit.io # # # ######################################## @@ -29,7 +29,9 @@ loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # only the 7i43 needs this, but it doesnt hurt the others loadrt probe_parport @@ -48,10 +50,10 @@ loadrt [HOSTMOT2](DRIVER) config=[HOSTMOT2](CONFIG) addf hm2_[HOSTMOT2](BOARD).0.read servo-thread addf motion-command-handler servo-thread addf motion-controller servo-thread -# revel in the free time here from not having to run PID +# revel in the free time here from not having to run PID addf hm2_[HOSTMOT2](BOARD).0.write servo-thread addf hm2_[HOSTMOT2](BOARD).0.pet_watchdog servo-thread - + # ###################################################### # Axis-of-motion Specific Configs (not the GUI) @@ -66,7 +68,7 @@ addf hm2_[HOSTMOT2](BOARD).0.pet_watchdog servo-thread newsig emcmot.00.enable bit sets emcmot.00.enable FALSE -net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable <= axis.0.amp-enable-out net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable @@ -101,7 +103,7 @@ setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0 newsig emcmot.01.enable bit sets emcmot.01.enable FALSE -net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable <= axis.1.amp-enable-out net emcmot.01.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.01.enable @@ -136,7 +138,7 @@ setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.step_type 0 newsig emcmot.02.enable bit sets emcmot.02.enable FALSE -net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable <= axis.2.amp-enable-out net emcmot.02.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.02.enable @@ -165,7 +167,7 @@ setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.step_type 0 -# +# # The Mesa AnyIO output pins can be in open-drain mode (drive low, float # high) or push/pull mode (drive low, drive high). # diff --git a/configs/by_interface/mesa/plasma-5i20/README b/configs/by_interface/mesa/plasma-5i20/README index b7c0dc71ab3..dcc5d040675 100644 --- a/configs/by_interface/mesa/plasma-5i20/README +++ b/configs/by_interface/mesa/plasma-5i20/README @@ -1,4 +1,4 @@ -This configuration is to show how to connect the Mesa THCAD card with LinuxCNC on a Plasma Cutter. +This configuration is to show how to connect the Mesa THCAD card with Machinekit on a Plasma Cutter. There are two configurations, the plasma-5i20 that requires you to have a Mesa 5i20 installed and the plasma-demo using parallel port. The plasma-demo version is just to show how this config looks and is not a good candidate for the THCAD card due to the slow update speed when using a software encoder with the parallel port. diff --git a/configs/by_interface/mesa/plasma-5i20/plasma-5i20.hal b/configs/by_interface/mesa/plasma-5i20/plasma-5i20.hal index f07b9a84a54..e5309397dcc 100644 --- a/configs/by_interface/mesa/plasma-5i20/plasma-5i20.hal +++ b/configs/by_interface/mesa/plasma-5i20/plasma-5i20.hal @@ -17,7 +17,9 @@ loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # only the 7i43 needs this, but it doesnt hurt the others # loadrt probe_parport @@ -54,7 +56,7 @@ addf parport.0.write servo-thread newsig emcmot.00.enable bit sets emcmot.00.enable FALSE -net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable <= axis.0.amp-enable-out net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable @@ -93,7 +95,7 @@ net both-home-x => axis.0.pos-lim-sw-in newsig emcmot.01.enable bit sets emcmot.01.enable FALSE -net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable <= axis.1.amp-enable-out net emcmot.01.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.01.enable @@ -132,7 +134,7 @@ net both-home-y => axis.1.pos-lim-sw-in newsig emcmot.02.enable bit sets emcmot.02.enable FALSE -net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable <= axis.2.amp-enable-out net emcmot.02.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.02.enable @@ -167,7 +169,7 @@ net both-home-z => axis.2.pos-lim-sw-in ####################### # Standard I/O Block - EStop, Etc -# ############################### +# ############################### # create a signal for the estop loopback net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in diff --git a/configs/by_interface/mesa/plasma-5i20/plasma-5i20.ini b/configs/by_interface/mesa/plasma-5i20/plasma-5i20.ini index 10d3922cd30..e87ebb0f040 100644 --- a/configs/by_interface/mesa/plasma-5i20/plasma-5i20.ini +++ b/configs/by_interface/mesa/plasma-5i20/plasma-5i20.ini @@ -27,7 +27,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MAX_LINEAR_VELOCITY = 4 DEFAULT_LINEAR_VELOCITY = 1.6 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 3 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in EDITOR = gedit diff --git a/configs/by_interface/mesa/plasma-5i20/plasma-demo.hal b/configs/by_interface/mesa/plasma-5i20/plasma-demo.hal index 917831f282c..e1af2320c70 100644 --- a/configs/by_interface/mesa/plasma-5i20/plasma-demo.hal +++ b/configs/by_interface/mesa/plasma-5i20/plasma-demo.hal @@ -2,7 +2,9 @@ # If you make changes to this file, they will be # overwritten when you run stepconf again loadrt trivkins -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins loadrt probe_parport loadrt hal_parport cfg="0x378 out " setp parport.0.reset-time 1000 diff --git a/configs/by_interface/mesa/plasma-5i20/plasma-demo.ini b/configs/by_interface/mesa/plasma-5i20/plasma-demo.ini index 59a0065d9a5..ec7fd30d797 100644 --- a/configs/by_interface/mesa/plasma-5i20/plasma-demo.ini +++ b/configs/by_interface/mesa/plasma-5i20/plasma-demo.ini @@ -13,7 +13,7 @@ EDITOR = gedit POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 ; PROGRAM_PREFIX = /home/john/emc2/nc_files PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_interface/parport/classicladder/cl-estop/cl-estop.hal b/configs/by_interface/parport/classicladder/cl-estop/cl-estop.hal index d261d701cad..9f889371f35 100644 --- a/configs/by_interface/parport/classicladder/cl-estop/cl-estop.hal +++ b/configs/by_interface/parport/classicladder/cl-estop/cl-estop.hal @@ -2,7 +2,9 @@ # If you make changes to this file, they will be # overwritten when you run stepconf again loadrt trivkins -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins loadrt probe_parport loadrt hal_parport cfg=0x378 setp parport.0.reset-time 5000 diff --git a/configs/by_interface/parport/classicladder/cl-estop/cl-estop.ini b/configs/by_interface/parport/classicladder/cl-estop/cl-estop.ini index 47c4a748010..56c76fc106b 100644 --- a/configs/by_interface/parport/classicladder/cl-estop/cl-estop.ini +++ b/configs/by_interface/parport/classicladder/cl-estop/cl-estop.ini @@ -12,7 +12,7 @@ EDITOR = gedit POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 #PROGRAM_PREFIX = /home/jet/emc2/nc_files PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_interface/parport/classicladder/demo_step_cl/README b/configs/by_interface/parport/classicladder/demo_step_cl/README index 56cac0c118f..14a8759ee0e 100644 --- a/configs/by_interface/parport/classicladder/demo_step_cl/README +++ b/configs/by_interface/parport/classicladder/demo_step_cl/README @@ -1,4 +1,4 @@ -This config is "stepper" with the addition of ClassicLadder connections to some of the LinuxCNC IO. +This config is "stepper" with the addition of ClassicLadder connections to some of the Machinekit IO. The initial ladder program includes several possible estop arrangements and a timed lube coil. The lube ladder includes a sense run that watches lube level or lube pressure and warns of a lube condition failure. diff --git a/configs/by_interface/parport/classicladder/demo_step_cl/demo_step_cl.ini b/configs/by_interface/parport/classicladder/demo_step_cl/demo_step_cl.ini index 0dc3e93b9d7..552e4a10414 100644 --- a/configs/by_interface/parport/classicladder/demo_step_cl/demo_step_cl.ini +++ b/configs/by_interface/parport/classicladder/demo_step_cl/demo_step_cl.ini @@ -12,7 +12,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-DEMO-STEP-CL +MACHINE = Machinekit-DEMO-STEP-CL # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others # DEBUG = 0x00000001 @@ -45,7 +45,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 2 # Task controller section ----------------------------------------------------- diff --git a/configs/by_interface/parport/etch-servo/etch.hal b/configs/by_interface/parport/etch-servo/etch.hal index a4f1b12959a..322187158fa 100644 --- a/configs/by_interface/parport/etch-servo/etch.hal +++ b/configs/by_interface/parport/etch-servo/etch.hal @@ -1,10 +1,12 @@ # load realtime modules # kinematics loadrt trivkins -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins loadrt hal_parport cfg="0x378" loadrt encoder num_chan=2 -loadrt pid num_chan=2 +loadrt pid count=2 loadrt pwmgen output_type=1,1 loadrt ddt count=4 loadrt constant count=1 diff --git a/configs/by_interface/parport/etch-servo/etch.ini b/configs/by_interface/parport/etch-servo/etch.ini index 7b154f06ae6..5788f745ea7 100644 --- a/configs/by_interface/parport/etch-servo/etch.ini +++ b/configs/by_interface/parport/etch-servo/etch.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-ETCH-SERVO +MACHINE = Machinekit-ETCH-SERVO #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -52,7 +52,7 @@ MAX_FEED_OVERRIDE = 10 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Editor to be used with Axis diff --git a/configs/by_interface/parport/gantry/gantry-hs.ini b/configs/by_interface/parport/gantry/gantry-hs.ini index 2830b5c9cf0..cf4f810ee52 100644 --- a/configs/by_interface/parport/gantry/gantry-hs.ini +++ b/configs/by_interface/parport/gantry/gantry-hs.ini @@ -11,7 +11,7 @@ EDITOR = gedit POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 #PROGRAM_PREFIX = /home/john/emc2/nc_files PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_interface/parport/gantry/gantry.hal b/configs/by_interface/parport/gantry/gantry.hal index a1a64553cd3..8f362364e94 100644 --- a/configs/by_interface/parport/gantry/gantry.hal +++ b/configs/by_interface/parport/gantry/gantry.hal @@ -7,7 +7,9 @@ setp gantrykins.joint-1 1 setp gantrykins.joint-2 2 setp gantrykins.joint-3 1 -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=gantrykins loadrt probe_parport loadrt hal_parport cfg="0x378 out " setp parport.0.reset-time 5000 diff --git a/configs/by_interface/parport/gantry/gantry.ini b/configs/by_interface/parport/gantry/gantry.ini index 4b5e8cdfaa7..b897a7cc159 100644 --- a/configs/by_interface/parport/gantry/gantry.ini +++ b/configs/by_interface/parport/gantry/gantry.ini @@ -10,7 +10,7 @@ EDITOR = gedit POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 #PROGRAM_PREFIX = /home/john/emc2/nc_files PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_interface/parport/gecko/Gecko_540B3/Gecko_540B3.hal b/configs/by_interface/parport/gecko/Gecko_540B3/Gecko_540B3.hal index e4f11bc5840..3dbac0db25a 100644 --- a/configs/by_interface/parport/gecko/Gecko_540B3/Gecko_540B3.hal +++ b/configs/by_interface/parport/gecko/Gecko_540B3/Gecko_540B3.hal @@ -2,7 +2,9 @@ # If you make changes to this file, they will be # overwritten when you run stepconf again loadrt trivkins -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins loadrt probe_parport loadrt hal_parport cfg="0x378 out " setp parport.0.reset-time 1000 diff --git a/configs/by_interface/parport/gecko/Gecko_540B3/Gecko_540B3.ini b/configs/by_interface/parport/gecko/Gecko_540B3/Gecko_540B3.ini index a80381a8845..22e973a7705 100644 --- a/configs/by_interface/parport/gecko/Gecko_540B3/Gecko_540B3.ini +++ b/configs/by_interface/parport/gecko/Gecko_540B3/Gecko_540B3.ini @@ -12,9 +12,9 @@ EDITOR = gedit POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 -#PROGRAM_PREFIX = /home/john/linuxcnc/nc_files +#PROGRAM_PREFIX = /home/john/machinekit/nc_files PROGRAM_PREFIX = ../../nc_files/ INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in @@ -31,7 +31,7 @@ TASK = milltask CYCLE_TIME = 0.010 [RS274NGC] -PARAMETER_FILE = linuxcnc.var +PARAMETER_FILE = machinekit.var [EMCMOT] EMCMOT = motmod diff --git a/configs/by_interface/parport/gecko/Gecko_540B3/Gecko_540B3.stepconf b/configs/by_interface/parport/gecko/Gecko_540B3/Gecko_540B3.stepconf index 0b8b2348d38..eedb31f554a 100644 --- a/configs/by_interface/parport/gecko/Gecko_540B3/Gecko_540B3.stepconf +++ b/configs/by_interface/parport/gecko/Gecko_540B3/Gecko_540B3.stepconf @@ -36,7 +36,7 @@ - + diff --git a/configs/by_interface/parport/gecko/Gecko_540B4/Gecko_540B4.hal b/configs/by_interface/parport/gecko/Gecko_540B4/Gecko_540B4.hal index b9b29854332..d1034003379 100644 --- a/configs/by_interface/parport/gecko/Gecko_540B4/Gecko_540B4.hal +++ b/configs/by_interface/parport/gecko/Gecko_540B4/Gecko_540B4.hal @@ -2,7 +2,9 @@ # If you make changes to this file, they will be # overwritten when you run stepconf again loadrt trivkins -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins loadrt probe_parport loadrt hal_parport cfg="0x378 out " setp parport.0.reset-time 1000 diff --git a/configs/by_interface/parport/gecko/Gecko_540B4/Gecko_540B4.ini b/configs/by_interface/parport/gecko/Gecko_540B4/Gecko_540B4.ini index a58b65de11b..27c4269aae4 100644 --- a/configs/by_interface/parport/gecko/Gecko_540B4/Gecko_540B4.ini +++ b/configs/by_interface/parport/gecko/Gecko_540B4/Gecko_540B4.ini @@ -12,9 +12,9 @@ EDITOR = gedit POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 -#PROGRAM_PREFIX = /home/john/linuxcnc/nc_files +#PROGRAM_PREFIX = /home/john/machinekit/nc_files PROGRAM_PREFIX = ../../nc_files/ INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in @@ -31,7 +31,7 @@ TASK = milltask CYCLE_TIME = 0.010 [RS274NGC] -PARAMETER_FILE = linuxcnc.var +PARAMETER_FILE = machinekit.var [EMCMOT] EMCMOT = motmod diff --git a/configs/by_interface/parport/gecko/Gecko_540B4/Gecko_540B4.stepconf b/configs/by_interface/parport/gecko/Gecko_540B4/Gecko_540B4.stepconf index ce42e28b4b2..6cada0591f0 100644 --- a/configs/by_interface/parport/gecko/Gecko_540B4/Gecko_540B4.stepconf +++ b/configs/by_interface/parport/gecko/Gecko_540B4/Gecko_540B4.stepconf @@ -36,7 +36,7 @@ - + diff --git a/configs/by_interface/parport/nist-lathe/inch.ini b/configs/by_interface/parport/nist-lathe/inch.ini index bbe34901520..83dedd82e6c 100644 --- a/configs/by_interface/parport/nist-lathe/inch.ini +++ b/configs/by_interface/parport/nist-lathe/inch.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-NIST-LATHE-IN +MACHINE = Machinekit-NIST-LATHE-IN #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -54,7 +54,7 @@ MAX_FEED_OVERRIDE = 1.4 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Editor to be used with Axis diff --git a/configs/by_interface/parport/nist-lathe/nist-lathe.hal b/configs/by_interface/parport/nist-lathe/nist-lathe.hal index 0a27cfda78c..81dcaef6849 100644 --- a/configs/by_interface/parport/nist-lathe/nist-lathe.hal +++ b/configs/by_interface/parport/nist-lathe/nist-lathe.hal @@ -5,7 +5,9 @@ # kinematics loadrt trivkins # main motion controller module -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # using steppers.... loadrt stepgen step_type=0,0,0 # I/O thru the parport diff --git a/configs/by_interface/parport/plasma-thc-sim/estop.hal b/configs/by_interface/parport/plasma-thc-sim/estop.hal index 9dd7ea33506..231ae396b90 100644 --- a/configs/by_interface/parport/plasma-thc-sim/estop.hal +++ b/configs/by_interface/parport/plasma-thc-sim/estop.hal @@ -2,9 +2,9 @@ #Connect Estop and ChargePump loadrt estop_latch -addf estop-latch.0 base-thread +addf estop_latch.0 base-thread # External Estop Signal handled by THC -net EstopRequestEnable iocontrol.0.user-request-enable => estop-latch.0.reset -net EstopEnableOut iocontrol.0.user-enable-out => estop-latch.0.ok-in -net EstopOKOut estop-latch.0.ok-out => iocontrol.0.emc-enable-in +net EstopRequestEnable iocontrol.0.user-request-enable => estop_latch.0.reset +net EstopEnableOut iocontrol.0.user-enable-out => estop_latch.0.ok-in +net EstopOKOut estop_latch.0.ok-out => iocontrol.0.emc-enable-in diff --git a/configs/by_interface/parport/plasma-thc-sim/kinematics.hal b/configs/by_interface/parport/plasma-thc-sim/kinematics.hal index af58abd8f16..148a37be2df 100644 --- a/configs/by_interface/parport/plasma-thc-sim/kinematics.hal +++ b/configs/by_interface/parport/plasma-thc-sim/kinematics.hal @@ -9,4 +9,6 @@ setp gantrykins.joint-2 2 setp gantrykins.joint-3 1 # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD tp=tp kins=gantrykins diff --git a/configs/by_interface/parport/plasma-thc-sim/plasma_mm.ini b/configs/by_interface/parport/plasma-thc-sim/plasma_mm.ini index 3e70467b8f5..bde7c06fce0 100644 --- a/configs/by_interface/parport/plasma-thc-sim/plasma_mm.ini +++ b/configs/by_interface/parport/plasma-thc-sim/plasma_mm.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-PLASMA-THC +MACHINE = Machinekit-PLASMA-THC #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -65,7 +65,7 @@ PROGRAM_PREFIX = ../../nc_files/ EDITOR = gedit #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 3 #Increments for the JOB Section diff --git a/configs/by_interface/parport/plasma-thc-sim/thc.hal b/configs/by_interface/parport/plasma-thc-sim/thc.hal index ac5e6b52c2a..4740ad89d3b 100644 --- a/configs/by_interface/parport/plasma-thc-sim/thc.hal +++ b/configs/by_interface/parport/plasma-thc-sim/thc.hal @@ -148,7 +148,7 @@ net VelY ddt.1.out => hypot.0.in1 net FloatSwitchSet flipflop.0.out => or2.3.in1 and2.7.in1 net ModeIsAuto halui.mode.is-auto => mux2.5.sel net VelXY hypot.0.out => minmax.0.in comp.0.in0 -net TriggerEStop logic.0.or => estop-latch.0.fault-in +net TriggerEStop logic.0.or => estop_latch.0.fault-in net MaximumVelocity minmax.0.max => mult2.1.in0 net TurnTorchOn motion.spindle-forward => xor2.0.in0 and2.8.in0 and2.6.in0 mux2.4.sel not.0.in net HeightAdjustment mult2.0.out => mux2.3.in1 diff --git a/configs/by_interface/parport/stepper-gantry/estop.hal b/configs/by_interface/parport/stepper-gantry/estop.hal index 55ded8c81c4..1cadde3c043 100644 --- a/configs/by_interface/parport/stepper-gantry/estop.hal +++ b/configs/by_interface/parport/stepper-gantry/estop.hal @@ -2,11 +2,11 @@ #Connect Estop and ChargePump loadrt estop_latch -addf estop-latch.0 base-thread +addf estop_latch.0 base-thread # External Estop Signal handled by THC -net ExtEStop parport.0.pin-10-in => estop-latch.0.fault-in -net EstopLatchWatchDog estop-latch.0.watchdog => parport.0.pin-17-out parport.1.pin-17-out -net EstopRequestEnable iocontrol.0.user-request-enable => estop-latch.0.reset -net EstopEnableOut iocontrol.0.user-enable-out => estop-latch.0.ok-in -net EstopOKOut estop-latch.0.ok-out => iocontrol.0.emc-enable-in +net ExtEStop parport.0.pin-10-in => estop_latch.0.fault-in +net EstopLatchWatchDog estop_latch.0.watchdog => parport.0.pin-17-out parport.1.pin-17-out +net EstopRequestEnable iocontrol.0.user-request-enable => estop_latch.0.reset +net EstopEnableOut iocontrol.0.user-enable-out => estop_latch.0.ok-in +net EstopOKOut estop_latch.0.ok-out => iocontrol.0.emc-enable-in diff --git a/configs/by_interface/parport/stepper-gantry/kinematics.hal b/configs/by_interface/parport/stepper-gantry/kinematics.hal index af58abd8f16..148a37be2df 100644 --- a/configs/by_interface/parport/stepper-gantry/kinematics.hal +++ b/configs/by_interface/parport/stepper-gantry/kinematics.hal @@ -9,4 +9,6 @@ setp gantrykins.joint-2 2 setp gantrykins.joint-3 1 # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD tp=tp kins=gantrykins diff --git a/configs/by_interface/parport/stepper-gantry/stepper_mm.ini b/configs/by_interface/parport/stepper-gantry/stepper_mm.ini index 46938cd9a60..7a7e7eb3a74 100644 --- a/configs/by_interface/parport/stepper-gantry/stepper_mm.ini +++ b/configs/by_interface/parport/stepper-gantry/stepper_mm.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-STEPPER-GANTRY +MACHINE = Machinekit-STEPPER-GANTRY #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -60,7 +60,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 3 #Increments for the JOB Section diff --git a/configs/by_interface/parport/stepper-xyza/README b/configs/by_interface/parport/stepper-xyza/README index 679f6582b5b..c150c4bf48a 100644 --- a/configs/by_interface/parport/stepper-xyza/README +++ b/configs/by_interface/parport/stepper-xyza/README @@ -1,6 +1,6 @@ This configuration step is intended for basic stepper machines with a rotary table. -You can have standard pinout (LinuxCNC style), look at stepper/ for a 'xylotex standard' example. Certainly you could make a new one which would suit your own custom cabling. +You can have standard pinout (Machinekit style), look at stepper/ for a 'xylotex standard' example. Certainly you could make a new one which would suit your own custom cabling. Detailed description: diff --git a/configs/by_interface/parport/stepper-xyza/inch.ini b/configs/by_interface/parport/stepper-xyza/inch.ini index c722560e514..755b60c0546 100644 --- a/configs/by_interface/parport/stepper-xyza/inch.ini +++ b/configs/by_interface/parport/stepper-xyza/inch.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-STEP-XYZA-IN +MACHINE = Machinekit-HAL-STEP-XYZA-IN #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -52,7 +52,7 @@ MAX_FEED_OVERRIDE = 9.0 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Editor to be used with Axis diff --git a/configs/by_interface/parport/stepper-xyza/stepper_xyza.hal b/configs/by_interface/parport/stepper-xyza/stepper_xyza.hal index 571224738f3..c55d07f2071 100644 --- a/configs/by_interface/parport/stepper-xyza/stepper_xyza.hal +++ b/configs/by_interface/parport/stepper-xyza/stepper_xyza.hal @@ -4,7 +4,9 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # stepper module loadrt stepgen step_type=0,0,0,0 diff --git a/configs/by_interface/parport/stepper/README b/configs/by_interface/parport/stepper/README index a2655d6608b..bdd041883e0 100644 --- a/configs/by_interface/parport/stepper/README +++ b/configs/by_interface/parport/stepper/README @@ -1,5 +1,5 @@ This configuration step is intended for basic stepper machines. -You can have either standard pinout (LinuxCNC style) or xylotex pinout, by including either one of those 2 .hal files. Certainly you could make a new one which would suit your own custom cabling. +You can have either standard pinout (Machinekit style) or xylotex pinout, by including either one of those 2 .hal files. Certainly you could make a new one which would suit your own custom cabling. There are 3 ini files, one for inch setups (stepper_in.ini) and one for metric setups (stepper_mm.ini). Additionally there is one (sim_inch.ini) which doesn't output steps to the parport but to the PC speaker. That way you can "hear" if it's running OK. diff --git a/configs/by_interface/parport/stepper/sim_inch.ini b/configs/by_interface/parport/stepper/sim_inch.ini index 2b7ac915ae6..11746836e2f 100644 --- a/configs/by_interface/parport/stepper/sim_inch.ini +++ b/configs/by_interface/parport/stepper/sim_inch.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-STEP-SIM +MACHINE = Machinekit-HAL-STEP-SIM #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -52,7 +52,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Editor to be used with Axis diff --git a/configs/by_interface/parport/stepper/stepper_inch.ini b/configs/by_interface/parport/stepper/stepper_inch.ini index 058874f74e8..ab90fe85059 100644 --- a/configs/by_interface/parport/stepper/stepper_inch.ini +++ b/configs/by_interface/parport/stepper/stepper_inch.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-STEP-IN +MACHINE = Machinekit-HAL-STEP-IN #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -52,7 +52,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Editor to be used with Axis diff --git a/configs/by_interface/parport/stepper/stepper_mm.ini b/configs/by_interface/parport/stepper/stepper_mm.ini index d4a4ff085d8..eefa1dc95e4 100644 --- a/configs/by_interface/parport/stepper/stepper_mm.ini +++ b/configs/by_interface/parport/stepper/stepper_mm.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-STEP-MM +MACHINE = Machinekit-HAL-STEP-MM #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -52,7 +52,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/pico/USC_encod/univstep_io.hal b/configs/by_interface/pico/USC_encod/univstep_io.hal index 8e69d02146b..5f8ee32add8 100644 --- a/configs/by_interface/pico/USC_encod/univstep_io.hal +++ b/configs/by_interface/pico/USC_encod/univstep_io.hal @@ -54,16 +54,16 @@ net Ahome => axis.3.home-sw-in # prevent continued estop signal from univstep from holding FF cleared net ppmcEstop ppmc.0.din.15.in-not net ppmcEstop and2.0.in0 -net EstopOkIn estop-latch.0.fault-in +net EstopOkIn estop_latch.0.fault-in net EstopOkIn and2.0.out net EstopOkOut <= ppmc.0.dout.07.out net EstopOkOut iocontrol.0.emc-enable-in -net EstopOkOut estop-latch.0.ok-out +net EstopOkOut estop_latch.0.ok-out net EstopOkOut and2.0.in1 net emc-estop-out iocontrol.0.user-enable-out -net emc-estop-out estop-latch.0.ok-in +net emc-estop-out estop_latch.0.ok-in net emc-estop-reset iocontrol.0.user-request-enable -net emc-estop-reset estop-latch.0.reset +net emc-estop-reset estop_latch.0.reset # connect spindle fwd/rev to I/O controller net SpindleFwd <= ppmc.0.dout.00.out diff --git a/configs/by_interface/pico/USC_encod/univstep_load.hal b/configs/by_interface/pico/USC_encod/univstep_load.hal index 3093810bcfa..7e8aa54315b 100644 --- a/configs/by_interface/pico/USC_encod/univstep_load.hal +++ b/configs/by_interface/pico/USC_encod/univstep_load.hal @@ -4,10 +4,12 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # next load the PID module, for four PID loops -loadrt pid num_chan=4 +loadrt pid count=4 # install driver loadrt hal_ppmc @@ -24,7 +26,7 @@ addf ppmc.0.read servo-thread # then run the motion controller addf motion-command-handler servo-thread addf and2.0 servo-thread -addf estop-latch.0 servo-thread +addf estop_latch.0 servo-thread addf motion-controller servo-thread # then the PID loops addf pid.0.do-pid-calcs servo-thread diff --git a/configs/by_interface/pico/ppmc/ppmc.ini b/configs/by_interface/pico/ppmc/ppmc.ini index 12a2c5761ee..c6d45f0f900 100644 --- a/configs/by_interface/pico/ppmc/ppmc.ini +++ b/configs/by_interface/pico/ppmc/ppmc.ini @@ -12,7 +12,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-PPMC +MACHINE = Machinekit-PPMC # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -45,7 +45,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 2 # Enable popup balloon help diff --git a/configs/by_interface/pico/ppmc/ppmc_io.hal b/configs/by_interface/pico/ppmc/ppmc_io.hal index 1e362912dfc..14d53739c80 100644 --- a/configs/by_interface/pico/ppmc/ppmc_io.hal +++ b/configs/by_interface/pico/ppmc/ppmc_io.hal @@ -51,17 +51,17 @@ net Ahome => axis.3.home-sw-in # prevent continued estop signal from ppmc from holding FF cleared net ppmcEstop ppmc.0.din.estop.in net ppmcEstop and2.0.in0 -net EstopOkIn estop-latch.0.fault-in +net EstopOkIn estop_latch.0.fault-in net EstopOkIn and2.0.out net EstopOkOut ppmc.0.dout.07.out net EstopOkOut ppmc.0.dout.Estop.out net EstopOkOut iocontrol.0.emc-enable-in -net EstopOkOut estop-latch.0.ok-out +net EstopOkOut estop_latch.0.ok-out net EstopOkOut and2.0.in1 net emc-estop-out iocontrol.0.user-enable-out -net emc-estop-out estop-latch.0.ok-in +net emc-estop-out estop_latch.0.ok-in net emc-estop-reset iocontrol.0.user-request-enable -net emc-estop-reset estop-latch.0.reset +net emc-estop-reset estop_latch.0.reset #newsig EstopSense bit #newsig EstopWrite bit diff --git a/configs/by_interface/pico/ppmc/ppmc_load.hal b/configs/by_interface/pico/ppmc/ppmc_load.hal index 792b11d606a..64f5d412089 100644 --- a/configs/by_interface/pico/ppmc/ppmc_load.hal +++ b/configs/by_interface/pico/ppmc/ppmc_load.hal @@ -5,10 +5,12 @@ loadrt trivkins #motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # next load the PID module, for four PID loops -loadrt pid num_chan=4 +loadrt pid count=4 # install Universal PWM Controller driver loadrt hal_ppmc @@ -24,7 +26,7 @@ addf ppmc.0.read servo-thread # then run the motion controller addf motion-command-handler servo-thread addf and2.0 servo-thread -addf estop-latch.0 servo-thread +addf estop_latch.0 servo-thread addf motion-controller servo-thread # then the PID loops addf pid.0.do-pid-calcs servo-thread diff --git a/configs/by_interface/pico/ppmc_vel/ppmc.ini b/configs/by_interface/pico/ppmc_vel/ppmc.ini index 12a2c5761ee..c6d45f0f900 100644 --- a/configs/by_interface/pico/ppmc_vel/ppmc.ini +++ b/configs/by_interface/pico/ppmc_vel/ppmc.ini @@ -12,7 +12,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-PPMC +MACHINE = Machinekit-PPMC # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -45,7 +45,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 2 # Enable popup balloon help diff --git a/configs/by_interface/pico/ppmc_vel/ppmc_io.hal b/configs/by_interface/pico/ppmc_vel/ppmc_io.hal index f74ee759e8c..5f6643ee92b 100644 --- a/configs/by_interface/pico/ppmc_vel/ppmc_io.hal +++ b/configs/by_interface/pico/ppmc_vel/ppmc_io.hal @@ -49,17 +49,17 @@ net Ahome => axis.3.home-sw-in # prevent continued estop signal from ppmc from holding FF cleared net ppmcEstop ppmc.0.din.estop.in net ppmcEstop and2.0.in0 -net EstopOkIn estop-latch.0.fault-in +net EstopOkIn estop_latch.0.fault-in net EstopOkIn and2.0.out net EstopOkOut ppmc.0.dout.07.out net EstopOkOut ppmc.0.dout.Estop.out net EstopOkOut iocontrol.0.emc-enable-in -net EstopOkOut estop-latch.0.ok-out +net EstopOkOut estop_latch.0.ok-out net EstopOkOut and2.0.in1 net emc-estop-out iocontrol.0.user-enable-out -net emc-estop-out estop-latch.0.ok-in +net emc-estop-out estop_latch.0.ok-in net emc-estop-reset iocontrol.0.user-request-enable -net emc-estop-reset estop-latch.0.reset +net emc-estop-reset estop_latch.0.reset # connect spindle fwd/rev to I/O controller net SpindleFwd <= ppmc.0.dout.00.out diff --git a/configs/by_interface/pico/ppmc_vel/ppmc_load.hal b/configs/by_interface/pico/ppmc_vel/ppmc_load.hal index 4a53cb45cfc..3450028ec8a 100644 --- a/configs/by_interface/pico/ppmc_vel/ppmc_load.hal +++ b/configs/by_interface/pico/ppmc_vel/ppmc_load.hal @@ -16,10 +16,12 @@ loadrt trivkins #motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # next load the PID module, for four PID loops -loadrt pid num_chan=4 +loadrt pid count=4 # install Universal PWM Controller driver loadrt hal_ppmc timestamp="0x00" @@ -35,7 +37,7 @@ addf ppmc.0.read servo-thread # then run the motion controller addf motion-command-handler servo-thread addf and2.0 servo-thread -addf estop-latch.0 servo-thread +addf estop_latch.0 servo-thread addf motion-controller servo-thread # then the PID loops addf pid.0.do-pid-calcs servo-thread diff --git a/configs/by_interface/pico/univpwm/univpwm.ini b/configs/by_interface/pico/univpwm/univpwm.ini index 0572de611d4..e2a4bc9a330 100644 --- a/configs/by_interface/pico/univpwm/univpwm.ini +++ b/configs/by_interface/pico/univpwm/univpwm.ini @@ -12,7 +12,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-UNIVPWM +MACHINE = Machinekit-UNIVPWM # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -45,7 +45,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 2 # Enable popup balloon help diff --git a/configs/by_interface/pico/univpwm/univpwm_io.hal b/configs/by_interface/pico/univpwm/univpwm_io.hal index ff477e4e798..c265268f24a 100644 --- a/configs/by_interface/pico/univpwm/univpwm_io.hal +++ b/configs/by_interface/pico/univpwm/univpwm_io.hal @@ -56,16 +56,16 @@ net Ahome => axis.3.home-sw-in # prevent continued estop signal from univpwm from holding FF cleared net ppmcEstop ppmc.0.din.15.in-not net ppmcEstop and2.0.in0 -net EstopOkIn estop-latch.0.fault-in +net EstopOkIn estop_latch.0.fault-in net EstopOkIn and2.0.out net EstopOkOut <= ppmc.0.dout.07.out net EstopOkOut iocontrol.0.emc-enable-in -net EstopOkOut estop-latch.0.ok-out +net EstopOkOut estop_latch.0.ok-out net EstopOkOut and2.0.in1 net emc-estop-out iocontrol.0.user-enable-out -net emc-estop-out estop-latch.0.ok-in +net emc-estop-out estop_latch.0.ok-in net emc-estop-reset iocontrol.0.user-request-enable -net emc-estop-reset estop-latch.0.reset +net emc-estop-reset estop_latch.0.reset # connect spindle fwd/rev to I/O controller net SpindleFwd <= ppmc.0.dout.00.out diff --git a/configs/by_interface/pico/univpwm/univpwm_load.hal b/configs/by_interface/pico/univpwm/univpwm_load.hal index c76599eaaa2..a834751a545 100644 --- a/configs/by_interface/pico/univpwm/univpwm_load.hal +++ b/configs/by_interface/pico/univpwm/univpwm_load.hal @@ -4,10 +4,12 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # next load the PID module, for four PID loops -loadrt pid num_chan=4 +loadrt pid count=4 # install Universal PWM Controller driver loadrt hal_ppmc @@ -23,7 +25,7 @@ addf ppmc.0.read servo-thread # then run the motion controller addf motion-command-handler servo-thread addf and2.0 servo-thread -addf estop-latch.0 servo-thread +addf estop_latch.0 servo-thread addf motion-controller servo-thread # then the PID loops addf pid.0.do-pid-calcs servo-thread diff --git a/configs/by_interface/pico/univpwmv/univpwm.ini b/configs/by_interface/pico/univpwmv/univpwm.ini index aff977e0184..c31b2c5311c 100644 --- a/configs/by_interface/pico/univpwmv/univpwm.ini +++ b/configs/by_interface/pico/univpwmv/univpwm.ini @@ -11,7 +11,7 @@ VERSION = $Revision: 1.6 $ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-UPC-Thread-Pendant +MACHINE = Machinekit-UPC-Thread-Pendant # Name of NML file to use, default is emc.nml #NML_FILE = emc.nml @@ -47,7 +47,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 2 # Enable popup balloon help diff --git a/configs/by_interface/pico/univpwmv/univpwm_io.hal b/configs/by_interface/pico/univpwmv/univpwm_io.hal index f5a52f17e65..4fed1bdc1c8 100644 --- a/configs/by_interface/pico/univpwmv/univpwm_io.hal +++ b/configs/by_interface/pico/univpwmv/univpwm_io.hal @@ -68,19 +68,19 @@ newsig ppmcEstop bit linksp ppmcEstop ppmc.0.din.15.in-not linksp ppmcEstop and2.0.in0 newsig EstopOkIn bit -linksp EstopOkIn estop-latch.0.fault-in +linksp EstopOkIn estop_latch.0.fault-in linksp EstopOkIn and2.0.out newsig EstopOkOut bit linksp EstopOkOut <= ppmc.0.dout.07.out linksp EstopOkOut iocontrol.0.emc-enable-in -linksp EstopOkOut estop-latch.0.ok-out +linksp EstopOkOut estop_latch.0.ok-out linksp EstopOkOut and2.0.in1 newsig emc-estop-out bit linksp emc-estop-out iocontrol.0.user-enable-out -linksp emc-estop-out estop-latch.0.ok-in +linksp emc-estop-out estop_latch.0.ok-in newsig emc-estop-reset bit linksp emc-estop-reset iocontrol.0.user-request-enable -linksp emc-estop-reset estop-latch.0.reset +linksp emc-estop-reset estop_latch.0.reset # connect spindle fwd/rev to I/O controller newsig SpindleFwd bit diff --git a/configs/by_interface/pico/univpwmv/univpwm_load.hal b/configs/by_interface/pico/univpwmv/univpwm_load.hal index 5508c647467..d0d8adf9363 100644 --- a/configs/by_interface/pico/univpwmv/univpwm_load.hal +++ b/configs/by_interface/pico/univpwmv/univpwm_load.hal @@ -6,10 +6,12 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]SERVO_PERIOD key=[EMCMOT]SHMEM_KEY +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]SERVO_PERIOD key=[EMCMOT]SHMEM_KEY tp=tp kins=trivkins # next load the PID module, for four PID loops -loadrt pid num_chan=4 +loadrt pid count=4 # install Universal PWM Controller driver loadrt hal_ppmc port_addr="0x378" timestamp="0x00" @@ -33,7 +35,7 @@ addf ppmc.0.read servo-thread # then run the motion controller addf motion-command-handler servo-thread addf and2.0 servo-thread -addf estop-latch.0 servo-thread +addf estop_latch.0 servo-thread addf motion-controller servo-thread addf not.0 servo-thread # then the PID loops diff --git a/configs/by_interface/pico/univstep/univstep.ini b/configs/by_interface/pico/univstep/univstep.ini index 96f02f86583..1499d5c5595 100644 --- a/configs/by_interface/pico/univstep/univstep.ini +++ b/configs/by_interface/pico/univstep/univstep.ini @@ -12,7 +12,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-UNIVSTEP +MACHINE = Machinekit-UNIVSTEP # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -45,7 +45,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 2 # Enable popup balloon help diff --git a/configs/by_interface/pico/univstep/univstep_io.hal b/configs/by_interface/pico/univstep/univstep_io.hal index 8e69d02146b..5f8ee32add8 100644 --- a/configs/by_interface/pico/univstep/univstep_io.hal +++ b/configs/by_interface/pico/univstep/univstep_io.hal @@ -54,16 +54,16 @@ net Ahome => axis.3.home-sw-in # prevent continued estop signal from univstep from holding FF cleared net ppmcEstop ppmc.0.din.15.in-not net ppmcEstop and2.0.in0 -net EstopOkIn estop-latch.0.fault-in +net EstopOkIn estop_latch.0.fault-in net EstopOkIn and2.0.out net EstopOkOut <= ppmc.0.dout.07.out net EstopOkOut iocontrol.0.emc-enable-in -net EstopOkOut estop-latch.0.ok-out +net EstopOkOut estop_latch.0.ok-out net EstopOkOut and2.0.in1 net emc-estop-out iocontrol.0.user-enable-out -net emc-estop-out estop-latch.0.ok-in +net emc-estop-out estop_latch.0.ok-in net emc-estop-reset iocontrol.0.user-request-enable -net emc-estop-reset estop-latch.0.reset +net emc-estop-reset estop_latch.0.reset # connect spindle fwd/rev to I/O controller net SpindleFwd <= ppmc.0.dout.00.out diff --git a/configs/by_interface/pico/univstep/univstep_load.hal b/configs/by_interface/pico/univstep/univstep_load.hal index 3093810bcfa..7e8aa54315b 100644 --- a/configs/by_interface/pico/univstep/univstep_load.hal +++ b/configs/by_interface/pico/univstep/univstep_load.hal @@ -4,10 +4,12 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # next load the PID module, for four PID loops -loadrt pid num_chan=4 +loadrt pid count=4 # install driver loadrt hal_ppmc @@ -24,7 +26,7 @@ addf ppmc.0.read servo-thread # then run the motion controller addf motion-command-handler servo-thread addf and2.0 servo-thread -addf estop-latch.0 servo-thread +addf estop_latch.0 servo-thread addf motion-controller servo-thread # then the PID loops addf pid.0.do-pid-calcs servo-thread diff --git a/configs/by_interface/pluto/lathe-pluto/lathe-pluto.hal b/configs/by_interface/pluto/lathe-pluto/lathe-pluto.hal index 0ad9de419e7..40aaa582827 100644 --- a/configs/by_interface/pluto/lathe-pluto/lathe-pluto.hal +++ b/configs/by_interface/pluto/lathe-pluto/lathe-pluto.hal @@ -1,12 +1,14 @@ # load realtime modules loadrt trivkins -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES -loadrt at_pid num_chan=2 debug=1 -loadrt ddt count=4 +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins +loadrt pid count=2 +loadrt ddt count=4 loadrt pluto_servo loadrt scale loadrt mux2 -loadrt debounce cfg=1 +loadrt debounce loadrt limit1 count=1 # define the order of execution for RT code diff --git a/configs/by_interface/pluto/pluto_inch/pluto_inch.ini b/configs/by_interface/pluto/pluto_inch/pluto_inch.ini index b74ae420e6b..5415ec7964f 100644 --- a/configs/by_interface/pluto/pluto_inch/pluto_inch.ini +++ b/configs/by_interface/pluto/pluto_inch/pluto_inch.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-STEP-PLUTO +MACHINE = Machinekit-HAL-STEP-PLUTO #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -47,7 +47,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Editor to be used with Axis diff --git a/configs/by_interface/pluto/pluto_inch/pluto_pinout.hal b/configs/by_interface/pluto/pluto_inch/pluto_pinout.hal index 75ae091afd9..7c2b01a94a1 100644 --- a/configs/by_interface/pluto/pluto_inch/pluto_pinout.hal +++ b/configs/by_interface/pluto/pluto_inch/pluto_pinout.hal @@ -2,7 +2,9 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins loadrt pluto_step addf pluto-step.read servo-thread diff --git a/configs/by_interface/servotogo/stg.ini b/configs/by_interface/servotogo/stg.ini index 2341091eea3..31325f84bca 100644 --- a/configs/by_interface/servotogo/stg.ini +++ b/configs/by_interface/servotogo/stg.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-STG +MACHINE = Machinekit-HAL-STG #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -52,7 +52,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/servotogo/stg.txt b/configs/by_interface/servotogo/stg.txt index 783483d31d6..0f9846b0526 100644 --- a/configs/by_interface/servotogo/stg.txt +++ b/configs/by_interface/servotogo/stg.txt @@ -2,7 +2,7 @@ This configuration step is intended for servo machines running the ServoToGo car Both the STG1 and STG2 are supported, check www.servotogo.com for additional details. -You can have either a standard pinout (LinuxCNC style) or you could make a new one which would suit your own custom cabling. +You can have either a standard pinout (Machinekit style) or you could make a new one which would suit your own custom cabling. Right now the ini file is for metric setup, but an inch specific one could be easily added. @@ -18,7 +18,7 @@ Detailed description: -- stg_motion.hal - this is the main hal file for the STG, it loads the stg driver and sets up motion specific links, it is fairly well commented, so it should be easy to read / modify. --- stg_io.hal - this is the second hal file for the STG, it configures IO specific links (like the pin number where the X limit switch is, or where the spindle start pin is connected), it is fairly well commented, so it should be easy to read / modify. This servo setup is mostly for serious machines, so the ESTOP should really be planned / implemented properly (that means use an external ESTOP chain, and let LinuxCNC know about it, and let LinuxCNC interrupt the external chain too). +-- stg_io.hal - this is the second hal file for the STG, it configures IO specific links (like the pin number where the X limit switch is, or where the spindle start pin is connected), it is fairly well commented, so it should be easy to read / modify. This servo setup is mostly for serious machines, so the ESTOP should really be planned / implemented properly (that means use an external ESTOP chain, and let Machinekit know about it, and let Machinekit interrupt the external chain too). Read more about this in the wiki at http://wiki.linuxcnc.org/ @@ -26,7 +26,7 @@ Read more about this in the wiki at http://wiki.linuxcnc.org/ -- stg.tbl - this is the tool table file, and it holds definitions for the tools used, along with tool sizes for compensation (tool length & tool diameter) --- stg.var - the variables file. This file is used by the interpreter to save internal variables when LinuxCNC shuts down, and rereads them on the next startup. +-- stg.var - the variables file. This file is used by the interpreter to save internal variables when Machinekit shuts down, and rereads them on the next startup. -Further specific information can be found in the LinuxCNC wiki: +Further specific information can be found in the Linuxcnc wiki: http://wiki.linuxcnc.org/ diff --git a/configs/by_interface/vigilant/vti.ini b/configs/by_interface/vigilant/vti.ini index 714b6d80a7a..e7dc54d81e8 100644 --- a/configs/by_interface/vigilant/vti.ini +++ b/configs/by_interface/vigilant/vti.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-VTI +MACHINE = Machinekit-HAL-VTI #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -52,7 +52,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_interface/vigilant/vti.txt b/configs/by_interface/vigilant/vti.txt index 2a4df1ebbfb..70499821392 100644 --- a/configs/by_interface/vigilant/vti.txt +++ b/configs/by_interface/vigilant/vti.txt @@ -2,7 +2,7 @@ This configuration step is intended for servo machines running the Vigilant Tech Check www.Vigilanttech.com for additional details. -You can have either a standard pinout (LinuxCNC style) or you could make a new one which would suit your own custom cabling. +You can have either a standard pinout (Machinekit style) or you could make a new one which would suit your own custom cabling. Right now the ini file is for metric setup, but an inch specific one could be easily added. @@ -18,13 +18,13 @@ Detailed description: -- vti_motion.hal - this is the main hal file for the VTI, it loads the vti driver and sets up motion specific links, it is fairly well commented, so it should be easy to read / modify. --- vti_io.hal - this is the second hal file for the VTI, it configures IO specific links (like the pin number where the X limit switch is, or where the spindle start pin is connected), it is fairly well commented, so it should be easy to read / modify. This servo setup is mostly for serious machines, so the ESTOP should really be planned / implemented properly (that means use an external ESTOP chain, and let LinuxCNC know about it, and let LinuxCNC interrupt the external chain too). Read more about this in the wiki at http://wiki.linuxcnc.org/ +-- vti_io.hal - this is the second hal file for the VTI, it configures IO specific links (like the pin number where the X limit switch is, or where the spindle start pin is connected), it is fairly well commented, so it should be easy to read / modify. This servo setup is mostly for serious machines, so the ESTOP should really be planned / implemented properly (that means use an external ESTOP chain, and let Machinekit know about it, and let Machinekit interrupt the external chain too). Read more about this in the wiki at http://wiki.machinekit.org/ * additional files -- vti.tbl - this is the tool table file, and it holds definitions for the tools used, along with tool sizes for compensation (tool length & tool diameter) --- vti.var - the variables file. This file is used by the interpreter to save internal variables when LinuxCNC shuts down, and rereads them on the next startup. +-- vti.var - the variables file. This file is used by the interpreter to save internal variables when Machinekit shuts down, and rereads them on the next startup. -Further specific information can be found in the LinuxCNC wiki: +Further specific information can be found in the Linuxcnc wiki: http://wiki.linuxcnc.org/ diff --git a/configs/by_interface/vitalsystems/motenc.ini b/configs/by_interface/vitalsystems/motenc.ini index a11c7cab213..5a45b733d41 100644 --- a/configs/by_interface/vitalsystems/motenc.ini +++ b/configs/by_interface/vitalsystems/motenc.ini @@ -11,7 +11,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-MOTENC +MACHINE = Machinekit-MOTENC # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x00000003 @@ -44,7 +44,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/by_interface/vitalsystems/motenc.txt b/configs/by_interface/vitalsystems/motenc.txt index badf95a88ea..da769a69f55 100644 --- a/configs/by_interface/vitalsystems/motenc.txt +++ b/configs/by_interface/vitalsystems/motenc.txt @@ -1,6 +1,6 @@ This configuration is intended for servo machines running the Vitalsystems (www.vsi99.com) Motenc-100 or Motenc-Lite card. -You can either have a standard pinout, or you could make a new one which would suit your own custom cabling. The changes are done in HAL (the Hardware Abstraction Layer), which is very flexible (read more about it at http://wiki.linuxcnc.org/) +You can either have a standard pinout, or you could make a new one which would suit your own custom cabling. The changes are done in HAL (the Hardware Abstraction Layer), which is very flexible (read more about it at http://wiki.machinekit.org/) The standard configuration assumes a card installed with the board id jumper set at 0. If you get errors, try to adjust the jumper. @@ -18,7 +18,7 @@ Detailed description: -- motenc_motion.hal - this is the main hal file for the Motenc, it loads the motenc driver and sets up motion specific links, it is fairly well commented, so it should be easy to read / modify. --- motenc_io.hal - this is the second hal file for the Motenc, it configures IO specific links (like the pin number where the X limit switch is, or where the spindle start pin is connected), it is fairly well commented, so it should be easy to read / modify. This servo setup is mostly for serious machines, so the ESTOP should really be planned / implemented properly (that means use an external ESTOP chain, and let LinuxCNC know about it, and let LinuxCNC interrupt the external chain too). +-- motenc_io.hal - this is the second hal file for the Motenc, it configures IO specific links (like the pin number where the X limit switch is, or where the spindle start pin is connected), it is fairly well commented, so it should be easy to read / modify. This servo setup is mostly for serious machines, so the ESTOP should really be planned / implemented properly (that means use an external ESTOP chain, and let Machinekit know about it, and let Machinekit interrupt the external chain too). Read more about this in the wiki at http://wiki.linuxcnc.org/ @@ -26,8 +26,8 @@ Read more about this in the wiki at http://wiki.linuxcnc.org/ -- motenc.tbl - this is the tool table file, and it holds definitions for the tools used, along with tool sizes for compensation (tool length & tool diameter) --- motenc.var - the variables file. This file is used by the interpreter to save internal variables when LinuxCNC shuts down, and rereads them on the next startup. +-- motenc.var - the variables file. This file is used by the interpreter to save internal variables when Machinekit shuts down, and rereads them on the next startup. -Further specific information can be found in the LinuxCNC wiki: +Further specific information can be found in the Linuxcnc wiki: http://wiki.linuxcnc.org/ diff --git a/configs/by_interface/vitalsystems/motenc_pidtest.hal b/configs/by_interface/vitalsystems/motenc_pidtest.hal index 97472159f6f..69522e7cf9c 100644 --- a/configs/by_interface/vitalsystems/motenc_pidtest.hal +++ b/configs/by_interface/vitalsystems/motenc_pidtest.hal @@ -10,7 +10,7 @@ loadrt hal_motenc loadrt threads name1=motenc.thread period1=1000000 # then load the PID module, for three PID loops -loadrt pid num_chan=3 +loadrt pid count=3 # and load the signal generator module loadrt siggen diff --git a/configs/by_machine/boss/README b/configs/by_machine/boss/README index d1438aab762..d5c069939ed 100644 --- a/configs/by_machine/boss/README +++ b/configs/by_machine/boss/README @@ -14,14 +14,14 @@ Detailed description: * hal files --- boss.hal - this is the main hal file for the Motenc, it loads the motenc driver and sets up motion and IO links (like the pin number where the X limit switch is, or where the spindle start pin is connected), it is fairly well commented, so it should be easy to read / modify. This servo setup is mostly for serious machines, so the ESTOP should really be planned / implemented properly (that means use an external ESTOP chain, and let LinuxCNC know about it, and let LinuxCNC interrupt the external chain too). Read more about this in the wiki at http://wiki.linuxcnc.org/ +-- boss.hal - this is the main hal file for the Motenc, it loads the motenc driver and sets up motion and IO links (like the pin number where the X limit switch is, or where the spindle start pin is connected), it is fairly well commented, so it should be easy to read / modify. This servo setup is mostly for serious machines, so the ESTOP should really be planned / implemented properly (that means use an external ESTOP chain, and let Machinekit know about it, and let Machinekit interrupt the external chain too). Read more about this in the wiki at http://wiki.linuxcnc.org/ * additional files -- boss.tbl - this is the tool table file, and it holds definitions for the tools used, along with tool sizes for compensation (tool length & tool diameter) --- boss.var - the variables file. This file is used by the interpreter to save internal variables when LinuxCNC shuts down, and rereads them on the next startup. +-- boss.var - the variables file. This file is used by the interpreter to save internal variables when Machinekit shuts down, and rereads them on the next startup. -Further specific information can be found in the LinuxCNC wiki: +Further specific information can be found in the Linuxcnc wiki: http://wiki.linuxcnc.org/ diff --git a/configs/by_machine/boss/boss.hal b/configs/by_machine/boss/boss.hal index 5756d7725d9..bc3f6ee99bd 100644 --- a/configs/by_machine/boss/boss.hal +++ b/configs/by_machine/boss/boss.hal @@ -6,10 +6,12 @@ loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # PID module, for four PID loops -loadrt pid num_chan=4 +loadrt pid count=4 # Install motenc driver. loadrt hal_motenc @@ -19,7 +21,7 @@ loadrt boss_plc # Install debounce filters for operator console (cycle hold/start, # limit override, spindle increase/decrease/status). -loadrt debounce cfg="7" +loadrt debounce # Add functions to servo thread so they will be evaluated # every servo period. @@ -126,10 +128,10 @@ net aOutput pid.3.output => motenc.0.dac-00-value # Encoders. # # Set feedback scaling from ini file. -setp motenc.0.enc-01-scale [AXIS_0]INPUT_SCALE -setp motenc.0.enc-03-scale [AXIS_1]INPUT_SCALE -setp motenc.0.enc-02-scale [AXIS_2]INPUT_SCALE -setp motenc.0.enc-00-scale [AXIS_3]INPUT_SCALE +setp motenc.0.enc-01-scale [AXIS_0]INPUT_SCALE +setp motenc.0.enc-03-scale [AXIS_1]INPUT_SCALE +setp motenc.0.enc-02-scale [AXIS_2]INPUT_SCALE +setp motenc.0.enc-00-scale [AXIS_3]INPUT_SCALE # Connect position feedback to PID loop. net xPosFb motenc.0.enc-01-position => pid.0.feedback diff --git a/configs/by_machine/boss/boss.ini b/configs/by_machine/boss/boss.ini index 56de7280182..43aea8007ec 100644 --- a/configs/by_machine/boss/boss.ini +++ b/configs/by_machine/boss/boss.ini @@ -11,7 +11,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-BP-BOSS6 +MACHINE = Machinekit-BP-BOSS6 # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x00000003 @@ -44,7 +44,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/by_machine/boss/pid_test.hal b/configs/by_machine/boss/pid_test.hal index 80dbdda2e89..1b883e1d47d 100644 --- a/configs/by_machine/boss/pid_test.hal +++ b/configs/by_machine/boss/pid_test.hal @@ -6,10 +6,12 @@ loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # PID module, for four PID loops -loadrt at_pid num_chan=4 +loadrt pid count=4 # Install motenc driver. loadrt hal_motenc @@ -19,7 +21,7 @@ loadrt boss_plc # Install debounce filters for operator console (cycle hold/start, # limit override, spindle increase/decrease/status). -loadrt debounce cfg="6" +loadrt debounce # Load muxes for motion feedback and PID command. loadrt mux2 count=8 @@ -198,10 +200,10 @@ net zPidAccCmd ddt.2.out # Encoders. # # Set feedback scaling from ini file. -setp motenc.0.enc-01-scale [AXIS_0]INPUT_SCALE -setp motenc.0.enc-03-scale [AXIS_1]INPUT_SCALE -setp motenc.0.enc-02-scale [AXIS_2]INPUT_SCALE -setp motenc.0.enc-00-scale [AXIS_3]INPUT_SCALE +setp motenc.0.enc-01-scale [AXIS_0]INPUT_SCALE +setp motenc.0.enc-03-scale [AXIS_1]INPUT_SCALE +setp motenc.0.enc-02-scale [AXIS_2]INPUT_SCALE +setp motenc.0.enc-00-scale [AXIS_3]INPUT_SCALE # Connect position feedback to PID loop. net xMotorPosFb motenc.0.enc-01-position => pid.0.feedback diff --git a/configs/by_machine/boss/pid_test.ini b/configs/by_machine/boss/pid_test.ini index 4a876fd30b5..ae2949862ac 100644 --- a/configs/by_machine/boss/pid_test.ini +++ b/configs/by_machine/boss/pid_test.ini @@ -11,7 +11,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-BP-BOSS6 +MACHINE = Machinekit-BP-BOSS6 # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x00000003 @@ -44,7 +44,7 @@ MAX_FEED_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/by_machine/cooltool/Basic540_3axes.ini b/configs/by_machine/cooltool/Basic540_3axes.ini index 37f060ecbcb..9f27585fbbd 100644 --- a/configs/by_machine/cooltool/Basic540_3axes.ini +++ b/configs/by_machine/cooltool/Basic540_3axes.ini @@ -49,7 +49,7 @@ MAX_FEED_OVERRIDE = 2.0 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/by_machine/cooltool/Basic540_4axes.ini b/configs/by_machine/cooltool/Basic540_4axes.ini index 917041d063e..79360ea0c48 100644 --- a/configs/by_machine/cooltool/Basic540_4axes.ini +++ b/configs/by_machine/cooltool/Basic540_4axes.ini @@ -49,7 +49,7 @@ MAX_FEED_OVERRIDE = 2.0 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/by_machine/cooltool/Uni-cnc-set.ini b/configs/by_machine/cooltool/Uni-cnc-set.ini index ba3ae7df5a4..34ee2024b27 100644 --- a/configs/by_machine/cooltool/Uni-cnc-set.ini +++ b/configs/by_machine/cooltool/Uni-cnc-set.ini @@ -49,7 +49,7 @@ MAX_FEED_OVERRIDE = 10.0 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/by_machine/cooltool/Uni-dreh-g.ini b/configs/by_machine/cooltool/Uni-dreh-g.ini index a050a8168ab..b2c3f3afa7a 100644 --- a/configs/by_machine/cooltool/Uni-dreh-g.ini +++ b/configs/by_machine/cooltool/Uni-dreh-g.ini @@ -50,7 +50,7 @@ MAX_FEED_OVERRIDE = 2.0 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/by_machine/cooltool/Uni-dreh.ini b/configs/by_machine/cooltool/Uni-dreh.ini index 90db2b3718d..6f77bf02514 100644 --- a/configs/by_machine/cooltool/Uni-dreh.ini +++ b/configs/by_machine/cooltool/Uni-dreh.ini @@ -50,7 +50,7 @@ MAX_FEED_OVERRIDE = 2.0 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/by_machine/cooltool/Uni-fraes-4.ini b/configs/by_machine/cooltool/Uni-fraes-4.ini index 18e5fc0e07a..28a85261daa 100644 --- a/configs/by_machine/cooltool/Uni-fraes-4.ini +++ b/configs/by_machine/cooltool/Uni-fraes-4.ini @@ -49,7 +49,7 @@ MAX_FEED_OVERRIDE = 10.0 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/by_machine/cooltool/Uni-fraes-h3.ini b/configs/by_machine/cooltool/Uni-fraes-h3.ini index 255891ccae2..3e6d9451a1e 100644 --- a/configs/by_machine/cooltool/Uni-fraes-h3.ini +++ b/configs/by_machine/cooltool/Uni-fraes-h3.ini @@ -49,7 +49,7 @@ MAX_FEED_OVERRIDE = 2.0 PROGRAM_PREFIX = ../../nc_files # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/by_machine/cooltool/Uni-fraes-v3.ini b/configs/by_machine/cooltool/Uni-fraes-v3.ini index e0e3ee8cf67..733d6bf2c5c 100644 --- a/configs/by_machine/cooltool/Uni-fraes-v3.ini +++ b/configs/by_machine/cooltool/Uni-fraes-v3.ini @@ -49,7 +49,7 @@ MAX_FEED_OVERRIDE = 2.0 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/by_machine/cooltool/Uni-mill-cnc.ini b/configs/by_machine/cooltool/Uni-mill-cnc.ini index 66e449b2411..57fd5650154 100644 --- a/configs/by_machine/cooltool/Uni-mill-cnc.ini +++ b/configs/by_machine/cooltool/Uni-mill-cnc.ini @@ -49,7 +49,7 @@ MAX_FEED_OVERRIDE = 2.0 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/by_machine/cooltool/core_stepper4.hal b/configs/by_machine/cooltool/core_stepper4.hal index c22182a818b..24e6cc0b773 100644 --- a/configs/by_machine/cooltool/core_stepper4.hal +++ b/configs/by_machine/cooltool/core_stepper4.hal @@ -3,14 +3,16 @@ loadrt trivkins # core HAL config file for steppers # first load the stepper module -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD tp=tp kins=trivkins loadrt stepgen step_type=0,0,0,0 # hook its functions to realtime threads addf stepgen.capture-position servo-thread addf stepgen.update-freq servo-thread -addf stepgen.make-pulses base-thread +addf stepgen.make-pulses base-thread #add motion controller to the threads addf motion-command-handler servo-thread diff --git a/configs/by_machine/cooltool/uni-dreh-g_stepper.hal b/configs/by_machine/cooltool/uni-dreh-g_stepper.hal index 41ad20fb4b4..0c58d94370b 100644 --- a/configs/by_machine/cooltool/uni-dreh-g_stepper.hal +++ b/configs/by_machine/cooltool/uni-dreh-g_stepper.hal @@ -3,14 +3,16 @@ loadrt trivkins # core HAL config file for steppers # first load the stepper module -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD tp=tp kins=trivkins loadrt stepgen step_type=0,0,0,0,0,0 # hook its functions to realtime threads addf stepgen.capture-position servo-thread addf stepgen.update-freq servo-thread -addf stepgen.make-pulses base-thread +addf stepgen.make-pulses base-thread #add motion controller to the threads addf motion-command-handler servo-thread diff --git a/configs/by_machine/sherline/Sherline3Axis/Sherline3Axis_inch.ini b/configs/by_machine/sherline/Sherline3Axis/Sherline3Axis_inch.ini index 8cc53424dc5..d2c7df6ff10 100644 --- a/configs/by_machine/sherline/Sherline3Axis/Sherline3Axis_inch.ini +++ b/configs/by_machine/sherline/Sherline3Axis/Sherline3Axis_inch.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-STEP-IN +MACHINE = Machinekit-HAL-STEP-IN #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -52,7 +52,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_machine/sherline/Sherline3Axis/Sherline3Axis_mm.ini b/configs/by_machine/sherline/Sherline3Axis/Sherline3Axis_mm.ini index c0791afb450..81fbf615c46 100644 --- a/configs/by_machine/sherline/Sherline3Axis/Sherline3Axis_mm.ini +++ b/configs/by_machine/sherline/Sherline3Axis/Sherline3Axis_mm.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-STEP-MM +MACHINE = Machinekit-HAL-STEP-MM #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -52,7 +52,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_machine/sherline/Sherline4Axis/Sherline4Axis_inch.ini b/configs/by_machine/sherline/Sherline4Axis/Sherline4Axis_inch.ini index cccc246f2da..6e5bf06fbd7 100644 --- a/configs/by_machine/sherline/Sherline4Axis/Sherline4Axis_inch.ini +++ b/configs/by_machine/sherline/Sherline4Axis/Sherline4Axis_inch.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-STEP-XYZA-IN +MACHINE = Machinekit-HAL-STEP-XYZA-IN #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -52,7 +52,7 @@ MAX_FEED_OVERRIDE = 1.20 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 GEOMETRY = AXYZ diff --git a/configs/by_machine/sherline/Sherline4Axis/Sherline4Axis_mm.ini b/configs/by_machine/sherline/Sherline4Axis/Sherline4Axis_mm.ini index a2b7bbf77d7..5e242c0a40c 100644 --- a/configs/by_machine/sherline/Sherline4Axis/Sherline4Axis_mm.ini +++ b/configs/by_machine/sherline/Sherline4Axis/Sherline4Axis_mm.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-STEP-XYZA-IN +MACHINE = Machinekit-HAL-STEP-XYZA-IN #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -52,7 +52,7 @@ MAX_FEED_OVERRIDE = 1.20 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 GEOMETRY = AXYZ diff --git a/configs/by_machine/sherline/Sherline4Axis/stepper_xyza.hal b/configs/by_machine/sherline/Sherline4Axis/stepper_xyza.hal index 888c8dda107..c4087a632af 100644 --- a/configs/by_machine/sherline/Sherline4Axis/stepper_xyza.hal +++ b/configs/by_machine/sherline/Sherline4Axis/stepper_xyza.hal @@ -4,7 +4,9 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD tp=tp kins=trivkins # stepper module loadrt stepgen step_type=0,0,0,0 diff --git a/configs/by_machine/sherline/SherlineLathe/SherlineLathe_inch.ini b/configs/by_machine/sherline/SherlineLathe/SherlineLathe_inch.ini index f3b36a9857e..3f2f5da37ba 100644 --- a/configs/by_machine/sherline/SherlineLathe/SherlineLathe_inch.ini +++ b/configs/by_machine/sherline/SherlineLathe/SherlineLathe_inch.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-STEP-IN +MACHINE = Machinekit-HAL-STEP-IN #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -52,7 +52,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_machine/sherline/SherlineLathe/SherlineLathe_mm.ini b/configs/by_machine/sherline/SherlineLathe/SherlineLathe_mm.ini index 56fba3ce34d..90906f77f4c 100644 --- a/configs/by_machine/sherline/SherlineLathe/SherlineLathe_mm.ini +++ b/configs/by_machine/sherline/SherlineLathe/SherlineLathe_mm.ini @@ -16,7 +16,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-STEP-MM +MACHINE = Machinekit-HAL-STEP-MM #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -52,7 +52,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 diff --git a/configs/by_machine/smithy/1034gecko.ini b/configs/by_machine/smithy/1034gecko.ini index 614f61f2010..def0ece61c6 100644 --- a/configs/by_machine/smithy/1034gecko.ini +++ b/configs/by_machine/smithy/1034gecko.ini @@ -54,7 +54,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/smithy/1240.hal b/configs/by_machine/smithy/1240.hal index 8a20db367a0..d42ff1a681b 100644 --- a/configs/by_machine/smithy/1240.hal +++ b/configs/by_machine/smithy/1240.hal @@ -23,7 +23,9 @@ setp hm2_5i20.0.raw.write_strobe 1 loadrt trivkins # load motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins # load charge pump loadrt charge_pump diff --git a/configs/by_machine/smithy/1240.ini b/configs/by_machine/smithy/1240.ini index 9704790fd3a..c7685e23774 100644 --- a/configs/by_machine/smithy/1240.ini +++ b/configs/by_machine/smithy/1240.ini @@ -53,7 +53,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/smithy/1240_4axis.hal b/configs/by_machine/smithy/1240_4axis.hal index d7c17d70c7d..d83153a1b28 100644 --- a/configs/by_machine/smithy/1240_4axis.hal +++ b/configs/by_machine/smithy/1240_4axis.hal @@ -23,7 +23,9 @@ setp hm2_5i20.0.raw.write_strobe 1 loadrt trivkins # load motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins # load charge pump loadrt charge_pump diff --git a/configs/by_machine/smithy/1240_4axis.ini b/configs/by_machine/smithy/1240_4axis.ini index 6c758be9cfc..ce8daaaa1b1 100644 --- a/configs/by_machine/smithy/1240_4axis.ini +++ b/configs/by_machine/smithy/1240_4axis.ini @@ -53,7 +53,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/smithy/1240combined.hal b/configs/by_machine/smithy/1240combined.hal index 99ec4f0afdd..0826589921a 100644 --- a/configs/by_machine/smithy/1240combined.hal +++ b/configs/by_machine/smithy/1240combined.hal @@ -24,14 +24,16 @@ setp hm2_5i20.0.raw.write_strobe 1 loadrt trivkins # load motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins # load charge pump loadrt charge_pump setp charge-pump.enable TRUE # load and configure the spindle speed PID -loadrt pid num_chan=1 +loadrt pid count=1 setp pid.0.Pgain 0.1 setp pid.0.Igain 100.0 setp pid.0.Dgain 0.0 @@ -52,7 +54,7 @@ loadrt comp count=2 setp comp.0.in0 1.0 setp comp.1.in0 0.0 loadrt and2 count=2 -# Filter srps +# Filter srps loadrt lowpass setp lowpass.0.gain 0.07 # Spindle at-speed detection @@ -178,7 +180,7 @@ net chargepump hm2_5i20.0.gpio.022.out charge-pump.out # Safety Relay Monitoring Contacts net estop-enable hm2_5i20.0.gpio.037.in iocontrol.0.emc-enable-in # Run Switch -loadrt debounce cfg=1 +loadrt debounce setp debounce.0.delay 1000 net key-on hm2_5i20.0.gpio.039.in_not debounce.0.0.in net machine-on debounce.0.0.out hm2_5i20.0.sserial.port-0.run hm2_5i20.0.8i20.0.0.amp_enable halui.machine.on diff --git a/configs/by_machine/smithy/1240combined.ini b/configs/by_machine/smithy/1240combined.ini index 4b0d146f0d8..c5f88bcfec2 100644 --- a/configs/by_machine/smithy/1240combined.ini +++ b/configs/by_machine/smithy/1240combined.ini @@ -53,7 +53,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/smithy/1240combined_4axis.hal b/configs/by_machine/smithy/1240combined_4axis.hal index bdf6fda2598..037200dace8 100644 --- a/configs/by_machine/smithy/1240combined_4axis.hal +++ b/configs/by_machine/smithy/1240combined_4axis.hal @@ -24,14 +24,16 @@ setp hm2_5i20.0.raw.write_strobe 1 loadrt trivkins # load motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins # load charge pump loadrt charge_pump setp charge-pump.enable TRUE # load and configure the spindle speed PID -loadrt pid num_chan=1 +loadrt pid count=1 setp pid.0.Pgain 0.1 setp pid.0.Igain 100.0 setp pid.0.Dgain 0.0 @@ -52,7 +54,7 @@ loadrt comp count=2 setp comp.0.in0 1.0 setp comp.1.in0 0.0 loadrt and2 count=2 -# Filter srps +# Filter srps loadrt lowpass setp lowpass.0.gain 0.07 # Spindle at-speed detection @@ -178,7 +180,7 @@ net chargepump hm2_5i20.0.gpio.022.out charge-pump.out # Safety Relay Monitoring Contacts net estop-enable hm2_5i20.0.gpio.037.in iocontrol.0.emc-enable-in # Run Switch -loadrt debounce cfg=1 +loadrt debounce setp debounce.0.delay 1000 net key-on hm2_5i20.0.gpio.039.in_not debounce.0.0.in net machine-on debounce.0.0.out hm2_5i20.0.sserial.port-0.run hm2_5i20.0.8i20.0.0.amp_enable halui.machine.on diff --git a/configs/by_machine/smithy/1240combined_4axis.ini b/configs/by_machine/smithy/1240combined_4axis.ini index 681c261c5e9..27e19373d15 100644 --- a/configs/by_machine/smithy/1240combined_4axis.ini +++ b/configs/by_machine/smithy/1240combined_4axis.ini @@ -53,7 +53,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/smithy/1240combined_mm.ini b/configs/by_machine/smithy/1240combined_mm.ini index 4e3d0f0ff21..d43149fca05 100644 --- a/configs/by_machine/smithy/1240combined_mm.ini +++ b/configs/by_machine/smithy/1240combined_mm.ini @@ -53,7 +53,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = 1mm .5mm .1mm .05mm .01mm .005mm .001mm .0005mm PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/smithy/1240gecko.hal b/configs/by_machine/smithy/1240gecko.hal index 3dd81cd4ed9..41dd9c76174 100644 --- a/configs/by_machine/smithy/1240gecko.hal +++ b/configs/by_machine/smithy/1240gecko.hal @@ -1,5 +1,7 @@ loadrt trivkins -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]SERVO_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]SERVO_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins loadrt hal_parport cfg=0x378 setp parport.0.reset-time 4000 loadrt stepgen step_type=0,0,0,0 diff --git a/configs/by_machine/smithy/1240gecko.ini b/configs/by_machine/smithy/1240gecko.ini index 93e2bbe6f37..2cd532c07f3 100644 --- a/configs/by_machine/smithy/1240gecko.ini +++ b/configs/by_machine/smithy/1240gecko.ini @@ -54,7 +54,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/smithy/1240rutex.hal b/configs/by_machine/smithy/1240rutex.hal index b129e0a255b..08ee23e675e 100644 --- a/configs/by_machine/smithy/1240rutex.hal +++ b/configs/by_machine/smithy/1240rutex.hal @@ -1,10 +1,12 @@ loadrt trivkins -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins loadrt stepgen step_type=0,0,0 loadrt match8 count=1 # Used to filter out spurious limit switch signals # THIS IS VERY BAD & SHOULD BE FIXED IN HARDWARE!!! -loadrt debounce cfg=1 +loadrt debounce setp debounce.0.delay 2 loadrt hal_parport cfg="0x378" diff --git a/configs/by_machine/smithy/1240rutex.ini b/configs/by_machine/smithy/1240rutex.ini index 1aa43b6822b..aea61fb4120 100644 --- a/configs/by_machine/smithy/1240rutex.ini +++ b/configs/by_machine/smithy/1240rutex.ini @@ -54,7 +54,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/smithy/1240rutex_4axis.hal b/configs/by_machine/smithy/1240rutex_4axis.hal index ccc8fc900c6..b8a0f9f842d 100644 --- a/configs/by_machine/smithy/1240rutex_4axis.hal +++ b/configs/by_machine/smithy/1240rutex_4axis.hal @@ -1,10 +1,12 @@ loadrt trivkins -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins loadrt stepgen step_type=0,0,0,0 loadrt match8 count=1 # Used to filter out spurious limit switch signals # THIS IS VERY BAD & SHOULD BE FIXED IN HARDWARE!!! -loadrt debounce cfg=1 +loadrt debounce setp debounce.0.delay 2 loadrt hal_parport cfg="0x378" diff --git a/configs/by_machine/smithy/1240rutex_4axis.ini b/configs/by_machine/smithy/1240rutex_4axis.ini index a1fd73d4f9c..bcd327a01e2 100644 --- a/configs/by_machine/smithy/1240rutex_4axis.ini +++ b/configs/by_machine/smithy/1240rutex_4axis.ini @@ -54,7 +54,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/smithy/1315.hal b/configs/by_machine/smithy/1315.hal index 6d831e9dd9c..bfe318fee73 100644 --- a/configs/by_machine/smithy/1315.hal +++ b/configs/by_machine/smithy/1315.hal @@ -23,7 +23,9 @@ setp hm2_5i20.0.raw.write_strobe 1 loadrt trivkins # load motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins # classicladder for machine logic # (load the realtime portion) @@ -98,7 +100,7 @@ net chargepump hm2_5i20.0.gpio.022.out charge-pump.out # Safety Relay Monitoring Contacts net estop-enable hm2_5i20.0.gpio.037.in iocontrol.0.emc-enable-in # Run Switch -loadrt debounce cfg=1 +loadrt debounce setp debounce.0.delay 1000 net key-on hm2_5i20.0.gpio.039.in_not debounce.0.0.in net machine-on debounce.0.0.out halui.machine.on diff --git a/configs/by_machine/smithy/1315.ini b/configs/by_machine/smithy/1315.ini index c9ccf20f390..d4c32192e77 100644 --- a/configs/by_machine/smithy/1315.ini +++ b/configs/by_machine/smithy/1315.ini @@ -35,7 +35,7 @@ NGCGUI_OPTIONS = POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in DEFAULT_LINEAR_VELOCITY = 0.2 diff --git a/configs/by_machine/smithy/516gecko.hal b/configs/by_machine/smithy/516gecko.hal index f227f3b9a05..8da30c91f4e 100644 --- a/configs/by_machine/smithy/516gecko.hal +++ b/configs/by_machine/smithy/516gecko.hal @@ -1,5 +1,7 @@ loadrt trivkins -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]SERVO_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]SERVO_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins loadrt hal_parport cfg=0x378 setp parport.0.reset-time 4000 loadrt stepgen step_type=0,0,0,0 diff --git a/configs/by_machine/smithy/516gecko.ini b/configs/by_machine/smithy/516gecko.ini index 3117301a349..9c7b473440e 100644 --- a/configs/by_machine/smithy/516gecko.ini +++ b/configs/by_machine/smithy/516gecko.ini @@ -54,7 +54,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/smithy/622.hal b/configs/by_machine/smithy/622.hal index 647c7ac1207..bc76371484c 100644 --- a/configs/by_machine/smithy/622.hal +++ b/configs/by_machine/smithy/622.hal @@ -15,7 +15,9 @@ loadrt hm2_pci config="firmware=hm2/5i20/SVST2_4_7I47.BIT num_encoders=1 num_pwm loadrt trivkins # load motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins # load charge pump loadrt charge_pump diff --git a/configs/by_machine/smithy/622.ini b/configs/by_machine/smithy/622.ini index f0912baebda..72eaeb2a944 100644 --- a/configs/by_machine/smithy/622.ini +++ b/configs/by_machine/smithy/622.ini @@ -53,7 +53,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/smithy/622_4axis.hal b/configs/by_machine/smithy/622_4axis.hal index f086c428b1a..b090029946a 100644 --- a/configs/by_machine/smithy/622_4axis.hal +++ b/configs/by_machine/smithy/622_4axis.hal @@ -15,7 +15,9 @@ loadrt hm2_pci config="firmware=hm2/5i20/SVST2_4_7I47.BIT num_encoders=1 num_pwm loadrt trivkins # load motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins # load charge pump loadrt charge_pump diff --git a/configs/by_machine/smithy/622_4axis.ini b/configs/by_machine/smithy/622_4axis.ini index 1c308adf688..4e002f776af 100644 --- a/configs/by_machine/smithy/622_4axis.ini +++ b/configs/by_machine/smithy/622_4axis.ini @@ -53,7 +53,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/smithy/622gecko.hal b/configs/by_machine/smithy/622gecko.hal index 97db686de45..ba7be0c6fb9 100644 --- a/configs/by_machine/smithy/622gecko.hal +++ b/configs/by_machine/smithy/622gecko.hal @@ -1,5 +1,7 @@ loadrt trivkins -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]SERVO_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]SERVO_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins loadrt hal_parport cfg=0x378 setp parport.0.reset-time 4000 loadrt stepgen step_type=0,0,0,0 diff --git a/configs/by_machine/smithy/622gecko.ini b/configs/by_machine/smithy/622gecko.ini index 7fa6a4920e3..9fc60f1b405 100644 --- a/configs/by_machine/smithy/622gecko.ini +++ b/configs/by_machine/smithy/622gecko.ini @@ -54,7 +54,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/smithy/622keyence.hal b/configs/by_machine/smithy/622keyence.hal index bd327e86d03..be857a57735 100644 --- a/configs/by_machine/smithy/622keyence.hal +++ b/configs/by_machine/smithy/622keyence.hal @@ -1,6 +1,6 @@ # 5i20 config file for Smithy 622 Mill with Leadshine Drives -# load the hostmot2 driver, this doesnt do anything by itself, +# load the hostmot2 driver, this doesnt do anything by itself, # it just waits for low-level drivers to register boards loadrt hostmot2 debug_idrom=1 debug_module_descriptors=1 debug_pin_descriptors=1 debug_modules=1 @@ -15,7 +15,9 @@ loadrt hm2_pci config="firmware=hm2/5i20/SVST2_4_7I47.BIT num_encoders=1 num_pwm loadrt trivkins # load motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins # load charge pump loadrt charge_pump @@ -161,7 +163,7 @@ setp hm2_5i20.0.gpio.043.is_output TRUE setp hm2_5i20.0.gpio.043.invert_output TRUE net M8 hm2_5i20.0.gpio.043.out => iocontrol.0.coolant-flood -# Mist +# Mist setp hm2_5i20.0.gpio.045.is_output TRUE setp hm2_5i20.0.gpio.045.invert_output TRUE net M7 hm2_5i20.0.gpio.045.out => iocontrol.0.coolant-mist diff --git a/configs/by_machine/smithy/622keyence.ini b/configs/by_machine/smithy/622keyence.ini index 62c6253752e..030c6d66448 100644 --- a/configs/by_machine/smithy/622keyence.ini +++ b/configs/by_machine/smithy/622keyence.ini @@ -53,7 +53,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/smithy/622leadshine.hal b/configs/by_machine/smithy/622leadshine.hal index 596b0f4ac7b..c82e777be33 100644 --- a/configs/by_machine/smithy/622leadshine.hal +++ b/configs/by_machine/smithy/622leadshine.hal @@ -15,7 +15,9 @@ loadrt hm2_pci config="firmware=hm2/5i20/SVST2_4_7I47.BIT num_encoders=1 num_pwm loadrt trivkins # load motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins # load charge pump loadrt charge_pump diff --git a/configs/by_machine/smithy/622leadshine.ini b/configs/by_machine/smithy/622leadshine.ini index 6ea3e8e7fab..98953023db8 100644 --- a/configs/by_machine/smithy/622leadshine.ini +++ b/configs/by_machine/smithy/622leadshine.ini @@ -53,7 +53,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/smithy/622leadshine_4axis.hal b/configs/by_machine/smithy/622leadshine_4axis.hal index bf9a8a2ed85..0b6e32577a2 100644 --- a/configs/by_machine/smithy/622leadshine_4axis.hal +++ b/configs/by_machine/smithy/622leadshine_4axis.hal @@ -15,7 +15,9 @@ loadrt hm2_pci config="firmware=hm2/5i20/SVST2_4_7I47.BIT num_encoders=1 num_pwm loadrt trivkins # load motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins # load charge pump loadrt charge_pump diff --git a/configs/by_machine/smithy/622leadshine_4axis.ini b/configs/by_machine/smithy/622leadshine_4axis.ini index b15689e7375..47bc1d8c62b 100644 --- a/configs/by_machine/smithy/622leadshine_4axis.ini +++ b/configs/by_machine/smithy/622leadshine_4axis.ini @@ -53,7 +53,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/smithy/924.hal b/configs/by_machine/smithy/924.hal index 629923d8d08..7b1139e0f12 100644 --- a/configs/by_machine/smithy/924.hal +++ b/configs/by_machine/smithy/924.hal @@ -15,7 +15,9 @@ loadrt hm2_pci config="firmware=hm2/5i20/SVST2_4_7I47.BIT num_encoders=3 num_pwm loadrt trivkins # load motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES tp=tp kins=trivkins # classicladder for machine logic # (load the realtime portion) diff --git a/configs/by_machine/smithy/924.ini b/configs/by_machine/smithy/924.ini index 853d5b7260a..4e121ef6350 100644 --- a/configs/by_machine/smithy/924.ini +++ b/configs/by_machine/smithy/924.ini @@ -38,7 +38,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 MIN_SPINDLE_OVERRIDE = 0.2 MAX_SPINDLE_OVERRIDE = 1.5 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in PROGRAM_PREFIX = ../../nc_files/ diff --git a/configs/by_machine/tormach/pcnc-1100-seriesII.ini b/configs/by_machine/tormach/pcnc-1100-seriesII.ini index 91adf8248d4..361b4567676 100644 --- a/configs/by_machine/tormach/pcnc-1100-seriesII.ini +++ b/configs/by_machine/tormach/pcnc-1100-seriesII.ini @@ -8,7 +8,7 @@ DISPLAY = axis POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 PROGRAM_PREFIX = ../../nc_files INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in diff --git a/configs/by_machine/tormach/pcnc-1100.hal b/configs/by_machine/tormach/pcnc-1100.hal index 3c1ce84c31a..5d9fd5bff9e 100644 --- a/configs/by_machine/tormach/pcnc-1100.hal +++ b/configs/by_machine/tormach/pcnc-1100.hal @@ -1,17 +1,19 @@ loadrt trivkins -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins loadrt probe_parport loadrt hal_parport cfg=0x378 setp parport.0.reset-time 4000 loadrt stepgen step_type=0,0,0,0,0 ctrl_type=p,p,p,p,v loadrt estop_latch -net charge-pump <= estop-latch.0.watchdog +net charge-pump <= estop_latch.0.watchdog addf parport.0.read base-thread addf stepgen.make-pulses base-thread -addf estop-latch.0 base-thread +addf estop_latch.0 base-thread addf parport.0.write base-thread addf parport.0.reset base-thread @@ -146,11 +148,11 @@ net adir <= stepgen.3.dir net aenable axis.3.amp-enable-out => stepgen.3.enable net home-a => axis.3.home-sw-in -#linksp xenable estop-latch.0.ok-out +#linksp xenable estop_latch.0.ok-out net estop-out <= iocontrol.0.user-enable-out -net machine-ok => estop-latch.0.ok-in -net estop estop-latch.0.ok-out => iocontrol.0.emc-enable-in -net estop-reset iocontrol.0.user-request-enable => estop-latch.0.reset +net machine-ok => estop_latch.0.ok-in +net estop estop_latch.0.ok-out => iocontrol.0.emc-enable-in +net estop-reset iocontrol.0.user-request-enable => estop_latch.0.reset loadusr -W hal_manualtoolchange net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change diff --git a/configs/by_machine/tormach/pcnc-770.hal b/configs/by_machine/tormach/pcnc-770.hal index 260616dc214..09c31c9ba94 100644 --- a/configs/by_machine/tormach/pcnc-770.hal +++ b/configs/by_machine/tormach/pcnc-770.hal @@ -1,17 +1,19 @@ loadrt trivkins -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins loadrt probe_parport loadrt hal_parport cfg=0x378 setp parport.0.reset-time 4000 loadrt stepgen step_type=0,0,0,0,0 ctrl_type=p,p,p,p,v loadrt estop_latch -net charge-pump <= estop-latch.0.watchdog +net charge-pump <= estop_latch.0.watchdog addf parport.0.read base-thread addf stepgen.make-pulses base-thread -addf estop-latch.0 base-thread +addf estop_latch.0 base-thread addf parport.0.write base-thread addf parport.0.reset base-thread @@ -146,11 +148,11 @@ net adir <= stepgen.3.dir net aenable axis.3.amp-enable-out => stepgen.3.enable net home-a => axis.3.home-sw-in -#linksp xenable estop-latch.0.ok-out +#linksp xenable estop_latch.0.ok-out net estop-out <= iocontrol.0.user-enable-out -net machine-ok => estop-latch.0.ok-in -net estop estop-latch.0.ok-out => iocontrol.0.emc-enable-in -net estop-reset iocontrol.0.user-request-enable => estop-latch.0.reset +net machine-ok => estop_latch.0.ok-in +net estop estop_latch.0.ok-out => iocontrol.0.emc-enable-in +net estop-reset iocontrol.0.user-request-enable => estop_latch.0.reset loadusr -W hal_manualtoolchange net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change diff --git a/configs/by_machine/tormach/pcnc-770.ini b/configs/by_machine/tormach/pcnc-770.ini index 875a97b2c6d..0cdc30c9fe0 100644 --- a/configs/by_machine/tormach/pcnc-770.ini +++ b/configs/by_machine/tormach/pcnc-770.ini @@ -8,7 +8,7 @@ DISPLAY = axis POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 PROGRAM_PREFIX = ../../nc_files INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in diff --git a/configs/common/core_servo.hal b/configs/common/core_servo.hal index 476cf68db3b..6067e2b1a65 100644 --- a/configs/common/core_servo.hal +++ b/configs/common/core_servo.hal @@ -4,9 +4,11 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # PID module, for three PID loops -loadrt pid num_chan=3 +loadrt pid count=3 # hook functions to realtime thread addf motion-command-handler servo-thread diff --git a/configs/common/core_sim.hal b/configs/common/core_sim.hal index eecf66ab8d3..f1a57dcbccf 100644 --- a/configs/common/core_sim.hal +++ b/configs/common/core_sim.hal @@ -3,8 +3,10 @@ # first load all the RT modules that will be needed # kinematics loadrt trivkins +# trajectory planner +loadrt tp # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES kins=trivkins tp=tp # load 6 differentiators (for velocity and accel signals loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv # load additional blocks diff --git a/configs/common/core_sim9.hal b/configs/common/core_sim9.hal index 8d83381ce64..bb6a28417e8 100644 --- a/configs/common/core_sim9.hal +++ b/configs/common/core_sim9.hal @@ -4,7 +4,9 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # load 6 differentiators (for velocity and accel signals loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv # load additional blocks diff --git a/configs/common/core_stepper.hal b/configs/common/core_stepper.hal index 08ec7378d07..33f0ece000e 100644 --- a/configs/common/core_stepper.hal +++ b/configs/common/core_stepper.hal @@ -4,7 +4,9 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # stepper module, three step generators, all three using step/dir loadrt stepgen step_type=0,0,0 diff --git a/configs/common/shuttlexpress.hal b/configs/common/shuttlexpress.hal index e61bf4249fb..fa97122d507 100644 --- a/configs/common/shuttlexpress.hal +++ b/configs/common/shuttlexpress.hal @@ -11,9 +11,9 @@ loadusr -W shuttlexpress loadrt abs_s32 names=abs_s32.sxp loadrt select8 names=select8.sxp-jog-speed,select8.sxp-jog-increment -loadrt mux2 names=mux2.sxp-x-analog,mux2.sxp-y-analog,mux2.sxp-z-analog +loadrt mux2 names=mux2.sxp-x-analog,mux2.sxp-y-analog,mux2.sxp-z-analog,mux2.sxp-a-analog loadrt updown names=updown.sxp -loadrt and2 names=and2.sxp-x-pos,and2.sxp-x-neg,and2.sxp-y-pos,and2.sxp-y-neg,and2.sxp-z-pos,and2.sxp-z-neg +loadrt and2 names=and2.sxp-x-pos,and2.sxp-x-neg,and2.sxp-y-pos,and2.sxp-y-neg,and2.sxp-z-pos,and2.sxp-z-neg,and2.sxp-a-pos,and2.sxp-a-neg loadrt tristate_float names=tristate-float.sxp0,tristate-float.sxp1,tristate-float.sxp2,tristate-float.sxp3,tristate-float.sxp4,tristate-float.sxp5,tristate-float.sxp6,tristate-float.sxp7,tristate-float.sxp-jog-increment-0,tristate-float.sxp-jog-increment-1,tristate-float.sxp-jog-increment-2,tristate-float.sxp-jog-increment-3 loadrt ilowpass names=ilowpass.sxp @@ -114,6 +114,8 @@ addf and2.sxp-y-pos servo-thread addf and2.sxp-y-neg servo-thread addf and2.sxp-z-pos servo-thread addf and2.sxp-z-neg servo-thread +addf and2.sxp-a-pos servo-thread +addf and2.sxp-a-neg servo-thread net sxp.x-button => and2.sxp-x-pos.in0 net sxp.spring-wheel-is-positive => and2.sxp-x-pos.in1 @@ -139,7 +141,13 @@ net sxp.z-button => and2.sxp-z-neg.in0 net sxp.spring-wheel-is-negative => and2.sxp-z-neg.in1 net sxp.jog-z-neg and2.sxp-z-neg.out => halui.jog.2.minus +net sxp.a-button => and2.sxp-a-pos.in0 +net sxp.spring-wheel-is-positive => and2.sxp-a-pos.in1 +net sxp.jog-a-pos and2.sxp-a-pos.out => halui.jog.3.plus +net sxp.a-button => and2.sxp-a-neg.in0 +net sxp.spring-wheel-is-negative => and2.sxp-a-neg.in1 +net sxp.jog-a-neg and2.sxp-a-neg.out => halui.jog.3.minus # @@ -155,10 +163,10 @@ addf tristate-float.sxp-jog-increment-3 servo-thread # for each click of the jog-wheel there's 1000 simulated counts coming out # of the ilowpass below, so these numbers are 1000x smaller than the jog # increment size they encode -setp tristate-float.sxp-jog-increment-0.in 0.0000001 -setp tristate-float.sxp-jog-increment-1.in 0.0000005 -setp tristate-float.sxp-jog-increment-2.in 0.000001 -setp tristate-float.sxp-jog-increment-3.in 0.000010 +setp tristate-float.sxp-jog-increment-0.in 0.000001 +setp tristate-float.sxp-jog-increment-1.in 0.000005 +setp tristate-float.sxp-jog-increment-2.in 0.00001 +setp tristate-float.sxp-jog-increment-3.in 0.0001 setp updown.sxp.wrap 1 setp updown.sxp.min 0 @@ -194,6 +202,7 @@ net sxp.jog-increment <= tristate-float.sxp-jog-increment-3.out net sxp.jog-increment => axis.0.jog-scale net sxp.jog-increment => axis.1.jog-scale net sxp.jog-increment => axis.2.jog-scale +net sxp.jog-increment => axis.3.jog-scale @@ -207,6 +216,7 @@ net sxp.jog-increment => axis.2.jog-scale net sxp.x-button axis.0.jog-enable net sxp.y-button axis.1.jog-enable net sxp.z-button axis.2.jog-enable +net sxp.a-button axis.3.jog-enable # The ShuttleXpress jog wheel has 10 clicks per revolution # @@ -226,4 +236,5 @@ net sxp.counts-smoothed <= ilowpass.sxp.out net sxp.counts-smoothed => axis.0.jog-counts net sxp.counts-smoothed => axis.1.jog-counts net sxp.counts-smoothed => axis.2.jog-counts +net sxp.counts-smoothed => axis.3.jog-counts diff --git a/configs/hm2-stepper/5i25.ini b/configs/hm2-stepper/5i25.ini new file mode 100644 index 00000000000..8ab5916713c --- /dev/null +++ b/configs/hm2-stepper/5i25.ini @@ -0,0 +1,260 @@ + +#The hm2 sample stepper config should be pretty close. Copy an existing say +#5I20.ini file to 5i25-probx.ini or some such, replace the BOARD with 5I25, +#delete the firmware string on the loadrt hm2 line and you should be pretty +#close. The hm2-stepper file may need some changes as well for any GPIO may not +#make sense with the 5I25 config + +[HOSTMOT2] +DRIVER=hm2_pci +BOARD=5i25 +#CONFIG="firmware=hm2/5i20/SVST8_4.BIT num_encoders=0 num_pwmgens=0 num_stepgens=3" + + + + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = HM2-Stepper + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +DISPLAY = axis + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.0500 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = hm2-stepper.var + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = hm2-stepper-5i25.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + + + + +[TRAJ] + +AXES = 3 +COORDINATES = X Y Z +#HOME = 0 0 0 +LINEAR_UNITS = inch +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 + + + + +[AXIS_0] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# + + +TYPE = LINEAR +MAX_VELOCITY = 10 +MAX_ACCELERATION = 20 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 12 +STEPGEN_MAX_ACC = 24 + +BACKLASH = 0.000 + +# scale is 200 steps/rev * 5 revs/inch +SCALE = 1000 + +MIN_LIMIT = -10.0 +MAX_LIMIT = 10.0 + +FERROR = 0.050 +MIN_FERROR = 0.005 + +#HOME = 0.000 +#HOME_OFFSET = 0.10 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 40000 +STEPSPACE = 40000 + + + + +[AXIS_1] + +TYPE = LINEAR +MAX_VELOCITY = 10 +MAX_ACCELERATION = 20 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 12 +STEPGEN_MAX_ACC = 24 + +BACKLASH = 0.000 + +SCALE = 1000 + +MIN_LIMIT = -10.0 +MAX_LIMIT = 10.0 + +FERROR = 0.050 +MIN_FERROR = 0.005 + +#HOME = 0.000 +#HOME_OFFSET = 0.10 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 40000 +STEPSPACE = 40000 + + + + +[AXIS_2] + +TYPE = LINEAR +MAX_VELOCITY = 10 +MAX_ACCELERATION = 20 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 12 +STEPGEN_MAX_ACC = 24 + +BACKLASH = 0.000 + +SCALE = 1000 + +MIN_LIMIT = -10.0 +MAX_LIMIT = 10.0 + +FERROR = 0.050 +MIN_FERROR = 0.005 + +#HOME = 0.000 +#HOME_OFFSET = 0.10 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 40000 +STEPSPACE = 40000 + + + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl + diff --git a/configs/hm2-stepper/hm2-stepper-5i25.hal b/configs/hm2-stepper/hm2-stepper-5i25.hal new file mode 100644 index 00000000000..db33cf368e9 --- /dev/null +++ b/configs/hm2-stepper/hm2-stepper-5i25.hal @@ -0,0 +1,204 @@ +# ####################################### +# +# HAL file for HostMot2 with 3 steppers +# +# Derived from Ted Hyde's original hm2-servo config +# +# Based up work and discussion with Seb & Peter & Jeff +# GNU license references - insert here. www.machinekit.io +# +# +# ######################################## +# Firmware files are in /lib/firmware/hm2/7i43/ +# Must symlink the hostmot2 firmware directory of sanbox to +# /lib/firmware before running EMC2... +# sudo ln -s $HOME/emc2-sandbox/src/hal/drivers/mesa-hostmot2/firmware /lib/firmware/hm2 +# +# See also: +# +# and http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?HostMot2 +# +# ##################################################################### + + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +loadrt trivkins + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + +# only the 7i43 needs this, but it doesnt hurt the others +loadrt probe_parport + +# hostmot2 driver +loadrt hostmot2 + +# load low-level driver +loadrt [HOSTMOT2](DRIVER) +#config=[HOSTMOT2](CONFIG) + + +# ################################################ +# THREADS +# ################################################ + +addf hm2_[HOSTMOT2](BOARD).0.read servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +# revel in the free time here from not having to run PID +addf hm2_[HOSTMOT2](BOARD).0.write servo-thread +addf hm2_[HOSTMOT2](BOARD).0.pet_watchdog servo-thread + + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + + +# ################ +# X [0] Axis +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-cmd + +net motor.00.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [AXIS_0]STEPLEN +setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [AXIS_0]SCALE + +setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0 + + +# ################ +# Y [1] Axis +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-cmd + +net motor.01.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.steplen [AXIS_1]STEPLEN +setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-scale [AXIS_1]SCALE + +setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.step_type 0 + + +# ################ +# Z [2] Axis +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.02.enable + + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-cmd + +net motor.02.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.steplen [AXIS_2]STEPLEN +setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-scale [AXIS_2]SCALE + +setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.step_type 0 + + + + +# +# The Mesa AnyIO output pins can be in open-drain mode (drive low, float +# high) or push/pull mode (drive low, drive high). +# +# When a logical output is 1 in open-drain mode, the FPGA lets the pin +# float and it gets pulled high to +5V via a 10K resistor. +# +# When a logical output is 1 in push/pull mode, the FPGA pushes the pin +# high but only to +3.3V. This is problematic on some kinds of inputs. +# + +#setp hm2_[HOSTMOT2](BOARD).0.gpio.048.is_opendrain 1 +#setp hm2_[HOSTMOT2](BOARD).0.gpio.049.is_opendrain 1 + +#setp hm2_[HOSTMOT2](BOARD).0.gpio.054.is_opendrain 1 +#setp hm2_[HOSTMOT2](BOARD).0.gpio.055.is_opendrain 1 + +#setp hm2_[HOSTMOT2](BOARD).0.gpio.060.is_opendrain 1 +#setp hm2_[HOSTMOT2](BOARD).0.gpio.061.is_opendrain 1 + + + + +# ################################################## +# Standard I/O Block - EStop, Etc +# ################################################## + +# create a signal for the estop loopback +net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + diff --git a/configs/maintainer.txt b/configs/maintainer.txt index 30ee5ac05f2..e86983ad693 100644 --- a/configs/maintainer.txt +++ b/configs/maintainer.txt @@ -1,7 +1,7 @@ maintainer.txt: General notes for the configs directory, root/configs. -'root' refers to the toplevel of the linuxcnc git tree. +'root' refers to the toplevel of the machinekit git tree. ------------------------------------------------------- @@ -9,12 +9,12 @@ The configs dir contains a hierarchy of configurations, each with one or more ini files, that are intended to: 1) run as-is on a RIP (run-in-place) build - 2) run when copied to a user ~/linuxcnc directory + 2) run when copied to a user ~/machinekit directory by the configuration picker (pickconfig.tcl) Additionally, demonstration scripts identified by a file -extension .demo, can run standalone to show linuxcnc-related -functionality without requiring start-up of linuxcnc. +extension .demo, can run standalone to show machinekit-related +functionality without requiring start-up of machinekit. A configs directory should not contain both .ini and .demo files. @@ -33,25 +33,25 @@ a .demo file is usable. ------------------------------------------------------- The configuraton picker (pickconfig.tcl) walks through -existing _user_ configurations in ~linuxcnc/configs and the +existing _user_ configurations in ~machinekit/configs and the distribution's root/configs directory. It presents both existing user configurations and sample configurations. When a sample configuration is selected the configuration picker: - 1) creates a directory in ~/linuxcnc/configs for the + 1) creates a directory in ~/machinekit/configs for the selected item and copies all relevant files and directories to the newly created directory. When a name clash occurs, the picker appends a number to the directory name to make it distinct. - 2) creates a directory ~/linuxcnc/nc_files (if it + 2) creates a directory ~/machinekit/nc_files (if it does not exist). It creates links in this directory to the system locations for examples and libraries (examples, ngcgui_lib, gladevcp_lib) 3) edits all ini files being copied so that - [DISPLAY]PROGRAM_PREFIX = ~/linuxcnc/nc_files. + [DISPLAY]PROGRAM_PREFIX = ~/machinekit/nc_files. A similar process occurs for demonstration (.demo) files when directories for .demo files are copied (only when no file @@ -109,8 +109,8 @@ Example: These conventions work because: 1) Copied user configurations - have configs located in --------- ~/linuxcnc/configs/ - and nc_files located as --------- ~/linuxcnc/nc_files/ + have configs located in --------- ~/machinekit/configs/ + and nc_files located as --------- ~/machinekit/nc_files/ So if ini files always refer to root/nc_files as ../../nc_files diff --git a/configs/pru-examples/README.stepgen b/configs/pru-examples/README.stepgen new file mode 100644 index 00000000000..56c60c34f7a --- /dev/null +++ b/configs/pru-examples/README.stepgen @@ -0,0 +1,90 @@ +stepgen.p is currently a very rough implementation of software step generation +in PRU code. This version is intended to be safe and generic rather than fast. + +In addition to step/dir generation, it is intended that other low-level +features will be implmented with this code. Currently usable functions include +step/dir generation, a fairly traditional PWM, and a single-stage 14-bit +delta-sigma modulator. + +In general, each functional module is controlled by 8 32-bit values of state +data. Four of these are typically set by the driver to control operation of +the high-speed task (ie: step rate/direction, PWM duty cycle/perioc), with the +remaining four values used for internal state (ie: step accumulator). This +usage is purly a convention at this point, and may be changed as required by +any particular module. + +Currently, the code is not quite ready to launch Machinekit and hook to a +machine, but it is possible to perform interesting tests. + +General usage guidelines: + +* Build Machinekit for a BeagleBone, as usual. + +* cd to the configs/pru-examples (where you found this file) and run make to + build the PRU code + +* Setup the BeagleBone I/O multiplexing and direction so the required PRU + outputs are directly driven to the I/O pins. There is a setup.sh batch + file in the pru-examples directory to assist with this. + +* Launch HAL: + + halcmd -f stepgen.hal & + +* Click the top file bar that says "(None)" and load the stepgen.dgb file + +* Click the "pru" button to select PRU 1 + +* Make sure the "stepping" button is not selected + +* Click the "reset" button to reset the PRU + +* Click the "continue" button to start the PRU running + +Optional: +While the PRU is running, you can: + Press "snap" button to grab a snapshot of the current PRU state + Press "continuous" button to continuously grab snapshots + Press "stepping" button to halt the PRU + Press "continue" button with "stepping" pressed to single-step + +* Send a speed command to begin generating step pulses + + halcmd setp hal_pru.speed 0x00500000 + halcmd setp hal_pru.speed 0xffb00000 + + WARNING: + The top 5 bits of the stepgen speed MUST BE THE SAME! + In other words, the rate is currently a 27-bit sign extended value + +* Watch the Step and Direction outputs + +* Monitor the busy bit to see how much free time is left given the current + period setting + +* By default, the outputs will be: + + Description PRU Pin Chip Pin Name BeagleBone Pin + ============================================================ + Busy PRU1.r30.t0 lcd_data0 P8.45 GPIO2_6 + Step PRU1.r30.t2 lcd_data2 P8.43 GPIO2_8 + Direction PRU1.r30.t3 lcd_data3 P8.44 GPIO2_9 + + Other PRU1 outputs will have various PWM outputs, edit hal_pru.c to change + + See the end of the stepgen.p file for a handy (but not yet complete) table + of PRU I/O pins and how they map to the BeagleBone I/O connectors + +Advanced users: +Play with the PRU data memory initialization in hal_pru.c: + setup_pru() + update_pru() + +Refer to the *_state structures in stepgen.p for details + +* Change the output pins used by the step/dir module + +* Change the operating mode to PWM or Delta-Sigma + +* Update hal_pru.c to pass more parameters to the PRU + diff --git a/configs/pru-examples/debugger-example.hal b/configs/pru-examples/debugger-example.hal new file mode 100644 index 00000000000..7a235cc00c7 --- /dev/null +++ b/configs/pru-examples/debugger-example.hal @@ -0,0 +1,100 @@ + +# this loads the PRU binary 'pruexample.bin' into PRU 0 +# and leaves the PRU disabled: +# see the Makefile how pruexample.bin is created + +loadrt hal_pru prucode="pruexample.bin" disabled=1 pru=0 + +# this is the PRU debugger. It connects to PRU shared memory +# can inspect registers and PRU status (processor status, program counter) +# exported pins: +# +# hal_prudebug.reset # u32,in select PRU (0,1) +# hal_prudebug.continuous # bit,in, sample PRU every thread period +# hal_prudebug.snap # bit,in, sample PRU on positive edge +# hal_prudebug.halt # bit,in, stop the PRU at current instruction +# hal_prudebug.step # bit,in, set PRU stepping mode +# hal_prudebug.continue # bit,in, reenable PRU after halt; will step 1 instruction if stepping +# hal_prudebug.reset # bit,in reset PRU +# +# hal_prudebug.CONTROL # u32,out PRU status register +# hal_prudebug.PC # u32,out PRU program counter +# hal_prudebug.R0-R31 # u32,out PRU register values + +# unrelated to debugging, see EXPLORE_COUNTERS #define in haö_prudebug.c +# hal_prudebug.IEP_COUNT # u32,out 200Mhz TSC counter in IEP (Industrial Ethernet) module + +loadrt hal_prudebug + +loadrt threads period1=20000000 # 20msec +addf hal_pru.update thread1 +addf hal_prudebug.update thread1 +# + + +# sample PRU status every thread period +#setp hal_prudebug.continuous 1 +#show pin hal_prudebug.ECAP_COUNT + +# show last sample of program counter and registers +#show pin hal_prudebug.PC +#show pin hal_prudebug.R + +loadusr -Wn ui gladevcp -u ui.py -c ui -U filename="pruexample.dbg" prudebug.ui + +net pru ui.pru hal_prudebug.pru +net continuous ui.continuous hal_prudebug.continuous +net snap ui.snap hal_prudebug.snap +net halt ui.halt hal_prudebug.halt + +net stepping ui.stepping hal_prudebug.step +net continue ui.continue hal_prudebug.continue +net reset ui.reset hal_prudebug.reset + +# hal_prudebug.CONTROL # u32,out PRU status register +# hal_prudebug.PC # u32,out PRU program counter +# hal_prudebug.R0-R31 # u32,out PRU register values + +net control hal_prudebug.CONTROL ui.CONTROL +net pc hal_prudebug.PC ui.PC +net r0 hal_prudebug.R0 ui.R0 +net r1 hal_prudebug.R1 ui.R1 +net r2 hal_prudebug.R2 ui.R2 +net r3 hal_prudebug.R3 ui.R3 +net r4 hal_prudebug.R4 ui.R4 +net r5 hal_prudebug.R5 ui.R5 +net r6 hal_prudebug.R6 ui.R6 +net r7 hal_prudebug.R7 ui.R7 +net r8 hal_prudebug.R8 ui.R8 +net r9 hal_prudebug.R9 ui.R9 +net r10 hal_prudebug.R10 ui.R10 +net r11 hal_prudebug.R11 ui.R11 +net r12 hal_prudebug.R12 ui.R12 +net r13 hal_prudebug.R13 ui.R13 +net r14 hal_prudebug.R14 ui.R14 +net r15 hal_prudebug.R15 ui.R15 +net r16 hal_prudebug.R16 ui.R16 +net r17 hal_prudebug.R17 ui.R17 +net r18 hal_prudebug.R18 ui.R18 +net r19 hal_prudebug.R19 ui.R19 +net r20 hal_prudebug.R20 ui.R20 +net r21 hal_prudebug.R21 ui.R21 +net r22 hal_prudebug.R22 ui.R22 +net r23 hal_prudebug.R23 ui.R23 +net r24 hal_prudebug.R24 ui.R24 +net r25 hal_prudebug.R25 ui.R25 +net r26 hal_prudebug.R26 ui.R26 +net r27 hal_prudebug.R27 ui.R27 +net r28 hal_prudebug.R28 ui.R28 +net r29 hal_prudebug.R29 ui.R29 +net r30 hal_prudebug.R30 ui.R30 +net r31 hal_prudebug.R31 ui.R31 +setp ui.register_table 1 + + +start + + +waitusr ui +stop +unloadrt all diff --git a/configs/pru-examples/pru-stepper.hal b/configs/pru-examples/pru-stepper.hal new file mode 100644 index 00000000000..4afcd10459a --- /dev/null +++ b/configs/pru-examples/pru-stepper.hal @@ -0,0 +1,202 @@ +# ####################################### +# +# HAL file for HostMot2 with 3 steppers +# +# Derived from Ted Hyde's original hm2-servo config +# +# Based up work and discussion with Seb & Peter & Jeff +# GNU license references - insert here. www.machinekit.io +# +# +# ######################################## +# Firmware files are in /lib/firmware/hm2/7i43/ +# Must symlink the hostmot2 firmware directory of sanbox to +# /lib/firmware before running EMC2... +# sudo ln -s $HOME/emc2-sandbox/src/hal/drivers/mesa-hostmot2/firmware /lib/firmware/hm2 +# +# See also: +# +# and http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?HostMot2 +# +# ##################################################################### + + +# ################################### +# Core EMC/HAL Loads +# ################################### + +# kinematics +loadrt trivkins + +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + +# load low-level driver +loadrt [PRUCONF](DRIVER) [PRUCONF](CONFIG) + + +# ################################################ +# THREADS +# ################################################ + +addf [PRUCONF](DRIVER).capture-position servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +# revel in the free time here from not having to run PID +addf [PRUCONF](DRIVER).update servo-thread + + +# ###################################################### +# Axis-of-motion Specific Configs (not the GUI) +# ###################################################### + + +# ################ +# X [0] Axis +# ################ + +# axis enable chain +newsig emcmot.00.enable bit +sets emcmot.00.enable FALSE + +net emcmot.00.enable <= axis.0.amp-enable-out +net emcmot.00.enable => [PRUCONF](DRIVER).stepgen.00.enable + + +# position command and feedback +net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd +net emcmot.00.pos-cmd => [PRUCONF](DRIVER).stepgen.00.position-cmd + +net motor.00.pos-fb <= [PRUCONF](DRIVER).stepgen.00.position-fb +net motor.00.pos-fb => axis.0.motor-pos-fb + + +# timing parameters +setp [PRUCONF](DRIVER).stepgen.00.dirsetup [AXIS_0]DIRSETUP +setp [PRUCONF](DRIVER).stepgen.00.dirhold [AXIS_0]DIRHOLD + +setp [PRUCONF](DRIVER).stepgen.00.steplen [AXIS_0]STEPLEN +setp [PRUCONF](DRIVER).stepgen.00.stepspace [AXIS_0]STEPSPACE + +setp [PRUCONF](DRIVER).stepgen.00.position-scale [AXIS_0]SCALE + +setp [PRUCONF](DRIVER).stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL +setp [PRUCONF](DRIVER).stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC + +#setp [PRUCONF](DRIVER).stepgen.00.step_type 0 +setp [PRUCONF](DRIVER).stepgen.00.steppin 0xA2 +setp [PRUCONF](DRIVER).stepgen.00.dirpin 0xA3 + + +# ################ +# Y [1] Axis +# ################ + +# axis enable chain +newsig emcmot.01.enable bit +sets emcmot.01.enable FALSE + +net emcmot.01.enable <= axis.1.amp-enable-out +net emcmot.01.enable => [PRUCONF](DRIVER).stepgen.01.enable + + +# position command and feedback +net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd +net emcmot.01.pos-cmd => [PRUCONF](DRIVER).stepgen.01.position-cmd + +net motor.01.pos-fb <= [PRUCONF](DRIVER).stepgen.01.position-fb +net motor.01.pos-fb => axis.1.motor-pos-fb + + +# timing parameters +setp [PRUCONF](DRIVER).stepgen.01.dirsetup [AXIS_1]DIRSETUP +setp [PRUCONF](DRIVER).stepgen.01.dirhold [AXIS_1]DIRHOLD + +setp [PRUCONF](DRIVER).stepgen.01.steplen [AXIS_1]STEPLEN +setp [PRUCONF](DRIVER).stepgen.01.stepspace [AXIS_1]STEPSPACE + +setp [PRUCONF](DRIVER).stepgen.01.position-scale [AXIS_1]SCALE + +setp [PRUCONF](DRIVER).stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL +setp [PRUCONF](DRIVER).stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC + +#setp [PRUCONF](DRIVER).stepgen.01.step_type 0 +setp [PRUCONF](DRIVER).stepgen.01.steppin 0xA4 +setp [PRUCONF](DRIVER).stepgen.01.dirpin 0xA5 + + +# ################ +# Z [2] Axis +# ################ + +# axis enable chain +newsig emcmot.02.enable bit +sets emcmot.02.enable FALSE + +net emcmot.02.enable <= axis.2.amp-enable-out +net emcmot.02.enable => [PRUCONF](DRIVER).stepgen.02.enable + + +# position command and feedback +net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd +net emcmot.02.pos-cmd => [PRUCONF](DRIVER).stepgen.02.position-cmd + +net motor.02.pos-fb <= [PRUCONF](DRIVER).stepgen.02.position-fb +net motor.02.pos-fb => axis.2.motor-pos-fb + + +# timing parameters +setp [PRUCONF](DRIVER).stepgen.02.dirsetup [AXIS_2]DIRSETUP +setp [PRUCONF](DRIVER).stepgen.02.dirhold [AXIS_2]DIRHOLD + +setp [PRUCONF](DRIVER).stepgen.02.steplen [AXIS_2]STEPLEN +setp [PRUCONF](DRIVER).stepgen.02.stepspace [AXIS_2]STEPSPACE + +setp [PRUCONF](DRIVER).stepgen.02.position-scale [AXIS_2]SCALE + +setp [PRUCONF](DRIVER).stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL +setp [PRUCONF](DRIVER).stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC + +#setp [PRUCONF](DRIVER).stepgen.02.step_type 0 +setp [PRUCONF](DRIVER).stepgen.02.steppin 0xA6 +setp [PRUCONF](DRIVER).stepgen.02.dirpin 0xA7 + + + + +# +# The Mesa AnyIO output pins can be in open-drain mode (drive low, float +# high) or push/pull mode (drive low, drive high). +# +# When a logical output is 1 in open-drain mode, the FPGA lets the pin +# float and it gets pulled high to +5V via a 10K resistor. +# +# When a logical output is 1 in push/pull mode, the FPGA pushes the pin +# high but only to +3.3V. This is problematic on some kinds of inputs. +# + +#setp [PRUCONF](DRIVER).gpio.048.is_opendrain 1 +#setp [PRUCONF](DRIVER).gpio.049.is_opendrain 1 + +#setp [PRUCONF](DRIVER).gpio.054.is_opendrain 1 +#setp [PRUCONF](DRIVER).gpio.055.is_opendrain 1 + +#setp [PRUCONF](DRIVER).gpio.060.is_opendrain 1 +#setp [PRUCONF](DRIVER).gpio.061.is_opendrain 1 + + + + +# ################################################## +# Standard I/O Block - EStop, Etc +# ################################################## + +# create a signal for the estop loopback +net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed + diff --git a/configs/pru-examples/pru-stepper.ini b/configs/pru-examples/pru-stepper.ini new file mode 100755 index 00000000000..418c0e179a1 --- /dev/null +++ b/configs/pru-examples/pru-stepper.ini @@ -0,0 +1,253 @@ + +[PRUCONF] +DRIVER=hal_pru_generic +CONFIG=prucode=/home/maker/machinekit-dev.arm/configs/pru-examples/pru_generic.bin pru=1 num_stepgens=3 num_pwmgens=1 + + + + +[EMC] + +# Name of machine, for use with display, etc. +MACHINE = PRU-Stepper + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +#DEBUG = 0x00000007 +DEBUG = 0 + + + + +[DISPLAY] + +# Name of display program, e.g., tkemc +#DISPLAY = tkemc +DISPLAY = axis + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.0500 + +# Path to help file +HELP_FILE = tklinucnc.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 + +# Prefix to be used +PROGRAM_PREFIX = ../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + + +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + + + + +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = pru-stepper.var + + + + +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nanoseconds +SERVO_PERIOD = 1000000 + + + + +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear + +HALFILE = pru-stepper.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + + + + +[TRAJ] + +AXES = 3 +COORDINATES = X Y Z +#HOME = 0 0 0 +LINEAR_UNITS = inch +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 + + + + +[AXIS_0] + +# +# Step timing is 40 us steplen + 40 us stepspace +# That gives 80 us step period = 12.5 KHz step freq +# +# Bah, even software stepping can handle that, hm2 doesnt buy you much with +# such slow steppers. +# +# Scale is 200 steps/rev * 5 revs/inch = 1000 steps/inch +# +# This gives a maxvel of 12.5/1 = 12.5 ips +# + + +TYPE = LINEAR +MAX_VELOCITY = 10 +MAX_ACCELERATION = 20 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 12 +STEPGEN_MAX_ACC = 24 + +BACKLASH = 0.000 + +# scale is 200 steps/rev * 5 revs/inch +SCALE = 1000 + +MIN_LIMIT = -10.0 +MAX_LIMIT = 10.0 + +FERROR = 0.50 +MIN_FERROR = 0.05 + +#HOME = 0.000 +#HOME_OFFSET = 0.10 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 40000 +STEPSPACE = 40000 + + + + +[AXIS_1] + +TYPE = LINEAR +MAX_VELOCITY = 10 +MAX_ACCELERATION = 20 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 12 +STEPGEN_MAX_ACC = 24 + +BACKLASH = 0.000 + +SCALE = 1000 + +MIN_LIMIT = -10.0 +MAX_LIMIT = 10.0 + +FERROR = 0.50 +MIN_FERROR = 0.05 + +#HOME = 0.000 +#HOME_OFFSET = 0.10 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 40000 +STEPSPACE = 40000 + + + + +[AXIS_2] + +TYPE = LINEAR +MAX_VELOCITY = 10 +MAX_ACCELERATION = 20 +# Set Stepgen max 20% higher than the axis +STEPGEN_MAX_VEL = 12 +STEPGEN_MAX_ACC = 24 + +BACKLASH = 0.000 + +SCALE = 1000 + +MIN_LIMIT = -10.0 +MAX_LIMIT = 10.0 + +FERROR = 0.50 +MIN_FERROR = 0.05 + +#HOME = 0.000 +#HOME_OFFSET = 0.10 +#HOME_SEARCH_VEL = 0.10 +#HOME_LATCH_VEL = -0.01 +#HOME_USE_INDEX = YES +#HOME_IGNORE_LIMITS = YES + +# these are in nanoseconds +DIRSETUP = 200 +DIRHOLD = 200 +STEPLEN = 40000 +STEPSPACE = 40000 + + + + +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl + diff --git a/configs/pru-examples/setup.sh b/configs/pru-examples/setup.sh new file mode 100755 index 00000000000..ea49e381efa --- /dev/null +++ b/configs/pru-examples/setup.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +if [ "$UID" -ne "0" ] ; then + echo "Script must be run as root!" + exit 1 +fi + +# Check to see if omap_mux debug directory is available +if [ ! -e /sys/kernel/debug/omap_mux/ ] ; then + echo "Trying to mount debugfs" + mount -t debugfs debugfs /sys/kernel/debug || { + echo "Mounting debugfs failed!" + exit 1 + } +fi + +while read REG VALUE PIN JUNK ; do + case "$REG" in + ""|\#*) + continue ;; + *) + echo "$VALUE" > "/sys/kernel/debug/omap_mux/$REG" + ;; + esac + +done <<- "EOF" +# mcasp0_aclkx 5 pru0.r30.0 +# mcasp0_fsx 5 pru0.r30.1 +# mcasp0_axr0 5 pru0.r30.2 +# mcasp0_ahclkr 5 pru0.r30.3 +# mcasp0_aclkr 5 pru0.r30.4 +# mcasp0_fsr 5 pru0.r30.5 +# mcasp0_axr1 5 pru0.r30.6 +# mcasp0_ahclkx 5 pru0.r30.7 +# mmc0_dat3 5 pru0.r30.8 +# mmc0_dat2 5 pru0.r30.9 +# mmc0_dat1 5 pru0.r30.10 +# mmc0_dat0 5 pru0.r30.11 +# mmc0_clk 5 pru0.r30.12 +# mmc0_cmd 5 pru0.r30.13 + gpmc_ad12 6 pru0.r30.14 + gpmc_ad13 6 pru0.r30.15 + + lcd_data0 5 pru1.r30.0 + lcd_data1 5 pru1.r30.1 + lcd_data2 5 pru1.r30.2 + lcd_data3 5 pru1.r30.3 + lcd_data4 5 pru1.r30.4 + lcd_data5 5 pru1.r30.5 + lcd_data6 5 pru1.r30.6 + lcd_data7 5 pru1.r30.7 + lcd_vsync 5 pru1.r30.8 + lcd_hsync 5 pru1.r30.9 + lcd_pclk 5 pru1.r30.10 + lcd_ac_bias_en 5 pru1.r30.11 + gpmc_csn1 5 pru1.r30.12 + gpmc_csn2 5 pru1.r30.13 +# uart0_rxd 5 pru1.r30.14 +# uart0_txd 5 pru1.r30.15 + + gpmc_ad6 7 gpio1_6 +# gpmc_ad2 7 gpio1_2 + +EOF diff --git a/configs/pru-examples/stepgen.hal b/configs/pru-examples/stepgen.hal new file mode 100644 index 00000000000..bc28ce2dd02 --- /dev/null +++ b/configs/pru-examples/stepgen.hal @@ -0,0 +1,175 @@ + +# this loads the PRU binary 'pruexample.bin' into PRU 0 +# and leaves the PRU disabled: +# see the Makefile how pruexample.bin is created + +# PRU Channel modes: +# (0|n|N) None (channel disabled) +# (1|s|S) Step/Dir mode +# (2|u|U) Up/Down mode (not yet implemented) +# (3|d|D) Delta Sigma: 2 channel 14-bit delta-sigma modulator +# (4|p|P) PWM: 2 channel PWM generator +# (5|g|G) GPIO: (not yet implemented) +# (6|x|X) RESERVED6; +# (7|y|Y) RESERVED7; + +#loadrt hal_pru_generic chan_mode=s,s,s,s,n,p,d prucode="pru_main.bin" disabled=1 pru=1 + +loadrt hal_pru_generic prucode=pru_generic.bin pru=1 disabled=1 num_stepgens=1 num_pwmgens=3 + +# this is the PRU debugger. It connects to PRU shared memory +# can inspect registers and PRU status (processor status, program counter) +# exported pins: +# +# hal_prudebug.reset # u32,in select PRU (0,1) +# hal_prudebug.continuous # bit,in, sample PRU every thread period +# hal_prudebug.snap # bit,in, sample PRU on positive edge +# hal_prudebug.halt # bit,in, stop the PRU at current instruction +# hal_prudebug.step # bit,in, set PRU stepping mode +# hal_prudebug.continue # bit,in, reenable PRU after halt; will step 1 instruction if stepping +# hal_prudebug.reset # bit,in reset PRU +# +# hal_prudebug.CONTROL # u32,out PRU status register +# hal_prudebug.PC # u32,out PRU program counter +# hal_prudebug.R0-R31 # u32,out PRU register values + +# unrelated to debugging, see EXPLORE_COUNTERS #define in haö_prudebug.c +# hal_prudebug.IEP_COUNT # u32,out 200Mhz TSC counter in IEP (Industrial Ethernet) module + +loadrt hal_prudebug + +loadrt threads period1=20000000 # 20msec +addf hal_pru_generic.update thread1 +addf hal_pru_generic.capture-position thread1 +addf hal_prudebug.update thread1 +# + + +# sample PRU status every thread period +#setp hal_prudebug.continuous 1 +#show pin hal_prudebug.ECAP_COUNT + +# show last sample of program counter and registers +#show pin hal_prudebug.PC +#show pin hal_prudebug.R + +loadusr -Wn ui gladevcp -u ui.py -c ui prudebug.ui + +net pru ui.pru hal_prudebug.pru +net continuous ui.continuous hal_prudebug.continuous +net snap ui.snap hal_prudebug.snap +net halt ui.halt hal_prudebug.halt + +net stepping ui.stepping hal_prudebug.step +net continue ui.continue hal_prudebug.continue +net reset ui.reset hal_prudebug.reset + +# hal_prudebug.CONTROL # u32,out PRU status register +# hal_prudebug.PC # u32,out PRU program counter +# hal_prudebug.R0-R31 # u32,out PRU register values + +net control hal_prudebug.CONTROL ui.CONTROL +net pc hal_prudebug.PC ui.PC +net r0 hal_prudebug.R0 ui.R0 +net r1 hal_prudebug.R1 ui.R1 +net r2 hal_prudebug.R2 ui.R2 +net r3 hal_prudebug.R3 ui.R3 +net r4 hal_prudebug.R4 ui.R4 +net r5 hal_prudebug.R5 ui.R5 +net r6 hal_prudebug.R6 ui.R6 +net r7 hal_prudebug.R7 ui.R7 +net r8 hal_prudebug.R8 ui.R8 +net r9 hal_prudebug.R9 ui.R9 +net r10 hal_prudebug.R10 ui.R10 +net r11 hal_prudebug.R11 ui.R11 +net r12 hal_prudebug.R12 ui.R12 +net r13 hal_prudebug.R13 ui.R13 +net r14 hal_prudebug.R14 ui.R14 +net r15 hal_prudebug.R15 ui.R15 +net r16 hal_prudebug.R16 ui.R16 +net r17 hal_prudebug.R17 ui.R17 +net r18 hal_prudebug.R18 ui.R18 +net r19 hal_prudebug.R19 ui.R19 +net r20 hal_prudebug.R20 ui.R20 +net r21 hal_prudebug.R21 ui.R21 +net r22 hal_prudebug.R22 ui.R22 +net r23 hal_prudebug.R23 ui.R23 +net r24 hal_prudebug.R24 ui.R24 +net r25 hal_prudebug.R25 ui.R25 +net r26 hal_prudebug.R26 ui.R26 +net r27 hal_prudebug.R27 ui.R27 +net r28 hal_prudebug.R28 ui.R28 +net r29 hal_prudebug.R29 ui.R29 +net r30 hal_prudebug.R30 ui.R30 +net r31 hal_prudebug.R31 ui.R31 +setp ui.register_table 1 + + +# Setup something so the PRU can show off a bit +# stepgen in velocity mode, so it will continuously generate pulses +setp hal_pru_generic.stepgen.00.steppin 0xA4 +setp hal_pru_generic.stepgen.00.dirpin 0xA5 +setp hal_pru_generic.stepgen.00.position-cmd 0.023 +setp hal_pru_generic.stepgen.00.velocity-cmd 100 +setp hal_pru_generic.stepgen.00.enable 1 +setp hal_pru_generic.stepgen.00.control-type 1 +setp hal_pru_generic.stepgen.00.maxaccel 0 +setp hal_pru_generic.stepgen.00.maxvel 0 +setp hal_pru_generic.stepgen.00.steplen 1000 +setp hal_pru_generic.stepgen.00.stepspace 1000 +setp hal_pru_generic.stepgen.00.dirsetup 1000 +setp hal_pru_generic.stepgen.00.dirhold 1000 + +#setp hal_pru_generic.stepgen.01.steppin 0xA6 +#setp hal_pru_generic.stepgen.01.dirpin 0xA7 +#setp hal_pru_generic.stepgen.01.position-cmd 0.018 +#setp hal_pru_generic.stepgen.01.velocity-cmd 75 +#setp hal_pru_generic.stepgen.01.enable 1 +#setp hal_pru_generic.stepgen.01.control-type 1 +#setp hal_pru_generic.stepgen.01.maxaccel 0 +#setp hal_pru_generic.stepgen.01.maxvel 0 +#setp hal_pru_generic.stepgen.01.steplen 1000 +#setp hal_pru_generic.stepgen.01.stepspace 1000 +#setp hal_pru_generic.stepgen.01.dirsetup 1000 +#setp hal_pru_generic.stepgen.01.dirhold 1000 + +#setp hal_pru_generic.stepgen.02.steppin 6 +#setp hal_pru_generic.stepgen.02.dirpin 7 +#setp hal_pru_generic.stepgen.02.position-cmd -0.015 +#setp hal_pru_generic.stepgen.02.velocity-cmd -0.015 +#setp hal_pru_generic.stepgen.02.enable 1 +#setp hal_pru_generic.stepgen.02.control-type 0 +#setp hal_pru_generic.stepgen.02.maxaccel 0 +#setp hal_pru_generic.stepgen.02.maxvel 0 + +#setp hal_pru_generic.stepgen.03.steppin 8 +#setp hal_pru_generic.stepgen.03.dirpin 9 +#setp hal_pru_generic.stepgen.03.position-cmd -0.01 +#setp hal_pru_generic.stepgen.03.velocity-cmd -0.01 +#setp hal_pru_generic.stepgen.03.enable 1 +#setp hal_pru_generic.stepgen.03.control-type 0 +#setp hal_pru_generic.stepgen.03.maxaccel 0 +#setp hal_pru_generic.stepgen.03.maxvel 0 + +#setp hal_pru_generic.pwm.00.pin1 4 +#setp hal_pru_generic.pwm.00.pin2 5 +#setp hal_pru_generic.pwm.00.out1 100 +#setp hal_pru_generic.pwm.00.out2 200 +#setp hal_pru_generic.pwm.00.period 300 +#setp hal_pru_generic.pwm.00.enable 1 + +#setp hal_pru_generic.delta.06.pin1 2 +#setp hal_pru_generic.delta.06.pin2 3 +#setp hal_pru_generic.delta.06.out1 0.5 +#setp hal_pru_generic.delta.06.out2 0.35 +#setp hal_pru_generic.delta.06.enable 1 + + + + +start + + +waitusr ui +stop +unloadrt all diff --git a/configs/pru-examples/stepgen.p b/configs/pru-examples/stepgen.p new file mode 100755 index 00000000000..c524c6f2600 --- /dev/null +++ b/configs/pru-examples/stepgen.p @@ -0,0 +1,605 @@ +//----------------------------------------------------------------------// +// Description: stepgen.p // +// PRU code implementing step/dir generation and other functions of // +// hopeful use to off-load timing critical code from Machinekit HAL // +// // +// Author(s): Charles Steinkuehler // +// License: GNU GPL Version 2.0 or (at your option) any later version. // +// // +// Last change: // +// 2012-Dec-27 Charles Steinkuehler // +// Initial version // +//----------------------------------------------------------------------// +// This file is part of Machinekit HAL // +// // +// Copyright (C) 2012 Charles Steinkuehler // +// // +// // +// This program is free software; you can redistribute it and/or // +// modify it under the terms of the GNU General Public License // +// as published by the Free Software Foundation; either version 2 // +// of the License, or (at your option) any later version. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program; if not, write to the Free Software // +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA // +// 02110-1301, USA. // +// // +// THE AUTHORS OF THIS PROGRAM ACCEPT ABSOLUTELY NO LIABILITY FOR // +// ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE // +// TO RELY ON SOFTWARE ALONE FOR SAFETY. Any machinery capable of // +// harming persons must have provisions for completely removing power // +// from all motors, etc, before persons enter any danger area. All // +// machinery must be designed to comply with local and national safety // +// codes, and the authors of this software can not, and do not, take // +// any responsibility for such compliance. // +// // +// This code was written as part of the Machinekit project. For more // +// information, go to www.machinekit.io // +//----------------------------------------------------------------------// + +#include "pru_support/pru.h" +#define LED_OFFSET 22 + +// Leave r30 available for use as direct I/O +.setcallreg r29.w2 + +.struct global_state + .u32 Data // Pointer to per-channel data, doubles as loop counter + .u32 Table // Jump Table base address + .u32 Output // Shadow of r30 output bits + + // The following values overlap with the per-mode state definitions that follow + // These definitions should be universal to all modes + .u8 Status + .u8 Mode + .u8 Pin1 + .u8 Pin2 +.ends + +.struct chan_state + .u32 Reserved1 + .u32 Reserved2 + .u32 Reserved3 + .u32 Reserved4 + .u32 Reserved5 + .u32 Reserved6 + .u32 Reserved7 + .u32 Reserved8 +.ends + +#define STATE_SIZE SIZE(chan_state) +#define NUMCHAN 7 + +.origin 0 +.entrypoint START + +START: + // Clear syscfg[standby_init] to enable ocp master port + LBCO r0, CONST_PRUCFG, 4, 4 + CLR r0, r0, 4 + SBCO r0, CONST_PRUCFG, 4, 4 + + // Clear all outputs + LDI r30, 0 + + // Setup IEP timer + LBCO r6, C26, 0x40, 40 // Read 10 32-bit CMP registers + OR r6, r6, 0x03 // Set count reset and enable compare 0 event + LDI r8, 0x2710 // Set 10 uS timeout for CMP0 + SBCO r6, C26, 0x40, 40 // Save 10 32-bit CMP registers + + LBCO r2, C26, 0x00, 16 // Load Base IEP control register + SET r2, 0 // Enable counter + SBCO r2, C26, 0x00, 4 // Save IEP GLOBAL_CFG register + + .assign global_state, r5, r8, GState + + // Setup registers + LDI GState.Data, STATE_SIZE * NUMCHAN // Loop count & state data pointer + LDI GState.Table, #JUMPTABLE // Base address of jump table + LDI GState.Output, 0 // Output state + +MAINLOOP: + // Pre-decrement data pointer + SUB GState.Data, GState.Data, STATE_SIZE + + // Read channel state data into r8-r15 + LBBO r8, GState.Data, 0, STATE_SIZE + + // Check to see if the channel is enabled + QBEQ CHAN_DISABLED, GState.Status, 0 + + // Make sure mode is valid or we could fall off the end of the jump table! + QBLT CHAN_DISABLED, GState.Mode, JUMPTABLEEND - JUMPTABLE + + // Index into the jump table and call the routine appropriate for our mode + ADD r1, GState.Table, GState.Mode + CALL r1 + + CHAN_DISABLED: + // Keep going until all channels are processed + QBNE MAINLOOP, GState.Data, 0 + +// Debugging + CLR r30, 0 // Clear busy bit + SET GState.Output, 0 // Set busy bit with all other outputs after we wait for a timer tick + + // Wait until the next timer tick... +// FIXME: +// Set up interrupt routing for the IEP timer and watch for the appropriate event +// (bit set in r31) instead of polling the IEP status register. +// WBC r31, 30 +WAITLOOP: + LBCO r2, C26, 0x44, 4 // Load CMP_STATUS register + QBBC WAITLOOP, r2, 0 // Wait until counter times out + SBCO r2, C26, 0x44, 4 // Clear counter timeout bit + + // ...write out the pre-computed output bits... + MOV r30, GState.Output + + // ...and do it all again + LDI GState.Data, STATE_SIZE * NUMCHAN + JMP MAINLOOP + +JUMPTABLE: + JMP MODE_NONE + JMP MODE_STEP_DIR + JMP MODE_UP_DOWN + JMP MODE_DELTA_SIG + JMP MODE_PWM + JMP MODE_GPIO + JMP MODE_NONE + JMP MODE_NONE +JUMPTABLEEND: + +MODE_STEP_DIR: +.enter STEP_DIR_SCOPE + +.struct stepgen_state + .u8 Status + .u8 Mode + .u8 Pin1 + .u8 Pin2 + .u32 Rate + .u16 Dly_step_high + .u16 Dly_dir_hold + .u16 Dly_step_low + .u16 Dly_dir_setup + .u32 Accum + .u32 Pos + .u16 T_Pulse + .u16 T_Dir + .u16 Reserved1 + .u8 Reserved2 + .u8 RateQ +.ends + +.assign stepgen_state, r8, r15, State + +#define DirHoldBit 31 +#define DirChgBit 30 +#define PulseHoldBit 29 +#define GuardBit 28 +#define StepBit 27 + +#define HoldMask 0x1F +#define DirHoldMask 0x3F + + // Accumulator MSBs are used for state/status encoding: + // t31 = Dir Hold (set if we're waiting for direction setup/hold) + // t30 = Dir Changed (set if rate changed direction and we need to update the direction output) + // t29 = Pulse Hold (set if we're waiting for minimum high/low pulse length) + // t28 = Guard bit (protets higher status bits from accumulator wrapping) + // t27 = Overflow bit (indicates we should generate a step) + + // If the accumulator overflow bit is set here, we are holding for some reason + // (bits 29-31 should tell us why, but we'll deal with that later) + QBBS ACC_HOLD, State.Accum, StepBit + ADD State.Accum, State.Accum, State.Rate +ACC_HOLD: + + // Check if direction changed + XOR r1.b0, State.Rate.b3, State.RateQ + MOV State.RateQ, State.Rate.b3 + QBBC DIR_CHG_DONE, r1.b0, 7 + SET State.Accum, DirChgBit + +DIR_CHG_DONE: + + // Update the pulse timings, if required + QBBC PULSE_DONE, State.Accum, PulseHoldBit + + // Decrement timeout + SUB State.T_Pulse, State.T_Pulse, 1 + QBNE PULSE_DONE, State.T_Pulse, 0 + + // Pulse timer expired + + // Check to see if step output is high or low + QBBC PULSE_DELAY_OVER, GState.Output, State.Pin1 + + // Step pulse output is high, clear it and setup pulse low delay + CLR GState.Output, State.Pin1 + MOV State.T_Pulse, State.Dly_step_low + JMP PULSE_DONE + +PULSE_DELAY_OVER: + + // Step pulse output is low and pulse low timer expired, + // so clear Pulse Hold bit in accumulator and we're done + CLR State.Accum, PulseHoldBit + +PULSE_DONE: + + // Decrement Direction timer if non-zero + QBEQ DIR_SKIP_SUB, State.T_Dir, 0 + SUB State.T_Dir, State.T_Dir, 1 + +DIR_SKIP_SUB: + + // Process direction updates if required (either DirHoldBit or DirChgBit is set) + QBGE DIR_DONE, State.Accum.b3, DirHoldMask + + // Wait for any pending timeout + QBNE DIR_DONE, State.T_Dir, 0 + + // Direction timer expired + + QBBC DIR_SETUP_DLY, State.Accum, DirChgBit + + // Dir Changed bit is set, we need to update Dir output and configure dir setup timer + + // Update Direction output + SET GState.Output, State.Pin2 + QBBS DIR_OUT_HIGH, State.Rate, 31 + CLR GState.Output, State.Pin2 +DIR_OUT_HIGH: + + // Clear Dir Changed Bit + CLR State.Accum, DirChgBit + SET State.Accum, DirHoldBit + MOV State.T_Pulse, State.Dly_dir_setup + JMP DIR_DONE + +DIR_SETUP_DLY: + CLR State.Accum, DirHoldBit + +DIR_DONE: + + QBBC STEP_DONE, State.Accum, StepBit + QBLT STEP_DONE, State.Accum.b3, HoldMask + + // Time for a step! + + // Reset Accumulator status bits + CLR State.Accum, StepBit + + OR State.Accum.b3, State.Accum.b3, 0x30 // Set GuardBit and PulseHoldBit +// SET State.Accum, GuardBit +// SET State.Accum, PulseHoldBit + + // Update position register + ADD State.Pos, State.Pos, 1 + QBBC DIR_UP, State.Rate, 31 + SUB State.Pos, State.Pos, 2 +DIR_UP: + + // Update state + SET GState.Output, State.Pin1 + // Fixme: The following could be one 32-bit MOV + MOV State.T_Pulse, State.Dly_step_high + MOV State.T_Dir, State.Dly_dir_hold + +STEP_DONE: + // Save channel state data + SBBO State.Accum, GState.Data, OFFSET(State.Accum), STATE_SIZE - OFFSET(State.Accum) + + RET +.leave STEP_DIR_SCOPE + +MODE_DELTA_SIG: +.enter DELTA_SIG_SCOPE +.struct delta_state + .u8 Status + .u8 Mode + .u8 Pin1 + .u8 Pin2 + .u16 Value1 // WARNING: Range is 14-bits: 0x0000 to 0x4000 inclusive! + .u16 Value2 // WARNING: Range is 14-bits: 0x0000 to 0x4000 inclusive! + .u16 Reserved1 + .u16 Reserved2 + .u32 Reserved3 + .u16 Integrate1a + .u16 Integrate2a + .u16 Integrate1b + .u16 Integrate2b + .u16 Quant1 + .u16 Quant2 + .u32 Reserved4 +.ends + +.assign delta_state, r8, r15, State + + // Update Pin 1 integrator state +// SUB r1.w0, State.Value1, State.Quant1 +// XOR r1.b1, r1.b1, 0x80 +// ADD State.Integrate1a, State.Integrate1a, r1.w0 + SUB r1, State.Value1, State.Quant1 + ADD State.Integrate1b, State.Integrate1b, r1.w0 + + // Update Pin 2 integrator state +// SUB r1.w0, State.Value2, State.Quant2 +// XOR r1.b1, r1.b1, 0x80 +// ADD State.Integrate2a, State.Integrate2a, r1.w0 + SUB r1, State.Value2, State.Quant2 + ADD State.Integrate2b, State.Integrate2b, r1.w0 + + // Update Pin 1 Output State + QBBC OUT1Zero, State.Integrate1b, 15 + SET GState.Output, State.Pin1 + LDI State.Quant1, 0xC000 + JMP Test2 + + OUT1Zero: + CLR GState.Output, State.Pin1 + LDI State.Quant1, 0x0000 + + // Update Pin 2 Output State + Test2: + QBBC OUT2Zero, State.Integrate2b, 15 + SET GState.Output, State.Pin2 + LDI State.Quant2, 0xC000 + JMP DONE + + OUT2Zero: + CLR GState.Output, State.Pin2 + LDI State.Quant2, 0x0000 + + DONE: + // Save channel state data + SBBO State.Integrate1a, GState.Data, OFFSET(State.Integrate1a), STATE_SIZE - OFFSET(State.Integrate1a) + + RET +.leave DELTA_SIG_SCOPE + +MODE_PWM: +.enter PWM_SCOPE +.struct pwm_state + .u8 Status + .u8 Mode + .u8 Pin1 + .u8 Pin2 + .u32 Period + .u32 High1 + .u32 High2 + .u32 T_Period + .u32 PeriodQ + .u32 High1Q + .u32 High2Q +.ends + +.assign pwm_state, r8, r15, State + + // Increment Period Counter + ADD State.T_Period, State.T_Period, 1 + + // Are we finished with this period? + QBGT PeriodNE, State.T_Period, State.PeriodQ + SET GState.Output, State.Pin1 + SET GState.Output, State.Pin2 + + LDI State.T_Period, 0 + MOV State.PeriodQ, State.Period + MOV State.High1Q, State.High1 + MOV State.High2Q, State.High2 + PeriodNE: + + // See if we need to clear any outputs + QBNE High1NE, State.T_Period, State.High1Q + CLR GState.Output, State.Pin1 + High1NE: + QBNE High2NE, State.T_Period, State.High2Q + CLR GState.Output, State.Pin2 + High2NE: + + // Save channel state data + SBBO State.T_Period, GState.Data, OFFSET(State.T_Period), STATE_SIZE - OFFSET(State.T_Period) + + RET +.leave PWM_SCOPE + +MODE_UP_DOWN: +MODE_GPIO: +MODE_NONE: + RET + + +// BeagleBone PRU I/O Assignments +// +// AM3359ZCZ Mux BeagleBone +// Pin Name Value PRU I/O Pin Pin Name BeBoPr Use +// ------------------------------------------------------------------------------ +// A13 mcasp0_aclkx 5 pru0.r30.0 P9.31 SPI1_SCLK +// 6 pru0.r31.0 +// B13 mcasp0_fsx 5 pru0.r30.1 P9.29 SPI1_D0 +// 6 pru0.r31.1 +// D12 mcasp0_axr0 5 pru0.r30.2 P9.30 SPI1_D1 +// 6 pru1.r31.2 +// C12 mcasp0_ahclkr 5 pru0.r30.3 P9.28 SPI1_CS0 +// 6 pru0.r31.3 +// B12 mcasp0_aclkr 5 pru0.r30.4 - +// 6 pru0.r31.4 +// C13 mcasp0_fsr 5 pru0.r30.5 P9.27 GPIO3_19 +// 6 pru0.r31.5 +// D13 mcasp0_axr1 5 pru0.r30.6 - +// 6 pru0.r31.6 +// A14 mcasp0_ahclkx 5 pru0.r30.7 P9.25 GPIO3_21 +// 6 pru0.r31.7 +// F17 mmc0_dat3 5 pru0.r30.8 - +// 6 pru0.r31.8 +// F18 mmc0_dat2 5 pru0.r30.9 - +// 6 pru0.r31.9 +// G15 mmc0_dat1 5 pru0.r30.10 - +// 6 pru0.r31.10 +// G16 mmc0_dat0 5 pru0.r30.11 - +// 6 pru0.r31.11 +// G17 mmc0_clk 5 pru0.r30.12 - +// 6 pru0.r31.12 +// G18 mmc0_cmd 5 pru0.r30.13 - +// 6 pru0.r31.13 +// T12 gpmc_ad12 6 pru0.r30.14 P8.12 GPIO1_12 +// V13 gpmc_ad14 6 pru0.r31.14 P8.16 GPIO1_14 +// R12 gpmc_ad13 6 pru0.r30.15 P8.11 GPIO1_13 +// U13 gpmc_ad15 6 pru0.r31.15 P8.15 GPIO1_15 +// D14 xdma_event_intr1 5 pru0.r31.16 P9.41 CLKOUT2 +// D15 uart1_txd 6 pru0.r31.16 P9.24 UART1_TXD +// +// R1 lcd_data0 5 pru1.r30.0 P8.45 GPIO2_6 J3 +// 6 pru1.r31.0 +// R2 lcd_data1 5 pru1.r30.1 P8.46 GPIO2_7 J2 +// 6 pru1.r31.1 +// R3 lcd_data2 5 pru1.r30.2 P8.43 GPIO2_8 X Step +// 6 pru1.r31.2 +// R4 lcd_data3 5 pru1.r30.3 P8.44 GPIO2_9 X Dir +// 6 pru1.r31.3 +// T1 lcd_data4 5 pru1.r30.4 P8.41 GPIO2_10 X Enable +// 6 pru1.r31.4 +// T2 lcd_data5 5 pru1.r30.5 P8.42 GPIO2_11 Y Step +// 6 pru1.r31.5 +// T3 lcd_data6 5 pru1.r30.6 P8.39 GPIO2_12 Y Dir +// 6 pru1.r31.6 +// T4 lcd_data7 5 pru1.r30.7 P8.40 GPIO2_13 Y Enable +// 6 pru1.r31.7 +// U8 lcd_vsync 5 pru1.r30.8 P8.27 GPIO2_22 Z Step +// 6 pru1.r31.8 +// R5 lcd_hsync 5 pru1.r30.9 P8.29 GPIO2_23 Z Dir +// 6 pru1.r31.9 +// V5 lcd_pclk 5 pru1.r30.10 P8.28 GPIO2_24 Z Enable +// 6 pru1.r31.10 +// R6 lcd_ac_bias_en 5 pru1.r30.11 P8.30 GPIO2_25 E Step +// 6 pru1.r31.11 +// U9 gpmc_csn1 5 pru1.r30.12 P8.21 GPIO1_30 E Dir +// 6 pru1.r31.12 +// V9 gpmc_csn2 5 pru1.r30.13 P8.20 GPIO1_31 E Enable +// 6 pru1.r31.13 +// E15 uart0_rxd 5 pru1.r30.14 - +// 6 pru1.r31.14 +// E16 uart0_txd 5 pru1.r30.15 - +// 6 pru1.r31.15 +// A15 xdma_event_intr0 5 pru1.r31.16 - +// D16 uart1_rxd 6 pru1.r31.16 P9.26 UART1_RXD +// +// U3 lcd_data10 - - P8.36 UART3_CTSN J4 +// +// ecap0_in_pwm0_out 3 ecap0_ecap_capin_apwm_o +// + + + + +// BeagleBone AM3359ZCZ Mux +// Replicape BeBoPr Pin Name Pin Name Value PRU I/O Pin +// ---------------------------------------------------------------------------------- +// +// P8.1 GND +// P8.2 GND +// E2_Step P8.3 GPIO1_6 R9 gpmc_ad6 +// E1_Dir P8.4 GPIO1_7 T9 +// P8.5 GPIO1_2 R8 +// P8.6 GPIO1_3 T8 +// P8.7 TIMER4 R7 +// E2_Fault P8.8 TIMER7 T7 +// P8.9 TIMER5 T6 +// X_Fault P8.10 TIMER6 U6 +// X_Dir P8.11 GPIO1_13 R12 gpmc_ad13 6 pru0.r30.15 +// X_Step P8.12 GPIO1_12 T12 gpmc_ad12 6 pru0.r30.14 +// E1_Heat P8.13 EHRPWM2B T10 +// Y_Stop_1 P8.14 GPIO0_26 T11 +// Y_Fault P8.15 GPIO1_15 U13 gpmc_ad15 6 pru0.r31.15 +// E2_Step P8.16 GPIO1_14 V13 gpmc_ad14 6 pru0.r31.14 +// Z_Fault P8.17 GPIO0_27 U12 +// E1_Fault P8.18 GPIO2_1 V12 +// E2_Heat P8.19 EHRPWM2A U10 +// Y_Step E_Ena P8.20 GPIO1_31 V9 gpmc_csn2 5 pru1.r30.13 +// Y_Dir E_Dir P8.21 GPIO1_30 U9 gpmc_csn1 5 pru1.r30.12 +// X_Stop_1 P8.22 GPIO1_5 V8 +// P8.23 GPIO1_4 U8 +// Z_Step P8.24 GPIO1_1 V7 +// P8.25 GPIO1_0 U7 +// Z_Stop_1 P8.26 GPIO1_29 V6 +// Z_Step P8.27 GPIO2_22 U5 lcd_vsync 5 pru1.r30.8 +// Z_Ena P8.28 GPIO2_24 V5 lcd_pclk 5 pru1.r30.10 +// Z_Dir P8.29 GPIO2_23 R5 lcd_hsync 5 pru1.r30.9 +// E_Step P8.30 GPIO2_25 R6 lcd_ac_bias_en 5 pru1.r30.11 +// P8.31 UART5_CTSN V4 +// P8.32 UART5_RTSN T5 +// P8.33 UART4_RTSN V3 +// P8.34 UART3_RTSN U4 +// P8.35 UART4_CTSN V2 +// J4 P8.36 UART3_CTSN U3 +// P8.37 UART5_TXD U1 +// P8.38 UART5_RXD U2 +// Y_Dir P8.39 GPIO2_12 T3 lcd_data6 5 pru1.r30.6 +// Y_Ena P8.40 GPIO2_13 T4 lcd_data7 5 pru1.r30.7 +// X_Ena P8.41 GPIO2_10 T1 lcd_data4 5 pru1.r30.4 +// Y_Step P8.42 GPIO2_11 T2 lcd_data5 5 pru1.r30.5 +// X_Step P8.43 GPIO2_8 R3 lcd_data2 5 pru1.r30.2 +// X_Dir P8.44 GPIO2_9 R4 lcd_data3 5 pru1.r30.3 +// J3 P8.45 GPIO2_6 R1 lcd_data0 5 pru1.r30.0 +// J2 P8.46 GPIO2_7 R2 lcd_data1 5 pru1.r30.1 +// +// P9.1 GND +// P9.2 GND +// P9.3 VDD_3V3EXP +// P9.4 VDD_3V3EXP +// P9.5 VDD_5V +// P9.6 VDD_5V +// P9.7 SYS_5V +// P9.8 SYS_5V +// P9.9 PWR_BUT +// P9.10 SYS_RESETn A10 +// P9.11 UART4_RXD T17 +// Z_Stop_2 P9.12 GPIO1_28 U18 +// X_Stop_2 P9.13 UART4_TXD U17 +// P9.14 EHRPWM1A U14 +// P9.15 GPIO1_16 R13 +// P9.16 EHRPWM1B T14 +// Y_Stop_2 P9.17 I2C1_SCL A16 +// P9.18 I2C1_SDA B16 +// P9.19 I2C2_SCL D17 +// P9.20 I2C2_SDA D18 +// P9.21 UART2_TXD B17 +// HBP_Heat P9.22 UART2_RXD A17 +// P9.23 GPIO1_17 V14 +// P9.24 UART1_TXD D15 +// E1_Step P9.25 GPIO3_21 A14 +// P9.26 UART1_RXD D16 +// P9.27 GPIO3_19 C13 +// P9.28 SPI1_CS0 C12 +// P9.29 SPI1_D0 B13 +// P9.30 SPI1_D1 D12 +// P9.31 SPI1_SCLK A13 +// P9.32 VDD_ADC +// E2_Temp P9.33 AIN4 C8 +// P9.34 GNDA_ADC +// E1_Temp P9.35 AIN6 A8 +// HBP_Temp Temp2 J8 P9.36 AIN5 B8 +// P9.37 AIN2 B7 +// Temp1 J7 P9.38 AIN3 A7 +// P9.39 AIN0 B6 +// Temp0 J6 P9.40 AIN1 C7 +// P9.41 CLKOUT2 D14 +// P9.42 GPIO0_7 C18 +// P9.43 GND +// P9.44 GND +// P9.45 GND +// P9.46 GND +// +// +// diff --git a/configs/sim/README b/configs/sim/README index 6ba07ddeff7..466a8fd216f 100644 --- a/configs/sim/README +++ b/configs/sim/README @@ -1,5 +1,5 @@ -Sim configurations make it possible to run LinuxCNC without special hardware on a simulated basis. +Sim configurations make it possible to run Machinekit without special hardware on a simulated basis. -LinuxCNC supports multiple guis and there are multiple examples for the most popular guis. +Machinekit supports multiple guis and there are multiple examples for the most popular guis. The sim configurations are meant to run with no special hardware requirements diff --git a/configs/sim/axis-iocontrolv2-demo-ubuntu8.04.ini b/configs/sim/axis-iocontrolv2-demo-ubuntu8.04.ini new file mode 100644 index 00000000000..aecd03d87df --- /dev/null +++ b/configs/sim/axis-iocontrolv2-demo-ubuntu8.04.ini @@ -0,0 +1,233 @@ +# EMC controller parameters for a simulated machine. + +# General note: Comments can either be preceded with a # or ; - either is +# acceptable, although # is in keeping with most linux config files. + +# General section ------------------------------------------------------------- +[EMC] + +# Version of this INI file +VERSION = $Revision$ + +# Name of machine, for use with display, etc. +MACHINE = EMC-HAL-SIM-AXIS + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x7FFFFFFF +DEBUG = 0 +# 0x00001000 Ausgabe HAL +# 0x00002000 Ausgabe iocontrol + +# Sections for display options ------------------------------------------------ +[DISPLAY] + +# on Ubuntu 8.04 the GTK catalog is older (v2.12) and needs a +# backported UI file +# NB: you CANNOZ edit gladevcp .ui files on 8.04 - glade is too old +GLADEVCP=v2-tc-gtk212.ui + +OPEN_FILE=../../nc_files/toolchange-demo.ngc + +# Name of display program, e.g., xemc +DISPLAY = axis + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.100 + +# Path to help file +HELP_FILE = doc/help.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.2 +MAX_SPINDLE_OVERRIDE = 1.0 +# Prefix to be used +PROGRAM_PREFIX = ../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = emc2.gif +INTRO_TIME = 5 + +EDITOR = gedit + +INCREMENTS = 1 mm, .01 in, .1mm, 1 mil, .1 mil, 1/8000 in +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script + +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + +# Task controller section ----------------------------------------------------- +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.001 + +# template for iocontrol reason operator display +IO_MSG = Toolchanger message %d +IO_ERROR = Toolchanger fault %d + +# Part program interpreter section -------------------------------------------- +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = sim_mm.var + +# Motion control section ------------------------------------------------------ +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# BASE_PERIOD is unused in this configuration but specified in core_sim.hal +BASE_PERIOD = 0 +# Servo task period, in nano-seconds +SERVO_PERIOD = 1000000 + +# Hardware Abstraction Layer section -------------------------------------------------- +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. +# + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear +HALFILE = core_sim.hal +#HALFILE = v2_manualtoolchange.hal +HALFILE = simulated_home.hal +#HALFILE = gamepad.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +# Single file that is executed after the GUI has started. Only supported by +# AXIS at this time (only AXIS creates a HAL component of its own) +POSTGUI_HALFILE = v2_gladevcp_postgui.hal + +HALUI = halui + +# Trajectory planner section -------------------------------------------------- +[TRAJ] + +AXES = 3 +COORDINATES = X Y Z +HOME = 0 0 0 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 30.48 +MAX_VELOCITY = 53.34 +DEFAULT_ACCELERATION = 508 +MAX_ACCELERATION = 508 +POSITION_FILE = position_mm.txt + +# Axes sections --------------------------------------------------------------- + +# First axis +[AXIS_0] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 157.48 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -254 +MAX_LIMIT = 254 +FERROR = 1.27 +MIN_FERROR = .254 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 127 +HOME_LATCH_VEL = 25.4 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 +HOME_IS_SHARED = 1 + +# Second axis +[AXIS_1] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 157.48 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -254 +MAX_LIMIT = 254 +FERROR = 1.27 +MIN_FERROR = .254 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 127 +HOME_LATCH_VEL = 25.4 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 + +# Third axis +[AXIS_2] + +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 157.48 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -50.8 +MAX_LIMIT = 101.6 +FERROR = 1.27 +MIN_FERROR = .254 +HOME_OFFSET = 25.4 +HOME_SEARCH_VEL = 127 +HOME_LATCH_VEL = 25.4 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 1 + +# section for main IO controller parameters ----------------------------------- +[EMCIO] +# this is the default +PROTOCOL_VERSION = 2 + +# Name of IO controller program, e.g., io + +# explicitly support the start-change protocol. +# needs to be explicitly enabled for backwards compatibility. +# NB: if the start-change pin isnt used it needs to be looped like below to +# start-change-ack or an M6 will hang waiting for start-change-ack: +# net start-change iocontrol.0.start-change iocontrol.0.start-change-ack +EMCIO = iov2 -support-start-change + +# starting iov2 like so will create the start-change and start-change-ack pins +# but the start-change protocol remains disabled - start-change remains low and +# start-change-ack is ignored: +#EMCIO = iov2 + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = sim_mm.tbl +TOOL_CHANGE_POSITION = 0 0 50.8 diff --git a/configs/sim/axis/README b/configs/sim/axis/README index aed3684a387..e791fc1789b 100644 --- a/configs/sim/axis/README +++ b/configs/sim/axis/README @@ -12,8 +12,8 @@ lathe.ini lathe demo profile_axis.ini profiling random_tc.ini random tool changer -Select one of these if you have no functional machine but want to edit some basic configuration stuff or play with one of the LinuxCNC displays. +Select one of these if you have no functional machine but want to edit some basic configuration stuff or play with one of the Machinekit displays. Additional configurations are provided in subdirectories. -These configurations demonstrate LinuxCNC functionality using the axis gui as the interface. (The functionality demonstrated may be available in other guis also) +These configurations demonstrate Machinekit functionality using the axis gui as the interface. (The functionality demonstrated may be available in other guis also) diff --git a/configs/sim/axis/acc_test.ini b/configs/sim/axis/acc_test.ini new file mode 100644 index 00000000000..abd84b5ae3b --- /dev/null +++ b/configs/sim/axis/acc_test.ini @@ -0,0 +1,209 @@ +# EMC controller parameters for a simulated machine. + +# General note: Comments can either be preceded with a # or ; - either is +# acceptable, although # is in keeping with most linux config files. + +# General section ------------------------------------------------------------- +[EMC] + +# Version of this INI file +VERSION = $Revision$ + +# Name of machine, for use with display, etc. +MACHINE = Machinekit-HAL-SIM-AXIS + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +;DEBUG = 0x7FFFFFFF +DEBUG = 0 + +# Sections for display options ------------------------------------------------ +[DISPLAY] + +# Name of display program, e.g., xemc +DISPLAY = axis + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.100 + +# Path to help file +HELP_FILE = doc/help.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.2 +MAX_SPINDLE_OVERRIDE = 1.0 + +MAX_LINEAR_VELOCITY = 12 +DEFAULT_LINEAR_VELOCITY = .25 +# Prefix to be used +PROGRAM_PREFIX = ../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +EDITOR = gedit +TOOL_EDITOR = tooledit + +INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script + +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + +# Task controller section ----------------------------------------------------- +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.001 + +# Part program interpreter section -------------------------------------------- +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = sim.var + +# Motion control section ------------------------------------------------------ +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# BASE_PERIOD is unused in this configuration but specified in core_sim.hal +BASE_PERIOD = 0 +# Servo task period, in nano-seconds +SERVO_PERIOD = 1000000 + +# Hardware Abstraction Layer section -------------------------------------------------- +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. +# + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear +HALFILE = core_sim.hal +HALFILE = axis_manualtoolchange.hal +HALFILE = simulated_home.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +# Single file that is executed after the GUI has started. Only supported by +# AXIS at this time (only AXIS creates a HAL component of its own) +#POSTGUI_HALFILE = test_postgui.hal + +HALUI = halui + +# Trajectory planner section -------------------------------------------------- +[TRAJ] + +AXES = 3 +COORDINATES = X Y Z +HOME = 0 0 0 +LINEAR_UNITS = inch +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 1.2 +POSITION_FILE = position.txt +MAX_LINEAR_VELOCITY = 12 +# Axes sections --------------------------------------------------------------- + +# First axis +[AXIS_0] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 8.3333 +MAX_ACCELERATION = 40 +BACKLASH = 0.000 +INPUT_SCALE = 2000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -40.0 +MAX_LIMIT = 40.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 20.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 +HOME_IS_SHARED = 1 + +# Second axis +[AXIS_1] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 8.3333 +MAX_ACCELERATION = 30 +BACKLASH = 0.000 +INPUT_SCALE = 2000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -40.0 +MAX_LIMIT = 40.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 20.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 + +# Third axis +[AXIS_2] + +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 8.333333 +MAX_ACCELERATION = 20 +BACKLASH = 0.0 +INPUT_SCALE = 2000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -10.0 +MAX_LIMIT = 10.0001 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 1.0 +HOME_SEARCH_VEL = 20.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 1 + +# section for main IO controller parameters ----------------------------------- +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = sim.tbl +TOOL_CHANGE_POSITION = 0 0 0 +TOOL_CHANGE_QUILL_UP = 1 diff --git a/configs/sim/axis/axis.ini b/configs/sim/axis/axis.ini index 7240f60750c..02af2a2957e 100644 --- a/configs/sim/axis/axis.ini +++ b/configs/sim/axis/axis.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-AXIS +MACHINE = Machinekit-HAL-SIM-AXIS # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x7FFFFFFF @@ -38,13 +38,13 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 MAX_SPINDLE_OVERRIDE = 1.0 -MAX_LINEAR_VELOCITY = 1.2 +MAX_LINEAR_VELOCITY = 5 DEFAULT_LINEAR_VELOCITY = .25 # Prefix to be used PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit @@ -149,10 +149,13 @@ MIN_FERROR = 0.010 HOME_OFFSET = 0.0 HOME_SEARCH_VEL = 20.0 HOME_LATCH_VEL = 20.0 +HOME_FINAL_VEL = 30.0 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO HOME_SEQUENCE = 1 HOME_IS_SHARED = 1 +VOLATILE_HOME = 0 +LOCKING_INDEXER = 0 # Second axis [AXIS_1] @@ -179,7 +182,7 @@ HOME_SEQUENCE = 1 [AXIS_2] TYPE = LINEAR -HOME = 0.0 +HOME = 0.000 MAX_VELOCITY = 5 MAX_ACCELERATION = 50.0 BACKLASH = 0.000 diff --git a/configs/sim/axis/axis_9axis.ini b/configs/sim/axis/axis_9axis.ini index fd67903f363..cae4871ed73 100644 --- a/configs/sim/axis/axis_9axis.ini +++ b/configs/sim/axis/axis_9axis.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-AXIS +MACHINE = Machinekit-HAL-SIM-AXIS # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others # DEBUG = 0x7FFFFFFF @@ -41,7 +41,7 @@ MAX_SPINDLE_OVERRIDE = 1.0 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit diff --git a/configs/sim/axis/axis_foam.ini b/configs/sim/axis/axis_foam.ini index 30db1e44cbd..add6f0f1115 100644 --- a/configs/sim/axis/axis_foam.ini +++ b/configs/sim/axis/axis_foam.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-AXIS +MACHINE = Machinekit-HAL-SIM-AXIS # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others # DEBUG = 0x7FFFFFFF @@ -42,7 +42,7 @@ PROGRAM_PREFIX = ../../nc_files/ OPEN_FILE = ./foam.ngc # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit diff --git a/configs/sim/axis/axis_manualtoolchange.hal b/configs/sim/axis/axis_manualtoolchange.hal index b7c30109b6f..300d2baa445 120000 --- a/configs/sim/axis/axis_manualtoolchange.hal +++ b/configs/sim/axis/axis_manualtoolchange.hal @@ -1 +1 @@ -../axis_manualtoolchange.hal \ No newline at end of file +../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/axis/axis_mm.ini b/configs/sim/axis/axis_mm.ini index 04630bb2f27..6ab27a99442 100644 --- a/configs/sim/axis/axis_mm.ini +++ b/configs/sim/axis/axis_mm.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-AXIS +MACHINE = Machinekit-HAL-SIM-AXIS # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others # DEBUG = 0x7FFFFFFF @@ -41,7 +41,7 @@ MAX_SPINDLE_OVERRIDE = 1.0 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit @@ -125,6 +125,13 @@ MAX_VELOCITY = 53.34 DEFAULT_ACCELERATION = 508 MAX_ACCELERATION = 508 POSITION_FILE = position_mm.txt +ARC_BLEND_ENABLE = 1 +ARC_BLEND_FALLBACK_ENABLE = 1 +ARC_BLEND_OPTIMIZATION_DEPTH = 50 +#Use this setting for no smoothing (for debugging and stress-testing) +ARC_BLEND_SMOOTHING_THRESHOLD = .75 +#Use this setting for "normal" smoothing, i.e. if we blend over more than 40% of a segment +#ARC_BLEND_SMOOTHING_THRESHOLD = 0.40 # Axes sections --------------------------------------------------------------- diff --git a/configs/sim/axis/axis_rostock.ini b/configs/sim/axis/axis_rostock.ini new file mode 100644 index 00000000000..9c44af3c798 --- /dev/null +++ b/configs/sim/axis/axis_rostock.ini @@ -0,0 +1,207 @@ +# EMC controller parameters for a simulated machine. + +# General note: Comments can either be preceded with a # or ; - either is +# acceptable, although # is in keeping with most linux config files. + +# General section ------------------------------------------------------------- +[EMC] + +# Version of this INI file +VERSION = $Revision$ + +# Name of machine, for use with display, etc. +MACHINE = Machinekit-HAL-SIM-AXIS + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +# DEBUG = 0x7FFFFFFF +DEBUG = 0 + +# Sections for display options ------------------------------------------------ +[DISPLAY] + +# Name of display program, e.g., xemc +DISPLAY = axis + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.100 + +# Path to help file +HELP_FILE = doc/help.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 4.0 +MAX_SPINDLE_OVERRIDE = 1.0 +# Prefix to be used +PROGRAM_PREFIX = ../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +EDITOR = gedit + +INCREMENTS = 1 mm, .01 in, .1mm, 1 mil, .1 mil, 1/8000 in + +GEOMETRY = XYZABCUVW + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script + +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + +# Task controller section ----------------------------------------------------- +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.001 + +# Part program interpreter section -------------------------------------------- +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = sim-9axis.var + +# Motion control section ------------------------------------------------------ +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nano-seconds +SERVO_PERIOD = 1000000 + +# Hardware Abstraction Layer section -------------------------------------------------- +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. +# + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear +HALFILE = sim_rostock.hal +HALFILE = axis_manualtoolchange.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +# Single file that is executed after the GUI has started. Only supported by +# AXIS at this time (only AXIS creates a HAL component of its own) +#POSTGUI_HALFILE = test_postgui.hal + +HALUI = halui + +# Trajectory planner section -------------------------------------------------- +[TRAJ] + +AXES = 4 +COORDINATES = X Y Z A +HOME = 0 0 0 0 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 1.0 +DEFAULT_ANGULAR_VELOCITY = 45.0 +POSITION_FILE = position9.txt +MAX_LINEAR_VELOCITY = 200 +MAX_ANGULAR_VELOCITY = 90.0 + +# Axes sections --------------------------------------------------------------- + +[AXIS_0] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 200 +MAX_ACCELERATION = 800 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -200.0 +MAX_LIMIT = 200.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEQUENCE = 0 + +[AXIS_1] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 200 +MAX_ACCELERATION = 800 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -200.0 +MAX_LIMIT = 200.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEQUENCE = 0 + +[AXIS_2] + +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 200 +MAX_ACCELERATION = 800 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -200.0 +MAX_LIMIT = 400.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 1.0 +HOME_SEQUENCE = 0 + +[AXIS_3] + +TYPE = ANGULAR +HOME = 0.0 +MAX_VELOCITY = 90.0 +MAX_ACCELERATION = 1200.0 +BACKLASH = 0.000 +INPUT_SCALE = 40 +OUTPUT_SCALE = 1.000 +FERROR = 5.0 +MIN_FERROR = 1.0 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 + +# section for main IO controller parameters ----------------------------------- +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = sim.tbl +TOOL_CHANGE_POSITION = 0 0 2 diff --git a/configs/sim/axis/classicladder/README b/configs/sim/axis/classicladder/README index 4a52afaae5d..f7a38fc57ab 100644 --- a/configs/sim/axis/classicladder/README +++ b/configs/sim/axis/classicladder/README @@ -1,4 +1,4 @@ -This config is a simulated stepper machine with the addition of ClassicLadder connections to some of the LinuxCNC IO. +This config is a simulated stepper machine with the addition of ClassicLadder connections to some of the Machinekit IO. The initial ladder program includes several possible estop arrangements and a timed lube coil. The lube ladder includes a sense run that watches lube level or lube pressure and warns of a lube condition failure. diff --git a/configs/sim/axis/classicladder/core_sim.hal b/configs/sim/axis/classicladder/core_sim.hal index b79df2d33fb..378c8f6dbaf 120000 --- a/configs/sim/axis/classicladder/core_sim.hal +++ b/configs/sim/axis/classicladder/core_sim.hal @@ -1 +1 @@ -../../core_sim.hal \ No newline at end of file +../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/axis/classicladder/demo_sim_cl.ini b/configs/sim/axis/classicladder/demo_sim_cl.ini index 8ed2d887920..0ac0149f785 100644 --- a/configs/sim/axis/classicladder/demo_sim_cl.ini +++ b/configs/sim/axis/classicladder/demo_sim_cl.ini @@ -12,7 +12,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-DEMO-SIM-CL +MACHINE = Machinekit-DEMO-SIM-CL # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others # DEBUG = 0x00000001 @@ -45,7 +45,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 2 # Editor to be used with Axis diff --git a/configs/sim/axis/core_sim.hal b/configs/sim/axis/core_sim.hal index ead32827019..ddef7e1add2 120000 --- a/configs/sim/axis/core_sim.hal +++ b/configs/sim/axis/core_sim.hal @@ -1 +1 @@ -../core_sim.hal \ No newline at end of file +../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/axis/core_sim9.hal b/configs/sim/axis/core_sim9.hal index 974aae6773c..22ba3911517 120000 --- a/configs/sim/axis/core_sim9.hal +++ b/configs/sim/axis/core_sim9.hal @@ -1 +1 @@ -../core_sim9.hal \ No newline at end of file +../../common/core_sim9.hal \ No newline at end of file diff --git a/configs/sim/axis/gantry.ini b/configs/sim/axis/gantry.ini index 3c63cac9504..6cb0025d7b3 100644 --- a/configs/sim/axis/gantry.ini +++ b/configs/sim/axis/gantry.ini @@ -6,7 +6,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-GANTRY-SIM-AXIS +MACHINE = Machinekit-GANTRY-SIM-AXIS # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x00000003 @@ -39,7 +39,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # gantry machines jog in Teleop-mode (aka World-mode) only, diff --git a/configs/sim/axis/gladevcp-jwp.py b/configs/sim/axis/gladevcp-jwp.py new file mode 100644 index 00000000000..a51999cd103 --- /dev/null +++ b/configs/sim/axis/gladevcp-jwp.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python + +# demo interface to motion jog-while-paused features + +import os,sys +from gladevcp.persistence import IniFile,widget_defaults,set_debug,select_widgets +import hal +import hal_glib +import gtk +import glib +import linuxcnc + +# see enum pause_state in src/emc/motion/mot_priv.h +states = ("running", "pausing", "paused", "paused/offset","jogging","returning", "pause/step","stepping") + +# see src/emc/nml_intf/motion_types.h +motions = ("none", "traverse", "feed", "arc", "toolchange", "probing", "indexrotary") + +class HandlerClass: + + def _on_state_changed(self,hal_pin,data=None): + state = hal_pin.get() + self.builder.get_object("state").set_text(states[state]) + + def _on_motion_type_changed(self,hal_pin,data=None): + self.builder.get_object("motion_type_label").set_text(motions[hal_pin.get()]) + + def on_in_position_changed(self,hal_led,data=None): + if self.state.get() and hal_led.hal_pin.get(): + self.s.poll() + posfmt = " ".join(["%-8.4f"] * self.s.axes) + posn = posfmt % self.s.position[:self.s.axes] + print "new_position: ", posn, "motion type=",motions[self.motion_type.get()] + + def on_unix_signal(self,signum,stack_frame): + print "on_unix_signal(): signal %d received, saving state" % (signum) + self.ini.save_state(self) + gtk.main_quit() + self.halcomp.exit() + + def on_destroy(self,obj,data=None): + print "on_destroy() - saving state" + self.ini.save_state(self) + + def __init__(self, halcomp,builder,useropts): + self.halcomp = halcomp + self.builder = builder + + (directory,filename) = os.path.split(__file__) + (basename,extension) = os.path.splitext(filename) + self.ini_filename = os.path.join(directory,basename + '.ini') + self.defaults = { IniFile.vars: { }, + IniFile.widgets: widget_defaults(select_widgets(self.builder.get_objects(), + hal_only=True,output_only = True)), + } + self.ini = IniFile(self.ini_filename,self.defaults, self.builder) + self.ini.restore_state(self) + + self.c = linuxcnc.command() + self.e = linuxcnc.error_channel() + self.s = linuxcnc.stat() + + self.state = hal_glib.GPin(halcomp.newpin('state', hal.HAL_S32, hal.HAL_IN)) + self.state.connect('value-changed', self._on_state_changed) + + self.motion_type = hal_glib.GPin(halcomp.newpin('motion_type', hal.HAL_S32, hal.HAL_IN)) + self.motion_type.connect('value-changed', self._on_motion_type_changed) + +def get_handlers(halcomp,builder,useropts, compname): + return [HandlerClass(halcomp,builder,useropts)] diff --git a/configs/sim/axis/gladevcp/axis_manualtoolchange.hal b/configs/sim/axis/gladevcp/axis_manualtoolchange.hal index 397c8934a1f..d400e3cb871 120000 --- a/configs/sim/axis/gladevcp/axis_manualtoolchange.hal +++ b/configs/sim/axis/gladevcp/axis_manualtoolchange.hal @@ -1 +1 @@ -../../axis_manualtoolchange.hal \ No newline at end of file +../../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/axis/gladevcp/core_sim.hal b/configs/sim/axis/gladevcp/core_sim.hal index b79df2d33fb..378c8f6dbaf 120000 --- a/configs/sim/axis/gladevcp/core_sim.hal +++ b/configs/sim/axis/gladevcp/core_sim.hal @@ -1 +1 @@ -../../core_sim.hal \ No newline at end of file +../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/axis/gladevcp/gladevcp_panel.ini b/configs/sim/axis/gladevcp/gladevcp_panel.ini index 1df6fc39a04..f3b70460a1c 100644 --- a/configs/sim/axis/gladevcp/gladevcp_panel.ini +++ b/configs/sim/axis/gladevcp/gladevcp_panel.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-PANEL-GLADEVCP +MACHINE = Machinekit-PANEL-GLADEVCP # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x7FFFFFFF @@ -47,7 +47,7 @@ DEFAULT_LINEAR_VELOCITY = .25 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit diff --git a/configs/sim/axis/gladevcp/gladevcp_tab.ini b/configs/sim/axis/gladevcp/gladevcp_tab.ini index a0cb91d712d..e6174c5533a 100644 --- a/configs/sim/axis/gladevcp/gladevcp_tab.ini +++ b/configs/sim/axis/gladevcp/gladevcp_tab.ini @@ -1,28 +1,11 @@ -# EMC controller parameters for a simulated machine. - -# General note: Comments can either be preceded with a # or ; - either is -# acceptable, although # is in keeping with most linux config files. - -# General section ------------------------------------------------------------- [EMC] +version = $Revision$ +machine = Machinekit-TAB-GLADEVCP +debug = 0 -# Version of this INI file -VERSION = $Revision$ - -# Name of machine, for use with display, etc. -MACHINE = LinuxCNC-TAB-GLADEVCP - -# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others -#DEBUG = 0x7FFFFFFF -DEBUG = 0 - -# Sections for display options ------------------------------------------------ [DISPLAY] - -# add GladeVCP panel as a tab next to Preview/DRO: -EMBED_TAB_NAME=GladeVCP demo -EMBED_TAB_COMMAND=halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -u ./hitcounter.py -x {XID} ./manual-example.ui - +EMBED_TAB_NAME = Home Parameters +EMBED_TAB_COMMAND = halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -u ./hitcounter.py -x {XID} ./Home.glade # Name of display program, e.g., xemc DISPLAY = axis @@ -49,7 +32,7 @@ DEFAULT_LINEAR_VELOCITY = .25 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit @@ -66,7 +49,7 @@ gif = image-to-gcode jpg = image-to-gcode py = python -# Task controller section ----------------------------------------------------- + Task controller section ----------------------------------------------------- [TASK] # Name of task controller program, e.g., milltask @@ -83,8 +66,6 @@ PARAMETER_FILE = sim.var # gladevcp Demo specific Oword subs live here SUBROUTINE_PATH = ../../nc_files/gladevcp_lib - -# Motion control section ------------------------------------------------------ [EMCMOT] EMCMOT = motmod @@ -100,34 +81,19 @@ BASE_PERIOD = 0 # Servo task period, in nano-seconds SERVO_PERIOD = 1000000 -# Hardware Abstraction Layer section -------------------------------------------------- [HAL] - -# The run script first uses halcmd to execute any HALFILE -# files, and then to execute any individual HALCMD commands. -# - -# list of hal config files to run through halcmd -# files are executed in the order in which they appear HALFILE = core_sim.hal -HALFILE = axis_manualtoolchange.hal HALFILE = simulated_home.hal - -# list of halcmd commands to execute -# commands are executed in the order in which they appear -#HALCMD = save neta - # Single file that is executed after the GUI has started. Only supported by # AXIS at this time (only AXIS creates a HAL component of its own) #POSTGUI_HALFILE = test_postgui.hal -# HAL commands for GladeVCP components in a tab must be executed via -# POSTGUI_HALFILE -POSTGUI_HALFILE = manual-example.hal - +POSTGUI_HALFILE= manual-example.hal HALUI = halui + + # Trajectory planner section -------------------------------------------------- [TRAJ] @@ -159,12 +125,15 @@ MAX_LIMIT = 40.0 FERROR = 0.050 MIN_FERROR = 0.010 HOME_OFFSET = 0.0 +HOME_FINAL_VEL = 0.0 HOME_SEARCH_VEL = 20.0 HOME_LATCH_VEL = 20.0 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO HOME_SEQUENCE = 1 HOME_IS_SHARED = 1 +VOLATILE_HOME = 0 +LOCKING_INDEXER = 0 # Second axis [AXIS_1] @@ -181,11 +150,15 @@ MAX_LIMIT = 40.0 FERROR = 0.050 MIN_FERROR = 0.010 HOME_OFFSET = 0.0 +HOME_FINAL_VEL = 0.0 HOME_SEARCH_VEL = 20.0 HOME_LATCH_VEL = 20.0 HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO HOME_SEQUENCE = 1 +HOME_IS_SHARED = 0 +VOLATILE_HOME = 0 +LOCKING_INDEXER = 0 # Third axis [AXIS_2] @@ -208,6 +181,8 @@ HOME_USE_INDEX = NO HOME_IGNORE_LIMITS = NO HOME_SEQUENCE = 0 HOME_IS_SHARED = 1 +VOLATILE_HOME = 0 +LOCKING_INDEXER = 0 # section for main IO controller parameters ----------------------------------- [EMCIO] @@ -219,6 +194,6 @@ EMCIO = io CYCLE_TIME = 0.100 # tool table file -TOOL_TABLE = sim.tbl +TOOL_TABLE = sim.tbl TOOL_CHANGE_POSITION = 0 0 0 TOOL_CHANGE_QUILL_UP = 1 diff --git a/configs/sim/axis/gladevcp/meter_scale.py b/configs/sim/axis/gladevcp/meter_scale.py index 94b63585856..34a46a07ea9 100644 --- a/configs/sim/axis/gladevcp/meter_scale.py +++ b/configs/sim/axis/gladevcp/meter_scale.py @@ -9,7 +9,7 @@ def _on_max_value_change(self,hal_pin,data=None): self.meter.max = float(hal_pin.get()) self.meter.queue_draw() # force a widget redraw - def __init__(self, halcomp,builder,useropts): + def __init__(self, halcomp,builder,useropts,compname): self.builder = builder # hal pin with change callback. @@ -23,5 +23,5 @@ def __init__(self, halcomp,builder,useropts): self.meter.min = mmin -def get_handlers(halcomp,builder,useropts): - return [HandlerClass(halcomp,builder,useropts)] +def get_handlers(halcomp,builder,useropts,compname): + return [HandlerClass(halcomp,builder,useropts,compname)] diff --git a/configs/sim/axis/gladevcp/probe.ini b/configs/sim/axis/gladevcp/probe.ini index 11e6506627c..17265eed210 100644 --- a/configs/sim/axis/gladevcp/probe.ini +++ b/configs/sim/axis/gladevcp/probe.ini @@ -47,7 +47,7 @@ DEFAULT_LINEAR_VELOCITY = .25 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit diff --git a/configs/sim/axis/gladevcp/probe.py b/configs/sim/axis/gladevcp/probe.py index bc640e4ec31..01baae4fc37 100644 --- a/configs/sim/axis/gladevcp/probe.py +++ b/configs/sim/axis/gladevcp/probe.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # vim: sts=4 sw=4 et -# This is a component of Linuxcnc +# This is a component of Machinekit # probe.py Copyright 2010 Michael Haberler # # @@ -42,7 +42,7 @@ def __init__(self): self.s = linuxcnc.stat(); self.c = linuxcnc.command() except Exception, msg: - print "cant initialize EmcInterface: %s - LinuxCNC not running?" %(msg) + print "cant initialize EmcInterface: %s - Machinekit not running?" %(msg) def running(self,do_poll=True): if do_poll: self.s.poll() @@ -56,7 +56,7 @@ def manual_ok(self,do_poll=True): def ensure_mode(self,m, *p): ''' - If LinuxCNC is not already in one of the modes given, switch it to the first mode + If Machinekit is not already in one of the modes given, switch it to the first mode example: ensure_mode(linuxcnc.MODE_MDI) ensure_mode(linuxcnc.MODE_AUTO, linuxcnc.MODE_MDI) @@ -178,7 +178,7 @@ def on_restore_defaults(self,button,data=None): self.ini.restore_state(self) - def __init__(self, halcomp,builder,useropts): + def __init__(self, halcomp,builder,useropts,compname): self.halcomp = halcomp self.builder = builder @@ -193,7 +193,7 @@ def __init__(self, halcomp,builder,useropts): glib.timeout_add_seconds(1, self._query_emc_status) -def get_handlers(halcomp,builder,useropts): +def get_handlers(halcomp,builder,useropts,compname): global debug for cmd in useropts: @@ -201,4 +201,4 @@ def get_handlers(halcomp,builder,useropts): set_debug(debug) - return [HandlerClass(halcomp,builder,useropts)] + return [HandlerClass(halcomp,builder,useropts,compname)] diff --git a/configs/sim/axis/gladevcp/probe.txt b/configs/sim/axis/gladevcp/probe.txt index 6cb42ed3ff5..f06a4de3843 100644 --- a/configs/sim/axis/gladevcp/probe.txt +++ b/configs/sim/axis/gladevcp/probe.txt @@ -1,4 +1,4 @@ -Probe: a linuxcnc interaction example +Probe: a machinekit interaction example Files: probe.ini config file @@ -14,14 +14,14 @@ probe.save generated for probing ----------------------- Old instructions for running independently: -This needs a running LinuxCNC, for instance Axis - it does 'menu-based probing' +This needs a running Machinekit, for instance Axis - it does 'menu-based probing' It does run fine in simulator mode - just fake a probe contact with the 'Simulated probe contact' button -Make sure LinuxCNC can find the probe.ngc G-code file in this directory. +Make sure Machinekit can find the probe.ngc G-code file in this directory. run like so: -$ export INI_FILE_NAME=/home/mah/linuxcnc2/configs/sim/axis_mm_mah.ini +$ export INI_FILE_NAME=/home/mah/machinekit2/configs/sim/axis_mm_mah.ini $ gladevcp -u probe.py -H probe.hal probe.ui or to get a lot of debug output what gladevcp and probe.py are doing: diff --git a/configs/sim/axis/gladevcp/set-param-from-ini.ini b/configs/sim/axis/gladevcp/set-param-from-ini.ini index cd4e9e9444b..14516ee69f6 100644 --- a/configs/sim/axis/gladevcp/set-param-from-ini.ini +++ b/configs/sim/axis/gladevcp/set-param-from-ini.ini @@ -47,7 +47,7 @@ DEFAULT_LINEAR_VELOCITY = .25 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit diff --git a/configs/sim/axis/haltest.py b/configs/sim/axis/haltest.py new file mode 100644 index 00000000000..7dfbab1fd37 --- /dev/null +++ b/configs/sim/axis/haltest.py @@ -0,0 +1,12 @@ +# example for using Python with cython bindings as a [HAL]HALFILE +# in the ini file, add as last HALFILE: + +#[HAL] +#HALFILE = haltest.py + + +from machinekit.halfile import rt, hal + + +rt.loadrt("supply") +hal.addf("supply.0.update","servo-thread") diff --git a/configs/sim/axis/halui_pyvcp/README b/configs/sim/axis/halui_pyvcp/README index a9326961678..46fbeae090a 100644 --- a/configs/sim/axis/halui_pyvcp/README +++ b/configs/sim/axis/halui_pyvcp/README @@ -2,4 +2,4 @@ Sample config to show the usage of halui & pyvcp. pyvcp = HAL Virtual Control Panel is a way to define virtual buttons & sliders, they will be instantiated as buttons on a GUI, but will behave just like real hardware. Check the Integrators Manual for additional details. -halui = HAL User Interface is a tool to allow LinuxCNC to be controlled by hardware panels (knobs, switches, leds, etc). +halui = HAL User Interface is a tool to allow Machinekit to be controlled by hardware panels (knobs, switches, leds, etc). diff --git a/configs/sim/axis/halui_pyvcp/core_sim.hal b/configs/sim/axis/halui_pyvcp/core_sim.hal index b79df2d33fb..378c8f6dbaf 120000 --- a/configs/sim/axis/halui_pyvcp/core_sim.hal +++ b/configs/sim/axis/halui_pyvcp/core_sim.hal @@ -1 +1 @@ -../../core_sim.hal \ No newline at end of file +../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/axis/halui_pyvcp/halui.ini b/configs/sim/axis/halui_pyvcp/halui.ini index d4995d596f7..666288ded70 100644 --- a/configs/sim/axis/halui_pyvcp/halui.ini +++ b/configs/sim/axis/halui_pyvcp/halui.ini @@ -5,7 +5,7 @@ # Version of this INI file VERSION = $Revision$ -MACHINE = LinuxCNC-HALUI-PYVCP +MACHINE = Machinekit-HALUI-PYVCP # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others # DEBUG = 0x00000003 # DEBUG = 0x00000007 @@ -29,7 +29,7 @@ MAX_SPINDLE_OVERRIDE = 1.2 # Prefix to be used PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 #uncomment the next line if you're using AXIS, and you want the vcp embedded #PYVCP = vcp.xml diff --git a/configs/sim/axis/ini_hal_demo.ini b/configs/sim/axis/ini_hal_demo.ini index 341183b2daf..6663ec54694 100644 --- a/configs/sim/axis/ini_hal_demo.ini +++ b/configs/sim/axis/ini_hal_demo.ini @@ -20,7 +20,7 @@ MAX_FEED_OVERRIDE = 2.0 MAX_SPINDLE_OVERRIDE = 1.0 MAX_LINEAR_VELOCITY = 1.2 DEFAULT_LINEAR_VELOCITY = .25 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 1 EDITOR = gedit # use tooltable columns for diam and z only: diff --git a/configs/sim/axis/ini_with_includes/README b/configs/sim/axis/ini_with_includes/README index 1caff7c9a4e..d07431ff801 100644 --- a/configs/sim/axis/ini_with_includes/README +++ b/configs/sim/axis/ini_with_includes/README @@ -13,7 +13,7 @@ Examples: #INCLUDE /home/myname/inc/filename.inc 3) tilde file spec: -#INCLUDE ~/linuxcnc/myincludes/filename.inc +#INCLUDE ~/machinekit/myincludes/filename.inc Note: diff --git a/configs/sim/axis/ini_with_includes/axis_manualtoolchange.hal b/configs/sim/axis/ini_with_includes/axis_manualtoolchange.hal index 397c8934a1f..d400e3cb871 120000 --- a/configs/sim/axis/ini_with_includes/axis_manualtoolchange.hal +++ b/configs/sim/axis/ini_with_includes/axis_manualtoolchange.hal @@ -1 +1 @@ -../../axis_manualtoolchange.hal \ No newline at end of file +../../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/axis/ini_with_includes/core_sim.hal b/configs/sim/axis/ini_with_includes/core_sim.hal index b79df2d33fb..378c8f6dbaf 120000 --- a/configs/sim/axis/ini_with_includes/core_sim.hal +++ b/configs/sim/axis/ini_with_includes/core_sim.hal @@ -1 +1 @@ -../../core_sim.hal \ No newline at end of file +../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/axis/ini_with_includes/display.inc b/configs/sim/axis/ini_with_includes/display.inc index 0ab36d8c9b0..6a11bb16b44 100644 --- a/configs/sim/axis/ini_with_includes/display.inc +++ b/configs/sim/axis/ini_with_includes/display.inc @@ -9,7 +9,7 @@ MAX_SPINDLE_OVERRIDE = 1.0 MAX_LINEAR_VELOCITY = 1.2 DEFAULT_LINEAR_VELOCITY = .25 PROGRAM_PREFIX = ../../nc_files/ -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit TOOL_EDITOR = tooledit diff --git a/configs/sim/axis/ini_with_includes/emc.inc b/configs/sim/axis/ini_with_includes/emc.inc index 0d049a4c059..f0afff716a2 100644 --- a/configs/sim/axis/ini_with_includes/emc.inc +++ b/configs/sim/axis/ini_with_includes/emc.inc @@ -1,5 +1,5 @@ [EMC] VERSION = 0.0 -MACHINE = LinuxCNC-expand includes demo +MACHINE = Machinekit-expand includes demo DEBUG = 0 diff --git a/configs/sim/axis/iocontrolv2/core_sim.hal b/configs/sim/axis/iocontrolv2/core_sim.hal index b79df2d33fb..378c8f6dbaf 120000 --- a/configs/sim/axis/iocontrolv2/core_sim.hal +++ b/configs/sim/axis/iocontrolv2/core_sim.hal @@ -1 +1 @@ -../../core_sim.hal \ No newline at end of file +../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/axis/jog-while-pause9.ini b/configs/sim/axis/jog-while-pause9.ini new file mode 100644 index 00000000000..920e74c913f --- /dev/null +++ b/configs/sim/axis/jog-while-pause9.ini @@ -0,0 +1,339 @@ +# EMC controller parameters for a simulated machine. + +# General note: Comments can either be preceded with a # or ; - either is +# acceptable, although # is in keeping with most linux config files. + +# General section ------------------------------------------------------------- +[EMC] + +# Version of this INI file +VERSION = $Revision$ + +# Name of machine, for use with display, etc. +MACHINE = Machinekit-HAL-SIM-AXIS + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x7FFFFFFF +DEBUG = 0 + +# Sections for display options ------------------------------------------------ +[DISPLAY] +GLADEVCP=-u gladevcp-jwp.py jwp.ui + +# Name of display program, e.g., xemc +DISPLAY = axis + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.100 + +# Path to help file +HELP_FILE = doc/help.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.2 +MAX_SPINDLE_OVERRIDE = 1.0 +# Prefix to be used +PROGRAM_PREFIX = ../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +EDITOR = gedit + +INCREMENTS = 1 mm, .01 in, .1mm, 1 mil, .1 mil, 1/8000 in + +GEOMETRY = XYZBCUVW + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script + +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + +# Task controller section ----------------------------------------------------- +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.001 + +# Part program interpreter section -------------------------------------------- +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = sim_mm.var + +# Motion control section ------------------------------------------------------ +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# BASE_PERIOD is unused in this configuration but specified in core_sim.hal +BASE_PERIOD = 0 +# Servo task period, in nano-seconds +SERVO_PERIOD = 1000000 + +# Hardware Abstraction Layer section -------------------------------------------------- +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. +# + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear +HALFILE = core_sim9.hal +HALFILE = sim_spindle_encoder.hal +HALFILE = axis_manualtoolchange.hal +HALFILE = simulated_home.hal +HALFILE = locking_indexer.hal + +#HALFILE = core_sim.hal +#HALFILE = sim_spindle_encoder.hal +#HALFILE = axis_manualtoolchange.hal +#HALFILE = simulated_home.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +# Single file that is executed after the GUI has started. Only supported by +# AXIS at this time (only AXIS creates a HAL component of its own) +POSTGUI_HALFILE = retract.hal + +HALUI = halui + +# Trajectory planner section -------------------------------------------------- +[TRAJ] + +#AXES = 3 +#COORDINATES = X Y Z +#HOME = 0 0 0 +AXES = 9 +COORDINATES = X Y Z A B C U V W +HOME = 0 0 0 0 0 0 0 0 0 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 30.48 +MAX_VELOCITY = 53.34 +DEFAULT_ACCELERATION = 508 +MAX_ACCELERATION = 508 +POSITION_FILE = position_mm.txt +NO_FORCE_HOMING = 1 + +# Axes sections --------------------------------------------------------------- + +# First axis +[AXIS_0] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 157.48 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -254 +MAX_LIMIT = 254 +FERROR = 1.27 +MIN_FERROR = .254 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 127 +HOME_LATCH_VEL = 25.4 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 +HOME_IS_SHARED = 1 + +# Second axis +[AXIS_1] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 157.48 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -254 +MAX_LIMIT = 254 +FERROR = 1.27 +MIN_FERROR = .254 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 127 +HOME_LATCH_VEL = 25.4 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 + +# Third axis +[AXIS_2] + +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 157.48 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -50.8 +MAX_LIMIT = 50 +FERROR = 1.27 +MIN_FERROR = .254 +HOME_OFFSET = 25.4 +HOME_SEARCH_VEL = 127 +HOME_LATCH_VEL = 25.4 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 1 + +[AXIS_3] + +TYPE = ANGULAR +HOME = 0.0 +MAX_VELOCITY = 90.0 +MAX_ACCELERATION = 1200.0 +BACKLASH = 0.000 +INPUT_SCALE = 40 +OUTPUT_SCALE = 1.000 +FERROR = 5.0 +MIN_FERROR = 1.0 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 + +[AXIS_4] + +TYPE = ANGULAR +HOME = 0.0 +MAX_VELOCITY = 90.0 +MAX_ACCELERATION = 1200.0 +BACKLASH = 0.000 +INPUT_SCALE = 40 +OUTPUT_SCALE = 1.000 +FERROR = 5.0 +MIN_FERROR = 1.0 +HOME_OFFSET = 45.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 +LOCKING_INDEXER = 1 + +[AXIS_5] + +TYPE = ANGULAR +HOME = 0.0 +MAX_VELOCITY = 90.0 +MAX_ACCELERATION = 1200.0 +BACKLASH = 0.000 +INPUT_SCALE = 40 +OUTPUT_SCALE = 1.000 +FERROR = 5.0 +MIN_FERROR = 1.0 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 + +[AXIS_6] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -10.0 +MAX_LIMIT = 10.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 0 + +[AXIS_7] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -10.0 +MAX_LIMIT = 10.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 0 + +[AXIS_8] + +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -2.0 +MAX_LIMIT = 4.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 0 + +# section for main IO controller parameters ----------------------------------- +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = sim_mm.tbl +TOOL_CHANGE_POSITION = 0 0 50.8 diff --git a/configs/sim/axis/jwp.ui b/configs/sim/axis/jwp.ui new file mode 100644 index 00000000000..2b66bf25268 --- /dev/null +++ b/configs/sim/axis/jwp.ui @@ -0,0 +1,574 @@ + + + + + + + + + + True + 19 + 3 + 2 + 4 + + + True + True + + feed + 2 + + + 1 + 2 + 3 + 4 + + + + + + True + jog +feed + + + 3 + 4 + + + + + + True + x offset + + + 4 + 5 + + + + + + True + y offset + + + 5 + 6 + + + + + + True + z offset + + + 6 + 7 + + + + + + True + True + + coord-x + + + 1 + 2 + 4 + 5 + + + + + + True + True + + coord-y + + + 1 + 2 + 5 + 6 + + + + + + True + True + + coord-z + + + 1 + 2 + 6 + 7 + + + + + + True + + + 1 + 2 + 14 + 15 + + + + + + True + pause-offset- +within-range + + + 14 + 15 + + + + + + True + True + + adjustment6 + + + 1 + 2 + 7 + 8 + + + + + + True + True + + adjustment5 + + + 1 + 2 + 8 + 9 + + + + + + True + True + + adjustment4 + + + 1 + 2 + 9 + 10 + + + + + + True + True + + adjustment3 + + + 1 + 2 + 10 + 11 + + + + + + True + True + + adjustment2 + + + 1 + 2 + 11 + 12 + + + + + + True + True + + adjustment1 + + + 1 + 2 + 12 + 13 + + + + + + True + a offset + + + 7 + 8 + + + + + + True + b offset + + + 8 + 9 + + + + + + True + c offset + + + 9 + 10 + + + + + + True + u offset + + + 10 + 11 + + + + + + True + v offset + + + 11 + 12 + + + + + + True + w offset + + + 12 + 13 + + + + + + True + motion. +in-position + + + 16 + 17 + + + + + + True + + + + 1 + 2 + 16 + 17 + + + + + + True + label + + + 2 + 1 + 2 + + + + + + True + label + + + 1 + 2 + 2 + 3 + + + + + + True + stopped at +motion type: + + + 2 + 3 + + + + + + motion. +feed-hold + True + True + True + + + 17 + 18 + + + + + + True + + + 1 + 2 + 17 + 18 + + + + + + pause- +offset- +enable + True + True + True + + + 13 + 14 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 255 + 1 + 10 + 10 + + + 100 + 1 + 10 + 10 + + + -100 + 100 + 1 + 10 + 10 + + + -100 + 100 + 1 + 10 + 10 + + + -100 + 100 + 1 + 10 + 10 + + + -100 + 100 + 1 + 10 + 10 + + + -100 + 100 + 1 + 10 + 10 + + + -100 + 100 + 1 + 10 + 10 + + + -100 + 100 + 1 + 10 + 10 + + + -100 + 100 + 1 + 10 + 10 + + + -100 + 100 + 1 + 10 + 10 + + + 256 + 1 + 10 + 10 + + + + 1 + 2 + 0.10000000000000001 + 0.10000000000000001 + 0.10000000000000001 + + diff --git a/configs/sim/axis/lathe.ini b/configs/sim/axis/lathe.ini index b9519643962..ea179b3bfda 100644 --- a/configs/sim/axis/lathe.ini +++ b/configs/sim/axis/lathe.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-LATHE +MACHINE = Machinekit-HAL-SIM-LATHE # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others # DEBUG = 0x7FFFFFFF @@ -44,7 +44,7 @@ MAX_SPINDLE_OVERRIDE = 1.0 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 USER_COMMAND_FILE = ~/.axisrc diff --git a/configs/sim/axis/medium.ini b/configs/sim/axis/medium.ini new file mode 100644 index 00000000000..400159f4147 --- /dev/null +++ b/configs/sim/axis/medium.ini @@ -0,0 +1,212 @@ +# EMC controller parameters for a simulated machine. + +# General note: Comments can either be preceded with a # or ; - either is +# acceptable, although # is in keeping with most linux config files. + +# General section ------------------------------------------------------------- +[EMC] + +# Version of this INI file +VERSION = $Revision$ + +# Name of machine, for use with display, etc. +MACHINE = Machinekit-HAL-SIM-AXIS + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x7FFFFFFF +DEBUG = 0 + +# Sections for display options ------------------------------------------------ +[DISPLAY] + +# Name of display program, e.g., xemc +DISPLAY = axis + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.100 + +# Path to help file +HELP_FILE = doc/help.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.2 +MAX_SPINDLE_OVERRIDE = 1.0 + +MAX_LINEAR_VELOCITY = 1.2 +DEFAULT_LINEAR_VELOCITY = .25 +# Prefix to be used +PROGRAM_PREFIX = ../../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +EDITOR = gedit +TOOL_EDITOR = tooledit + +INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script + +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + +# Task controller section ----------------------------------------------------- +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.001 + +# Part program interpreter section -------------------------------------------- +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = sim.var + +# Motion control section ------------------------------------------------------ +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# BASE_PERIOD is unused in this configuration but specified in core_sim.hal +BASE_PERIOD = 0 +# Servo task period, in nano-seconds +SERVO_PERIOD = 1000000 + +# Hardware Abstraction Layer section -------------------------------------------------- +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. +# + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear +HALFILE = core_sim.hal +HALFILE = sim_spindle_encoder.hal +HALFILE = axis_manualtoolchange.hal +HALFILE = simulated_home.hal +HALFILE = check_constraints.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +# Single file that is executed after the GUI has started. Only supported by +# AXIS at this time (only AXIS creates a HAL component of its own) +#POSTGUI_HALFILE = test_postgui.hal + +HALUI = halui + +# Trajectory planner section -------------------------------------------------- +[TRAJ] + +AXES = 3 +COORDINATES = X Y Z +HOME = 0 0 0 +LINEAR_UNITS = inch +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 10 +POSITION_FILE = position.txt +MAX_LINEAR_VELOCITY = 10 + +# Axes sections --------------------------------------------------------------- + +# First axis +[AXIS_0] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 1.83 +MAX_ACCELERATION = 15 +BACKLASH = 0.000 +INPUT_SCALE = 10000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -40.0 +MAX_LIMIT = 40.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 20.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 +HOME_IS_SHARED = 1 + +# Second axis +[AXIS_1] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 1.83 +MAX_ACCELERATION = 15 +BACKLASH = 0.000 +INPUT_SCALE = 10000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -40.0 +MAX_LIMIT = 40.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 20.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 + +# Third axis +[AXIS_2] + +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 1.5 +MAX_ACCELERATION = 15 +BACKLASH = 0.000 +INPUT_SCALE = 10000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -8.0 +MAX_LIMIT = 8.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 1.0 +HOME_SEARCH_VEL = 20.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 1 + +# section for main IO controller parameters ----------------------------------- +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = sim.tbl +TOOL_CHANGE_POSITION = 0 0 0 +TOOL_CHANGE_QUILL_UP = 1 diff --git a/configs/sim/axis/ngcgui/README b/configs/sim/axis/ngcgui/README index c5c9159e521..25560c4e3df 100644 --- a/configs/sim/axis/ngcgui/README +++ b/configs/sim/axis/ngcgui/README @@ -4,7 +4,7 @@ pyngcgui -- python, gladevcp implementation of ngcgui that can be embedded in gu In the packaged version of linuxCNC, ngcgui_lib is created as a symbolic link to a system directory owned by root: -/usr/share/linuxcnc/ncfiles/ngcgui_lib +/usr/share/machinekit/ncfiles/ngcgui_lib This library is not ordinarily changed by the user. To modify a library .ngc file, copy the .ngc file to the [DISPLAY]PROGRAM_PREFIX directory or to a directory that is included in the path specified by [RS274NGC]SUBROUTINE_PATH and (optionally) change the filename. diff --git a/configs/sim/axis/ngcgui/axis_manualtoolchange.hal b/configs/sim/axis/ngcgui/axis_manualtoolchange.hal index 397c8934a1f..d400e3cb871 120000 --- a/configs/sim/axis/ngcgui/axis_manualtoolchange.hal +++ b/configs/sim/axis/ngcgui/axis_manualtoolchange.hal @@ -1 +1 @@ -../../axis_manualtoolchange.hal \ No newline at end of file +../../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/axis/ngcgui/core_sim.hal b/configs/sim/axis/ngcgui/core_sim.hal index b79df2d33fb..378c8f6dbaf 120000 --- a/configs/sim/axis/ngcgui/core_sim.hal +++ b/configs/sim/axis/ngcgui/core_sim.hal @@ -1 +1 @@ -../../core_sim.hal \ No newline at end of file +../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/axis/ngcgui/ngcgui.ini b/configs/sim/axis/ngcgui/ngcgui.ini index 70945aa9f88..c43469e7c1a 100644 --- a/configs/sim/axis/ngcgui/ngcgui.ini +++ b/configs/sim/axis/ngcgui/ngcgui.ini @@ -57,7 +57,7 @@ MAX_FEED_OVERRIDE = 2.0 MAX_SPINDLE_OVERRIDE = 1.0 MAX_LINEAR_VELOCITY = 1.2 DEFAULT_LINEAR_VELOCITY = .25 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 1 EDITOR = gedit # use tooltable columns for diam and z only: diff --git a/configs/sim/axis/ngcgui/ngcgui_gcmc.ini b/configs/sim/axis/ngcgui/ngcgui_gcmc.ini index cbededcc423..894a132420f 100644 --- a/configs/sim/axis/ngcgui/ngcgui_gcmc.ini +++ b/configs/sim/axis/ngcgui/ngcgui_gcmc.ini @@ -61,7 +61,7 @@ MAX_FEED_OVERRIDE = 2.0 MAX_SPINDLE_OVERRIDE = 1.0 MAX_LINEAR_VELOCITY = 1.2 DEFAULT_LINEAR_VELOCITY = .25 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 1 EDITOR = gedit # use tooltable columns for diam and z only: diff --git a/configs/sim/axis/ngcgui/ngcgui_lathe.ini b/configs/sim/axis/ngcgui/ngcgui_lathe.ini index 5006dcb5218..8a38d19e435 100644 --- a/configs/sim/axis/ngcgui/ngcgui_lathe.ini +++ b/configs/sim/axis/ngcgui/ngcgui_lathe.ini @@ -46,7 +46,7 @@ POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 MAX_SPINDLE_OVERRIDE = 1.0 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 [FILTER] diff --git a/configs/sim/axis/ngcgui/ngcgui_simple.ini b/configs/sim/axis/ngcgui/ngcgui_simple.ini index 7e662185b16..448bfa19685 100644 --- a/configs/sim/axis/ngcgui/ngcgui_simple.ini +++ b/configs/sim/axis/ngcgui/ngcgui_simple.ini @@ -45,7 +45,7 @@ MAX_FEED_OVERRIDE = 2.0 MAX_SPINDLE_OVERRIDE = 1.0 MAX_LINEAR_VELOCITY = 1.2 DEFAULT_LINEAR_VELOCITY = .25 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 1 EDITOR = gedit TOOL_EDITOR = tooledit diff --git a/configs/sim/axis/ngcgui/pyngcgui_axis.ini b/configs/sim/axis/ngcgui/pyngcgui_axis.ini index a9c747e4acc..dbc008f39fe 100644 --- a/configs/sim/axis/ngcgui/pyngcgui_axis.ini +++ b/configs/sim/axis/ngcgui/pyngcgui_axis.ini @@ -58,7 +58,7 @@ MAX_FEED_OVERRIDE = 2.0 MAX_SPINDLE_OVERRIDE = 1.0 MAX_LINEAR_VELOCITY = 1.2 DEFAULT_LINEAR_VELOCITY = .25 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 1 EDITOR = gedit # use tooltable columns for diam and z only: diff --git a/configs/sim/axis/ngcgui/pyngcgui_gcmc.ini b/configs/sim/axis/ngcgui/pyngcgui_gcmc.ini index adffa24bb89..38af62a00d6 100644 --- a/configs/sim/axis/ngcgui/pyngcgui_gcmc.ini +++ b/configs/sim/axis/ngcgui/pyngcgui_gcmc.ini @@ -60,7 +60,7 @@ MAX_FEED_OVERRIDE = 2.0 MAX_SPINDLE_OVERRIDE = 1.0 MAX_LINEAR_VELOCITY = 1.2 DEFAULT_LINEAR_VELOCITY = .25 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 1 EDITOR = gedit # use tooltable columns for diam and z only: diff --git a/configs/sim/axis/orphans/axis_manualtoolchange.hal b/configs/sim/axis/orphans/axis_manualtoolchange.hal index 397c8934a1f..d400e3cb871 120000 --- a/configs/sim/axis/orphans/axis_manualtoolchange.hal +++ b/configs/sim/axis/orphans/axis_manualtoolchange.hal @@ -1 +1 @@ -../../axis_manualtoolchange.hal \ No newline at end of file +../../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/axis/orphans/core_sim_noio.hal b/configs/sim/axis/orphans/core_sim_noio.hal index be0e9b57639..b12c9ec5d44 100644 --- a/configs/sim/axis/orphans/core_sim_noio.hal +++ b/configs/sim/axis/orphans/core_sim_noio.hal @@ -4,7 +4,9 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # load 6 differentiators (for velocity and accel signals loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv # load additional blocks diff --git a/configs/sim/axis/orphans/core_sim_noiocontrol.hal b/configs/sim/axis/orphans/core_sim_noiocontrol.hal index 64e673d00fa..686b8032ba3 100644 --- a/configs/sim/axis/orphans/core_sim_noiocontrol.hal +++ b/configs/sim/axis/orphans/core_sim_noiocontrol.hal @@ -4,7 +4,9 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # load 6 differentiators (for velocity and accel signals loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv # load additional blocks diff --git a/configs/sim/axis/orphans/core_sim_test.hal b/configs/sim/axis/orphans/core_sim_test.hal index 7b263ddb35d..eb12a961494 100644 --- a/configs/sim/axis/orphans/core_sim_test.hal +++ b/configs/sim/axis/orphans/core_sim_test.hal @@ -4,7 +4,9 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # load 6 differentiators (for velocity and accel signals loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv # load additional blocks diff --git a/configs/sim/axis/profile_axis.ini b/configs/sim/axis/profile_axis.ini index 8a04a2345d8..72e793e909c 100644 --- a/configs/sim/axis/profile_axis.ini +++ b/configs/sim/axis/profile_axis.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-AXIS +MACHINE = Machinekit-HAL-SIM-AXIS # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x7FFFFFFF @@ -44,7 +44,7 @@ DEFAULT_LINEAR_VELOCITY = .25 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = xterm -e vim diff --git a/configs/sim/axis/pyhal.ini b/configs/sim/axis/pyhal.ini new file mode 100644 index 00000000000..3573effd261 --- /dev/null +++ b/configs/sim/axis/pyhal.ini @@ -0,0 +1,217 @@ +# EMC controller parameters for a simulated machine. + +# General note: Comments can either be preceded with a # or ; - either is +# acceptable, although # is in keeping with most linux config files. + +# General section ------------------------------------------------------------- +[EMC] + +# Version of this INI file +VERSION = $Revision$ + +# Name of machine, for use with display, etc. +MACHINE = Machinekit-HAL-SIM-AXIS + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +# DEBUG = 0x7FFFFFFF +DEBUG = 0 + +# Sections for display options ------------------------------------------------ +[DISPLAY] + +# Name of display program, e.g., xemc +DISPLAY = axis + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.100 + +# Path to help file +HELP_FILE = doc/help.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.2 +MAX_SPINDLE_OVERRIDE = 1.0 +# Prefix to be used +PROGRAM_PREFIX = ../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +EDITOR = gedit + +INCREMENTS = 1 mm, .01 in, .1mm, 1 mil, .1 mil, 1/8000 in +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script + +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + +# Task controller section ----------------------------------------------------- +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.001 + +# Part program interpreter section -------------------------------------------- +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = sim_mm.var + +# Motion control section ------------------------------------------------------ +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# BASE_PERIOD is unused in this configuration but specified in core_sim.hal +BASE_PERIOD = 0 +# Servo task period, in nano-seconds +SERVO_PERIOD = 1000000 + +# Hardware Abstraction Layer section -------------------------------------------------- +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. +# + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear +HALFILE = core_sim.hal +HALFILE = sim_spindle_encoder.hal +HALFILE = axis_manualtoolchange.hal +HALFILE = simulated_home.hal + +# this will be run through Python +HALFILE = haltest.py + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +# Single file that is executed after the GUI has started. Only supported by +# AXIS at this time (only AXIS creates a HAL component of its own) +#POSTGUI_HALFILE = test_postgui.hal + +HALUI = halui + +# Trajectory planner section -------------------------------------------------- +[TRAJ] + +AXES = 3 +COORDINATES = X Y Z +HOME = 0 0 0 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 30.48 +MAX_VELOCITY = 53.34 +DEFAULT_ACCELERATION = 508 +MAX_ACCELERATION = 508 +POSITION_FILE = position_mm.txt +ARC_BLEND_ENABLE = 1 +ARC_BLEND_FALLBACK_ENABLE = 1 +ARC_BLEND_OPTIMIZATION_DEPTH = 50 +#Use this setting for no smoothing (for debugging and stress-testing) +ARC_BLEND_SMOOTHING_THRESHOLD = .75 +#Use this setting for "normal" smoothing, i.e. if we blend over more than 40% of a segment +#ARC_BLEND_SMOOTHING_THRESHOLD = 0.40 + +# Axes sections --------------------------------------------------------------- + +# First axis +[AXIS_0] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 157.48 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -254 +MAX_LIMIT = 254 +FERROR = 1.27 +MIN_FERROR = .254 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 127 +HOME_LATCH_VEL = 25.4 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 +HOME_IS_SHARED = 1 + +# Second axis +[AXIS_1] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 157.48 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -254 +MAX_LIMIT = 254 +FERROR = 1.27 +MIN_FERROR = .254 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 127 +HOME_LATCH_VEL = 25.4 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 + +# Third axis +[AXIS_2] + +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 157.48 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -50.8 +MAX_LIMIT = 101.6 +FERROR = 1.27 +MIN_FERROR = .254 +HOME_OFFSET = 25.4 +HOME_SEARCH_VEL = 127 +HOME_LATCH_VEL = 25.4 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 1 + +# section for main IO controller parameters ----------------------------------- +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = sim_mm.tbl +TOOL_CHANGE_POSITION = 0 0 50.8 diff --git a/configs/sim/axis/random_tc.ini b/configs/sim/axis/random_tc.ini index 479a75805d9..816b591f3e0 100644 --- a/configs/sim/axis/random_tc.ini +++ b/configs/sim/axis/random_tc.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-AXIS +MACHINE = Machinekit-HAL-SIM-AXIS # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x7FFFFFFF @@ -44,7 +44,7 @@ DEFAULT_LINEAR_VELOCITY = .25 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = xterm -e vim diff --git a/configs/sim/axis/remap/cycle/README b/configs/sim/axis/remap/cycle/README index 11085be3881..0411e5adfa4 100644 --- a/configs/sim/axis/remap/cycle/README +++ b/configs/sim/axis/remap/cycle/README @@ -32,7 +32,7 @@ Sticky parameters are handled properly. Usage: -linuxcnc cycle.ini +machinekit cycle.ini hit run and see what happens. diff --git a/configs/sim/axis/remap/cycle/axis_manualtoolchange.hal b/configs/sim/axis/remap/cycle/axis_manualtoolchange.hal index 6d81312e153..1938f082ad8 120000 --- a/configs/sim/axis/remap/cycle/axis_manualtoolchange.hal +++ b/configs/sim/axis/remap/cycle/axis_manualtoolchange.hal @@ -1 +1 @@ -../../../axis_manualtoolchange.hal \ No newline at end of file +../../../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/axis/remap/cycle/core_sim9.hal b/configs/sim/axis/remap/cycle/core_sim9.hal index f5041339fbf..158d3d4702d 120000 --- a/configs/sim/axis/remap/cycle/core_sim9.hal +++ b/configs/sim/axis/remap/cycle/core_sim9.hal @@ -1 +1 @@ -../../../core_sim9.hal \ No newline at end of file +../../../../common/core_sim9.hal \ No newline at end of file diff --git a/configs/sim/axis/remap/cycle/cycle.ini b/configs/sim/axis/remap/cycle/cycle.ini index cd97e2932b0..906961cd770 100644 --- a/configs/sim/axis/remap/cycle/cycle.ini +++ b/configs/sim/axis/remap/cycle/cycle.ini @@ -43,7 +43,7 @@ MAX_SPINDLE_OVERRIDE = 1.0 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit diff --git a/configs/sim/axis/remap/extend-builtins/axis_manualtoolchange.hal b/configs/sim/axis/remap/extend-builtins/axis_manualtoolchange.hal index 6d81312e153..1938f082ad8 120000 --- a/configs/sim/axis/remap/extend-builtins/axis_manualtoolchange.hal +++ b/configs/sim/axis/remap/extend-builtins/axis_manualtoolchange.hal @@ -1 +1 @@ -../../../axis_manualtoolchange.hal \ No newline at end of file +../../../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/axis/remap/extend-builtins/core_sim.hal b/configs/sim/axis/remap/extend-builtins/core_sim.hal index 97b77da6fdf..2b767a94bf6 120000 --- a/configs/sim/axis/remap/extend-builtins/core_sim.hal +++ b/configs/sim/axis/remap/extend-builtins/core_sim.hal @@ -1 +1 @@ -../../../core_sim.hal \ No newline at end of file +../../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/axis/remap/getting-started/axis_manualtoolchange.hal b/configs/sim/axis/remap/getting-started/axis_manualtoolchange.hal index 397c8934a1f..1938f082ad8 120000 --- a/configs/sim/axis/remap/getting-started/axis_manualtoolchange.hal +++ b/configs/sim/axis/remap/getting-started/axis_manualtoolchange.hal @@ -1 +1 @@ -../../axis_manualtoolchange.hal \ No newline at end of file +../../../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/axis/remap/getting-started/core_sim.hal b/configs/sim/axis/remap/getting-started/core_sim.hal index b79df2d33fb..2b767a94bf6 120000 --- a/configs/sim/axis/remap/getting-started/core_sim.hal +++ b/configs/sim/axis/remap/getting-started/core_sim.hal @@ -1 +1 @@ -../../core_sim.hal \ No newline at end of file +../../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/axis/remap/getting-started/demo.ini b/configs/sim/axis/remap/getting-started/demo.ini index f07d3d71cef..be5116a8b8e 100644 --- a/configs/sim/axis/remap/getting-started/demo.ini +++ b/configs/sim/axis/remap/getting-started/demo.ini @@ -188,6 +188,14 @@ REMAP=M462 modalgroup=10 argspec=PQ py=m462 REMAP=M465 modalgroup=10 argspec=PQ py=m465 +# example for remapping the builtin G28/G28.1/G30/G30.1 codes + +REMAP=g28 modalgroup=1 argspec=xyzabcuvw py=g280 +REMAP=g28.1 modalgroup=1 py=g281 + +REMAP=g30 modalgroup=1 argspec=xyzabcuvw py=g300 +REMAP=g30.1 modalgroup=1 py=g301 + # this is important - read nc_subroutines/on_abort.ngc ON_ABORT_COMMAND=O call diff --git a/configs/sim/axis/remap/getting-started/python/remap.py b/configs/sim/axis/remap/getting-started/python/remap.py index c48bc1419b8..cfcb2551924 100644 --- a/configs/sim/axis/remap/getting-started/python/remap.py +++ b/configs/sim/axis/remap/getting-started/python/remap.py @@ -94,3 +94,29 @@ def m465(self, **words): else: CLEAR_AUX_OUTPUT_BIT(p) return INTERP_OK + + + +def g280(self, **words): + MESSAGE("g280:") + for key in words: + MESSAGE("word '%s' = %f" % (key, words[key])) + return INTERP_OK + +def g281(self, **words): + MESSAGE("g281:") + for key in words: + MESSAGE("word '%s' = %f" % (key, words[key])) + return INTERP_OK + +def g300(self, **words): + MESSAGE("g300:") + for key in words: + MESSAGE("word '%s' = %f" % (key, words[key])) + return INTERP_OK + +def g301(self, **words): + MESSAGE("g301:") + for key in words: + MESSAGE("word '%s' = %f" % (key, words[key])) + return INTERP_OK diff --git a/configs/sim/axis/remap/iocontrol-removed/core_sim.hal b/configs/sim/axis/remap/iocontrol-removed/core_sim.hal index 97b77da6fdf..2b767a94bf6 120000 --- a/configs/sim/axis/remap/iocontrol-removed/core_sim.hal +++ b/configs/sim/axis/remap/iocontrol-removed/core_sim.hal @@ -1 +1 @@ -../../../core_sim.hal \ No newline at end of file +../../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/axis/remap/iocontrol-removed/core_sim_test.hal b/configs/sim/axis/remap/iocontrol-removed/core_sim_test.hal index 322b53d1f68..e5fb5b8df90 100644 --- a/configs/sim/axis/remap/iocontrol-removed/core_sim_test.hal +++ b/configs/sim/axis/remap/iocontrol-removed/core_sim_test.hal @@ -4,7 +4,9 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # load 6 differentiators (for velocity and accel signals loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv # load additional blocks diff --git a/configs/sim/axis/remap/iocontrol-removed/python/customtask.py b/configs/sim/axis/remap/iocontrol-removed/python/customtask.py index 7eaf536cf93..2e367aa548f 100644 --- a/configs/sim/axis/remap/iocontrol-removed/python/customtask.py +++ b/configs/sim/axis/remap/iocontrol-removed/python/customtask.py @@ -11,7 +11,7 @@ try: import emc except ImportError: - import linuxcnc as emc # ini only + import machinekit as emc # ini only try: import cPickle as pickle diff --git a/configs/sim/axis/remap/list-recorder/README b/configs/sim/axis/remap/list-recorder/README new file mode 100644 index 00000000000..3437f3ed237 --- /dev/null +++ b/configs/sim/axis/remap/list-recorder/README @@ -0,0 +1,16 @@ +This is an example to show 'profile recording and replay' ("in principle") as discussed on emc-users, 'G71 lathe roughing cycle' + + + +linuxcnc list-recorder.ini + +hit run and see what happens. + +To understand how things fit together: + +- see the REMAP statements in cycle.ini +- python/remap.py contains the Python glue +- python/recorder.py is 'the profile recorder' + + +ps: if the self.execute("some gcode") call fails, the error message is less than helpful. This can be fixed. \ No newline at end of file diff --git a/configs/sim/axis/remap/list-recorder/axis_manualtoolchange.hal b/configs/sim/axis/remap/list-recorder/axis_manualtoolchange.hal new file mode 120000 index 00000000000..397c8934a1f --- /dev/null +++ b/configs/sim/axis/remap/list-recorder/axis_manualtoolchange.hal @@ -0,0 +1 @@ +../../axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/axis/remap/list-recorder/core_sim9.hal b/configs/sim/axis/remap/list-recorder/core_sim9.hal new file mode 120000 index 00000000000..32979d06ff8 --- /dev/null +++ b/configs/sim/axis/remap/list-recorder/core_sim9.hal @@ -0,0 +1 @@ +../../core_sim9.hal \ No newline at end of file diff --git a/configs/sim/axis/remap/list-recorder/list-recorder.ini b/configs/sim/axis/remap/list-recorder/list-recorder.ini new file mode 100644 index 00000000000..ac3c58d2064 --- /dev/null +++ b/configs/sim/axis/remap/list-recorder/list-recorder.ini @@ -0,0 +1,364 @@ +# EMC controller parameters for a simulated machine. + +# General note: Comments can either be preceded with a # or ; - either is +# acceptable, although # is in keeping with most linux config files. + +# General section ------------------------------------------------------------- +[EMC] + +# Version of this INI file +VERSION = $Revision$ + +# Name of machine, for use with display, etc. +MACHINE = LinuxCNC-HAL-SIM-AXIS + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x7FFFFFFF +DEBUG = 0 +#DEBUG = 0x00080000 # debug flag for cycles + +# Sections for display options ------------------------------------------------ +[DISPLAY] + +# Name of display program, e.g., xemc +DISPLAY = axis +OPEN_FILE=./nc_files/list.ngc + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.100 + +# Path to help file +HELP_FILE = doc/help.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.2 +MAX_SPINDLE_OVERRIDE = 1.0 +# Prefix to be used +PROGRAM_PREFIX = /nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = linuxcnc.gif +INTRO_TIME = 5 + +EDITOR = gedit + +INCREMENTS = 1 mm, .01 in, .1mm, 1 mil, .1 mil, 1/8000 in + +GEOMETRY = XYZBCUVW + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script + +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + +# Task controller section ----------------------------------------------------- +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.001 + +[PYTHON] +# where to find Python code: + +# code specific for this configuration +PATH_PREPEND=./python +# generic support code +#PATH_APPEND=../python-stdglue + +# import the following Python module +TOPLEVEL=python/toplevel.py + +# the higher the more verbose tracing of the Python plugin +LOG_LEVEL = 0 + + +# Part program interpreter section -------------------------------------------- +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = sim-9axis.var +SUBROUTINE_PATH = nc_subroutines:../../../axis/nc_files/remap_lib/common_nc_subs +LOG_LEVEL = 1 + + +#recording functions +# Q = profile id +REMAP=G0.1 argspec=nQxyzabcuvw python=g01 modalgroup=1 +REMAP=G1.1 argspec=nQxyzabcuvw python=g11 modalgroup=1 +REMAP=G2.1 argspec=nQxyzabcuvwijkpr python=g21 modalgroup=1 +REMAP=G3.1 argspec=nQxyzabcuvwijkpr python=g31 modalgroup=1 +# delete profile Q- +REMAP=M200 argspec=Q python=m200 modalgroup=10 +# print profile Q- +REMAP=M201 argspec=Q python=m201 modalgroup=10 +# execute commands in profile Q- +REMAP=M202 argspec=Q python=g70 modalgroup=10 + +# this is important - read common_nc_subs/reset_state.ngc +ON_ABORT_COMMAND=O call + +# Motion control section ------------------------------------------------------ +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# Servo task period, in nano-seconds +SERVO_PERIOD = 1000000 + +# Hardware Abstraction Layer section -------------------------------------------------- +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. +# + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear +HALFILE = core_sim9.hal +HALFILE = sim_spindle_encoder.hal +HALFILE = axis_manualtoolchange.hal +HALFILE = simulated_home.hal +HALFILE = locking_indexer.hal +#HALFILE = gamepad.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +# Single file that is executed after the GUI has started. Only supported by +# AXIS at this time (only AXIS creates a HAL component of its own) +#POSTGUI_HALFILE = test_postgui.hal + +HALUI = halui + +# Trajectory planner section -------------------------------------------------- +[TRAJ] + +AXES = 9 +COORDINATES = X Y Z A B C U V W +HOME = 0 0 0 0 0 0 0 0 0 +LINEAR_UNITS = inch +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 1.0 +DEFAULT_ANGULAR_VELOCITY = 45.0 +POSITION_FILE = position9.txt +MAX_LINEAR_VELOCITY = 1.2 +MAX_ANGULAR_VELOCITY = 90.0 +NO_FORCE_HOMING = 1 + +# Axes sections --------------------------------------------------------------- + +[AXIS_0] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 1.2 +MAX_ACCELERATION = 20.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -100.0 +MAX_LIMIT = 100.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 5.0 +HOME_LATCH_VEL = 1.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 +HOME_IS_SHARED = 1 + +[AXIS_1] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 1.2 +MAX_ACCELERATION = 20.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -100.0 +MAX_LIMIT = 100.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 5.0 +HOME_LATCH_VEL = 1.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 + +[AXIS_2] + +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 1.2 +MAX_ACCELERATION = 20.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -100.0 +MAX_LIMIT = 100.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 1.0 +HOME_SEARCH_VEL = 5.0 +HOME_LATCH_VEL = 1.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 1 + +[AXIS_3] + +TYPE = ANGULAR +HOME = 0.0 +MAX_VELOCITY = 90.0 +MAX_ACCELERATION = 1200.0 +BACKLASH = 0.000 +INPUT_SCALE = 40 +OUTPUT_SCALE = 1.000 +FERROR = 5.0 +MIN_FERROR = 1.0 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 + +[AXIS_4] + +TYPE = ANGULAR +HOME = 0.0 +MAX_VELOCITY = 90.0 +MAX_ACCELERATION = 1200.0 +BACKLASH = 0.000 +INPUT_SCALE = 40 +OUTPUT_SCALE = 1.000 +FERROR = 5.0 +MIN_FERROR = 1.0 +HOME_OFFSET = 45.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 +LOCKING_INDEXER = 1 + +[AXIS_5] + +TYPE = ANGULAR +HOME = 0.0 +MAX_VELOCITY = 90.0 +MAX_ACCELERATION = 1200.0 +BACKLASH = 0.000 +INPUT_SCALE = 40 +OUTPUT_SCALE = 1.000 +FERROR = 5.0 +MIN_FERROR = 1.0 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 + +[AXIS_6] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 1.2 +MAX_ACCELERATION = 20.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -10.0 +MAX_LIMIT = 10.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 0 + +[AXIS_7] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 1.2 +MAX_ACCELERATION = 20.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -10.0 +MAX_LIMIT = 10.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 0 + +[AXIS_8] + +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 1.2 +MAX_ACCELERATION = 20.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -2.0 +MAX_LIMIT = 4.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 0 + + +# section for main IO controller parameters ----------------------------------- +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl +TOOL_CHANGE_POSITION = 0 0 2 diff --git a/configs/sim/axis/remap/list-recorder/locking_indexer.hal b/configs/sim/axis/remap/list-recorder/locking_indexer.hal new file mode 120000 index 00000000000..fb64a2c8023 --- /dev/null +++ b/configs/sim/axis/remap/list-recorder/locking_indexer.hal @@ -0,0 +1 @@ +../../locking_indexer.hal \ No newline at end of file diff --git a/configs/sim/axis/remap/list-recorder/nc_files/list.ngc b/configs/sim/axis/remap/list-recorder/nc_files/list.ngc new file mode 100644 index 00000000000..9609fccc792 --- /dev/null +++ b/configs/sim/axis/remap/list-recorder/nc_files/list.ngc @@ -0,0 +1,37 @@ +; http://www.bpuk.org/linuxcnc/test.ngc +; G18 G21 G91.1 +; T02 M06 G43 +; S2000 M03 +; (Bottom to top, right to left) +; (G1 X30 Z5 F1000) +; G0 X25 Z1.0 (Start Position before commanding the cycle) +; G71 P1 Q8 D0.5 F900 J1 L1 I0.5 K0.5 + +; N1 G0 X5 +; N2 G1 Z-10 +; N3 G3 X10 Z-15 R5.5 +; N4 G1 Z-20 +; N5 G2 X15 Z-25 R5.5 +; N6 G1 X18 +; N7 G1 X20 Z-28 +; N8 G1 X25 +; M2 + +; record in profile 47 +G0.1 Q47 X5 (foo) +G1.1 Q47 Z-10 +G3.1 Q47 X10 Z-15 R5.5 +G1.1 Q47 Z-20 +G2.1 Q47 X15 Z-25 R5.5 +G1.1 Q47 X18 +G1.1 Q47 X20 Z-28 +G1.1 Q47 X25 + +; print profile 47 +m201 q47 + +f100 +; execute profile 47 +M202 q47 + +m2 diff --git a/configs/sim/axis/remap/list-recorder/python/recorder.py b/configs/sim/axis/remap/list-recorder/python/recorder.py new file mode 100644 index 00000000000..b70d71f9eb2 --- /dev/null +++ b/configs/sim/axis/remap/list-recorder/python/recorder.py @@ -0,0 +1,14 @@ + +profiles = dict() + +def add(words): + id = int(words["q"]) + del words["q"] + + print "profile",id,"words=",words + + if not profiles.has_key(id): + profiles[id] = list() + + profiles[id].append(words) + diff --git a/configs/sim/axis/remap/list-recorder/python/remap.py b/configs/sim/axis/remap/list-recorder/python/remap.py new file mode 100644 index 00000000000..8e7f0b1a739 --- /dev/null +++ b/configs/sim/axis/remap/list-recorder/python/remap.py @@ -0,0 +1,64 @@ +import copy + +import recorder + +from interpreter import * +# raises InterpreterException if execute() or read() fails +throw_exceptions = 1 + + +#from stdglue import init_stdglue + +def g01(self,**words): + print "LINE= ",words['n'] + words["code"] = "g0" + recorder.add(words) + +def g11(self,**words): + words["code"] = "g1" + recorder.add(words) + +def g21(self,**words): + words["code"] = "g2" + recorder.add(words) + +def g31(self,**words): + words["code"] = "g3" + recorder.add(words) + +def m200(self,**words): + profile = int(words["q"]) + recorder.profiles[profile] = list() + +def m201(self,**words): + print "m201 words=",words + profile = int(words["q"]) + print "profile",profile + print recorder.profiles[profile] + +def g70(self,**words): + q = int(words["q"]) + + if not recorder.profiles.has_key(q): + return "G70: profile %d not defined" % q + + for cmd in recorder.profiles[q]: + line = "" + stmt = copy.deepcopy(cmd) + line += stmt["code"] + " " + del stmt["code"] + lineno = int(stmt["n"]) + del stmt["n"] + for word in stmt.iterkeys(): + line += word + str(stmt[word]) + " " + try: + print "executing %d: %s" % (lineno,line) + self.execute(line,lineno) + lineno += 1 + + except InterpreterException,e: + msg = "%d: '%s' - %s" % (e.line_number,e.line_text, e.error_message) + print "----------------",msg + return msg + return INTERP_OK + diff --git a/configs/sim/axis/remap/list-recorder/python/toplevel.py b/configs/sim/axis/remap/list-recorder/python/toplevel.py new file mode 100644 index 00000000000..fd5264b3f95 --- /dev/null +++ b/configs/sim/axis/remap/list-recorder/python/toplevel.py @@ -0,0 +1,7 @@ +import remap +import recorder + + +def __init__(self): + # handle any per-module initialisation tasks here + pass diff --git a/configs/sim/axis/remap/list-recorder/sim_spindle_encoder.hal b/configs/sim/axis/remap/list-recorder/sim_spindle_encoder.hal new file mode 120000 index 00000000000..e83032b1ec5 --- /dev/null +++ b/configs/sim/axis/remap/list-recorder/sim_spindle_encoder.hal @@ -0,0 +1 @@ +../../sim_spindle_encoder.hal \ No newline at end of file diff --git a/configs/sim/axis/remap/list-recorder/simulated_home.hal b/configs/sim/axis/remap/list-recorder/simulated_home.hal new file mode 120000 index 00000000000..a0e8e5601fb --- /dev/null +++ b/configs/sim/axis/remap/list-recorder/simulated_home.hal @@ -0,0 +1 @@ +../../simulated_home.hal \ No newline at end of file diff --git a/configs/sim/axis/remap/list-recorder/tool.tbl b/configs/sim/axis/remap/list-recorder/tool.tbl new file mode 100644 index 00000000000..64d265b900e --- /dev/null +++ b/configs/sim/axis/remap/list-recorder/tool.tbl @@ -0,0 +1,4 @@ +T1 P11 D0.125000 Z+0.511000 ;1/8 end mill +T2 P12 D0.062500 Z+0.100000 ;1/16 end mill +T3 P13 D0.201000 Z+1.273000 ;#7 tap drill +T4 P14 D0.345 Z+1.11 ;#random drill diff --git a/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/core_sim.hal b/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/core_sim.hal index 97b77da6fdf..2b767a94bf6 120000 --- a/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/core_sim.hal +++ b/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/core_sim.hal @@ -1 +1 @@ -../../../core_sim.hal \ No newline at end of file +../../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/python/gladevcp-handler.py b/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/python/gladevcp-handler.py index 5a04dbff5ff..3170e2acb89 100644 --- a/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/python/gladevcp-handler.py +++ b/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/python/gladevcp-handler.py @@ -16,10 +16,10 @@ def on_led_change(self,hal_led,data=None): else: self.change_text.set_label("") - def __init__(self, halcomp,builder,useropts): + def __init__(self, halcomp,builder,useropts,compname): self.halcomp = halcomp self.change_text = builder.get_object("change-text") self.halcomp.newpin("number", hal.HAL_FLOAT, hal.HAL_IN) -def get_handlers(halcomp,builder,useropts): - return [HandlerClass(halcomp,builder,useropts)] +def get_handlers(halcomp,builder,useropts,compname): + return [HandlerClass(halcomp,builder,useropts,compname)] diff --git a/configs/sim/axis/remap/rack-toolchange/core_sim.hal b/configs/sim/axis/remap/rack-toolchange/core_sim.hal index 97b77da6fdf..2b767a94bf6 120000 --- a/configs/sim/axis/remap/rack-toolchange/core_sim.hal +++ b/configs/sim/axis/remap/rack-toolchange/core_sim.hal @@ -1 +1 @@ -../../../core_sim.hal \ No newline at end of file +../../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/axis/remap/stop-lookahead/axis_manualtoolchange.hal b/configs/sim/axis/remap/stop-lookahead/axis_manualtoolchange.hal index 6d81312e153..1938f082ad8 120000 --- a/configs/sim/axis/remap/stop-lookahead/axis_manualtoolchange.hal +++ b/configs/sim/axis/remap/stop-lookahead/axis_manualtoolchange.hal @@ -1 +1 @@ -../../../axis_manualtoolchange.hal \ No newline at end of file +../../../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/axis/remap/stop-lookahead/core_sim.hal b/configs/sim/axis/remap/stop-lookahead/core_sim.hal index 97b77da6fdf..2b767a94bf6 120000 --- a/configs/sim/axis/remap/stop-lookahead/core_sim.hal +++ b/configs/sim/axis/remap/stop-lookahead/core_sim.hal @@ -1 +1 @@ -../../../core_sim.hal \ No newline at end of file +../../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/axis/retract.hal b/configs/sim/axis/retract.hal new file mode 100644 index 00000000000..22181d6fbe7 --- /dev/null +++ b/configs/sim/axis/retract.hal @@ -0,0 +1,22 @@ +setp gladevcp.hal_table1 1 + +net motion-inpos motion.in-position gladevcp.in_position_led +net feed-hold gladevcp.feed_hold gladevcp.feed_hold_led motion.feed-hold + +net motion-type motion.paused-at-motion gladevcp.motion_type +net pause-state motion.pause-state gladevcp.state + +net xo gladevcp.offset_x-f motion.pause-offset-x +net yo gladevcp.offset_y-f motion.pause-offset-y +net zo gladevcp.offset_z-f motion.pause-offset-z +net ao gladevcp.offset_a-f motion.pause-offset-a +net bo gladevcp.offset_b-f motion.pause-offset-b +net co gladevcp.offset_c-f motion.pause-offset-c +net uo gladevcp.offset_u-f motion.pause-offset-u +net vo gladevcp.offset_v-f motion.pause-offset-v +net wo gladevcp.offset_w-f motion.pause-offset-w + +net feed gladevcp.jogfeed-f motion.pause-jog-feed + +net offset-valid gladevcp.offset_valid motion.pause-offset-enable +net in-range motion.pause-offset-in-range gladevcp.pause_offset_in_range diff --git a/configs/sim/axis/rob.ini b/configs/sim/axis/rob.ini new file mode 100644 index 00000000000..2d008d77436 --- /dev/null +++ b/configs/sim/axis/rob.ini @@ -0,0 +1,230 @@ +# EMC controller parameters for a simulated machine. + +# General note: Comments can either be preceded with a # or ; - either is +# acceptable, although # is in keeping with most linux config files. + +# General section ------------------------------------------------------------- +[EMC] + +# Version of this INI file +VERSION = $Revision$ + +# Name of machine, for use with display, etc. +MACHINE = Machinekit-HAL-SIM-AXIS + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x7FFFFFFF +DEBUG = 0 + +# Sections for display options ------------------------------------------------ +[DISPLAY] + +# Name of display program, e.g., xemc +DISPLAY = axis + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.100 + +# Path to help file +HELP_FILE = doc/help.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.2 +MAX_SPINDLE_OVERRIDE = 1.0 + +MAX_LINEAR_VELOCITY = 5 +DEFAULT_LINEAR_VELOCITY = .25 +# Prefix to be used +PROGRAM_PREFIX = ../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +EDITOR = gedit +TOOL_EDITOR = tooledit + +INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script + +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + +# Task controller section ----------------------------------------------------- +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.001 + +# Part program interpreter section -------------------------------------------- +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = sim.var + +# Motion control section ------------------------------------------------------ +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# BASE_PERIOD is unused in this configuration but specified in core_sim.hal +BASE_PERIOD = 0 +# Servo task period, in nano-seconds +SERVO_PERIOD = 1000000 + +# Hardware Abstraction Layer section -------------------------------------------------- +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. +# + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear +HALFILE = core_sim.hal +HALFILE = sim_spindle_encoder.hal +HALFILE = axis_manualtoolchange.hal +HALFILE = simulated_home.hal +HALFILE = check_constraints.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +# Single file that is executed after the GUI has started. Only supported by +# AXIS at this time (only AXIS creates a HAL component of its own) +#POSTGUI_HALFILE = test_postgui.hal + +HALUI = halui + +# Trajectory planner section -------------------------------------------------- +[TRAJ] + + +# new tp stuff +# see http://www.linuxcnc.org/index.php/english/forum/10-advanced-configuration/27368-new-trajectory-planner-testersprograms-wanted?start=120#44419 + +ARC_BLEND_ENABLE = 1 # self-explanatory, disable the new TP method entirely. + +ARC_BLEND_FALLBACK_ENABLE = 0 # (Optionally fall back to parabolic blends if the estimated speed is faster. However, this estimate is rough, and it seems that just disabling it gives better performance.) + +ARC_BLEND_OPTIMIZATION_DEPTH = 50 # (Lookahead depth in number of segments) + +ARC_BLEND_GAP_CYCLES = 4 # (How short the previous segment must be before the trajectory planner "consumes" it) + +ARC_BLEND_RAMP_FREQ = 20 # (This is a "cutoff" frequency for using ramped velocity) + + +# ----- + + +AXES = 3 +COORDINATES = X Y Z +HOME = 0 0 0 +LINEAR_UNITS = inch +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 10 +POSITION_FILE = position.txt +MAX_LINEAR_VELOCITY = 10 + +# Axes sections --------------------------------------------------------------- + +# First axis +[AXIS_0] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 5 +MAX_ACCELERATION = 50.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -40.0 +MAX_LIMIT = 40.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 20.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 +HOME_IS_SHARED = 1 + +# Second axis +[AXIS_1] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 5 +MAX_ACCELERATION = 50.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -40.0 +MAX_LIMIT = 40.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 20.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 + +# Third axis +[AXIS_2] + +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 5 +MAX_ACCELERATION = 50.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -8.0 +MAX_LIMIT = 0.0001 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 1.0 +HOME_SEARCH_VEL = 20.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 1 + +# section for main IO controller parameters ----------------------------------- +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = sim.tbl +TOOL_CHANGE_POSITION = 0 0 0 +TOOL_CHANGE_QUILL_UP = 1 diff --git a/configs/sim/axis/sim.tbl b/configs/sim/axis/sim.tbl deleted file mode 120000 index d67c68bf941..00000000000 --- a/configs/sim/axis/sim.tbl +++ /dev/null @@ -1 +0,0 @@ -../sim.tbl \ No newline at end of file diff --git a/configs/sim/axis/sim.tbl b/configs/sim/axis/sim.tbl new file mode 100644 index 00000000000..623987980f5 --- /dev/null +++ b/configs/sim/axis/sim.tbl @@ -0,0 +1,5 @@ +T1 P1 Z0.511 D0.125 ;1/8 end mill +T2 P2 Z0.1 D0.0625 ;1/16 end mill +T3 P3 Z1.273 D0.201 ;#7 tap drill +T99999 P99999 Z0.1 ;big tool number +T4 P4 Z0 D.005 ;Added 20131029 diff --git a/configs/sim/axis/sim_rostock.hal b/configs/sim/axis/sim_rostock.hal new file mode 100644 index 00000000000..c3a96b26d60 --- /dev/null +++ b/configs/sim/axis/sim_rostock.hal @@ -0,0 +1,46 @@ +# core HAL config file for simulation + +# first load all the RT modules that will be needed +# kinematics +loadrt lineardeltakins +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=lineardeltakins + +#loadusr -W rostock + +# add motion controller functions to servo thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread + +# create HAL signals for position commands from motion module +# loop position commands back to motion module feedback +net J0pos axis.0.motor-pos-cmd => axis.0.motor-pos-fb +net J1pos axis.1.motor-pos-cmd => axis.1.motor-pos-fb +net J2pos axis.2.motor-pos-cmd => axis.2.motor-pos-fb +net Apos axis.3.motor-pos-cmd => axis.3.motor-pos-fb + +#setp lineardeltakins.L 190.00 +#setp lineardeltakins.R 100.00 +setp lineardeltakins.J0off 0.00 +setp lineardeltakins.J1off 0.00 +setp lineardeltakins.J2off 0.00 + + + +# estop loopback +net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed + +net spindle-fwd motion.spindle-forward +net spindle-rev motion.spindle-reverse +#net spindle-speed motion.spindle-speed-out + +net lube iocontrol.0.lube +net flood iocontrol.0.coolant-flood +net mist iocontrol.0.coolant-mist + diff --git a/configs/sim/axis/simtcl/axis_manualtoolchange.hal b/configs/sim/axis/simtcl/axis_manualtoolchange.hal index 397c8934a1f..d400e3cb871 120000 --- a/configs/sim/axis/simtcl/axis_manualtoolchange.hal +++ b/configs/sim/axis/simtcl/axis_manualtoolchange.hal @@ -1 +1 @@ -../../axis_manualtoolchange.hal \ No newline at end of file +../../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/axis/simtcl/core_sim.hal b/configs/sim/axis/simtcl/core_sim.hal index b79df2d33fb..378c8f6dbaf 120000 --- a/configs/sim/axis/simtcl/core_sim.hal +++ b/configs/sim/axis/simtcl/core_sim.hal @@ -1 +1 @@ -../../core_sim.hal \ No newline at end of file +../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/axis/simtcl/twopass_compat.ini b/configs/sim/axis/simtcl/twopass_compat.ini index 434b8d0a8a0..37513a80303 100644 --- a/configs/sim/axis/simtcl/twopass_compat.ini +++ b/configs/sim/axis/simtcl/twopass_compat.ini @@ -17,7 +17,7 @@ DEBUG = 0 MAX_LINEAR_VELOCITY = 1.2 DEFAULT_LINEAR_VELOCITY = .25 PROGRAM_PREFIX = ../../nc_files/ - INTRO_GRAPHIC = linuxcnc.gif + INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit TOOL_EDITOR = tooledit diff --git a/configs/sim/axis/simtcl/twopass_demo.ini b/configs/sim/axis/simtcl/twopass_demo.ini index e8fd83eae30..9054df2e124 100644 --- a/configs/sim/axis/simtcl/twopass_demo.ini +++ b/configs/sim/axis/simtcl/twopass_demo.ini @@ -17,7 +17,7 @@ DEBUG = 0 MAX_LINEAR_VELOCITY = 1.2 DEFAULT_LINEAR_VELOCITY = .25 PROGRAM_PREFIX = ../../nc_files/ - INTRO_GRAPHIC = linuxcnc.gif + INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit TOOL_EDITOR = tooledit diff --git a/configs/sim/axis/spindle_orient/axis_manualtoolchange.hal b/configs/sim/axis/spindle_orient/axis_manualtoolchange.hal index 397c8934a1f..d400e3cb871 120000 --- a/configs/sim/axis/spindle_orient/axis_manualtoolchange.hal +++ b/configs/sim/axis/spindle_orient/axis_manualtoolchange.hal @@ -1 +1 @@ -../../axis_manualtoolchange.hal \ No newline at end of file +../../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/axis/spindle_orient/core_sim.hal b/configs/sim/axis/spindle_orient/core_sim.hal index b79df2d33fb..378c8f6dbaf 120000 --- a/configs/sim/axis/spindle_orient/core_sim.hal +++ b/configs/sim/axis/spindle_orient/core_sim.hal @@ -1 +1 @@ -../../core_sim.hal \ No newline at end of file +../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/axis/twopass/axis_manualtoolchange.hal b/configs/sim/axis/twopass/axis_manualtoolchange.hal index 397c8934a1f..d400e3cb871 120000 --- a/configs/sim/axis/twopass/axis_manualtoolchange.hal +++ b/configs/sim/axis/twopass/axis_manualtoolchange.hal @@ -1 +1 @@ -../../axis_manualtoolchange.hal \ No newline at end of file +../../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/axis/twopass/core_sim.hal b/configs/sim/axis/twopass/core_sim.hal index b79df2d33fb..378c8f6dbaf 120000 --- a/configs/sim/axis/twopass/core_sim.hal +++ b/configs/sim/axis/twopass/core_sim.hal @@ -1 +1 @@ -../../core_sim.hal \ No newline at end of file +../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/axis/twopass/twopass.ini b/configs/sim/axis/twopass/twopass.ini index 55800ea2211..f5268ca857c 100644 --- a/configs/sim/axis/twopass/twopass.ini +++ b/configs/sim/axis/twopass/twopass.ini @@ -44,7 +44,7 @@ DEFAULT_LINEAR_VELOCITY = .25 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit diff --git a/configs/sim/axis/vismach/5axis/5axis.ini b/configs/sim/axis/vismach/5axis/5axis.ini index 4f85cb86c24..9d695febf56 100644 --- a/configs/sim/axis/vismach/5axis/5axis.ini +++ b/configs/sim/axis/vismach/5axis/5axis.ini @@ -17,7 +17,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-5AXIS +MACHINE = Machinekit-HAL-SIM-5AXIS #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -51,7 +51,7 @@ MAX_FEED_OVERRIDE = 2.0 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit diff --git a/configs/sim/axis/vismach/5axis/5axis_sim.hal b/configs/sim/axis/vismach/5axis/5axis_sim.hal index cec6641459a..8fce20c4b43 100644 --- a/configs/sim/axis/vismach/5axis/5axis_sim.hal +++ b/configs/sim/axis/vismach/5axis/5axis_sim.hal @@ -2,7 +2,9 @@ # load RT modules loadrt 5axiskins -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=5axiskins loadrt ddt count=12 # add motion controller functions to servo thread diff --git a/configs/sim/axis/vismach/hbm/hbm.hal b/configs/sim/axis/vismach/hbm/hbm.hal index 90e4d74c1bc..5893fdffd42 100644 --- a/configs/sim/axis/vismach/hbm/hbm.hal +++ b/configs/sim/axis/vismach/hbm/hbm.hal @@ -4,7 +4,9 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # load four limit3 blocks to simulate the accel and vel limits of the motors loadrt limit3 count=4 # load window comparators for home/limit switches diff --git a/configs/sim/axis/vismach/hbm/hbm.ini b/configs/sim/axis/vismach/hbm/hbm.ini index 44efbb70a83..098ddcbb38b 100644 --- a/configs/sim/axis/vismach/hbm/hbm.ini +++ b/configs/sim/axis/vismach/hbm/hbm.ini @@ -48,7 +48,7 @@ MAX_FEED_OVERRIDE = 2.0 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Editor to be used with Axis diff --git a/configs/sim/axis/vismach/hexapod-sim/README b/configs/sim/axis/vismach/hexapod-sim/README index dda78b0eec4..7d5f672704b 100644 --- a/configs/sim/axis/vismach/hexapod-sim/README +++ b/configs/sim/axis/vismach/hexapod-sim/README @@ -1,4 +1,4 @@ -The hexapod configuration is a set of files that makes up a very basic LinuxCNC hexapod using ini, tbl, var. It is very similar to the sim config template, yet with 6 axes defined. +The hexapod configuration is a set of files that makes up a very basic Machinekit hexapod using ini, tbl, var. It is very similar to the sim config template, yet with 6 axes defined. There should be (in the future) a few config files based on the hexapod type you are using. @@ -6,6 +6,7 @@ minitetra.ini ------------- Config file for a minitetra type hexapod. -To get it working you need to #define MINITETRA inside the kinematics sources: (linuxcnc/src/linuxcnc/kinematics/genhexkins.h), and specify that genhexkins should be used instead of the normal trivkins (loadrt genhexkins in your hal file) +To get it working you need to #define MINITETRA inside the kinematics sources: +(machinekit/src/emc/kinematics/genhexkins.h), and specify that genhexkins should be used instead of the normal trivkins (loadrt genhexkins in your hal file) If you change the HOME location in TRAJ, make sure you change the appropiate HOME locations of the AXES aswell, and make sure the position match (when run through the kinematics). diff --git a/configs/sim/axis/vismach/hexapod-sim/core_sim_6.hal b/configs/sim/axis/vismach/hexapod-sim/core_sim_6.hal index a39a6dae68d..15adb5df4d8 100644 --- a/configs/sim/axis/vismach/hexapod-sim/core_sim_6.hal +++ b/configs/sim/axis/vismach/hexapod-sim/core_sim_6.hal @@ -2,7 +2,9 @@ # load RT modules loadrt genhexkins -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD num_joints=[TRAJ]AXES tp=tp kins=genhexkins loadrt ddt count=9 # add motion controller functions to servo thread diff --git a/configs/sim/axis/vismach/hexapod-sim/minitetra.ini b/configs/sim/axis/vismach/hexapod-sim/minitetra.ini index f02940c5b4e..f4f0fbf9663 100644 --- a/configs/sim/axis/vismach/hexapod-sim/minitetra.ini +++ b/configs/sim/axis/vismach/hexapod-sim/minitetra.ini @@ -17,7 +17,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-HEXAPOD +MACHINE = Machinekit-HAL-SIM-HEXAPOD #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -54,7 +54,7 @@ MAX_FEED_OVERRIDE = 2.0 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 0.1 ############################################################################### diff --git a/configs/sim/axis/vismach/max5kins/max5kins.hal b/configs/sim/axis/vismach/max5kins/max5kins.hal index b59a5904ffe..8f4527b4041 100644 --- a/configs/sim/axis/vismach/max5kins/max5kins.hal +++ b/configs/sim/axis/vismach/max5kins/max5kins.hal @@ -4,7 +4,9 @@ # kinematics loadrt maxkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=maxkins # load five limit3 blocks to simulate the accel and vel limits of the motors loadrt limit3 count=5 # load window comparators for home/limit switches diff --git a/configs/sim/axis/vismach/max5kins/max5kins.ini b/configs/sim/axis/vismach/max5kins/max5kins.ini index d496df21bbd..ca5ee160b26 100644 --- a/configs/sim/axis/vismach/max5kins/max5kins.ini +++ b/configs/sim/axis/vismach/max5kins/max5kins.ini @@ -48,7 +48,7 @@ MAX_FEED_OVERRIDE = 2.0 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Editor to be used with Axis diff --git a/configs/sim/axis/vismach/max5triv/max5triv.hal b/configs/sim/axis/vismach/max5triv/max5triv.hal index 6fa2efef307..33be28c2610 100644 --- a/configs/sim/axis/vismach/max5triv/max5triv.hal +++ b/configs/sim/axis/vismach/max5triv/max5triv.hal @@ -4,7 +4,9 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # load five limit3 blocks to simulate the accel and vel limits of the motors loadrt limit3 count=5 # load window comparators for home/limit switches diff --git a/configs/sim/axis/vismach/max5triv/max5triv.ini b/configs/sim/axis/vismach/max5triv/max5triv.ini index b2d8506115d..68116aceed5 100644 --- a/configs/sim/axis/vismach/max5triv/max5triv.ini +++ b/configs/sim/axis/vismach/max5triv/max5triv.ini @@ -48,7 +48,7 @@ MAX_FEED_OVERRIDE = 2.0 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Editor to be used with Axis diff --git a/configs/sim/axis/vismach/puma/README b/configs/sim/axis/vismach/puma/README index 09f27e0bc90..88fc654e9d7 100644 --- a/configs/sim/axis/vismach/puma/README +++ b/configs/sim/axis/vismach/puma/README @@ -1,4 +1,4 @@ -The puma configuration is a set of files that makes up a very basic LinuxCNC puma simulation using ini, tbl, var. It is very similar to the sim config template, yet with 6 joints defined. +The puma configuration is a set of files that makes up a very basic Machinekit puma simulation using ini, tbl, var. It is very similar to the sim config template, yet with 6 joints defined. puma.ini ------------- diff --git a/configs/sim/axis/vismach/puma/puma.ini b/configs/sim/axis/vismach/puma/puma.ini index b79ab743b38..bc7d64eb5f5 100644 --- a/configs/sim/axis/vismach/puma/puma.ini +++ b/configs/sim/axis/vismach/puma/puma.ini @@ -17,7 +17,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-HEXAPOD +MACHINE = Machinekit-HAL-SIM-HEXAPOD #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -54,7 +54,7 @@ MAX_FEED_OVERRIDE = 2.0 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 PYVCP = puma.xml diff --git a/configs/sim/axis/vismach/puma/puma560.ini b/configs/sim/axis/vismach/puma/puma560.ini index e452d46c30d..e1634336d4c 100644 --- a/configs/sim/axis/vismach/puma/puma560.ini +++ b/configs/sim/axis/vismach/puma/puma560.ini @@ -17,7 +17,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-PUMA560 +MACHINE = Machinekit-HAL-SIM-PUMA560 #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -54,7 +54,7 @@ MAX_FEED_OVERRIDE = 2.0 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 PYVCP = puma.xml diff --git a/configs/sim/axis/vismach/puma/puma560_sim_6.hal b/configs/sim/axis/vismach/puma/puma560_sim_6.hal index da3fe22697b..7b946cc29e3 100644 --- a/configs/sim/axis/vismach/puma/puma560_sim_6.hal +++ b/configs/sim/axis/vismach/puma/puma560_sim_6.hal @@ -2,7 +2,9 @@ # load RT modules loadrt genserkins -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD num_joints=[TRAJ]AXES tp=tp kins=genserkins # add motion controller functions to servo thread addf motion-command-handler servo-thread @@ -41,18 +43,18 @@ setp genserkins.A-3 0 setp genserkins.A-4 0 setp genserkins.A-5 0 -setp genserkins.ALPHA-0 0 -setp genserkins.ALPHA-1 1.570796326 -setp genserkins.ALPHA-2 0 -setp genserkins.ALPHA-3 1.570796326 -setp genserkins.ALPHA-4 -1.570796326 -setp genserkins.ALPHA-5 1.570796326 +setp genserkins.ALPHA-0 0 +setp genserkins.ALPHA-1 1.570796326 +setp genserkins.ALPHA-2 0 +setp genserkins.ALPHA-3 1.570796326 +setp genserkins.ALPHA-4 -1.570796326 +setp genserkins.ALPHA-5 1.570796326 setp genserkins.D-0 26.45 setp genserkins.D-1 -5.5 setp genserkins.D-2 0 setp genserkins.D-3 17.05 -setp genserkins.D-4 0 +setp genserkins.D-4 0 setp genserkins.D-5 2.2 diff --git a/configs/sim/axis/vismach/puma/puma_sim_6.hal b/configs/sim/axis/vismach/puma/puma_sim_6.hal index 44a327019cd..d4476c5da40 100644 --- a/configs/sim/axis/vismach/puma/puma_sim_6.hal +++ b/configs/sim/axis/vismach/puma/puma_sim_6.hal @@ -2,7 +2,9 @@ # load RT modules loadrt pumakins -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD num_joints=[TRAJ]AXES tp=tp kins=pumakins loadrt ddt count=12 # add motion controller functions to servo thread diff --git a/configs/sim/axis/vismach/scara/README b/configs/sim/axis/vismach/scara/README index 19e97746fa1..1a91e76bfeb 100644 --- a/configs/sim/axis/vismach/scara/README +++ b/configs/sim/axis/vismach/scara/README @@ -1,4 +1,4 @@ -The puma configuration is a set of files that makes up a very basic LinuxCNC scara simulation using ini, tbl, var. It is very similar to the sim config template, yet with 4 joints defined. +The puma configuration is a set of files that makes up a very basic Machinekit scara simulation using ini, tbl, var. It is very similar to the sim config template, yet with 4 joints defined. scara.ini ------------- diff --git a/configs/sim/axis/vismach/scara/scara.ini b/configs/sim/axis/vismach/scara/scara.ini index 89a407a6d7a..7a0fc96a53d 100644 --- a/configs/sim/axis/vismach/scara/scara.ini +++ b/configs/sim/axis/vismach/scara/scara.ini @@ -17,7 +17,7 @@ VERSION = $Revision$ #+ Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-SCARA +MACHINE = Machinekit-HAL-SIM-SCARA #+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others DEBUG = 0 @@ -54,7 +54,7 @@ MAX_FEED_OVERRIDE = 2.0 PROGRAM_PREFIX = ../../nc_files/ #- Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 PYVCP = scara.xml diff --git a/configs/sim/axis/vismach/scara/scara_sim_4.hal b/configs/sim/axis/vismach/scara/scara_sim_4.hal index 0e30864fcc9..7c444f35606 100644 --- a/configs/sim/axis/vismach/scara/scara_sim_4.hal +++ b/configs/sim/axis/vismach/scara/scara_sim_4.hal @@ -2,7 +2,9 @@ # load RT modules loadrt scarakins -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD num_joints=[TRAJ]AXES tp=tp kins=scarakins loadrt ddt count=12 # add motion controller functions to servo thread diff --git a/configs/sim/axis/xhc-hb04/README b/configs/sim/axis/xhc-hb04/README index c5546f6e2a4..6acf2aa3021 100755 --- a/configs/sim/axis/xhc-hb04/README +++ b/configs/sim/axis/xhc-hb04/README @@ -1,4 +1,4 @@ -These sim configurations demonstrate use of an XHC-HB04 wireless MPG pendant in LinuxCNC using a HAL module created by Frederic Rible (frible@teaser.fr) (Copyright (C) 2013). Ref: +These sim configurations demonstrate use of an XHC-HB04 wireless MPG pendant in Machinekit using a HAL module created by Frederic Rible (frible@teaser.fr) (Copyright (C) 2013). Ref: http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Using_A_XHC-HB04_Wireless_MPG_Pendant diff --git a/configs/sim/axis/xhc-hb04/axis_manualtoolchange.hal b/configs/sim/axis/xhc-hb04/axis_manualtoolchange.hal index 397c8934a1f..d400e3cb871 120000 --- a/configs/sim/axis/xhc-hb04/axis_manualtoolchange.hal +++ b/configs/sim/axis/xhc-hb04/axis_manualtoolchange.hal @@ -1 +1 @@ -../../axis_manualtoolchange.hal \ No newline at end of file +../../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/axis/xhc-hb04/core_sim9.hal b/configs/sim/axis/xhc-hb04/core_sim9.hal index 32979d06ff8..d73ccd0621e 120000 --- a/configs/sim/axis/xhc-hb04/core_sim9.hal +++ b/configs/sim/axis/xhc-hb04/core_sim9.hal @@ -1 +1 @@ -../../core_sim9.hal \ No newline at end of file +../../../common/core_sim9.hal \ No newline at end of file diff --git a/configs/sim/axis/xhc-hb04/xhc-hb04-layout1.ini b/configs/sim/axis/xhc-hb04/xhc-hb04-layout1.ini index a5393c33ee4..a65c03bbec0 100644 --- a/configs/sim/axis/xhc-hb04/xhc-hb04-layout1.ini +++ b/configs/sim/axis/xhc-hb04/xhc-hb04-layout1.ini @@ -80,7 +80,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 MAX_SPINDLE_OVERRIDE = 1.0 PROGRAM_PREFIX = ../../nc_files/ -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit GEOMETRY = XYZABCUVW diff --git a/configs/sim/axis/xhc-hb04/xhc-hb04-layout2.ini b/configs/sim/axis/xhc-hb04/xhc-hb04-layout2.ini index 9307d1fa4e6..a040cb2817d 100644 --- a/configs/sim/axis/xhc-hb04/xhc-hb04-layout2.ini +++ b/configs/sim/axis/xhc-hb04/xhc-hb04-layout2.ini @@ -82,7 +82,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 MAX_SPINDLE_OVERRIDE = 1.0 PROGRAM_PREFIX = ../../nc_files/ -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit GEOMETRY = XYZABCUVW diff --git a/configs/sim/axis/xhc-hb04/xhc-hb04-layout2_mm.ini b/configs/sim/axis/xhc-hb04/xhc-hb04-layout2_mm.ini index cccbf459b94..30e1be28db3 100644 --- a/configs/sim/axis/xhc-hb04/xhc-hb04-layout2_mm.ini +++ b/configs/sim/axis/xhc-hb04/xhc-hb04-layout2_mm.ini @@ -82,7 +82,7 @@ POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 MAX_SPINDLE_OVERRIDE = 1.0 PROGRAM_PREFIX = ../../nc_files/ -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit GEOMETRY = XYZABCUVW diff --git a/configs/sim/emcweb.hal b/configs/sim/emcweb.hal new file mode 100644 index 00000000000..67167457fa2 --- /dev/null +++ b/configs/sim/emcweb.hal @@ -0,0 +1,43 @@ +loadrt trivkins +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins +loadrt ddt count=6 +loadrt hypot count=2 +loadrt comp count=3 +loadrt or2 count=1 + +addf motion-command-handler servo-thread +addf motion-controller servo-thread + +addf ddt.0 servo-thread +addf ddt.1 servo-thread +addf ddt.2 servo-thread +addf ddt.3 servo-thread +addf ddt.4 servo-thread +addf ddt.5 servo-thread +addf hypot.0 servo-thread +addf hypot.1 servo-thread + +net Xpos axis.0.motor-pos-cmd => axis.0.motor-pos-fb ddt.0.in +net Ypos axis.1.motor-pos-cmd => axis.1.motor-pos-fb ddt.2.in +net Zpos axis.2.motor-pos-cmd => axis.2.motor-pos-fb ddt.4.in + +net Xvel ddt.0.out => ddt.1.in hypot.0.in0 +net Xacc <= ddt.1.out +net Yvel ddt.2.out => ddt.3.in hypot.0.in1 +net Yacc <= ddt.3.out +net Zvel ddt.4.out => ddt.5.in hypot.1.in0 +net Zacc <= ddt.5.out + +net XYvel hypot.0.out => hypot.1.in1 +net XYZvel <= hypot.1.out + +# estop loopback +#net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in +# this exits the machine out of e-stop +setp iocontrol.0.emc-enable-in true + +net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed + diff --git a/configs/sim/emcweb.ini b/configs/sim/emcweb.ini new file mode 100644 index 00000000000..ef9e274cf10 --- /dev/null +++ b/configs/sim/emcweb.ini @@ -0,0 +1,186 @@ +# EMC controller parameters for a simulated machine. + +# General note: Comments can either be preceded with a # or ; - either is +# acceptable, although # is in keeping with most linux config files. + +# General section ------------------------------------------------------------- +[EMC] + +# Version of this INI file +VERSION = $Revision$ + +# Name of machine, for use with display, etc. +MACHINE = Machinekit-HAL-SIM-MINI + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +#DEBUG = 0x00000003 +# DEBUG = 0x00000007 +# DEBUG = 0x7FFFFFFF +DEBUG = 0 + +# Sections for display options ------------------------------------------------ +[DISPLAY] + +# Name of display program, e.g., xemc +DISPLAY = emcweb + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.100 + +# Path to help file +HELP_FILE = doc/help.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.2 + +# Prefix to be used +PROGRAM_PREFIX = ../../nc_files/ + +# Task controller section ----------------------------------------------------- +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + +# Part program interpreter section -------------------------------------------- +[RS274NGC] + +# File containing interpreter variables +PARAMETER_FILE = sim.var + +# Motion control section ------------------------------------------------------ +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# BASE_PERIOD is unused in this configuration but specified in core_sim.hal +BASE_PERIOD = 0 +# Servo task period, in nano-seconds +SERVO_PERIOD = 1000000 + +# Hardware Abstraction Layer section -------------------------------------------------- +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. +# + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear +HALFILE = emcweb.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +# Trajectory planner section -------------------------------------------------- +[TRAJ] + +AXES = 3 +COORDINATES = X Y Z +HOME = 0 0 0 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 30.48 +MAX_VELOCITY = 53.34 +DEFAULT_ACCELERATION = 508 +MAX_ACCELERATION = 508 +NO_FORCE_HOMING = 1 + + +# Axes sections --------------------------------------------------------------- + +# First axis +[AXIS_0] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 1.2 +MAX_ACCELERATION = 20.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -200.0 +MAX_LIMIT = 200.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO + +# Second axis +[AXIS_1] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 1.2 +MAX_ACCELERATION = 20.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -200.0 +MAX_LIMIT = 200.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO + +# Third axis +[AXIS_2] + +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 1.2 +MAX_ACCELERATION = 20.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -200.0 +MAX_LIMIT = 200.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO + +# section for main IO controller parameters ----------------------------------- +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = sim.tbl + +# emcweb variables +[EMCWEB] + +#NC_FILES_DIR = /usr/share/machinekit/ncfiles +#ROOT = /var/cache/machinekit/www +#PORT = 8080 \ No newline at end of file diff --git a/configs/sim/gantrysim.hal b/configs/sim/gantrysim.hal index 3abd81ba95c..0960a034dae 100644 --- a/configs/sim/gantrysim.hal +++ b/configs/sim/gantrysim.hal @@ -2,7 +2,9 @@ loadrt gantrykins coordinates=XYZY # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=gantrykins # add motion controller functions to servo thread addf motion-command-handler servo-thread diff --git a/configs/sim/gmoccapy/core_sim.hal b/configs/sim/gmoccapy/core_sim.hal index ead32827019..ddef7e1add2 120000 --- a/configs/sim/gmoccapy/core_sim.hal +++ b/configs/sim/gmoccapy/core_sim.hal @@ -1 +1 @@ -../core_sim.hal \ No newline at end of file +../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/gmoccapy/core_sim4.hal b/configs/sim/gmoccapy/core_sim4.hal index bb3d66b11b0..5e32a713e1b 100644 --- a/configs/sim/gmoccapy/core_sim4.hal +++ b/configs/sim/gmoccapy/core_sim4.hal @@ -4,7 +4,9 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # load 6 differentiators (for velocity and accel signals loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv # load additional blocks diff --git a/configs/sim/gmoccapy/gmoccapy.ini b/configs/sim/gmoccapy/gmoccapy.ini index 76c3f884866..5295cd772e5 100644 --- a/configs/sim/gmoccapy/gmoccapy.ini +++ b/configs/sim/gmoccapy/gmoccapy.ini @@ -5,7 +5,7 @@ # General section ------------------------------------------------------------- [EMC] VERSION = $Revision$ -MACHINE = gmoccapy_development +MACHINE = gmoccapy DEBUG = 0 @@ -30,7 +30,7 @@ MAX_ANGULAR_VELOCITY = 234 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # list of selectable jog increments diff --git a/configs/sim/gmoccapy/gmoccapy_4_axis.ini b/configs/sim/gmoccapy/gmoccapy_4_axis.ini index 8af53cb21bc..1325b6c79cc 100644 --- a/configs/sim/gmoccapy/gmoccapy_4_axis.ini +++ b/configs/sim/gmoccapy/gmoccapy_4_axis.ini @@ -37,7 +37,7 @@ MAX_ANGULAR_VELOCITY = 234 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # list of selectable jog increments diff --git a/configs/sim/gmoccapy/gmoccapy_jog_wheels.ini b/configs/sim/gmoccapy/gmoccapy_jog_wheels.ini deleted file mode 100644 index 370c35a1f3e..00000000000 --- a/configs/sim/gmoccapy/gmoccapy_jog_wheels.ini +++ /dev/null @@ -1,175 +0,0 @@ -# EMC controller parameters for a simulated machine. -# General note: Comments can either be preceded with a # or ; - either is -# acceptable, although # is in keeping with most linux config files. - -# General section ------------------------------------------------------------- -[EMC] -VERSION = $Revision$ -MACHINE = gmoccapy_jog_wheels -#DEBUG = 0x7FFFFFFF -DEBUG = 0 - -# for details see nc_files/subroutines/maco_instructions.txt -[MACROS] -MACRO = i_am_lost -MACRO = halo_world -MACRO = jog_around -MACRO = increment xinc yinc -MACRO = go_to_position X-pos Y-pos Z-pos - -# Sections for display options ------------------------------------------------ -[DISPLAY] -DISPLAY = gmoccapy - -EMBED_TAB_NAME = right_side_panel -EMBED_TAB_LOCATION = box_right -EMBED_TAB_COMMAND = gladevcp -H jogwheel.hal jogwheel.glade - -# Cycle time, in milliseconds, that display will sleep between polls -CYCLE_TIME = 100 - -# Highest value that will be allowed for feed override, 1.0 = 100% -MAX_FEED_OVERRIDE = 1.5 -MAX_SPINDLE_OVERRIDE = 1.2 -MIN_SPINDLE_OVERRIDE = .5 - -# Max and default jog speeds in units per second -MAX_LINEAR_VELOCITY = 166 -DEFAULT_LINEAR_VELOCITY = 5 -MAX_ANGULAR_VELOCITY = 234 - -# Prefix to be used -PROGRAM_PREFIX = ../../nc_files/ - -# Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif -INTRO_TIME = 5 - -# list of selectable jog increments -INCREMENTS = 1mm, 0.1mm, 0.01mm, 0.001mm, 1.2345in - -[FILTER] -PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image -PROGRAM_EXTENSION = .py Python Script -png = image-to-gcode -gif = image-to-gcode -jpg = image-to-gcode -py = python - -# Task controller section ----------------------------------------------------- -[TASK] -TASK = milltask -CYCLE_TIME = 0.001 - -# Part program interpreter section -------------------------------------------- -[RS274NGC] -RS274NGC_STARTUP_CODE = G17 G21 G40 G43H0 G54 G64P0.005 G80 G90 G94 G97 M5 M9 -PARAMETER_FILE = sim.var -SUBROUTINE_PATH = macros - -# Motion control section ------------------------------------------------------ -[EMCMOT] -EMCMOT = motmod -COMM_TIMEOUT = 1.0 -COMM_WAIT = 0.010 -BASE_PERIOD = 100000 -SERVO_PERIOD = 1000000 - -# Hardware Abstraction Layer section -------------------------------------------------- -[HAL] -HALFILE = core_sim.hal -HALFILE = spindle_sim.hal -HALFILE = simulated_home.hal - -# Single file that is executed after the GUI has started. -POSTGUI_HALFILE = gmoccapy_postgui.hal - -HALUI = halui - -# Trajectory planner section -------------------------------------------------- -[TRAJ] -AXES = 3 -COORDINATES = X Y Z -HOME = 0 0 0 -LINEAR_UNITS = mm -ANGULAR_UNITS = degree -CYCLE_TIME = 0.010 -DEFAULT_VELOCITY = 9.0 -MAX_VELOCITY = 234 -POSITION_FILE = position.txt -#NO_FORCE_HOMING = 1 - -# First axis -[AXIS_0] -TYPE = LINEAR -HOME = 0.000 -MAX_VELOCITY = 166 -MAX_ACCELERATION = 1500.0 -BACKLASH = 0.000 -INPUT_SCALE = 4000 -OUTPUT_SCALE = 1.000 -MIN_LIMIT = -400.0 -MAX_LIMIT = 400.0 -FERROR = 0.050 -MIN_FERROR = 0.010 -HOME_OFFSET = 0.0 -HOME = 10 -HOME_SEARCH_VEL = 200.0 -HOME_LATCH_VEL = 20.0 -HOME_USE_INDEX = NO -HOME_IGNORE_LIMITS = NO -HOME_SEQUENCE = 1 -HOME_IS_SHARED = 1 - -# Second axis -[AXIS_1] -TYPE = LINEAR -HOME = 0.000 -MAX_VELOCITY = 166 -MAX_ACCELERATION = 1500.0 -BACKLASH = 0.000 -INPUT_SCALE = 4000 -OUTPUT_SCALE = 1.000 -MIN_LIMIT = -400.0 -MAX_LIMIT = 400.0 -FERROR = 0.050 -MIN_FERROR = 0.010 -HOME_OFFSET = 0.0 -HOME = 10 -HOME_SEARCH_VEL = 200.0 -HOME_LATCH_VEL = 20.0 -HOME_USE_INDEX = NO -HOME_IGNORE_LIMITS = NO -HOME_SEQUENCE = 1 - -# Third axis -[AXIS_2] -TYPE = LINEAR -HOME = 0.0 -MAX_VELOCITY = 166 -MAX_ACCELERATION = 1500.0 -BACKLASH = 0.000 -INPUT_SCALE = 4000 -OUTPUT_SCALE = 1.000 -MIN_LIMIT = -400.0 -MAX_LIMIT = 0.001 -FERROR = 0.050 -MIN_FERROR = 0.010 -HOME_OFFSET = 1.0 -HOME = -10 -HOME_SEARCH_VEL = 200.0 -HOME_LATCH_VEL = 20.0 -HOME_USE_INDEX = NO -HOME_IGNORE_LIMITS = NO -HOME_SEQUENCE = 0 -HOME_IS_SHARED = 1 - -# section for main IO controller parameters ----------------------------------- -[EMCIO] -EMCIO = io -CYCLE_TIME = 0.100 - -# tool table file -TOOL_TABLE = tool.tbl -TOOL_CHANGE_POSITION = 100 100 -10 -TOOL_CHANGE_QUILL_UP = 1 diff --git a/configs/sim/gmoccapy/gmoccapy_lathe.ini b/configs/sim/gmoccapy/gmoccapy_lathe.ini index b0288ab48fb..4e6cb38b79b 100644 --- a/configs/sim/gmoccapy/gmoccapy_lathe.ini +++ b/configs/sim/gmoccapy/gmoccapy_lathe.ini @@ -40,7 +40,7 @@ MAX_ANGULAR_VELOCITY = 234 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # list of selectable jog increments @@ -95,11 +95,11 @@ CYCLE_TIME = 0.010 DEFAULT_VELOCITY = 9.0 MAX_VELOCITY = 234 POSITION_FILE = position.txt +#NO_FORCE_HOMING = 1 # First axis [AXIS_0] TYPE = LINEAR -HOME = 0.000 MAX_VELOCITY = 166 MAX_ACCELERATION = 1500.0 BACKLASH = 0.000 @@ -121,7 +121,6 @@ HOME_IS_SHARED = 1 # Third axis [AXIS_2] TYPE = LINEAR -HOME = 0.0 MAX_VELOCITY = 166 MAX_ACCELERATION = 1500.0 BACKLASH = 0.000 diff --git a/configs/sim/gmoccapy/gmoccapy_lathe_imperial.ini b/configs/sim/gmoccapy/gmoccapy_lathe_imperial.ini index 230a563218f..2c6eda424cf 100644 --- a/configs/sim/gmoccapy/gmoccapy_lathe_imperial.ini +++ b/configs/sim/gmoccapy/gmoccapy_lathe_imperial.ini @@ -41,7 +41,7 @@ MAX_ANGULAR_VELOCITY = 10 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # list of selectable jog increments diff --git a/configs/sim/gmoccapy/gmoccapy_left_panel.ini b/configs/sim/gmoccapy/gmoccapy_left_panel.ini index f30e90cdc58..75029c6ade3 100644 --- a/configs/sim/gmoccapy/gmoccapy_left_panel.ini +++ b/configs/sim/gmoccapy/gmoccapy_left_panel.ini @@ -42,7 +42,7 @@ MAX_ANGULAR_VELOCITY = 234 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # list of selectable jog increments diff --git a/configs/sim/gmoccapy/gmoccapy_messages.ini b/configs/sim/gmoccapy/gmoccapy_messages.ini new file mode 100644 index 00000000000..58c4aa81d0f --- /dev/null +++ b/configs/sim/gmoccapy/gmoccapy_messages.ini @@ -0,0 +1,201 @@ +# EMC controller parameters for a simulated machine. +# General note: Comments can either be preceded with a # or ; - either is +# acceptable, although # is in keeping with most linux config files. + +# General section ------------------------------------------------------------- +[EMC] +VERSION = $Revision$ +MACHINE = gmoccapy_development +DEBUG = 0 + + +# Sections for display options ------------------------------------------------ +[DISPLAY] +DISPLAY = gmoccapy + +# Cycle time, in milliseconds, that display will sleep between polls +CYCLE_TIME = 100 + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 +MAX_SPINDLE_OVERRIDE = 1.2 +MIN_SPINDLE_OVERRIDE = .5 + +# Max and default jog speeds in units per second +MAX_LINEAR_VELOCITY = 166 +DEFAULT_LINEAR_VELOCITY = 5 +MAX_ANGULAR_VELOCITY = 234 + +# Prefix to be used +PROGRAM_PREFIX = ../../nc_files/ + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + +# list of selectable jog increments +INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm ,1.2345 in + +# set up 3 user popup message dialogs +# the messages support pango markup language +# detailed information about the markup language can be found at +# https://developer.gnome.org/pango/stable/PangoMarkupFormat.html + +# MESSAGE_TEXT = The text to be displayed, may be pango markup formated +# MESSAGE_TYPE = one of "status" , "okdialog" , "yesnodialog" +# status : Will just display a message as popup window, using the messsaging system of gmoccapy +# okdialog : Will hold focus on the message dialog and will activate a "-waiting" Hal_Pin OUT. +# Closing the message will reset the waiting pin +# yesnodialog : Will hold focus on the message dialog and will activate a "-waiting" Hal_Pin bit OUT +# it will also give access to an "-responce" Hal_Pin Bit Out, this pin will hold 1 if the +# user klicks OK, and in all other states it will be 0 +# Closing the message will reset the waiting pin +# The responce Hal Pin will remain 1 until the dialog is called again +# MESSAGE_PINNAME = is the name of the hal pin group to be created + + +MESSAGE_TEXT = This is a info message test +MESSAGE_TYPE = status +MESSAGE_PINNAME = statustest + +MESSAGE_TEXT = This is a yes no dialog test +MESSAGE_TYPE = yesnodialog +MESSAGE_PINNAME = yesnodialog + +MESSAGE_TEXT = Text can be small, big, bold, italic and even be colored. +MESSAGE_TYPE = okdialog +MESSAGE_PINNAME = okdialog + +# for details see nc_files/subroutines/maco_instructions.txt +[MACROS] +MACRO = i_am_lost +MACRO = halo_world +MACRO = jog_around +MACRO = increment xinc yinc +MACRO = go_to_position X-pos Y-pos Z-pos + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + +# Task controller section ----------------------------------------------------- +[TASK] +TASK = milltask +CYCLE_TIME = 0.001 + +# Part program interpreter section -------------------------------------------- +[RS274NGC] +RS274NGC_STARTUP_CODE = G17 G21 G40 G43H0 G54 G64P0.005 G80 G90 G94 G97 M5 M9 +PARAMETER_FILE = sim.var +SUBROUTINE_PATH = macros + +# Motion control section ------------------------------------------------------ +[EMCMOT] +EMCMOT = motmod +COMM_TIMEOUT = 1.0 +COMM_WAIT = 0.010 +BASE_PERIOD = 100000 +SERVO_PERIOD = 1000000 + +# Hardware Abstraction Layer section -------------------------------------------------- +[HAL] +HALFILE = core_sim.hal +HALFILE = spindle_sim.hal +HALFILE = simulated_home.hal + +# Single file that is executed after the GUI has started. +POSTGUI_HALFILE = gmoccapy_postgui.hal + +HALUI = halui + +# Trajectory planner section -------------------------------------------------- +[TRAJ] +AXES = 3 +COORDINATES = X Y Z +HOME = 0 0 0 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 9.0 +MAX_VELOCITY = 234 +POSITION_FILE = position.txt +#NO_FORCE_HOMING = 1 + +# First axis +[AXIS_0] +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 166 +MAX_ACCELERATION = 1500.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -400.0 +MAX_LIMIT = 400.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME = 10 +HOME_SEARCH_VEL = 200.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 +HOME_IS_SHARED = 1 + +# Second axis +[AXIS_1] +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 166 +MAX_ACCELERATION = 1500.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -400.0 +MAX_LIMIT = 400.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME = 10 +HOME_SEARCH_VEL = 200.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 + +# Third axis +[AXIS_2] +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 166 +MAX_ACCELERATION = 1500.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -400.0 +MAX_LIMIT = 0.001 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 1.0 +HOME = -10 +HOME_SEARCH_VEL = 200.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 1 + +# section for main IO controller parameters ----------------------------------- +[EMCIO] +EMCIO = io +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl +TOOL_CHANGE_POSITION = 100 100 -10 +TOOL_CHANGE_QUILL_UP = 1 diff --git a/configs/sim/gmoccapy/gmoccapy_pedant.ini b/configs/sim/gmoccapy/gmoccapy_pedant.ini new file mode 100644 index 00000000000..c0c5723e192 --- /dev/null +++ b/configs/sim/gmoccapy/gmoccapy_pedant.ini @@ -0,0 +1,175 @@ +# EMC controller parameters for a simulated machine. +# General note: Comments can either be preceded with a # or ; - either is +# acceptable, although # is in keeping with most linux config files. + +# General section ------------------------------------------------------------- +[EMC] +VERSION = $Revision$ +MACHINE = gmoccapy_pendant +#DEBUG = 0x7FFFFFFF +DEBUG = 0 + +# for details see nc_files/subroutines/maco_instructions.txt +[MACROS] +MACRO = i_am_lost +MACRO = halo_world +MACRO = jog_around +MACRO = increment xinc yinc +MACRO = go_to_position X-pos Y-pos Z-pos + +# Sections for display options ------------------------------------------------ +[DISPLAY] +DISPLAY = gmoccapy + +EMBED_TAB_NAME = right_side_panel +EMBED_TAB_LOCATION = box_right +EMBED_TAB_COMMAND = gladevcp -H pendant.hal pendant.glade + +# Cycle time, in milliseconds, that display will sleep between polls +CYCLE_TIME = 100 + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.5 +MAX_SPINDLE_OVERRIDE = 1.2 +MIN_SPINDLE_OVERRIDE = .5 + +# Max and default jog speeds in units per second +MAX_LINEAR_VELOCITY = 166 +DEFAULT_LINEAR_VELOCITY = 5 +MAX_ANGULAR_VELOCITY = 234 + +# Prefix to be used +PROGRAM_PREFIX = /home/emcmesa/linuxcnc/nc_files + +# Introductory graphic +INTRO_GRAPHIC = linuxcnc.gif +INTRO_TIME = 5 + +# list of selectable jog increments +INCREMENTS = 1mm, 0.1mm, 0.01mm, 0.001mm, 1.2345in + +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + +# Task controller section ----------------------------------------------------- +[TASK] +TASK = milltask +CYCLE_TIME = 0.001 + +# Part program interpreter section -------------------------------------------- +[RS274NGC] +RS274NGC_STARTUP_CODE = G17 G21 G40 G43H0 G54 G64P0.005 G80 G90 G94 G97 M5 M9 +PARAMETER_FILE = sim.var +SUBROUTINE_PATH = macros + +# Motion control section ------------------------------------------------------ +[EMCMOT] +EMCMOT = motmod +COMM_TIMEOUT = 1.0 +COMM_WAIT = 0.010 +BASE_PERIOD = 100000 +SERVO_PERIOD = 1000000 + +# Hardware Abstraction Layer section -------------------------------------------------- +[HAL] +HALFILE = core_sim.hal +#HALFILE = spindle_sim.hal +HALFILE = simulated_home.hal + +# Single file that is executed after the GUI has started. +POSTGUI_HALFILE = gmoccapy_postgui.hal + +HALUI = halui + +# Trajectory planner section -------------------------------------------------- +[TRAJ] +AXES = 3 +COORDINATES = X Y Z +HOME = 0 0 0 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 9.0 +MAX_VELOCITY = 234 +POSITION_FILE = position.txt +#NO_FORCE_HOMING = 1 + +# First axis +[AXIS_0] +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 166 +MAX_ACCELERATION = 1500.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -400.0 +MAX_LIMIT = 400.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME = 10 +HOME_SEARCH_VEL = 200.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 +HOME_IS_SHARED = 1 + +# Second axis +[AXIS_1] +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 166 +MAX_ACCELERATION = 1500.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -400.0 +MAX_LIMIT = 400.0 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 0.0 +HOME = 10 +HOME_SEARCH_VEL = 200.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 + +# Third axis +[AXIS_2] +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 166 +MAX_ACCELERATION = 1500.0 +BACKLASH = 0.000 +INPUT_SCALE = 4000 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -400.0 +MAX_LIMIT = 0.001 +FERROR = 0.050 +MIN_FERROR = 0.010 +HOME_OFFSET = 1.0 +HOME = -10 +HOME_SEARCH_VEL = 200.0 +HOME_LATCH_VEL = 20.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 1 + +# section for main IO controller parameters ----------------------------------- +[EMCIO] +EMCIO = io +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = tool.tbl +TOOL_CHANGE_POSITION = 100 100 -10 +TOOL_CHANGE_QUILL_UP = 1 diff --git a/configs/sim/gmoccapy/gmoccapy_plasma/axis_manualtoolchange.hal b/configs/sim/gmoccapy/gmoccapy_plasma/axis_manualtoolchange.hal index 397c8934a1f..d400e3cb871 120000 --- a/configs/sim/gmoccapy/gmoccapy_plasma/axis_manualtoolchange.hal +++ b/configs/sim/gmoccapy/gmoccapy_plasma/axis_manualtoolchange.hal @@ -1 +1 @@ -../../axis_manualtoolchange.hal \ No newline at end of file +../../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/gmoccapy/gmoccapy_plasma/core_sim.hal b/configs/sim/gmoccapy/gmoccapy_plasma/core_sim.hal index b79df2d33fb..378c8f6dbaf 120000 --- a/configs/sim/gmoccapy/gmoccapy_plasma/core_sim.hal +++ b/configs/sim/gmoccapy/gmoccapy_plasma/core_sim.hal @@ -1 +1 @@ -../../core_sim.hal \ No newline at end of file +../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini b/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini old mode 100755 new mode 100644 index a98c675befd..4484ab315a1 --- a/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini +++ b/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini @@ -47,7 +47,7 @@ MAX_ANGULAR_VELOCITY = 234 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # list of selectable jog increments diff --git a/configs/sim/gmoccapy/gmoccapy_plasma/plasma.py b/configs/sim/gmoccapy/gmoccapy_plasma/plasma.py index afac23ca68a..9b9744570c9 100644 --- a/configs/sim/gmoccapy/gmoccapy_plasma/plasma.py +++ b/configs/sim/gmoccapy/gmoccapy_plasma/plasma.py @@ -36,7 +36,7 @@ class PlasmaClass: - def __init__(self, halcomp, builder, useropts): + def __init__(self, halcomp, builder, useropts,compname): self.builder = builder self.halcomp = halcomp self.defaults = { IniFile.vars : { "thcspeedval" : 15.0 , @@ -309,5 +309,5 @@ def on_Piercing_autostart_toggled(self, widget, data = None): def on_enable_HeightLock_toggled(self, widget, data = None): self.enableheightlock = widget.get_active() -def get_handlers(halcomp, builder, useropts): - return(PlasmaClass(halcomp, builder, useropts)) +def get_handlers(halcomp, builder, useropts,compname): + return[PlasmaClass(halcomp, builder, useropts,compname)] diff --git a/configs/sim/gmoccapy/gmoccapy_plasma/signals.py b/configs/sim/gmoccapy/gmoccapy_plasma/signals.py index 9eba6e468b0..e19aabd194e 100644 --- a/configs/sim/gmoccapy/gmoccapy_plasma/signals.py +++ b/configs/sim/gmoccapy/gmoccapy_plasma/signals.py @@ -34,7 +34,7 @@ class SignalsClass: - def __init__(self, halcomp, builder, useropts): + def __init__(self, halcomp, builder, useropts,compname): get_ini_info = getiniinfo.GetIniInfo() prefs = preferences.preferences(get_ini_info.get_preference_file_path()) @@ -43,5 +43,5 @@ def __init__(self, halcomp, builder, useropts): theme_name = gtk.settings_get_default().get_property("gtk-theme-name") gtk.settings_get_default().set_string_property("gtk-theme-name", theme_name, "") -def get_handlers(halcomp, builder, useropts): - return(SignalsClass(halcomp, builder, useropts)) +def get_handlers(halcomp, builder, useropts,compname): + return[SignalsClass(halcomp, builder, useropts,compname)] diff --git a/configs/sim/gmoccapy/gmoccapy_postgui.hal b/configs/sim/gmoccapy/gmoccapy_postgui.hal index 1deec7c886b..a1938063497 100644 --- a/configs/sim/gmoccapy/gmoccapy_postgui.hal +++ b/configs/sim/gmoccapy/gmoccapy_postgui.hal @@ -6,7 +6,7 @@ loadrt abs names=abs_spindle_feedback addf abs_spindle_feedback servo-thread net spindle-speed-limited => abs_spindle_feedback.in -net spindle-abs = abs_spindle_feedback.out => gmoccapy.spindle_feedback_bar +net spindle-abs abs_spindle_feedback.out => gmoccapy.spindle_feedback_bar net spindle-at-speed gmoccapy.spindle_at_speed_led # the unlink pin commands are only used, because they are connected diff --git a/configs/sim/gmoccapy/gmoccapy_right_panel.ini b/configs/sim/gmoccapy/gmoccapy_right_panel.ini index c7fd8a8b747..fd499b0b14f 100644 --- a/configs/sim/gmoccapy/gmoccapy_right_panel.ini +++ b/configs/sim/gmoccapy/gmoccapy_right_panel.ini @@ -42,7 +42,7 @@ MAX_ANGULAR_VELOCITY = 234 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # list of selectable jog increments diff --git a/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini b/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini index 307db268a7d..9c80a035f1a 100644 --- a/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini +++ b/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini @@ -41,7 +41,7 @@ MAX_ANGULAR_VELOCITY = 234 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # list of selectable jog increments diff --git a/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini b/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini old mode 100755 new mode 100644 index f17b1455ba6..77e9b3df817 --- a/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini +++ b/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini @@ -46,7 +46,7 @@ MAX_ANGULAR_VELOCITY = 234 PROGRAM_PREFIX = ../../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # list of selectable jog increments diff --git a/configs/sim/gmoccapy/gmoccapy_tool_sensor.para b/configs/sim/gmoccapy/gmoccapy_tool_sensor.para index 07542e447c4..e7220ed80ac 100644 --- a/configs/sim/gmoccapy/gmoccapy_tool_sensor.para +++ b/configs/sim/gmoccapy/gmoccapy_tool_sensor.para @@ -1,28 +1,31 @@ [DEFAULT] unlock_way = no rel_color = black -max_messages = 10.0 +log_actions = False show_preview_on_offset = True jump_to_dir = /home/emcmesa show_keyboard_on_offset = True -spindle_bar_max = 6000.0 +x_pos_popup = 15.0 homed_color = green -height = 750.0 +enable_dro = False system_name_g92 = G92 logo = False system_name_g59.2 = G59.2 system_name_g59.3 = G59.3 +mouse_btn_mode = 4 audio_error = /usr/share/sounds/ubuntu/stereo/dialog-question.ogg -log_actions = False +max_messages = 10.0 view_tool_path = True system_name_g5x = G5x scale_max_vel = 140.2 -width = 979.0 +show_keyboard_on_edit = False open_file = ../../nc_files/gmoccapy_2_tools_with_cutter_radius_compensation.ngc abs_color = blue show_offsets = False system_name_g59 = G59 -system_name_g58 = G58 +width = 979.0 +spindle_bar_min = 0.0 +probevel = 10.0 show_keyboard_on_mdi = False spindle_start_rpm = 300.0 view_dimension = True @@ -31,23 +34,23 @@ gremlin_view = rbt_view_p scale_spindle_override = 1.0 system_name_tool = Tool system_name_g54 = G54 -system_name_g57 = G57 +system_name_rot = Rot system_name_g56 = G56 -message_font = sans 10 +system_name_g58 = G58 +unlock_code = 123 +hide_cursor = False x_pos = 10.0 -y_pos = 10.0 +system_name_g57 = G57 dtg_color = yellow -unlock_code = 123 -use_toolmeasurement = True -unhomed_color = red +message_font = sans 10 screen1 = window +dro_size = 28 use_keyboard_shortcuts = True -x_pos_popup = 15.0 -spindle_bar_min = 0.0 -enable_dro = False +spindle_bar_max = 6000.0 +unhomed_color = red +use_auto_units = True audio_alert = /usr/share/sounds/ubuntu/stereo/bell.ogg use_screen2 = False -gtk_theme = Follow System Theme searchvel = 75.0 opstop = True show_keyboard_on_file_selection = False @@ -56,19 +59,19 @@ scale_feed_override = 1.0 use_frames = True system_name_g55 = G55 y_pos_popup = 55.0 -show_keyboard_on_edit = False +show_dtg = False run_from_line = no_run -blockdel = False -use_auto_units = True +gtk_theme = Follow System Theme +height = 750.0 probeheight = 35.8 -system_name_rot = Rot -hide_cursor = False -probevel = 10.0 +use_toolmeasurement = True +hide_axis_4 = False +y_pos = 10.0 width_popup = 250.0 show_keyboard_on_tooledit = False show_dro_btn = False system_name_g59.1 = G59.1 -show_dtg = False +blockdel = False scale_jog_vel = 99.6 view = p diff --git a/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini b/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini index 527cf1c1a28..c28a392054a 100644 --- a/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini +++ b/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini @@ -54,7 +54,7 @@ MAX_ANGULAR_VELOCITY = 234 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # list of selectable jog increments diff --git a/configs/sim/gmoccapy/lathe.tbl b/configs/sim/gmoccapy/lathe.tbl index 26bba71ae47..8c5b64fb00d 100644 --- a/configs/sim/gmoccapy/lathe.tbl +++ b/configs/sim/gmoccapy/lathe.tbl @@ -1,5 +1,5 @@ T1 P1 D0.400000 X-120.000000 Z-25.000000 I+26.000000 J+86.000000 Q2 ;60 Grad vorn T2 P2 D0.100000 X-36.337581 Z+39.000000 I+50.000000 J+85.000000 Q2 ;35 Grad vorn -T3 P3 D0.400000 X-54.337581 Z-160.258367 I-80.000000 J-25.000000 Q3 ;55 Grad vorn +T3 P3 D0.400000 X-54.337581 Z-160.258367 I-80.000000 J-25.000000 Q3 ;55 Grad vorn T4 P4 D0.100000 I+94.000000 J+154.000000 Q1 ;60 Grad Rück T5 P5 D0.100000 X+5.737000 Z+12.239900 Q6 ;Einstichstahl diff --git a/configs/sim/gmoccapy/pendant.glade b/configs/sim/gmoccapy/pendant.glade new file mode 100644 index 00000000000..59a69fd986f --- /dev/null +++ b/configs/sim/gmoccapy/pendant.glade @@ -0,0 +1,240 @@ + + + + + + + + + True + + + True + 4 + + + True + + + feed + True + True + False + True + False + override-off + + + False + False + 0 + + + + + spindle + True + True + False + True + False + override-off + + + False + False + 1 + + + + + 0 + + + + + True + False + Spindle + 100 + + + False + False + 1 + + + + + True + + + max vel + True + True + False + True + False + override-off + + + False + False + 0 + + + + + jog vel + True + True + False + True + False + override-off + + + False + False + 1 + + + + + 2 + + + + + False + False + 0 + + + + + True + + + Off + True + True + False + True + False + + + False + False + 0 + + + + + 1 + + + + + 50 + True + + + + 2 + + + + + True + + + True + Axis X + + + False + False + 0 + + + + + True + + + Off + True + True + False + True + False + + + False + False + 0 + + + + + X + True + True + False + True + False + jog-off + + + False + False + 1 + + + + + Y + True + True + False + True + False + jog-off + + + False + False + 2 + + + + + Z + True + True + False + True + False + jog-off + + + False + False + 3 + + + + + 1 + + + + + 3 + + + + + + diff --git a/configs/sim/gmoccapy/pendant.hal b/configs/sim/gmoccapy/pendant.hal new file mode 100644 index 00000000000..c164aee6831 --- /dev/null +++ b/configs/sim/gmoccapy/pendant.hal @@ -0,0 +1,41 @@ +# connect encoder count, select the one you need +net jog-counts pendant.jog-wheel-counts +net jog-counts axis.0.jog-counts +net jog-counts axis.1.jog-counts +net jog-counts axis.2.jog-counts + +net jog-x axis.0.jog-enable <= pendant.jog-x +net jog-y axis.1.jog-enable <= pendant.jog-y +net jog-z axis.2.jog-enable <= pendant.jog-z + +# Set the scales per count / Faktor je count setzen +# we could set them to fix value like +# setp axis.2.jog-scale 0.05 +# setp axis.1.jog-scale 0.05 +# setp axis.0.jog-scale 0.05 +# but also better do connect them to the jog- increments of gmoccapy. +net scale axis.2.jog-scale <= axis.1.jog-scale <= axis.0.jog-scale <= gmoccapy.jog-increment + +# Connect all counts to Jogwheel-counts / Alle count san Jogwheel-counts anbinden +net override-counts pendant.override-wheel-counts +net override-counts gmoccapy.max-velocity.counts +net override-counts gmoccapy.feed-override.counts +net override-counts gmoccapy.spindle-override.counts +net override-counts gmoccapy.jog-speed.counts + +# the scales of the counts are set on the settings page of the GUI, not here +# this is differnet from using halui pin!! + +# jog velocity mode on (1) or off(0) / Geschwindigkeitsmodus an (1) oder aus (0) +# 0 is default / 0 ist Standardwert +# Mode 0 : after spinning the dial, axis may go on moving, because counts are still pending, Mode 1 will ignore pending steps +# Mode 0 : Nach dem drehen des Handrades kann die Achse noch weiterlaufen, da noch Schritte auszuführen sind. Mode 1 hält sofort an +setp axis.0.jog-vel-mode 1 +setp axis.1.jog-vel-mode 1 +setp axis.2.jog-vel-mode 1 + +net feed gmoccapy.feed-override.count-enable <= pendant.feed +net spindle gmoccapy.spindle-override.count-enable <= pendant.spindle +net maxvel gmoccapy.max-velocity.count-enable <= pendant.maxvel +net jogvel gmoccapy.jog-speed.count-enable <= pendant.jogvel + diff --git a/configs/sim/gmoccapy/python/remap.py b/configs/sim/gmoccapy/python/remap.py index e1f6685e9be..cf5a085cb6a 100644 --- a/configs/sim/gmoccapy/python/remap.py +++ b/configs/sim/gmoccapy/python/remap.py @@ -1 +1,19 @@ +# This is a component of Machinekit +# Copyright 2011, 2012, 2013, 2014 Dewey Garrett , +# Michael Haberler , Norbert Schechner +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# from stdglue import * diff --git a/configs/sim/gmoccapy/python/stdglue.py b/configs/sim/gmoccapy/python/stdglue.py index a2119e601e0..84e729d2679 100644 --- a/configs/sim/gmoccapy/python/stdglue.py +++ b/configs/sim/gmoccapy/python/stdglue.py @@ -1,3 +1,20 @@ +# This is a component of Machinekit +# Copyright 2014 Norbert Schechner +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# # gmoccapy - Remap of M6 for auto tool measurement import os diff --git a/configs/sim/gmoccapy/python/toplevel.py b/configs/sim/gmoccapy/python/toplevel.py index f517c500c59..85a02b004c6 100644 --- a/configs/sim/gmoccapy/python/toplevel.py +++ b/configs/sim/gmoccapy/python/toplevel.py @@ -1,2 +1,20 @@ +# This is a component of Machinekit +# Copyright 2011, 2013, 2014 Dewey Garrett , +# Michael Haberler , Norbert Schechner +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# import remap diff --git a/configs/sim/gmoccapy/tool.tbl b/configs/sim/gmoccapy/tool.tbl index 432a5720f31..b21938ab350 100644 --- a/configs/sim/gmoccapy/tool.tbl +++ b/configs/sim/gmoccapy/tool.tbl @@ -1,12 +1,12 @@ -T1 P1 D4.500000 Z+14.488982 ;4.5 mm 3 flute cutter -T2 P2 D25.000000 Z+73.176937 ;25 mm cutter -T3 P3 D7.500000 Z+16.249352 ;7.5 mm 3 flute cutter +T1 P1 D4.500000 Z-16.309261 ;4.5 mm 3 flute cutter +T2 P2 D25.000000 Z-17.295477 ;25 mm cutter +T3 P3 D7.500000 Z-18.746089 ;7.5 mm 3 flute cutter T4 P4 D4.000000 Z-10.256000 ;4 mm Drill T5 P5 D5.000000 Z-10.254000 ;5 mm Drill T6 P6 D6.000000 Z-11.120000 ;6 mm Carbide burr T7 P7 D6.500000 Z-14.589000 ;6.5 mm HSS burr T8 P8 D12.000000 Z-14.458000 ;Cutter with 2 faces -T9 P9 D16.000000 Z-14.254000 ;Cutter with 3 faces +T9 P9 D16.000000 Z-16.527474 ;Cutter with 3 faces T10 P10 D165.000000 Z-12.112000 ;Facer with carbide inserts T11 P11 D10.000000 Z-14.258000 ;Centering drill T12 P12 D4.000000 Z+13.214000 ;3d taster elektronisch diff --git a/configs/sim/gscreen/README b/configs/sim/gscreen/README index 206e47a7187..7b250827935 100644 --- a/configs/sim/gscreen/README +++ b/configs/sim/gscreen/README @@ -1,4 +1,4 @@ -Gscreen is a customizable operator screen for linuxcnc. +Gscreen is a customizable operator screen for machinekit. Built with python, GLADE, and GTK Usable with touchscreens or a mouse. diff --git a/configs/sim/gscreen/axis_manualtoolchange.hal b/configs/sim/gscreen/axis_manualtoolchange.hal index b7c30109b6f..300d2baa445 120000 --- a/configs/sim/gscreen/axis_manualtoolchange.hal +++ b/configs/sim/gscreen/axis_manualtoolchange.hal @@ -1 +1 @@ -../axis_manualtoolchange.hal \ No newline at end of file +../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/gscreen/core_sim.hal b/configs/sim/gscreen/core_sim.hal index ead32827019..ddef7e1add2 120000 --- a/configs/sim/gscreen/core_sim.hal +++ b/configs/sim/gscreen/core_sim.hal @@ -1 +1 @@ -../core_sim.hal \ No newline at end of file +../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/gscreen/gscreen.ini b/configs/sim/gscreen/gscreen.ini index 46aaddf94f5..d3c6936db26 100644 --- a/configs/sim/gscreen/gscreen.ini +++ b/configs/sim/gscreen/gscreen.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-AXIS +MACHINE = Machinekit-HAL-SIM-AXIS # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x7FFFFFFF @@ -67,7 +67,7 @@ EMBED_TAB_COMMAND = gladevcp -x {XID} -t Redmond gladevcp-test.ui PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # if you press the 'tooleditor' button then this program will be launched diff --git a/configs/sim/gscreen/gscreen_custom/9axis.ini b/configs/sim/gscreen/gscreen_custom/9axis.ini index 8b71f8d9590..2ccaa7162fb 100644 --- a/configs/sim/gscreen/gscreen_custom/9axis.ini +++ b/configs/sim/gscreen/gscreen_custom/9axis.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-GSCREEN +MACHINE = Machinekit-HAL-SIM-GSCREEN # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others # DEBUG = 0x7FFFFFFF @@ -47,7 +47,7 @@ GEOMETRY = XYZBCUVW PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 [FILTER] diff --git a/configs/sim/gscreen/gscreen_custom/README b/configs/sim/gscreen/gscreen_custom/README index 6b2f44c05c7..5e5cb4909b9 100644 --- a/configs/sim/gscreen/gscreen_custom/README +++ b/configs/sim/gscreen/gscreen_custom/README @@ -1,4 +1,4 @@ -Gscreen is a customizable operator screen for linuxcnc. +Gscreen is a customizable operator screen for machinekit. Built with python, GLADE, and GTK diff --git a/configs/sim/gscreen/gscreen_custom/axis_manualtoolchange.hal b/configs/sim/gscreen/gscreen_custom/axis_manualtoolchange.hal index 397c8934a1f..d400e3cb871 120000 --- a/configs/sim/gscreen/gscreen_custom/axis_manualtoolchange.hal +++ b/configs/sim/gscreen/gscreen_custom/axis_manualtoolchange.hal @@ -1 +1 @@ -../../axis_manualtoolchange.hal \ No newline at end of file +../../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/gscreen/gscreen_custom/core_sim.hal b/configs/sim/gscreen/gscreen_custom/core_sim.hal index b79df2d33fb..378c8f6dbaf 120000 --- a/configs/sim/gscreen/gscreen_custom/core_sim.hal +++ b/configs/sim/gscreen/gscreen_custom/core_sim.hal @@ -1 +1 @@ -../../core_sim.hal \ No newline at end of file +../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/gscreen/gscreen_custom/core_sim9.hal b/configs/sim/gscreen/gscreen_custom/core_sim9.hal index 32979d06ff8..d73ccd0621e 120000 --- a/configs/sim/gscreen/gscreen_custom/core_sim9.hal +++ b/configs/sim/gscreen/gscreen_custom/core_sim9.hal @@ -1 +1 @@ -../../core_sim9.hal \ No newline at end of file +../../../common/core_sim9.hal \ No newline at end of file diff --git a/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini b/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini index 1c2344c5a97..0d6decb77c8 100644 --- a/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini +++ b/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = Linuxcnc-Gscreen_gaxis_no_plot +MACHINE = Machinekit-Gscreen_gaxis_no_plot # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x7FFFFFFF @@ -39,7 +39,7 @@ DEFAULT_LINEAR_VELOCITY = .25 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 [FILTER] diff --git a/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini b/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini index 0a1739953bb..6da0923b1fc 100644 --- a/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini +++ b/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = Linuxcnc-Gscreen_gaxis +MACHINE = Machinekit-Gscreen_gaxis # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x7FFFFFFF @@ -39,7 +39,7 @@ DEFAULT_LINEAR_VELOCITY = .25 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 [FILTER] diff --git a/configs/sim/gscreen/gscreen_custom/industrial.ini b/configs/sim/gscreen/gscreen_custom/industrial.ini index cd208daab3a..89011187f71 100644 --- a/configs/sim/gscreen/gscreen_custom/industrial.ini +++ b/configs/sim/gscreen/gscreen_custom/industrial.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = Linuxcnc-Gscreen_gaxis +MACHINE = Machinekit-Gscreen_gaxis # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x7FFFFFFF @@ -41,7 +41,7 @@ INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 [FILTER] diff --git a/configs/sim/gscreen/gscreen_custom/industrial_lathe.ini b/configs/sim/gscreen/gscreen_custom/industrial_lathe.ini index e1688b2067b..d3781b1d29a 100644 --- a/configs/sim/gscreen/gscreen_custom/industrial_lathe.ini +++ b/configs/sim/gscreen/gscreen_custom/industrial_lathe.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-AXIS +MACHINE = Machinekit-HAL-SIM-AXIS # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x7FFFFFFF @@ -45,7 +45,7 @@ DEFAULT_LINEAR_VELOCITY = .25 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit diff --git a/configs/sim/gscreen/gscreen_custom/tester.ini b/configs/sim/gscreen/gscreen_custom/tester.ini index 8b652676d9e..18bd8a397ed 100644 --- a/configs/sim/gscreen/gscreen_custom/tester.ini +++ b/configs/sim/gscreen/gscreen_custom/tester.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = Linuxcnc-Gscreen_gaxis +MACHINE = Machinekit-Gscreen_gaxis # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x7FFFFFFF @@ -30,7 +30,7 @@ CYCLE_TIME = 100 PROGRAM_PREFIX = ../../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 [FILTER] diff --git a/configs/sim/gscreen/gscreen_custom/tester_handler.py b/configs/sim/gscreen/gscreen_custom/tester_handler.py index 5886c598c18..2155428e5be 100644 --- a/configs/sim/gscreen/gscreen_custom/tester_handler.py +++ b/configs/sim/gscreen/gscreen_custom/tester_handler.py @@ -4,7 +4,7 @@ # to load a completely custom glade screen. # The only things that really matters is that it's saved as a GTK builder project, # the toplevel window is caller window1 (The default name) and you connect a destroy -# window signal else you can't close down linuxcnc +# window signal else you can't close down machinekit # standard handler call def get_handlers(halcomp,builder,useropts,gscreen): @@ -13,8 +13,8 @@ def get_handlers(halcomp,builder,useropts,gscreen): class HandlerClass: # This will be pretty standard to gain access to everything - # emc is for control and status of linuxcnc - # data is important data from gscreen and linuxcnc + # emc is for control and status of machinekit + # data is important data from gscreen and machinekit # widgets is all the widgets from the glade files # gscreen is for access to gscreens methods def __init__(self, halcomp,builder,useropts,gscreen): @@ -36,7 +36,7 @@ def connect_signals(self,handlers): # We don't want Gscreen to initialize it's regular widgets because this custom # screen doesn't have most of them. So we add this function call. - # Since this custom screen uses gladeVCP magic for its interaction with linuxcnc + # Since this custom screen uses gladeVCP magic for its interaction with machinekit # We don't add much to this function, but we do want the window to display. # init_show_window will do this def initialize_widgets(self): diff --git a/configs/sim/gscreen/gscreen_lathe.ini b/configs/sim/gscreen/gscreen_lathe.ini index 0ab8dc01350..f7539ec89ca 100644 --- a/configs/sim/gscreen/gscreen_lathe.ini +++ b/configs/sim/gscreen/gscreen_lathe.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-AXIS +MACHINE = Machinekit-HAL-SIM-AXIS # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x7FFFFFFF @@ -45,7 +45,7 @@ DEFAULT_LINEAR_VELOCITY = .25 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 EDITOR = gedit diff --git a/configs/sim/gscreen/gscreen_mm.ini b/configs/sim/gscreen/gscreen_mm.ini index 234e641ed9c..5e0e5449680 100644 --- a/configs/sim/gscreen/gscreen_mm.ini +++ b/configs/sim/gscreen/gscreen_mm.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-AXIS +MACHINE = Machinekit-HAL-SIM-AXIS # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others # DEBUG = 0x7FFFFFFF @@ -42,7 +42,7 @@ INCREMENTS = .01mm, .1mm, 1mm, 10mm PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 [FILTER] diff --git a/configs/sim/gscreen/ngcgui/axis_manualtoolchange.hal b/configs/sim/gscreen/ngcgui/axis_manualtoolchange.hal index 397c8934a1f..d400e3cb871 120000 --- a/configs/sim/gscreen/ngcgui/axis_manualtoolchange.hal +++ b/configs/sim/gscreen/ngcgui/axis_manualtoolchange.hal @@ -1 +1 @@ -../../axis_manualtoolchange.hal \ No newline at end of file +../../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/gscreen/ngcgui/core_sim.hal b/configs/sim/gscreen/ngcgui/core_sim.hal index b79df2d33fb..378c8f6dbaf 120000 --- a/configs/sim/gscreen/ngcgui/core_sim.hal +++ b/configs/sim/gscreen/ngcgui/core_sim.hal @@ -1 +1 @@ -../../core_sim.hal \ No newline at end of file +../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini b/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini index d326ae1c7b0..2c531ec527b 100644 --- a/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini +++ b/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini @@ -86,7 +86,7 @@ MESSAGE_PINNAME = bothtest PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # if you press the 'tooleditor' button then this program will be launched diff --git a/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_gcmc.ini b/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_gcmc.ini index 8c549cee34e..8c637c08a3f 100644 --- a/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_gcmc.ini +++ b/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_gcmc.ini @@ -85,7 +85,7 @@ MESSAGE_PINNAME = bothtest PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # if you press the 'tooleditor' button then this program will be launched diff --git a/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini b/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini index 194d317e6a9..9682970faac 100644 --- a/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini +++ b/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini @@ -86,7 +86,7 @@ MESSAGE_PINNAME = bothtest PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # if you press the 'tooleditor' button then this program will be launched diff --git a/configs/sim/hitcounter.py b/configs/sim/hitcounter.py index 521c134a6e6..2582aab889d 100644 --- a/configs/sim/hitcounter.py +++ b/configs/sim/hitcounter.py @@ -19,7 +19,7 @@ def on_button_press(self,widget,data=None): self.nhits += 1 self.builder.get_object('hits').set_label("Hits: %d" % (self.nhits)) - def __init__(self, halcomp,builder,useropts): + def __init__(self, halcomp,builder,useropts,compname): ''' Handler classes are instantiated in the following state: - the widget tree is created, but not yet realized (no toplevel window.show() executed yet) @@ -39,7 +39,7 @@ def __init__(self, halcomp,builder,useropts): -def get_handlers(halcomp,builder,useropts): +def get_handlers(halcomp,builder,useropts,compname): ''' this function is called by gladevcp at import time (when this module is passed with '-u .py') @@ -48,4 +48,4 @@ def get_handlers(halcomp,builder,useropts): the 'get_handlers' name is reserved - gladevcp expects it, so do not change ''' - return [HandlerClass(halcomp,builder,useropts)] + return [HandlerClass(halcomp,builder,useropts,compname)] diff --git a/configs/sim/icomp-demo-sim-newinst/README b/configs/sim/icomp-demo-sim-newinst/README new file mode 100644 index 00000000000..d1fe4d06346 --- /dev/null +++ b/configs/sim/icomp-demo-sim-newinst/README @@ -0,0 +1,8 @@ + +axis_mm.ini + +Demo of using instantiated components from a simple newinst command +This demo adds nothing special, +the standard axis and axis_mm sims work normally with instantiated components now + + diff --git a/configs/sim/icomp-demo-sim-newinst/axis_mm.ini b/configs/sim/icomp-demo-sim-newinst/axis_mm.ini new file mode 100644 index 00000000000..76695c3cb8a --- /dev/null +++ b/configs/sim/icomp-demo-sim-newinst/axis_mm.ini @@ -0,0 +1,228 @@ +# Machinekit controller parameters for a simulated machine. + +# General note: Comments can either be preceded with a # or ; - either is +# acceptable, although # is in keeping with most linux config files. + +# General section ------------------------------------------------------------- +[EMC] + +# Version of this INI file +VERSION = $Revision$ + +# Name of machine, for use with display, etc. +MACHINE = ICOMP_DEMO-SIM-newinst + +# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +# DEBUG = 0x7FFFFFFF +DEBUG = 0 + +# Sections for display options ------------------------------------------------ +[DISPLAY] + +# Name of display program, e.g., xemc +DISPLAY = axis + +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.100 + +# Path to help file +HELP_FILE = doc/help.txt + +# Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +# Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +# Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.2 +MAX_SPINDLE_OVERRIDE = 1.0 +# Prefix to be used +PROGRAM_PREFIX = ~/machinekit/ngc + +# Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 10 + +EDITOR = gedit + +INCREMENTS = 1 mm, .01 in, .1mm, 1 mil, .1 mil, 1/8000 in +[FILTER] +PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image +PROGRAM_EXTENSION = .py Python Script + +png = image-to-gcode +gif = image-to-gcode +jpg = image-to-gcode +py = python + +[USER_COMMANDS] +USER0 = #setp iocontrol.0.lube_level 1 +USER1 = G0 X0 Y0 Z0 +USER2 = G0 X5 Y5 Z5 +USER3 = G0 X10 Y10 Z10 +USER4 = G0 X15 Y15 Z15 +USER5 = G0 X20 Y20 Z20 +USER6 = G0 X25 Y25 +USER7 = G0 X30 Y30 +USER8 = $firefox "www.machinekit.io" +USER9 = $gedit +NUMBERKEYS = NO +DISABLE_PREVIEW = NO +LOAD_LASTFILE = YES + + +# Task controller section ----------------------------------------------------- +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +# Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.001 + +# Part program interpreter section -------------------------------------------- +[RS274NGC] + +FEATURES = 12 + +# File containing interpreter variables +PARAMETER_FILE = sim_mm.var + +# Motion control section ------------------------------------------------------ +[EMCMOT] + +EMCMOT = motmod + +# Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +# Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +# BASE_PERIOD is unused in this configuration but specified in core_sim.hal +BASE_PERIOD = 0 +# Servo task period, in nano-seconds +SERVO_PERIOD = 1000000 + +# Hardware Abstraction Layer section -------------------------------------------------- +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. +# + +# list of hal config files to run through halcmd +# files are executed in the order in which they appear +HALFILE = core_sim.hal +HALFILE = sim_spindle_encoder.hal +#HALFILE = axis_manualtoolchange.hal +HALFILE = simulated_home.hal + +# list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +# Single file that is executed after the GUI has started. Only supported by +# AXIS at this time (only AXIS creates a HAL component of its own) + +HALUI = halui + +# Trajectory planner section -------------------------------------------------- +[TRAJ] + +AXES = 3 +COORDINATES = X Y Z +HOME = 0 0 0 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 30.48 +MAX_VELOCITY = 53.34 +DEFAULT_ACCELERATION = 508 +MAX_ACCELERATION = 508 +POSITION_FILE = position_mm.txt + +# Axes sections --------------------------------------------------------------- + +# First axis +[AXIS_0] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 157.48 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -9999 +MAX_LIMIT = 9999 +FERROR = 1.27 +MIN_FERROR = .254 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 127 +HOME_LATCH_VEL = 25.4 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 +HOME_IS_SHARED = 1 + +# Second axis +[AXIS_1] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 157.48 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -9999 +MAX_LIMIT = 9999 +FERROR = 1.27 +MIN_FERROR = .254 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 127 +HOME_LATCH_VEL = 25.4 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 1 + +# Third axis +[AXIS_2] + +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 508 +BACKLASH = 0.000 +INPUT_SCALE = 157.48 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -9999 +MAX_LIMIT = 9999 +FERROR = 1.27 +MIN_FERROR = .254 +HOME_OFFSET = 25.4 +HOME_SEARCH_VEL = 127 +HOME_LATCH_VEL = 25.4 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO +HOME_SEQUENCE = 0 +HOME_IS_SHARED = 1 + +# section for main IO controller parameters ----------------------------------- +[EMCIO] + +# Name of IO controller program, e.g., io +EMCIO = io + +# cycle time, in seconds +CYCLE_TIME = 0.100 + +# tool table file +TOOL_TABLE = sim_mm.tbl +TOOL_CHANGE_POSITION = 0 0 50.8 + +[IOTOOL] + +IOTOOL = iocontrol diff --git a/configs/sim/icomp-demo-sim-newinst/check_constraints.hal b/configs/sim/icomp-demo-sim-newinst/check_constraints.hal new file mode 100644 index 00000000000..c2a432078ec --- /dev/null +++ b/configs/sim/icomp-demo-sim-newinst/check_constraints.hal @@ -0,0 +1,63 @@ +# HAL config file to check vel/acc constraints +# +loadrt wcomp names=wcomp_xacc,wcomp_xvel,wcomp_yacc,wcomp_yvel,wcomp_zacc,wcomp_zvel + +addf wcomp_xacc servo-thread +addf wcomp_xvel servo-thread +addf wcomp_yacc servo-thread +addf wcomp_yvel servo-thread +addf wcomp_zacc servo-thread +addf wcomp_zvel servo-thread + +net Xacc => wcomp_xacc.in +net Xvel => wcomp_xvel.in +net Yacc => wcomp_yacc.in +net Yvel => wcomp_yvel.in +net Zacc => wcomp_zacc.in +net Zvel => wcomp_zvel.in + +net acc-ok-x <= wcomp_xacc.out +net vel-ok-x <= wcomp_xvel.out +net acc-ok-y <= wcomp_yacc.out +net vel-ok-y <= wcomp_yvel.out +net acc-ok-z <= wcomp_zacc.out +net vel-ok-z <= wcomp_zvel.out + +setp wcomp_xacc.max 50.001 +setp wcomp_xacc.min -50.001 +setp wcomp_xvel.max 5.001 +setp wcomp_xvel.min -5.001 +setp wcomp_yacc.max 50.001 +setp wcomp_yacc.min -50.001 +setp wcomp_yvel.max 5.001 +setp wcomp_yvel.min -5.001 +setp wcomp_zacc.max 50.001 +setp wcomp_zacc.min -50.001 +setp wcomp_zvel.max 5.001 +setp wcomp_zvel.min -5.001 + +loadrt match8 names=match_all + +addf match_all servo-thread + +net acc-ok-x => match_all.a0 +setp match_all.b0 1 +net vel-ok-x => match_all.a1 +setp match_all.b1 1 +net acc-ok-y => match_all.a2 +setp match_all.b2 1 +net vel-ok-y => match_all.a3 +setp match_all.b3 1 +net acc-ok-z => match_all.a4 +setp match_all.b4 1 +net vel-ok-z => match_all.a5 +setp match_all.b5 1 + +setp match_all.a6 0 +setp match_all.a7 0 +setp match_all.b6 0 +setp match_all.b7 0 + +setp match_all.in 1 + +net constraints-ok <= match_all.out diff --git a/configs/sim/icomp-demo-sim-newinst/core_sim.hal b/configs/sim/icomp-demo-sim-newinst/core_sim.hal new file mode 100644 index 00000000000..2a172f089da --- /dev/null +++ b/configs/sim/icomp-demo-sim-newinst/core_sim.hal @@ -0,0 +1,68 @@ +# core HAL config file for simulation + +# first load all the RT modules that will be needed +# kinematics +loadrt trivkins +loadrt tp +# motion controller, get name and thread periods from ini file +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins + +# load 6 differentiators (for velocity and accel signals +# Previously loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv + +newinst i_ddt ddt_x +newinst i_ddt ddt_xv +newinst i_ddt ddt_y +newinst i_ddt ddt_yv +newinst i_ddt ddt_z +newinst i_ddt ddt_zv + + +# load additional blocks +# Previously loadrt hypot names=vel_xy,vel_xyz + +#loadrt i_hypot +newinst i_hypot vel_xy +newinst i_hypot vel_xyz + + +# add motion controller functions to servo thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread + +# link the differentiator functions into the code +addf ddt_x servo-thread +addf ddt_xv servo-thread +addf ddt_y servo-thread +addf ddt_yv servo-thread +addf ddt_z servo-thread +addf ddt_zv servo-thread + +addf vel_xy servo-thread +addf vel_xyz servo-thread + +# create HAL signals for position commands from motion module +# loop position commands back to motion module feedback +net Xpos axis.0.motor-pos-cmd => axis.0.motor-pos-fb ddt_x.in +net Ypos axis.1.motor-pos-cmd => axis.1.motor-pos-fb ddt_y.in +net Zpos axis.2.motor-pos-cmd => axis.2.motor-pos-fb ddt_z.in + +# send the position commands thru differentiators to +# generate velocity and accel signals +net Xvel ddt_x.out => ddt_xv.in vel_xy.in0 +net Xacc <= ddt_xv.out +net Yvel ddt_y.out => ddt_yv.in vel_xy.in1 +net Yacc <= ddt_yv.out +net Zvel ddt_z.out => ddt_zv.in vel_xyz.in0 +net Zacc <= ddt_zv.out + +# Cartesian 2- and 3-axis velocities +net XYvel vel_xy.out => vel_xyz.in1 +net XYZvel <= vel_xyz.out + +# estop loopback +net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in + +# create signals for tool loading loopback +net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared +net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed diff --git a/configs/sim/icomp-demo-sim-newinst/sim_mm.tbl b/configs/sim/icomp-demo-sim-newinst/sim_mm.tbl new file mode 100644 index 00000000000..661efb2b0b7 --- /dev/null +++ b/configs/sim/icomp-demo-sim-newinst/sim_mm.tbl @@ -0,0 +1,24 @@ +T1 P1 Z0.511 D3 ;3mm end mill +T2 P4 Z0.1 D1.5 ;1.5mm end mill +T3 P3 Z1.273 D5 ;5mm tap drill +T4 P2 Z10 D16 ;16 mm schaftfräser +T5 P5 Z25 D25 ;25'er fräser +T6 P6 Z6 D6 ;tool 6 +T7 P7 Z7 D7 ;7 +T8 P8 Z8 D8 ;8 +T9 P9 Z9 D9 ;9 +T10 P10 Z10 D10 ;10 +T11 P11 Z11 D11 ;11 +T12 P12 Z12 D12 ;12 +T13 P13 Z13 D13 ;13 +T14 P14 Z14 D14 ;14 +T15 P15 Z15 D15 ;15 +T16 P16 Z16 D16 ;16 +T17 P17 Z17 D17 ;17 +T18 P18 Z18 D18 ;18 +T19 P19 Z19 D19 ;19 +T20 P20 Z20 D20 ;20 +T21 P21 Z21 D21 ;21 +T22 P22 Z22 D22 ;22 +T23 P23 Z23 D23 ;23 +T24 P24 Z24 D24 ;24 diff --git a/configs/sim/icomp-demo-sim-newinst/sim_spindle_encoder.hal b/configs/sim/icomp-demo-sim-newinst/sim_spindle_encoder.hal new file mode 100644 index 00000000000..e2ab07da8f2 --- /dev/null +++ b/configs/sim/icomp-demo-sim-newinst/sim_spindle_encoder.hal @@ -0,0 +1,45 @@ +# simulated spindle encoder (for spindle-synced moves) +loadrt sim_spindle names=sim_spindle +setp sim_spindle.scale 0.01666667 + +#loadrt limit2 names=limit_speed +newinst i_limit2 limit_speed + +#loadrt lowpass names=spindle_mass +newinst i_lowpass spindle_mass + +#loadrt near names=near_speed +newinst i_near near_speed + +# this limit doesnt make any sense to me: +setp limit_speed.maxv 5000.0 # rpm/second + +# encoder reset control +# hook up motion controller's sync output +net spindle-index-enable motion.spindle-index-enable <=> sim_spindle.index-enable + +# report our revolution count to the motion controller +net spindle-pos sim_spindle.position-fb => motion.spindle-revs + +# simulate spindle mass +setp spindle_mass.gain .07 + +# spindle speed control +net spindle-speed-cmd motion.spindle-speed-out => limit_speed.in +net spindle-speed-limited limit_speed.out => sim_spindle.velocity-cmd spindle_mass.in + +# for spindle velocity estimate +net spindle-rpm-filtered spindle_mass.out motion.spindle-speed-in near_speed.in2 + +# at-speed detection +setp near_speed.scale 1.1 +setp near_speed.difference 10 + +net spindle-speed-cmd => near_speed.in1 +net spindle-at-speed near_speed.out motion.spindle-at-speed + +addf limit_speed servo-thread +addf spindle_mass servo-thread +addf near_speed servo-thread + +addf sim_spindle servo-thread diff --git a/configs/sim/icomp-demo-sim-newinst/simulated_home.hal b/configs/sim/icomp-demo-sim-newinst/simulated_home.hal new file mode 100644 index 00000000000..be3d13359d8 --- /dev/null +++ b/configs/sim/icomp-demo-sim-newinst/simulated_home.hal @@ -0,0 +1,36 @@ +#loadrt or2 names=or2_0 +newinst i_or2 or2_0 + +#loadrt comp names=comp_x,comp_y,comp_z +newinst i_comp comp_x +newinst i_comp comp_y +newinst i_comp comp_z + +net Xhomeswpos => comp_x.in0 +net Yhomeswpos => comp_y.in0 +net Zhomeswpos => comp_z.in0 + +sets Xhomeswpos 1 +sets Yhomeswpos .5 +sets Zhomeswpos 2 + +net Xpos => comp_x.in1 +net Ypos => comp_y.in1 +net Zpos => comp_z.in1 + +setp comp_x.hyst .02 +setp comp_y.hyst .02 +setp comp_z.hyst .02 + +net Xhomesw <= comp_x.out +net Yhomesw <= comp_y.out => axis.1.home-sw-in +net Zhomesw <= comp_z.out + +net Xhomesw => or2_0.in0 +net Zhomesw => or2_0.in1 +net XZhomesw or2_0.out => axis.0.home-sw-in axis.2.home-sw-in + +addf comp_x servo-thread +addf comp_y servo-thread +addf comp_z servo-thread +addf or2_0 servo-thread diff --git a/configs/sim/icomp-demo-sim-newinst/simulated_limits.hal b/configs/sim/icomp-demo-sim-newinst/simulated_limits.hal new file mode 100644 index 00000000000..1e69aa0c359 --- /dev/null +++ b/configs/sim/icomp-demo-sim-newinst/simulated_limits.hal @@ -0,0 +1,85 @@ +# HAL config file to simulate limit switches using window comparators +# +# first install nine comparators +# loadrt wcomp names=wcomp_xmin,wcomp_xmax,wcomp_xhome,wcomp_ymin,wcomp_ymax,wcomp_yhome,wcomp_zmin,wcomp_zmax,wcomp_zhome +newinst i_wcomp wcomp_xmin +newinst i_wcomp wcomp_xmax +newinst i_wcomp wcomp_xhome +newinst i_wcomp wcomp_ymin +newinst i_wcomp wcomp_ymax +newinst i_wcomp wcomp_yhome +newinst i_wcomp wcomp_zmin +newinst i_wcomp wcomp_zmax +newinst i_wcomp wcomp_zhome + + +# add comparators to servo thread so they will be evaluated +# every servo period +addf wcomp_xmin servo-thread +addf wcomp_xmax servo-thread +addf wcomp_xhome servo-thread +addf wcomp_ymin servo-thread +addf wcomp_ymax servo-thread +addf wcomp_yhome servo-thread +addf wcomp_zmin servo-thread +addf wcomp_zmax servo-thread +addf wcomp_zhome servo-thread + +# connect position feedback from step generators +# to window comparators +net Xpos-fb => wcomp_xmin.in +net Xpos-fb => wcomp_xmax.in +net Xpos-fb => wcomp_xhome.in +net Ypos-fb => wcomp_ymin.in +net Ypos-fb => wcomp_ymax.in +net Ypos-fb => wcomp_yhome.in +net Zpos-fb => wcomp_zmin.in +net Zpos-fb => wcomp_zmax.in +net Zpos-fb => wcomp_zhome.in + +# connect simulated switch outputs to motion controller +net Xminlim wcomp_xmin.out => axis.0.neg-lim-sw-in +net Xmaxlim wcomp_xmax.out => axis.0.pos-lim-sw-in +net Xhome wcomp_xhome.out => axis.0.home-sw-in + +net Yminlim wcomp_ymin.out => axis.1.neg-lim-sw-in +net Ymaxlim wcomp_ymax.out => axis.1.pos-lim-sw-in +net Yhome wcomp_yhome.out => axis.1.home-sw-in + +net Zminlim wcomp_zmin.out => axis.2.neg-lim-sw-in +net Zmaxlim wcomp_zmax.out => axis.2.pos-lim-sw-in +net Zhome wcomp_zhome.out => axis.2.home-sw-in + +# configure the points at which the simulated switches trip +# X axis first +# set min limit switch to trip at -10.2, release at -1000 +setp wcomp_xmin.max -10.2 +setp wcomp_xmin.min -1000 +# set max limit switch to trip at +10.2, release at +10.21 +setp wcomp_xmax.min 10.20 +setp wcomp_xmax.max 10.21 +# set home switch to trip at 9.5 and release at 9.75 +setp wcomp_xhome.min 9.5 +setp wcomp_xhome.max 9.75 + +# Y axis +# set min limit switch to trip at -10.2, release at -1000 +setp wcomp_ymin.max -10.2 +setp wcomp_ymin.min -1000 +# set max limit switch to trip at +10.2, release at +10.21 +setp wcomp_ymax.min 10.20 +setp wcomp_ymax.max 10.21 +# set home switch to trip at 9.5 and release at 9.75 +setp wcomp_yhome.min 9.5 +setp wcomp_yhome.max 9.75 + +# Z axis +# set min limit switch to trip at -2.1, release at -1000 +setp wcomp_zmin.max -2.1 +setp wcomp_zmin.min -1000 +# set max limit switch to trip at +4.05,release at +5 +setp wcomp_zmax.min 4.05 +setp wcomp_zmax.max 5 +# set home switch to trip at 3.9 and release at 4.1 +setp wcomp_zhome.min 3.9 +setp wcomp_zhome.max 4.1 diff --git a/configs/sim/low_graphics/core_sim.hal b/configs/sim/low_graphics/core_sim.hal index ead32827019..ddef7e1add2 120000 --- a/configs/sim/low_graphics/core_sim.hal +++ b/configs/sim/low_graphics/core_sim.hal @@ -1 +1 @@ -../core_sim.hal \ No newline at end of file +../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/low_graphics/keystick.ini b/configs/sim/low_graphics/keystick.ini index 984e34c78d4..1c45e690cab 100644 --- a/configs/sim/low_graphics/keystick.ini +++ b/configs/sim/low_graphics/keystick.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-KEYSTICK +MACHINE = Machinekit-HAL-SIM-KEYSTICK # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x00000003 @@ -43,7 +43,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ # No Introductory graphic, because we might be running a non-X setup -#INTRO_GRAPHIC = linuxcnc.gif +#INTRO_GRAPHIC = machinekit.gif #INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/sim/low_graphics/mini.ini b/configs/sim/low_graphics/mini.ini index 6ce4e3c08e4..bd684bfbacd 100644 --- a/configs/sim/low_graphics/mini.ini +++ b/configs/sim/low_graphics/mini.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-MINI +MACHINE = Machinekit-HAL-SIM-MINI # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x00000003 @@ -43,7 +43,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/sim/low_graphics/xlinuxcnc.ini b/configs/sim/low_graphics/xlinuxcnc.ini index 2e632eb7c29..d00fcad6e1a 100644 --- a/configs/sim/low_graphics/xlinuxcnc.ini +++ b/configs/sim/low_graphics/xlinuxcnc.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-XEMC +MACHINE = Machinekit-HAL-SIM-XEMC # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x00000003 @@ -43,7 +43,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/sim/pyvcp_demo/axis_manualtoolchange.hal b/configs/sim/pyvcp_demo/axis_manualtoolchange.hal index b7c30109b6f..300d2baa445 120000 --- a/configs/sim/pyvcp_demo/axis_manualtoolchange.hal +++ b/configs/sim/pyvcp_demo/axis_manualtoolchange.hal @@ -1 +1 @@ -../axis_manualtoolchange.hal \ No newline at end of file +../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/pyvcp_demo/core_sim.hal b/configs/sim/pyvcp_demo/core_sim.hal index ead32827019..ddef7e1add2 120000 --- a/configs/sim/pyvcp_demo/core_sim.hal +++ b/configs/sim/pyvcp_demo/core_sim.hal @@ -1 +1 @@ -../core_sim.hal \ No newline at end of file +../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/servo_sim.hal b/configs/sim/servo_sim.hal index 889aeced44c..ba99a9f4202 100644 --- a/configs/sim/servo_sim.hal +++ b/configs/sim/servo_sim.hal @@ -4,7 +4,9 @@ # kinematics loadrt trivkins # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=trivkins # PID module, for three PID loops loadrt pid names=pid_x,pid_y,pid_z # 6 differentiators (for velocity and accel sigs), @@ -138,12 +140,12 @@ setp pid_z.maxoutput [AXIS_2]MAX_VELOCITY # NOTE: eventually these will be non-zero values as # needed to tune the performance of each axis. The # initial values shown here are extremely conservative -# to prevent unexpected behavior. After this file +# to prevent unexpected behavior. After this file # has been "executed" by halcmd, the gains can be # interactively adjusted using commands like # "halcmd setp pid..Pgain " -# Once the axis has been tuned to your satisfaction, -# do "halcmd show param | grep pid" to get a listing +# Once the axis has been tuned to your satisfaction, +# do "halcmd show param | grep pid" to get a listing # of the tuning parameters, and enter those values here. # the values below come from the ini diff --git a/configs/sim/tklinuxcnc/core_sim.hal b/configs/sim/tklinuxcnc/core_sim.hal index ead32827019..ddef7e1add2 120000 --- a/configs/sim/tklinuxcnc/core_sim.hal +++ b/configs/sim/tklinuxcnc/core_sim.hal @@ -1 +1 @@ -../core_sim.hal \ No newline at end of file +../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/tklinuxcnc/servo_sim.ini b/configs/sim/tklinuxcnc/servo_sim.ini index acd05fcf40c..95d592184d6 100644 --- a/configs/sim/tklinuxcnc/servo_sim.ini +++ b/configs/sim/tklinuxcnc/servo_sim.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SERVO-SIM +MACHINE = Machinekit-HAL-SERVO-SIM # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others # DEBUG = 0x00000003 @@ -43,7 +43,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/sim/tklinuxcnc/tklinuxcnc.ini b/configs/sim/tklinuxcnc/tklinuxcnc.ini index db23e1a9a6e..30f7d16e5f2 100644 --- a/configs/sim/tklinuxcnc/tklinuxcnc.ini +++ b/configs/sim/tklinuxcnc/tklinuxcnc.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-HAL-SIM-TkLinuxCNC +MACHINE = Machinekit-HAL-SIM-Tklinuxcnc # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x00000003 @@ -49,7 +49,7 @@ MAX_SPINDLE_OVERRIDE = 1.5 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Task controller section ----------------------------------------------------- diff --git a/configs/sim/tklinuxcnc/tripod.ini b/configs/sim/tklinuxcnc/tripod.ini index d3509f6eab1..55f54fc2bc9 100644 --- a/configs/sim/tklinuxcnc/tripod.ini +++ b/configs/sim/tklinuxcnc/tripod.ini @@ -10,7 +10,7 @@ VERSION = $Revision$ # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-TRIPOD-SIM-TkLinuxCNC +MACHINE = Machinekit-TRIPOD-SIM-Tklinuxcnc # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x00000003 @@ -43,7 +43,7 @@ MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = ../../nc_files/ # Introductory graphic -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 [FILTER] diff --git a/configs/sim/touchy/core_sim.hal b/configs/sim/touchy/core_sim.hal index ead32827019..ddef7e1add2 120000 --- a/configs/sim/touchy/core_sim.hal +++ b/configs/sim/touchy/core_sim.hal @@ -1 +1 @@ -../core_sim.hal \ No newline at end of file +../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/touchy/gladevcp/core_sim.hal b/configs/sim/touchy/gladevcp/core_sim.hal index b79df2d33fb..378c8f6dbaf 120000 --- a/configs/sim/touchy/gladevcp/core_sim.hal +++ b/configs/sim/touchy/gladevcp/core_sim.hal @@ -1 +1 @@ -../../core_sim.hal \ No newline at end of file +../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/touchy/gladevcp/gladevcp_touchy.ini b/configs/sim/touchy/gladevcp/gladevcp_touchy.ini index 3d6b1954ae6..7f7240d1f09 100644 --- a/configs/sim/touchy/gladevcp/gladevcp_touchy.ini +++ b/configs/sim/touchy/gladevcp/gladevcp_touchy.ini @@ -6,7 +6,7 @@ MACRO=probe-hole maxradius [EMC] # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-TOUCHY-GLADEVCP +MACHINE = Machinekit-TOUCHY-GLADEVCP # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x7FFFFFFF @@ -24,7 +24,7 @@ EMBED_TAB_COMMAND=gladevcp -c gladevcp -x {XID} -u hitcounter.py -H gladevcp-tou PROGRAM_PREFIX = ../../nc_files/ -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # EMBED_TAB_NAME = Tools diff --git a/configs/sim/touchy/gladevcp/touchy.ini b/configs/sim/touchy/gladevcp/touchy.ini index cdd2c7a0b96..458deb30aa2 100644 --- a/configs/sim/touchy/gladevcp/touchy.ini +++ b/configs/sim/touchy/gladevcp/touchy.ini @@ -6,7 +6,7 @@ MACRO=probe-hole maxradius [EMC] # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-TOUCHY +MACHINE = Machinekit-TOUCHY # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x7FFFFFFF @@ -18,7 +18,7 @@ DISPLAY = touchy PROGRAM_PREFIX = ../../nc_files/ -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # EMBED_TAB_NAME = Tools diff --git a/configs/sim/touchy/ngcgui/axis_manualtoolchange.hal b/configs/sim/touchy/ngcgui/axis_manualtoolchange.hal index 397c8934a1f..d400e3cb871 120000 --- a/configs/sim/touchy/ngcgui/axis_manualtoolchange.hal +++ b/configs/sim/touchy/ngcgui/axis_manualtoolchange.hal @@ -1 +1 @@ -../../axis_manualtoolchange.hal \ No newline at end of file +../../../common/axis_manualtoolchange.hal \ No newline at end of file diff --git a/configs/sim/touchy/ngcgui/core_sim.hal b/configs/sim/touchy/ngcgui/core_sim.hal index ead32827019..378c8f6dbaf 120000 --- a/configs/sim/touchy/ngcgui/core_sim.hal +++ b/configs/sim/touchy/ngcgui/core_sim.hal @@ -1 +1 @@ -../core_sim.hal \ No newline at end of file +../../../common/core_sim.hal \ No newline at end of file diff --git a/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini b/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini index 1f4b8fd5e28..34dd0719854 100644 --- a/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini +++ b/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini @@ -45,7 +45,7 @@ DISPLAY = touchy PROGRAM_PREFIX = ../../nc_files/ -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 [TASK] diff --git a/configs/sim/touchy/ngcgui/pyngcgui_touchy_gcmc.ini b/configs/sim/touchy/ngcgui/pyngcgui_touchy_gcmc.ini index 347918a60d0..8815d1b0884 100644 --- a/configs/sim/touchy/ngcgui/pyngcgui_touchy_gcmc.ini +++ b/configs/sim/touchy/ngcgui/pyngcgui_touchy_gcmc.ini @@ -47,7 +47,7 @@ DISPLAY = touchy PROGRAM_PREFIX = ../../nc_files/ -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 [TASK] diff --git a/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini b/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini index 5aab899179d..547afdcd1f1 100644 --- a/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini +++ b/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini @@ -43,7 +43,7 @@ POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 MAX_SPINDLE_OVERRIDE = 1.0 -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 [FILTER] diff --git a/configs/sim/touchy/touchy.ini b/configs/sim/touchy/touchy.ini index 688d6dd7e8c..4c22f371df7 100644 --- a/configs/sim/touchy/touchy.ini +++ b/configs/sim/touchy/touchy.ini @@ -6,7 +6,7 @@ MACRO=probe-hole maxradius [EMC] # Name of machine, for use with display, etc. -MACHINE = LinuxCNC-TOUCHY +MACHINE = Machinekit-TOUCHY # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others #DEBUG = 0x7FFFFFFF @@ -18,7 +18,7 @@ DISPLAY = touchy PROGRAM_PREFIX = ../../nc_files/ -INTRO_GRAPHIC = linuxcnc.gif +INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # EMBED_TAB_NAME = Tools diff --git a/configs/sim/tripodsim.hal b/configs/sim/tripodsim.hal index d6e5a6890b4..502c31b546a 100644 --- a/configs/sim/tripodsim.hal +++ b/configs/sim/tripodsim.hal @@ -8,7 +8,9 @@ setp tripodkins.Cx 5 setp tripodkins.Cy 7.071 # motion controller, get name and thread periods from ini file -loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD tp=tp kins=tripodkins # 6 differentiators (for velocity and accel sigs) loadrt ddt names=ddt_j0,ddt_j1,ddt_j2,ddt_j0v,ddt_j1v,ddt_j2v diff --git a/configs/sim/v2-tc-gtk212.ui b/configs/sim/v2-tc-gtk212.ui new file mode 100644 index 00000000000..82743b33887 --- /dev/null +++ b/configs/sim/v2-tc-gtk212.ui @@ -0,0 +1,585 @@ + + + + + + + + + True + + + True + 0 + none + + + True + 12 + + + True + True + + + True + tool-prepare + + + 0 + + + + + True + + 2 + #ffffacac0000 + #18180d0d0d0d + amber + + + 1 + + + + + tool-prepared + True + True + True + + + 2 + + + + + + + + + True + <b>Prepare</b> + True + + + + + 0 + + + + + True + 0 + none + + + True + 12 + + + True + 3 + True + + + True + start-change + + + + + True + 2 + #13bfdf262446 + #000000000000 + cyan + + + 1 + 2 + + + + + start-change-ack + True + True + True + + + 2 + 3 + + + + + + + + + True + <b>Start of change</b> + True + + + + + 1 + + + + + True + 0 + none + + + True + 12 + + + True + + + True + tool-change + + + 0 + + + + + True + + 2 + #d5dff1460bd6 + #000000000000 + yellow + + + 1 + + + + + tool-changed + True + True + True + + + 2 + + + + + + + + + True + <b>Change</b> + True + + + + + 2 + + + + + True + 0 + none + + + True + 12 + + + True + + + True + 5 + 3 + + + True + toolchanger-reason + + + + + True + True + + + + 1 + 2 + + + + + toolchanger-fault + True + True + True + + + 1 + 2 + + + + + True + toolchanger-faulted + + + 2 + 3 + + + + + True + 2 + #ec760b470b47 + + + 1 + 2 + 2 + 3 + + + + + True + toolchanger-fault-ack + + + 3 + 4 + + + + + True + 2 + #ec760b470b47 + + + 1 + 2 + 3 + 4 + + + + + toolchanger-clear-fault + True + True + True + + + 4 + 5 + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + True + <b>Toolchanger</b> + True + + + + + 3 + + + + + True + 0 + none + + + True + 12 + + + True + + + True + 4 + 3 + + + True + emc-abort + + + + + True + 2 + #f717112a112a + + + 1 + 2 + + + + + emc-abort-ack + False + True + True + + + 2 + 3 + + + + + True + emc-abort-ack + + + 1 + 2 + + + + + True + 2 + #f052034a034a + + + 1 + 2 + 1 + 2 + + + + + True + emc-reason: %d + + + 3 + 2 + 3 + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + True + <b>Emc</b> + True + + + + + 4 + + + + + True + 0 + none + + + True + 12 + + + True + + + True + tool-prep-number: %d + + + 0 + + + + + True + tool-prep-pocket: %d + + + 1 + + + + + True + tool-number: %d + + + 2 + + + + + True + iocontrol state: %d + + + 3 + + + + + + + + + + + + + + + True + <b>Toolnumber pins + state</b> + True + + + + + 5 + + + + + True + 0 + none + + + True + 12 + + + True + + + halui-abort + True + True + True + + + 0 + + + + + + + + + True + <b>Halui</b> + True + + + + + 6 + + + + + + + + + + + + + + + + -100 + 100 + 1 + + diff --git a/configs/stepper/mah.ini b/configs/stepper/mah.ini new file mode 100644 index 00000000000..b877a50afd1 --- /dev/null +++ b/configs/stepper/mah.ini @@ -0,0 +1,221 @@ +# EMC controller parameters for generic controller. Make these what you need +# for your system. + +# General note: Comments can either be preceded with a # or ; - either is +# acceptable, although # is in keeping with most linux config files. + +# Settings with a + at the front of the comment are likely needed to get +# changed by the user. +# Settings with a - at the front are highly unneeded to be changed +############################################################################### +# General section +############################################################################### +[EMC] + +#- Version of this INI file +VERSION = $Revision$ + +#+ Name of machine, for use with display, etc. +MACHINE = Machinekit-HAL-STEP-MM + +#+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others +DEBUG = 0 +# DEBUG = 0x00000007 +# DEBUG = 0x7FFFFFFF + +############################################################################### +# Sections for display options +############################################################################### +[DISPLAY] + +#+ Name of display program, e.g., xemc +DISPLAY = axis +# DISPLAY = usrmot +# DISPLAY = mini +# DISPLAY = tkemc +# Cycle time, in seconds, that display will sleep between polls +CYCLE_TIME = 0.200 + +#- Path to help file +HELP_FILE = tklinucnc.txt + +#- Initial display setting for position, RELATIVE or MACHINE +POSITION_OFFSET = RELATIVE + +#- Initial display setting for position, COMMANDED or ACTUAL +POSITION_FEEDBACK = ACTUAL + +#+ Highest value that will be allowed for feed override, 1.0 = 100% +MAX_FEED_OVERRIDE = 1.2 + +#- Prefix to be used +PROGRAM_PREFIX = ../../nc_files/ + +#- Introductory graphic +INTRO_GRAPHIC = machinekit.gif +INTRO_TIME = 5 + + +############################################################################### +# Task controller section +############################################################################### +[TASK] + +# Name of task controller program, e.g., milltask +TASK = milltask + +#- Cycle time, in seconds, that task controller will sleep between polls +CYCLE_TIME = 0.010 + +############################################################################### +# Part program interpreter section +############################################################################### +[RS274NGC] + +#- File containing interpreter variables +PARAMETER_FILE = stepper.var + +############################################################################### +# Motion control section +############################################################################### +[EMCMOT] + +#- Name of the motion controller to use (only one exists for nontrivkins) +EMCMOT = motmod + +#- Timeout for comm to emcmot, in seconds +COMM_TIMEOUT = 1.0 + +#- Interval between tries to emcmot, in seconds +COMM_WAIT = 0.010 + +#+ Base task period, in nanosecs - this is the fastest thread in the machine +BASE_PERIOD = 50000 +#- Servo task period, in nanosecs - will be rounded to an int multiple of BASE_PERIOD +SERVO_PERIOD = 1000000 + +############################################################################### +# Hardware Abstraction Layer section +############################################################################### +[HAL] + +# The run script first uses halcmd to execute any HALFILE +# files, and then to execute any individual HALCMD commands. +# + +# list of hal config files to run through halcmd +#+ files are executed in the order in which they appear +HALFILE = mah_stepper.hal +#HALFILE = xylotex_pinout.hal +HALFILE = standard_pinout.hal + +#- list of halcmd commands to execute +# commands are executed in the order in which they appear +#HALCMD = save neta + +############################################################################### +# Trajectory planner section +############################################################################### +[TRAJ] +NO_FORCE_HOMING = 1 +#+ machine specific settings +AXES = 3 +# COORDINATES = X Y Z A B C +COORDINATES = X Y Z +HOME = 0 0 0 +LINEAR_UNITS = mm +ANGULAR_UNITS = degree +CYCLE_TIME = 0.010 +DEFAULT_VELOCITY = 0.424 +MAX_VELOCITY = 30.48 +DEFAULT_ACCELERATION = 300.0 +MAX_ACCELERATION = 500.0 + +############################################################################### +# Axes sections +############################################################################### + +#+ First axis +[AXIS_0] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 30.48 +# NOTE: the step generator module applies its own limits to +# acceleration and velocity. We have discovered that it needs +# to have a little "headroom" over the accel by the trajectory +# planner, otherwise it can fall slightly behind during accel +# and later overshoot as it catches up. In the long term we +# hope to come up with a clean fix for this problem. In the +# meantime, please set STEPGEN_MAXACCEL below to a few percent +# higher than the regular acceleration limit MAX_ACCELERATION +MAX_ACCELERATION = 500.0 +STEPGEN_MAXACCEL = 520.0 +BACKLASH = 0.000 +SCALE = 200 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -1000.0 +MAX_LIMIT = 1000.0 +FERROR = 1.270 +MIN_FERROR = 0.254 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO + +#+ Second axis +[AXIS_1] + +TYPE = LINEAR +HOME = 0.000 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 500.0 +STEPGEN_MAXACCEL = 520.0 +BACKLASH = 0.000 +SCALE = 200 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -1000.0 +MAX_LIMIT = 1000.0 +FERROR = 1.270 +MIN_FERROR = 0.254 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO + +#+ Third axis +[AXIS_2] + +TYPE = LINEAR +HOME = 0.0 +MAX_VELOCITY = 30.48 +MAX_ACCELERATION = 500.0 +STEPGEN_MAXACCEL = 520.0 +BACKLASH = 0.000 +SCALE = 200 +OUTPUT_SCALE = 1.000 +MIN_LIMIT = -1000.0 +MAX_LIMIT = 1000.0 +FERROR = 1.270 +MIN_FERROR = 0.254 +HOME_OFFSET = 0.0 +HOME_SEARCH_VEL = 0.0 +HOME_LATCH_VEL = 0.0 +HOME_USE_INDEX = NO +HOME_IGNORE_LIMITS = NO + +############################################################################### +# section for main IO controller parameters +############################################################################### +[EMCIO] + +#- Name of IO controller program, e.g., io +EMCIO = io + +#- cycle time, in seconds +CYCLE_TIME = 0.100 + +#- tool table file +TOOL_TABLE = stepper.tbl diff --git a/configs/stepper/mah_stepper.hal b/configs/stepper/mah_stepper.hal new file mode 100644 index 00000000000..692a3cbb344 --- /dev/null +++ b/configs/stepper/mah_stepper.hal @@ -0,0 +1,55 @@ +# core HAL config file for steppers + +# first load the core RT modules that will be needed +# kinematics +loadrt trivkins +# motion controller, get name and thread periods from ini file +# trajectory planner +loadrt tp +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD base_cpu=1 servo_period_nsec=[EMCMOT]SERVO_PERIOD servo_cpu=0 num_joints=[TRAJ]AXES tp=tp kins=trivkins +# stepper module, three step generators, all three using step/dir +loadrt stepgen step_type=0,0,0 + +# hook functions to base thread (high speed thread for step generation) +addf stepgen.make-pulses base-thread + +# hook functions to servo thread +addf stepgen.capture-position servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf stepgen.update-freq servo-thread + +# connect position commands from motion module to step generator +net Xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd +net Ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd +net Zpos-cmd axis.2.motor-pos-cmd => stepgen.2.position-cmd + +# connect position feedback from step generators +# to motion module +net Xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb +net Ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb +net Zpos-fb stepgen.2.position-fb => axis.2.motor-pos-fb + +# connect enable signals for step generators +net Xen axis.0.amp-enable-out => stepgen.0.enable +net Yen axis.1.amp-enable-out => stepgen.1.enable +net Zen axis.2.amp-enable-out => stepgen.2.enable + +# connect signals to step pulse generator outputs +net Xstep <= stepgen.0.step +net Xdir <= stepgen.0.dir +net Ystep <= stepgen.1.step +net Ydir <= stepgen.1.dir +net Zstep <= stepgen.2.step +net Zdir <= stepgen.2.dir + +# set stepgen module scaling - get values from ini file +setp stepgen.0.position-scale [AXIS_0]SCALE +setp stepgen.1.position-scale [AXIS_1]SCALE +setp stepgen.2.position-scale [AXIS_2]SCALE + +# set stepgen module accel limits - get values from ini file +setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL +setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL +setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL + diff --git a/debian/.gitignore b/debian/.gitignore index 4330a43359f..dd152f2e623 100644 --- a/debian/.gitignore +++ b/debian/.gitignore @@ -1,21 +1,16 @@ -linuxcnc-common -linuxcnc-firmware -linuxcnc-firmware-* -linuxcnc-sim -files -rules -control -tmp -linuxcnc -linuxcnc-dev -linuxcnc-sim-dev -linuxcnc-python -linuxcnc-doc-*/ -*.substvars -/linuxcnc.files -/linuxcnc-dev.files -/linuxcnc-sim.files -/linuxcnc-sim-dev.files -/linuxcnc-doc-*.files -*.debhelper -shlibs.local +# files generated from debian/configure +/control +/rules +/files +/configure.cmdline +/machinekit-*-kernel-*.install +/machinekit-dev.install + +# directory artifacts +/tmp +/machinekit*/ + +# file artifacts +/*substvars +/*.debhelper +/shlibs.local diff --git a/debian/README.debian b/debian/README.debian new file mode 100644 index 00000000000..bf5d0eb6355 --- /dev/null +++ b/debian/README.debian @@ -0,0 +1,11 @@ +This Debian packaging must first be configured before building. + +By default, all threads are disabled; package builders MUST enable +thread package builds by adding flags to the debin/configure command +line. See `debian/configure -h` for details. + +Xenomai and RTAI kernel threads packages may be enabled with the '-X +' and '-R ' options, +respectively, e.g. '-X 3.8-1mk-xenomai.x86-686-pae'. Multiple +'-X'/'-R' options may be specified to build multiple kernel threads +packages against multiple kernels. diff --git a/debian/changelog b/debian/changelog index 16dcb14c741..e91418765be 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,26 @@ +machinekit (0.1.1-1) wheezy; urgency=low + + * Reworked debian/configure, #215 + * Velocity-controlled extrusion, #213 + * Temp. hack xenomai-kernel pkg depends, #224, #225 + * Pid pins: IO to IN, #225 + * New TP on by default, #228 + * RTAI fixes, #231 + * TP fixes, #234 + * Use xeno_math by default for RTAI, #235 + * BeBoPr++ config updates, #238 + * Python milltask sig handler fixes, #247, #248 + * check-system-configuration.sh script fixes, #112 and #113 + * Ulimit configuration fixes, #241 and #246 + + -- John Morris Fri, 11 Jul 2014 18:24:30 -0500 + +machinekit (0.1.0) wheezy; urgency=low + + * Rename package to machinekit + + -- John Morris Wed, 11 Jun 2014 17:41:10 -0500 + linuxcnc (1:2.6.0~pre1) precise; urgency=low * reorganized sample configs to improve clarity diff --git a/debian/configure b/debian/configure index 7ef64fbbf40..63d23d2fb87 100755 --- a/debian/configure +++ b/debian/configure @@ -1,220 +1,253 @@ -#!/bin/bash -# dpkg configuration script for linuxcnc -# Copyright (C) 2006 Jeff Epler +#!/bin/bash -e +# -*-shell-script-*- +# Placed into the public domain by John Morris, 2014 # -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# When used to produce a debian package, this file is a script "used to -# control compilation and installation of the executable" - -usage () { - P=${0##*/} - cat < configure.cmdline + +rules_enable_threads() { + # enable thread flavors in debian/rules; e.g. + # THREADS_POSIX = --with-posix + FLAVOR=$1 + FLAVOR_VAR=THREADS_$(echo $FLAVOR | tr 'a-z-' 'A-Z_') + sed -i rules \ + -e "s/^${FLAVOR_VAR}[^_].*/${FLAVOR_VAR} = --with-${FLAVOR}/" + echo "debian/rules: enabled ${FLAVOR} threads" >&2 } -cd "${0%/*}" +guess_arch_from_kver() { + # utility to make a guess at the kernel header arch from the + # kernel version; this works for Debian kernels, and 'any' is + # correct for the RTAI kernel packages in the Machinekit Debian + # archive + KVER=$1 + case $KVER in + *-?86 | *-?86-pae) echo i386 ;; + *-amd64) echo amd64 ;; + *) echo any ;; # For non-Debian kernel package naming + esac +} -if [ $# -ne 1 -o "$1" == "-h" -o "$1" == "-help" -o "$1" == "--help" ]; then - usage - if [ $# -ne 1 ]; then - exit 1 +kernel_build_dep() { + # generate Build-Depends: for kernels, restricting to a build arch + # where applicable + KVER=$1 + local BUILD_DEP=linux-headers-${KVER} + if test $(guess_arch_from_kver ${KVER}) != any; then + # Only require these headers for the corresponding ARCH + BUILD_DEP+=" [$(guess_arch_from_kver ${KVER})]" fi - exit 0 -fi + echo $BUILD_DEP + echo "debian/control: added Build-Depends: ${BUILD_DEP}" >&2 +} -if [ $1 = "-r" ]; then - set -- `uname -r` -elif [ $1 = "-a" ]; then - KERNEL="$(uname -r)" - if [ ! -d "/usr/realtime-$KERNEL" ]; then - KERNEL=$(ls -1d /usr/realtime-* 2> /dev/null | cut -d - -f 2- | head -1) - if [ -z "$KERNEL" ]; then - echo "no realtime kernels found!" - exit 1 - fi - fi - set -- $KERNEL -fi +rules_set_kthreads_headers() { + # set list of kernel sources in debian/rules + FLAVOR=$1; shift + # do nothing if no headers found + test -n "$*" || return 0 + + # Loop through each supported kthreads arch; add any kvers that + # look like an arch match to the appropriate kernel headers list + for ARCH in $KTHREAD_ARCHES; do + # construct list of kernel source directories + local HEADERS= + for v in $*; do + # skip incompatible arches + test "$(guess_arch_from_kver ${v})" = $ARCH -o \ + "$(guess_arch_from_kver ${v})" = any || continue + HEADERS+=" /usr/src/linux-headers-${v}" + done + # if the list is not empty, add it in debian/rules; e.g. + # HEADERS_XENOMAI_KERNEL_i386 = \ + # --with-xenomai-kernel-sources="/usr/src/linux-headers-" + if test -n "$HEADERS"; then + echo "debian/rules: set kernel headers for ${FLAVOR}-${ARCH}:" >&2 + for h in ${HEADERS}; do echo " ${h}" >&2; done + HEADERS="--with-${FLAVOR}-sources='${HEADERS}'" + HEADERS_VAR=HEADERS_$(echo $FLAVOR | tr 'a-z-' 'A-Z_')_${ARCH} + sed -i rules \ + -e "s@^#\(${HEADERS_VAR}\) .*@\1 = ${HEADERS}@" + fi + done +} -TARGET=$1 - -MODULE_PATH=usr/realtime-$1/modules/linuxcnc -MODULE_EXT=.ko -KERNEL_DEPENDS=linux-image-$1,rtai-modules-$1 -KERNEL_HEADERS=linux-headers-$1 -EXTRA_FILES="usr/bin/linuxcnc_module_helper" -KERNEL_VERSION=$1 -DRIVERS=drivers.files.in -PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]') -PYTHON_VERSION_NEXT=$(python -c 'import sys; print sys.version[:2] + str(1+int(sys.version[2]))') - -# hope this works on other systems too -DISTRIB_NAME= -if [ "$(which lsb_release)" != "" ]; then - DISTRIB_NAME="$(lsb_release -s -i)-$(lsb_release -s -r)" -elif [ -f /etc/lsb-release ]; then - source /etc/lsb-release - DISTRIB_NAME=$DISTRIB_ID-$DISTRIB_RELEASE -fi +do_posix() { + cat control.posix.in >> control + echo "debian/control: added POSIX threads package" >&2 + rules_enable_threads posix + HAVE_FLAVOR=true +} -if [ -d extras-$DISTRIB_NAME/linuxcnc.files ]; then - EXTRAS=extras-$DISTRIB_NAME/linuxcnc.files -else - EXTRAS=extras -fi +do_rt-preempt() { + cat control.rt-preempt.in >> control + echo "debian/control: added RT_PREEMPT threads package" >&2 + rules_enable_threads rt-preempt + HAVE_FLAVOR=true +} -case $DISTRIB_NAME in -Ubuntu-14.04) # Trusty Tahr - EXTRA_BUILD=dvipng,texlive-extra-utils,texlive-latex-recommended,texlive-fonts-recommended,ghostscript,imagemagick,texlive-lang-french,texlive-lang-spanish,texlive-font-utils,module-init-tools - TCLTK_VERSION=8.6 - ;; -Ubuntu-12.10) # Quantal Quetzal - EXTRA_BUILD=dvipng,texlive-extra-utils,texlive-latex-recommended,texlive-fonts-recommended,ghostscript,imagemagick,texlive-lang-french,texlive-lang-spanish,texlive-font-utils,module-init-tools - TCLTK_VERSION=8.5 - ;; -Ubuntu-12.04) # Precise Pangolin LTS - EXTRA_BUILD=dvipng,texlive-extra-utils,texlive-latex-recommended,texlive-fonts-recommended,ghostscript,imagemagick,texlive-lang-french,texlive-lang-spanish,texlive-font-utils,module-init-tools - TCLTK_VERSION=8.5 - ;; -Ubuntu-11.04) # natty - EXTRA_BUILD=dvipng,texlive-extra-utils,texlive-latex-recommended,texlive-fonts-recommended,ghostscript,imagemagick,texlive-lang-french,texlive-lang-spanish,texlive-font-utils,module-init-tools - TCLTK_VERSION=8.5 - ;; -Ubuntu-10.04) - EXTRA_BUILD=dvipng,texlive-extra-utils,texlive-latex-recommended,texlive-fonts-recommended,ghostscript,imagemagick,texlive-lang-french,texlive-lang-spanish,texlive-font-utils,module-init-tools - TCLTK_VERSION=8.5 - ;; -Ubuntu-9.10) - EXTRA_BUILD=dvipng,texlive-extra-utils,texlive-latex-recommended,texlive-fonts-recommended,ghostscript,imagemagick,texlive-lang-french,texlive-lang-spanish,module-init-tools - TCLTK_VERSION=8.5 - ;; -Ubuntu-8.04) - EXTRA_BUILD=dvipng,texlive-extra-utils,texlive-latex-recommended,texlive-fonts-recommended,ghostscript,imagemagick,texlive-lang-french,texlive-lang-spanish,module-init-tools - TCLTK_VERSION=8.4 - ;; -Debian-testing|Debian-7.*) - EXTRA_BUILD=dvipng,texlive-extra-utils,texlive-latex-recommended,texlive-fonts-recommended,ghostscript,imagemagick,texlive-lang-french,texlive-lang-german,texlive-lang-spanish,texlive-lang-polish,texlive-font-utils,kmod - TCLTK_VERSION=8.5 - ;; -Debian-6.0*) - EXTRA_BUILD=dvipng,module-init-tools - TCLTK_VERSION=8.5 - ;; -Debian-5.0*) - EXTRA_BUILD=dvipng,module-init-tools - TCLTK_VERSION=8.4 - ;; -*) - echo "unknown distribution: $DISTRIB_NAME" - echo "configuration may be wrong!" - EXTRA_BUILD=dvipng,kmod - TCLTK_VERSION=8.4 - ;; -esac - -DOC_BUILD= -MAIN_PACKAGE_NAME=linuxcnc -OTHER_MAIN_PACKAGE_NAME=linuxcnc-sim -OLD_PACKAGE_NAME=emc2 -EXTRA_RECOMMENDS=hostmot2-firmware -case $TARGET in - sim) - MODULE_PATH=usr/lib/linuxcnc/modules - MODULE_EXT=.so - KERNEL_DEPENDS= - KERNEL_HEADERS=libpth-dev - DRIVERS= - EXTRA_FILES="usr/bin/rtapi_app" - DISTRIB_NAME=sim-$DISTRIB_NAME - MAIN_PACKAGE_NAME=linuxcnc-sim - OTHER_MAIN_PACKAGE_NAME=linuxcnc - OLD_PACKAGE_NAME=emc2-sim - - # don't bother recommending hostmot2 firmware on sim - EXTRA_RECOMMENDS= - ;; - 2.6.12-magma) - KERNEL_HEADERS=$KERNEL_HEADERS,gcc-3.4 - ;; - 2.6.15-magma) - KERNEL_HEADERS=$KERNEL_HEADERS,gcc-4.0 - ;; - 2.6.22.6-magma|2.6.24-16-rtai) - KERNEL_HEADERS="$KERNEL_HEADERS" - ;; - 2.6.24-16-rtai) - KERNEL_HEADERS=$KERNEL_HEADERS,gcc-4.2 - ;; - 2.6.32-122-rtai) ;; - *) - echo "your kernel '$TARGET' is not known. There might be needed dependencies which won't get set automatically." -esac - -subst () { -sed -e "s|@MODULE_PATH@|$MODULE_PATH|g" \ - -e "s|@MODULE_EXT@|$MODULE_EXT|g" \ - -e "s|@KERNEL_VERSION@|$KERNEL_VERSION|g" \ - -e "s|@KERNEL_DEPENDS@|$KERNEL_DEPENDS|g" \ - -e "s|@KERNEL_HEADERS@|$KERNEL_HEADERS|g" \ - -e "s|@EXTRA_BUILD@|$EXTRA_BUILD|g" \ - -e "s|@EXTRA_RECOMMENDS@|$EXTRA_RECOMMENDS|g" \ - -e "s|@MAIN_PACKAGE_NAME@|$MAIN_PACKAGE_NAME|g" \ - -e "s|@OTHER_MAIN_PACKAGE_NAME@|$OTHER_MAIN_PACKAGE_NAME|g" \ - -e "s|@OLD_PACKAGE_NAME@|$OLD_PACKAGE_NAME|g" \ - -e "s|@EXTRAS@|$EXTRAS|g" \ - -e "s|@EXTRA_FILES@|$EXTRA_FILES|g" \ - -e "s|@DISTRIB_NAME@|$DISTRIB_NAME|g" \ - -e "s|@TARGET@|$TARGET|g" \ - -e "s|@PYTHON_VERSION@|$PYTHON_VERSION|g" \ - -e "s|@TCLTK_VERSION@|$TCLTK_VERSION|g" \ - -e "s|@PYTHON_VERSION_NEXT@|$PYTHON_VERSION_NEXT|g" \ - $* +do_xenomai() { + # Be sure the -dev files only appear once + BUILD_DEPS="${BUILD_DEPS/libxenomai-dev, /}libxenomai-dev, " + cat control.xenomai.in >> control + echo "debian/control: added Xenomai (userland) threads package" \ + "with Build-Depends:" >&2 + echo " libxenomai-dev" >&2 + rules_enable_threads xenomai + HAVE_FLAVOR=true } -subst control.in > control +do_xenomai_kernel() { + KVER=$1 + # Be sure the -dev files only appear once + BUILD_DEPS="${BUILD_DEPS/libxenomai-dev, /}libxenomai-dev, " + # Headers package is conveniently named after the kver + BUILD_DEPS+="$(kernel_build_dep ${KVER}), " + # Add '...install' and 'control' file with substitutions + sed machinekit-kernel.install.in \ + -e "s/@KVER@/${KVER}/" \ + -e "s/@FLAVOR@/xenomai-kernel/" \ + > machinekit-xenomai-kernel-${KVER}.install + echo "debian/machinekit-xenomai-kernel-${KVER}.install: added" >&2 + sed control.xenomai-kernel.in \ + -e "s/@KVER@/$KVER/g" \ + -e "s/@ARCH@/$(guess_arch_from_kver ${KVER})/g" \ + >> control + echo "debian/control: Added Xenomai kernel threads ${KVER}" >&2 + echo " with Build-Depends:" >&2 + echo " libxenomai-dev" >&2 + rules_enable_threads xenomai-kernel + XENOMAI_KERNEL_HEADERS+=" ${KVER}" + HAVE_FLAVOR=true +} -if [ "$TARGET" == "sim" ]; then - cp linuxcnc-dev.files.in linuxcnc-sim-dev.files -else - cp linuxcnc-dev.files.in linuxcnc-dev.files - echo "$MODULE_PATH/Module.symvers" >> linuxcnc-dev.files -fi +do_rtai_kernel() { + KVER=$1 + # Be sure the -dev files only appear once + BUILD_DEPS="${BUILD_DEPS/librtai-dev, /}librtai-dev, " + # Headers package is conveniently named after the kver + BUILD_DEPS+="$(kernel_build_dep ${KVER}), " + # Add '...install' and 'control' file with substitutions + sed machinekit-kernel.install.in \ + -e "s/@KVER@/${KVER}/" \ + -e "s/@FLAVOR@/rtai-kernel/" \ + > machinekit-rtai-kernel-${KVER}.install + echo "debian/machinekit-xenomai-kernel-${KVER}.install: added" >&2 + sed control.rtai-kernel.in \ + -e "s/@KVER@/$KVER/g" \ + -e "s/@ARCH@/$(guess_arch_from_kver ${KVER})/g" \ + >> control + echo "debian/control: Added RTAI kernel threads ${KVER}" >&2 + echo " with Build-Depends:" >&2 + echo " librtai-dev" >&2 + rules_enable_threads rtai-kernel + RTAI_KERNEL_HEADERS+=" ${KVER}" + HAVE_FLAVOR=true +} -subst rules.in > rules; chmod +x rules +do_tcl_tk_version() { + TCL_TK_VER="$1" + if test -z "$TCL_TK_VER"; then + # No -t option specified; to ensure a reproducible package, + # use the latest version from the distro + TCL_TK_VER=8.6 + case "$DISTRO_ID" in + Debian) test "${DISTRO_RELEASE/.*/}" -lt 8 && TCL_TK_VER=8.5 ;; + Raspbian)test "${DISTRO_RELEASE/.*/}" -lt 8 && TCL_TK_VER=8.5 ;; + Ubuntu) test "${DISTRO_RELEASE/.*/}" -lt 14 && TCL_TK_VER=8.5 ;; + *) usage "Unknown distro '${DISTRO_ID}'" ;; + esac + fi + TCL_TK_BUILD_DEPS="tcl${TCL_TK_VER}-dev, tk${TCL_TK_VER}-dev" + TCL_TK_DEPS="tcl${TCL_TK_VER}, tk${TCL_TK_VER}" + echo "debian/control: Set tcl/tk build deps to version $TCL_TK_VER" >&2 +} -if [ -f $EXTRAS/linuxcnc.files ]; then - subst linuxcnc.files.in $DRIVERS $EXTRAS/linuxcnc.files > $MAIN_PACKAGE_NAME.files -else - subst linuxcnc.files.in $DRIVERS > $MAIN_PACKAGE_NAME.files -fi +usage() { + { + test -z "$1" || echo "$1" + echo "Usage: $0 [ arg ... ]" + echo " arg: function:" + echo " -p build POSIX threads" + echo " -r build RT_PREEMPT threads" + echo " -x build Xenomai threads" + echo " -X build Xenomai-kernel threads ***" + echo " -R build RTAI-kernel threads ***" + echo " -t set tcl/tk version" + echo " *** Argument may be repeated for multiple kernels" + } >&2 + exit 1 +} +test "$1" != --help || usage -DOCS_PACKAGES=$(echo linuxcnc-doc-{en,fr,es}) -for P in $DOCS_PACKAGES; do - if [ -f $EXTRAS/$P.files ]; then - cat $P.files.in $EXTRAS/$P.files > $P.files - else - cat $P.files.in > $P.files - fi +############################################# +# Main program +# +# These need to be in a certain order: +# - Base template copy first +# - do_ functions next +# - replace BUILD_DEPS and *_KERNEL_HEADERS last +# (when lists are fully populated) + +# set defaults +BUILD_DEPS= # List of Build-Depends +HAVE_FLAVOR=false + +# delete old files +rm -f machinekit-{rtai,xenomai}-kernel-*.install + +# copy base templates into place +cp control.in control +echo "debian/control: copied base template" >&2 +cp rules.in rules; chmod +x rules +echo "debian/rules: copied base template" >&2 + +# read command line options +while getopts dprxR:X:t:?h ARG; do + case $ARG in + p) do_posix ;; + r) do_rt-preempt ;; + x) do_xenomai ;; + R) do_rtai_kernel "$OPTARG" ;; + X) do_xenomai_kernel "$OPTARG" ;; + t) TCL_TK_VER="$OPTARG" ;; + ?|h) usage ;; + *) usage "Unknown arg: '-$ARG'" ;; + esac done -rm -f ../build-stamp -echo "successfully configured for '$DISTRIB_NAME'-'$TARGET'.." +# Determine tcl/tk version +do_tcl_tk_version "$TCL_TK_VER" + +# Set kthreads headers +rules_set_kthreads_headers xenomai-kernel $XENOMAI_KERNEL_HEADERS +rules_set_kthreads_headers rtai-kernel $RTAI_KERNEL_HEADERS + +# Set control Build-Depends: +sed -i control \ + -e "s/@BUILD_DEPS@/${BUILD_DEPS}/" \ + -e "s/@TCL_TK_BUILD_DEPS@/${TCL_TK_BUILD_DEPS}/" \ + -e "s/@TCL_TK_DEPS@/${TCL_TK_DEPS}/" +echo "debian/control: add final Build-Depends: list" >&2 + +# Warn if no flavor configured +$HAVE_FLAVOR || usage "WARNING: No thread flavors configured" diff --git a/debian/control.in b/debian/control.in index 1c4254eb5ce..5c3146b454a 100644 --- a/debian/control.in +++ b/debian/control.in @@ -1,103 +1,55 @@ -Source: linuxcnc +Source: machinekit Section: misc Priority: extra -Maintainer: Sebastian Kuzminsky +Maintainer: John Morris Build-Depends: debhelper (>= 6), - @KERNEL_DEPENDS@, @KERNEL_HEADERS@, @EXTRA_BUILD@, - tcl@TCLTK_VERSION@-dev, tk@TCLTK_VERSION@-dev, bwidget, blt, - libxaw7-dev, libncurses-dev, libreadline-dev, - asciidoc (>= 8.5), source-highlight, dblatex (>= 0.2.12), xsltproc, groff, - python, python-dev, python-support, python-tk, python-lxml, - libglu1-mesa-dev, libgl1-mesa-dev | libgl1-mesa-swx11-dev, - libgtk2.0-dev, libgnomeprintui2.2-dev, - gettext, autoconf, libboost-python-dev, - texlive-lang-cyrillic, texlive-lang-french, - texlive-lang-spanish, texlive-lang-german, netcat, - libmodbus-dev (>= 3.0), libusb-1.0-0-dev, procps, psmisc + autoconf (>= 2.63), automake, libboost-python-dev, libgl1-mesa-dev, + libglu1-mesa-dev, libgtk2.0-dev, libmodbus-dev (>= 3.0), + libncurses-dev, libreadline-dev, libusb-1.0-0-dev, libxmu-dev, + libxmu-headers, python (>= 2.6.6-3~), python-dev (>= 2.6.6-3~), + cython (>= 0.19), dh-python, + pkg-config, psmisc, python-tk, libxaw7-dev, libboost-serialization-dev, + libzmq3-dev (>= 4.0.4), libczmq-dev (>= 2.2.0), libjansson-dev (>= 2.5), + libwebsockets-dev (>= 1.2.2), + python-zmq (>= 14.0.1), procps, kmod, + liburiparser-dev, libssl-dev, python-setuptools, + uuid-dev, uuid-runtime, libavahi-client-dev, + libprotobuf-dev (>= 2.4.1), protobuf-compiler (>= 2.4.1), + python-protobuf (>= 2.4.1), libprotoc-dev (>= 2.4.1), + python-simplejson, libtk-img, libboost-thread-dev, + python-pyftpdlib, @BUILD_DEPS@ @TCL_TK_BUILD_DEPS@ Standards-Version: 2.1.0 -Package: @MAIN_PACKAGE_NAME@-dev +Package: machinekit-dev Architecture: any -Conflicts: emc2-dev, emc2-sim-dev, @OTHER_MAIN_PACKAGE_NAME@-dev -Replaces: @OLD_PACKAGE_NAME@-dev -Provides: @OLD_PACKAGE_NAME@-dev -Depends: g++, @KERNEL_HEADERS@, - python (>= @PYTHON_VERSION@), python (<< @PYTHON_VERSION_NEXT@), - ${python:Depends}, ${misc:Depends}, - @MAIN_PACKAGE_NAME@ (= ${binary:Version}), +Depends: make, g++, @TCL_TK_BUILD_DEPS@, + ${shlibs:Depends}, ${misc:Depends}, + machinekit (= ${binary:Version}), yapps2-runtime Section: libs Description: PC based motion controller for real-time Linux - LinuxCNC is the next-generation Enhanced Machine Controller which + Machinekit is the next-generation Enhanced Machine Controller which provides motion control for CNC machine tools and robotic applications (milling, cutting, routing, etc.). . This package includes files needed to build new realtime components and - alternate front-ends for linuxcnc + alternate front-ends for machinekit -Package: @MAIN_PACKAGE_NAME@ -Replaces: @OLD_PACKAGE_NAME@ -Provides: @OLD_PACKAGE_NAME@ -Conflicts: emc2, emc2-sim, @OTHER_MAIN_PACKAGE_NAME@ +Package: machinekit +Breaks: linuxcnc +Replaces: linuxcnc Architecture: any -Recommends: linuxcnc-doc-en | linuxcnc-doc, @EXTRA_RECOMMENDS@ -Depends: ${shlibs:Depends}, @KERNEL_DEPENDS@, - tcl@TCLTK_VERSION@, tk@TCLTK_VERSION@, bwidget (>= 1.7), libtk-img (>=1.13), - python (>= @PYTHON_VERSION@), python (<< @PYTHON_VERSION_NEXT@), +Depends: ${shlibs:Depends}, machinekit-rt-threads, @TCL_TK_DEPS@, + bwidget (>= 1.7), libtk-img (>=1.13), ${python:Depends}, ${misc:Depends}, - python@PYTHON_VERSION@-tk, - python@PYTHON_VERSION@-gnome2 | python-gnome2, - python@PYTHON_VERSION@-glade2 | python-glade2, - python@PYTHON_VERSION@-numpy | python-numpy, - python@PYTHON_VERSION@-imaging | python-imaging, - python@PYTHON_VERSION@-imaging-tk | python-imaging-tk, - python-gtksourceview2, - python-vte, - python-xlib, python-gtkglext1, python-configobj, + python-tk, python-imaging, python-imaging-tk, + python-gnome2, python-glade2, + python-numpy, python-gtksourceview2, + python-vte, python-xlib, python-gtkglext1, python-configobj, + python-zmq, python-protobuf (>= 2.4.1), python-gst0.10, + python-avahi, python-simplejson, python-pyftpdlib, tclreadline, bc, procps, psmisc, module-init-tools | kmod Description: PC based motion controller for real-time Linux - LinuxCNC is the next-generation Enhanced Machine Controller which - provides motion control for CNC machine tools and robotic - applications (milling, cutting, routing, etc.). - -Package: linuxcnc-doc-en -Conflicts: emc2 (<< 1:2.5.0~pre), emc2-sim (<< 1:2.5.0~pre), emc2-doc-en -Replaces: emc2-doc-en -Provides: emc2-doc-en, linuxcnc-doc -Architecture: all -Depends: ${misc:Depends} -Suggests: pdf-viewer -Description: PC based motion controller for real-time Linux - LinuxCNC is the next-generation Enhanced Machine Controller which - provides motion control for CNC machine tools and robotic - applications (milling, cutting, routing, etc.). - . - This package contains the documentation in English. - -Package: linuxcnc-doc-fr -Conflicts: emc2 (<< 1:2.5.0~pre), emc2-sim (<< 1:2.5.0~pre), emc2-doc-fr -Replaces: emc2-doc-fr -Provides: emc2-doc-fr, linuxcnc-doc -Architecture: all -Depends: ${misc:Depends} -Suggests: pdf-viewer -Description: PC based motion controller for real-time Linux - LinuxCNC is the next-generation Enhanced Machine Controller which - provides motion control for CNC machine tools and robotic - applications (milling, cutting, routing, etc.). - . - This package contains the documentation in French. - -Package: linuxcnc-doc-es -Conflicts: emc2 (<< 1:2.5.0~pre), emc2-sim (<< 1:2.5.0~pre), emc2-doc-es -Replaces: emc2-doc-es -Provides: emc2-doc-es, linuxcnc-doc -Architecture: all -Depends: ${misc:Depends} -Suggests: pdf-viewer -Description: PC based motion controller for real-time Linux - LinuxCNC is the next-generation Enhanced Machine Controller which + Machinekit is the next-generation Enhanced Machine Controller which provides motion control for CNC machine tools and robotic applications (milling, cutting, routing, etc.). - . - This package contains the documentation in Spanish. diff --git a/debian/control.posix.in b/debian/control.posix.in new file mode 100644 index 00000000000..17f5fe63843 --- /dev/null +++ b/debian/control.posix.in @@ -0,0 +1,13 @@ + +Package: machinekit-posix +Architecture: any +Depends: machinekit (= ${binary:Version}), ${shlibs:Depends}, +Provides: machinekit-rt-threads +Enhances: machinekit +Description: PC based motion controller for real-time Linux + Machinekit is the next-generation Enhanced Machine Controller which + provides motion control for CNC machine tools and robotic + applications (milling, cutting, routing, etc.). + . + This package provides components and drivers that run on a non-realtime + (Posix) system. diff --git a/debian/control.rt-preempt.in b/debian/control.rt-preempt.in new file mode 100644 index 00000000000..af5196f7c46 --- /dev/null +++ b/debian/control.rt-preempt.in @@ -0,0 +1,17 @@ + +Package: machinekit-rt-preempt +Architecture: any +Depends: machinekit (= ${binary:Version}), ${shlibs:Depends}, +# These Debian-style RT_PREEMPT package names are restricted by +# architecture; ARM arch SOCs are all incompatible, so this can't be +# easily done for ARM. + linux-image-rt-686-pae [i386], linux-image-rt-amd64 [amd64] +Provides: machinekit-rt-threads +Suggests: hostmot2-firmware-all [!armhf] +Enhances: machinekit +Description: PC based motion controller for real-time Linux + Machinekit is the next-generation Enhanced Machine Controller which + provides motion control for CNC machine tools and robotic + applications (milling, cutting, routing, etc.). + . + This package provides components and drivers that run on an RT-Preempt system. diff --git a/debian/control.rtai-kernel.in b/debian/control.rtai-kernel.in new file mode 100644 index 00000000000..17972386516 --- /dev/null +++ b/debian/control.rtai-kernel.in @@ -0,0 +1,14 @@ + +Package: machinekit-rtai-kernel-@KVER@ +Architecture: @ARCH@ +Depends: machinekit (= ${binary:Version}), ${shlibs:Depends}, + linux-image-@KVER@, librtai1 +Provides: machinekit-rt-threads, machinekit-rtai-kernel +Suggests: hostmot2-firmware-all [!armhf] +Enhances: machinekit +Description: PC based motion controller for real-time Linux + Machinekit is the next-generation Enhanced Machine Controller which + provides motion control for CNC machine tools and robotic + applications (milling, cutting, routing, etc.). + . + This package provides components and drivers that run on an RTAI system. diff --git a/debian/control.xenomai-kernel.in b/debian/control.xenomai-kernel.in new file mode 100644 index 00000000000..bf7872b8050 --- /dev/null +++ b/debian/control.xenomai-kernel.in @@ -0,0 +1,14 @@ + +Package: machinekit-xenomai-kernel-@KVER@ +Architecture: @ARCH@ +Depends: machinekit (= ${binary:Version}), ${shlibs:Depends}, + linux-image-@KVER@, xenomai-runtime +Provides: machinekit-rt-threads, machinekit-xenomai-kernel +Suggests: hostmot2-firmware-all [!armhf] +Enhances: machinekit +Description: PC based motion controller for real-time Linux + Machinekit is the next-generation Enhanced Machine Controller which + provides motion control for CNC machine tools and robotic + applications (milling, cutting, routing, etc.). + . + This package provides components and drivers for Xenomai kernel threads. diff --git a/debian/control.xenomai.in b/debian/control.xenomai.in new file mode 100644 index 00000000000..89ac35574fc --- /dev/null +++ b/debian/control.xenomai.in @@ -0,0 +1,15 @@ + +Package: machinekit-xenomai +Architecture: any +Depends: machinekit (= ${binary:Version}), ${shlibs:Depends}, + xenomai-runtime +Provides: machinekit-rt-threads +Recommends: hostmot2-firmware-all [!armhf] +Enhances: machinekit +Description: PC based motion controller for real-time Linux + Machinekit is the next-generation Enhanced Machine Controller which + provides motion control for CNC machine tools and robotic + applications (milling, cutting, routing, etc.). + . + This package provides components and drivers that run on a Xenomai + realtime system, with userspace threads. diff --git a/debian/drivers.files.in b/debian/drivers.files.in deleted file mode 100644 index db79141b332..00000000000 --- a/debian/drivers.files.in +++ /dev/null @@ -1,2 +0,0 @@ -usr/bin/pci_write -usr/bin/pci_read diff --git a/debian/extras/linuxcnc-doc-en.files b/debian/extras/linuxcnc-doc-en.files deleted file mode 100644 index 45700b2ea1a..00000000000 --- a/debian/extras/linuxcnc-doc-en.files +++ /dev/null @@ -1,4 +0,0 @@ -usr/share/applications/linuxcnc-gettingstarted.desktop -usr/share/applications/linuxcnc-halmanual.desktop -usr/share/applications/linuxcnc-integratormanual.desktop -usr/share/applications/linuxcnc-usermanual.desktop diff --git a/debian/extras/linuxcnc-doc-fr.files b/debian/extras/linuxcnc-doc-fr.files deleted file mode 100644 index 66bb4c7b1be..00000000000 --- a/debian/extras/linuxcnc-doc-fr.files +++ /dev/null @@ -1,4 +0,0 @@ -usr/share/applications/linuxcnc-gettingstarted-fr.desktop -usr/share/applications/linuxcnc-halmanual-fr.desktop -usr/share/applications/linuxcnc-integratormanual-fr.desktop -usr/share/applications/linuxcnc-usermanual-fr.desktop diff --git a/debian/extras/linuxcnc.files b/debian/extras/linuxcnc.files deleted file mode 100644 index 81b6d185e50..00000000000 --- a/debian/extras/linuxcnc.files +++ /dev/null @@ -1,11 +0,0 @@ -usr/share/applications/linuxcnc.desktop -usr/share/applications/linuxcnc-gcoderef.desktop -usr/share/applications/linuxcnc-gcoderef-fr.desktop -usr/share/applications/linuxcnc-latency.desktop -usr/share/applications/linuxcnc-stepconf.desktop -usr/share/applications/linuxcnc-pncconf.desktop -usr/share/desktop-directories/cnc.directory -usr/share/pixmaps/linuxcncicon.png -etc/modprobe.d/linuxcnc.conf -etc/xdg/menus/applications-merged/cnc.menu -etc/udev/rules.d/90-xhc.rules diff --git a/debian/extras/usr/share/applications/linuxcnc-gcoderef-fr.desktop b/debian/extras/usr/share/applications/linuxcnc-gcoderef-fr.desktop deleted file mode 100644 index d68082ea092..00000000000 --- a/debian/extras/usr/share/applications/linuxcnc-gcoderef-fr.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Version= -Type=Application -Exec=/usr/bin/x-www-browser /usr/share/doc/linuxcnc/gcode_fr.html -Icon=gnome-help -X-GNOME-DocPath= -Terminal=false -Name=LinuxCNC G-Code Quick Reference (French) -Comment=Quick reference about existing G & M codes in LinuxCNC (French) -StartupNotify=false -Categories=X-CNC; diff --git a/debian/extras/usr/share/applications/linuxcnc-gcoderef.desktop b/debian/extras/usr/share/applications/linuxcnc-gcoderef.desktop deleted file mode 100644 index ebfe68d0f54..00000000000 --- a/debian/extras/usr/share/applications/linuxcnc-gcoderef.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Version= -Type=Application -Exec=/usr/bin/x-www-browser /usr/share/doc/linuxcnc/gcode.html -Icon=gnome-help -X-GNOME-DocPath= -Terminal=false -Name=LinuxCNC G-Code Quick Reference -Comment=Quick reference about existing G & M codes in LinuxCNC -StartupNotify=false -Categories=X-CNC; diff --git a/debian/extras/usr/share/applications/linuxcnc-gettingstarted-fr.desktop b/debian/extras/usr/share/applications/linuxcnc-gettingstarted-fr.desktop deleted file mode 100644 index 0c009d33aa1..00000000000 --- a/debian/extras/usr/share/applications/linuxcnc-gettingstarted-fr.desktop +++ /dev/null @@ -1,13 +0,0 @@ -[Desktop Entry] -Version= -Encoding=UTF-8 -Name=LinuxCNC Getting Started Guide (French) -Type=Application -Exec=/usr/bin/see /usr/share/doc/linuxcnc/LinuxCNC_Getting_Started_fr.pdf -Icon=gnome-help -X-GNOME-DocPath= -Terminal=false -Comment=The LinuxCNC Getting Started Guide. All you need to know to get started. (French) -StartupNotify=false -Categories=X-CNC; -GenericName[en_US]= diff --git a/debian/extras/usr/share/applications/linuxcnc-gettingstarted.desktop b/debian/extras/usr/share/applications/linuxcnc-gettingstarted.desktop deleted file mode 100644 index fc0ec37bb0d..00000000000 --- a/debian/extras/usr/share/applications/linuxcnc-gettingstarted.desktop +++ /dev/null @@ -1,13 +0,0 @@ -[Desktop Entry] -Version= -Encoding=UTF-8 -Name=LinuxCNC Getting Started Guide -Type=Application -Exec=/usr/bin/see /usr/share/doc/linuxcnc/LinuxCNC_Getting_Started.pdf -Icon=gnome-help -X-GNOME-DocPath= -Terminal=false -Comment=The LinuxCNC Getting Started Guide. All you need to know to get started. -StartupNotify=false -Categories=X-CNC; -GenericName[en_US]= diff --git a/debian/extras/usr/share/applications/linuxcnc-halmanual-fr.desktop b/debian/extras/usr/share/applications/linuxcnc-halmanual-fr.desktop deleted file mode 100644 index 5cc33787679..00000000000 --- a/debian/extras/usr/share/applications/linuxcnc-halmanual-fr.desktop +++ /dev/null @@ -1,13 +0,0 @@ -[Desktop Entry] -Version= -Encoding=UTF-8 -Name=LinuxCNC HAL Manual (French) -Type=Application -Exec=/usr/bin/see /usr/share/doc/linuxcnc/LinuxCNC_HAL_User_Manual_fr.pdf -Icon=gnome-help -X-GNOME-DocPath= -Terminal=false -Comment=The LinuxCNC HAL Manual. Details about the Hardware Abstract Layer. (French) -StartupNotify=false -Categories=X-CNC; -GenericName[en_US]= diff --git a/debian/extras/usr/share/applications/linuxcnc-halmanual.desktop b/debian/extras/usr/share/applications/linuxcnc-halmanual.desktop deleted file mode 100644 index 6fc0da1bcfc..00000000000 --- a/debian/extras/usr/share/applications/linuxcnc-halmanual.desktop +++ /dev/null @@ -1,14 +0,0 @@ - -[Desktop Entry] -Version= -Encoding=UTF-8 -Name=LinuxCNC HAL Manual -Type=Application -Exec=/usr/bin/see /usr/share/doc/linuxcnc/LinuxCNC_HAL_Manual.pdf -Icon=gnome-help -X-GNOME-DocPath= -Terminal=false -Comment=The LinuxCNC HAL Manual. Details about the Hardware Abstract Layer. -StartupNotify=false -Categories=X-CNC; -GenericName[en_US]= diff --git a/debian/extras/usr/share/applications/linuxcnc-integratormanual-fr.desktop b/debian/extras/usr/share/applications/linuxcnc-integratormanual-fr.desktop deleted file mode 100644 index de8acd53159..00000000000 --- a/debian/extras/usr/share/applications/linuxcnc-integratormanual-fr.desktop +++ /dev/null @@ -1,14 +0,0 @@ -[Desktop Entry] -Version= -Encoding=UTF-8 -Name=LinuxCNC Integrator Manual (French) -Type=Application -Exec=/usr/bin/see /usr/share/doc/linuxcnc/LinuxCNC_Integrator_Manual_fr.pdf -Icon=gnome-help -X-GNOME-DocPath= -Terminal=false -Comment=Advanced configuration hints (French) -StartupNotify=false -Categories=X-CNC; -GenericName[en_US]= -Comment[en_US]=Installation and Configuration Manual (French) diff --git a/debian/extras/usr/share/applications/linuxcnc-integratormanual.desktop b/debian/extras/usr/share/applications/linuxcnc-integratormanual.desktop deleted file mode 100644 index 7187e4a4588..00000000000 --- a/debian/extras/usr/share/applications/linuxcnc-integratormanual.desktop +++ /dev/null @@ -1,14 +0,0 @@ -[Desktop Entry] -Version= -Encoding=UTF-8 -Name=LinuxCNC Integrator Manual -Type=Application -Exec=/usr/bin/see /usr/share/doc/linuxcnc/LinuxCNC_Integrator_Manual.pdf -Icon=gnome-help -X-GNOME-DocPath= -Terminal=false -Comment=Advanced configuration hints -StartupNotify=false -Categories=X-CNC; -GenericName[en_US]= -Comment[en_US]=Installation and Configuration Manual diff --git a/debian/extras/usr/share/applications/linuxcnc-latency.desktop b/debian/extras/usr/share/applications/linuxcnc-latency.desktop deleted file mode 100644 index 65842e46fcf..00000000000 --- a/debian/extras/usr/share/applications/linuxcnc-latency.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Version= -Type=Application -Exec=/usr/bin/latency-test -Icon=linuxcncicon -X-GNOME-DocPath= -Terminal=false -Name=Latency Test -Comment=Determine your machine's latency -StartupNotify=false -Categories=X-CNC; diff --git a/debian/extras/usr/share/applications/linuxcnc-pncconf.desktop b/debian/extras/usr/share/applications/linuxcnc-pncconf.desktop deleted file mode 100644 index aa7eb13045c..00000000000 --- a/debian/extras/usr/share/applications/linuxcnc-pncconf.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Version= -Type=Application -Exec=/usr/bin/pncconf -Icon=linuxcncicon -X-GNOME-DocPath= -Terminal=false -Comment=Configuration Wizard For Mesa I/O Cards -StartupNotify=false -Categories=X-CNC; -Name=LinuxCNC Pncconf Wizard diff --git a/debian/extras/usr/share/applications/linuxcnc-stepconf.desktop b/debian/extras/usr/share/applications/linuxcnc-stepconf.desktop deleted file mode 100644 index 65d643aa3e0..00000000000 --- a/debian/extras/usr/share/applications/linuxcnc-stepconf.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Version= -Type=Application -Exec=/usr/bin/stepconf -Icon=linuxcncicon -X-GNOME-DocPath= -Terminal=false -Name=LinuxCNC Stepconf Wizard -Comment=Stepconf Configuration Wizard -StartupNotify=false -Categories=X-CNC; diff --git a/debian/extras/usr/share/applications/linuxcnc-usermanual-fr.desktop b/debian/extras/usr/share/applications/linuxcnc-usermanual-fr.desktop deleted file mode 100644 index 8d9d40fdffd..00000000000 --- a/debian/extras/usr/share/applications/linuxcnc-usermanual-fr.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Version= -Type=Application -Exec=/usr/bin/see /usr/share/doc/linuxcnc/LinuxCNC_User_Manual_fr.pdf -Icon=gnome-help -X-GNOME-DocPath= -Terminal=false -Name=LinuxCNC User Manual (French) -Comment=The LinuxCNC User Manual. All you need to know to get started. (French) -StartupNotify=false -Categories=X-CNC; diff --git a/debian/extras/usr/share/applications/linuxcnc-usermanual.desktop b/debian/extras/usr/share/applications/linuxcnc-usermanual.desktop deleted file mode 100644 index c2c9fa75fee..00000000000 --- a/debian/extras/usr/share/applications/linuxcnc-usermanual.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Version= -Type=Application -Exec=/usr/bin/see /usr/share/doc/linuxcnc/LinuxCNC_User_Manual.pdf -Icon=gnome-help -X-GNOME-DocPath= -Terminal=false -Name=LinuxCNC User Manual -Comment=The LinuxCNC User Manual. All you need to know to get started. -StartupNotify=false -Categories=X-CNC; diff --git a/debian/extras/usr/share/applications/linuxcnc.desktop b/debian/extras/usr/share/applications/linuxcnc.desktop index 75660eb177f..46d70058676 100644 --- a/debian/extras/usr/share/applications/linuxcnc.desktop +++ b/debian/extras/usr/share/applications/linuxcnc.desktop @@ -2,11 +2,11 @@ Encoding=UTF-8 Version= Type=Application -Exec=/usr/bin/linuxcnc +Exec=/usr/bin/machinekit Icon=linuxcncicon X-GNOME-DocPath= Terminal=false -Name=LinuxCNC -Comment=The LinuxCNC Enhanced Machine Controller +Name=Machinekit +Comment=The Machinekit CNC Machine Controller StartupNotify=false Categories=X-CNC; diff --git a/debian/extras/etc/udev/rules.d/90-xhc.rules b/debian/extras/usr/share/linuxcnc/udev/90-xhc.rules similarity index 100% rename from debian/extras/etc/udev/rules.d/90-xhc.rules rename to debian/extras/usr/share/linuxcnc/udev/90-xhc.rules diff --git a/debian/extras/usr/share/pixmaps/linuxcncicon.png b/debian/extras/usr/share/pixmaps/linuxcncicon.png deleted file mode 100644 index 194c35b5668..00000000000 Binary files a/debian/extras/usr/share/pixmaps/linuxcncicon.png and /dev/null differ diff --git a/debian/linuxcnc-dev.files.in b/debian/linuxcnc-dev.files.in deleted file mode 100644 index d96f829f58e..00000000000 --- a/debian/linuxcnc-dev.files.in +++ /dev/null @@ -1,9 +0,0 @@ -usr/include/linuxcnc/*.hh -usr/include/linuxcnc/*.h -usr/lib/*.a -usr/lib/*.so -usr/share/man/man1/comp.1 -usr/share/man/man3/* -usr/bin/comp -usr/share/doc/linuxcnc-dev/* -usr/share/linuxcnc/Makefile.modinc diff --git a/debian/linuxcnc-doc-en.files.in b/debian/linuxcnc-doc-en.files.in deleted file mode 100644 index 2427178e666..00000000000 --- a/debian/linuxcnc-doc-en.files.in +++ /dev/null @@ -1,4 +0,0 @@ -usr/share/doc/linuxcnc/LinuxCNC_HAL_Manual.pdf -usr/share/doc/linuxcnc/LinuxCNC_User_Manual.pdf -usr/share/doc/linuxcnc/LinuxCNC_Integrator_Manual.pdf -usr/share/doc/linuxcnc/LinuxCNC_Getting_Started.pdf diff --git a/debian/linuxcnc-doc-es.files.in b/debian/linuxcnc-doc-es.files.in deleted file mode 100644 index 7fc51eef26d..00000000000 --- a/debian/linuxcnc-doc-es.files.in +++ /dev/null @@ -1,4 +0,0 @@ -usr/share/doc/linuxcnc/LinuxCNC_Getting_Started_es.pdf -usr/share/doc/linuxcnc/LinuxCNC_User_Manual_es.pdf -usr/share/doc/linuxcnc/LinuxCNC_Integrator_Manual_es.pdf -usr/share/doc/linuxcnc/LinuxCNC_HAL_Manual_es.pdf diff --git a/debian/linuxcnc-doc-fr.files.in b/debian/linuxcnc-doc-fr.files.in deleted file mode 100644 index 24a9a98f513..00000000000 --- a/debian/linuxcnc-doc-fr.files.in +++ /dev/null @@ -1,4 +0,0 @@ -usr/share/doc/linuxcnc/LinuxCNC_Getting_Started_fr.pdf -usr/share/doc/linuxcnc/LinuxCNC_User_Manual_fr.pdf -usr/share/doc/linuxcnc/LinuxCNC_Integrator_Manual_fr.pdf -usr/share/doc/linuxcnc/LinuxCNC_HAL_Manual_fr.pdf diff --git a/debian/linuxcnc.files.in b/debian/linuxcnc.files.in deleted file mode 100644 index 051820792f5..00000000000 --- a/debian/linuxcnc.files.in +++ /dev/null @@ -1,35 +0,0 @@ -etc/linuxcnc/* -etc/init.d/realtime -etc/X11/app-defaults/* -@EXTRA_FILES@ -@MODULE_PATH@/*@MODULE_EXT@ -usr/lib/*.so.* -usr/lib/tcltk/linuxcnc -usr/bin/* -usr/lib/python*/*/*.py -usr/lib/python*/*/*.so -usr/lib/python*/*/*/*.py -usr/lib/python*/*/gladevcp/*.glade -usr/share/axis/images/* -usr/share/axis/tcl/* -usr/share/glade3 -usr/share/doc/linuxcnc/gcode.html -usr/share/doc/linuxcnc/gcode_fr.html -usr/share/doc/linuxcnc/UPDATING -usr/share/doc/linuxcnc/NEWS -usr/share/doc/linuxcnc/AUTHORS -usr/share/doc/linuxcnc/axis_light_background -usr/share/doc/linuxcnc/xlinuxcnc.txt -usr/share/doc/linuxcnc/README -usr/share/doc/linuxcnc/tklinuxcnc.txt -usr/share/doc/linuxcnc/README.axis -usr/share/doc/linuxcnc/examples/sample-configs/*/* -usr/share/doc/linuxcnc/examples/sample-configs/maintainer.txt -usr/share/linuxcnc/* -usr/share/linuxcnc/stepconf/*.glade -usr/share/locale/*/LC_MESSAGES/*.mo -usr/share/man/man1/* -usr/share/man/man9/* -usr/share/gtksourceview-2.0/ -usr/share/gscreen -usr/share/gmoccapy diff --git a/debian/linuxcnc.postinst b/debian/linuxcnc.postinst deleted file mode 100755 index fa272c207f9..00000000000 --- a/debian/linuxcnc.postinst +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -#DEBHELPER# - -[ -x /etc/init.d/udev ] && /etc/init.d/udev restart - -if [ -f /etc/security/limits.conf ]; then - if ! grep -q "EMC2" /etc/security/limits.conf; then - echo '* - memlock 20480 #EMC2' >> /etc/security/limits.conf - fi -fi diff --git a/debian/machinekit-dev.install.in b/debian/machinekit-dev.install.in new file mode 100644 index 00000000000..ccf1c762ca5 --- /dev/null +++ b/debian/machinekit-dev.install.in @@ -0,0 +1,10 @@ +usr/include/linuxcnc/*.hh +usr/include/linuxcnc/*.h +usr/include/linuxcnc/userpci/*.h +usr/lib/*.a +usr/lib/*.so +usr/share/man/man1/comp.1 +usr/share/man/man3/* +usr/bin/comp +usr/share/linuxcnc/Makefile.modinc +usr/share/linuxcnc/Makefile.inc diff --git a/debian/machinekit-kernel.install.in b/debian/machinekit-kernel.install.in new file mode 100644 index 00000000000..98012a7ba12 --- /dev/null +++ b/debian/machinekit-kernel.install.in @@ -0,0 +1,4 @@ +lib/modules/@KVER@/linuxcnc/Module.symvers +lib/modules/@KVER@/linuxcnc/*.ko +usr/lib/linuxcnc/ulapi-@FLAVOR@.so +usr/libexec/linuxcnc/rtapi_app_@FLAVOR@ diff --git a/debian/machinekit-posix.install b/debian/machinekit-posix.install new file mode 100644 index 00000000000..3ebffcd7b1e --- /dev/null +++ b/debian/machinekit-posix.install @@ -0,0 +1,3 @@ +usr/lib/linuxcnc/posix/*.so +usr/lib/linuxcnc/ulapi-posix.so +usr/libexec/linuxcnc/rtapi_app_posix diff --git a/debian/machinekit-rt-preempt.install b/debian/machinekit-rt-preempt.install new file mode 100644 index 00000000000..4dd6deded29 --- /dev/null +++ b/debian/machinekit-rt-preempt.install @@ -0,0 +1,3 @@ +usr/lib/linuxcnc/rt-preempt/*.so +usr/lib/linuxcnc/ulapi-rt-preempt.so +usr/libexec/linuxcnc/rtapi_app_rt-preempt diff --git a/debian/machinekit-xenomai.install b/debian/machinekit-xenomai.install new file mode 100644 index 00000000000..9f7757ac803 --- /dev/null +++ b/debian/machinekit-xenomai.install @@ -0,0 +1,3 @@ +usr/lib/linuxcnc/xenomai/* +usr/lib/linuxcnc/ulapi-xenomai.so +usr/libexec/linuxcnc/rtapi_app_xenomai diff --git a/debian/machinekit.install b/debian/machinekit.install new file mode 100644 index 00000000000..9bba118ec88 --- /dev/null +++ b/debian/machinekit.install @@ -0,0 +1,44 @@ +etc/linuxcnc/* +etc/rsyslog.d/linuxcnc.conf +etc/security/limits.d/machinekit.conf +etc/udev/rules.d/50-shmdrv.rules +etc/X11/app-defaults/* +usr/lib/*.so.* +usr/lib/tcltk/linuxcnc +usr/bin/* +usr/lib/python*/*/*.py +usr/lib/python*/*/*.so +usr/lib/python*/*/*/*.py +usr/lib/python*/*/gladevcp/*.glade +usr/lib/python*/*/machinekit/*.so +usr/libexec/linuxcnc/linuxcnc_module_helper +usr/libexec/linuxcnc/pci_read +usr/libexec/linuxcnc/pci_write +usr/libexec/linuxcnc/inivar +usr/libexec/linuxcnc/flavor +usr/libexec/linuxcnc/rtapi_msgd +usr/share/axis/images/* +usr/share/axis/tcl/* +usr/share/glade3 +usr/share/doc/linuxcnc/axis_light_background +usr/share/doc/linuxcnc/xlinuxcnc.asciidoc +usr/share/doc/linuxcnc/tklinuxcnc.asciidoc +usr/share/doc/linuxcnc/README.axis +usr/share/linuxcnc/* +usr/share/linuxcnc/stepconf/*.glade +usr/share/locale/*/LC_MESSAGES/*.mo +usr/share/man/man1/* +usr/share/man/man9/* +usr/share/gtksourceview-2.0/ +usr/share/gscreen +usr/share/gmoccapy +usr/share/fdm +usr/share/applications/linuxcnc.desktop +#usr/share/applications/linuxcnc-gcoderef.desktop +#usr/share/applications/linuxcnc-gcoderef-fr.desktop +#usr/share/applications/linuxcnc-latency.desktop +#usr/share/applications/linuxcnc-stepconf.desktop +#usr/share/applications/linuxcnc-pncconf.desktop +usr/share/desktop-directories/cnc.directory +etc/modprobe.d/linuxcnc.conf +etc/xdg/menus/applications-merged/cnc.menu diff --git a/debian/machinekit.postinst b/debian/machinekit.postinst new file mode 100755 index 00000000000..ad252cffc41 --- /dev/null +++ b/debian/machinekit.postinst @@ -0,0 +1,49 @@ +#!/bin/sh + +#DEBHELPER# + +[ -x /etc/init.d/udev ] && /etc/init.d/udev restart + +# setup emcweb var files +rm -rf /var/cache/linuxcnc/www +mkdir -p /var/cache/linuxcnc/www/data +chmod a+rw /var/cache/linuxcnc/www/data + +# add symbolic links to static files +cd /usr/share/linuxcnc/doc-root +find -type d -exec mkdir --parents -- /var/cache/linuxcnc/www/{} \; +find -type f -exec ln -s -- /usr/share/linuxcnc/doc-root/{} /var/cache/linuxcnc/www/{} \; + +# if it doesnt exist, create /var/log/linuxcnc.log and make it publically readable +touch /var/log/linuxcnc.log +chmod ugo+r /var/log/linuxcnc.log + +# restart the rsyslogd to start logging to /var/log/linuxcnc.conf +invoke-rc.d rsyslog restart + +# The rebranding from linuxcnc to machinekit is taken care of in src/configure for RIPs +# /usr builds to package need it in postinst script +# This bit should not be needed, just belt and braces :) +# Checking for / creating ~/machinekit dir now in linuxcnc script + +if [ -f "/usr/bin/linuxcnc" ]; then + if [ ! -f "/usr/bin/machinekit" ]; then + if [ ! -L "/usr/bin/machinekit" ]; then + ln -s /usr/bin/linuxcnc /usr/bin/machinekit + echo "Creating machinekit symlink" + fi + fi +else + if [ -f "/usr/local/bin/linuxcnc" ]; then + if [ ! -f "/usr/local/bin/machinekit" ]; then + if [ ! -L "/usr/local/bin/machinekit" ]; then + ln -s /usr/local/bin/linuxcnc /usr/local/bin/machinekit + echo "Creating machinekit symlink" + fi + fi + fi +fi + + + + diff --git a/debian/linuxcnc.sharedmimeinfo b/debian/machinekit.sharedmimeinfo similarity index 100% rename from debian/linuxcnc.sharedmimeinfo rename to debian/machinekit.sharedmimeinfo diff --git a/debian/rules.in b/debian/rules.in old mode 100644 new mode 100755 index e3c6c4d2398..348b7432f73 --- a/debian/rules.in +++ b/debian/rules.in @@ -1,7 +1,8 @@ #!/usr/bin/make -f # Simple set of debian/rules that uses debhelper. -# Based on an example by Joey Hess. -# extended by Paul Corner, Alex Joni, Chris Radek, Jeff Epler (in cronological order) +# Based on an example by Joey Hess. +# extended by Paul Corner, Alex Joni, Chris Radek, Jeff Epler, John +# Morris (in cronological order) # Copyright (C) 2006 Jeff Epler # @@ -13,37 +14,81 @@ # When used to produce a debian package, this file is a script "used to # control compilation and installation of the executable" +# For cross-compiling +include /usr/share/dpkg/architecture.mk +ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) + set DEB_BUILD_OPTIONS=nocheck +endif # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 -python_version = @PYTHON_VERSION@ -kernel_version = @KERNEL_VERSION@ +# Enable/disable thread flavors; all flavors disabled by default +THREADS_POSIX = --without-posix +THREADS_RT_PREEMPT = --without-rt-preempt +THREADS_XENOMAI = --without-xenomai +THREADS_XENOMAI_KERNEL = --without-xenomai-kernel +THREADS_RTAI_KERNEL = --without-rtai-kernel + +# Kernel threads need a list of configured header source directories +# for each architecture +# +# Multiples should be space-separated +# +DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH) + +#HEADERS_XENOMAI_KERNEL_i386 = --with-xenomai-kernel-sources="" +#HEADERS_XENOMAI_KERNEL_amd64 = --with-xenomai-kernel-sources="" +#HEADERS_RTAI_KERNEL_amd64 = --with-rtai-kernel-sources="" +#HEADERS_RTAI_KERNEL_i386 = --with-rtai-kernel-sources="" +# Parallel make ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) MAKEFLAGS += -j$(NUMJOBS) endif +# Only set 'CC' if explicitly defined in environment; otherwise 'make' +# chooses CC=cc and CXX=g++ for defaults +ifneq ($(origin CC),default) + COMPILE_ENV += CC="$(CC)" +endif +ifneq ($(origin CXX),default) + COMPILE_ENV += CXX="$(CXX)" +endif -debian/control: - echo '# THIS FILE IS AUTO-GENERATED FROM control.in' > debian/control - sed -e 's/@@KVERSION@@/$(kernel_version)/g' \ - debian/control.in >> debian/control +debian/control: debian/configure +# # if debian/configure has not been run, error out + if ! test -f debian/configure.cmdline; then \ + @echo "Please run debian/configure" \ + "to generate the debian/control file."; \ + false; \ + fi + @echo rebuilding debian/control + build: build-arch build-indep build-arch: build-stamp build-indep: build-stamp -build-stamp: +build-stamp: debian/control dh_testdir # Add here commands to compile the package. cd src && ./autogen.sh -ifeq "$(kernel_version)" "sim" - cd src && ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --enable-simulator --enable-build-documentation=pdf -else - cd src && ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --with-realtime=/usr/realtime-$(kernel_version) --enable-build-documentation=pdf -endif - (cd src; $(MAKE) $(MAKEFLAGS) && $(MAKE) $(MAKEFLAGS) docs) + cd src && env $(COMPILE_ENV) \ + ./configure --prefix=/usr \ + --build=$(DEB_BUILD_MULTIARCH) \ + --host=$(DEB_HOST_MULTIARCH) \ + $(THREADS_POSIX) \ + $(THREADS_RT_PREEMPT) \ + $(THREADS_XENOMAI) \ + $(THREADS_XENOMAI_KERNEL) \ + $(THREADS_RTAI_KERNEL) \ + $(HEADERS_XENOMAI_KERNEL_$(DEB_HOST_ARCH)) \ + $(HEADERS_RTAI_KERNEL_$(DEB_HOST_ARCH)) \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --enable-emcweb + cd src && $(MAKE) $(COMPILE_ENV) $(MAKEFLAGS) V=$(DH_VERBOSE) touch build-stamp clean: debian/control @@ -51,44 +96,102 @@ clean: debian/control dh_testroot rm -f build-stamp +# # Only run configure if the tree looks dirty. Running +# # ./configure in qemu is expensive. +ifneq ($(wildcard src/configure src/Makefile.inc),) cd src && ./autogen.sh -ifeq "$(kernel_version)" "sim" - cd src && ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --enable-simulator -else - cd src && ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --with-realtime=/usr/realtime-$(kernel_version) -endif + cd src && env $(COMPILE_ENV) \ + ./configure --prefix=/usr \ + --build=$(DEB_BUILD_MULTIARCH) \ + --host=$(DEB_HOST_MULTIARCH) \ + $(THREADS_POSIX) \ + $(THREADS_RT_PREEMPT) \ + $(THREADS_XENOMAI) \ + $(THREADS_XENOMAI_KERNEL) \ + $(THREADS_RTAI_KERNEL) \ + $(HEADERS_XENOMAI_KERNEL_$(DEB_HOST_ARCH)) \ + $(HEADERS_RTAI_KERNEL_$(DEB_HOST_ARCH)) \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --enable-emcweb cd src && $(MAKE) clean -s - rm -f Makefile.inc - rm -f src/config.log src/config.status +# # Manually remove things left by './configure' + rm -f \ + lib/python/machinekit/config.py \ + lib/python/nf.py \ + man/man1/linuxcnc.1 \ + scripts/check-build-vs-configure-sha \ + scripts/gen-rtapi.ini.sh \ + scripts/gen-rtapi.ini.sh.in \ + scripts/halrun \ + scripts/haltcl \ + scripts/linuxcnc \ + scripts/linuxcnc_var \ + scripts/linuxcncmkdesktop \ + scripts/machinekit.ini.tmpl \ + scripts/realtime \ + scripts/rip-environment \ + share/applications/linuxcnc-latency.desktop \ + share/applications/linuxcnc.desktop \ + share/desktop-directories/cnc.directory \ + share/menus/CNC.menu \ + src/Makefile.inc \ + src/Makefile.modinc \ + src/aclocal.m4 \ + src/config.h \ + src/config.h.in \ + src/config.log \ + src/config.status \ + src/configure \ + src/machinekitcfg.py-tmp \ + tcl/linuxcnc.tcl + rm -rf src/autom4te.cache etc +endif +# # Remove package artifacts dh_clean install: build dh_testdir dh_testroot - dh_clean -k + dh_prep dh_installdirs # start the install mkdir -p debian/tmp - -(cd debian/@EXTRAS@ && cp -a * ../tmp) - (cd src; export DESTDIR=`pwd`/../debian/tmp; $(MAKE) $@) + (cd debian/extras && cp -a * ../tmp) + (cd src; export DESTDIR=`pwd`/../debian/tmp; $(MAKE) V=$(DH_VERBOSE) $@) mkdir -p debian/tmp/usr/lib debian/tmp/usr/include/linuxcnc cp lib/*.a debian/tmp/usr/lib - mkdir -p debian/tmp/usr/share/doc/linuxcnc-dev - mv debian/tmp/usr/share/doc/linuxcnc/LinuxCNC_Developer_Manual.pdf \ - debian/tmp/usr/share/doc/linuxcnc-dev/ - cp docs/html/gcode*.html debian/tmp/usr/share/doc/linuxcnc/ - rm debian/tmp/usr/share/doc/linuxcnc/LinuxCNC_Manual_Pages.pdf + ## if they weren't there we don't care if rm fails + rm -f debian/tmp/usr/share/applications/linuxcnc-usermanual*.desktop + rm -f debian/tmp/usr/share/applications/linuxcnc-halmanual*.desktop + rm -f debian/tmp/usr/share/applications/linuxcnc-integratormanual*.desktop + rm -f debian/tmp/usr/share/applications/linuxcnc-gettingstarted*.desktop + rm -f debian/tmp/usr/share/applications/linuxcnc-developer*.desktop + rm -rf debian/tmp/usr/share/doc/linuxcnc/html - -rm debian/tmp/linuxcnc*.files - -rm -f debian/tmp/usr/share/doc/linuxcnc/examples/sample-configs/*/*position*.txt - dh_movefiles - if [ `find debian/tmp -type f | wc -c` != 0 ]; then \ - echo "Files exist in debian/tmp, but should not:"; \ - find debian/tmp -type f; \ - exit 1; \ + rm -f debian/tmp/usr/share/linuxcnc/examples/sample-configs/*/*position*.txt + # update emcweb.hal + sed 's/#NC_FILES_DIR/NC_FILES_DIR/' -i debian/tmp/usr/share/linuxcnc/examples/sample-configs/sim/emcweb.ini + +ifneq (,$(wildcard debian/machinekit-*-kernel-*.install)) + mkdir -p debian/tmp/etc/udev/rules.d + cp src/rtapi/shmdrv/shmdrv.rules \ + debian/tmp/etc/udev/rules.d/50-shmdrv.rules +endif + mkdir -p debian/tmp/etc/security/limits.d + cp src/rtapi/shmdrv/limits.d-machinekit.conf \ + debian/tmp/etc/security/limits.d/machinekit.conf + + if (grep ^USERMODE_PCI=yes src/Makefile.inc -q); then \ + cp debian/machinekit-dev.install.in debian/machinekit-dev.install; \ + else \ + grep -v userpci debian/machinekit-dev.install.in \ + > debian/machinekit-dev.install; \ fi + dh_install --sourcedir=debian/tmp --fail-missing -Xusr/bin/pasm + # Build architecture-independent files here. binary-indep: build install # We have nothing to do by default. @@ -98,27 +201,30 @@ binary-arch: build install dh_testdir dh_testroot dh_installchangelogs - dh_installdocs dh_installexamples dh_installman dh_installmime dh_link dh_strip - dh_compress -X.pdf -X.txt -X.hal -X.ini -X.clp -X.var -X.nml -X.tbl -X.xml -Xsample-configs -ifneq "$(kernel_version)" "sim" - dh_fixperms -X/linuxcnc_module_helper -endif - dh_pysupport + dh_compress -X.pdf -X.txt -X.hal -X.ini -X.clp -X.var -X.nml \ + -X.tbl -X.xml -Xsample-configs + dh_fixperms -X/linuxcnc_module_helper -X/rtapi_app_ + dh_python2 --ignore-shebangs --no-guessing-versions dh_makeshlibs dh_installdeb - cat debian/@MAIN_PACKAGE_NAME@/DEBIAN/shlibs debian/shlibs.pre > debian/shlibs.local - dh_shlibdeps -l debian/@MAIN_PACKAGE_NAME@/usr/lib + +# # delete files that should be in machinekit-dev package + rm -f debian/machinekit/usr/bin/comp + rm -f debian/machinekit/usr/share/man/man1/comp.1.gz + rm -f debian/machinekit/usr/share/linuxcnc/Makefile.modinc + rm -f debian/machinekit/usr/share/linuxcnc/Makefile.inc + + cat debian/machinekit/DEBIAN/shlibs debian/shlibs.pre > \ + debian/shlibs.local + dh_shlibdeps -l debian/machinekit/usr/lib dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install - -debian/rules: debian/configure debian/*.in - debian/configure @TARGET@ diff --git a/debian/source/format b/debian/source/format index 89ae9db8f88..163aaf8d82b 100644 --- a/debian/source/format +++ b/debian/source/format @@ -1 +1 @@ -3.0 (native) +3.0 (quilt) diff --git a/debian/source/options b/debian/source/options new file mode 100644 index 00000000000..ab00ff03582 --- /dev/null +++ b/debian/source/options @@ -0,0 +1,2 @@ +# Compress .orig files with bzip2 +compression = "bzip2" diff --git a/directory.map b/directory.map deleted file mode 100644 index 83a8ae2f010..00000000000 --- a/directory.map +++ /dev/null @@ -1,373 +0,0 @@ -/******************************************************************** -* Description: directory.map -* File describing the current directory map, and a proposed -* install directory scheme -* -* -* License: GPL Version 2 -* System: Linux -* -* Copyright (c) 2004-2009 All rights reserved. -********************************************************************/ - -Overview of the emc2 directory (generated by tree -I .git -d) : - -. -|-- app-defaults -|-- bin (user mode binaries) -|-- configs -| |-- 5axis -| |-- boss -| |-- common -| |-- dallur-thc -| |-- demo_mazak (sample mazak config files) -| |-- demo_sim_cl (sample sim with ladder IO) -| |-- demo_step_cl (sample stepper with ladder IO) -| |-- etch-servo -| |-- halui_halvcp -| |-- hexapod-sim -| |-- lathe-pluto -| |-- m5i20 (sample servo using Mesa PCI) -| |-- max -| |-- motenc (sample servo using Vital PCI) -| |-- nist-lathe -| |-- plasma-thc -| |-- plasma-thc-sim -| |-- ppmc -| |-- puma -| |-- scara -| |-- sim (simulated motion and IO) -| |-- stepper (parport stepper driver) -| |-- stepper-gantry -| |-- stepper-xyza -| |-- stg (sample servo using STG ISA) -| |-- univpwm (sample PICO servo generator) -| |-- univstep (sample PICO stepper generator) -| `-- vti -|-- debian (files needed to build deb packages) -| |-- extras-Ubuntu-5.10 (extra files for Ubuntu 5.10) -| | |-- etc -| | | |-- modprobe.d -| | | |-- udev -| | | | |-- rules.d -| | | | `-- scripts -| | | `-- xdg -| | | `-- menus -| | | `-- applications-merged -| | `-- usr -| | `-- share -| | |-- applications -| | |-- desktop-directories -| | `-- pixmaps -| |-- extras-Ubuntu-6.06 (extra files for building on Ubuntu 6.06 Dapper Drake) -| | |-- etc -| | | |-- modprobe.d -| | | |-- udev -| | | | |-- rules.d -| | | | `-- scripts -| | | `-- xdg -| | | `-- menus -| | | `-- applications-merged -| | `-- usr -| | `-- share -| | |-- applications -| | |-- desktop-directories -| | `-- pixmaps -| |-- extras-Ubuntu-7.10 (extra files for building on Ubuntu 7.10) -| | |-- etc -| | | |-- modprobe.d -| | | |-- udev -| | | | `-- rules.d -| | | `-- xdg -| | | `-- menus -| | | `-- applications-merged -| | `-- usr -| | `-- share -| | |-- applications -| | |-- desktop-directories -| | `-- pixmaps -| |-- extras-Ubuntu-8.04 (extra files for building on Ubuntu 8.04 Hardy Heron) -| | |-- etc -| | | |-- modprobe.d -| | | `-- xdg -| | | `-- menus -| | | `-- applications-merged -| | `-- usr -| | `-- share -| | |-- applications -| | |-- desktop-directories -| | `-- pixmaps -| |-- extras-sim-Ubuntu-5.10 (extra files for sim package for Ubuntu 5.10) -| | |-- etc -| | | `-- xdg -| | | `-- menus -| | | `-- applications-merged -| | `-- usr -| | `-- share -| | |-- applications -| | |-- desktop-directories -| | `-- pixmaps -| `-- extras-sim-Ubuntu-6.06 (extra files for sim package for Ubuntu 6.06 Dapper Drake) -| |-- etc -| | `-- xdg -| | `-- menus -| | `-- applications-merged -| `-- usr -| `-- share -| |-- applications -| |-- desktop-directories -| `-- pixmaps -|-- docs (All the important and relevant Docs.) -| |-- help -| |-- html (html version of docs - some generated from lyx) -| |-- man (man pages) -| | |-- man1 -| | |-- man3 -| | `-- man9 -| `-- src (API and source notes should be in each src dir.) (source for the handbooks) (top level .lyx files) -| |-- code -| |-- common (shared .lyx files and images, such as glossary, GPLD license) -| |-- config -| |-- gcode (.lyx files, images, etc. for G-Code documentation) -| |-- gui (.lyx files, images, etc. for GUI documentation) -| |-- hal (.lyx files, images, etc. for HAL documentation) -| |-- install -| |-- ladder -| |-- motion -| `-- quickstart -|-- include (headers installed here - originals in src/xxx/) -|-- lib (user mode object files) -| `-- python -| |-- rs274 -| `-- yapps -|-- nc_files (Sample NC files) -|-- rtlib (kernel mode object files, only after a successfull compile) -|-- scripts(bash scripts like linuxcnc, realtime, rip-environment, etc.) -|-- share -| |-- axis -| | |-- images -| | `-- tcl -| |-- emc -| `-- locale -| |-- de -| | `-- LC_MESSAGES -| |-- es -| | `-- LC_MESSAGES -| |-- fr -| | `-- LC_MESSAGES -| |-- hu -| | `-- LC_MESSAGES -| |-- it -| | `-- LC_MESSAGES -| |-- pt_BR -| | `-- LC_MESSAGES -| |-- ro -| | `-- LC_MESSAGES -| |-- ru -| | `-- LC_MESSAGES -| |-- se -| | `-- LC_MESSAGES -| |-- sr -| | `-- LC_MESSAGES -| `-- zh_CN -| `-- LC_MESSAGES -|-- src (source tree - configure script, top level makefile, Makefile.inc, etc) -| | -| |-- depends (generated dependency tree) -| | -| |-- emc (actual LinuxCNC code) -| | |-- canterp (interpreter for canonical commands) -| | |-- ini (inifile related operations) -| | |-- iotask (IO interface, lots of HAL pins) -| | |-- kinematics (trajectory planner and kinematics) -| | |-- motion (motion controller, talks through SHM to the rest of EMC) -| | |-- nml_intf (emc specific NML implementation, all messages sent in emc) -| | |-- rs274ngc (the rs274 g-code interpreter) -| | |-- sai -| | |-- task (core component in emc, dispatches actions to other parts) -| | `-- usr_intf (interfaces for some GUIs, and other interfaces: AXIS, halui, stepconf) -| | |-- axis -| | | |-- etc -| | | |-- extensions -| | | `-- scripts -| | `-- stepconf -| |-- hal (the Hardware Abstraction Layer, provides a unified interface across all hardware) -| | |-- classicladder -| | | `-- projects_examples -| | |-- components -| | |-- drivers -| | | |-- m5i20 -| | | | |-- bit -| | | | `-- hostmot5_src -| | | |-- mesa-hostmot2 -| | | | |-- doc -| | | | `-- firmware -| | | | |-- 5i20 -| | | | | `-- SOURCE -| | | | `-- 7i43 -| | | | |-- CPLD -| | | | | `-- SOURCE -| | | | `-- SOURCE -| | | |-- mesa7i43-firmware -| | | | |-- gpio -| | | | | `-- source -| | | | |-- hostmot2 -| | | | | `-- src -| | | | `-- source -| | | |-- mesa_5i2x -| | | | `-- firmware -| | | |-- pluto_servo_firmware -| | | `-- pluto_step_firmware -| | |-- user_comps -| | | |-- devices -| | | `-- vcp -| | `-- utils -| | `-- halgui -| |-- libnml (a clean implementation of RCSLIB) -| | |-- buffer -| | |-- cms -| | |-- inifile -| | |-- linklist -| | |-- nml -| | |-- os_intf -| | |-- posemath -| | `-- rcs -| |-- module_helper -| |-- objects -| | |-- emc -| | | |-- canterp -| | | |-- ini -| | | |-- iotask -| | | |-- motion -| | | |-- nml_intf -| | | |-- rs274ngc -| | | |-- sai -| | | |-- task -| | | `-- usr_intf -| | | `-- axis -| | | `-- extensions -| | |-- hal -| | | |-- classicladder -| | | |-- components -| | | |-- drivers -| | | |-- user_comps -| | | | |-- devices -| | | | `-- vcp -| | | `-- utils -| | |-- libnml -| | | |-- buffer -| | | |-- cms -| | | |-- inifile -| | | |-- linklist -| | | |-- nml -| | | |-- os_intf -| | | |-- posemath -| | | `-- rcs -| | |-- rtapi -| | |-- rtemc -| | | |-- kinematics -| | | `-- motion -| | |-- rthal -| | | |-- classicladder -| | | |-- components -| | | `-- utils -| | |-- rtlibnml -| | | `-- posemath -| | `-- rtobjects -| | `-- hal -| | `-- components -| |-- po (Translation files for i18n support) -| |-- rtapi (*.c and *.h for RTAPI) (unified RT API, wraps over RTLinux, RTAI and sim) -| | `-- examples (testing examples for the RTAPI) -| | |-- extint -| | |-- fifo -| | |-- semaphore -| | |-- shmem -| | `-- timer -| `-- tests -|-- tcl (tkemc.tcl, mini.tcl - the tcl GUI's) -| |-- bin -| `-- scripts -`-- tests - |-- abs.0 - |-- and-or-not-mux.0 - |-- basic - |-- ccomp - | |-- lathe-comp - | |-- mill-g90g91g92 - | |-- mill-line-arc-entry - | `-- mill-zchanges - |-- counter-encoder.0 - |-- flipflop.0 - |-- interp - | |-- cam-nisley - | `-- flowsnake - |-- limit3.0 - |-- limit3.1 - |-- limit3.2 - |-- modparam.0 - |-- overrun - |-- oword - | `-- sub.0 - |-- save.0 - |-- save.1 - |-- source.0 - |-- stepgen.0 - |-- stepgen.1 - |-- stepgen.2 - |-- threads.0 - `-- timedelay.0 - - -Overview of the emc2 install dirs: - - / (file system root) - | - | - |--- etc/ - | | - | \--- init.d/ - | | - | \--- realtime (realtime start/stop script) - | - | - |--- $(prefix) (default: /usr/local) - | | (all the following $xxxxdir are configurable through autoconf - | | - | |--- bin/ (known as $bindir, files from EMC2/bin) - | | - | |--- sbin/ (known as $sbindir, ) - | | - | |--- etc/ (known as $sysconfdir, config files and subdirs from configs/) - | | - | |--- lib/ (known as $libdir, lib files *.so from libs/) - | | - | \--- share/ - | | - | \--- emc/ - | | - | | - | |--- docs/ - | | | - | | \--- (All the important and relevant Docs.) - | | - | |--- handbooks/ - | | | - | | \--- (PDF versions of handbooks) - | | - | \--- nc_files/ - | | - | \--- (Sample NC files) - | - |--- $MAN_DIR/ (default: /usr/local/man) - | | - | |--- man1/ - | | | - | | - | | - | \--- man3/ - | | - | - | - \--- $moduledir/ (based on where ./configure finds - the RTOS modules) diff --git a/docs/AUTHORS b/docs/AUTHORS deleted file mode 100644 index fb869530ac2..00000000000 --- a/docs/AUTHORS +++ /dev/null @@ -1,27 +0,0 @@ -A list of authors that worked on the project (add your name here when you commit) -Ordered alphabetically by the SF username: - -- alex_joni (Alex Joni) -- andypugh (Andy Pugh) -- awallin (Anders Wallin) -- baslaarhoven (Bas Laarhoven) -- bigjohnt (John Thornton) -- cradek (Chris Radek) -- fenn (Ben Lipkowitz) -- flo-h (Florian Hahn) -- jepler (Jeff Epler) -- jmelson (Jon Elson) -- jmkasunich (John Kasunich) -- lerman (Kenneth Lerman) -- mhaberler (Michael Haberler) -- mkuhnle (Martin Kuhnle) -- mshaver (Matt Shaver) -- paul_c (Paul Corner) -- petev (Pete Vavaroutsos) -- proctor (Fred Proctor) -- rayhenry (Ray Henry) -- seb_kuzminsky (Sebastian Kuzminsky) -- swpadnos (Stephen W. Padnos) -- tissf (Francis Tisserant) -- yabosukz (Yabo Sukz) -- zwisk (J. Stark) diff --git a/docs/INSTALL b/docs/INSTALL deleted file mode 100644 index b899d4dcb2e..00000000000 --- a/docs/INSTALL +++ /dev/null @@ -1,123 +0,0 @@ -Basic description ------------------ -From the top level directory, switch to the source directory: - -cd src - -In the source directory, build LinuxCNC: - -./autogen.sh (this builds the configure script) -./configure -make clean -make -sudo make setuid - -to run the software go back to the top level directory, and issue: - -source scripts/rip-environment -linuxcnc - - -Detailed description -==================== - -Run-time script -=============== - -The runtime script is called linuxcnc, thus allowing you on an installed -to just type 'linuxcnc' and get it running. On a run-in-place system -(e.g. the one you just got out of git), the runscript is scripts/linuxcnc. -When you just checked out a fresh copy of LinuxCNC, you'll see there is no -'scripts/linuxcnc', just a 'scripts/linuxcnc.in'. By running configure -that one will get changed to 'scripts/linuxcnc'. configure will also -replace some default values for your system (folders, paths, etc). - - -Configure script -================ - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile.inc' file. -Finally, it creates a shell script `config.status' that you can run -in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). - - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Type `scripts/linuxcnc` to test the software. - - -Optional Features -================= - LinuxCNC can operate hardware only if a real time system has been -installed. Either RTLinux or RTAI. If you don't have any installed, -you cannot run LinuxCNC to control any machines. Please install one -of the RT patches (refer to the documentation of the project on how to -achieve that). - - However, it is possible to test LinuxCNC without a realtime system. This is -possible using a simulator mode, which doesn't allow hardware control. To -enable this mode there is a special option '--enable-simulator' you can use. - -If you have multiple RTAI or RTLinux source directories in /usr/src, -the correct one can be declared as a command line argument: - -./configure --with-rtai=/usr/src/rtai-24.1.12 - -If you want only to try LinuxCNC in a local directory (without installing it), -there is an option to configure to run-in-place - --enable-run-in-place Enables running in the local dir - (without installing) - -If you don't want to generate the documentation from source: - --disable-build-documentation Do not build documentation automatically - -configure also accepts other arguments. Use --help to view the list. - - -Operation Controls -================== - - `configure' recognizes the following options to control how it -operates. - -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. - -`--help' - Print a summary of the options to `configure', and exit. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. diff --git a/docs/NEWS b/docs/NEWS deleted file mode 100644 index 957e5e07e8d..00000000000 --- a/docs/NEWS +++ /dev/null @@ -1,121 +0,0 @@ -check debian/changelog for recent news - -# some of EMC2 History & News -############################# - -2009.06.13 - mshaver added emc2/configs/smithy directory and related files - for Smithy Company's line of cnc machines. - -2006.11.17 - removed HAL types s8, u8, s16, and u16. HAL now uses float - for analog values, bit for booleans, and s32 or u32 for - integer values. The only users who will be affected are - those with Universal Stepper Controller cards. See item 9 at - http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?UpdatingConfigurationsForDevelopmentVersions - -2006.11.15 - merged classicladder 0.7.100 - -2006.11.04 - added a feed-hold HAL pin. Added M codes to enable/disable - feed override, spindle override, feed hold, and adaptive feed - individually. Feed override is M50, spindle override is M51, - adaptive feed is M52, and feed hold is M53. G50/51 are no - longer used to enable/disable adaptive feed, use M52 instead. - -2006.10.24 - added support for block delete as defined by Section 2.2.2 - in the RS274NGC_3 specs. - -2006.10.24 - added support for optional program stop as defined by Section - 2.2.3 in the RS274NGC_3 specs. - -2006.10.14 - manpages have been created for most rtapi and hal calls - -2006.10.01 - added a userspace simulator which includes rtapi threads. - Use "--enable-simulator" to enable this mode, which cannot - be used to control real hardware - -2006.09.27 - added support to optionally save joint positions between - runs ([TRAJ] POSITION_FILE = position.txt) - -2006.09.26 - added support to specify UNITS in literal in the ini. - (e.g. [TRAJ] LINEAR_UNITS = mm ) - -2006.09.09 - fixed bug #1384883, optional stop was not optional. - -2006.08.09 - AXIS is now a part of EMC2, not a separate source download. - -2006.08.07 - Added a spindle-speed override. This allows to override the spindle - speed during a program run. The MIN_SPINDLE_OVERRIDE and - MAX_SPINDLE_OVERRIDE in the ini assure that speed doesn't get - reduced or increased too much. Both values are in %. - -2006.08.06 - Documentation can be built from source with the 'make docs' target - -2006.06.11 - added realtime support for jogwheels. Three HAL pins per axis: - one accepts raw counts from the wheel, one sets the distance moved - per count, and one enables that axis to move. - -2006.05.17 - added 'adaptive feed', a HAL pin that can be used to scale the - feedrate in real time. Simular to feedrate override, but can - only vary from 0.0 to 1.0, and reacts much faster. Intended - for use with EDM and other applications that require closed - loop control of feedrate. - -2006.03.18 - A new pin "count" exists for freqgen. It is the same as the - internal symbol "count" shown in the hal introduction.pdf, - or the result of up OR down if there was an "OR" component. - -2006.03.16 - Modified the motion control module to behave more like other - HAL modules - it no longer adds its functions to threads - automatically. All the sample configs have been changed to - explicitly add the functions, users who have custom configs - will need to do the same. - -2006.03.12 - If a copy of axis 1.3a0 or newer is detected inside src/ - it will be automatically built and installed for - --enable-run-in-place use - -2006.03.10 - minor bugfix in tkemc for jogging - -2006.03.10 - added genhexkins, with a minitetra sample config. - This proves EMC2 works just as good with hexapods as EMC1 did. - -2006.03.10 - added VTI support & sample configs - -2006.03.07 - lots of fixes to the TP (most were wrong in the old one as well) - -2006.03.05 - new Trajectory Planner - -2006.02.20 - added a manpage for the runscript. - -2006.02.12 - Fixed a bug that was causing the RT code to run very slowly, - forcing users to set BASE_PERIOD very long. - -2006.02.10 - The build process has been replaced, no more recursive $(MAKE) - -2006.01.28 - fixed bug #1205237, mode switching sometimes hung - -2006.01.08 - M62/M63 digital outputs synchronous to motion - M64/M65 digital outputs that get set right away - -2006.01.06 - work on halconfig.tcl, it is used to display/configure HAL data - requires the BWidget package, realtime, and HAL to run. - -2006.01.04 - fix bug #1387740, a motion that goes nowhere clears feedrate - -2006.01.01 - the config picker has i18n support, a German translation exists - -2005.12.20 - a new config picker has been written, if you start just the - runscript this one helps you choose a config to run - -2005.12.13 - new runscript, and config organization - work towards the first release of EMC2 - -2005.xx.xx - EMC2 now supports tool-changing in complex scenarios - -2005.xx.xx - classicladder now a HAL component, a software PLC - -2004.xx.xx - HAL (the Hardware Abstraction Layer) is used for - addressing hardware drivers, and allows for simple configuration - - -#developers: this file should hold a history of improvements, bugfixes, etc - it is useful for keeping track of development diff --git a/docs/README b/docs/README deleted file mode 100644 index 9b8b75dd50c..00000000000 --- a/docs/README +++ /dev/null @@ -1,143 +0,0 @@ -README for Document Writers - -Adding files: -------------- -The submakefile, docs.xml and index.tmpl must be updated to add a file to the documents. - -docs.xml is used to create the "previous" and "next" buttons at the top of each individual html document. -it should generally match the order of the index.tmpl - -Notes on LinuxCNC documentation: ----------------------------- -The main LinuxCNC makefile can optionally build the documentation and -other files in this directory tree. Use --enable-build-documentation when -invoking src/configure, and run make from src - -Notes about drawings: ---------------------- -Many of the documents include drawings. Most of them were originally -created using EasyCad, a non-free Windows app, then exported to .eps files -and included in the the docs. The original 'source' files (EasyCad .FC7 -format) were not usable on a free system. To fix this problem, all of -the source files have been converted to .dxf files, and added to git. -The .dxf files can be edited with multiple CAD packages, and serve as the -'source' files for future changes to the drawings. They can be converted -from .dxf to postscript (not .eps) using Qcad, which is available as an -ubuntu package (and I believe also available for debian). - -Unfortunately, EasyCad (and AutoCad) support a number of entities -that Qcad does not import properly. Including some that were used -in the LinuxCNC drawings: filled circles, filled arrowheads, non-zero -width lines, and dashed lines. Qcad renders filled circles as -hollow, it renders all lines the same width, and it renders dashed -lines as solid, unless you tell it to do otherwise. All of these -things make the drawings less attractive, but are somewhat -acceptable. However, Qcad doesn't import filled arrowheads at all, -which seriously hurts the drawings. So EasyCad was used to convert -the arrowheads to hollow before exporting them. Hollow arrowheads -don't look as nice as solid ones, but at least they are visible. - -Once exported, the arrowheads lose their relationship with the line they -are on, and and need to be moved and/or rotated manually if the line is -moved. I believe that even if they were imported back into EasyCad, the -line/arrow connection would remain broken. New lines with -arrowheads can be created in Qcad with the 'leader' dimension tool. - -Because the original EPS files with filled lines and circles, wide lines, -and dashed lines look so much nicer, they will remain in git and should -probably be used for the documents, however if they become inaccurate -because of changes in the software, we will have to edit the DXF files, -generate postscript, and use the less pretty but factually corrrect -images. - -Since Qcad itself is a GUI application, the dxf to postscript conversion -involves going clicky clicky, and can't be automated and made part of the -makefile. Also, not everyone will have Qcad installed on their system. -Therefore, we will store both the DXF files and the resulting postscript -files in git, and the normal documentation build process will use the -postscript files only. If/when the dxf files are edited, they will need -to be converted to postscript manually. The conversion procedure is as -follows: - -start qcad -File->Open-> choose dxf file -drawing appears in window -Edit->CurrentDrawingPreferences->Paper -set paper size to "letter", set orientation to "landscape" or "portrait" - depending on the aspect ratio of the drawing -File->PrintPreview -click the "fit to page" button on the toolbar (last button on the right at - least on version 2.0.4.0 of qcad) -File->Print - select "print to file" - set the path to point to the same directory as the source .dxf file - set the name to be the same as the source file, but .ps instead of .dxf - click OK - -The makers of Qcad also have a GPL'ed format converter called vec2web, -which can do dxf to postscript conversion from the command line. It -is not available as a precompiled package, but is available in source -form from http://www.ribbonsoft.com/vec2web.html - -vec2web depends on qt3 development packages for compilation, so it should -not be a dependency for building the LinuxCNC docs. But if configure can -detect it, it would be nice to automate conversion from dxf to ps for those -systems where vec2web is installed. - -To build vec2web, I had to apt-get install qt3-dev-tools -The vec2web tarball contains a build script, but before you run it you -must set $QTDIR to point at your QT3 installation - in my case it was - export QTDIR=/usr/share/qt3 -Then run the build script: - ./build_vec2web.sh -There is no install step, the executable gets dumped in the build directory. -There is also no man page, but running it with no args prints the following -usage instructions: - -Usage: vec2web [options] -Where options are: - -x # maximum x size for the output bitmap in pixel - -y # maximum y size for the output bitmap in pixel - -b black/white instead of using colors - -o [l|p] orientation for PS output (landscape or portrait) - -s .. page size for PS output (A4, A5) - -e.g. vec2web drawing.dxf drawing.png - converts drawing.dxf to a portable network graphic - -My initial attempts to use vec2web resulted in the graphical parts of the -drawing being converted, but all text was lost. I don't know if vec2web is -worth spending much more time on, however, it _is_ GPL, and it includes a -library for reading DXF files which might be a worthwhile thing to the -Linux CNC community. - -Drawings from QCad -------------------- -Save as .dxf to same directory as the image -Set line thickness to 0.50mm -Export image as 480 x 480 Resolution Auto .png - - -How to add a new translation language -------------------------------------- - -Add the asciidoc source files that will contain your new translation. -Usually that means copying the language files for one of the existing -languages, probably English since that's usually the most up to date. - -Add the new files to the proper place in docs/src/Submakefile, to ensure -they'll get built. - -Edit debian/control.in to add the new linuxcnc-doc-$NEWLANG package. -Add the new doc package to the or-list of the Recommends line of the -linuxcnc/linuxcnc-sim package. - -Add the new language to the DOCS_PACKAGES variable in debian/configure. -If there is a texlive-lang-$NEWLANGUAGE package for your new language, -add it to all the appropriate EXTRA_BUILD lines in debian/configure. - -Add the 'linuxcnc-doc-$NEWLANG.files.in' file for the new package, probably -by copying and editing "debian/linuxcnc-doc-en.files.in". - -Test build the packages and verify! - diff --git a/docs/TODO b/docs/TODO deleted file mode 100644 index a16149cf3c0..00000000000 --- a/docs/TODO +++ /dev/null @@ -1,7 +0,0 @@ -To Do - -Find out why .eps files are not showing up in the HTML docs - -Add Cutter Comp gcode example to src/examples.gcode.txt - -finish tool turret classicladder example diff --git a/docs/UPDATING b/docs/UPDATING deleted file mode 100644 index b172c052a5f..00000000000 --- a/docs/UPDATING +++ /dev/null @@ -1,220 +0,0 @@ -This file describes needed steps to update configurations from 2.2.x to 2.3 - -1. Classicladder changes -Default input and output pins change from 50 to 15 each. -s32 now uses %IW0 for in and %QW0 for out. - -2. RS274NGC_STARTUP_CODE should be in the [RS274NGC] section. - - -This file describes needed steps to update configurations to 2.2.x -============================================================================= - - ------------------------------------------------------------------------------ -I. Upgrading configurations from 2.1.x to 2.2.x ------------------------------------------------------------------------------ - -1. m5i20 encoder changes -The m5i20 "encoder" pins now match the HAL canonical encoder interface. -The -cnt-latch, -pos-latch, -idx-latch, and -latch-index pins have been -removed. The standard encoder pin -index-enable has been added. The behavior -of the -position and -count pins now match the HAL canonical interface. - -2. pluto_servo changes -Most pins and parameters on pluto-servo were changed to use dots instead of -dashes, in accordance with the HAL canonical naming conventions. For example, -'pluto-servo.encoder-0-velocity' has been renamed to -'pluto-servo.encoder.0.velocity' and 'pluto-servo.dout-00-invert' has been -renamed to 'pluto-servo.dout.00-invert'. - -3. stepgen and freqgen changes -The units for steplen, stepspace, dirsetup, and dirhold have been changed -from BASE_PERIOD units to nanosecond units. Internally, the values given are -rounded up to a multiple of BASE_PERIOD, and at runtime the parameters are -changed to display the rounded up value. - -Freqgen has been deprecated and replaced by stepgen, which now has an -additional command line argument 'ctrl_mode', which can be used to specify -position mode (the default) or velocity mode. Position mode is the default, -and works the same as before. Velocity mode accepts a velocity command, and -works like freqgen. - -In step modes 0 and 1, setting stepspace to 0 will allow "step" -(or "up/down") to be asserted on every invocation of make-pulses. Use a -stepspace value of 1 to signify "the smallest nonzero stepspace". - -4. double-linking of pins is now treated as an error -halcmd and hal_link() now refuse to link an already-linked pin. This -immediately diagnoses configuration errors of the form - - net limit-switch parport.0.pin-26-in => axis.0.neg-lim-sw-in axis.0.pos-lim-sw-in - net home-switch parport.0.pin-26-in => axis.0.home-sw-in - -which have the effect of leaving no pin driving the limit switch inputs. If -the "re-link" behavior is truly desired, add "unlinkp" commands before the new -link. It is still permitted for "unlinkp" to be used on an unconnected pin. - -5. The 'counter' component is deprecated -The 'counter' component is deprecated. For a one-phase, unidirectional counter, -use the 'encoder' component with encoder.X.counter-mode=TRUE. The version in -'encoder' has superior velocity estimation. - -6. Homing changes -The homing algorithm has been changed to be "level sensitive" instead of -"edge sensitive". This eliminates some possible "miss the switch and go to -the end of travel" errors on machines with flakey switches. However, it will -cause homing to fail on some machines that might have worked before. This can -happen if the following conditions are true: - - 1. The home switch does not remain on from the point that it trips till - the end of axis travel - 2. Homing speed is high and/or decel rate is low, so that the machine - will overshoot the switch when it hits it during homing. - - If the machine ends up on the far side of the switch during homing, it - will stop with an error message. - - Machines that can wind up "on the far side" of the home switch are - considered to have defective switches. If you ever attempt to home - while on the wrong side of the switch, it will run to the end of the - axis. There is NO possible software solution to that scenario - the - proper solution is a home switch that remains on all the way to the end - of the axis. With such a switch, EMC2's homing algorithm will always work. - -7. connect motion.spindle-speed-in for Feed Per Revolution (G95) mode -The new pin motion.spindle-speed-in must be connected for Feed Per Revolution -(G95) to work. The value connected must be a revolutions per second value. -Depending on the machine, this can be a feedback velocity from the encoder or -a commanded velocity loopback. If using a loopback, the output value which is -in revolutions per minute must be multiplied by .0167 with a gain component to -convert to RPS. - -8. setp requires 2 arguments, 3 given -Additional error checking is now done in halcmd, so that giving too many -arguments causes an error message to be printed. In 2.1 and earlier, these -extra arguments were ignored. - -Note that this is the number of arguments that are present after the expansion -of inifile references, such as - - setp example.scale [AXIS_0]INPUT_SCALE - -which might expand to to - - setp example.scale 32000 0 - -in this case, the fix is to modify the inifile to remove the second number "0" -from the INPUT_SCALE. This second value is no longer used anywhere in emc2. - -9. .var file changes -The .var file has been extended to require coordinate system offsets for -U, V and W axes. Copy a fresh .var file. An incorrect var file leads to emc -printing 'emc/task/emctask.cc 312: interp_error: Coordinate system index -parameter 5220 out of range' at startup. - - ------------------------------------------------------------------------------ -II. Upgrading configurations from 2.0.x to 2.1.x ------------------------------------------------------------------------------ - -Please review the following list if you plan to update a configuration from -emc2.0.x to 2.1.x. It is not needed if you start with a new -configuration based on the sample configs supplied with this version of emc2. - -1. emc.nml -The emc.nml file has been heavily revised. Unless you made your own changes to -emc.nml, simply make a fresh copy. If you made your own changes, then you'll -have to apply them to emc.nml manually. - -2. kinematics -Now a separate kinematics module must be loaded before MOTMOD, as shown below: - core_sim.hal: - + loadrt trivkins - -3. spindle control -The HAL pins for spindle control have been renamed to reflect the fact that -they are controlled by the realtime 'motion' component, and not by the -userspace 'iocontrol' component. - change 'iocontrol.0.spindle-speed-out' with 'motion.spindle-speed-out' - -4. halcmd "loadusr -W" replaces wait-for-pin and sleep -In 2.0 there was no way to wait for a userspace component to create its pins. -The "wait-for-pin" program (which took a pin name as an argument) was added -and then removed during the 2.1 development cycle. -Now, the correct way to wait for a userspace component is - "loadusr -W ...". -This requires that the component call hal_ready() after it has created all its -pins and is ready for use. If the executable name and the component name -differ, use "halcmd loadusr -W -n component-name". - -5. inifile units -Instead of specifying [AXIS_*]UNITS as a decimal number, -specify [TRAJ]LINEAR_UNITS and [TRAJ]ANGULAR_UNITS as unit names, -including "inch", "mm", "degree", and "radian". -The old [AXIS_*]UNITS syntax is still supported, however. - -6. "HAL: WARNING: blocks is deprecated, please use the subcomponents generated - by 'comp' instead" -In emc 2.1, a new tool called "comp" makes it easy to create HAL components. -All the items that are in the 'blocks' module have been broken into separate -modules such as 'ddt', 'wcomp', and so on. -No corrective action is needed at this time, because 'blocks' will still be -present in the 2.1 series. However, it may be removed in the 2.2 series, -and changes to HAL files will be required at that time. - -If you wish to silence this warning, then change a line like - loadrt blocks ddt=6 wcomp=6 -to - loadrt ddt count=6 - loadrt wcomp count=6 - -7. elimination of "period" from most HAL components -In version 2.0.x, many HAL components would accept a command line argument -"period" (or "periodfp", or other variations on that theme). When "period" was -specified, the component would create a realtime thread running at the -specified period. This capability was _not_ used in normal EMC configurations; -it was mostly used for testing. -(In a normal EMC configuration, the servo and base periods are passed to motmod -and it creates the threads.) -In version 2.1, the period argument has been removed from all HAL components. -'motmod' still creates the threads for EMC, and none of the sample -configurations should need to be changed. For other applications such as -testing, etc., there is now a component called "threads" which can create up -to three threads. -To create a thread, use - loadrt threads name1= period1= - -To create more than one, use name2, period2, and name3, period3. By default, -"threads" creates floating point capable threads. If you don't need floating -point, you can specify "fp1=0" (or fp2=0 or fp3=0) to turn off floating point -support for one or more threads. Disabling floating point support might save a -microsecond or so, and is commonly done for the "fast" thread for software -encoder counting and step pulse or PWM generation. - -8. elimination of s8, u8, s16, u16 HAL types -The number of HAL types has been reduced. "newsig" commands which formerly used -one of those types should be converted to the corresponding 32-bit type, s32 or -u32. - -9. hal_ppmc uses ns units for setup-time, pulse-width, and pulse-space; pins - renamed -Instead of being specified in units of 100ns, these values (now named -setup-time-ns, etc) are in units of 1ns. - -10. the pin axis.N.index-pulse-in has been renamed to axis.N.index-enable -The name of the pin used for indexing (homing to index pulse) has been changed -to be more descriptive and to match the canonical encoder interface. - -11. the meaning of the 'comp.N.hyst' parameter has changed -In emc 2.0.x, the output of the comparator would not change until the difference -between the inputs exceeded the hysteresis parameter, giving an effective -hysteresis of double the parameter. Now, the output will change when the -difference exceeds hyst/2. This more closely matches the [usual definition of -hysteresis]. Existing users of the 'comp' block must change (double) the value -of the 'comp.N.hyst' parameter. - -12. the connection to the lathe's spindle encoder has changed -In the preliminary lathe threading support in 2.0 versions, a "not" block was -needed to connect the motion controller to the spindle encoder's index-enable -pin. This is no longer necessary (and will not work). diff --git a/docs/asciidoc-markup.txt b/docs/asciidoc-markup.txt deleted file mode 100644 index 8379172ff17..00000000000 --- a/docs/asciidoc-markup.txt +++ /dev/null @@ -1,141 +0,0 @@ -This document is a guide for using asciidoc markup - - -Master Document file Headers, first line replace en with two letter language code ---------------------------------------------------------------------------------- - -:lversion: {sys: cat ../VERSION} -Getting Started V{lversion}, {localdate} -================================= -:lang: en -:masterdir: {indir} -:leveloffset: 1 -The EMC Team - -The parameters are interpreted well before the load files lang-xx.conf and the other files .conf -It is particularly important for the parameters as :lang: - -The typical authorized attributes : doctype, lang, encoding, icons, data-uri, toc, numbered - -More information here -http://www.methods.co.nz/asciidoc/userguide.html#_introduction -8.2 Header - -Titles -====== -= Document Title (level 0) = Note: level 0 can only be once per file! -== Section title (level 1) == Note: trailing delimiter is optional. -=== Section title (level 2) === - -Links -===== -[[anchor]] -<> - -Example -[[sub:torpodeos]] - -<> - -only bombs will show in the text with an underline so always provide a caption for a link - - -Listing Block for G Code and terminal output -============================================ ----- < 4 dashes start of block -lines of code -... -more code ----- < 4 dashes end of block - < 1 blank line after - -Literal blocks -============== -.... < 4 periods start the block -literal block -will show up -just as you type it. -.... < 4 periods end the block - < 1 blank line after - -Lists -===== -* bullet -** bullet - -. numbered -.. numbered - -List Item Continuation -* List item paragaph one - continued with a single plus hard left. -+ -List item one continued - with a second paragraph - and first line of second paragraph must be hard left. - -HAL pins and parameters use the following format for consistency -* 'parport.

.pin--out' (bit) Drives a physical output pin. -bulleted list with the pin name emphasized by surrounding it with -single quotes. - -Images -====== -put all images in the images subdirectory - -image::[] - -example -image::images/axis.png[] -image::images/tiger.png["Tiger image",align="center"] - -If the image is small and displays too big in the pdf you can -use the scaledwidth="60%" attribute - -Inline Images -============= -Same as images except only one : is used and no attributes are used between -the [] - -My text has an image in it image:images/axisbutton.png[] - -Figures -======= -Use the following format for figures so any links to the anchor will move to -correct place. Only create a link to a figure if it is somewhere else and not -the next thing you see when scrolling down. Just say something like "in the -following figure..." - -[[fig:Parport-block-diag]] - -.Parport Block Diagram - -image::images/parport-block-diag.png[align="center"] - -Notes and Warnings -================== -Inline example -NOTE: This is an example note. - -Paragraph example -[NOTE] -This is an example note of the -paragraph style. - -Styles include -NOTE TIP IMPORTANT WARNING CAUTION - -Escaping a character -==================== -Normally characters like ' and * would not print unless you use \' or \* then -they will print as normal characters. - -Making a horizontal labeled list. -[horizontal] -Label:: The text about the label - -Latexmath is broken at the moment and trashes the HTML. A work around is to use open office math -to create the math image and gimp to screen capture and save to a png. - -check asciidoc cheatsheet http://powerman.name/doc/asciidoc or user manual -http://www.methods.co.nz/asciidoc/userguide.html for details about format. diff --git a/docs/html/.gitignore b/docs/html/.gitignore deleted file mode 100644 index 6895bf3694f..00000000000 --- a/docs/html/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -*.js -*.css -!linuxcnc.css -*.html -!gcode.html -!gcode_fr.html -*.xml -*.png -*.gif -man -code -common -config -gcode -gui -hal -install -motion -examples diff --git a/docs/html/gcode.html b/docs/html/gcode.html deleted file mode 100644 index 6fb3739935e..00000000000 --- a/docs/html/gcode.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - -LinuxCNC "G-Code" Quick Reference - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LinuxCNC "G-Code" Quick Reference
Code Parameters Description
Motion (X Y Z A B C U V W apply to all motions)
G0 Rapid motion
G1 Coordinated motion ("Straight feed")
G2, G3 I J K or R, P Coordinated helical motion ("Arc feed") CW or CCW
G4 P Dwell (no motion for P seconds)
G38.2…G38.5 Straight probe
G33 K Spindle-synchronized motion
G33.1 K Rigid tapping
G80 Cancel motion mode
Canned cycles (X Y Z or U V W apply to canned cycles, depending on active plane)
G81, G82 R L (P) Drilling cycle without (with) dwell
G83, G73 R L Q Peck and Chip-break drilling cycles
G85, G89 R L (P) Boring cycle without (with) dwell
G76 P Z I J R K Q H L E Multipass lathe threading cycle
Distance Mode
G90 Absolute distance mode
G91 Incremental distance mode
G90.1 Arc centers I,J,K are absolute
G91.1 Arc centers I,J,K are relative to the arc's starting point
G7 X Diameter mode (lathe)
G8 X Radius mode (lathe)
Feed Rate Mode
G93 Inverse time feed rate
G94 Units per minute feed rate
G95 Units per revolution
Spindle Control
M3, M4 S Turn spindle clockwise or counterclockwise
M5 Stop spindle
M19 Orient spindle
G96 S D CSS mode (Constant Surface Speed)
G97 RPM mode
Coolant
M7 Turn mist on
M8 Turn flood on
M9 Turn all coolant off
Tool Length Offset
G43 H Use tool length offset from tool table
G43.1 I K Use specified tool length offset for transient tool
G49 Cancel tool length offset
Stopping
M0 Program Pause
M1 Optional Pause
M2, M30 End Program
M60 Pallet Change Pause
Units
G20 Inches
G21 Millimeters
Plane Selection (affects G2, G3, G81…G89, G40…G42)
G17 Select XY plane
G18 Select XZ plane
G19 Select YZ plane
Cutter Radius Compensation
G40 Cancel cutter radius compensation
G41,G42 D Start cutter radius compensation left or right
G41.1, G42.1 D L Start cutter radius compensation left or right, transient tool
Path Control Mode
G61 Exact Path mode
G61.1 Exact Stop mode
G64 P Continuous mode with optional path tolerance
Return Mode in Canned Cycles
G98 Retract to prior position
G99 Retract to R position
Other Modal Codes
F Set Feed Rate
S Set Spindle Speed
T Select Tool (also see M6)
M48, M49 Speed and Feed Override Control
M50 P0 (off) or P1 (on) Feed Override Control
M51 P0 (off) or P1 (on) Spindle Speed Override Control
M52 P0 (off) or P1 (on) Adaptive Feed Control
M53 P0 (off) or P1 (on) Feed Stop Control
G54…G59.3 Select coordinate system
Flow-control Codes
O- sub Subroutines, sub/endsub call
O- while Looping, while/endwhile do/while
O- if Conditional, if/else/endif
O- repeat Run enclosed code more than once
M70 Save modal state
M71 Invalidate stored state
M72 Restore modal state
M73 Save and Auto-restore modal state
Input/Output Codes
M62…M65 P Digital Output Control
M66 P E L Q Digital and Analog Input Control
M67 T Analog Output Synchronized with Motion
M68 T Analog Output Immediate
Non-modal Codes
M6 T Change tool
M61 Q Set Current Tool
G4 P Dwell (seconds)
G10 L1 P Q R axes Tool offset, radius, orientation setting
G10 L10 P axes Tool offset, setting calculated from workpiece
G10 L11 P axes Tool offset, setting calculated from fixture
G10 L2 P R axes Coordinate system origin, rotation setting
G10 L20 P axes Coordinate system origin setting calculated
G28, G28.1 Return to or Set reference point 1
G30, G30.1 Return to or Set reference point 2
G53 Motion in machine coordinate system
G92 axes Offset coordinate systems and set parameters
G92.1 Cancel offset coordinate systems and set parameters to zero
G92.2 Cancel offset coordinate systems but do not reset parameters
G92.3 Apply parameters to offset coordinate systems
M101…M199 P Q User-defined M-codes
Comments & Messages
(…) An inline comment
(MSG,…) Display a message "" to the user (e.g., in a popup)
(DEBUG,…) Display a message (with variables substituted) like MSG
(PRINT,…) Display a message (with variables substituted) to stderr
- - diff --git a/docs/html/gcode_fr.html b/docs/html/gcode_fr.html deleted file mode 100644 index 20abf74559a..00000000000 --- a/docs/html/gcode_fr.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - -Aide mémoire du "G-Code" de LinuxCNC - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Aide mémoire du "G-Code" de LinuxCNC
Codes Paramètres Description
Mouvements (X Y Z A B C U V W s'appliquent à tous les mouvements)
G0 Interpolation linéaire en vitesse rapide
G1 Interpolation linéaire en vitesse programmée
G2, G3 I J K ou R, P Interpolation circulaire ("ou hélicoïdale") sens horaire, sens anti-horaire
G38.2…G38.5 Mesure au palpeur
G80 Révocation des codes modaux
G81 R L P Cycle de perçage
G73,G82…G89 R L P Q Autres cycles préprogrammés
G33 K Filetage avec broche synchronisée
G33.1 K Taraudage rigide
G76 P Z I J R K Q H L E Cycle de filetage préprogrammé (tour)
Types de déplacements
G90 Déplacements en coordonnées absolues (par rapport à l'origine)
G91 Déplacements en coordonnées relatives (incrémentales)
G90.1 Arc centers I,J,K are absolute
G91.1 Arc centers I,J,K are relative to the arc's starting point
G7 X en mode diamètre (tour)
G8 X en mode rayon (tour)
Modes de vitesses
G93 Vitesse inverse du temps (vitesse/distance)
G94 Vitesse en unités par minute
G95 Vitesse en unités par tour
Contrôle de broche
M3, M4 S Marche broche sens horaire, sens anti-horaire
M5 Arrêt de la broche
M19 Orientation de la broche
G96 D S Vitesse de coupe constante (pieds par minute ou mètres par minute)
G97 Vitesse en tours par minute
Arrosages
M7 Marche gouttelettes
M8 Marche arrosage
M9 Arrêt des arrosages
Correcteurs de longueur d'outil
G43 H Compensation de longueur d'outil depuis une table d'outils
G43.1 I K Compensation dynamique de longueur d'outil
G49 Révocation de la compensation de longueur d'outil
Arrêts de programme
M0 Pause dans le programme
M1 Pause optionnelle dans le programme
M2, M30 Fin de programme
M60 Pause pour changement de pièce
Unités machine
G20 Unité machine: Pouce
G21 Unité machine: Millimètre
Choix du plan de travail (affecte G2, G3, G81…G89, G40…G42)
G17 Plan de travail XY
G18 Plan de travail XZ
G19 Plan de travail YZ
Compensation de rayon d'outil
G41, G42 D Compensation de rayon d'outil, à gauche ou à droite du profil
G41.1, G42.1 D L Compensation dynamique de rayon d'outil, à gauche ou à droite du profil
G40 Révocation de la compensation de rayon d'outil
Types de contrôle des trajectoires
G61 Mode trajectoire exacte
G61.1 Mode arrêt exact
G64 P Mode trajectoire continue avec tolérance optionnelle
Options de retrait des cycles de perçage
G98 Retrait au point initial
G99 Retrait sur R
Autres codes modaux
F Réglage vitesse travail
S Réglage vitesse broche
T Choix de l'outil
M48, M49 Contrôle des correcteurs de vitesse
M50 P0 (sans) ou P1 (avec) Correcteur de vitesse travail
M51 P0 (sans) ou P1 (avec) Correcteur de vitesse broche
M52 P0 (sans) ou P1 (avec) Contrôle de vitesse adaptative
M53 P0 (sans) ou P1 (avec) Contrôle de la coupure de vitesse
G54…G59, G59.1…G59.3 Choix du système de coordonnées (1 à 9)
Instructions de contrôle
O … sub/endsub, while/endwhile, if/else/endif, do/while, call, break/continue/return
Contrôle de flux
O- sub Sous-programmes, sub/endsub call
O- while Boucles, while/endwhile do/while
O- if Conditionnels, if/else/endif
O- repeat Répète n fois l'exécution de blocs de code
M70 Enregistre l'état modal
M71 Invalide l'état modal enregistré
M72 Restaure l'état modal enregistré
M73 Enregistre et auto-restaure l'état modal
Codes d'entrée/sortie
M62…M65 P Contrôle de sortie numérique
M66 P E L Q Contrôle d'entrée numérique et analogique
M67 T Sortie analogique synchronisée au mouvement
M68 T Sortie analogique directe
Codes non modaux
M6 T Appel d'outil
M61 Q Fixe le numéro de l'outil courant
G4 P Temporisation (secondes)
G10 L1 P Q R X W Z Entrée longueur, rayon, orientation de l'outil dans la table d'outils
G10 L10 P axes Modifie les offsets d'outil dans la table d'outils, selon les coordonnées pièce
G10 L11 P axes Modifie les offsets d'outil dans la table d'outils, selon les coordonnées du porte-pièce
G10 L2 P X Y Z A B C Établissement de l'origine d'un systéme de coordonnées (1 à 9)
G10 L20 P axes Place le système de coordonnées courant à des valeurs calculées
G28, G28.1 Aller à une position prédéfinie, enregistrement du point courant
G30, G30.1 Aller à une position prédéfinie, enregistrement du point courant
G53 Déplacements en coordonnées machine
G92 X Y Z A B C Décalages d'origines avec mise à jour des paramétres
G92.1 Révocation des décalages d'origine avec remise à zéro des paramètres
G92.2 Révocation des décalages d'origine sans remise à zero des paramètres
G92.3 Applique le contenu des paramétres aux décalages d'origine
M101…M199 P Q M-codes définis par l'opérateur
Commentaires et messages
(…) Un commentaire "" pour l'opérateur
(MSG,…) Affiche le message "" pour l'opérateur (ex: dans une fenêtre)
(DEBUG,…#123…#<foo>) Affiche le message (avec substitution de variables) comme MSG
(PRINT,…#123…#<foo>) Affiche le message (avec substitution de variables) dans stderr
- - - diff --git a/docs/html/linuxcnc.css b/docs/html/linuxcnc.css deleted file mode 100644 index b658055765f..00000000000 --- a/docs/html/linuxcnc.css +++ /dev/null @@ -1,37 +0,0 @@ -:target { background: #DEF !important; } -tt { font-family: monospace !important; } -pre { font-family: monospace !important; } -h1, h2 { background: #c0c0f0; } -h1, h2, h3, h4, h5 { border-bottom: 2px solid #8080c0; color: black; } -div.nav { float: right; background: #ffffff; } -dt { font-weight: bold; } -pre { margin-left: 4ex; auto; color: black; padding: 1ex; } -div.float { text-align: center; margin: 2ex; padding: 1ex; } -div.float span.caption { display: block; margin: 1em; } -.typewriter { font-family: monospace; } -table { border-collapse: collapse; margin-left: auto; margin-right: auto; } -.alignment_center { text-align: center; } -.topline { border-top: 1px solid black; } -.bottomline { border-bottom: 1px solid black; } -.leftline { border-left: 1px solid black; } -.rightline { border-right: 1px solid black; } -.v_top { vertical-align: baseline; } -.a_center { text-align: center; } -.a_left { text-align: left; } -.a_right { text-align: right; } -.block { display: block } -.blockformula { display: block; text-align: center } -.f_typewriter { font-family: monospace; } -.noun { font-variant: small-caps; } -.s_bold { font-weight: bold; } -.clist { -moz-column-width: 40ex; -moz-column-gap: 4ex } -.nclist { -moz-column-width: 20ex; -moz-column-gap: 4ex } - .nclist li { list-style-type: none; text-indent: -.5ex; } -.toc li { list-style-type: none; } -.toc li a { display: block; border: 1px solid transparent; text-indent: -1ex; } - -/* AsciiDoc stuff */ -div.note { - padding-left: 0.5em; - border-left: 3px solid #c0c0f0; -} diff --git a/docs/man/.gitignore b/docs/man/.gitignore deleted file mode 100644 index f9b7a518f91..00000000000 --- a/docs/man/.gitignore +++ /dev/null @@ -1,123 +0,0 @@ -index.db -*.png - -CACHEDIR.TAG -cat1/ -cat3/ -cat9/ - -man1/linuxcnc.1 - -man9/abs.9 -man9/abs_s32.9 -man9/and2.9 -man9/bin2gray.9 -man9/biquad.9 -man9/bitslice.9 -man9/bitwise.9 -man9/bldc.9 -man9/bldc_hall3.9 -man9/bldc_sine.9 -man9/blend.9 -man9/charge_pump.9 -man9/clarke2.9 -man9/clarke3.9 -man9/clarkeinv.9 -man9/comp.9 -man9/constant.9 -man9/conv_bit_float.9 -man9/conv_bit_s32.9 -man9/conv_bit_s8.9 -man9/conv_bit_u32.9 -man9/conv_bit_u8.9 -man9/conv_float_bit.9 -man9/conv_float_s32.9 -man9/conv_float_s8.9 -man9/conv_float_u32.9 -man9/conv_float_u8.9 -man9/conv_s32_bit.9 -man9/conv_s32_float.9 -man9/conv_s32_s8.9 -man9/conv_s32_u32.9 -man9/conv_s32_u8.9 -man9/conv_s8_bit.9 -man9/conv_s8_float.9 -man9/conv_s8_s32.9 -man9/conv_s8_u32.9 -man9/conv_s8_u8.9 -man9/conv_u32_bit.9 -man9/conv_u32_float.9 -man9/conv_u32_s32.9 -man9/conv_u32_s8.9 -man9/conv_u32_u8.9 -man9/conv_u8_bit.9 -man9/conv_u8_float.9 -man9/conv_u8_s32.9 -man9/conv_u8_s8.9 -man9/conv_u8_u32.9 -man9/ddt.9 -man9/deadzone.9 -man9/edge.9 -man9/estop_latch.9 -man9/feedcomp.9 -man9/flipflop.9 -man9/gearchange.9 -man9/gray2bin.9 -man9/hypot.9 -man9/ilowpass.9 -man9/integ.9 -man9/invert.9 -man9/joyhandle.9 -man9/knob2float.9 -man9/latencybins.9 -man9/limit1.9 -man9/limit2.9 -man9/limit3.9 -man9/lincurve.9 -man9/logic.9 -man9/lowpass.9 -man9/lut5.9 -man9/maj3.9 -man9/match8.9 -man9/mesa_7i65.9 -man9/mesa_uart.9 -man9/message.9 -man9/minmax.9 -man9/mult2.9 -man9/multiclick.9 -man9/multiswitch.9 -man9/mux16.9 -man9/mux2.9 -man9/mux4.9 -man9/mux8.9 -man9/near.9 -man9/not.9 -man9/offset.9 -man9/oneshot.9 -man9/or2.9 -man9/orient.9 -man9/pcl720.9 -man9/pluto_servo.9 -man9/pluto_step.9 -man9/sample_hold.9 -man9/scale.9 -man9/select8.9 -man9/serport.9 -man9/sim_spindle.9 -man9/sphereprobe.9 -man9/steptest.9 -man9/sum2.9 -man9/thc.9 -man9/thcud.9 -man9/threadtest.9 -man9/time.9 -man9/timedelay.9 -man9/timedelta.9 -man9/toggle2nist.9 -man9/toggle.9 -man9/tristate_bit.9 -man9/tristate_float.9 -man9/updown.9 -man9/wcomp.9 -man9/xhc_hb04_util.9 -man9/xor2.9 diff --git a/docs/rtfaults.txt b/docs/rtfaults.txt deleted file mode 100644 index e58bde4d039..00000000000 --- a/docs/rtfaults.txt +++ /dev/null @@ -1,43 +0,0 @@ -Finding line number information for faults in realtime components - -1. Get a version of LinuxCNC which prints the faulting instruction address - (that includes this version of LinuxCNC) - -2. Include debugging info in your modules. For built-in modules, - below the definition of EXTRA_CFLAGS in Makefile, add - EXTRA_CFLAGS += -g - For standalone modules, add the same line just above the line - ifeq ($(BUILDSYS),kbuild) - and (re)build the component - -3. Run hal until the fault occurs. DO NOT EXIT THE HAL SESSION YET. You - must find the start of the module (step 5) first. - -4. Note the ip (instruction pointer) address in dmesg. e.g.: - RTAPI: Task 1[c2800000]: Fault with vec=14, signo=11 ip=c93dc01a. - ^^^^^^^^ -5. Find the module which contains the offending IP. - $cat /proc/modules - motmod 142230 0 - Live 0xc93df000 - fault 1626 1 motmod, Live 0xc93dc000 - hal_lib 30517 2 motmod,fault, Live 0xc93d5000 - - Now you can exit hal/emc2. - -6. Subtract the start of the module from the faulting ip (in this case, 0x1a) - Among other ways to do this, you can use the shell: - $ printf "0x%x\n" $((0xc93dc01a-0xc93dc000)) - 0x1a - -7. Use addr2line to find out the source code line: - $ addr2line -e emc2-dev/src/fault.ko 0x1a - /usr/src/linux-headers-2.6.32-122-rtai/hal/components/fault.comp:9 - Ignore how the directory name is wrong and see whether this has helped you - localize the problem: - fault.comp:9 *(int*)0 = 0; - Yup! Looks like it has. - - Note that even if you do not prefix the address argument to addr2line - with 0x, it is taken to be a hex number, and you'll get the wrong - line-number information. Take care to always use hex addresses with - addr2line. diff --git a/docs/src/.gitignore b/docs/src/.gitignore deleted file mode 100644 index 579a210485a..00000000000 --- a/docs/src/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.tex -*.xml -!docs.xml -!terms.xml diff --git a/docs/src/Makefile b/docs/src/Makefile deleted file mode 100644 index 5150e17054a..00000000000 --- a/docs/src/Makefile +++ /dev/null @@ -1,72 +0,0 @@ -DOCS_EN := $(patsubst %.txt,%,$(wildcard *.txt */*.txt)) -DOCS_ES := $(patsubst %.txt,%,$(wildcard *_es.txt */*_es.txt)) -DOCS_FR := $(patsubst %.txt,%,$(wildcard *_fr.txt */*_fr.txt)) -LARGE_EN := $(patsubst %.txt,%,$(wildcard *.txt)) -LARGE_ES := $(patsubst %.txt,%,$(wildcard *_es.txt)) -LARGE_FR := $(patsubst %.txt,%,$(wildcard *_fr.txt)) -DOCS_EN := $(filter-out $(DOCS_ES), (filter-out $(DOCS_FR), $(DOCS_EN)) ) -SMALL := $(filter-out $(LARGE_EN),$(DOCS_EN)) -DOCS := $(DOCS_EN) $(DOCS_ES) $(DOCS_FR) -LARGE := $(LARGE_EN) $(LARGE_ES) $(LARGE_FR) - -#include $(patsubst %,%.dep,$(LARGE)) - -A2X = ./a2x --xsltproc-opts "--stringparam toc.section.depth 3 \ - --stringparam toc.max.depth 2 \ - --stringparam generate.section.toc.level 2 \ - --stringparam generate.toc 'book toc,title chapter toc'" \ - --asciidoc-opts "-f docbook.conf" \ - --dblatex-opts "-P doc.publisher.show=0 -P latex.output.revhistory=0 -s ./emc2.sty" - -all: - $(MAKE) -C ../../src docs - -docs htmldocs pdfdocs: - $(MAKE) -C ../../src $@ - -docclean clean: - $(MAKE) -C ../../src docclean - -pdf: $(patsubst %,%.pdf,$(LARGE)) -html: xref_en.links $(patsubst %,%.html,$(DOCS)) -htmlclean: - -rm -f $(patsubst %,%.html,$(DOCS)) -dbclean: - -rm -f $(patsubst %,%.dep,$(DOCS)) - -rm -f $(patsubst %,%.db,$(SMALL)) - -rm -f xref_en.links - -xref_en.links: $(patsubst %,%.db,$(SMALL)) - echo $(SMALL) - ./links_db_gen.py $^ > $@ - -%.db: %.txt - asciidoc -d book -o- -b docbook $< | xsltproc links.xslt - > $@ || (X=$$?; rm $@; exit $$X) - -%.dep: %.txt - ./asciideps $< > $@.tmp - mv $@.tmp $@ - -%.html: %.txt - asciidoc -a linksfile=xref_en.links -a stylesheet=$(shell pwd)/linuxcnc.css -f xhtml11.conf -d book -a toc -a numbered -b xhtml11 $< || (X=$$?; rm $@; exit $$X) - -#$(patsubst %,%.html,$(DOCS_ES)) :: %.html: %.txt -# asciidoc -a stylesheet=$(shell pwd)/linuxcnc.css -f xhtml11.conf -d book -a toc -a numbered -b xhtml11 $< || (X=$$?; rm $@; exit $$X) - -#$(patsubst %,%.html,$(DOCS_FR)) :: %.html: %.txt -# asciidoc -a stylesheet=$(shell pwd)/linuxcnc.css -f xhtml11.conf -d book -a toc -a numbered -b xhtml11 $< || (X=$$?; rm $@; exit $$X) - -%.pdf: %.txt - $(A2X) -L -d book -vf pdf $< || (X=$$?; rm $@; exit $$X) - -$(patsubst %,%.html,$(LARGE)) :: %.html: %.txt - $(A2X) --stylesheet=./linuxcnc.css -L -d book -vf xhtml $< || (X=$$?; rm $@; exit $$X) - -#$(patsubst %,%.html,$(LARGE_ES)) :: %.html: %.txt -# $(A2X) --stylesheet=../linuxcnc.css -L -d book -vf xhtml $< || (X=$$?; rm $@; exit $$X) - -#$(patsubst %,%.html,$(LARGE_FR)) :: %.html: %.txt -# $(A2X) --stylesheet=../linuxcnc.css -L -d book -vf xhtml $< || (X=$$?; rm $@; exit $$X) - -.PHONY: all docs htmldocs pdfdocs docclean clean - diff --git a/docs/src/Master_Developer.txt b/docs/src/Master_Developer.txt deleted file mode 100644 index a1db0575c1b..00000000000 --- a/docs/src/Master_Developer.txt +++ /dev/null @@ -1,31 +0,0 @@ -:lversion: {sys: cat ../VERSION} -Developer Manual V{lversion}, {localdate} -========================================= - -:lang: en -:masterdir: {indir} - - -== Introduction - -image::common/images/emc2-intro.*[] - -include::common/overleaf.txt[] - - -:leveloffset: 1 - -include::code/Code_Notes.txt[] - -include::code/NML_Messages.txt[] - -include::code/Style_Guide.txt[] - -include::code/Contributing-to-LinuxCNC.txt[] - -include::common/Glossary.txt[] - -include::common/GPLD_Copyright.txt[] - -// vim: set syntax=asciidoc: - diff --git a/docs/src/Master_Getting_Started.txt b/docs/src/Master_Getting_Started.txt deleted file mode 100644 index 674fd0a8834..00000000000 --- a/docs/src/Master_Getting_Started.txt +++ /dev/null @@ -1,45 +0,0 @@ -:lversion: {sys: cat ../VERSION} -Getting Started V{lversion}, {localdate} -======================================== - -:lang: en - -:masterdir: {indir} - -The LinuxCNC Team - -:leveloffset: 1 - -image::common/images/emc2-intro.*[] - -include::common/overleaf.txt[] - -:leveloffset: 0 - -= Getting Started - -:leveloffset: 1 - -include::common/System_Requirements.txt[] - -include::common/Getting_LinuxCNC.txt[] - -include::common/Updating_LinuxCNC.txt[] - -include::quickstart/stepper_quickstart.txt[] - -include::config/stepconf.txt[] - -include::config/pncconf.txt[] - -include::config/copy_and_run.txt[] - -include::common/Linux_FAQ.txt[] - -include::common/GPLD_Copyright.txt[] - -// = Index - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/Master_Getting_Started_es.txt b/docs/src/Master_Getting_Started_es.txt deleted file mode 100644 index 6dedacbd3fa..00000000000 --- a/docs/src/Master_Getting_Started_es.txt +++ /dev/null @@ -1,41 +0,0 @@ -:lversion: {sys: cat ../VERSION} -Primeros pasos V{lversion}, {localdate} -======================================= - -:lang: es - -:ascii-ids: - -:masterdir: {indir} - -The LinuxCNC Team - -:leveloffset: 1 - -image::common/images/emc2-intro.*[] - -include::common/overleaf.txt[] - -include::common/System_Requirements_es.txt[] - -include::common/Getting_EMC_es.txt[] - -include::common/Updating_EMC_es.txt[] - -include::quickstart/stepper_quickstart_es.txt[] - -include::config/stepconf_es.txt[] - -include::config/pncconf.txt[] - -include::config/copy_and_run_es.txt[] - -include::common/Linux_FAQ_es.txt[] - -include::common/GPLD_Copyright.txt[] - -// = Index - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/Master_Getting_Started_fr.txt b/docs/src/Master_Getting_Started_fr.txt deleted file mode 100644 index 6405dd5ed43..00000000000 --- a/docs/src/Master_Getting_Started_fr.txt +++ /dev/null @@ -1,27 +0,0 @@ -:lang: fr -:ascii-ids: -:toc: -:localdate: {sys: date +%d/%m/%Y} -:lversion: {sys: cat ../VERSION} -Guide de démarrage V{lversion}, {localdate} -=========================================== -:masterdir: {indir} -:leveloffset: 1 - -image::common/images/emc2-intro.*[] - -The LinuxCNC Team - -include::common/overleaf_fr.txt[] - -include::common/outdated-notice_fr.txt[] -include::common/System_Requirements_fr.txt[] -include::common/Getting_linuxcnc_fr.txt[] -include::common/Updating_linuxcnc_fr.txt[] -include::quickstart/stepper_quickstart_fr.txt[] -include::config/stepconf_fr.txt[] -include::config/pncconf_fr.txt[] -include::common/Linux_FAQ_fr.txt[] -include::common/GPLD_Copyright_fr.txt[] -// Index -// vim: set syntax=asciidoc: diff --git a/docs/src/Master_HAL.txt b/docs/src/Master_HAL.txt deleted file mode 100644 index ca11ca75b38..00000000000 --- a/docs/src/Master_HAL.txt +++ /dev/null @@ -1,81 +0,0 @@ -:lversion: {sys: cat ../VERSION} -HAL Manual V{lversion}, {localdate} -=================================== - -:lang: en - -:masterdir: {indir} - -The LinuxCNC Team - -:leveloffset: 1 - -image::common/images/emc2-intro.*[] - -include::common/overleaf.txt[] - -:leveloffset: 0 - -= Hardware Abstract Layer - -:leveloffset: 1 - -include::hal/intro.txt[] - -include::hal/tutorial.txt[] - -include::hal/general_ref.txt[] - -include::hal/canonical-devices.txt[] - -include::hal/tools.txt[] - -include::hal/basic_hal.txt[] - -include::hal/halshow.txt[] - -include::hal/components.txt[] - -include::hal/rtcomps.txt[] - -include::hal/parallel_port.txt[] - -include::hal/hal-examples.txt[] - -include::hal/comp.txt[] - -include::hal/halmodule.txt[] - -:leveloffset: 0 - -= Hardware Drivers - -:leveloffset: 1 - -include::drivers/AX5214H.txt[] - -include::drivers/GS2.txt[] - -include::drivers/VFS11.txt[] - -include::drivers/hostmot2.txt[] - -include::drivers/motenc.txt[] - -include::drivers/opto22.txt[] - -include::drivers/pico_ppmc.txt[] - -include::drivers/pluto_p.txt[] - -include::drivers/servo_to_go.txt[] - -include::drivers/GM.txt[] - -include::common/GPLD_Copyright.txt[] - -// = Index - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/Master_HAL_es.txt b/docs/src/Master_HAL_es.txt deleted file mode 100644 index 4dadf180dd1..00000000000 --- a/docs/src/Master_HAL_es.txt +++ /dev/null @@ -1,79 +0,0 @@ -:lversion: {sys: cat ../VERSION} -Manual de HAL V{lversion}, {localdate} -====================================== - -:lang: es - -:masterdir: {indir} - -The LinuxCNC Team - -:leveloffset: 1 - -image::common/images/emc2-intro.*[] - -include::common/overleaf.txt[] - -include::common/translator-needed_es.txt[] - -:leveloffset: 0 -= HAL -:leveloffset: 1 - -include::hal/intro.txt[] - -include::hal/tutorial.txt[] - -include::hal/general_ref.txt[] - -include::hal/canonical-devices.txt[] - -include::hal/tools.txt[] - -include::hal/basic_hal.txt[] - -include::hal/halshow.txt[] - -include::hal/components.txt[] - -include::hal/rtcomps.txt[] - -include::hal/parallel_port.txt[] - -include::hal/hal-examples.txt[] - -include::gui/halui.txt[] - -include::hal/halui_examples.txt[] - -include::hal/comp.txt[] - -include::hal/halmodule.txt[] - -:leveloffset: 0 -= Hardware Drivers -:leveloffset: 1 - -include::drivers/AX5214H.txt[] - -include::drivers/GS2.txt[] - -include::drivers/hostmot2.txt[] - -include::drivers/motenc.txt[] - -include::drivers/opto22.txt[] - -include::drivers/pico_ppmc.txt[] - -include::drivers/pluto_p.txt[] - -include::drivers/servo_to_go.txt[] - -include::common/GPLD_Copyright.txt[] - -// = Index - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/Master_HAL_fr.txt b/docs/src/Master_HAL_fr.txt deleted file mode 100644 index 24334f3c430..00000000000 --- a/docs/src/Master_HAL_fr.txt +++ /dev/null @@ -1,37 +0,0 @@ -:lang: fr -:toc: -:localdate: {sys: date +%d/%m/%Y} -:ascii-ids: -:lversion: {sys: cat ../VERSION} -Manuel de HAL V{lversion}; {localdate} -====================================== -:masterdir: {indir} -:leveloffset: 1 - -image::common/images/emc2-intro.*[] - -The LinuxCNC Team - -include::common/overleaf_fr.txt[] - -include::common/outdated-notice_fr.txt[] -:leveloffset: 0 -= HAL -:leveloffset: 1 -include::hal/intro_fr.txt[] -include::hal/general_ref_fr.txt[] -include::hal/basic_hal_fr.txt[] -include::hal/tutorial_fr.txt[] -include::hal/halshow_fr.txt[] -include::hal/components_fr.txt[] -include::hal/rtcomps_fr.txt[] -include::hal/hal-examples_fr.txt[] -include::hal/halui_fr.txt[] -include::hal/comp_fr.txt[] -include::hal/halmodule_fr.txt[] - -// = Index - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/Master_Integrator.txt b/docs/src/Master_Integrator.txt deleted file mode 100644 index 6adbdfe586e..00000000000 --- a/docs/src/Master_Integrator.txt +++ /dev/null @@ -1,151 +0,0 @@ -:lversion: {sys: cat ../VERSION} -Integrator Manual V{lversion}, {localdate} -========================================== - -:lang: en - -:masterdir: {indir} - -The LinuxCNC Team - -:leveloffset: 0 - -= LinuxCNC Introduction - -:leveloffset: 1 - -image::common/images/emc2-intro.*[] - -include::common/overleaf.txt[] - -include::common/Integrator_Concepts.txt[] - -:leveloffset: 0 - -= Configuration - -:leveloffset: 1 - -include::install/Latency_Test.txt[] - -include::common/starting-emc.txt[] - -include::config/ini_config.txt[] - -include::config/ini_homing.txt[] - -include::config/lathe_config.txt[] - -include::hal/haltcl.txt[] - -include::config/emc2hal.txt[] - -include::config/stepper.txt[] - -include::hal/basic_hal.txt[] - -include::remap/structure.txt[] - -:leveloffset: 0 - -= GUI - -:leveloffset: 1 - -include::hal/pyvcp.txt[] - -include::hal/pyvcp_examples.txt[] - -include::gui/gladevcp.txt[] - -include::gui/halui.txt[] - -include::hal/halui_examples.txt[] - -:leveloffset: 0 - -= Hardware Drivers - -:leveloffset: 1 - -include::hal/parallel_port.txt[] - -include::drivers/AX5214H.txt[] - -include::drivers/GS2.txt[] - -include::drivers/hostmot2.txt[] - -include::drivers/motenc.txt[] - -include::drivers/opto22.txt[] - -include::drivers/pico_ppmc.txt[] - -include::drivers/pluto_p.txt[] - -include::drivers/servo_to_go.txt[] - -include::drivers/shuttlexpress.txt[] - -include::drivers/GM.txt[] - -:leveloffset: 0 - -= Advanced Topics - -:leveloffset: 1 - -include::common/python-interface.txt[] - -include::motion/kinematics.txt[] - -include::motion/tweaking_steppers.txt[] - -include::motion/pid_theory.txt[] - -:leveloffset: 0 - -= Ladder Logic - -:leveloffset: 1 - -include::ladder/ladder_intro.txt[] - -include::ladder/classic_ladder.txt[] - -include::ladder/ladder_examples.txt[] - -:leveloffset: 0 - -= Hardware Examples - -:leveloffset: 1 - -include::examples/pci_parallel_port.txt[] - -include::examples/spindle.txt[] - -include::examples/mpg.txt[] - -include::examples/gs2_example.txt[] - -:leveloffset: 0 - -= Diagnostics & FAQ - -:leveloffset: 1 - -include::common/Stepper_Diagnostics.txt[] - -include::common/Linux_FAQ.txt[] - -include::common/Glossary.txt[] - -include::common/GPLD_Copyright.txt[] - -// = Index - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/Master_Integrator_es.txt b/docs/src/Master_Integrator_es.txt deleted file mode 100644 index 70554924b8e..00000000000 --- a/docs/src/Master_Integrator_es.txt +++ /dev/null @@ -1,143 +0,0 @@ -:lversion: {sys: cat ../VERSION} -Manual Integrador V{lversion}, {localdate} -========================================== - -:lang: es - -:masterdir: {indir} - -The LinuxCNC Team - -:leveloffset: 0 - -= LinuxCNC Introduction - -:leveloffset: 1 - -image::common/images/emc2-intro.*[] - -include::common/overleaf.txt[] - -include::common/translator-needed_es.txt[] - -include::common/Integrator_Concepts.txt[] - -:leveloffset: 0 - -= Configuration - -:leveloffset: 1 - -include::install/Latency_Test.txt[] - -include::config/ini_config.txt[] - -include::config/ini_homing.txt[] - -include::config/lathe_config.txt[] - -include::hal/haltcl.txt[] - -include::config/emc2hal.txt[] - -include::config/stepper.txt[] - -:leveloffset: 0 - -= GUI - -:leveloffset: 1 - -include::hal/pyvcp.txt[] - -include::hal/pyvcp_examples.txt[] - -include::gui/gladevcp.txt[] - -include::gui/halui.txt[] - -:leveloffset: 0 - -= Hardware Drivers - -:leveloffset: 1 - -include::hal/parallel_port.txt[] - -include::drivers/AX5214H.txt[] - -include::drivers/GS2.txt[] - -include::drivers/hostmot2.txt[] - -include::drivers/motenc.txt[] - -include::drivers/opto22.txt[] - -include::drivers/pico_ppmc.txt[] - -include::drivers/pluto_p.txt[] - -include::drivers/servo_to_go.txt[] - -include::drivers/shuttlexpress.txt[] - -:leveloffset: 0 - -= Advanced Topics - -:leveloffset: 1 - -include::common/python-interface.txt[] - -include::motion/kinematics.txt[] - -include::motion/tweaking_steppers.txt[] - -include::motion/pid_theory.txt[] - -:leveloffset: 0 - -= Ladder Logic - -:leveloffset: 1 - -include::ladder/ladder_intro.txt[] - -include::ladder/classic_ladder.txt[] - -include::ladder/ladder_examples.txt[] - -:leveloffset: 0 - -= Hardware Examples - -:leveloffset: 1 - -include::examples/pci_parallel_port.txt[] - -include::examples/spindle.txt[] - -include::examples/mpg.txt[] - -include::examples/gs2_example.txt[] - -:leveloffset: 0 - -= Diagnostics & FAQ - -:leveloffset: 1 - -include::common/Stepper_Diagnostics.txt[] - -include::common/Linux_FAQ.txt[] - -include::common/Glossary.txt[] - -include::common/GPLD_Copyright.txt[] - -// = Index - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/Master_Integrator_fr.txt b/docs/src/Master_Integrator_fr.txt deleted file mode 100644 index c23b30ea18e..00000000000 --- a/docs/src/Master_Integrator_fr.txt +++ /dev/null @@ -1,68 +0,0 @@ -:lang: fr -:toc: -:localdate: {sys: date +%d/%m/%Y} -:ascii-ids: -:lversion: {sys: cat ../VERSION} -Manuel de l'intégrateur V{lversion}, {localdate} -================================================ -:masterdir: {indir} -:leveloffset: 1 - -image::common/images/emc2-intro.png[] - -The LinuxCNC Team - -include::common/overleaf_fr.txt[] - -include::common/outdated-notice_fr.txt[] -include::common/Integrator_Concepts_fr.txt[] -:leveloffset: 0 -= Configuration de LinuxCNC -:leveloffset: 1 -include::install/Latency_Test_fr.txt[] -include::config/ini_config_fr.txt[] -include::config/ini_homing_fr.txt[] -include::config/lathe_config_fr.txt[] -include::hal/haltcl_fr.txt[] -include::config/linuxcnc2hal_fr.txt[] -include::config/stepper_fr.txt[] -:leveloffset: 0 -= Interfaces graphiques utilisateur -:leveloffset: 1 -include::hal/pyvcp_fr.txt[] -include::hal/pyvcp_examples_fr.txt[] -include::gui/gladevcp_fr.txt[] -:leveloffset: 0 - -= Notions avancées -:leveloffset: 1 -include::common/python-interface.txt[] -include::motion/kinematics_fr.txt[] -include::motion/tweaking_steppers_fr.txt[] -include::motion/pid_theory_fr.txt[] -:leveloffset: 0 -= La logique Ladder -:leveloffset: 1 -include::ladder/ladder_intro_fr.txt[] -include::ladder/classic_ladder_fr.txt[] -include::ladder/ladder_examples_fr.txt[] -:leveloffset: 0 -= Exemples d'utilisation -:leveloffset: 1 -include::examples/pci_parallel_port_fr.txt[] -include::examples/spindle_fr.txt[] -include::examples/mpg_fr.txt[] -include::examples/gs2_example_fr.txt[] -:leveloffset: 0 -= Diagnostics & FAQ -:leveloffset: 1 -include::common/Stepper_Diagnostics_fr.txt[] -include::common/Linux_FAQ_fr.txt[] -include::common/Glossary_fr.txt[] -include::common/GPLD_Copyright.txt[] - -// = Index - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/Master_User.txt b/docs/src/Master_User.txt deleted file mode 100644 index a0919571aee..00000000000 --- a/docs/src/Master_User.txt +++ /dev/null @@ -1,85 +0,0 @@ -:lversion: {sys: cat ../VERSION} -User Manual V{lversion}, {localdate} -==================================== - -:lang: en - -:masterdir: {indir} - -The LinuxCNC Team - -:leveloffset: 0 - -= LinuxCNC Introduction - -:leveloffset: 1 - -image::common/images/emc2-intro.*[] - -include::common/overleaf.txt[] - -include::common/userforeword.txt[] - -include::common/user_intro.txt[] - -include::common/User_Concepts.txt[] - -:leveloffset: 0 - -= User Interfaces - -:leveloffset: 1 - -include::gui/selector.txt[] - -include::gui/axis.txt[] - -include::gui/ngcgui.txt[] - -include::gui/touchy.txt[] - -include::gui/tklinuxcnc.txt[] - -include::gui/mini.txt[] - -include::gui/keystick.txt[] - -:leveloffset: 0 - -= Using LinuxCNC - -:leveloffset: 1 - -include::gcode/machining_center.txt[] - -include::gcode/coordinates.txt[] - -include::gcode/tool_compensation.txt[] - -include::gcode/overview.txt[] - -include::gcode/gcode.txt[] - -include::gcode/m-code.txt[] - -include::gcode/o-code.txt[] - -include::gcode/other-code.txt[] - -include::examples/gcode.txt[] - -include::lathe/lathe-user.txt[] - -include::gcode/rs274ngc.txt[] - -include::gui/image-to-gcode.txt[] - -include::common/Glossary.txt[] - -include::common/GPLD_Copyright.txt[] - -// = Index - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/Master_User_es.txt b/docs/src/Master_User_es.txt deleted file mode 100644 index 29bf28c33ce..00000000000 --- a/docs/src/Master_User_es.txt +++ /dev/null @@ -1,79 +0,0 @@ -:lversion: {sys: cat ../VERSION} -Manual del Usuario V{lversion}, {localdate} -=========================================== - -:lang: es - -:masterdir: {indir} - -The LinuxCNC Team - -:leveloffset: 0 - -= LinuxCNC Introduction - -:leveloffset: 1 - -image::common/images/emc2-intro.*[] - -include::common/overleaf.txt[] - -include::common/userforeword.txt[] - -include::common/user_intro.txt[] - -include::common/User_Concepts.txt[] - -:leveloffset: 0 -= User Interfaces -:leveloffset: 1 - -include::gui/axis.txt[] - -include::gui/ngcgui.txt[] - -include::gui/touchy.txt[] - -include::gui/tklinuxcnc.txt[] - -include::gui/mini.txt[] - -include::gui/keystick.txt[] - -:leveloffset: 0 -= Using LinuxCNC -:leveloffset: 1 - -include::gcode/machining_center.txt[] - -include::gcode/coordinates.txt[] - -include::gcode/tool_compensation.txt[] - -include::gcode/overview.txt[] - -include::gcode/gcode.txt[] - -include::gcode/m-code.txt[] - -include::gcode/o-code.txt[] - -include::gcode/other-code.txt[] - -include::examples/gcode.txt[] - -include::lathe/lathe-user.txt[] - -include::gcode/rs274ngc.txt[] - -include::gui/image-to-gcode.txt[] - -include::common/Glossary.txt[] - -include::common/GPLD_Copyright.txt[] - -// = Index - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/Master_User_fr.txt b/docs/src/Master_User_fr.txt deleted file mode 100644 index 8e77977c09d..00000000000 --- a/docs/src/Master_User_fr.txt +++ /dev/null @@ -1,53 +0,0 @@ -:lang: fr -:toc: -:localdate: {sys: date +%d/%m/%Y} -:ascii-ids: -:lversion: {sys: cat ../VERSION} -Manuel de l'utilisateur V{lversion}, {localdate} -================================================ -:masterdir: {indir} -:leveloffset: 1 - -image::common/images/emc2-intro.*[] - -The LinuxCNC Team - -include::common/overleaf_fr.txt[] - -include::common/outdated-notice_fr.txt[] -include::common/userforeword_fr.txt[] -include::common/user_intro_fr.txt[] -:leveloffset: 0 -= Les interfaces utilisateur -:leveloffset: 1 -include::gui/axis_fr.txt[] -include::gui/ngcgui_fr.txt[] -include::gui/touchy_fr.txt[] -include::gui/tklinuxcnc_fr.txt[] -include::gui/mini_fr.txt[] -include::gui/keystick_fr.txt[] -:leveloffset: 0 - -= L'utilisation de LinuxCNC -:leveloffset: 1 -include::common/User_Concepts_fr.txt[] -include::gcode/machining_center_fr.txt[] -include::gcode/coordinates_fr.txt[] -include::gcode/tool_compensation_fr.txt[] -include::gcode/overview_fr.txt[] -include::gcode/gcode_fr.txt[] -include::gcode/m-code_fr.txt[] -include::gcode/o-code_fr.txt[] -include::gcode/other-code_fr.txt[] -include::examples/gcode_fr.txt[] -include::lathe/lathe-user_fr.txt[] -include::gcode/rs274ngc_fr.txt[] -include::gui/image-to-gcode_fr.txt[] -include::common/Glossary_fr.txt[] -include::common/GPLD_Copyright.txt[] - -// = Index - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/Submakefile b/docs/src/Submakefile deleted file mode 100644 index 731dbd32ba7..00000000000 --- a/docs/src/Submakefile +++ /dev/null @@ -1,673 +0,0 @@ -.PHONY: docs docsclean checkref checkref_en checkref_es checkref_fr -.PHONY: pdfdocs htmldocs install-doc install-doc-pdf install-doc-html - -DOC_DIR=../docs -DOC_SRCDIR=../docs/src - -# oh man.. -HL_DIR=/usr/share/source-highlight -LANG_MAP=$(HL_DIR)/lang.map -LOC_HL_DIR=../docs/src/source-highlight -LOC_LANG_MAP=$(LOC_HL_DIR)/local/lang.map - - -MAN_SRCS := $(sort \ - $(patsubst %.in,%,$(wildcard $(DOC_DIR)/man/man1/*.1 $(DOC_DIR)/man/man1/*.1.in)) \ - $(filter-out $(DOC_DIR)/man/man3/skeleton%, $(wildcard $(DOC_DIR)/man/man3/*.3rtapi $(DOC_DIR)/man/man3/*.3hal)) \ - $(filter-out $(DOC_DIR)/man/man9/skeleton%, $(wildcard $(DOC_DIR)/man/man9/*.9)) \ - $(COMP_MANPAGES) $(COMP_DRIVER_MANPAGES)) - -ifneq ($(MANDB),) -default: $(DOC_DIR)/man/index.db -$(DOC_DIR)/man/index.db: $(MAN_SRCS) - @echo "Updating 'whatis' database" - $(Q)$(MANDB) $(DOC_DIR)/man -endif - -ifeq ($(BUILD_DOCS),yes) -DOC_SRCS_EN := \ - code/Code_Notes.txt \ - code/Style_Guide.txt \ - code/NML_Messages.txt \ - code/Contributing-to-LinuxCNC.txt \ - common/emc-history.txt \ - common/Getting_LinuxCNC.txt \ - common/Glossary.txt \ - common/GPLD_Copyright.txt \ - common/Integrator_Concepts.txt \ - common/Linux_FAQ.txt \ - common/overleaf.txt \ - common/python-interface.txt \ - common/starting-emc.txt \ - common/Stepper_Diagnostics.txt \ - common/System_Requirements.txt \ - common/Updating_LinuxCNC.txt \ - common/User_Concepts.txt \ - common/userforeword.txt \ - common/user_intro.txt \ - config/copy_and_run.txt \ - config/emc2hal.txt \ - config/ini_config.txt \ - config/ini_homing.txt \ - config/lathe_config.txt \ - config/pncconf.txt \ - config/stepconf.txt \ - config/stepper.txt \ - drivers/AX5214H.txt \ - drivers/VFS11.txt \ - drivers/GM.txt \ - drivers/GS2.txt \ - drivers/hostmot2.txt \ - drivers/motenc.txt \ - drivers/opto22.txt \ - drivers/pico_ppmc.txt \ - drivers/pluto_p.txt \ - drivers/servo_to_go.txt \ - drivers/shuttlexpress.txt \ - examples/gcode.txt \ - examples/gs2_example.txt \ - examples/mpg.txt \ - examples/pci_parallel_port.txt \ - examples/spindle.txt \ - gcode/coordinates.txt \ - gcode/gcode.txt \ - gcode/machining_center.txt \ - gcode/m-code.txt \ - gcode/o-code.txt \ - gcode/other-code.txt \ - gcode/overview.txt \ - gcode/rs274ngc.txt \ - gcode/tool_compensation.txt \ - gui/selector.txt \ - gui/axis.txt \ - gui/gladevcp.txt \ - gui/halui.txt \ - gui/image-to-gcode.txt \ - gui/keystick.txt \ - gui/mini.txt \ - gui/ngcgui.txt \ - gui/tklinuxcnc.txt \ - gui/tooledit.txt \ - gui/touchy.txt \ - hal/basic_hal.txt \ - hal/canonical-devices.txt \ - hal/comp.txt \ - hal/components.txt \ - hal/general_ref.txt \ - hal/hal-examples.txt \ - hal/halmodule.txt \ - hal/halshow.txt \ - hal/haltcl.txt \ - hal/halui_examples.txt \ - hal/intro.txt \ - hal/parallel_port.txt \ - hal/pyvcp.txt \ - hal/pyvcp_examples.txt \ - hal/rtcomps.txt \ - hal/tools.txt \ - hal/tutorial.txt \ - install/Latency_Test.txt \ - ladder/classic_ladder.txt \ - ladder/ladder_examples.txt \ - ladder/ladder_intro.txt \ - lathe/lathe-user.txt \ - motion/kinematics.txt \ - motion/pid_theory.txt \ - motion/tweaking_steppers.txt \ - quickstart/stepper_quickstart.txt \ - remap/structure.txt \ - Master_Getting_Started.txt \ - Master_User.txt \ - Master_HAL.txt \ - Master_Integrator.txt \ - Master_Developer.txt - -DOC_SRCS_FR := \ - common/Getting_linuxcnc_fr.txt \ - common/Glossary_fr.txt \ - common/GPLD_Copyright_fr.txt \ - common/Integrator_Concepts_fr.txt \ - common/Linux_FAQ_fr.txt \ - common/outdated-notice_fr.txt \ - common/overleaf_fr.txt \ - common/Stepper_Diagnostics_fr.txt \ - common/System_Requirements_fr.txt \ - common/Updating_linuxcnc_fr.txt \ - common/User_Concepts_fr.txt \ - common/userforeword_fr.txt \ - common/user_intro_fr.txt \ - config/linuxcnc2hal_fr.txt \ - config/ini_config_fr.txt \ - config/ini_homing_fr.txt \ - config/lathe_config_fr.txt \ - config/pncconf_fr.txt \ - config/stepconf_fr.txt \ - config/stepper_fr.txt \ - drivers/AX5214H_fr.txt \ - drivers/GS2_fr.txt \ - drivers/hostmot2_fr.txt \ - drivers/motenc_fr.txt \ - drivers/opto22_fr.txt \ - drivers/pico_ppmc_fr.txt \ - drivers/pluto_p_fr.txt \ - drivers/servo_to_go_fr.txt \ - examples/gcode_fr.txt \ - examples/gs2_example_fr.txt \ - examples/misc_fr.txt \ - examples/mpg_fr.txt \ - examples/pci_parallel_port_fr.txt \ - examples/spindle_fr.txt \ - gcode/coordinates_fr.txt \ - gcode/gcode_fr.txt \ - gcode/machining_center_fr.txt \ - gcode/m-code_fr.txt \ - gcode/o-code_fr.txt \ - gcode/other-code_fr.txt \ - gcode/overview_fr.txt \ - gcode/rs274ngc_fr.txt \ - gcode/tool_compensation_fr.txt \ - gui/axis_fr.txt \ - gui/gladevcp_fr.txt \ - gui/image-to-gcode_fr.txt \ - gui/keystick_fr.txt \ - gui/mini_fr.txt \ - gui/ngcgui_fr.txt \ - gui/tklinuxcnc_fr.txt \ - gui/tooledit_fr.txt\ - gui/touchy_fr.txt \ - hal/basic_hal_fr.txt \ - hal/comp_fr.txt \ - hal/components_fr.txt \ - hal/general_ref_fr.txt \ - hal/hal-examples_fr.txt \ - hal/halmodule_fr.txt \ - hal/halshow_fr.txt \ - hal/haltcl_fr.txt \ - hal/halui_fr.txt \ - hal/intro_fr.txt \ - hal/parallel_port_fr.txt \ - hal/pyvcp_fr.txt \ - hal/pyvcp_examples_fr.txt \ - hal/rtcomps_fr.txt \ - hal/tutorial_fr.txt \ - install/Latency_Test_fr.txt \ - ladder/classic_ladder_fr.txt \ - ladder/ladder_examples_fr.txt \ - ladder/ladder_intro_fr.txt \ - lathe/lathe-user_fr.txt \ - motion/kinematics_fr.txt \ - motion/pid_theory_fr.txt \ - motion/tweaking_steppers_fr.txt \ - quickstart/stepper_quickstart_fr.txt \ - Master_Getting_Started_fr.txt \ - Master_User_fr.txt \ - Master_HAL_fr.txt \ - Master_Integrator_fr.txt \ - -DOC_SRCS_ES := \ - common/Getting_EMC_es.txt \ - common/Glossary_es.txt \ - common/Integrator_Concepts_es.txt \ - common/Linux_FAQ_es.txt \ - common/starting-emc_es.txt \ - common/Stepper_Diagnostics_es.txt \ - common/System_Requirements_es.txt \ - common/translator-needed_es.txt \ - common/Updating_EMC_es.txt \ - common/User_Concepts_es.txt \ - common/userforeword_es.txt \ - common/user_intro_es.txt \ - config/copy_and_run_es.txt \ - config/emc2hal_es.txt \ - config/ini_config_es.txt \ - config/ini_homing_es.txt \ - config/lathe_config_es.txt \ - config/pncconf_es.txt \ - config/stepconf_es.txt \ - config/stepper_es.txt \ - drivers/AX5214H_es.txt \ - drivers/GS2_es.txt \ - drivers/hostmot2_es.txt \ - drivers/motenc_es.txt \ - drivers/opto22_es.txt \ - drivers/pico_ppmc_es.txt \ - drivers/pluto_p_es.txt \ - drivers/servo_to_go_es.txt \ - drivers/shuttlexpress_es.txt \ - examples/gcode_es.txt \ - examples/gs2_example_es.txt \ - examples/mpg_es.txt \ - examples/pci_parallel_port_es.txt \ - examples/spindle_es.txt \ - gcode/coordinates_es.txt \ - gcode/gcode_es.txt \ - gcode/machining_center_es.txt \ - gcode/m-code_es.txt \ - gcode/o-code_es.txt \ - gcode/other-code_es.txt \ - gcode/overview_es.txt \ - gcode/rs274ngc_es.txt \ - gcode/tool_compensation_es.txt \ - gui/axis_es.txt \ - gui/gladevcp_es.txt \ - gui/halui_es.txt \ - gui/image-to-gcode_es.txt \ - gui/keystick_es.txt \ - gui/mini_es.txt \ - gui/ngcgui_es.txt \ - gui/tklinuxcnc_es.txt \ - gui/touchy_es.txt \ - hal/basic_hal_es.txt \ - hal/canonical-devices_es.txt \ - hal/comp_es.txt \ - hal/components_es.txt \ - hal/general_ref_es.txt \ - hal/hal-examples_es.txt \ - hal/halmodule_es.txt \ - hal/halshow_es.txt \ - hal/haltcl_es.txt \ - hal/halui_examples_es.txt \ - hal/intro_es.txt \ - hal/parallel_port_es.txt \ - hal/pyvcp_es.txt \ - hal/pyvcp_examples_es.txt \ - hal/rtcomps_es.txt \ - hal/tools_es.txt \ - hal/tutorial_es.txt \ - install/Latency_Test_es.txt \ - ladder/classic_ladder_es.txt \ - ladder/ladder_examples_es.txt \ - ladder/ladder_intro_es.txt \ - lathe/lathe-user_es.txt \ - motion/kinematics_es.txt \ - motion/pid_theory_es.txt \ - motion/tweaking_steppers_es.txt \ - quickstart/stepper_quickstart_es.txt \ - Master_Getting_Started_es.txt \ - Master_User_es.txt \ - Master_HAL_es.txt \ - Master_Integrator_es.txt \ - -DOC_SRCS = $(DOC_SRCS_EN) $(DOC_SRCS_FR) $(DOC_SRCS_ES) - -DOC_SRCS_TXT := $(patsubst %.txt, %.txt, $(DOC_SRCS)) - -DOC_SRCS_ES_SMALL := $(filter-out Master_%,$(DOC_SRCS_ES)) -DOC_SRCS_FR_SMALL := $(filter-out Master_%,$(DOC_SRCS_FR)) -DOC_SRCS_EN_SMALL := $(filter-out Master_%,$(DOC_SRCS_EN)) - -DOC_SRCS_HTML := $(patsubst %.txt, %.html, $(filter-out Master_%, $(DOC_SRCS))) -DOC_TARGETS_HTML := $(addprefix $(DOC_DIR)/html/,$(DOC_SRCS_HTML)) #$(subst /,_,$(DOC_SRCS_HTML))) -DOC_TARGETS_XML := $(patsubst $(DOC_DIR)/html/%.html, objects/%.xml, $(DOC_TARGETS_HTML)) - -DOC_TARGETS_XML_ES := $(filter %_es.xml, $(DOC_TARGETS_XML)) -DOC_TARGETS_XML_FR := $(filter %_fr.xml, $(DOC_TARGETS_XML)) -DOC_TARGETS_XML_EN := $(filter-out $(DOC_TARGETS_XML_ES), $(filter-out $(DOC_TARGETS_XML_FR), $(DOC_TARGETS_XML)) ) -DOC_TARGETS_HTML_ES := $(filter %_es.html, $(DOC_TARGETS_HTML)) -DOC_TARGETS_HTML_FR := $(filter %_fr.html, $(DOC_TARGETS_HTML)) -DOC_TARGETS_HTML_EN := $(filter-out $(DOC_TARGETS_HTML_ES), $(filter-out $(DOC_TARGETS_HTML_FR), $(DOC_TARGETS_HTML)) ) - -MAN_HTML_TARGETS := $(patsubst $(DOC_DIR)/man/%, $(DOC_DIR)/html/man/%.html, $(MAN_SRCS)) - -PDF_TARGETS_EN := $(addprefix $(DOC_DIR)/, \ - LinuxCNC_Getting_Started.pdf \ - LinuxCNC_User_Manual.pdf \ - LinuxCNC_HAL_Manual.pdf \ - LinuxCNC_Integrator_Manual.pdf \ - LinuxCNC_Developer_Manual.pdf \ - LinuxCNC_Manual_Pages.pdf \ - ) - -PDF_TARGETS_FR := $(addprefix $(DOC_DIR)/, \ - LinuxCNC_Getting_Started_fr.pdf \ - LinuxCNC_User_Manual_fr.pdf \ - LinuxCNC_HAL_Manual_fr.pdf \ - LinuxCNC_Integrator_Manual_fr.pdf \ - ) - -PDF_TARGETS_ES := $(addprefix $(DOC_DIR)/, \ - LinuxCNC_Getting_Started_es.pdf \ - LinuxCNC_User_Manual_es.pdf \ - LinuxCNC_HAL_Manual_es.pdf \ - LinuxCNC_Integrator_Manual_es.pdf \ - ) - -PDF_TARGETS := $(PDF_TARGETS_EN) $(PDF_TARGETS_FR) $(PDF_TARGETS_ES) - -# It's better to keep the above on separate lines for troubleshooting by swapping - -HTML_TARGETS := \ - $(DOC_TARGETS_HTML) \ - $(MAN_HTML_TARGETS) \ - $(DOC_DIR)/html/index.html \ - $(DOC_DIR)/html/index_es.html \ - $(DOC_DIR)/html/index_fr.html \ - -A2X = a2x --xsltproc-opts "--stringparam toc.section.depth 3 \ - --stringparam toc.max.depth 2 \ - --stringparam generate.section.toc.level 2 \ - --stringparam generate.toc 'book toc,title chapter toc'" \ - -a "scriptdir=$(DOC_SRCDIR)/" \ - --asciidoc-opts "-f $(DOC_SRCDIR)/docbook.conf -f $(DOC_SRCDIR)/asciidoc-dont-replace-arrows.conf" \ - --dblatex-opts "-P doc.publisher.show=0 -P latex.output.revhistory=0 -s $(DOC_SRCDIR)/emc2.sty \ - -P latex.hyperparam=colorlinks,linkcolor=blue,filecolor=blue,urlcolor=blue,citecolor=blue \ - $(A2X_LATEX_ENCODING)" - -ifeq ($(TRIVIAL_BUILD),no) --include $(patsubst %.txt, depends/%.d, $(DOC_SRCS_TXT)) -Makefile: $(patsubst %.txt, depends/%.d, $(DOC_SRCS_TXT)) -endif - -docs: ../docs/man/man1/linuxcnc.1 - -../docs/man/man1/linuxcnc.1: ../docs/src/man/man1/linuxcnc.1.in config.status - ./config.status --file=$@:$< - -ifeq ($(BUILD_DOCS_PDF),yes) -docs: pdfdocs -install-doc: install-doc-pdf -endif -ifeq ($(BUILD_DOCS_HTML),yes) -docs: htmldocs -install-doc: install-doc-html -endif -pdfdocs: $(PDF_TARGETS) -htmldocs: .htmldoc-stamp checkref - -.htmldoc-stamp: copy_asciidoc_files $(HTML_TARGETS) .html-images-stamp $(MAN_HTML_TARGETS) - touch $@ - -.PHONY: copy_asciidoc_files -copy_asciidoc_files: - cp -f /etc/asciidoc/stylesheets/*.css $(DOC_DIR)/html - cp -f /etc/asciidoc/javascripts/*.js $(DOC_DIR)/html - -checkref: checkref_en checkref_fr checkref_es - -checkref_en: $(DOC_TARGETS_HTML_EN) .htmldoc-stamp - @$(DOC_SRCDIR)/checkref --warn-on-failure English $^ - -checkref_fr: $(DOC_TARGETS_HTML_FR) .htmldoc-stamp - @$(DOC_SRCDIR)/checkref French $^ - -# the spanish docs are full of broken links, only warn on failure -checkref_es: $(DOC_TARGETS_HTML_ES) .htmldoc-stamp - @$(DOC_SRCDIR)/checkref --warn-on-failure Spanish $^ - -MAN_SRCS_NOSO := $(patsubst $(DOC_DIR)/man/%,%, \ - $(shell grep -L '^\.so ' $(sort $(MAN_SRCS)))) - -PDF_MAN_ORDER := man1/linuxcnc.1 $(filter-out %/linuxcnc.1, $(filter man1/%, $(MAN_SRCS_NOSO))) \ - man3/intro.3hal $(filter-out %/undocumented.3hal %/intro.3hal, $(filter man3/%.3hal, $(MAN_SRCS_NOSO))) \ - man3/undocumented.3hal man3/intro.3rtapi $(filter-out %/undocumented.3rtapi %/intro.3rtapi, $(filter man3/%.3rtapi, $(MAN_SRCS_NOSO))) \ - man3/undocumented.3rtapi $(filter man9/%, $(MAN_SRCS_NOSO)) - -$(DOC_DIR)/LinuxCNC_Manual_Pages.pdf: $(MAN_SRCS) objects/var-PDF_MAN_ORDER - @echo Formatting manual pages as PDF - (cd $(DOC_DIR)/man; groff -t -rC1 -rD1 -Tps -man $(PDF_MAN_ORDER)) \ - | ps2pdf - $@ - -$(DOC_DIR)/LinuxCNC_Getting_Started.pdf: $(DOC_SRCDIR)/Master_Getting_Started.pdf - @ln -f $< $@ -$(DOC_DIR)/LinuxCNC_Getting_Started_es.pdf: $(DOC_SRCDIR)/Master_Getting_Started_es.pdf - @ln -f $< $@ -$(DOC_DIR)/LinuxCNC_Getting_Started_fr.pdf: $(DOC_SRCDIR)/Master_Getting_Started_fr.pdf - @ln -f $< $@ -$(DOC_DIR)/LinuxCNC_User_Manual.pdf: $(DOC_SRCDIR)/Master_User.pdf - @ln -f $< $@ -$(DOC_DIR)/LinuxCNC_User_Manual_es.pdf: $(DOC_SRCDIR)/Master_User_es.pdf - @ln -f $< $@ -$(DOC_DIR)/LinuxCNC_User_Manual_fr.pdf: $(DOC_SRCDIR)/Master_User_fr.pdf - @ln -f $< $@ -$(DOC_DIR)/LinuxCNC_HAL_Manual.pdf: $(DOC_SRCDIR)/Master_HAL.pdf - @ln -f $< $@ -$(DOC_DIR)/LinuxCNC_HAL_Manual_es.pdf: $(DOC_SRCDIR)/Master_HAL_es.pdf - @ln -f $< $@ -$(DOC_DIR)/LinuxCNC_HAL_Manual_fr.pdf: $(DOC_SRCDIR)/Master_HAL_fr.pdf - @ln -f $< $@ -$(DOC_DIR)/LinuxCNC_Integrator_Manual.pdf: $(DOC_SRCDIR)/Master_Integrator.pdf - @ln -f $< $@ -$(DOC_DIR)/LinuxCNC_Integrator_Manual_es.pdf: $(DOC_SRCDIR)/Master_Integrator_es.pdf - @ln -f $< $@ -$(DOC_DIR)/LinuxCNC_Integrator_Manual_fr.pdf: $(DOC_SRCDIR)/Master_Integrator_fr.pdf - @ln -f $< $@ -$(DOC_DIR)/LinuxCNC_Developer_Manual.pdf: $(DOC_SRCDIR)/Master_Developer.pdf - @ln -f $< $@ - -$(DOC_DIR)/html/man/%.html: $(DOC_DIR)/man/% - @echo Formatting $(notdir $<) as HTML - @mkdir -p $(dir $@) - @(cd $(DOC_DIR)/man; groff -Thtml -man $(patsubst $(DOC_DIR)/man/%,%,$<)) > $@ - -ST := style=\" \ - list-style-type: none; \ - -moz-column-width: 25ex; \ - -moz-column-gap: 4ex; \ - -webkit-column-width: 25ex; \ - -webkit-column-gap: 4ex; \ - column-width: 25ex; \ - column-gap: 4ex; \ -\" - -objects/index.incl: objects/var-MAN_HTML_TARGETS $(DOC_SRCDIR)/Submakefile - echo "

  • Commands and userspace components
    " >> $@.tmp - echo "
  • Realtime components and kernel modules
    " >> $@.tmp - echo "
  • HAL API calls
    " >> $@.tmp - echo "
  • RTAPI calls
    " >> $@.tmp - mv -f $@.tmp $@ - -$(DOC_DIR)/html/index_%.html: $(DOC_SRCDIR)/index_%.tmpl ../VERSION $(DOC_SRCDIR)/index.foot - cat $(filter-out ../VERSION, $^) | \ - sed "s/@VERSION@/`cat ../VERSION`/" > $@ - -$(DOC_DIR)/html/index.html: $(DOC_SRCDIR)/index.tmpl objects/index.incl $(DOC_SRCDIR)/index.foot ../VERSION $(DOC_SRCDIR)/Submakefile - (cat $(DOC_SRCDIR)/index.tmpl objects/index.incl $(DOC_SRCDIR)/index.foot) | sed "s/@VERSION@/`cat ../VERSION`/" > $@ - -$(DOC_SRCDIR)/%.pdf: $(DOC_SRCDIR)/%.txt - $(ECHO) Building $@ - @rm -f $@ - $(A2X) -L -d book -vf pdf $< || (X=$$?; rm $@; exit $$X) - @test -f $@ - -depends/%.d: $(DOC_SRCDIR)/%.txt $(DOC_SRCDIR)/asciideps - $(ECHO) Depending $< - @mkdir -p $(dir $@) - $(Q)$(DOC_SRCDIR)/asciideps $< > $@.tmp - @mv $@.tmp $@ - -objects/xref_es.xml: $(DOC_TARGETS_XML_ES) $(DOC_SRCDIR)/xref.py - (cd objects; ../../docs/src/xref.py $(filter %.xml, $(patsubst objects/%,%,$^))) > $@ -objects/xref_fr.xml: $(DOC_TARGETS_XML_FR) $(DOC_SRCDIR)/xref.py - (cd objects; ../../docs/src/xref.py $(filter %.xml, $(patsubst objects/%,%,$^))) > $@ -objects/xref.xml: $(DOC_TARGETS_XML_EN) $(DOC_SRCDIR)/xref.py - (cd objects; ../../docs/src/xref.py $(filter %.xml, $(patsubst objects/%,%,$^))) > $@ - -objects/%.links-stamp: $(DOC_SRCDIR)/%.txt - @mkdir -p `dirname $@` - asciidoc -f $(DOC_SRCDIR)/attribute-colon.conf -a "scriptdir=$(DOC_SRCDIR)/" -d book -o- -b docbook $< | xsltproc $(DOC_SRCDIR)/links.xslt - > $@.tmp || (X=$$?; rm $@; exit $$X) - sh move-if-change $@.tmp $(patsubst %-stamp,%,$@) - touch $@ - -objects/%.links: objects/%.links-stamp - @: - -# Secondary is not working here. -# See http://www.gnu.org/software/make/manual/make.html#Chained-Rules -.PRECIOUS: objects/%.links-stamp - -objects/xref_en.links: $(patsubst %.txt,objects/%.links,$(DOC_SRCS_EN_SMALL)) - $(PYTHON) $(DOC_SRCDIR)/links_db_gen.py objects/ $^ > $@ - -objects/xref_es.links: $(patsubst %.txt,objects/%.links,$(DOC_SRCS_ES_SMALL)) - $(PYTHON) $(DOC_SRCDIR)/links_db_gen.py objects/ $^ > $@ - -objects/xref_fr.links: $(patsubst %.txt,objects/%.links,$(DOC_SRCS_FR_SMALL)) - $(PYTHON) $(DOC_SRCDIR)/links_db_gen.py objects/ $^ > $@ - -$(DOC_TARGETS_HTML): $(DOC_DIR)/html/%.html: $(DOC_SRCDIR)/%.html - @d=`dirname $*`; \ - mkdir -p $(shell dirname $@) - @cp $< $@ - -.html-images-stamp: $(DOC_TARGETS_HTML) - for HTML_FILE in $^; do \ - HTML_DIR=$$(basename $$(dirname $$HTML_FILE)); \ - for IMAGE_FILE in $$(xsltproc --novalid --nonet $(DOC_SRCDIR)/html-images.xslt $$HTML_FILE); do \ - IMAGE_DIR=$$(dirname $$IMAGE_FILE); \ - mkdir -p $(DOC_DIR)/html/$$HTML_DIR/$$IMAGE_DIR; \ - cp -f $(DOC_SRCDIR)/$$HTML_DIR/$$IMAGE_FILE $(DOC_DIR)/html/$$HTML_DIR/$$IMAGE_FILE; \ - done; \ - mkdir -p objects/image-cache; \ - HTML_LATEX_CACHE=objects/image-cache $(DOC_SRCDIR)/html-latex-images $$HTML_FILE || (X=$$?; rm $$HTML_FILE; exit $$X); \ - done - touch $@ - -# rebuild source-highlight/local/lang.map if needed - note this will cause a major rebuild -# unsure how to do this as Submakefile -mah -$(LOC_LANG_MAP): $(wildcard $(LOC_HL_DIR)/*.lang) $(LANG_MAP) - (cd $(LOC_HL_DIR); make all) - -# Define a target-specific variable called STYLES_SCRIPTS_DIR, which has -# the relative path from this html target to the root of the generated -# document tree (docs/html in the git repo). This is where the CSS files -# and javascript files will be installed. -$(DOC_SRCDIR)/%.html: STYLES_SCRIPTS_DIR=$(shell for i in $(shell dirname $* | tr '/' '\n' ); do echo -n "../"; done; echo) - -$(patsubst %.txt,$(DOC_SRCDIR)/%.html,$(DOC_SRCS_EN_SMALL)): $(DOC_SRCDIR)/%.html: $(DOC_SRCDIR)/%.txt objects/xref_en.links $(LOC_LANG_MAP) - asciidoc -f $(DOC_SRCDIR)/xhtml11.conf \ - -f $(DOC_SRCDIR)/asciidoc-dont-replace-arrows.conf \ - -f $(LOC_HL_DIR)/emc-langs-source-highlight.conf \ - -a "source_highlight_dir=$(LOC_HL_DIR)/local" \ - -a linkcss \ - -a "scriptsdir=$(STYLES_SCRIPTS_DIR)" \ - -a "stylesdir=$(STYLES_SCRIPTS_DIR)" \ - -a "scriptdir=$(DOC_SRCDIR)/" \ - -a "relindir=$(shell dirname $*)" \ - -a "linksfile=objects/xref_en.links" \ - -a stylesheet=linuxcnc.css \ - -d book -a toc -a numbered -b xhtml11 $< || (X=$$?; rm $@; exit $$X) - -$(patsubst %.txt,$(DOC_SRCDIR)/%.html,$(DOC_SRCS_FR_SMALL)): $(DOC_SRCDIR)/%.html: $(DOC_SRCDIR)/%.txt objects/xref_fr.links $(LOC_LANG_MAP) - asciidoc -f $(DOC_SRCDIR)/xhtml11.conf \ - -f $(DOC_SRCDIR)/asciidoc-dont-replace-arrows.conf \ - -f $(LOC_HL_DIR)/emc-langs-source-highlight.conf \ - -a "source_highlight_dir=$(LOC_HL_DIR)/local" \ - -a linkcss \ - -a "scriptsdir=$(STYLES_SCRIPTS_DIR)" \ - -a "stylesdir=$(STYLES_SCRIPTS_DIR)" \ - -a "scriptdir=$(DOC_SRCDIR)/" \ - -a "relindir=$(shell dirname $*)" \ - -a "linksfile=objects/xref_fr.links" \ - -a stylesheet=linuxcnc.css \ - -d book -a toc -a numbered -b xhtml11 $< || (X=$$?; rm $@; exit $$X) - -$(patsubst %.txt,$(DOC_SRCDIR)/%.html,$(DOC_SRCS_ES_SMALL)): $(DOC_SRCDIR)/%.html: $(DOC_SRCDIR)/%.txt objects/xref_es.links $(LOC_LANG_MAP) - asciidoc -f $(DOC_SRCDIR)/xhtml11.conf \ - -f $(DOC_SRCDIR)/asciidoc-dont-replace-arrows.conf \ - -a linkcss \ - -a "scriptsdir=$(STYLES_SCRIPTS_DIR)" \ - -a "stylesdir=$(STYLES_SCRIPTS_DIR)" \ - -a "scriptdir=$(DOC_SRCDIR)/" \ - -a "relindir=$(shell dirname $*)" \ - -a "linksfile=objects/xref_es.links" \ - -a stylesheet=linuxcnc.css \ - -d book -a toc -a numbered -b xhtml11 $< || (X=$$?; rm $@; exit $$X) - -default: docs -$(DOC_DIR)/html/xref_fr.html: objects/xref_fr.xml $(DOC_SRCDIR)/xref.xsl $(DOC_SRCDIR)/docs.xml $(DOC_SRCDIR)/terms.xml - $(ECHO) Converting $< to HTML - @xsltproc --stringparam docname "xref_fr" --stringparam language french --path objects -o $@ $(DOC_SRCDIR)/xref.xsl $< - -$(DOC_DIR)/html/xref_es.html: objects/xref_es.xml $(DOC_SRCDIR)/xref.xsl $(DOC_SRCDIR)/docs.xml $(DOC_SRCDIR)/terms.xml - $(ECHO) Converting $< to HTML - @xsltproc --stringparam docname "xref_es" --stringparam language spanish --path objects -o $@ $(DOC_SRCDIR)/xref.xsl $< - -default: docs - -install-doc-pdf: - $(DIR) $(DESTDIR)$(docsdir) - $(FILE) $(PDF_TARGETS) $(DESTDIR)$(docsdir) - -install-doc-html: - $(DIR) $(DESTDIR)$(docsdir) - cp -a $(DOC_DIR)/html $(DESTDIR)$(docsdir) -install-kernel-indep: install-doc -else -docs: - $(error Cannot build documents, missing AsciiDoc or some other required program, or explicitly disabled in configure) - -endif - -docclean: - -rm -f $(DOC_DIR)/LinuxCNC_Getting_Started.pdf - -rm -f $(DOC_DIR)/LinuxCNC_Getting_Started_es.pdf - -rm -f $(DOC_DIR)/LinuxCNC_Getting_Started_fr.pdf - -rm -f $(DOC_DIR)/LinuxCNC_User_Manual.pdf - -rm -f $(DOC_DIR)/LinuxCNC_User_Manual_es.pdf - -rm -f $(DOC_DIR)/LinuxCNC_User_Manual_fr.pdf - -rm -f $(DOC_DIR)/LinuxCNC_HAL_Manual.pdf - -rm -f $(DOC_DIR)/LinuxCNC_HAL_Manual_es.pdf - -rm -f $(DOC_DIR)/LinuxCNC_HAL_Manual_fr.pdf - -rm -f $(DOC_DIR)/LinuxCNC_Integrator_Manual.pdf - -rm -f $(DOC_DIR)/LinuxCNC_Integrator_Manual_es.pdf - -rm -f $(DOC_DIR)/LinuxCNC_Integrator_Manual_fr.pdf - -rm -f $(DOC_DIR)/LinuxCNC_Developer_Manual.pdf - -rm -f $(DOC_DIR)/LinuxCNC_Manual_Pages.pdf - -rm -f $(DOC_SRCDIR)/*.d - -rm -f $(DOC_SRCDIR)/*.pdf - -rm -f $(DOC_SRCDIR)/*/*.html - -rm -f $(DOC_DIR)/html/*.png - -rm -f $(DOC_DIR)/html/code/*.* - -rm -f $(DOC_DIR)/html/common/images/*.* - -rm -f $(DOC_DIR)/html/config/images/*.* - -rm -f $(DOC_DIR)/html/drivers/images/*.* - -rm -f $(DOC_DIR)/html/examples/*.* - -rm -f $(DOC_DIR)/html/gcode/images/*.* - -rm -f $(DOC_DIR)/html/gui/images/*.* - -rm -f $(DOC_DIR)/html/hal/images/*.* - -rm -f $(DOC_DIR)/html/install/images/*.* - -rm -f $(DOC_DIR)/html/ladder/images/*.* - -rm -f $(DOC_DIR)/html/lathe/images/*.* - -rm -f $(DOC_DIR)/html/motion/*.* - -rm -f $(DOC_DIR)/html/quickstart/*.* - -rm -f $(DOC_DIR)/html/man/man1/*.* - -rm -f $(DOC_DIR)/html/man/man3/*.* - -rm -f $(DOC_DIR)/html/man/man9/*.* - -rm -f $(DOC_TARGETS_HTML) $(DOC_DIR)/html/xref*.html $(DOC_DIR)/html/index*.html $(DOC_DIR)/*.png $(DOC_DIR)/man/*.png - -rm -f .htmldoc-stamp - -rm -f .html-images-stamp -# unsure how to do this as Submakefile: -mah - -(cd $(LOC_HL_DIR); make clean) - - -ifeq ($(BUILD_DOCS),yes) -MAN_DEPS := $(patsubst $(DOC_DIR)/man/%, depends/%.d, $(MAN_SRCS)) -$(MAN_DEPS): depends/%.d: $(DOC_DIR)/man/% - @echo Depending $(notdir $<) - @mkdir -p $(dir $@) - $(Q)echo -n "$(DOC_DIR)/html/man/$*.html: $<" > $@.tmp - $(Q)grep '^\.so ' $< | awk '{printf " \\\n\t$(DOC_DIR)/man/%s", $$2}' >> $@.tmp - $(Q)echo >> $@.tmp - $(Q)mv -f $@.tmp $@ - -ifeq ($(TRIVIAL_BUILD),no) --include $(MAN_DEPS) -Makefile: $(MAN_DEPS) -endif - -%.png:; $(error Required image file $@ does not exist) -%.jpg:; $(error Required image file $@ does not exist) -%.svg:; $(error Required image file $@ does not exist) -%.dxf:; $(error Required image file $@ does not exist) -%.ps:; $(error Required image file $@ does not exist) -%.eps:; $(error Required image file $@ does not exist) - -endif diff --git a/docs/src/asciideps b/docs/src/asciideps deleted file mode 100755 index 65059437f1d..00000000000 --- a/docs/src/asciideps +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh - -set -e - -test -z "$1" && exit 0 -test -f "$1" || exit 1 - -includes () { - DIR=`dirname "$1"` - - for f in `sed -ne "s|^include::\(.*\)\[\]$|$DIR/\1|p" "$1"`; do - echo "$f" - includes "$f" - done -} - -images() { - DIR=`dirname "$1"` - - sed -ne "s|^image::\([^[]*\)\[\]$|$DIR/\1|p" "$1" - sed -ne "s|^.*image:\([^:][^[]*\)\[\].*$|$DIR/\1|p" "$1" -} - -INCLUDES=`includes "$1"` -IMAGES=`images "$1"` -for f in $INCLUDES; do - IMAGES="$IMAGES `images $f`" -done - -echo "${1%%.txt}.dep :" $INCLUDES -echo "${1%%.txt}.html: " $INCLUDES -echo "${1%%.txt}.pdf: " $INCLUDES $IMAGES diff --git a/docs/src/asciidoc-dont-replace-arrows.conf b/docs/src/asciidoc-dont-replace-arrows.conf deleted file mode 100644 index c2119458107..00000000000 --- a/docs/src/asciidoc-dont-replace-arrows.conf +++ /dev/null @@ -1,16 +0,0 @@ - -[replacements] - -# Arrows from the Arrows block of Unicode. -# -> right arrow -(? right double arrow -(?[\w\-_:]+)(,(?P.*?))?\]\]$)|(^\[(?P.*)\]$) diff --git a/docs/src/checklinks.py b/docs/src/checklinks.py deleted file mode 100644 index fa287ad80d5..00000000000 --- a/docs/src/checklinks.py +++ /dev/null @@ -1,127 +0,0 @@ -import os, sys, sgmllib, cookielib, urllib, htmlentitydefs - -if len(sys.argv) > 1: - ref = sys.argv[1] -else: - ref = "../html/gcode.html" - -if len(sys.argv) > 2: - targets = sys.argv[2:] -else: - targets = None - -def get(attr, attrs, default=""): - attr = attr.lower() - for k, v in attrs: - if k.lower() == attr: return v - return default - -class MetaHandler: - def do_meta(self, attrs): - equiv = get("http-equiv", attrs) - content = get("content", attrs) - if equiv != "content-type": return - attrs = cookielib.split_header_words([content])[0] - encoding = get("charset", attrs) - if encoding == "ASCII": encoding = "ISO-8859-1" - if encoding: self.encoding = encoding - -class get_refs(sgmllib.SGMLParser, MetaHandler): - entitydefs = htmlentitydefs.entitydefs - - def __init__(self, verbose=0): - sgmllib.SGMLParser.__init__(self, verbose) - self.refs = set() - self.encoding = None - - def do_a(self, attrs): - href = get('href', attrs) - if self.encoding: - href = href.decode(self.encoding) - href = urllib.unquote(href) - self.refs.add(href) - -class get_anchors(sgmllib.SGMLParser, MetaHandler): - entitydefs = htmlentitydefs.entitydefs - - def __init__(self, verbose=0): - sgmllib.SGMLParser.__init__(self, verbose) - self.anchors = set() - self.encoding = None - - def unknown_starttag(self, tag, attrs): - id = get('id', attrs) - if id: - self.do_a([('name', id)]) - - def unknown_endtag(self, tag): pass - - def do_a(self, attrs): - name = get('name', attrs, get('id', attrs)) - if self.encoding: - name = name.decode(self.encoding) - name = urllib.unquote(name) - if name: - self.anchors.add(name) - -_anchors = {} -def get_anchors_cached(filename): - if filename not in _anchors: - a = get_anchors() - a.feed(open(filename).read()) - _anchors[filename] = a.anchors - return _anchors[filename] - -def resolve_file(src, target): - if "#" in target: - a, b = target.split("#", 1) - else: - a, b = target, None - - a = a or src - - return os.path.join(os.path.dirname(ref), a), b - -def resolve(target, anchor): - if not anchor: return True - - anchors = get_anchors_cached(target) - return anchor in anchors - -refs = get_refs() -refs.feed(open(ref).read()) -refs = refs.refs - -missing_anchor = set() -missing_file = set() -unlisted_targets = set() -good = set() -for r in refs: - target, anchor = resolve_file(ref, r) - if targets and not target in targets: - unlisted_targets.add(target) - elif not os.path.exists(target): - missing_file.add(r) - elif not resolve(target, anchor): - missing_anchor.add(r) - else: - good.add(r) - -if missing_file: - print "Files linked to in %s but could not be found:" % ( - os.path.basename(ref),) - for i in sorted(missing_file): - print "\t%r" % i -if missing_anchor: - print "Anchors used in %s but not defined in linked file:" % ( - os.path.basename(ref),) - for i in sorted(missing_anchor): - print "\t%r" % i -if unlisted_targets: - print "Links to files not listed as targets:" - for i in sorted(unlisted_targets): - print "\t%r" % i - print "If all link targets are not listed in the Submakefile, then the results of this program is unreliable." -print "Good links: %d/%d" % (len(good), len(refs)) -if missing_anchor or missing_file or unlisted_targets: - raise SystemExit, 1 diff --git a/docs/src/checkref b/docs/src/checkref deleted file mode 100755 index 8b270383a37..00000000000 --- a/docs/src/checkref +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -#set -x - -WARN_ON_FAILURE=0 -if [ "$1" = "--warn-on-failure" ]; then - WARN_ON_FAILURE=1 - shift -fi - -LANGUAGE="$1" -shift - -FILES="$@" - -# it'd be nice to build-depend on checklinks, but it's not available in Lucid -if [ -z $(which checklink) ]; then - echo "*** checklink not found, install w3c-linkchecker for better coverage" 1>&2 - exit 0 -fi - - -BAD_LINKS=0 -for F in $FILES; do - OUT=.checklink.$LANGUAGE.$(basename $F).tmp - rm -f $OUT - checklink --quiet --exclude "http(s?)://" $F | tee $OUT 2>&1 - egrep -q 'List of (broken links and other issues|duplicate and empty anchors)' $OUT - if [ $? -ne 1 ]; then - BAD_LINKS=1 - fi - rm -f $OUT -done - -if [ $BAD_LINKS -eq 1 ]; then - RET_VAL=1 - echo "***" 1>&2 - echo "*** warning: bad links found in $LANGUAGE docs!" 1>&2 - if [ $WARN_ON_FAILURE -eq 1 ]; then - echo "*** oh well, continuing anyway" 1>&2 - RET_VAL=0 - fi - echo "***" 1>&2 - exit $RET_VAL -else - echo "***" - echo "*** language: $LANGUAGE" - echo "*** all links are good!" - echo "***" -fi - diff --git a/docs/src/code/.gitignore b/docs/src/code/.gitignore deleted file mode 100644 index 7e77107bc95..00000000000 --- a/docs/src/code/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -Code_Notes -Code_Notes.tex -Style_Guide -Style_Guide.tex diff --git a/docs/src/code/CMS_buffer.eps b/docs/src/code/CMS_buffer.eps deleted file mode 100644 index ad52a2b76b1..00000000000 --- a/docs/src/code/CMS_buffer.eps +++ /dev/null @@ -1,2001 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: Diagram1.dia -%%Creator: Dia v0.92.2 -%%CreationDate: Sat Aug 21 16:06:04 2004 -%%For: paul -%%Orientation: Portrait -%%Magnification: 1.0000 -%%BoundingBox: 0 0 285 433 -%%BeginSetup -%%EndSetup -%%EndComments -%%BeginProlog -[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright -/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one -/two /three /four /five /six /seven /eight /nine /colon /semicolon -/less /equal /greater /question /at /A /B /C /D /E -/F /G /H /I /J /K /L /M /N /O -/P /Q /R /S /T /U /V /W /X /Y -/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c -/d /e /f /g /h /i /j /k /l /m -/n /o /p /q /r /s /t /u /v /w -/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright -/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior -/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf -/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla -/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde -/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex -/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring -/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis -/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave -/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def -/cp {closepath} bind def -/c {curveto} bind def -/f {fill} bind def -/a {arc} bind def -/ef {eofill} bind def -/ex {exch} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth pop} bind def -/tr {translate} bind def - -/ellipsedict 8 dict def -ellipsedict /mtrx matrix put -/ellipse -{ ellipsedict begin - /endangle exch def - /startangle exch def - /yrad exch def - /xrad exch def - /y exch def - /x exch def /savematrix mtrx currentmatrix def - x y tr xrad yrad sc - 0 0 1 startangle endangle arc - savematrix setmatrix - end -} def - -/mergeprocs { -dup length -3 -1 roll -dup -length -dup -5 1 roll -3 -1 roll -add -array cvx -dup -3 -1 roll -0 exch -putinterval -dup -4 2 roll -putinterval -} bind def -/dpi_x 300 def -/dpi_y 300 def -/conicto { - /to_y exch def - /to_x exch def - /conic_cntrl_y exch def - /conic_cntrl_x exch def - currentpoint - /p0_y exch def - /p0_x exch def - /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def - /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def - /p2_x p1_x to_x p0_x sub 1 3 div mul add def - /p2_y p1_y to_y p0_y sub 1 3 div mul add def - p1_x p1_y p2_x p2_y to_x to_y curveto -} bind def -/start_ol { gsave 1.1 dpi_x div dup scale} bind def -/end_ol { closepath fill grestore } bind def -28.346000 -28.346000 scale --5.049748 -18.150000 translate -%%EndProlog - - -1.000000 1.000000 1.000000 srgb -n 5.150000 2.950000 m 5.150000 18.100000 l 15.050000 18.100000 l 15.050000 2.950000 l f -0.100000 slw -[] 0 sd -[] 0 sd -0 slj -0.000000 0.000000 0.000000 srgb -n 5.150000 2.950000 m 5.150000 18.100000 l 15.050000 18.100000 l 15.050000 2.950000 l cp s -0.100000 slw -[] 0 sd -[] 0 sd -0 slc -n 5.150000 4.850000 m 14.950000 4.850000 l s -0.100000 slw -[] 0 sd -[] 0 sd -0 slc -n 5.100000 9.950000 m 15.000000 10.000000 l s -gsave 5.850000 4.100000 translate 0.035278 -0.035278 scale -start_ol -896 1600 moveto -896 384 lineto -1632 384 lineto -2007 384 2187 534 conicto -2368 684 2368 993 conicto -2368 1304 2187 1452 conicto -2007 1600 1632 1600 conicto -896 1600 lineto -896 2944 moveto -896 1984 lineto -1575 1984 lineto -1911 1984 2075 2102 conicto -2240 2221 2240 2464 conicto -2240 2705 2075 2824 conicto -1911 2944 1575 2944 conicto -896 2944 lineto -448 3328 moveto -1608 3328 lineto -2127 3328 2407 3117 conicto -2688 2906 2688 2517 conicto -2688 2216 2546 2037 conicto -2404 1859 2129 1815 conicto -2455 1743 2635 1514 conicto -2816 1286 2816 943 conicto -2816 492 2514 246 conicto -2212 0 1654 0 conicto -448 0 lineto -448 3328 lineto -end_ol grestore -gsave 6.264867 4.100000 translate 0.035278 -0.035278 scale -start_ol -448 986 moveto -448 2496 lineto -832 2496 lineto -832 1001 lineto -832 629 978 442 conicto -1124 256 1417 256 conicto -1768 256 1972 477 conicto -2176 699 2176 1081 conicto -2176 2496 lineto -2560 2496 lineto -2560 0 lineto -2176 0 lineto -2176 384 lineto -2022 157 1819 46 conicto -1617 -64 1349 -64 conicto -906 -64 677 203 conicto -448 471 448 986 conicto -end_ol grestore -gsave 6.654333 4.100000 translate 0.035278 -0.035278 scale -start_ol -1664 3520 moveto -1664 3200 lineto -1305 3200 lineto -1075 3200 985 3100 conicto -896 3001 896 2742 conicto -896 2496 lineto -1600 2496 lineto -1600 2176 lineto -896 2176 lineto -896 0 lineto -512 0 lineto -512 2176 lineto -128 2176 lineto -128 2496 lineto -512 2496 lineto -512 2691 lineto -512 3124 703 3322 conicto -894 3520 1310 3520 conicto -1664 3520 lineto -end_ol grestore -gsave 6.866000 4.100000 translate 0.035278 -0.035278 scale -start_ol -1664 3520 moveto -1664 3200 lineto -1305 3200 lineto -1075 3200 985 3100 conicto -896 3001 896 2742 conicto -896 2496 lineto -1600 2496 lineto -1600 2176 lineto -896 2176 lineto -896 0 lineto -512 0 lineto -512 2176 lineto -128 2176 lineto -128 2496 lineto -512 2496 lineto -512 2691 lineto -512 3124 703 3322 conicto -894 3520 1310 3520 conicto -1664 3520 lineto -end_ol grestore -gsave 7.077667 4.100000 translate 0.035278 -0.035278 scale -start_ol -2624 1352 moveto -2624 1152 lineto -704 1152 lineto -731 715 960 485 conicto -1189 256 1597 256 conicto -1834 256 2056 320 conicto -2278 384 2496 512 conicto -2496 128 lineto -2273 34 2039 -15 conicto -1805 -64 1565 -64 conicto -961 -64 608 284 conicto -256 632 256 1225 conicto -256 1839 595 2199 conicto -934 2560 1509 2560 conicto -2024 2560 2324 2235 conicto -2624 1910 2624 1352 conicto -2240 1472 moveto -2235 1822 2043 2031 conicto -1852 2240 1537 2240 conicto -1180 2240 965 2038 conicto -750 1836 718 1470 conicto -2240 1472 lineto -end_ol grestore -gsave 7.450200 4.100000 translate 0.035278 -0.035278 scale -start_ol -1920 2112 moveto -1848 2178 1764 2209 conicto -1680 2240 1578 2240 conicto -1218 2240 1025 2001 conicto -832 1763 832 1317 conicto -832 0 lineto -448 0 lineto -448 2496 lineto -832 2496 lineto -832 2112 lineto -965 2339 1180 2449 conicto -1396 2560 1702 2560 conicto -1747 2560 1799 2560 conicto -1852 2560 1917 2560 conicto -1920 2112 lineto -end_ol grestore -gsave 7.704200 4.100000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.898933 4.100000 translate 0.035278 -0.035278 scale -start_ol -448 3328 moveto -1067 3328 lineto -2560 544 lineto -2560 3328 lineto -3008 3328 lineto -3008 0 lineto -2389 0 lineto -896 2784 lineto -896 0 lineto -448 0 lineto -448 3328 lineto -end_ol grestore -gsave 8.356133 4.100000 translate 0.035278 -0.035278 scale -start_ol -1559 1280 moveto -1040 1280 840 1160 conicto -640 1041 640 754 conicto -640 525 790 390 conicto -940 256 1198 256 conicto -1554 256 1769 510 conicto -1984 765 1984 1187 conicto -1984 1280 lineto -1559 1280 lineto -2368 1449 moveto -2368 0 lineto -1984 0 lineto -1984 384 lineto -1842 154 1628 45 conicto -1415 -64 1107 -64 conicto -717 -64 486 154 conicto -256 372 256 739 conicto -256 1166 539 1383 conicto -822 1600 1384 1600 conicto -1984 1600 lineto -1984 1641 lineto -1984 1927 1796 2083 conicto -1608 2240 1266 2240 conicto -1049 2240 843 2192 conicto -638 2144 448 2048 conicto -448 2432 lineto -673 2496 884 2528 conicto -1095 2560 1295 2560 conicto -1835 2560 2101 2284 conicto -2368 2009 2368 1449 conicto -end_ol grestore -gsave 8.728667 4.100000 translate 0.035278 -0.035278 scale -start_ol -2431 2020 moveto -2590 2296 2809 2428 conicto -3029 2560 3325 2560 conicto -3726 2560 3943 2287 conicto -4160 2014 4160 1509 conicto -4160 0 lineto -3776 0 lineto -3776 1496 lineto -3776 1874 3641 2057 conicto -3506 2240 3228 2240 conicto -2890 2240 2693 2018 conicto -2496 1796 2496 1413 conicto -2496 0 lineto -2112 0 lineto -2112 1496 lineto -2112 1876 1976 2058 conicto -1841 2240 1560 2240 conicto -1225 2240 1028 2017 conicto -832 1794 832 1413 conicto -832 0 lineto -448 0 lineto -448 2496 lineto -832 2496 lineto -832 2112 lineto -977 2341 1180 2450 conicto -1383 2560 1662 2560 conicto -1942 2560 2139 2422 conicto -2337 2284 2431 2020 conicto -end_ol grestore -gsave 9.321333 4.100000 translate 0.035278 -0.035278 scale -start_ol -2624 1352 moveto -2624 1152 lineto -704 1152 lineto -731 715 960 485 conicto -1189 256 1597 256 conicto -1834 256 2056 320 conicto -2278 384 2496 512 conicto -2496 128 lineto -2273 34 2039 -15 conicto -1805 -64 1565 -64 conicto -961 -64 608 284 conicto -256 632 256 1225 conicto -256 1839 595 2199 conicto -934 2560 1509 2560 conicto -2024 2560 2324 2235 conicto -2624 1910 2624 1352 conicto -2240 1472 moveto -2235 1822 2043 2031 conicto -1852 2240 1537 2240 conicto -1180 2240 965 2038 conicto -750 1836 718 1470 conicto -2240 1472 lineto -end_ol grestore -gsave 9.693867 4.100000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.888600 4.100000 translate 0.035278 -0.035278 scale -start_ol -384 3520 moveto -1280 3520 lineto -1280 3200 lineto -768 3200 lineto -768 -256 lineto -1280 -256 lineto -1280 -576 lineto -384 -576 lineto -384 3520 lineto -end_ol grestore -gsave 10.125667 4.100000 translate 0.035278 -0.035278 scale -start_ol -1824 1808 moveto -2170 1739 2365 1519 conicto -2560 1299 2560 976 conicto -2560 479 2213 207 conicto -1867 -64 1229 -64 conicto -1015 -64 788 -16 conicto -562 32 320 128 conicto -320 576 lineto -512 450 741 385 conicto -971 320 1220 320 conicto -1656 320 1884 487 conicto -2112 655 2112 974 conicto -2112 1268 1892 1434 conicto -1673 1600 1283 1600 conicto -896 1600 lineto -896 1984 lineto -1301 1984 lineto -1632 1984 1808 2114 conicto -1984 2244 1984 2488 conicto -1984 2739 1802 2873 conicto -1621 3008 1283 3008 conicto -1104 3008 899 2977 conicto -694 2946 448 2880 conicto -448 3264 lineto -701 3328 921 3360 conicto -1142 3392 1338 3392 conicto -1843 3392 2137 3160 conicto -2432 2929 2432 2535 conicto -2432 2260 2274 2071 conicto -2116 1882 1824 1808 conicto -end_ol grestore -gsave 10.515133 4.100000 translate 0.035278 -0.035278 scale -start_ol -853 384 moveto -2450 384 lineto -2450 0 lineto -320 0 lineto -320 384 lineto -579 648 1027 1094 conicto -1476 1540 1591 1669 conicto -1810 1911 1897 2079 conicto -1984 2247 1984 2409 conicto -1984 2674 1793 2841 conicto -1602 3008 1295 3008 conicto -1078 3008 836 2944 conicto -595 2881 320 2752 conicto -320 3200 lineto -597 3296 838 3344 conicto -1079 3392 1279 3392 conicto -1805 3392 2118 3133 conicto -2432 2875 2432 2443 conicto -2432 2238 2353 2054 conicto -2275 1870 2070 1620 conicto -2012 1556 1708 1247 conicto -1405 939 853 384 conicto -end_ol grestore -gsave 10.904600 4.100000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 11.099333 4.100000 translate 0.035278 -0.035278 scale -start_ol -2240 2432 moveto -2240 2048 lineto -2066 2144 1892 2192 conicto -1718 2240 1541 2240 conicto -1143 2240 923 1979 conicto -704 1718 704 1248 conicto -704 778 923 517 conicto -1143 256 1541 256 conicto -1718 256 1892 304 conicto -2066 352 2240 448 conicto -2240 64 lineto -2068 0 1883 -32 conicto -1698 -64 1490 -64 conicto -924 -64 590 290 conicto -256 645 256 1248 conicto -256 1859 593 2209 conicto -931 2560 1517 2560 conicto -1707 2560 1888 2528 conicto -2070 2496 2240 2432 conicto -end_ol grestore -gsave 11.438000 4.100000 translate 0.035278 -0.035278 scale -start_ol -2560 1509 moveto -2560 0 lineto -2176 0 lineto -2176 1496 lineto -2176 1869 2029 2054 conicto -1883 2240 1590 2240 conicto -1238 2240 1035 2018 conicto -832 1796 832 1413 conicto -832 0 lineto -448 0 lineto -448 3520 lineto -832 3520 lineto -832 2112 lineto -983 2337 1188 2448 conicto -1394 2560 1662 2560 conicto -2106 2560 2333 2293 conicto -2560 2027 2560 1509 conicto -end_ol grestore -gsave 11.827467 4.100000 translate 0.035278 -0.035278 scale -start_ol -1559 1280 moveto -1040 1280 840 1160 conicto -640 1041 640 754 conicto -640 525 790 390 conicto -940 256 1198 256 conicto -1554 256 1769 510 conicto -1984 765 1984 1187 conicto -1984 1280 lineto -1559 1280 lineto -2368 1449 moveto -2368 0 lineto -1984 0 lineto -1984 384 lineto -1842 154 1628 45 conicto -1415 -64 1107 -64 conicto -717 -64 486 154 conicto -256 372 256 739 conicto -256 1166 539 1383 conicto -822 1600 1384 1600 conicto -1984 1600 lineto -1984 1641 lineto -1984 1927 1796 2083 conicto -1608 2240 1266 2240 conicto -1049 2240 843 2192 conicto -638 2144 448 2048 conicto -448 2432 lineto -673 2496 884 2528 conicto -1095 2560 1295 2560 conicto -1835 2560 2101 2284 conicto -2368 2009 2368 1449 conicto -end_ol grestore -gsave 12.200000 4.100000 translate 0.035278 -0.035278 scale -start_ol -1920 2112 moveto -1848 2178 1764 2209 conicto -1680 2240 1578 2240 conicto -1218 2240 1025 2001 conicto -832 1763 832 1317 conicto -832 0 lineto -448 0 lineto -448 2496 lineto -832 2496 lineto -832 2112 lineto -965 2339 1180 2449 conicto -1396 2560 1702 2560 conicto -1747 2560 1799 2560 conicto -1852 2560 1917 2560 conicto -1920 2112 lineto -end_ol grestore -gsave 12.454000 4.100000 translate 0.035278 -0.035278 scale -start_ol -1344 3520 moveto -1344 -576 lineto -448 -576 lineto -448 -256 lineto -960 -256 lineto -960 3200 lineto -448 3200 lineto -448 3520 lineto -1344 3520 lineto -end_ol grestore -gsave 5.700000 6.050000 translate 0.035278 -0.035278 scale -start_ol -2944 3072 moveto -2944 2624 lineto -2713 2817 2452 2912 conicto -2192 3008 1897 3008 conicto -1319 3008 1011 2662 conicto -704 2316 704 1663 conicto -704 1012 1011 666 conicto -1319 320 1897 320 conicto -2192 320 2452 415 conicto -2713 511 2944 704 conicto -2944 256 lineto -2707 96 2442 16 conicto -2178 -64 1883 -64 conicto -1126 -64 691 399 conicto -256 862 256 1663 conicto -256 2466 691 2929 conicto -1126 3392 1883 3392 conicto -2183 3392 2447 3311 conicto -2712 3231 2944 3072 conicto -end_ol grestore -gsave 6.123333 6.050000 translate 0.035278 -0.035278 scale -start_ol -448 3328 moveto -1131 3328 lineto -1983 1063 lineto -2839 3328 lineto -3520 3328 lineto -3520 0 lineto -3072 0 lineto -3072 2923 lineto -2211 640 lineto -1757 640 lineto -896 2923 lineto -896 0 lineto -448 0 lineto -448 3328 lineto -end_ol grestore -gsave 6.648267 6.050000 translate 0.035278 -0.035278 scale -start_ol -2496 3200 moveto -2496 2752 lineto -2234 2882 2001 2945 conicto -1768 3008 1552 3008 conicto -1175 3008 971 2863 conicto -768 2718 768 2452 conicto -768 2228 905 2113 conicto -1042 1999 1426 1929 conicto -1708 1873 lineto -2210 1778 2449 1540 conicto -2688 1303 2688 903 conicto -2688 427 2358 181 conicto -2029 -64 1392 -64 conicto -1152 -64 881 -15 conicto -610 33 320 128 conicto -320 576 lineto -603 448 875 384 conicto -1147 320 1409 320 conicto -1807 320 2023 465 conicto -2240 610 2240 878 conicto -2240 1113 2084 1245 conicto -1928 1378 1572 1444 conicto -1288 1497 lineto -776 1599 548 1817 conicto -320 2035 320 2424 conicto -320 2874 636 3133 conicto -952 3392 1507 3392 conicto -1744 3392 1991 3344 conicto -2238 3297 2496 3200 conicto -end_ol grestore -gsave 7.037733 6.050000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.232467 6.050000 translate 0.035278 -0.035278 scale -start_ol -448 3328 moveto -896 3328 lineto -896 1984 lineto -2560 1984 lineto -2560 3328 lineto -3008 3328 lineto -3008 0 lineto -2560 0 lineto -2560 1600 lineto -896 1600 lineto -896 0 lineto -448 0 lineto -448 3328 lineto -end_ol grestore -gsave 7.689667 6.050000 translate 0.035278 -0.035278 scale -start_ol -2624 1352 moveto -2624 1152 lineto -704 1152 lineto -731 715 960 485 conicto -1189 256 1597 256 conicto -1834 256 2056 320 conicto -2278 384 2496 512 conicto -2496 128 lineto -2273 34 2039 -15 conicto -1805 -64 1565 -64 conicto -961 -64 608 284 conicto -256 632 256 1225 conicto -256 1839 595 2199 conicto -934 2560 1509 2560 conicto -2024 2560 2324 2235 conicto -2624 1910 2624 1352 conicto -2240 1472 moveto -2235 1822 2043 2031 conicto -1852 2240 1537 2240 conicto -1180 2240 965 2038 conicto -750 1836 718 1470 conicto -2240 1472 lineto -end_ol grestore -gsave 8.062200 6.050000 translate 0.035278 -0.035278 scale -start_ol -1559 1280 moveto -1040 1280 840 1160 conicto -640 1041 640 754 conicto -640 525 790 390 conicto -940 256 1198 256 conicto -1554 256 1769 510 conicto -1984 765 1984 1187 conicto -1984 1280 lineto -1559 1280 lineto -2368 1449 moveto -2368 0 lineto -1984 0 lineto -1984 384 lineto -1842 154 1628 45 conicto -1415 -64 1107 -64 conicto -717 -64 486 154 conicto -256 372 256 739 conicto -256 1166 539 1383 conicto -822 1600 1384 1600 conicto -1984 1600 lineto -1984 1641 lineto -1984 1927 1796 2083 conicto -1608 2240 1266 2240 conicto -1049 2240 843 2192 conicto -638 2144 448 2048 conicto -448 2432 lineto -673 2496 884 2528 conicto -1095 2560 1295 2560 conicto -1835 2560 2101 2284 conicto -2368 2009 2368 1449 conicto -end_ol grestore -gsave 8.434733 6.050000 translate 0.035278 -0.035278 scale -start_ol -2112 2112 moveto -2112 3520 lineto -2496 3520 lineto -2496 0 lineto -2112 0 lineto -2112 384 lineto -1980 156 1779 46 conicto -1578 -64 1297 -64 conicto -835 -64 545 297 conicto -256 659 256 1248 conicto -256 1837 545 2198 conicto -835 2560 1297 2560 conicto -1578 2560 1779 2450 conicto -1980 2340 2112 2112 conicto -704 1249 moveto -704 784 891 520 conicto -1079 256 1407 256 conicto -1735 256 1923 520 conicto -2112 784 2112 1249 conicto -2112 1713 1923 1976 conicto -1735 2240 1407 2240 conicto -1079 2240 891 1976 conicto -704 1713 704 1249 conicto -end_ol grestore -gsave 8.824200 6.050000 translate 0.035278 -0.035278 scale -start_ol -2624 1352 moveto -2624 1152 lineto -704 1152 lineto -731 715 960 485 conicto -1189 256 1597 256 conicto -1834 256 2056 320 conicto -2278 384 2496 512 conicto -2496 128 lineto -2273 34 2039 -15 conicto -1805 -64 1565 -64 conicto -961 -64 608 284 conicto -256 632 256 1225 conicto -256 1839 595 2199 conicto -934 2560 1509 2560 conicto -2024 2560 2324 2235 conicto -2624 1910 2624 1352 conicto -2240 1472 moveto -2235 1822 2043 2031 conicto -1852 2240 1537 2240 conicto -1180 2240 965 2038 conicto -750 1836 718 1470 conicto -2240 1472 lineto -end_ol grestore -gsave 9.196733 6.050000 translate 0.035278 -0.035278 scale -start_ol -1920 2112 moveto -1848 2178 1764 2209 conicto -1680 2240 1578 2240 conicto -1218 2240 1025 2001 conicto -832 1763 832 1317 conicto -832 0 lineto -448 0 lineto -448 2496 lineto -832 2496 lineto -832 2112 lineto -965 2339 1180 2449 conicto -1396 2560 1702 2560 conicto -1747 2560 1799 2560 conicto -1852 2560 1917 2560 conicto -1920 2112 lineto -end_ol grestore -gsave 9.450733 6.050000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.645467 6.050000 translate 0.035278 -0.035278 scale -start_ol -2304 -384 moveto -2304 -704 lineto -2169 -704 lineto -1639 -704 1459 -541 conicto -1280 -378 1280 109 conicto -1280 616 lineto -1280 955 1158 1085 conicto -1036 1216 714 1216 conicto -576 1216 lineto -576 1536 lineto -714 1536 lineto -1038 1536 1159 1667 conicto -1280 1799 1280 2139 conicto -1280 2687 lineto -1280 3187 1459 3353 conicto -1639 3520 2169 3520 conicto -2304 3520 lineto -2304 3200 lineto -2157 3200 lineto -1851 3200 1757 3099 conicto -1664 2999 1664 2677 conicto -1664 2111 lineto -1664 1755 1569 1593 conicto -1474 1432 1244 1375 conicto -1476 1315 1570 1159 conicto -1664 1004 1664 661 conicto -1664 118 lineto -1664 -191 1757 -287 conicto -1851 -384 2157 -384 conicto -2304 -384 lineto -end_ol grestore -gsave 5.700000 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 5.894733 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.089467 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.284200 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.478933 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.673667 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.868400 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.063133 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.257867 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.452600 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.647333 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.842067 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.036800 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.231533 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.426267 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.621000 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.815733 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.010467 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.205200 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.399933 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.594667 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.789400 6.850000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.984133 6.850000 translate 0.035278 -0.035278 scale -start_ol -2075 1568 moveto -2215 1519 2346 1356 conicto -2478 1194 2612 910 conicto -3072 0 lineto -2587 0 lineto -2184 855 lineto -2012 1189 1850 1298 conicto -1688 1408 1409 1408 conicto -896 1408 lineto -896 0 lineto -448 0 lineto -448 3328 lineto -1488 3328 lineto -2060 3328 2342 3090 conicto -2624 2853 2624 2374 conicto -2624 2061 2484 1854 conicto -2344 1648 2075 1568 conicto -896 2944 moveto -896 1792 lineto -1488 1792 lineto -1829 1792 2002 1939 conicto -2176 2086 2176 2370 conicto -2176 2655 2002 2799 conicto -1829 2944 1488 2944 conicto -896 2944 lineto -end_ol grestore -gsave 10.382067 6.850000 translate 0.035278 -0.035278 scale -start_ol -2624 1352 moveto -2624 1152 lineto -704 1152 lineto -731 715 960 485 conicto -1189 256 1597 256 conicto -1834 256 2056 320 conicto -2278 384 2496 512 conicto -2496 128 lineto -2273 34 2039 -15 conicto -1805 -64 1565 -64 conicto -961 -64 608 284 conicto -256 632 256 1225 conicto -256 1839 595 2199 conicto -934 2560 1509 2560 conicto -2024 2560 2324 2235 conicto -2624 1910 2624 1352 conicto -2240 1472 moveto -2235 1822 2043 2031 conicto -1852 2240 1537 2240 conicto -1180 2240 965 2038 conicto -750 1836 718 1470 conicto -2240 1472 lineto -end_ol grestore -gsave 10.754600 6.850000 translate 0.035278 -0.035278 scale -start_ol -1559 1280 moveto -1040 1280 840 1160 conicto -640 1041 640 754 conicto -640 525 790 390 conicto -940 256 1198 256 conicto -1554 256 1769 510 conicto -1984 765 1984 1187 conicto -1984 1280 lineto -1559 1280 lineto -2368 1449 moveto -2368 0 lineto -1984 0 lineto -1984 384 lineto -1842 154 1628 45 conicto -1415 -64 1107 -64 conicto -717 -64 486 154 conicto -256 372 256 739 conicto -256 1166 539 1383 conicto -822 1600 1384 1600 conicto -1984 1600 lineto -1984 1641 lineto -1984 1927 1796 2083 conicto -1608 2240 1266 2240 conicto -1049 2240 843 2192 conicto -638 2144 448 2048 conicto -448 2432 lineto -673 2496 884 2528 conicto -1095 2560 1295 2560 conicto -1835 2560 2101 2284 conicto -2368 2009 2368 1449 conicto -end_ol grestore -gsave 11.127133 6.850000 translate 0.035278 -0.035278 scale -start_ol -2112 2112 moveto -2112 3520 lineto -2496 3520 lineto -2496 0 lineto -2112 0 lineto -2112 384 lineto -1980 156 1779 46 conicto -1578 -64 1297 -64 conicto -835 -64 545 297 conicto -256 659 256 1248 conicto -256 1837 545 2198 conicto -835 2560 1297 2560 conicto -1578 2560 1779 2450 conicto -1980 2340 2112 2112 conicto -704 1249 moveto -704 784 891 520 conicto -1079 256 1407 256 conicto -1735 256 1923 520 conicto -2112 784 2112 1249 conicto -2112 1713 1923 1976 conicto -1735 2240 1407 2240 conicto -1079 2240 891 1976 conicto -704 1713 704 1249 conicto -end_ol grestore -gsave 11.516600 6.850000 translate 0.035278 -0.035278 scale -start_ol -512 576 moveto -960 576 lineto -960 196 lineto -640 -512 lineto -320 -512 lineto -512 196 lineto -512 576 lineto -end_ol grestore -gsave 5.700000 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 5.894733 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.089467 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.284200 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.478933 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.673667 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.868400 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.063133 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.257867 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.452600 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.647333 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.842067 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.036800 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.231533 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.426267 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.621000 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.815733 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.010467 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.205200 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.399933 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.594667 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.789400 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.984133 7.650000 translate 0.035278 -0.035278 scale -start_ol -448 3328 moveto -1131 3328 lineto -1983 1063 lineto -2839 3328 lineto -3520 3328 lineto -3520 0 lineto -3072 0 lineto -3072 2923 lineto -2211 640 lineto -1757 640 lineto -896 2923 lineto -896 0 lineto -448 0 lineto -448 3328 lineto -end_ol grestore -gsave 10.509067 7.650000 translate 0.035278 -0.035278 scale -start_ol -2624 1352 moveto -2624 1152 lineto -704 1152 lineto -731 715 960 485 conicto -1189 256 1597 256 conicto -1834 256 2056 320 conicto -2278 384 2496 512 conicto -2496 128 lineto -2273 34 2039 -15 conicto -1805 -64 1565 -64 conicto -961 -64 608 284 conicto -256 632 256 1225 conicto -256 1839 595 2199 conicto -934 2560 1509 2560 conicto -2024 2560 2324 2235 conicto -2624 1910 2624 1352 conicto -2240 1472 moveto -2235 1822 2043 2031 conicto -1852 2240 1537 2240 conicto -1180 2240 965 2038 conicto -750 1836 718 1470 conicto -2240 1472 lineto -end_ol grestore -gsave 10.881600 7.650000 translate 0.035278 -0.035278 scale -start_ol -2048 2432 moveto -2048 2048 lineto -1868 2144 1674 2192 conicto -1480 2240 1273 2240 conicto -957 2240 798 2144 conicto -640 2048 640 1856 conicto -640 1709 757 1625 conicto -875 1542 1229 1467 conicto -1380 1435 lineto -1812 1341 1994 1170 conicto -2176 999 2176 692 conicto -2176 343 1899 139 conicto -1622 -64 1137 -64 conicto -936 -64 717 -32 conicto -498 0 256 64 conicto -256 512 lineto -490 385 718 320 conicto -947 256 1170 256 conicto -1470 256 1631 358 conicto -1792 461 1792 647 conicto -1792 820 1670 912 conicto -1549 1004 1141 1089 conicto -988 1123 lineto -600 1203 428 1369 conicto -256 1535 256 1824 conicto -256 2177 510 2368 conicto -765 2560 1233 2560 conicto -1466 2560 1670 2528 conicto -1875 2496 2048 2432 conicto -end_ol grestore -gsave 11.203333 7.650000 translate 0.035278 -0.035278 scale -start_ol -2048 2432 moveto -2048 2048 lineto -1868 2144 1674 2192 conicto -1480 2240 1273 2240 conicto -957 2240 798 2144 conicto -640 2048 640 1856 conicto -640 1709 757 1625 conicto -875 1542 1229 1467 conicto -1380 1435 lineto -1812 1341 1994 1170 conicto -2176 999 2176 692 conicto -2176 343 1899 139 conicto -1622 -64 1137 -64 conicto -936 -64 717 -32 conicto -498 0 256 64 conicto -256 512 lineto -490 385 718 320 conicto -947 256 1170 256 conicto -1470 256 1631 358 conicto -1792 461 1792 647 conicto -1792 820 1670 912 conicto -1549 1004 1141 1089 conicto -988 1123 lineto -600 1203 428 1369 conicto -256 1535 256 1824 conicto -256 2177 510 2368 conicto -765 2560 1233 2560 conicto -1466 2560 1670 2528 conicto -1875 2496 2048 2432 conicto -end_ol grestore -gsave 11.525067 7.650000 translate 0.035278 -0.035278 scale -start_ol -1559 1280 moveto -1040 1280 840 1160 conicto -640 1041 640 754 conicto -640 525 790 390 conicto -940 256 1198 256 conicto -1554 256 1769 510 conicto -1984 765 1984 1187 conicto -1984 1280 lineto -1559 1280 lineto -2368 1449 moveto -2368 0 lineto -1984 0 lineto -1984 384 lineto -1842 154 1628 45 conicto -1415 -64 1107 -64 conicto -717 -64 486 154 conicto -256 372 256 739 conicto -256 1166 539 1383 conicto -822 1600 1384 1600 conicto -1984 1600 lineto -1984 1641 lineto -1984 1927 1796 2083 conicto -1608 2240 1266 2240 conicto -1049 2240 843 2192 conicto -638 2144 448 2048 conicto -448 2432 lineto -673 2496 884 2528 conicto -1095 2560 1295 2560 conicto -1835 2560 2101 2284 conicto -2368 2009 2368 1449 conicto -end_ol grestore -gsave 11.897600 7.650000 translate 0.035278 -0.035278 scale -start_ol -2112 1278 moveto -2112 1736 1926 1988 conicto -1741 2240 1407 2240 conicto -1074 2240 889 1988 conicto -704 1736 704 1278 conicto -704 824 889 572 conicto -1074 320 1407 320 conicto -1741 320 1926 572 conicto -2112 824 2112 1278 conicto -2496 289 moveto -2496 -343 2214 -651 conicto -1933 -960 1352 -960 conicto -1137 -960 946 -928 conicto -755 -896 576 -832 conicto -576 -448 lineto -758 -546 936 -593 conicto -1114 -640 1298 -640 conicto -1707 -640 1909 -426 conicto -2112 -212 2112 220 conicto -2112 448 lineto -1982 223 1780 111 conicto -1578 0 1297 0 conicto -828 0 542 350 conicto -256 701 256 1279 conicto -256 1859 542 2209 conicto -828 2560 1297 2560 conicto -1578 2560 1780 2448 conicto -1982 2337 2112 2112 conicto -2112 2496 lineto -2496 2496 lineto -2496 289 lineto -end_ol grestore -gsave 12.287067 7.650000 translate 0.035278 -0.035278 scale -start_ol -2624 1352 moveto -2624 1152 lineto -704 1152 lineto -731 715 960 485 conicto -1189 256 1597 256 conicto -1834 256 2056 320 conicto -2278 384 2496 512 conicto -2496 128 lineto -2273 34 2039 -15 conicto -1805 -64 1565 -64 conicto -961 -64 608 284 conicto -256 632 256 1225 conicto -256 1839 595 2199 conicto -934 2560 1509 2560 conicto -2024 2560 2324 2235 conicto -2624 1910 2624 1352 conicto -2240 1472 moveto -2235 1822 2043 2031 conicto -1852 2240 1537 2240 conicto -1180 2240 965 2038 conicto -750 1836 718 1470 conicto -2240 1472 lineto -end_ol grestore -gsave 12.659600 7.650000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 12.854333 7.650000 translate 0.035278 -0.035278 scale -start_ol -448 3328 moveto -896 3328 lineto -896 0 lineto -448 0 lineto -448 3328 lineto -end_ol grestore -gsave 13.032133 7.650000 translate 0.035278 -0.035278 scale -start_ol -896 2944 moveto -896 384 lineto -1454 384 lineto -2160 384 2488 692 conicto -2816 1001 2816 1667 conicto -2816 2329 2488 2636 conicto -2160 2944 1454 2944 conicto -896 2944 lineto -448 3328 moveto -1383 3328 lineto -2355 3328 2809 2925 conicto -3264 2523 3264 1667 conicto -3264 807 2807 403 conicto -2350 0 1383 0 conicto -448 0 lineto -448 3328 lineto -end_ol grestore -gsave 5.700000 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 5.894733 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.089467 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.284200 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.478933 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.673667 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.868400 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.063133 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.257867 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.452600 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.647333 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.842067 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.036800 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.231533 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.426267 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.621000 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.815733 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.010467 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.205200 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.399933 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.594667 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.789400 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.984133 8.450000 translate 0.035278 -0.035278 scale -start_ol -448 3328 moveto -1131 3328 lineto -1983 1063 lineto -2839 3328 lineto -3520 3328 lineto -3520 0 lineto -3072 0 lineto -3072 2923 lineto -2211 640 lineto -1757 640 lineto -896 2923 lineto -896 0 lineto -448 0 lineto -448 3328 lineto -end_ol grestore -gsave 10.509067 8.450000 translate 0.035278 -0.035278 scale -start_ol -2624 1352 moveto -2624 1152 lineto -704 1152 lineto -731 715 960 485 conicto -1189 256 1597 256 conicto -1834 256 2056 320 conicto -2278 384 2496 512 conicto -2496 128 lineto -2273 34 2039 -15 conicto -1805 -64 1565 -64 conicto -961 -64 608 284 conicto -256 632 256 1225 conicto -256 1839 595 2199 conicto -934 2560 1509 2560 conicto -2024 2560 2324 2235 conicto -2624 1910 2624 1352 conicto -2240 1472 moveto -2235 1822 2043 2031 conicto -1852 2240 1537 2240 conicto -1180 2240 965 2038 conicto -750 1836 718 1470 conicto -2240 1472 lineto -end_ol grestore -gsave 10.881600 8.450000 translate 0.035278 -0.035278 scale -start_ol -2048 2432 moveto -2048 2048 lineto -1868 2144 1674 2192 conicto -1480 2240 1273 2240 conicto -957 2240 798 2144 conicto -640 2048 640 1856 conicto -640 1709 757 1625 conicto -875 1542 1229 1467 conicto -1380 1435 lineto -1812 1341 1994 1170 conicto -2176 999 2176 692 conicto -2176 343 1899 139 conicto -1622 -64 1137 -64 conicto -936 -64 717 -32 conicto -498 0 256 64 conicto -256 512 lineto -490 385 718 320 conicto -947 256 1170 256 conicto -1470 256 1631 358 conicto -1792 461 1792 647 conicto -1792 820 1670 912 conicto -1549 1004 1141 1089 conicto -988 1123 lineto -600 1203 428 1369 conicto -256 1535 256 1824 conicto -256 2177 510 2368 conicto -765 2560 1233 2560 conicto -1466 2560 1670 2528 conicto -1875 2496 2048 2432 conicto -end_ol grestore -gsave 11.203333 8.450000 translate 0.035278 -0.035278 scale -start_ol -2048 2432 moveto -2048 2048 lineto -1868 2144 1674 2192 conicto -1480 2240 1273 2240 conicto -957 2240 798 2144 conicto -640 2048 640 1856 conicto -640 1709 757 1625 conicto -875 1542 1229 1467 conicto -1380 1435 lineto -1812 1341 1994 1170 conicto -2176 999 2176 692 conicto -2176 343 1899 139 conicto -1622 -64 1137 -64 conicto -936 -64 717 -32 conicto -498 0 256 64 conicto -256 512 lineto -490 385 718 320 conicto -947 256 1170 256 conicto -1470 256 1631 358 conicto -1792 461 1792 647 conicto -1792 820 1670 912 conicto -1549 1004 1141 1089 conicto -988 1123 lineto -600 1203 428 1369 conicto -256 1535 256 1824 conicto -256 2177 510 2368 conicto -765 2560 1233 2560 conicto -1466 2560 1670 2528 conicto -1875 2496 2048 2432 conicto -end_ol grestore -gsave 11.525067 8.450000 translate 0.035278 -0.035278 scale -start_ol -1559 1280 moveto -1040 1280 840 1160 conicto -640 1041 640 754 conicto -640 525 790 390 conicto -940 256 1198 256 conicto -1554 256 1769 510 conicto -1984 765 1984 1187 conicto -1984 1280 lineto -1559 1280 lineto -2368 1449 moveto -2368 0 lineto -1984 0 lineto -1984 384 lineto -1842 154 1628 45 conicto -1415 -64 1107 -64 conicto -717 -64 486 154 conicto -256 372 256 739 conicto -256 1166 539 1383 conicto -822 1600 1384 1600 conicto -1984 1600 lineto -1984 1641 lineto -1984 1927 1796 2083 conicto -1608 2240 1266 2240 conicto -1049 2240 843 2192 conicto -638 2144 448 2048 conicto -448 2432 lineto -673 2496 884 2528 conicto -1095 2560 1295 2560 conicto -1835 2560 2101 2284 conicto -2368 2009 2368 1449 conicto -end_ol grestore -gsave 11.897600 8.450000 translate 0.035278 -0.035278 scale -start_ol -2112 1278 moveto -2112 1736 1926 1988 conicto -1741 2240 1407 2240 conicto -1074 2240 889 1988 conicto -704 1736 704 1278 conicto -704 824 889 572 conicto -1074 320 1407 320 conicto -1741 320 1926 572 conicto -2112 824 2112 1278 conicto -2496 289 moveto -2496 -343 2214 -651 conicto -1933 -960 1352 -960 conicto -1137 -960 946 -928 conicto -755 -896 576 -832 conicto -576 -448 lineto -758 -546 936 -593 conicto -1114 -640 1298 -640 conicto -1707 -640 1909 -426 conicto -2112 -212 2112 220 conicto -2112 448 lineto -1982 223 1780 111 conicto -1578 0 1297 0 conicto -828 0 542 350 conicto -256 701 256 1279 conicto -256 1859 542 2209 conicto -828 2560 1297 2560 conicto -1578 2560 1780 2448 conicto -1982 2337 2112 2112 conicto -2112 2496 lineto -2496 2496 lineto -2496 289 lineto -end_ol grestore -gsave 12.287067 8.450000 translate 0.035278 -0.035278 scale -start_ol -2624 1352 moveto -2624 1152 lineto -704 1152 lineto -731 715 960 485 conicto -1189 256 1597 256 conicto -1834 256 2056 320 conicto -2278 384 2496 512 conicto -2496 128 lineto -2273 34 2039 -15 conicto -1805 -64 1565 -64 conicto -961 -64 608 284 conicto -256 632 256 1225 conicto -256 1839 595 2199 conicto -934 2560 1509 2560 conicto -2024 2560 2324 2235 conicto -2624 1910 2624 1352 conicto -2240 1472 moveto -2235 1822 2043 2031 conicto -1852 2240 1537 2240 conicto -1180 2240 965 2038 conicto -750 1836 718 1470 conicto -2240 1472 lineto -end_ol grestore -gsave 12.659600 8.450000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 12.854333 8.450000 translate 0.035278 -0.035278 scale -start_ol -2496 3200 moveto -2496 2752 lineto -2234 2882 2001 2945 conicto -1768 3008 1552 3008 conicto -1175 3008 971 2863 conicto -768 2718 768 2452 conicto -768 2228 905 2113 conicto -1042 1999 1426 1929 conicto -1708 1873 lineto -2210 1778 2449 1540 conicto -2688 1303 2688 903 conicto -2688 427 2358 181 conicto -2029 -64 1392 -64 conicto -1152 -64 881 -15 conicto -610 33 320 128 conicto -320 576 lineto -603 448 875 384 conicto -1147 320 1409 320 conicto -1807 320 2023 465 conicto -2240 610 2240 878 conicto -2240 1113 2084 1245 conicto -1928 1378 1572 1444 conicto -1288 1497 lineto -776 1599 548 1817 conicto -320 2035 320 2424 conicto -320 2874 636 3133 conicto -952 3392 1507 3392 conicto -1744 3392 1991 3344 conicto -2238 3297 2496 3200 conicto -end_ol grestore -gsave 13.243800 8.450000 translate 0.035278 -0.035278 scale -start_ol -448 2496 moveto -832 2496 lineto -832 0 lineto -448 0 lineto -448 2496 lineto -448 3520 moveto -832 3520 lineto -832 3008 lineto -448 3008 lineto -448 3520 lineto -end_ol grestore -gsave 13.413133 8.450000 translate 0.035278 -0.035278 scale -start_ol -256 2496 moveto -2240 2496 lineto -2240 2120 lineto -670 320 lineto -2240 320 lineto -2240 0 lineto -192 0 lineto -192 376 lineto -1770 2176 lineto -256 2176 lineto -256 2496 lineto -end_ol grestore -gsave 13.734867 8.450000 translate 0.035278 -0.035278 scale -start_ol -2624 1352 moveto -2624 1152 lineto -704 1152 lineto -731 715 960 485 conicto -1189 256 1597 256 conicto -1834 256 2056 320 conicto -2278 384 2496 512 conicto -2496 128 lineto -2273 34 2039 -15 conicto -1805 -64 1565 -64 conicto -961 -64 608 284 conicto -256 632 256 1225 conicto -256 1839 595 2199 conicto -934 2560 1509 2560 conicto -2024 2560 2324 2235 conicto -2624 1910 2624 1352 conicto -2240 1472 moveto -2235 1822 2043 2031 conicto -1852 2240 1537 2240 conicto -1180 2240 965 2038 conicto -750 1836 718 1470 conicto -2240 1472 lineto -end_ol grestore -gsave 5.700000 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 5.894733 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.089467 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.284200 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.478933 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.673667 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 6.868400 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.063133 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.257867 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.452600 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.647333 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 7.842067 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.036800 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.231533 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.426267 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.621000 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 8.815733 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.010467 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.205200 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.399933 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.594667 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.789400 9.250000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.984133 9.250000 translate 0.035278 -0.035278 scale -start_ol -576 -384 moveto -728 -384 lineto -1032 -384 1124 -289 conicto -1216 -195 1216 118 conicto -1216 661 lineto -1216 1004 1310 1159 conicto -1405 1315 1638 1375 conicto -1405 1432 1310 1593 conicto -1216 1755 1216 2111 conicto -1216 2677 lineto -1216 3002 1124 3101 conicto -1032 3200 728 3200 conicto -576 3200 lineto -576 3520 lineto -713 3520 lineto -1244 3520 1422 3353 conicto -1600 3187 1600 2687 conicto -1600 2139 lineto -1600 1799 1722 1667 conicto -1844 1536 2164 1536 conicto -2304 1536 lineto -2304 1216 lineto -2164 1216 lineto -1844 1216 1722 1085 conicto -1600 955 1600 616 conicto -1600 109 lineto -1600 -378 1422 -541 conicto -1244 -704 713 -704 conicto -576 -704 lineto -576 -384 lineto -end_ol grestore -gsave 8.000000 13.600000 translate 0.035278 -0.035278 scale -start_ol -896 2944 moveto -896 384 lineto -1454 384 lineto -2160 384 2488 692 conicto -2816 1001 2816 1667 conicto -2816 2329 2488 2636 conicto -2160 2944 1454 2944 conicto -896 2944 lineto -448 3328 moveto -1383 3328 lineto -2355 3328 2809 2925 conicto -3264 2523 3264 1667 conicto -3264 807 2807 403 conicto -2350 0 1383 0 conicto -448 0 lineto -448 3328 lineto -end_ol grestore -gsave 8.465667 13.600000 translate 0.035278 -0.035278 scale -start_ol -1559 1280 moveto -1040 1280 840 1160 conicto -640 1041 640 754 conicto -640 525 790 390 conicto -940 256 1198 256 conicto -1554 256 1769 510 conicto -1984 765 1984 1187 conicto -1984 1280 lineto -1559 1280 lineto -2368 1449 moveto -2368 0 lineto -1984 0 lineto -1984 384 lineto -1842 154 1628 45 conicto -1415 -64 1107 -64 conicto -717 -64 486 154 conicto -256 372 256 739 conicto -256 1166 539 1383 conicto -822 1600 1384 1600 conicto -1984 1600 lineto -1984 1641 lineto -1984 1927 1796 2083 conicto -1608 2240 1266 2240 conicto -1049 2240 843 2192 conicto -638 2144 448 2048 conicto -448 2432 lineto -673 2496 884 2528 conicto -1095 2560 1295 2560 conicto -1835 2560 2101 2284 conicto -2368 2009 2368 1449 conicto -end_ol grestore -gsave 8.838200 13.600000 translate 0.035278 -0.035278 scale -start_ol -832 3200 moveto -832 2496 lineto -1664 2496 lineto -1664 2176 lineto -832 2176 lineto -832 804 lineto -832 495 914 407 conicto -997 320 1248 320 conicto -1664 320 lineto -1664 0 lineto -1248 0 lineto -793 0 620 173 conicto -448 347 448 804 conicto -448 2176 lineto -128 2176 lineto -128 2496 lineto -448 2496 lineto -448 3200 lineto -832 3200 lineto -end_ol grestore -gsave 9.075267 13.600000 translate 0.035278 -0.035278 scale -start_ol -1559 1280 moveto -1040 1280 840 1160 conicto -640 1041 640 754 conicto -640 525 790 390 conicto -940 256 1198 256 conicto -1554 256 1769 510 conicto -1984 765 1984 1187 conicto -1984 1280 lineto -1559 1280 lineto -2368 1449 moveto -2368 0 lineto -1984 0 lineto -1984 384 lineto -1842 154 1628 45 conicto -1415 -64 1107 -64 conicto -717 -64 486 154 conicto -256 372 256 739 conicto -256 1166 539 1383 conicto -822 1600 1384 1600 conicto -1984 1600 lineto -1984 1641 lineto -1984 1927 1796 2083 conicto -1608 2240 1266 2240 conicto -1049 2240 843 2192 conicto -638 2144 448 2048 conicto -448 2432 lineto -673 2496 884 2528 conicto -1095 2560 1295 2560 conicto -1835 2560 2101 2284 conicto -2368 2009 2368 1449 conicto -end_ol grestore -gsave 9.447800 13.600000 translate 0.035278 -0.035278 scale -start_ol -end_ol grestore -gsave 9.642533 13.600000 translate 0.035278 -0.035278 scale -start_ol -2496 3200 moveto -2496 2752 lineto -2234 2882 2001 2945 conicto -1768 3008 1552 3008 conicto -1175 3008 971 2863 conicto -768 2718 768 2452 conicto -768 2228 905 2113 conicto -1042 1999 1426 1929 conicto -1708 1873 lineto -2210 1778 2449 1540 conicto -2688 1303 2688 903 conicto -2688 427 2358 181 conicto -2029 -64 1392 -64 conicto -1152 -64 881 -15 conicto -610 33 320 128 conicto -320 576 lineto -603 448 875 384 conicto -1147 320 1409 320 conicto -1807 320 2023 465 conicto -2240 610 2240 878 conicto -2240 1113 2084 1245 conicto -1928 1378 1572 1444 conicto -1288 1497 lineto -776 1599 548 1817 conicto -320 2035 320 2424 conicto -320 2874 636 3133 conicto -952 3392 1507 3392 conicto -1744 3392 1991 3344 conicto -2238 3297 2496 3200 conicto -end_ol grestore -gsave 10.032000 13.600000 translate 0.035278 -0.035278 scale -start_ol -832 384 moveto -832 -960 lineto -448 -960 lineto -448 2496 lineto -832 2496 lineto -832 2112 lineto -963 2340 1164 2450 conicto -1366 2560 1645 2560 conicto -2108 2560 2398 2198 conicto -2688 1837 2688 1248 conicto -2688 659 2398 297 conicto -2108 -64 1645 -64 conicto -1366 -64 1164 46 conicto -963 156 832 384 conicto -2240 1249 moveto -2240 1713 2052 1976 conicto -1865 2240 1536 2240 conicto -1208 2240 1020 1976 conicto -832 1713 832 1249 conicto -832 784 1020 520 conicto -1208 256 1536 256 conicto -1865 256 2052 520 conicto -2240 784 2240 1249 conicto -end_ol grestore -gsave 10.421467 13.600000 translate 0.035278 -0.035278 scale -start_ol -1559 1280 moveto -1040 1280 840 1160 conicto -640 1041 640 754 conicto -640 525 790 390 conicto -940 256 1198 256 conicto -1554 256 1769 510 conicto -1984 765 1984 1187 conicto -1984 1280 lineto -1559 1280 lineto -2368 1449 moveto -2368 0 lineto -1984 0 lineto -1984 384 lineto -1842 154 1628 45 conicto -1415 -64 1107 -64 conicto -717 -64 486 154 conicto -256 372 256 739 conicto -256 1166 539 1383 conicto -822 1600 1384 1600 conicto -1984 1600 lineto -1984 1641 lineto -1984 1927 1796 2083 conicto -1608 2240 1266 2240 conicto -1049 2240 843 2192 conicto -638 2144 448 2048 conicto -448 2432 lineto -673 2496 884 2528 conicto -1095 2560 1295 2560 conicto -1835 2560 2101 2284 conicto -2368 2009 2368 1449 conicto -end_ol grestore -gsave 10.794000 13.600000 translate 0.035278 -0.035278 scale -start_ol -2240 2432 moveto -2240 2048 lineto -2066 2144 1892 2192 conicto -1718 2240 1541 2240 conicto -1143 2240 923 1979 conicto -704 1718 704 1248 conicto -704 778 923 517 conicto -1143 256 1541 256 conicto -1718 256 1892 304 conicto -2066 352 2240 448 conicto -2240 64 lineto -2068 0 1883 -32 conicto -1698 -64 1490 -64 conicto -924 -64 590 290 conicto -256 645 256 1248 conicto -256 1859 593 2209 conicto -931 2560 1517 2560 conicto -1707 2560 1888 2528 conicto -2070 2496 2240 2432 conicto -end_ol grestore -gsave 11.132667 13.600000 translate 0.035278 -0.035278 scale -start_ol -2624 1352 moveto -2624 1152 lineto -704 1152 lineto -731 715 960 485 conicto -1189 256 1597 256 conicto -1834 256 2056 320 conicto -2278 384 2496 512 conicto -2496 128 lineto -2273 34 2039 -15 conicto -1805 -64 1565 -64 conicto -961 -64 608 284 conicto -256 632 256 1225 conicto -256 1839 595 2199 conicto -934 2560 1509 2560 conicto -2024 2560 2324 2235 conicto -2624 1910 2624 1352 conicto -2240 1472 moveto -2235 1822 2043 2031 conicto -1852 2240 1537 2240 conicto -1180 2240 965 2038 conicto -750 1836 718 1470 conicto -2240 1472 lineto -end_ol grestore -showpage diff --git a/docs/src/code/CMS_buffer.png b/docs/src/code/CMS_buffer.png deleted file mode 100644 index a642acb2883..00000000000 Binary files a/docs/src/code/CMS_buffer.png and /dev/null differ diff --git a/docs/src/code/Code_Notes.txt b/docs/src/code/Code_Notes.txt deleted file mode 100644 index 7b03a3107ac..00000000000 --- a/docs/src/code/Code_Notes.txt +++ /dev/null @@ -1,1440 +0,0 @@ -= Code Notes - -== Intended audience - -This document is a collection of notes about the internals of LinuxCNC. It -is primarily of interest to developers, however much of the information -here may also be of interest to system integrators and others who are -simply curious about how LinuxCNC works. Much of this information is now -outdated and has never been reviewed for accuracy. - -== Organization - -There will be a chapter for each of the major components of LinuxCNC, as -well as chapter(s) covering how they work together. This document is -very much a work in progress, and its layout may change in the future. - -== Terms and definitions - -* 'AXIS' - An axis is one of the nine degrees of freedom that define a tool - position in three-dimensional Cartesian space. Those nine axes are - referred to as X, Y, Z, A, B, C, U, V, and W. The linear orthagonal - coordinates X, Y, and Z determine where the tip of the tool is - positioned. The angular coordinates A, B, and C determine the tool - orientation. A second set of linear orthagonal coordinates U, V, and W - allows tool motion (typically for cutting actions) relative to the - previously offset and rotated axes. - - Unfortunately “axis†is also - sometimes used to mean a degree of freedom of the machine itself, such - as the saddle, table, or quill of a Bridgeport type milling machine. On - a Bridgeport this causes no confusion, since movement of the table - directly corresponds to movement along the X axis. However, the - shoulder and elbow joints of a robot arm and the linear actuators of a - hexapod do not correspond to movement along any Cartesian axis, and in - general it is important to make the distinction between the Cartesian - axes and the machine degrees of freedom. In this document, the latter - will be called 'joints', not axes. (The GUIs and some other parts of - the code may not always follow this distinction, but the internals of - the motion controller do.) - -* 'JOINT' - A joint is one of the movable parts of the machine. Joints are - distinct from axes, although the two terms are sometimes (mis)used to - mean the same thing. In LinuxCNC, a joint is a physical thing that can be - moved, not a coordinate in space. For example, the quill, knee, saddle, - and table of a Bridgeport mill are all joints. The shoulder, elbow, and - wrist of a robot arm are joints, as are the linear actuators of a - hexapod. Every joint has a motor or actuator of some type associated - with it. Joints do not necessarily correspond to the X, Y, and Z axes, - although for machines with trivial kinematics that may be the case. - Even on those machines, joint position and axis position are - fundamentally different things. In this document, the terms 'joint' and - 'axis' are used carefully to respect their distinct meanings. - Unfortunately that isn't necessarily true everywhere else. In - particular, GUIs for machines with trivial kinematics may gloss over or - completely hide the distinction between joints and axes. In addition, - the ini file uses the term 'axis' for data that would more accurately - be described as joint data, such as input and output scaling, etc. - -* 'POSE' - A pose is a fully specified position in 3-D Cartesian space. In the - LinuxCNC motion controller, when we refer to a pose we mean an EmcPose - structure, containing three linear coordinates and three angular ones. - -== Architecture overview - -There are four components contained in the LinuxCNC Architecture: a motion -controller (EMCMOT), a discrete IO controller (EMCIO), a task executor -which coordinates them (EMCTASK) and several text-mode and graphical -User Interfaces. Each of them will be described in the current -document, both from the design point of view and from the developers -point of view (where to find needed data, how to easily extend/modify -things, etc.). - -image::LinuxCNC-block-diagram-small.png[align="center"] - -LinuxCNC software architecture. At the coarsest level, LinuxCNC is a -hierarchy of three controllers: the task level command handler and program -interpreter, the motion controller, and the discrete I/O controller. The -discrete I/O controller is implemented as a hierarchy of controllers, -in this case for spindle, coolant, and auxiliary (e.g., estop, lube) -subsystems. The task controller coordinates the actions of the motion and -discrete I/O controllers. Their actions are programmed in conventional -numerical control "G and M code" programs, which are interpreted by -the task controller into NML messages and sent to either the motion or -discrete I/O controllers at the appropriate times. - -== Motion Controller Introduction - -The motion controller receives commands from user space modules via a -shared memory buffer, and executes those commands in realtime. The -status of the controller is made available to the user space modules -through the same shared memory area. The motion controller interacts -with the motors and other hardware using the HAL (Hardware Abstraction -Layer). This document assumes that the reader has a basic understanding -of the HAL, and uses terms like HAL pins, HAL signals, etc, without -explaining them. For more information about the HAL, see the -HAL Manual. Another chapter of this document will -eventually go into the internals of the HAL itself, but in this -chapter, we only use the HAL API as defined in src/hal/hal.h. - -image::LinuxCNC-motion-controller-small.png[align="center"] - -== Block diagrams and Data Flow - -The following figure is a block diagram -of a joint controller. There is one joint controller per joint. The -joint controllers work at a lower level than the kinematics, a level -where all joints are completely independent. All the data for a joint -is in a single joint structure. Some members of that structure are -visible in the block diagram, such as coarse_pos, pos_cmd, and -motor_pos_fb. - -image::emc2-motion-joint-controller-block-diag.png[align="center"] - -.Joint Controller Block Diagram[[fig:motion-joint-controller-block-diag]] - -The above figure shows five of the -seven sets of position information that form the main data flow through -the motion controller. The seven forms of position data are as follows: - -. 'emcmotStatus\->carte_pos_cmd' - This is the desired position, in - Cartesian coordinates. It is updated at the traj rate, not the servo - rate. In coord mode, it is determined by the traj planner. In teleop - mode, it is determined by the traj planner? In free mode, it is either - copied from actualPos, or generated by applying forward kins to (2) or - (3). -. 'emcmotStatus\->joints[n].coarse_pos' - This is the desired position, in - joint coordinates, but before interpolation. It is updated at the traj - rate, not the servo rate. In coord mode, it is generated by applying - inverse kins to (1) In teleop mode, it is generated by applying inverse - kins to (1) In free mode, it is copied from (3), I think. -. 'emcmotStatus\->joints[n].pos_cmd - This is the desired position, in - joint coords, after interpolation. A new set of these coords is - generated every servo period. In coord mode, it is generated from (2) - by the interpolator. In teleop mode, it is generated from (2) by the - interpolator. In free mode, it is generated by the free mode traj - planner. -. 'emcmotStatus\->joints[n].motor_pos_cmd' - This is the desired position, - in motor coords. Motor coords are generated by adding backlash - compensation, lead screw error compensation, and offset (for homing) to - (3). It is generated the same way regardless of the mode, and is the - output to the PID loop or other position loop. -. 'emcmotStatus\->joints[n].motor_pos_fb' - This is the actual position, in - motor coords. It is the input from encoders or other feedback device - (or from virtual encoders on open loop machines). It is "generated" by - reading the feedback device. -. 'emcmotStatus\->joints[n].pos_fb' - This is the actual position, in joint - coordinates. It is generated by subtracting offset, lead screw error - compensation, and backlash compensation from (5). It is generated the - same way regardless of the operating mode. -. 'emcmotStatus\->carte_pos_fb' - This is the actual position, in Cartesian - coordinates. It is updated at the traj rate, not the servo rate. - Ideally, actualPos would always be calculated by applying forward - kinematics to (6). However, forward kinematics may not be available, or - they may be unusable because one or more axes aren't homed. In that - case, the options are: A) fake it by copying (1), or B) admit that we - don't really know the Cartesian coordinates, and simply don't update - actualPos. Whatever approach is used, I can see no reason not to do it - the same way regardless of the operating mode. I would propose the - following: If there are forward kins, use them, unless they don't work - because of unhomed axes or other problems, in which case do (B). If no - forward kins, do (A), since otherwise actualPos would _never_ get - updated. - -== Commands - -This section simply lists all of the commands that can be sent to the -motion module, along with detailed explanations of what they do. The -command names are defined in a large typedef enum in -emc2/src/emc/motion/motion.h, called cmd_code_t. (Note that in the -code, each command name starts with 'EMCMOT_', which is omitted here.) - -The commands are implemented by a large switch statement in the -function emcmotCommandHandler(), which is called at the servo rate. -More on that function later. - -There are approximately 44 commands - this list is still under -construction. - -=== ABORT - -The ABORT command simply stops all motion. It can be issued at any -time, and will always be accepted. It does not disable the motion -controller or change any state information, it simply cancels any -motion that is currently in progress.footnote:[It seems that the -higher level code (TASK and above) also use ABORT to clear faults. -Whenever there is a persistent fault (such as being outside the -hardware limit switches), the higher level code sends a constant -stream of ABORTs to the motion controller trying to make the -fault go away. Thousands of 'em.... That means that the motion -controller should avoid persistent faults. This needs to be looked -into.] - -==== Requirements - -None. The command is always accepted and acted on immediately. - -==== Results - -In free mode, the free mode trajectory planners are disabled. That -results in each joint stopping as fast as its accel (decel) limit -allows. The stop is not coordinated. In teleop mode, the commanded -Cartesian velocity is set to zero. I don't know exactly what kind of -stop results (coordinated, uncoordinated, etc), but will figure it out -eventually. In coord mode, the coord mode trajectory planner is told to -abort the current move. Again, I don't know the exact result of this, -but will document it when I figure it out. - -=== FREE - -The FREE command puts the motion controller in free mode. Free mode -means that each joint is independent of all the other joints. Cartesian -coordinates, poses, and kinematics are ignored when in free mode. In -essence, each joint has its own simple trajectory planner, and each -joint completely ignores the other joints. Some commands (like JOG) -only work in free mode. Other commands, including anything that deals -with Cartesian coordinates, do not work at all in free mode. - -==== Requirements - -The command handler applies no requirements to the FREE command, it -will always be accepted. However, if any joint is in motion -(GET_MOTION_INPOS_FLAG() == FALSE), then the command will be ignored. -This behavior is controlled by code that is now located in the function -'set_operating_mode()' in control.c, that code needs to be cleaned up. -I believe the command should not be silently ignored, instead the -command handler should determine whether it can be executed and return -an error if it cannot. - -==== Results - -If the machine is already in free mode, nothing. Otherwise, the -machine is placed in free mode. Each joint's free mode trajectory -planner is initialized to the current location of the joint, but the -planners are not enabled and the joints are stationary. - -=== TELEOP - -The TELEOP command places the machine in teleoperating mode. In teleop -mode, movement of the machine is based on Cartesian coordinates using -kinematics, rather than on individual joints as in free mode. However -the trajectory planner per se is not used, instead movement is -controlled by a velocity vector. Movement in teleop mode is much like -jogging, except that it is done in Cartesian space instead of joint -space. On a machine with trivial kinematics, there is little difference -between teleop mode and free mode, and GUIs for those machines might -never even issue this command. However for non-trivial machines like -robots and hexapods, teleop mode is used for most user commanded jog -type movements. - -==== Requirements - -The command handler will reject the TELEOP command with an error -message if the kinematics cannot be activated because the one or more -axes have not been homed. In addition, if any joint is in motion -(GET_MOTION_INPOS_FLAG() == FALSE), then the command will be ignored -(with no error message). This behavior is controlled by code that is -now located in the function 'set_operating_mode()' in control.c. I -believe the command should not be silently ignored, instead the command -handler should determine whether it can be executed and return an error -if it cannot. - -==== Results - -If the machine is already in teleop mode, nothing. Otherwise the -machine is placed in teleop mode. The kinematics code is activated, -interpolators are drained and flushed, and the Cartesian velocity -commands are set to zero. - -=== COORD - -The COORD command places the machine in coordinated mode. In coord -mode, movement of the machine is based on Cartesian coordinates using -kinematics, rather than on individual joints as in free mode. In -addition, the main trajectory planner is used to generate motion, based -on queued LINE, CIRCLE, and/or PROBE commands. Coord mode is the mode -that is used when executing a G-code program. - -==== Requirements - -The command handler will reject the COORD command with an error -message if the kinematics cannot be activated because the one or more -axes have not been homed. In addition, if any joint is in motion -(GET_MOTION_INPOS_FLAG() == FALSE), then the command will be ignored -(with no error message). This behavior is controlled by code that is -now located in the function 'set_operating_mode()' in control.c. I -believe the command should not be silently ignored, instead the command -handler should determine whether it can be executed and return an error -if it cannot. - -==== Results - -If the machine is already in coord mode, nothing. Otherwise, the -machine is placed in coord mode. The kinematics code is activated, -interpolators are drained and flushed, and the trajectory planner -queues are empty. The trajectory planner is active and awaiting a LINE, -CIRCLE, or PROBE command. - -=== ENABLE - -The ENABLE command enables the motion controller. - -==== Requirements - -None. The command can be issued at any time, and will always be -accepted. - -==== Results - -If the controller is already enabled, nothing. If not, the controller -is enabled. Queues and interpolators are flushed. Any movement or -homing operations are terminated. The amp-enable outputs associated -with active joints are turned on. If forward kinematics are not -available, the machine is switched to free mode. - -=== DISABLE - -The DISABLE command disables the motion controller. - -==== Requirements - -None. The command can be issued at any time, and will always be -accepted. - -==== Results - -If the controller is already disabled, nothing. If not, the controller -is disabled. Queues and interpolators are flushed. Any movement or -homing operations are terminated. The amp-enable outputs associated -with active joints are turned off. If forward kinematics are not -available, the machine is switched to free mode. - -=== ENABLE_AMPLIFIER - -The ENABLE_AMPLIFIER command turns on the amp enable output for a -single output amplifier, without changing anything else. Can be used to -enable a spindle speed controller. - -==== Requirements - -None. The command can be issued at any time, and will always be -accepted. - -==== Results - -Currently, nothing. (A call to the old extAmpEnable function is -currently commented out.) Eventually it will set the amp enable HAL pin -true. - -=== DISABLE_AMPLIFIER - -The DISABLE_AMPLIFIER command turns off the amp enable output for a -single amplifier, without changing anything else. Again, useful for -spindle speed controllers. - -==== Requirements - -None. The command can be issued at any time, and will always be -accepted. - -==== Results - -Currently, nothing. (A call to the old extAmpEnable function is -currently commented out.) Eventually it will set the amp enable HAL pin -false. - -=== ACTIVATE_JOINT - -The ACTIVATE_JOINT command turns on all the calculations associated -with a single joint, but does not change the joint's amp enable output -pin. - -==== Requirements - -None. The command can be issued at any time, and will always be -accepted. - -==== Results - -Calculations for the specified joint are enabled. The amp enable pin -is not changed, however, any subsequent ENABLE or DISABLE commands will -modify the joint's amp enable pin. - -=== DEACTIVATE_JOINT - -The DEACTIVATE_JOINT command turns off all the calculations associated -with a single joint, but does not change the joint's amp enable output -pin. - -==== Requirements - -None. The command can be issued at any time, and will always be -accepted. - -==== Results - -Calculations for the specified joint are enabled. The amp enable pin -is not changed, and subsequent ENABLE or DISABLE commands will not -modify the joint's amp enable pin. - -=== ENABLE_WATCHDOG - -The ENABLE_WATCHDOG command enables a hardware based watchdog (if -present). - -==== Requirements - -None. The command can be issued at any time, and will always be -accepted. - -==== Results - -Currently nothing. The old watchdog was a strange thing that used a -specific sound card. A new watchdog interface may be designed in the -future. - -=== DISABLE_WATCHDOG - -The DISABLE_WATCHDOG command disables a hardware based watchdog (if -present). - -==== Requirements - -None. The command can be issued at any time, and will always be -accepted. - -==== Results - -Currently nothing. The old watchdog was a strange thing that used a -specific sound card. A new watchdog interface may be designed in the -future. - -=== PAUSE - -The PAUSE command stops the trajectory planner. It has no effect in -free or teleop mode. At this point I don't know if it pauses all motion -immediately, or if it completes the current move and then pauses before -pulling another move from the queue. - -==== Requirements - -None. The command can be issued at any time, and will always be -accepted. - -==== Results - -The trajectory planner pauses. - -=== RESUME - -The RESUME command restarts the trajectory planner if it is paused. It -has no effect in free or teleop mode, or if the planner is not paused. - -==== Requirements - -None. The command can be issued at any time, and will always be -accepted. - -==== Results - -The trajectory planner resumes. - -=== STEP - -The STEP command restarts the trajectory planner if it is paused, and -tells the planner to stop again when it reaches a specific point. It -has no effect in free or teleop mode. At this point I don't know -exactly how this works. I'll add more documentation here when I dig -deeper into the trajectory planner. - -==== Requirements - -None. The command can be issued at any time, and will always be -accepted. - -==== Results - -The trajectory planner resumes, and later pauses when it reaches a -specific point. - -=== SCALE - -The SCALE command scales all velocity limits and commands by a -specified amount. It is used to implement feed rate override and other -similar functions. The scaling works in free, teleop, and coord modes, -and affects everything, including homing velocities, etc. However, -individual joint velocity limits are unaffected. - -==== Requirements - -None. The command can be issued at any time, and will always be -accepted. - -==== Results - -All velocity commands are scaled by the specified constant. - -=== OVERRIDE_LIMITS - -The OVERRIDE_LIMITS command prevents limits from tripping until the -end of the next JOG command. It is normally used to allow a machine to -be jogged off of a limit switch after tripping. (The command can -actually be used to override limits, or to cancel a previous override.) - -==== Requirements - -None. The command can be issued at any time, and will always be -accepted. (I think it should only work in free mode.) - -==== Results - -Limits on all joints are over-ridden until the end of the next JOG -command. (This is currently broken... once an OVERRIDE_LIMITS command -is received, limits are ignored until another OVERRIDE_LIMITS command -re-enables them.) - -=== HOME - -The HOME command initiates a homing sequence on a specified joint. The -actual homing sequence is determined by a number of configuration -parameters, and can range from simply setting the current position to -zero, to a multi-stage search for a home switch and index pulse, -followed by a move to an arbitrary home location. For more information -about the homing sequence, see the homing section of the Integrator Manual. - -==== Requirements - -The command will be ignored silently unless the machine is in free mode. - -==== Results - -Any jog or other joint motion is aborted, and the homing sequence -starts. - -=== JOG_CONT - -The JOG_CONT command initiates a continuous jog on a single joint. A -continuous jog is generated by setting the free mode trajectory -planner's target position to a point beyond the end of the joint's -range of travel. This ensures that the planner will move constantly -until it is stopped by either the joint limits or an ABORT command. -Normally, a GUI sends a JOG_CONT command when the user presses a jog -button, and ABORT when the button is released. - -==== Requirements - -The command handler will reject the JOG_CONT command with an error -message if machine is not in free mode, or if any joint is in motion -(GET_MOTION_INPOS_FLAG() == FALSE), or if motion is not enabled. It -will also silently ignore the command if the joint is already at or -beyond its limit and the commanded jog would make it worse. - -==== Results - -The free mode trajectory planner for the joint identified by -emcmotCommand\->axis is activated, with a target position beyond the end -of joint travel, and a velocity limit of emcmotCommand\->vel. This -starts the joint moving, and the move will continue until stopped by an -ABORT command or by hitting a limit. The free mode planner accelerates -at the joint accel limit at the beginning of the move, and will -decelerate at the joint accel limit when it stops. - -=== JOG_INCR - -The JOG_INCR command initiates an incremental jog on a single joint. -Incremental jogs are cumulative, in other words, issuing two JOG_INCR -commands that each ask for 0.100 inches of movement will result in -0.200 inches of travel, even if the second command is issued before the -first one finishes. Normally incremental jogs stop when they have -traveled the desired distance, however they also stop when they hit a -limit, or on an ABORT command. - -==== Requirements - -The command handler will silently reject the JOG_INCR command if -machine is not in free mode, or if any joint is in motion -(GET_MOTION_INPOS_FLAG() == FALSE), or if motion is not enabled. It -will also silently ignore the command if the joint is already at or -beyond its limit and the commanded jog would make it worse. - -==== Results - -The free mode trajectory planner for the joint identified by -emcmotCommand\->axis is activated, the target position is -incremented/decremented by emcmotCommand\->offset, and the velocity -limit is set to emcmotCommand\->vel. The free mode trajectory planner -will generate a smooth trapezoidal move from the present position to -the target position. The planner can correctly handle changes in the -target position that happen while the move is in progress, so multiple -JOG_INCR commands can be issued in quick succession. The free mode -planner accelerates at the joint accel limit at the beginning of the -move, and will decelerate at the joint accel limit to stop at the -target position. - -=== JOG_ABS - -The JOG_ABS command initiates an absolute jog on a single joint. An -absolute jog is a simple move to a specific location, in joint -coordinates. Normally absolute jogs stop when they reach the desired -location, however they also stop when they hit a limit, or on an ABORT -command. - -==== Requirements - -The command handler will silently reject the JOG_ABS command if -machine is not in free mode, or if any joint is in motion -(GET_MOTION_INPOS_FLAG() == FALSE), or if motion is not enabled. It -will also silently ignore the command if the joint is already at or -beyond its limit and the commanded jog would make it worse. - -==== Results - -The free mode trajectory planner for the joint identified by -emcmotCommand\->axis is activated, the target position is set to -emcmotCommand\->offset, and the velocity limit is set to -emcmotCommand\->vel. The free mode trajectory planner will generate a -smooth trapezoidal move from the present position to the target -position. The planner can correctly handle changes in the target -position that happen while the move is in progress. If multiple JOG_ABS -commands are issued in quick succession, each new command changes the -target position and the machine goes to the final commanded position. -The free mode planner accelerates at the joint accel limit at the -beginning of the move, and will decelerate at the joint accel limit to -stop at the target position. - -=== SET_LINE - -The SET_LINE command adds a straight line to the trajectory planner -queue. - -(More later) - -=== SET_CIRCLE - -The SET_CIRCLE command adds a circular move to the trajectory planner -queue. - -(More later) - -=== SET_TELEOP_VECTOR - -The SET_TELEOP_VECTOR command instructs the motion controller to move -along a specific vector in Cartesian space. - -(More later) - -=== PROBE - -The PROBE command instructs the motion controller to move toward a -specific point in Cartesian space, stopping and recording its -position if the probe input is triggered. - -(More later) - -=== CLEAR_PROBE_FLAG - -The CLEAR_PROBE_FLAG command is used to reset the probe input in -preparation for a PROBE command. (Question: why shouldn't the PROBE -command automatically reset the input?) - -(More later) - -=== SET_xix - -There are approximately 15 SET_xxx commands, where xxx is the name of -some configuration parameter. It is anticipated that there will be -several more SET commands as more parameters are added. I would like to -find a cleaner way of setting and reading configuration parameters. The -existing methods require many lines of code to be added to multiple -files each time a parameter is added. Much of that code is identical or -nearly identical for every parameter. - - -== Backlash and Screw Error Compensation - - + - -== Task controller (EMCTASK) - - + - -== IO controller (EMCIO) - - + - -== User Interfaces - - + - -== libnml Introduction - -libnml is derived from the NIST rcslib without all the multi-platform -support. Many of the wrappers around platform specific code has been -removed along with much of the code that is not required by LinuxCNC. It is -hoped that sufficient compatibility remains with rcslib so that -applications can be implemented on non-Linux platforms and still be -able to communicate with LinuxCNC. - -This chapter is not intended to be a definitive guide to using libnml -(or rcslib), instead, it will eventually provide an overview of each -C++ class and their member functions. Initially, most of these notes -will be random comments added as the code scrutinized and modified. - -== LinkedList - -Base class to maintain a linked list. This is one of the core building -blocks used in passing NML messages and assorted internal data -structures. - -== LinkedListNode - -Base class for producing a linked list - Purpose, to hold pointers to -the previous and next nodes, pointer to the data, and the size of the -data. - -No memory for data storage is allocated. - -== SharedMemory - -Provides a block of shared memory along with a semaphore (inherited -from the Semaphore class). Creation and destruction of the semaphore is -handled by the SharedMemory constructor and destructor. - -== ShmBuffer - -Class for passing NML messages between local processes using a shared -memory buffer. Much of internal workings are inherited from the CMS -class. - -== Timer - -The Timer class provides a periodic timer limited only by the -resolution of the system clock. If, for example, a process needs to be -run every 5 seconds regardless of the time taken to run the process, -the following code snippet demonstrates how : - -[source,c] ----- -main() -{ - timer = new Timer(5.0); /* Initialize a timer with a 5 second loop */ - while(0) { - /* Do some process */ - timer.wait(); /* Wait till the next 5 second interval */ - } - delete timer; -} ----- - -== Semaphore - -The Semaphore class provides a method of mutual exclusions for -accessing a shared resource. The function to get a semaphore can either -block until access is available, return after a timeout, or return -immediately with or without gaining the semaphore. The constructor will -create a semaphore or attach to an existing one if the ID is already in -use. - -The Semaphore::destroy() must be called by the last process only. - -== CMS - -At the heart of libnml is the CMS class, it contains most of the -functions used by libnml and ultimately NML. Many of the internal -functions are overloaded to allow for specific hardware dependent -methods of data passing. Ultimately, everything revolves around a -central block of memory (referred to as the 'message buffer' or just -'buffer'). This buffer may exist as a shared memory block accessed by -other CMS/NML processes, or a local and private buffer for data being -transferred by network or serial interfaces. - -The buffer is dynamically allocated at run time to allow for greater -flexibility of the CMS/NML sub-system. The buffer size must be large -enough to accommodate the largest message, a small amount for internal -use and allow for the message to be encoded if this option is chosen -(encoded data will be covered later). The following figure is an -internal view of the buffer space. - -image::CMS_buffer.png[align="center"] - -.CMS buffer[[fig:CMS-buffer]] - -The CMS base class is primarily responsible for creating the -communications pathways and interfacing to the O.S. - -//////////////////////////////////////////////////////////////////////// -== NML Notes /* FIX ME */ - -A collection of random notes and thought whilst studying the libnml -and rcslib code. - -Much of this needs to be edited and re-written in a coherent manner -before publication. -/////////////////////////////////////////////////////////////////////// - -== Configuration file format - -NML configuration consists of two types of line formats. One for -Buffers, and a second for Processes that connect to the buffers. - -=== Buffer line - -The original NIST format of the buffer line is: - -* 'B name type host size neut RPC# buffer# max_procs key [type specific configs]' - -* 'B' - identifies this line as a Buffer configuration. -* 'name' - is the identifier of the buffer. -* 'type' - describes the buffer type - SHMEM, LOCMEM, FILEMEM, PHANTOM, or GLOBMEM. -* 'host' - is either an IP address or host name for the NML server -* 'size' - is the size of the buffer -* 'neut' - a boolean to indicate if the data in the buffer is encoded in a - machine independent format, or raw. -* 'RPC#' - Obsolete - Place holder retained for backward compatibility only. -* 'buffer#' - A unique ID number used if a server controls multiple buffers. -* 'max_procs' - is the maximum processes allowed to connect to this buffer. -* 'key' - is a numerical identifier for a shared memory buffer - -=== Type specific configs - -The buffer type implies additional configuration options whilst the -host operating system precludes certain combinations. In an attempt to -distill published documentation in to a coherent format, only the *SHMEM* -buffer type will be covered. - -* 'mutex=os_sem' - default mode for providing semaphore locking of the buffer memory. -* 'mutex=none' - Not used -* 'mutex=no_interrupts' - not applicable on a Linux system -* 'mutex=no_switching' - not applicable on a Linux system -* 'mutex=mao split' - Splits the buffer in to half (or more) and allows - one process to access part of the buffer whilst a second process is - writing to another part. -* 'TCP=(port number)' - Specifies which network port to use. -* 'UDP=(port number)' - ditto -* 'STCP=(port number)' - ditto -* 'serialPortDevName=(serial port)' - Undocumented. -* 'passwd=file_name.pwd' - Adds a layer of security to the buffer by - requiring each process to provide a password. -* 'bsem' - NIST documentation implies a key for a blocking semaphore, - and if bsem=-1, blocking reads are prevented. -* 'queue' - Enables queued message passing. -* 'ascii' - Encode messages in a plain text format -* 'disp' - Encode messages in a format suitable for display (???) -* 'xdr' - Encode messages in External Data Representation. (see rpc/xdr.h for details). -* 'diag' - Enables diagnostics stored in the buffer (timings and byte counts ?) - -=== Process line - -The original NIST format of the process line is: - -*P name buffer type host ops server timeout master c_num [type specific configs]* - -* 'P' - identifies this line as a Process configuration. -* 'name' - is the identifier of the process. -* 'buffer' - is one of the buffers defined elsewhere in the config file. -* 'type' - defines whether this process is local or remote relative to the buffer. -* 'host' - specifies where on the network this process is running. -* 'ops' - gives the process read only, write only, or read/write access to the buffer. -* 'server' - specifies if this process will running a server for this buffer. -* 'timeout' - sets the timeout characteristics for accesses to the buffer. -* 'master' - indicates if this process is responsible for creating and destroying the buffer. -* 'c_num' - an integer between zero and (max_procs -1) - -=== Configuration Comments - -Some of the configuration combinations are invalid, whilst others -imply certain constraints. On a Linux system, GLOBMEM is obsolete, -whilst PHANTOM is only really useful in the testing stage of an -application, likewise for FILEMEM. LOCMEM is of little use for a -multi-process application, and only offers limited performance -advantages over SHMEM. This leaves SHMEM as the only buffer type to use -with LinuxCNC. - -The neut option is only of use in a multi-processor system where -different (and incompatible) architectures are sharing a block of -memory. The likelihood of seeing a system of this type outside of a -museum or research establishment is remote and is only relevant to -GLOBMEM buffers. - -The RPC number is documented as being obsolete and is retained only -for compatibility reasons. - -With a unique buffer name, having a numerical identity seems to be -pointless. Need to review the code to identify the logic. Likewise, the -key field at first appears to be redundant, and it could be derived -from the buffer name. - -The purpose of limiting the number of processes allowed to connect to -any one buffer is unclear from existing documentation and from the -original source code. Allowing unspecified multiple processes to -connect to a buffer is no more difficult to implement. - -The mutex types boil down to one of two, the default “os_sem†or “mao -splitâ€. Most of the NML messages are relatively short and can be copied -to or from the buffer with minimal delays, so split reads are not -essential. - -Data encoding is only relevant when transmitted to a remote process - -Using TCP or UDP implies XDR encoding. Whilst ASCII encoding may have -some use in diagnostics or for passing data to an embedded system that -does not implement NML. - -UDP protocols have fewer checks on data and allows a percentage of -packets to be dropped. TCP is more reliable, but is marginally slower. - -If LinuxCNC is to be connected to a network, one would hope that it is -local and behind a firewall. About the only reason to allow access to -LinuxCNC via the Internet would be for remote diagnostics - This can be -achieved far more securely using other means, perhaps by a web -interface. - -The exact behavior when timeout is set to zero or a negative value is -unclear from the NIST documents. Only INF and positive values are -mentioned. However, buried in the source code of rcslib, it is apparent -that the following applies: - -timeout > 0 Blocking access until the timeout interval is reached or -access to the buffer is available. - -timeout = 0 Access to the buffer is only possible if no other process -is reading or writing at the time. - -timeout < 0 or INF Access is blocked until the buffer is available. - -== NML base class -// FIX ME - -Expand on the lists and the relationship between NML, NMLmsg, and the -lower level cms classes. - -Not to be confused with NMLmsg, RCS_STAT_MSG, or RCS_CMD_MSG. - -NML is responsible for parsing the config file, configuring the cms -buffers and is the mechanism for routing messages to the correct -buffer(s). To do this, NML creates several lists for: - -* cms buffers created or connected to. -* processes and the buffers they connect to -* a long list of format functions for each message type - -This last item is probably the nub of much of the malignment of -libnml/rcslib and NML in general. Each message that is passed via NML -requires a certain amount of information to be attached in addition to -the actual data. To do this, several formatting functions are called in -sequence to assemble fragments of the overall message. The format -functions will include NML_TYPE, MSG_TYPE, in addition to the data -declared in derived NMLmsg classes. Changes to the order in which the -formatting functions are called and also the variables passed will -break compatibility with rcslib if messed with - There are reasons for -maintaining rcslib compatibility, and good reasons for messing with the -code. The question is, which set of reasons are overriding? - -=== NML internals - -==== NML constructor - -NML::NML() parses the config file and stores it in a linked list to be -passed to cms constructors in single lines. It is the function of the -NML constructor to call the relevant cms constructor for each buffer -and maintain a list of the cms objects and the processes associated -with each buffer. - -It is from the pointers stored in the lists that NML can interact with -cms and why Doxygen fails to show the real relationships involved. - -[NOTE] -The config is stored in memory before passing a pointer to -a specific line to the cms constructor. The cms constructor then parses -the line again to extract a couple of variables... It would make more -sense to do ALL the parsing and save the variables in a struct that is -passed to the cms constructor - This would eliminate string handling -and reduce duplicate code in cms.... - -==== NML read/write - -Calls to NML::read and NML::write both perform similar tasks in so -much as processing the message - The only real variation is in the -direction of data flow. - -A call to the read function first gets data from the buffer, then -calls format_output(), whilst a write function would call -format_input() before passing the data to the buffer. It is in -format_xxx() that the work of constructing or deconstructing the -message takes place. A list of assorted functions are called in turn to -place various parts of the NML header (not to be confused with the cms -header) in the right order - The last function called is emcFormat() in -emc.cc. - -==== NMLmsg and NML relationships - -NMLmsg is the base class from which all message classes are derived. -Each message class must have a unique ID defined (and passed to the -constructor) and also an update(*cms) function. The update() will be -called by the NML read/write functions when the NML formatter is called -- The pointer to the formatter will have been declared in the NML -constructor at some point. By virtue of the linked lists NML creates, -it is able to select cms pointer that is passed to the formatter and -therefor which buffer is to be used. - -== Adding custom NML commands - -LinuxCNC is pretty awesome, but some parts need some tweaking. As you know -communication is done through NML channels, the data sent through such -a channel is one of the classes defined in emc.hh (implemented in -emc.cc). If somebody needs a message type that doesn't exist, he should -follow these steps to add a new one. (The Message I added in the -example is called EMC_IO_GENERIC (inherits EMC_IO_CMD_MSG (inherits -RCS_CMD_MSG))) - -. add the definition of the EMC_IO_GENERIC class to emc2/src/emc/nml_intf/emc.hh -. add the type define: #define EMC_IO_GENERIC_TYPE ((NMLTYPE) 1605) + -.. (I chose 1605, because it was available) to emc2/src/emc/nml_intf/emc.hh -. add case EMC_IO_GENERIC_TYPE to emcFormat in emc2/src/emc/nml_intf/emc.cc -. add case EMC_IO_GENERIC_TYPE to emc_symbol_lookup in emc2/src/emc/nml_intf/emc.cc -. add EMC_IO_GENERIC::update function to emc2/src/emc/nml_intf/emc.cc - -Recompile, and the new message should be there. The next part is to -send such messages from somewhere, and receive them in another place, -and do some stuff with it. - - -== The Tool Table and Toolchanger - -LinuxCNC interfaces with toolchanger hardware, and has an internal -toolchanger abstraction. LinuxCNC manages tool information in a tool -table file. - - -=== Toolchanger abstraction in LinuxCNC - -LinuxCNC supports two kinds of toolchanger hardware, -called _nonrandom_ and _random_. The ini setting -<> controls which of -these kinds of hardware LinuxCNC thinks it's connected to. - - -==== Nonrandom Toolchangers - -Nonrandom toolchanger hardware puts each tool back in the pocket it was -originally loaded from. - -Examples of nonrandom toolchanger hardware are the "manual" toolchanger, -lathe tool turrents, and rack toolchangers. - -When configured for a nonrandom toolchanger, LinuxCNC does not change the -pocket number in the tool table file as tools are loaded and unloaded. -Internal to LinuxCNC, on tool change the tool information is *copied* -from the tool table's source pocket to pocket 0 (which represents the -spindle), replacing whatever tool information was previously there. - -NOTE: In LinuxCNC configured for nonrandom toolchanger, tool 0 (T0) has -special meaning: "no tool". T0 may not appear in the tool table file, and -changing to T0 will result in LinuxCNC thinking it's got an empty spindle. - - -==== Random Toolchangers - -Random toolchanger hardware swaps the tool in the spindle (if any) with -the requested tool on tool change. Thus the pocket that a tool resides -in changes as it is swapped in and out of the spindle. - -An example of random toolchanger hardware is a carousel toolchanger. - -When configured for a random toolchanger, LinuxCNC swaps the pocket number -of the old and the new tool in the tool table file when tools are loaded. -Internal to LinuxCNC, on tool change, the tool information is *swapped* -between the tool table's source pocket and pocket 0 (which represents -the spindle). So after a tool change, pocket 0 in the tool table has -the tool information for the new tool, and the pocket that the new tool -came from has the tool information for the old tool (the tool that was -in the spindle before the tool change), if any. - -NOTE: In LinuxCNC configured for random toolchanger, tool 0 (T0) has *no* -special meaning. It is treated exactly like any other tool in the tool -table. It is customary to use T0 to represent "no tool" (ie, a tool with -zero TLO), so that the spindle can be conveniently emptied when needed. - - -=== The Tool Table - -LinuxCNC keeps track of tools in a file called the _tool table_. -The tool table records the following information for each tool: - -tool number:: - - An integer that uniquely identifies this tool. Tool numbers are - handled differently by LinuxCNC when configured for random and - nonrandom toolchangers: - - * When LinuxCNC is configured for a nonrandom toolchanger this - number must be positive. T0 gets special handling and is not - allowed to appear in the tool table. - - * When LinuxCNC is configured for a random toolchanger this number - must be non-negative. T0 is allowed in the tool table, and is - usually used to represent "no tool", ie the empty pocket. - -pocket number:: - - An integer that identifies the pocket or slot in the toolchanger - hardware where the tool resides. Pocket numbers are handled - differently by LinuxCNC when configured for random and nonrandom - toolchangers: - - * When LinuxCNC is configured for a nonrandom toolchanger, the pocket - number in the tool file can be any positive integer (pocket - 0 is not allowed). LinuxCNC silently compactifies the pocket - numbers when it loads the tool file, so there may be a difference - between the pocket numbers in the tool file and the internal - pocket numbers used by LinuxCNC-with-nonrandom-toolchanger. - - * When LinuxCNC is configured for a random toolchanger, the pocket - numbers in the tool file must be between 0 and 55, inclusive. - Pockets 1-55 are in the toolchanger, pocket 0 is the spindle. - -diameter:: - - Diameter of the tool, in machine units. - -tool length offset:: - - Tool length offset (also called TLO), in up to 9 axes, in machine - units. Axes that don't have a specified TLO get 0. - - -=== Gcodes affecting tools - -The gcodes that use or affect tool information are: - - -==== Txxx - -Tells the toolchanger hardware to prepare to switch to a specified -tool +xxx+. - -Handled by +Interp::convert_tool_select()+. - -. The machine is asked to prepare to switch to the selected tool by - calling the Canon function +SELECT_POCKET()+ with the pocket number - of the requested tool. - - .. (saicanon) No-op. - - .. (emccanon) Builds an +EMC_TOOL_PREPARE+ message with the requested - pocket number and sends it to Task, which sends it on - to IO. IO gets the message and asks HAL to prepare - the pocket by setting +iocontrol.0.tool-prep-pocket+, - +iocontrol.0.tool-prep-number+, and +iocontrol.0.tool-prepare+. - IO then repeatedly calls +read_tool_inputs()+ to poll the HAL pin - +iocontrol.0.tool-prepared+, which signals from the toolchanger - hardware, via HAL, to IO that the requested tool prep is complete. - When that pin goes True, IO sets +emcioStatus.tool.pocketPrepped+ - to the requested tool's pocket number. - -. Back in interp, +settings->selected_pocket+ is assigned the pocket - number of the requested tool _xxx_. - -==== M6 - -Tells the toolchanger to switch to the currently selected tool (selected -by the previous Txxx command). - -Handled by +Interp::convert_tool_change()+. - -. The machine is asked to change to the selected tool - by calling the Canon function +CHANGE_TOOL()+ with - +settings->selected_pocket+. - - .. (saicanon) Sets sai's +_active_slot+ to the passed-in pocket - number. Tool information is copied from the selected pocket - of of the tool table (ie, from sai's +_tools[_active_slot]+) - to the spindle (aka sai's +_tools[0]+). - - .. (emccanon) Sends an +EMC_TOOL_LOAD+ message to Task, which - sends it to IO. IO sets +emcioStatus.tool.toolInSpindle+ - to the tool number of the tool in the pocket identified - by +emcioStatus.tool.pocketPrepped+ (set by +Txxx+ - aka +SELECT_POCKET()+). It then requests that the - toolchanger hardware perform a tool change, by setting - the HAL pin +iocontrol.0.tool-change+ to True. Later, - IO's +read_tool_inputs()+ will sense that the HAL pin - +iocontrol.0.tool_changed+ has been set to True, indicating the - toolchanger has completed the tool change. When this happens, - it calls +load_tool()+ to update the machine state. - - ... +load_tool()+ with a nonrandom toolchanger - config copies the tool information from the selected pocket - to the spindle (pocket 0). - - ... +load_tool()+ with a random toolchanger config swaps tool - information between pocket 0 (the spindle) and the selected - pocket, then saves the tool table. - -. Back in interp, +settings->current_pocket+ is assigned the new - tool from +settings->selected_pocket+ (set by +Txxx+). The relevant - numbered parameters (<>) are - updated with the new tool information from pocket 0 (spindle). - - -==== G43/G43.1/G49 - -Apply tool length offset. G43 uses the TLO of the currently loaded tool, -or of a specified tool if the H-word is given in the block. G43.1 gets -TLO from axis-words in the block. G49 cancels the TLO (it uses 0 for -the offset for all axes). - -Handled by +Interp::convert_tool_length_offset()+. - -. It starts by building an +EmcPose+ containing the 9-axis offsets - to use. For +G43.1+, these tool offsets come from axis words in the - current block. For +G43+ these offsets come from the current tool - (the tool in pocket 0), or from the tool specified by the H-word in - the block. For G49, the offsets are all 0. - -. The offsets are passed to Canon's +USE_TOOL_LENGTH_OFFSET()+ function. - - .. (saicanon) Records the TLO in +_tool_offset+. - - .. (emccanon) Builds an +EMC_TRAJ_SET_OFFSET+ message containing the - offsets and sends it to Task. Task copies the offsets to - +emcStatus->task.toolOffset+ and sends them on to Motion via - an +EMCMOT_SET_OFFSET+ command. Motion copies the offsets - to +emcmotStatus->tool_offset+, where it gets used to offset - future motions. - -. Back in interp, the offsets are recorded in +settings->tool_offset+. - The effective pocket is recorded in +settings->tool_offset_index+, - though this value is never used. - - -==== G10 L1/L10/L11 - -Modifies the tool table. - -Handled by +Interp::convert_setup_tool()+. - -. Picks the tool number out of the P-word in the block and finds the - pocket for that tool: - - .. With a nonrandom toolchanger config this is always the - pocket number in the toolchanger (even when the tool is in - the spindle). - - .. With a random toolchanger config, if the tool is currently - loaded it uses pocket 0 (pocket 0 means "the spindle"), - and if the tool is not loaded it uses the pocket number in - the tool changer. (This difference is important.) - -. Figures out what the new offsets should be. - -. The new tool information (diameter, offsets, angles, and orientation), - along with the tool number and pocket number, are passed to the Canon - call SET_TOOL_TABLE_ENTRY(). - - .. (saicanon) Copy the new tool information to the specified pocket - (in sai's internal tool table, +_tools+). - - .. (emccanon) Build an +EMC_TOOL_SET_OFFSET+ message with the new - tool information, and send it to Task, which passes it - to IO. IO updates the specified pocket in its internal - copy of the tool table (+emcioStatus.tool.toolTable+), and - if the specified tool is currently loaded (it is compared to - +emcioStatus.tool.toolInSpindle+) then the new tool information - is copied to pocket 0 (the spindle) as well. (FIXME: that's a - buglet, should only be copied on nonrandom machines.) Finally IO - saves the new tool table. - -. Back in interp, if the modified tool is currently loaded in the - spindle, and if the machine is a non-random toolchanger, then - the new tool information is copied from the tool's home pocket - to pocket 0 (the spindle) in interp's copy of the tool table, - +settings->tool_table+. (This copy is not needed on random tool - changer machines because there, tools don't have a home pocket and - instead we just updated the tool in pocket 0 directly.) - -. The relevant numbered parameters - (<>) are updated from the tool - information in the spindle (by copying the information from interp's - +settings->tool_table+ to +settings->parameters+). (FIXME: this is - a buglet, the params should only be updated if it was the current - tool that was modified). - -. If the modified tool is currently loaded in the - spindle, and if the config is for a nonrandom toolchanger, then the - new tool information is written to the tool table's pocket 0 as well, - via a second call to SET_TOOL_TABLE_ENTRY(). (This second tool-table - update is not needed on random toolchanger machines because there, - tools don't have a home pocket and instead we just updated the tool - in pocket 0 directly.) - - -==== M61 - -FIXME! - -Set current tool number. This switches which tool is in the spindle, -without actually moving the toolchanger or swapping any tools. - -Handled by +Interp::convert_tool_change()+. - -Canon: +CHANGE_TOOL_NUMBER()+ - -settings->current_pocket is assigned the pocket number currently -holding the tool specified by the Q-word argument. - -I think this m-code is broken. - - -==== G41/G41.1/G42/G42.1 - -Enable cutter radius compensation (usually called _cutter comp_). - -Handled by +Interp::convert_cutter_compensation_on()+. - -No Canon call, cutter comp happens in the interpreter. Uses the tool -table in the expected way: if a D-word tool number is supplied it looks -up the pocket number of the specified tool number in the table, and if -no D-word is supplied it uses pocket 0 (the spindle). - - -==== G40 - -Cancel cutter radius compensation. - -Handled by +Interp::convert_cutter_compensation_off()+. - -No Canon call, cutter comp happens in the interpreter. Does not use -the tool table. - - -=== Internal state variables - -This is not an exhaustive list! Tool information is spread through -out LinuxCNC. - - -==== IO - -+emcioStatus+ is of type +EMC_IO_STAT+ - -emcioStatus.tool.pocketPrepped:: - - When IO gets the signal from HAL that the toolchanger prep is - complete (after a +Txxx+ command), this variable is set to the - pocket of the requested tool. When IO gets the signal from HAL - that the tool change itself is complete (after an +M6+ command), - this variable gets reset to -1. - -emcioStatus.tool.toolInSpindle:: - - Tool number of the tool currently installed in the spindle. - Exported on the HAL pin +iocontrol.0.tool-number+ (s32). - -emcioStatus.tool.toolTable[]:: - - An array of +CANON_TOOL_TABLE+ structures, +CANON_POCKETS_MAX+ long. - Loaded from the tool table file at startup and maintained there - after. Index 0 is the spindle, indexes 1-(CANON_POCKETS_MAX-1) - are the pockets in the toolchanger. This is a complete copy - of the tool information, maintained separately from Interp's - +settings.tool_table+. - - -==== interp - -+settings+ is of type +settings+, which is +struct setup_struct+. -Defined in +src/emc/rs274ngc/interp_internal.hh+. - -settings.selected_pocket:: - - Pocket of the tool most recently selected by +Txxx+. - -settings.current_pocket:: - - Original pocket of the tool currently in the spindle. In other words: - which toolchanger pocket the tool that's currently in the spindle - was loaded from. - -settings.tool_table[]:: - - An array of tool information. The index into the array is the "pocket - number" (aka "slot number"). Pocket 0 is the spindle, pockets 1 - through (CANON_POCKETS_MAX-1) are the pockets of the toolchanger. - -settings.tool_offset_index:: - - Unused. FIXME: Should probably be removed. - -settings.toolchange_flag:: - - Interp sets this to true when calling Canon's CHANGE_TOOL() - function. It is checked in +Interp::convert_tool_length_offset()+ - to decide which pocket to use for G43 (with no H-word): - +settings->current_pocket+ if the tool change is still in progress, - pocket 0 (the spindle) if the tool change is complete. - -settings.random_toolchanger:: - - Set from the ini variable +[EMCIO]RANDOM_TOOLCHANGER+ at startup. - Controls various tool table handling logic. (IO also reads this - ini variable and changes its behavior based on it. For example, - when saving the tool table, random toolchanger save the tool in - the spindle (pocket 0), but non-random toolchanger save each tool - in its "home pocket".) - -settings.tool_offset:: - - This is an +EmcPose+ variable. - - * Used to compute position in various places. - - * Sent to Motion via the +EMCMOT_SET_OFFSET+ message. - All motion does with the offsets is export them to the HAL pins - +motion.0.tooloffset.[xyzabcuvw]+. FIXME: export these from - someplace closer to the tool table (io or interp, probably) - and remove the EMCMOT_SET_OFFSET message. - -settings.pockets_max:: - - Used interchangably with +CANON_POCKETS_MAX+ (a #defined constant, - set to 56 as of 2012 December 30). FIXME: This settings variable - is not currently useful and should probably be removed. - -settings.tool_table:: - - This is an array of +CANON_TOOL_TABLE+ structures (defined in - +src/emc/nml_intf/emctool.h+), with +CANON_POCKETS_MAX+ entries. - Indexed by "pocket number", aka "slot number". Index 0 is the - spindle, indexes 1-(CANON_POCKETS_MAX-1) are the pockets in the tool - changer. On a random toolchanger pocket numbers are meaningful. - On a nonrandom toolchanger pockets are meaningless; the pocket - numbers in the tool table file are ignored and tools are assigned - to +tool_table+ slots sequentially. - -settings.tool_change_at_g30:: -settings.tool_change_quill_up:: -settings.tool_change_with_spindle_on:: - - These are set from ini variables in the +[EMCIO]+ section, and - control how tool changes are performed. - diff --git a/docs/src/code/Contributing-to-LinuxCNC.txt b/docs/src/code/Contributing-to-LinuxCNC.txt deleted file mode 100644 index d1b5f587e7e..00000000000 --- a/docs/src/code/Contributing-to-LinuxCNC.txt +++ /dev/null @@ -1,257 +0,0 @@ -= Contributing to LinuxCNC - - -== Introduction - -This document contains information for developers about LinuxCNC -infrastructure, and describes the best practices for contributing code -and documentation updates to the LinuxCNC project. - -Throughout this document, "source" means both the source code to the -programs and libraries, and the source text for the documentation. - - -== Communication among LinuxCNC developers - -The two main ways that project developers communicate with each other are: - -* Via IRC, at #linuxcnc-devel on FreeNode. - -* Via email, on the developers' mailing list: - https://lists.sourceforge.net/lists/listinfo/emc-developers - - -== The LinuxCNC Source Forge project - -We use Source Forge for mailing lists and bug tracking. - -Our SF mailing lists are here: http://sourceforge.net/p/emc/mailman/ - -Our SF bug tracker is here: http://sourceforge.net/p/emc/bugs/ - - -== The git Revision Control System - -All of the LinuxCNC source is maintained in the revision control system -git footnote:[http://git-scm.com/]. - -=== LinuxCNC official git repo - -The official LinuxCNC git repo is at http://git.linuxcnc.org. - -The anonymous clone command is: - -`git clone git://git.linuxcnc.org/git/linuxcnc.git linuxcnc-dev` - -If you are a registered developer with push access, the ssh clone -command is: - -`git clone ssh://$YOU@git.linuxcnc.org/git/linuxcnc.git linuxcnc-dev` - -Note that both the clone commands put the local LinuxCNC repo in a -directory called `linuxcnc-dev`, instead of the default `linuxcnc`. -This is because the LinuxCNC software by default expects configs and -G-code programs in a directory called `$HOME/linuxcnc`, and having the -git repo there too is confusing. - -=== LinuxCNC on github - -There is a regularly updated git clone on github: -https://github.com/jepler/linuxcnc-mirror - -=== git tutorials - -There are many excellent, free git tutorials on the internet. - -The first place to look is probably the "gittutorial" manpage. -This manpage is accessible by running "man gittutorial" in a terminal -(if you have the git manpages installed). The gittutorial and its -follow-on documentation are also available online here: - -* git tutorial: - https://www.kernel.org/pub/software/scm/git/docs/gittutorial.html - -* git tutorial 2: - https://www.kernel.org/pub/software/scm/git/docs/gittutorial-2.html - -* Everyday git with 20 commands or so: - https://www.kernel.org/pub/software/scm/git/docs/everyday.html - -* Git User's Manual: - https://www.kernel.org/pub/software/scm/git/docs/user-manual.html - -For a more thorough documentation of git see the "Pro Git" book: -http://git-scm.com/book - -Another online tutorial that has been recommended is "Git for the Lazy": -http://wiki.spheredev.org/Git_for_the_lazy - - -== Overview of the process - -The high-level overview of how to contribute changes to the source goes -like this: - -* Communicate with the project developers and let us know what you're - hacking on - -* Clone the git repo - -* Commit the changes you desire to a local branch - -* Share your changes with the other project developers in one of two ways: - -** Push your branch to a publicly visible git repo (such as github, - bitbucket, your own publicly-accessible server, etc), or - -** Email your commits to the emc-developers mailing list (using `git - format-patch`) - -* Champion your patch - -** Explain what problem it addresses and why it should be included - in LinuxCNC - -** Be receptive to questions and feedback from the developer community. - -** It is not uncommon for a patch to go through several revisions before - it is accepted. - - -== git configuration - -In order to be considered for inclusion in the LinuxCNC source, commits -must have correct Author fields identifying the author of the commit. -A good way to ensure this is to set your global git config: - -`git config --global user.name "Your full name"` - -`git config --global user.email "you@example.com"` - -Use your real name (not a handle), and use an unobfuscated e-mail address. - - -== Effective use of git - -=== Commit contents - -Keep your commits small and to the point. Each commit should accomplish -one logical change to the repo. - -=== Write good commit messages - -Keep commit messages around 72 columns wide (so that in a default-size -terminal window, they don't wrap when shown by `git log`). - -Use the first line as a summary of the intent of the change (almost -like the subject line of an e-mail). Follow it with a blank line, -then a longer message explaining the change. Example: - - Get rid of RTAPI_SUCCESS, use 0 instead - - The test "retval < 0" should feel familiar; it's the same kind of - test you use in userspace (returns -1 for error) and in kernel space - (returns -ERRNO for error) - -=== Commit to the proper branch - -Bugfixes should go on the oldest applicable branch. New features should -go in the master branch. If you're not sure where a change belongs, -ask on irc or on the mailing list. - -=== Use multiple commits to organize changes - -When appropriate, organize your changes into a branch (a series of -commits) where each commit is a logical step towards your ultimate -goal. For example, first factor out some complex code into a new -function. Then, in a second commit, fix an underlying bug. Then, in the -third commit, add a new feature which is made easier by the refactoring -and which would not have worked without fixing that bug. - -This is helpful to reviewers, because it is easier to see that the -"factor out code into new function" step was right when there aren’t -other edits mixed in; it’s easier to see that the bug is fixed when -the change that fixes it is separate from the new feature; and so on. - -=== Follow the style of the surrounding code - -Make an effort to follow the prevailing indentation style of surrounding -code. In particular, changes to whitespace make it harder for other -developers to track changes over time. When reformatting code must be -done, do it as a commit separate from any semantic changes. - -=== Simplify complicated history before sharing with fellow developers - -With git, it’s possible to record every edit and false start as a -separate commit. This is very convenient as a way to create checkpoints -during development, but often you don’t want to share these false -starts with others. - -Git provides two main ways to clean history, both of which can be done -freely before you share the change: - -`git commit --amend` lets you make additional changes to the last thing -you committed, optionally modifying the commit message as well. Use this -if you realized right away that you left something out of the commit, -or if you typo’d the commit message. - -`git rebase --interactive upstream-branch` lets you go back through each -commit made since you forked your feature branch from the upstream branch, -possibly editing commits, dropping commits, or squashing (combining) -commits with others. Rebase can also be used to split individual commits -into multiple new commits. - -=== Make sure every commit builds - -If your change consists of several patches, `git rebase -i` may be used to -reorder these patches into a sequence of commits which more clearly lays -out the steps of your work. A potential consequence of reordering patches -is that one might get dependencies wrong - for instance, introducing a -use of a variable, and the declaration of that variable only follows in -a later patch. - -While the branch HEAD will build, not every commit might build in such -a case. That breaks `git bisect` - something somebody else might use -later on to find the commit which introduced a bug. So beyond making -sure your branch builds, it is important to assure every single commit -builds as well. - -There's an automatic way to check a branch for each commit being buildable -- see http://dustin.sallings.org/2010/03/28/git-test-sequence.html -, and the code at https://github.com/dustin/bindir/blob/master/git-test-sequence . -Use as follows (in this case testing every commit from origin/master to -HEAD, including running regression tests): - -`cd linuxcnc-dev` - -`git-test-sequence origin/master.. '(cd src;make;runtests)'` - -This will either report 'All's well' or 'Broke on ' - -=== Renaming files - -Please use the ability to rename files very cautiously. Like running -indent on single files, renames still make it more difficult to follow -changes over time. At a minimum, you should seek consensus on irc or -the mailing list that the rename is an improvement. - -=== Prefer "rebase" - -Use `git pull --rebase` instead of bare `git pull` in order to keep a -nice linear history. When you rebase, you always retain your work as -revisions that are ahead of origin/master, so you can do things like -`git format-patch` them to share with others without pushing to the -central repository. - - -== Other ways to contribute - -There are many ways to contribute to LinuxCNC, that are not addressed -by this document. These ways include: - -* Answering questions on the forum, mailing lists, and in IRC - -* Reporting bugs on the bug tracker, forum, mailing lists, or in IRC - -* Helping test experimental features - diff --git a/docs/src/code/LinuxCNC-block-diagram-small.png b/docs/src/code/LinuxCNC-block-diagram-small.png deleted file mode 100644 index bb12a242d70..00000000000 Binary files a/docs/src/code/LinuxCNC-block-diagram-small.png and /dev/null differ diff --git a/docs/src/code/LinuxCNC-block-diagram.png b/docs/src/code/LinuxCNC-block-diagram.png deleted file mode 100644 index a2086d8874e..00000000000 Binary files a/docs/src/code/LinuxCNC-block-diagram.png and /dev/null differ diff --git a/docs/src/code/LinuxCNC-motion-controller-small.png b/docs/src/code/LinuxCNC-motion-controller-small.png deleted file mode 100644 index 90fc0bbfd13..00000000000 Binary files a/docs/src/code/LinuxCNC-motion-controller-small.png and /dev/null differ diff --git a/docs/src/code/LinuxCNC-motion-controller.png b/docs/src/code/LinuxCNC-motion-controller.png deleted file mode 100644 index b237ec4981f..00000000000 Binary files a/docs/src/code/LinuxCNC-motion-controller.png and /dev/null differ diff --git a/docs/src/code/NML_Messages.txt b/docs/src/code/NML_Messages.txt deleted file mode 100644 index 179a99d9d69..00000000000 --- a/docs/src/code/NML_Messages.txt +++ /dev/null @@ -1,2001 +0,0 @@ -= NML Messages - -== EMC OPERATOR - -=== EMC_OPERATOR_ERROR_TYPE - -Description, NML Type: textual error message to the operator, 11 - -Written From: emccanon.cc, iosh.cc - -Read To: emctaskmain.cc, emcsh.cc - -Parameter, Type: [error, char[LINELEN]] - -=== EMC_OPERATOR_TEXT_TYPE - -Description, NML Type: textual information message to the operator, 12 - -Written From: emctaskmain.cc - -Read To: emctaskmain.cc, emcsh.cc - -Parameter, Type: [text, char[LINELEN]] - -=== EMC_OPERATOR_DISPLAY_TYPE - -Description, NML Type: URL or filename of a document to display, 13 - -Obs: not used, only read - -Written From: none - -Read To: emctaskmain.cc, emcsh.cc - -Parameter, Type: [display, char[LINELEN]] - -== EMC NULL, SET, DEBUG, & SYSTEM - -=== EMC_NULL_TYPE - -Description, NML Type: used to reset serial number to original, 21 - -Written From: thisQuit (emcsh.cc) - -Read To: emctaskmain.cc - -Parameter, Type: none - -=== EMC_SET_DEBUG_TYPE - -Description, NML Type: sets debug level, 22 - -Written From: emcIoSetDebug (iotaskintf.cc), sendDebug (emcsh.cc) - -Read To: emctaskmain.cc, ioControl.cc - -Parameter, Type: [debug, int] - -=== EMC_SYSTEM_CMD_TYPE - -Description, NML Type: execute a system command, 30 - -Written From: user_defined_add_m_code (emctask.cc) - -Read To: emcSystemCmd (emctaskmain.cc) - -Parameter, Type: [string, char[LINELEN]] - -== EMC AXIS - -=== EMC_AXIS_SET_AXIS_TYPE - -Description, NML Type: axis type to linear or angular, 101 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [axisType, unsigned char] - -=== EMC_AXIS_SET_UNITS_TYPE - -Description, NML Type: units conversion factor, 102 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [units, double] - -=== EMC_AXIS_SET_GAINS_TYPE - -Description, NML Type: Set the PID gains, 103 - -Obs: currently not used in EMC2, needs to go to HAL - -Written From: none - -Read To: emctaskmain.cc - -++++ -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] -[p, double] [i,double] [d, double] -[ff0, double] [ff1, double] [ff2, double] -[backlash, double] [bias, double] [maxError, double] -++++ - -=== EMC_AXIS_SET_CYCLE_TIME_TYPE - -Description, NML Type: cycle time for the servo task, 104 - -Written From: none - -Read To: emctaskmain.cc - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [cycleTime, double] - -=== EMC_AXIS_SET_INPUT_SCALE_TYPE - -Description, NML Type: scale factor and offset for the position input, 105 - -Obs: currently if 0'ed, used only directly from iniaxis - -Written From: none - -++++ -Read To: emcTaskIssueCommand (emctaskmain.cc) -calls emcAxisSetInputScale (minimill|bridgeporttaskintf.cc) -which sends EMCMOT_SET_INPUT_SCALE -++++ - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [scale, double] [offset, double] - -=== EMC_AXIS_SET_OUTPUT_SCALE_TYPE - -Description, NML Type: scale factor and offset for the position -output, 106 - -Obs: currently if 0'ed, used only directly from iniaxis - -Written From: none - -Read To: emcTaskIssueCommand (emctaskmain.cc) - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [scale, double] [offset, double] - -=== EMC_AXIS_SET_MIN_POSITION_LIMIT_TYPE - -Description, NML Type: sets min limit, 107 - -Obs: also handled by iniaxis which directly calls emcAxisSetMinPositionLimit - -Written From: none - -++++ -Read To: emcTaskIssueCommand (emctaskmain.cc) -calls emcAxisSetMinPositionLimit (taskintf.cc) -which sends EMCMOT_SET_POSITION_LIMITS -++++ - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [limit, double] - -=== EMC_AXIS_SET_MAX_POSITION_LIMIT_TYPE - -Description, NML Type: sets max limit, 108 - -Obs: also handled by iniaxis which directly calls emcAxisSetMaxPositionLimit - -Written From: none - -++++ -Read To: emcTaskIssueCommand (emctaskmain.cc) -calls emcAxisSetMaxPositionLimit (taskintf.cc) -which sends EMCMOT_SET_POSITION_LIMITS -++++ - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [limit, double] - -=== EMC_AXIS_SET_MIN_OUTPUT_LIMIT_TYPE - -Description, NML Type: -, 109 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [limit, double] - -=== EMC_AXIS_SET_MAX_OUTPUT_LIMIT_TYPE - -Description, NML Type: -, 110 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [limit, double] - -=== EMC_AXIS_SET_FERROR_TYPE - -Description, NML Type: sets max following error, 111 - -Obs: also handled by iniaxis which directly calls emcAxisSetFerror - -Written From: none - -++++ -Read To: emcTaskIssueCommand (emctaskmain.cc) -calls emcAxisSetFerror (taskintf.cc) -which sends EMCMOT_SET_MAX_FERROR -++++ - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [ferror, double] - -=== EMC_AXIS_SET_HOMING_VEL_TYPE - -Description, NML Type: -, 112 - -Obs: in EMC2 those are SET_HOMING_PARAMS double home, double offset, -double search_vel, double latch_vel, int use_index, int ignore_limits, - -Written From: none - -Read To: none - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [ferror, double] - -=== EMC_AXIS_SET_HOME_TYPE - -Description, NML Type: -, 113 - -Written From: none - -Read To: none - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [homingVel, double] - -=== EMC_AXIS_SET_HOME_OFFSET_TYPE - -Description, NML Type: -, 114 - -Written From: none - -Read To: none - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [home, double] - -=== EMC_AXIS_SET_MIN_FERROR_TYPE - -Description, NML Type: sets min following error, 115 - -Obs: also handled by iniaxis which directly calls emcAxisSetMinFerror - -Written From: none - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcAxisSetMinFerror (taskintf.cc) + -which sends EMCMOT_SET_MIN_FERROR - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [offset, double] - -=== EMC_AXIS_SET_MAX_VELOCITY_TYPE - -Description, NML Type: sets max. velocity, 116 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [vel, double] - -=== EMC_AXIS_INIT_TYPE - -Description, NML Type: -, 118 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] - -=== EMC_AXIS_HALT_TYPE - -Description, NML Type: -, 119 - -Obs: not used, only read - -Written From: none - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcAxisHalt (taskintf.cc) - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] - -=== EMC_AXIS_ABORT_TYPE - -Description, NML Type: aborts motion on an axis (e.g. GUI jogs), 120 - -Obs: used from the GUI when stopping a manual jog - -Written From: sendJogStop (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcAxisAbort (taskintf.cc) + -which sends EMCMOT_AXIS_ABORT - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] - -=== EMC_AXIS_ENABLE_TYPE - -Description, NML Type: enables axis, 121 - -Obs: not used from tkemc & mini - -Written From: sendAxisEnable (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcAxisEnable (taskintf.cc) + -which sends EMCMOT_ENABLE_AMPLIFIER - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] - -=== EMC_AXIS_DISABLE_TYPE - -Description, NML Type: disable axis, 122 - -Obs: not used from tkemc & mini - -Written From: sendAxisDisable (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcAxisDisable (taskintf.cc) + -which sends EMCMOT_DISABLE_AMPLIFIER - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] - -=== EMC_AXIS_HOME_TYPE - -Description, NML Type: home an axis at current position, 123 - -Obs: used from tkemc & mini through emc_home - -Written From: sendHome (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcAxisHome (taskintf.cc) + -which sends EMCMOT_HOME - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] - -=== EMC_AXIS_JOG_TYPE - -Description, NML Type: jogs an axis continuously, 124 - -Obs: used on jogging - -Written From: sendJogCont (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcAxisJog (taskintf.cc) + -which sends EMCMOT_JOG_CONT - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [vel, double] - -=== EMC_AXIS_INCR_JOG_TYPE - -Description, NML Type: jogs an axis with an increment, 125 - -Obs: used on jogging - -Written From: sendJogIncr (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcAxisIncrJog (taskintf.cc) + -which sends EMCMOT_JOG_INCR - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] + -incr, double] [vel, double] - -=== EMC_AXIS_ABS_JOG_TYPE - -Description, NML Type: jogs an axis with an absolute value, 126 - -Obs: not used, only read - -Written From: none - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcAxisAbsJog (taskintf.cc) + -which sends EMCMOT_JOG_ABS - -++++ -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] -[pos, double] [vel, double] -++++ - -=== EMC_AXIS_ACTIVATE_TYPE - -Description, NML Type: -, 127 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] - -=== EMC_AXIS_DEACTIVATE_TYPE - -Description, NML Type: -, 128 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] - -=== EMC_AXIS_OVERRIDE_LIMITS_TYPE - -Description, NML Type: overrides min/max limits during homing, 129 - -Obs: used from tkemc & mini through emc_override_limit - -Written From: sendOverrideLimits (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcAxisOverrideLimits (taskintf.cc) + -which sends EMCMOT_OVERRIDE_LIMITS - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] - -=== EMC_AXIS_SET_OUTPUT_TYPE - -Description, NML Type: sets an DAC output value, 130 - -Obs: currently not used in EMC2, needs to go to HAL - -Written From: sendAxisSetOutput (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcAxisSetOutput (taskintf.cc) + -which sends EMCMOT_DAC_OUT - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [output, double] - -=== EMC_AXIS_LOAD_COMP_TYPE - -Description, NML Type: loads compensation values from a file, 131 - -Obs: currently usrmotLoadComp if 0'ed in EMC2 - -Written From: sendAxisLoadComp (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcAxisLoadComp (minimill|bridgeporttaskintf.cc) + -which calls usrmotLoadComp - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [file, char[LINELEN]] - -=== EMC_AXIS_ALTER_TYPE - -Description, NML Type: loads the alter value to modify the axis -position, 132 - -Written From: sendAxisAlter (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcAxisAlter (taskintf.cc) + -which calls usrmotAlter - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [alter, double] - -=== EMC_AXIS_SET_STEP_PARAMS_TYPE - -Description, NML Type: was used to set step related params, 133 - -Obs: currently not used in EMC2, needs to go to HAL + - (maybe directly from the ini, not through NML) - -Written From: none - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcAxisSetStepParams (taskintf.cc) + -which sends EMCMOT_SET_STEP_PARAMS - -Parameter, Type: [axis (in EMC_AXIS_CMD_MSG), int] [setup_time, -double] [hold_time, double] - -=== EMC_AXIS_STAT_TYPE - -Description, NML Type: status for axis, not sent as a message but used as is, 199 - -Written From: none - -Read To: none - -Parameter, Type: [a HUGE load of params] - -== EMC TRAJ - -=== EMC_TRAJ_SET_AXES_TYPE - -Description, NML Type: -, 201 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [axes, int] - -=== EMC_TRAJ_SET_UNITS_TYPE - -Description, NML Type: -, 202 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [linearUnits, double] [angularUnits, double] - -=== EMC_TRAJ_SET_CYCLE_TIME_TYPE - -Description, NML Type: -, 203 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [cycleTime, double] - -=== EMC_TRAJ_SET_MODE_TYPE - -Description, NML Type: -, 204 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [mode, enum EMC_TRAJ_MODE_ENUM] - -=== EMC_TRAJ_SET_VELOCITY_TYPE - -Description, NML Type: sends a request to set the vel, which is in -internal units/sec, 205 - -Written From: sendVelMsg (emccanon.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcTrajSetVelocity (minimill | bridgeporttaskintf.cc) + -which sends EMCMOT_SET_VEL - -Parameter, Type: [velocity, double] - -=== EMC_TRAJ_SET_ACCELERATION_TYPE - -Description, NML Type: -, 206 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [acceleration, double] - -=== EMC_TRAJ_SET_MAX_VELOCITY_TYPE - -Description, NML Type: -, 207 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [velocity, double] - -=== EMC_TRAJ_SET_MAX_ACCELERATION_TYPE - -Description, NML Type: -, 208 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [acceleration, double] - -=== EMC_TRAJ_SET_SCALE_TYPE - -Description, NML Type: set the feed override to be the percent value, 209 - -Obs: used for feed override messages - -Written From: sendFeedOverride (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcTrajSetScale (taskintf.cc) + -which sends EMCMOT_SCALE - -Parameter, Type: [scale, double] - -=== EMC_TRAJ_SET_MOTION_ID_TYPE - -Description, NML Type: -, 210 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [id, int] - -=== EMC_TRAJ_INIT_TYPE - -Description, NML Type: -, 211 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_TRAJ_HALT_TYPE - -Description, NML Type: -, 212 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_TRAJ_ENABLE_TYPE - -Description, NML Type: -, 213 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_TRAJ_DISABLE_TYPE - -Description, NML Type: -, 214 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_TRAJ_ABORT_TYPE - -Description, NML Type: causes traj to abort ?, 215 - -Obs: not used, only read - -Written From: none - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcTrajAbort (taskintf.cc) + -which sends EMCMOT_ABORT - -Parameter, Type: - -=== EMC_TRAJ_PAUSE_TYPE - -Description, NML Type: causes traj to pause ?, 216 - -Obs: not used, only read - -Written From: none - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcTrajPause (minimill | bridgeporttaskintf.cc) + -which sends EMCMOT_PAUSE - -Parameter, Type: - -=== EMC_TRAJ_STEP_TYPE - -Description, NML Type: -, 217 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_TRAJ_RESUME_TYPE - -Description, NML Type: causes traj to resume ?, 218 - -Obs: not used, only read - -Written From: none - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcTrajResume (minimill | bridgeporttaskintf.cc) + -which sends EMCMOT_RESUME - -Parameter, Type: - -=== EMC_TRAJ_DELAY_TYPE - -Description, NML Type: sets a delay in the task execution, 219 - -Obs: used with dwelling - -Written From: DWELL (emccanon.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) - -Parameter, Type: [delay, double] - -=== EMC_TRAJ_LINEAR_MOVE_TYPE - -Description, NML Type: sends a linear move from the interp to motion, 220 - -Obs: used - -Written From: STRAIGHT_TRAVERSE, ARC_FEED (emccanon.cc) - -Read To: checkInterpList, emcTaskIssueCommand (emctaskmain.cc) + -calls emcTrajLinearMove (minimill | bridgeporttaskintf.cc) + -which sends EMCMOT_SET_LINE - -Parameter, Type: [end, EmcPose] - -=== EMC_TRAJ_CIRCULAR_MOVE_TYPE - -Description, NML Type: sends a circular move from the interp to -motion, 221 - -Obs: used - -Written From: ARC_FEED (emccanon.cc) - -Read To: checkInterpList, emcTaskIssueCommand (emctaskmain.cc) + -calls emcTrajCircularMove (minimill | bridgeporttaskintf.cc) + -which sends EMCMOT_SET_CIRCLE - -++++ -Parameter, Type: [end, EmcPose] [center, PM_CARTESIAN] -[normal, PM_CARTESIAN] [turn, int] -++++ - -=== EMC_TRAJ_SET_TERM_COND_TYPE - -Description, NML Type: chooses between blending or exact path mode, 222 - -Obs: used, seems the interp knows exact PATH, STOP and BLEND, motion -however knows only BLEND or STOP - -Written From: SET_MOTION_CONTROL_MODE (emccanon.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcTrajSetTermCond (minimill | bridgeporttaskintf.cc) + -which sends EMCMOT_TERM_COND_STOP or EMCMOT_TERM_COND_BLEND - -Parameter, Type: [cond, int] - -=== EMC_TRAJ_SET_OFFSET_TYPE - -Description, NML Type: is used for tool length offset, 223 - -Obs: used, the message could transport more than just Z offset used -for tool length - -Written From: USE_TOOL_LENGTH_OFFSET (emccanon.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -` `remembers the origin offset into emcStatus\->task.origin - -Parameter, Type: [offset, EmcPose] - -=== EMC_TRAJ_SET_ORIGIN_TYPE - -Description, NML Type: sets the origin coords ?, 224 - -Obs: used - -Written From: SET_ORIGIN_OFFSETS (emccanon.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -remembers the tool length offset - -Parameter, Type: [origin, EmcPose] - -=== EMC_TRAJ_SET_HOME_TYPE - -Description, NML Type: -, 225 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [home, EmcPose] - -=== EMC_TRAJ_SET_PROBE_INDEX_TYPE - -Description, NML Type: sends the index pin used for probing, 226 - -Obs: should get obsolete, probin pin should get routed by HAL - -Written From: sendSetProbeIndex (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcTrajSetProbeIndex (minimill | bridgeporttaskintf.cc) + -which sends EMCMOT_SET_PROBE_INDEX - -Parameter, Type: [index, int] - -=== EMC_TRAJ_SET_PROBE_POLARITY_TYPE - -Description, NML Type: sends the polarity for the pin used for -probing, 227 - -Obs: should get obsolete, probin pin polarity should get routed by HAL - -Written From: sendSetProbePolarity (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcTrajSetProbePolarity (minimill | bridgeporttaskintf.cc) + -which sends EMCMOT_SET_PROBE_POLARITY - -Parameter, Type: [polarity, int] - -=== EMC_TRAJ_CLEAR_PROBE_TRIPPED_FLAG_TYPE - -Description, NML Type: clears the probe tripped, 228 - -Obs: used - -Written From: TURN_PROBE_ON (emccanon.cc) + -sendClearProbeTrippedFlag (emcsh.cc) + - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcTrajClearProbeTrippedFlag (minimill | bridgeporttaskintf.cc) + -which sends EMCMOT_CLEAR_PROBE_FLAGS - -Parameter, Type: - -=== EMC_TRAJ_PROBE_TYPE - -Description, NML Type: performs a straight probe move, 229 - -Obs: used - -Written From: STRAIGHT_PROBE (emccanon.cc) sendProbe (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcTrajProbe (minimill | bridgeporttaskintf.cc) + -which sends EMCMOT_PROBE - -Parameter, Type: [pos, EmcPose] - -=== EMC_TRAJ_SET_TELEOP_ENABLE_TYPE - -Description, NML Type: sets the traj mode to teleop, 230 - -Obs: used - -Written From: sendSetTeleopEnable (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcTrajSetMode (minimill | bridgeporttaskintf.cc) + -which sends EMCMOT_TELEOP - -Parameter, Type: [enable, int] - -=== EMC_TRAJ_SET_TELEOP_VECTOR_TYPE - -Description, NML Type: jogs in teleop mode, 231 - -Obs: used for jogging in teleop mode - -Written From: sendJogCont (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcTrajSetTeleopVector (minimill | bridgeporttaskintf.cc) + -which sends EMCMOT_SET_TELEOP_VECTOR - -Parameter, Type: [vector, EmcPose] - -=== EMC_TRAJ_STAT_TYPE - -Description, NML Type: status for traj, not sent as a message but used as is, 299 - -Written From: none - -Read To: none - -Parameter, Type: [a HUGE load of params] - -== EMC MOTION - -=== EMC_MOTION_INIT_TYPE - -Description, NML Type: -, 301 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_MOTION_HALT_TYPE - -Description, NML Type: -, 302 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_MOTION_ABORT_TYPE - -Description, NML Type: -, 303 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_MOTION_SET_AOUT_TYPE - -Description, NML Type: sets an analog output value coordinated with motion, 304 - -Obs: emccanon.cc currently lacks this in EMC2, not used in EMC2, needs to go to HAL - -Written From: none - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcMotionSetAout (minimill | bridgeporttaskintf.cc) + -which sends EMCMOT_SET_AOUT - -++++ -Parameter, Type: [index, unsigned char] [start, double] -[end, double] [now, unsigned char] -++++ - -=== EMC_MOTION_SET_DOUT_TYPE - -Description, NML Type: sets an digital output value coordinated with motion, 305 - -Obs: emccanon.cc currently lacks this in EMC2, not used in EMC2, needs to go to HAL - -Written From: none - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcMotionSetDout (minimill | bridgeporttaskintf.cc) + -which sends EMCMOT_SET_DOUT - -Parameter, Type: [index, unsigned char] [start, double] [end, double] - -=== EMC_MOTION_STAT_TYPE - -Description, NML Type: status for motion, not sent as a message but used as is, 399 - -Written From: none - -Read To: none - -++++ -Parameter, Type: [heartbeat, unsigned long int] [traj, EMC_TRAJ_STAT] -[axis[EMC_AXIS_MAX], EMC_AXIS_STAT] -++++ - -== EMC TASK - -=== EMC_TASK_INIT_TYPE - -Description, NML Type: calls the Task init(), 501 - -Obs: not used, emcTaskInit called directly from emctask_startup() - -Written From: none - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls emcTaskInit() - -Parameter, Type: - -=== EMC_TASK_HALT_TYPE - -Description, NML Type: -, 502 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_TASK_ABORT_TYPE - -Description, NML Type: aborts task, cleans up, 503 - -Obs: used on shutdown - -Written From: sendAbort (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) aborts all - -Parameter, Type: - -=== EMC_TASK_SET_MODE_TYPE - -Description, NML Type: sets current TASK mode, MANUAL, MDI, AUTO, 504 - -Obs: used for switching the current mode - -Written From: sendManual sendMdi sendAuto (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcTaskSetMode (emcTask.cc) - -Parameter, Type: [mode, enum EMC_TASK_MODE_ENUM] - -=== EMC_TASK_SET_STATE_TYPE - -Description, NML Type: , 505 - -Written From: none - -Read To: none - -Parameter, Type: [state, enum EMC_TASK_STATE_ENUM] - -=== EMC_TASK_PLAN_OPEN_TYPE - -Description, NML Type: , 506 - -Written From: none - -Read To: none - -Parameter, Type: [file, char[LINELEN]] - -=== EMC_TASK_PLAN_RUN_TYPE - -Description, NML Type: , 507 - -Written From: none - -Read To: none - -Parameter, Type: [line, int] - -=== EMC_TASK_PLAN_READ_TYPE - -Description, NML Type: , 508 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_TASK_PLAN_EXECUTE_TYPE - -Description, NML Type: , 509 - -Written From: none - -Read To: none - -Parameter, Type: [command, char[LINELEN]] - -=== EMC_TASK_PLAN_PAUSE_TYPE - -Description, NML Type: , 510 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_TASK_PLAN_STEP_TYPE - -Description, NML Type: , 511 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_TASK_PLAN_RESUME_TYPE - -Description, NML Type: , 512 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_TASK_PLAN_END_TYPE - -Description, NML Type: , 513 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_TASK_PLAN_CLOSE_TYPE - -Description, NML Type: , 514 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_TASK_PLAN_INIT_TYPE - -Description, NML Type: , 515 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_TASK_PLAN_SYNCH_TYPE - -Description, NML Type: , 516 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_TASK_STAT_TYPE - -Description, NML Type: , 599 - -Written From: none - -Read To: none - -Parameter, Type: [heartbeat, unsigned long int] [a HUGE load of params] - -== EMC TOOL - -=== EMC_TOOL_INIT_TYPE - -Description, NML Type: starts TOOL init, 1101 - -Obs: used for initializing the IO stuff, should load the tool table too - -Written From: emcIoInit (iotaskintf.cc) - -Read To: main (ioControl.cc simIoControl.cc) + -emc_io_get_command (iosh.cc) - -Parameter, Type: - -=== EMC_TOOL_HALT_TYPE - -Description, NML Type: stops TOOL, 1102 - -Obs: used for stopping IO, doesn't actually do anything so far, in -EMC1 it was send to subordinates too (spindle, aux, coolant, lube) - -Written From: emcIoHalt (iotaskintf.cc) - -Read To: main (ioControl.cc simIoControl.cc) + -emc_io_get_command (iosh.cc) - -Parameter, Type: - -=== EMC_TOOL_ABORT_TYPE - -Description, NML Type: aborts TOOL, 1103 - -Obs: used for aborting IO, doesn't actually do anything so far, in -EMC1 it was send to subordinates too (spindle, aux, coolant, lube) - -Written From: emcIoAbort (iotaskintf.cc) - -Read To: main (ioControl.cc simIoControl.cc) + -emc_io_get_command (iosh.cc) - -Parameter, Type: - -=== EMC_TOOL_PREPARE_TYPE - -Description, NML Type: prepares a tool for tool changing, 1104 - -Obs: loads the prep tool in emcioStatus.tool.toolPrepped, should go to -PLC and make it move the desired tool in the toolchanging position - -Written From: SELECT_TOOL (emccanon.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcToolPrepare (iotaskintf.cc) + -which sends it to the IO controller - -Parameter, Type: [tool, int] - -=== EMC_TOOL_LOAD_TYPE - -Description, NML Type: changes the current tool with the prepared -tool, 1105 - -Obs: loads the actual tool, makes toolprepped=0 - -Written From: CHANGE_TOOL (emccanon.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcToolLoad (iotaskintf.cc) + -which sends it to the IO controller, + -main (simIoControl.cc ioControl.cc) - -Parameter, Type: - -=== EMC_TOOL_UNLOAD_TYPE - -Description, NML Type: unloads the current tool from the spindle, 1106 - -Obs: unloads the current tool, not written in EMC2 only read - -Written From: none - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcToolUnLoad (iotaskintf.cc) + -which sends it to the IO controller, + -main (simIoControl.cc ioControl.cc) - -Parameter, Type: - -=== EMC_TOOL_LOAD_TOOL_TABLE_TYPE - -Description, NML Type: loads the tool table, without this tool comp. can't be made, 1107 - -Written From: sendLoadToolTable (emcsh.cc) - -Read To: none - -Parameter, Type: [file, char[LINELEN]] - -=== EMC_TOOL_SET_OFFSET_TYPE - -Description, NML Type: , 1108 - -Written From: none - -Read To: none - -Parameter, Type: [tool, int] [length, double] [diameter, double] - -=== EMC_TOOL_STAT_TYPE - -Description, NML Type: , 1199 - -Written From: none - -Read To: none - -Parameter, Type: - -== EMC AUX - -=== EMC_AUX_INIT_TYPE - -Description, NML Type: , 1201 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_AUX_HALT_TYPE - -Description, NML Type: , 1202 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_AUX_ABORT_TYPE - -Description, NML Type: , 1203 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_AUX_DIO_WRITE_TYPE - -Description, NML Type: , 1204 - -Written From: none - -Read To: none - -Parameter, Type: [index, int] [value, int] - -=== EMC_AUX_AIO_WRITE_TYPE - -Description, NML Type: , 1205 - -Written From: none - -Read To: none - -Parameter, Type: [index, int] [value, double] - -=== EMC_AUX_ESTOP_ON_TYPE - -Description, NML Type: , 1206 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_AUX_ESTOP_OFF_TYPE - -Description, NML Type: , 1207 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_AUX_STAT_TYPE - -Description, NML Type: , 1299 - -Written From: none - -Read To: none - -++++ -Parameter, Type: [estop, int] -[estopIn, int] -[dout, unsigned char[EMC_AUX_MAX_DOUT]] -[din, unsigned char[EMC_AUX_MAX_DIN]] -[aout, double[EMC_AUX_MAX_AOUT]] -[ain, double[EMC_AUX_MAX_AIN]] -++++ - -== EMC SPINDLE - -=== EMC_SPINDLE_INIT_TYPE - -Description, NML Type: , 1301 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_SPINDLE_HALT_TYPE - -Description, NML Type: , 1302 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_SPINDLE_ABORT_TYPE - -Description, NML Type: , 1303 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_SPINDLE_ON_TYPE - -Description, NML Type: , 1304 - -Written From: none - -Read To: none - -Parameter, Type: [speed, double] - -=== EMC_SPINDLE_OFF_TYPE - -Description, NML Type: , 1305 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_SPINDLE_FORWARD_TYPE - -Description, NML Type: , 1306 - -Written From: none - -Read To: none - -Parameter, Type: [speed, double] - -=== EMC_SPINDLE_REVERSE_TYPE - -Description, NML Type: , 1307 - -Written From: none - -Read To: none - -Parameter, Type: [speed, double] - -=== EMC_SPINDLE_STOP_TYPE - -Description, NML Type: , 1308 - -Written From: none - -Read To: none - -Parameter, Type: [speed, double] - -=== EMC_SPINDLE_INCREASE_TYPE - -Description, NML Type: , 1309 - -Written From: none - -Read To: none - -Parameter, Type: [speed, double] - -=== EMC_SPINDLE_DECREASE_TYPE - -Description, NML Type: , 1310 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_SPINDLE_CONSTANT_TYPE - -Description, NML Type: , 1311 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_SPINDLE_BRAKE_RELEASE_TYPE - -Description, NML Type: , 1312 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_SPINDLE_BRAKE_ENGAGE_TYPE - -Description, NML Type: , 1313 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_SPINDLE_ENABLE_TYPE - -Description, NML Type: , 1314 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_SPINDLE_DISABLE_TYPE - -Description, NML Type: , 1315 - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_SPINDLE_STAT_TYPE - -Description, NML Type: , 1399 - -Written From: none - -Read To: none - -++++ -Parameter, Type: [speed, double] -[direction, int] -[brake, int] -[increasing, int] -[enabled, int] -++++ - -== EMC COOLANT - -=== EMC_COOLANT_INIT_TYPE - -Description, NML Type: initializes the COOLANT controller (currently -part of the IO controller), 1401 - -Obs: not written in EMC2, only read, in EMC1 it was sent when -TOOL_INIT was sent - -Written From: none - -Read To: main (ioControl.cc simIoControl.cc) + -emc_io_get_command (iosh.cc) - -Parameter, Type: none - -=== EMC_COOLANT_HALT_TYPE - -Description, NML Type: stops the COOLANT, 1402 - -Obs: not written in EMC2, only read, in EMC1 it was sent when TOOL_HALT was sent - -Written From: none - -Read To: main (ioControl.cc simIoControl.cc) + -emc_io_get_command (iosh.cc) - -Parameter, Type: none - -=== EMC_COOLANT_ABORT_TYPE - -Description, NML Type: aborts the COOLANT, 1403 - -Obs: not written in EMC2, only read, in EMC1 it was sent when TOOL_ABORT was sent - -Written From: none - -Read To: main (ioControl.cc simIoControl.cc) + -emc_io_get_command (iosh.cc) - -Parameter, Type: none - -=== EMC_COOLANT_MIST_ON_TYPE - -Description, NML Type: starts MIST coolant, 1404 - -Obs: used, written by emccanon.cc - -Written From: MIST_ON (emccanon.cc) sendMistOn (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcCoolantMistOn (iotaskintf.cc) + -which sends it to the IO controller, + -main (simIoControl.cc ioControl.cc) iosh.cc - -Parameter, Type: none - -=== EMC_COOLANT_MIST_OFF_TYPE - -Description, NML Type: stops MIST coolant, 1405 - -Obs: used, written by emccanon.cc - -Written From: MIST_OFF (emccanon.cc) sendMistOff (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcCoolantMistOff (iotaskintf.cc) + -which sends it to the IO controller, + -main (simIoControl.cc ioControl.cc) iosh.cc - -Parameter, Type: none - -=== EMC_COOLANT_FLOOD_ON_TYPE - -Description, NML Type: starts FLOOD coolant, 1406 - -Obs: used, written by emccanon.cc - -Written From: FLOOD_ON (emccanon.cc) sendFloodOn (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcCoolantFloodOn (iotaskintf.cc) + -which sends it to the IO controller, + -main (simIoControl.cc ioControl.cc) iosh.cc - -Parameter, Type: none - -=== EMC_COOLANT_FLOOD_OFF_TYPE - -Description, NML Type: stops FLOOD coolant, 1407 - -Obs: used, written by emccanon.cc - -Written From: FLOOD_OFF (emccanon.cc) sendFloodOff (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcCoolantFloodOff (iotaskintf.cc) + -which sends it to the IO controller, + -main (simIoControl.cc ioControl.cc) iosh.cc - -Parameter, Type: none - -=== EMC_COOLANT_STAT_TYPE - -Description, NML Type: status for coolant, not sent as a message but used as is, 1499 - -Written From: none - -Read To: none - -Parameter, Type: [mist, int] [flood, int] - -== EMC LUBE - -=== EMC_LUBE_INIT_TYPE - -Description, NML Type: initializes the LUBE controller (currently part of the IO controller), 1501 - -Obs: not written in EMC2, only read, in EMC1 it was sent when TOOL_INIT was sent - -Written From: none - -Read To: main (ioControl.cc simIoControl.cc) + -emc_io_get_command (iosh.cc) - -Parameter, Type: none - -=== EMC_LUBE_HALT_TYPE - -Description, NML Type: stops the LUBE, 1502 - -Obs: not written in EMC2, only read, in EMC1 it was sent when TOOL_HALT was sent - -Written From: none - -Read To: main (ioControl.cc simIoControl.cc) + -emc_io_get_command (iosh.cc) - -Parameter, Type: none - -=== EMC_LUBE_ABORT_TYPE - -Description, NML Type: aborts the LUBE, 1503 - -Obs: not written in EMC2, only read, in EMC1 it was sent when TOOL_ABORT was sent - -Written From: none - -Read To: main (ioControl.cc simIoControl.cc) + -emc_io_get_command (iosh.cc) - -Parameter, Type: none - -=== EMC_LUBE_ON_TYPE - -Description, NML Type: starts LUBE, 1504 - -Obs: written only by the GUIs (emcsh.cc) - -Written From: sendLubeOn (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcLubeOn (iotaskintf.cc) + -which sends it to the IO controller, + -main (ioControl.cc simIoControl.cc) + -emc_io_get_command (iosh.cc) - -Parameter, Type: none - -=== EMC_LUBE_OFF_TYPE - -Description, NML Type: stops LUBE, 1505 - -Obs: written only by the GUIs (emcsh.cc) - -Written - -From: sendLubeOff (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcLubeOff (iotaskintf.cc) + -which sends it to the IO controller, + -main (ioControl.cc simIoControl.cc) + -emc_io_get_command (iosh.cc) - -Parameter, Type: none - -=== EMC_LUBE_STAT_TYPE - -Description, NML Type: status for LUBE, not sent as a message but used as is, 1599 - -Written From: none - -Read To: none - -Parameter, Type: [on, int] [level, int] - -== EMC SET - -=== EMC_SET_DIO_INDEX_TYPE - -Description, NML Type: , 5001 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [value, int] [index, int] - -=== EMC_SET_AIO_INDEX_TYPE - -Description, NML Type: , 5002 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [value, int] [index, int] - -=== EMC_SET_POLARITY_TYPE - -Description, NML Type: , 5003 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [value, int] [polarity, int] - -== EMC IO - -=== EMC_IO_INIT_TYPE - -Description, NML Type: , 1601 - -Obs: not written in EMC2, only read - -Written From: none - -Read To: main (ioControl.cc simIoControl.cc) + -emc_io_get_command (iosh.cc) - -Parameter, Type: - -=== EMC_IO_HALT_TYPE - -Description, NML Type: , 1602 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_IO_ABORT_TYPE - -Description, NML Type: , 1603 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_IO_SET_CYCLE_TIME_TYPE - -Description, NML Type: , 1604 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: [cycleTime, double] - -=== EMC_IO_STAT_TYPE - -Description, NML Type: status for IO, not sent as a message but used as is, 1699 - -Written From: none - -Read To: none - -++++ -Parameter, Type: [heartbeat, unsigned long int] -[tool, EMC_TOOL_STAT] -[spindle, EMC_SPINDLE_STAT] -[coolant, EMC_COOLANT_STAT] -[aux, EMC_AUX_STAT] -[lube, EMC_LUBE_STAT] -++++ - -== EMC INIT, HALT, & ABORT - -=== EMC_INIT_TYPE - -Description, NML Type: , 1901 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_HALT_TYPE - -Description, NML Type: , 1902 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: - -=== EMC_ABORT_TYPE - -Description, NML Type: , 1903 - -Obs: not used - -Written From: none - -Read To: none - -Parameter, Type: - -== EMC LOG - -=== EMC_LOG_OPEN_TYPE - -Description, NML Type: opens the log file, 1904 - -Obs: not used in EMC2, it was used in EMC[1] from emclog.tcl - -Written From: sendLogOpen (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcLogOpen (taskintf.cc) + -which sends EMCMOT_OPEN_LOG - -++++ -Parameter, Type: [file, char[LINELEN]] -[type, int] -[size, int] -[skip, int] -[which, int] -[triggerType, int] -[triggerVar, int] -[triggerThreshold, double] -++++ - -=== EMC_LOG_START_TYPE - -Description, NML Type: starts logging, 1905 - -Obs: not used in EMC2, it was used in EMC[1] from emclog.tcl - -Written From: sendLogStart (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls + -emcLogStart (taskintf.cc) + -which sends EMCMOT_START_LOG - -Parameter, Type: none - -=== EMC_LOG_STOP_TYPE - -Description, NML Type: stops logging, 1906 - -Obs: not used in EMC2, it was used in EMC[1] from emclog.tcl - -Written From: sendLogStop (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) calls + -emcLogStop (taskintf.cc) + -which sends EMCMOT_STOP_LOG - -Parameter, Type: none - -=== EMC_LOG_CLOSE_TYPE - -Description, NML Type: closes the log file, 1907 - -Obs: not used in EMC2, it was used in EMC[1] from emclog.tcl - -Written From: sendLogClose (emcsh.cc) - -Read To: emcTaskIssueCommand (emctaskmain.cc) + -calls emcLogClose (taskintf.cc) + -which sends EMCMOT_CLOSE_LOG - -Parameter, Type: none - -== EMC STA T - -=== EMC_STAT_TYPE - -Description, NML Type: aggregation of all the status messages, + - not sent as a message but used as is all over the place, 1999 - -Written From: none - -Read To: none - -Parameter, Type: [task, EMC_TASK_STAT] + -[motion, EMC_MOTION_STAT] + -[io, EMC_IO_STAT] + -[logFile, char[LINELEN]] + -[logType, int] + -[logSize, int] + -+++[+++logSkip, int] + -logOpen, int] [logStarted, int] [logPoints, int] - - diff --git a/docs/src/code/Style_Guide.txt b/docs/src/code/Style_Guide.txt deleted file mode 100644 index edbe44f105a..00000000000 --- a/docs/src/code/Style_Guide.txt +++ /dev/null @@ -1,267 +0,0 @@ -= Coding Style - -This chapter describes the source code style preferred by the LinuxCNC team. - -== Do no harm - -When making small edits to code in a style different than the one -described below, observe the local coding style. Rapid changes from one -coding style to another decrease code readability. - -Never check in code after running “indent†on it. The whitespace -changes introduced by indent make it more difficult to follow the -revision history of the file. - -Do not use an editor that makes unneeded changes to whitespace (e.g., -which replaces 8 spaces with a tabstop on a line not otherwise -modified, or word-wraps lines not otherwise modified) - -== Tab Stops - -A tab stop always corresponds to 8 spaces. Do not write code that -displays correctly only with a differing tab stop setting. - -== Indentation - -Use 4 spaces per level of indentation. Combining 8 spaces into one tab -is acceptable but not required. - -== Placing Braces - -Put the opening brace last on the line, and put the closing brace first: - -[source,c] ----- -if (x) { - // do something appropriate -} ----- - -The closing brace is on a line of its own, except in the cases where -it is followed by a continuation of the same statement, i.e. a 'while' -in a do-statement or an 'else' in an if-statement, like this: - -[source,c] ----- -do { - // something important -} while (x > 0); ----- - -and - -[source,c] ----- -if (x == y) { - // do one thing -} else if (x < y) { - // do another thing -} else { - // do a third thing -} ----- - -This brace-placement also minimizes the number of empty (or almost -empty) lines, which allows a greater amount of code or comments to be -visible at once in a terminal of a fixed size. - -== Naming - -C is a Spartan language, and so should your naming be. Unlike Modula-2 -and Pascal programmers, C programmers do not use cute names like -ThisVariableIsATemporaryCounter. A C programmer would call that -variable 'tmp', which is much easier to write, and not the least more -difficult to understand. - -However, descriptive names for global variables are a must. To call a -global function 'foo' is a shooting offense. - -GLOBAL variables (to be used only if you *really* need them) need to -have descriptive names, as do global functions. If -you have a function that counts the number of active users, you should - call that 'count_active_users()' or similar, you should *not* call it -'cntusr()'. - -Encoding the type of a function into the name (so-called Hungarian -notation) is brain damaged - the compiler knows the types anyway and -can check those, and it only confuses the programmer. No wonder -Microsoft makes buggy programs. - -LOCAL variable names should be short, and to the point. If you have -some random integer loop counter, it should probably be called 'i'. -Calling it 'loop_counter' is non-productive, if there is no chance of -it being misunderstood. Similarly, 'tmp' can be just about any type of -variable that is used to hold a temporary value. - -If you are afraid to mix up your local variable names, you have -another problem, which is called the function-growth-hormone-imbalance -syndrome. See next chapter. - -== Functions - -Functions should be short and sweet, and do just one thing. They -should fit on one or two screenfuls of text (the ISO/ANSI screen size -is 80x24, as we all know), and do one thing and do that well. - -The maximum length of a function is inversely proportional to the -complexity and indentation level of that function. So, if you have a -conceptually simple function that is just one long (but simple) -case-statement, where you have to do lots of small things for a lot of -different cases, it's OK to have a longer function. - -However, if you have a complex function, and you suspect that a -less-than-gifted first-year high-school student might not even -understand what the function is all about, you should adhere to the -maximum limits all the more closely. Use helper functions with -descriptive names (you can ask the compiler to in-line them if you -think it's performance-critical, and it will probably do a better job -of it that you would have done). - -Another measure of the function is the number of local variables. They -shouldn't exceed 5-10, or you're doing something wrong. Re-think the -function, and split it into smaller pieces. A human brain can generally -easily keep track of about 7 different things, anything more and it -gets confused. You know you're brilliant, but maybe you'd like to -understand what you did 2 weeks from now. - -== Commenting - -Comments are good, but there is also a danger of over-commenting. -NEVER try to explain HOW your code works in a comment: it's much better -to write the code so that the *working* is obvious, and it's a waste of -time to explain badly written code. - -Generally, you want your comments to tell WHAT your code does, not -HOW. A boxed comment describing the function, return value, and who -calls it placed above the body is good. Also, try to avoid putting -comments inside a function body: if the function is so complex that you -need to separately comment parts of it, you should probably re-read the -Functions section again. You can make small comments to note or warn -about something particularly clever (or ugly), but try to avoid excess. -Instead, put the comments at the head of the function, telling people -what it does, and possibly WHY it does it. - -If comments along the lines of /* Fix me */ are used, please, please, -say why something needs fixing. When a change has been made to the -affected portion of code, either remove the comment, or amend it to -indicate a change has been made and needs testing. - -== Shell Scripts & Makefiles - -Not everyone has the same tools and packages installed. Some people -use vi, others emacs - A few even avoid having either package -installed, preferring a lightweight text editor such as nano or the one -built in to Midnight Commander. - -gawk versus mawk - Again, not everyone will have gawk installed, mawk -is nearly a tenth of the size and yet conforms to the Posix AWK -standard. If some obscure gawk specific command is needed that mawk -does not provide, than the script will break for some users. The same -would apply to mawk. In short, use the generic awk invocation in -preference to gawk or mawk. - -== C++ Conventions - -C++ coding styles are always likely to end up in heated debates (a bit -like the emacs versus vi arguments). One thing is certain however, a -common style used by everyone working on a project leads to uniform and -readable code. - -Naming conventions: Constants either from #defines or enumerations -should be in upper case through out. Rationale: Makes it easier to spot -compile time constants in the source code. e.g. EMC_MESSAGE_TYPE - -Classes and Namespaces should capitalize the first letter of each word -and avoid underscores. Rationale: Identifies classes, constructors and -destructors. e.g. GtkWidget - -Methods (or function names) should follow the C recommendations above -and should not include the class name. Rationale: Maintains a common -style across C and C++ sources. e.g. get_foo_bar() - -However, boolean methods are easier to read if they avoid underscores -and use an 'is' prefix (not to be confused with methods that manipulate -a boolean). Rationale: Identifies the return value as TRUE or FALSE and -nothing else. e.g. isOpen, isHomed - -Do NOT use 'Not' in a boolean name, it leads only leads to confusion -when doing logical tests. e.g. isNotOnLimit or is_not_on_limit are BAD. - -Variable names should avoid the use of upper case and underscores -except for local or private names. The use of global variables should -be avoided as much as possible. Rationale: Clarifies which are -variables and which are methods. Public: e.g. axislimit Private: e.g. -maxvelocity_ - -Specific method naming conventions - -The terms get and set should be used where an attribute is accessed -directly. Rationale: Indicates the purpose of the function or method. -e.g. get_foo set_bar - -For methods involving boolean attributes, set & reset is preferred. -Rationale: As above. e.g. set_amp_enable reset_amp_fault - -Math intensive methods should use compute as a prefix. Rationale: -Shows that it is computationally intensive and will hog the CPU. e.g. -compute_PID - -Abbreviations in names should be avoided where possible - The -exception is for local variable names. Rationale: Clarity of code. e.g. -pointer is preferred over ptr compute is preferred over cmp compare is -again preferred over cmp. - -Enumerates and other constants can be prefixed by a common type name -e.g. enum COLOR { COLOR_RED, COLOR_BLUE }; - -Excessive use of macros and defines should be avoided - Using simple -methods or functions is preferred. Rationale: Improves the debugging -process. - -Include Statements Header files must be included at the top of a -source file and not scattered throughout the body. They should be -sorted and grouped by their hierarchical position within the system -with the low level files included first. Include file paths should -NEVER be absolute - Use the compiler -I flag instead. Rationale: -Headers may not be in the same place on all systems. - -Pointers and references should have their reference symbol next to the -variable name rather than the type name. Rationale: Reduces confusion. -e.g. float *x or int &i - -Implicit tests for zero should not be used except for boolean -variables. e.g. if (spindle_speed != 0) NOT if (spindle_speed) - -Only loop control statements must be included in a for() construct. -e.g. sum = 0; for (i = 0; i < 10; i++) { sum += value[i]; } - -NOT for (i = 0, sum =0; i < 10; i++) sum += value[i]; - -Likewise, executable statements in conditionals must be avoided. e.g. -if (fd = open(file_name) is bad. - -Complex conditional statements should be avoided - Introduce temporary -boolean variables instead. - -Parentheses should be used in plenty in mathematical expressions - Do -not rely on operator precedence when an extra parentheses would clarify -things. - -File names: C++ sources and headers use .cc and .hh extension. The use -of .c and .h are reserved for plain C. Headers are for class, method, -and structure declarations, not code (unless the functions are declared -inline). - -== Python coding standards - -Use the http://www.python.org/dev/peps/pep-0008/[PEP 8] style for -Python code. - -== Comp coding standards - -In the declaration portion of a .comp file, begin each declaration at -the first column. Insert extra blank lines when they help group related -items. - -In the code portion of a .comp file, follow normal C coding style. - diff --git a/docs/src/code/emc2-motion-joint-controller-block-diag.dxf b/docs/src/code/emc2-motion-joint-controller-block-diag.dxf deleted file mode 100644 index d823f981a3c..00000000000 --- a/docs/src/code/emc2-motion-joint-controller-block-diag.dxf +++ /dev/null @@ -1,7932 +0,0 @@ - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1009 - 9 -$INSBASE - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$EXTMIN - 10 --24.458112 - 20 -16.165 - 30 -0.0 - 9 -$EXTMAX - 10 --13.224388 - 20 -23.235 - 30 -0.0 - 9 -$LIMMIN - 10 -0.0 - 20 -0.0 - 9 -$LIMMAX - 10 -0.0 - 20 -0.0 - 9 -$ORTHOMODE - 70 - 0 - 9 -$REGENMODE - 70 - 1 - 9 -$FILLMODE - 70 - 1 - 9 -$QTEXTMODE - 70 - 0 - 9 -$MIRRTEXT - 70 - 1 - 9 -$DRAGMODE - 70 - 2 - 9 -$LTSCALE - 40 -1.0 - 9 -$OSMODE - 70 - 0 - 9 -$ATTMODE - 70 - 1 - 9 -$TEXTSIZE - 40 -0.2 - 9 -$TRACEWID - 40 -0.05 - 9 -$TEXTSTYLE - 7 -STANDARD - 9 -$CLAYER - 8 -0 - 9 -$CELTYPE - 6 -CONTINUOUS - 9 -$CECOLOR - 62 - 256 - 9 -$DIMSCALE - 40 -1.0 - 9 -$DIMASZ - 40 -0.18 - 9 -$DIMEXO - 40 -0.0625 - 9 -$DIMDLI - 40 -0.38 - 9 -$DIMRND - 40 -0.0 - 9 -$DIMDLE - 40 -0.0 - 9 -$DIMEXE - 40 -0.18 - 9 -$DIMTP - 40 -0.0 - 9 -$DIMTM - 40 -0.0 - 9 -$DIMTXT - 40 -0.18 - 9 -$DIMCEN - 40 -0.09 - 9 -$DIMTSZ - 40 -0.0 - 9 -$DIMTOL - 70 - 0 - 9 -$DIMLIM - 70 - 0 - 9 -$DIMTIH - 70 - 1 - 9 -$DIMTOH - 70 - 1 - 9 -$DIMSE1 - 70 - 0 - 9 -$DIMSE2 - 70 - 0 - 9 -$DIMTAD - 70 - 0 - 9 -$DIMZIN - 70 - 0 - 9 -$DIMBLK - 1 - - 9 -$DIMASO - 70 - 1 - 9 -$DIMSHO - 70 - 1 - 9 -$DIMPOST - 1 - - 9 -$DIMAPOST - 1 - - 9 -$DIMALT - 70 - 0 - 9 -$DIMALTD - 70 - 2 - 9 -$DIMALTF - 40 -25.4 - 9 -$DIMLFAC - 40 -1.0 - 9 -$DIMTOFL - 70 - 0 - 9 -$DIMTVP - 40 -0.0 - 9 -$DIMTIX - 70 - 0 - 9 -$DIMSOXD - 70 - 0 - 9 -$DIMSAH - 70 - 0 - 9 -$DIMBLK1 - 1 - - 9 -$DIMBLK2 - 1 - - 9 -$DIMSTYLE - 2 -STANDARD - 9 -$DIMCLRD - 70 - 0 - 9 -$DIMCLRE - 70 - 0 - 9 -$DIMCLRT - 70 - 0 - 9 -$DIMTFAC - 40 -1.0 - 9 -$DIMGAP - 40 -0.09 - 9 -$LUNITS - 70 - 2 - 9 -$LUPREC - 70 - 4 - 9 -$AXISMODE - 70 - 0 - 9 -$AXISUNIT - 10 -0.0 - 20 -0.0 - 9 -$SKETCHINC - 40 -0.1 - 9 -$FILLETRAD - 40 -0.0 - 9 -$AUNITS - 70 - 0 - 9 -$AUPREC - 70 - 0 - 9 -$MENU - 1 -acad - 9 -$ELEVATION - 40 -0.0 - 9 -$PELEVATION - 40 -0.0 - 9 -$THICKNESS - 40 -0.0 - 9 -$LIMCHECK - 70 - 0 - 9 -$BLIPMODE - 70 - 1 - 9 -$CHAMFERA - 40 -0.0 - 9 -$CHAMFERB - 40 -0.0 - 9 -$SKPOLY - 70 - 0 - 9 -$TDCREATE - 40 -0.000000000 - 9 -$TDUPDATE - 40 -0.000000000 - 9 -$TDINDWG - 40 -0.0000000000 - 9 -$TDUSRTIMER - 40 -0.0000000000 - 9 -$USRTIMER - 70 - 1 - 9 -$ANGBASE - 50 -0.0 - 9 -$ANGDIR - 70 - 0 - 9 -$PDMODE - 70 - 0 - 9 -$PDSIZE - 40 -0.0 - 9 -$PLINEWID - 40 -0.0 - 9 -$COORDS - 70 - 0 - 9 -$SPLFRAME - 70 - 0 - 9 -$SPLINETYPE - 70 - 6 - 9 -$SPLINESEGS - 70 - 8 - 9 -$ATTDIA - 70 - 0 - 9 -$ATTREQ - 70 - 1 - 9 -$HANDLING - 70 - 1 - 9 -$HANDSEED - 5 -1DD - 9 -$SURFTAB1 - 70 - 6 - 9 -$SURFTAB2 - 70 - 6 - 9 -$SURFTYPE - 70 - 6 - 9 -$SURFU - 70 - 6 - 9 -$SURFV - 70 - 6 - 9 -$UCSNAME - 2 - - 9 -$UCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$UCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$UCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$PUCSNAME - 2 - - 9 -$PUCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PUCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$PUCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$USERI1 - 70 - 0 - 9 -$USERI2 - 70 - 0 - 9 -$USERI3 - 70 - 0 - 9 -$USERI4 - 70 - 0 - 9 -$USERI5 - 70 - 0 - 9 -$USERR1 - 40 -0.0 - 9 -$USERR2 - 40 -0.0 - 9 -$USERR3 - 40 -0.0 - 9 -$USERR4 - 40 -0.0 - 9 -$USERR5 - 40 -0.0 - 9 -$WORLDVIEW - 70 - 1 - 9 -$SHADEDGE - 70 - 3 - 9 -$SHADEDIF - 70 - 70 - 9 -$TILEMODE - 70 - 1 - 9 -$MAXACTVP - 70 - 16 - 9 -$PINSBASE - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PLIMCHECK - 70 - 0 - 9 -$PEXTMIN - 10 -1.000000E+20 - 20 -1.000000E+20 - 30 -1.000000E+20 - 9 -$PEXTMAX - 10 --1.000000E+20 - 20 --1.000000E+20 - 30 --1.000000E+20 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$PLIMMAX - 10 -12.0 - 20 -9.0 - 9 -$UNITMODE - 70 - 0 - 9 -$VISRETAIN - 70 - 0 - 9 -$PLINEGEN - 70 - 1 - 9 -$PSLTSCALE - 70 - 0 - 9 -$TREEDEPTH - 70 - 3020 - 9 -$DWGCODEPAGE - 3 -dos850 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 70 - 1 - 0 -VPORT - 2 -*ACTIVE - 70 - 0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -6.591288 - 22 -4.579184 - 13 -0.0 - 23 -0.0 - 14 -1.0 - 24 -1.0 - 15 -0.0 - 25 -0.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -9.158369 - 41 -0.688564 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 - 0 - 72 - 100 - 73 - 1 - 74 - 1 - 75 - 0 - 76 - 0 - 77 - 0 - 78 - 0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 70 - 1 - 0 -LTYPE - 2 -CONTINUOUS - 70 - 64 - 3 -Solid line - 72 - 65 - 73 - 0 - 40 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 70 - 7 - 0 -LAYER - 2 -0 - 70 - 0 - 62 - 7 - 6 -CONTINUOUS - 0 -LAYER - 2 -MERGE - 70 - 0 - 62 - 7 - 6 -CONTINUOUS - 0 -LAYER - 2 -STANDARD - 70 - 0 - 62 - 7 - 6 -CONTINUOUS - 0 -LAYER - 2 -PINS - 70 - 0 - 62 - 7 - 6 -CONTINUOUS - 0 -LAYER - 2 -PARAMS - 70 - 0 - 62 - 7 - 6 -CONTINUOUS - 0 -LAYER - 2 -OUTLINE - 70 - 0 - 62 - 7 - 6 -CONTINUOUS - 0 -LAYER - 2 -INTERNALS - 70 - 0 - 62 - 7 - 6 -CONTINUOUS - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 70 - 2 - 0 -STYLE - 2 -STANDARD - 70 - 0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 - 0 - 42 -0.0 - 3 -txt - 4 - - 0 -STYLE - 2 -STYLE1 - 70 - 0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 - 0 - 42 -0.0 - 3 -Arial.ttf - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 70 - 0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 70 - 0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 70 - 1 - 0 -APPID - 2 -ACAD - 70 - 0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 70 - 1 - 0 -DIMSTYLE - 2 -STANDARD - 70 - 0 - 3 - - 4 - - 5 - - 6 - - 7 - - 40 -1.0 - 41 -0.18 - 42 -0.0625 - 43 -0.38 - 44 -0.18 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 71 - 0 - 72 - 0 - 73 - 1 - 74 - 1 - 75 - 0 - 76 - 0 - 77 - 0 - 78 - 0 -140 -0.18 -141 -0.09 -142 -0.0 -143 -25.4 -144 -1.0 -145 -0.0 -146 -1.0 -147 -0.09 -170 - 0 -171 - 2 -172 - 0 -173 - 0 -174 - 0 -175 - 0 -176 - 0 -177 - 0 -178 - 0 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -24 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 70 - 1 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -25 - 10 --15.2 - 20 -17.8 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -26 - 10 --15.3 - 20 -17.9 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -27 - 10 --15.2 - 20 -18.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -28 - 10 --13.9 - 20 -18.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -29 - 10 --13.9 - 20 -17.8 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -2A - 10 --15.2 - 20 -17.8 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -2B - 10 --15.2 - 20 -17.8 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -2C - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -2D - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 70 - 1 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -2E - 10 --15.2 - 20 -17.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -2F - 10 --15.3 - 20 -17.6 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -30 - 10 --15.2 - 20 -17.7 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -31 - 10 --13.9 - 20 -17.7 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -32 - 10 --13.9 - 20 -17.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -33 - 10 --15.2 - 20 -17.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -34 - 10 --15.2 - 20 -17.5 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -35 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -36 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 70 - 1 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -37 - 10 --15.2 - 20 -16.9 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -38 - 10 --15.3 - 20 -17.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -39 - 10 --15.2 - 20 -17.1 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -3A - 10 --13.9 - 20 -17.1 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -3B - 10 --13.9 - 20 -16.9 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -3C - 10 --15.2 - 20 -16.9 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -3D - 10 --15.2 - 20 -16.9 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -3E - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -3F - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 70 - 1 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -40 - 10 --15.2 - 20 -16.2 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -41 - 10 --15.3 - 20 -16.3 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -42 - 10 --15.2 - 20 -16.4 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -43 - 10 --13.9 - 20 -16.4 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -44 - 10 --13.9 - 20 -16.2 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -45 - 10 --15.2 - 20 -16.2 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -46 - 10 --15.2 - 20 -16.2 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -47 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -48 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 70 - 1 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -49 - 10 --15.2 - 20 -17.2 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -4A - 10 --15.3 - 20 -17.3 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -4B - 10 --15.2 - 20 -17.4 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -4C - 10 --13.9 - 20 -17.4 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -4D - 10 --13.9 - 20 -17.2 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -4E - 10 --15.2 - 20 -17.2 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -4F - 10 --15.2 - 20 -17.2 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -50 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -51 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 70 - 1 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -52 - 10 --15.2 - 20 -22.3 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -53 - 10 --15.3 - 20 -22.4 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -54 - 10 --15.2 - 20 -22.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -55 - 10 --13.9 - 20 -22.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -56 - 10 --13.9 - 20 -22.3 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -57 - 10 --15.2 - 20 -22.3 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -58 - 10 --15.2 - 20 -22.3 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -59 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -5A - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 70 - 1 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -5B - 10 --14.0 - 20 -16.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -5C - 10 --13.9 - 20 -16.6 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -5D - 10 --14.0 - 20 -16.7 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -5E - 10 --15.3 - 20 -16.7 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -5F - 10 --15.3 - 20 -16.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -60 - 10 --14.0 - 20 -16.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -61 - 10 --14.0 - 20 -16.5 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -62 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -63 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 70 - 1 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -64 - 10 --14.0 - 20 -19.1 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -65 - 10 --13.9 - 20 -19.2 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -66 - 10 --14.0 - 20 -19.3 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -67 - 10 --15.3 - 20 -19.3 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -68 - 10 --15.3 - 20 -19.1 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -69 - 10 --14.0 - 20 -19.1 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -6A - 10 --14.0 - 20 -19.1 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -6B - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -6C - 10 --14.9575 - 20 -17.85 - 30 -0.0 - 40 -0.1 - 1 -pos-lim-sw-in - 7 -STYLE1 - 72 - 1 - 11 --14.6 - 21 -17.9 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -6D - 10 --14.9575 - 20 -17.55 - 30 -0.0 - 40 -0.1 - 1 -neg-lim-sw-in - 7 -STYLE1 - 72 - 1 - 11 --14.6 - 21 -17.6 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -6E - 10 --14.985 - 20 -16.95 - 30 -0.0 - 40 -0.1 - 1 -index-pulse-in - 7 -STYLE1 - 72 - 1 - 11 --14.6 - 21 -17.0 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -6F - 10 --14.93 - 20 -16.25 - 30 -0.0 - 40 -0.1 - 1 -amp-fault-in - 7 -STYLE1 - 72 - 1 - 11 --14.6 - 21 -16.3 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -70 - 10 --14.875 - 20 -17.25 - 30 -0.0 - 40 -0.1 - 1 -home-sw-in - 7 -STYLE1 - 72 - 1 - 11 --14.6 - 21 -17.3 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -71 - 10 --14.93 - 20 -22.35 - 30 -0.0 - 40 -0.1 - 1 -motor-pos-fb - 7 -STYLE1 - 72 - 1 - 11 --14.6 - 21 -22.4 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -72 - 10 --14.985 - 20 -16.55 - 30 -0.0 - 40 -0.1 - 1 -amp-enable-out - 7 -STYLE1 - 72 - 1 - 11 --14.6 - 21 -16.6 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -73 - 10 --14.9575 - 20 -19.15 - 30 -0.0 - 40 -0.1 - 1 -motor-pos-cmd - 7 -STYLE1 - 72 - 1 - 11 --14.6 - 21 -19.2 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -PARAMS - 62 - 7 - 5 -74 - 10 --22.53 - 20 -20.75 - 30 -0.0 - 40 -0.1 - 1 -free-pos-cmd - 7 -STYLE1 - 72 - 1 - 11 --22.2 - 21 -20.8 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -PARAMS - 62 - 7 - 5 -75 - 10 --22.53 - 20 -20.35 - 30 -0.0 - 40 -0.1 - 1 -free-vel-lim - 7 -STYLE1 - 72 - 1 - 11 --22.2 - 21 -20.4 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -PARAMS - 62 - 7 - 5 -76 - 10 --17.63 - 20 -21.75 - 30 -0.0 - 40 -0.1 - 1 -motor-offset - 7 -STYLE1 - 72 - 1 - 11 --17.3 - 21 -21.8 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -PARAMS - 62 - 7 - 5 -77 - 10 --17.4925 - 20 -19.85 - 30 -0.0 - 40 -0.1 - 1 -vel-cmd - 7 -STYLE1 - 72 - 1 - 11 --17.3 - 21 -19.9 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -PARAMS - 62 - 7 - 5 -78 - 10 --22.365 - 20 -22.65 - 30 -0.0 - 40 -0.1 - 1 -pos-fb - 7 -STYLE1 - 72 - 1 - 11 --22.2 - 21 -22.7 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -PARAMS - 62 - 7 - 5 -79 - 10 --22.475 - 20 -19.45 - 30 -0.0 - 40 -0.1 - 1 -coarse-pos - 7 -STYLE1 - 72 - 1 - 11 --22.2 - 21 -19.5 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -PARAMS - 62 - 7 - 5 -7A - 10 --17.4925 - 20 -19.45 - 30 -0.0 - 40 -0.1 - 1 -pos-cmd - 7 -STYLE1 - 72 - 1 - 11 --17.3 - 21 -19.5 - 31 -0.0 - 73 - 2 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -7B - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 70 - 1 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -7C - 10 --21.3 - 20 -18.9 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -7D - 10 --21.3 - 20 -19.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -7E - 10 --20.3 - 20 -19.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -7F - 10 --20.3 - 20 -18.9 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -80 - 10 --21.3 - 20 -18.9 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -81 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -82 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 70 - 1 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -83 - 10 --21.3 - 20 -20.3 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -84 - 10 --21.3 - 20 -20.9 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -85 - 10 --20.3 - 20 -20.9 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -86 - 10 --20.3 - 20 -20.3 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -87 - 10 --21.3 - 20 -20.3 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -88 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -89 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 70 - 1 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -8A - 10 --17.8 - 20 -20.3 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -8B - 10 --17.8 - 20 -20.9 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -8C - 10 --16.8 - 20 -20.9 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -8D - 10 --16.8 - 20 -20.3 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -8E - 10 --17.8 - 20 -20.3 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -8F - 0 -CIRCLE - 8 -STANDARD - 62 - 7 - 5 -90 - 10 --16.0 - 20 -22.4 - 30 -0.0 - 40 -0.2 - 0 -CIRCLE - 8 -STANDARD - 62 - 7 - 5 -91 - 10 --16.0 - 20 -19.2 - 30 -0.0 - 40 -0.2 - 0 -CIRCLE - 8 -STANDARD - 62 - 7 - 5 -92 - 10 --16.5 - 20 -21.2 - 30 -0.0 - 40 -0.2 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -93 - 10 --16.0 - 20 -22.4 - 30 -0.0 - 11 --15.858579 - 21 -22.541421 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -94 - 10 --16.0 - 20 -19.2 - 30 -0.0 - 11 --15.858579 - 21 -19.341421 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -95 - 10 --16.5 - 20 -21.2 - 30 -0.0 - 11 --16.358579 - 21 -21.341421 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -96 - 10 --16.0 - 20 -22.4 - 30 -0.0 - 11 --16.141421 - 21 -22.541421 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -97 - 10 --16.0 - 20 -19.2 - 30 -0.0 - 11 --16.141421 - 21 -19.341421 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -98 - 10 --16.5 - 20 -21.2 - 30 -0.0 - 11 --16.641421 - 21 -21.341421 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -99 - 10 --16.0 - 20 -22.4 - 30 -0.0 - 11 --16.141421 - 21 -22.258579 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -9A - 10 --16.0 - 20 -19.2 - 30 -0.0 - 11 --16.141421 - 21 -19.058579 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -9B - 10 --16.5 - 20 -21.2 - 30 -0.0 - 11 --16.641421 - 21 -21.058579 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -9C - 10 --16.0 - 20 -22.4 - 30 -0.0 - 11 --15.858579 - 21 -22.258579 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -9D - 10 --16.0 - 20 -19.2 - 30 -0.0 - 11 --15.858579 - 21 -19.058579 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -9E - 10 --16.5 - 20 -21.2 - 30 -0.0 - 11 --16.358579 - 21 -21.058579 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -9F - 10 --16.05 - 20 -19.32 - 30 -0.0 - 11 --15.95 - 21 -19.32 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -A0 - 10 --16.55 - 20 -21.32 - 30 -0.0 - 11 --16.45 - 21 -21.32 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -A1 - 10 --16.0 - 20 -19.37 - 30 -0.0 - 11 --16.0 - 21 -19.27 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -A2 - 10 --16.5 - 20 -21.37 - 30 -0.0 - 11 --16.5 - 21 -21.27 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -A3 - 10 --16.17 - 20 -19.2 - 30 -0.0 - 11 --16.07 - 21 -19.2 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -A4 - 10 --16.12 - 20 -19.25 - 30 -0.0 - 11 --16.12 - 21 -19.15 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -A5 - 10 --16.5 - 20 -21.13 - 30 -0.0 - 11 --16.5 - 21 -21.03 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -A6 - 10 --16.05 - 20 -22.28 - 30 -0.0 - 11 --15.95 - 21 -22.28 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -A7 - 10 --16.55 - 20 -21.08 - 30 -0.0 - 11 --16.45 - 21 -21.08 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -A8 - 10 --15.88 - 20 -22.45 - 30 -0.0 - 11 --15.88 - 21 -22.35 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -A9 - 10 --15.93 - 20 -22.4 - 30 -0.0 - 11 --15.83 - 21 -22.4 - 31 -0.0 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -AA - 10 --18.5275 - 20 -19.95 - 30 -0.0 - 40 -0.1 - 1 -d - 7 -STYLE1 - 72 - 1 - 11 --18.5 - 21 -20.0 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -AB - 10 --18.555 - 20 -19.75 - 30 -0.0 - 40 -0.1 - 1 -dT - 7 -STYLE1 - 72 - 1 - 11 --18.5 - 21 -19.8 - 31 -0.0 - 73 - 2 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -AC - 10 --18.6 - 20 -19.9 - 30 -0.0 - 11 --18.4 - 21 -19.9 - 31 -0.0 - 0 -CIRCLE - 8 -STANDARD - 62 - 7 - 5 -AD - 10 --19.3 - 20 -19.9 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 8 -STANDARD - 62 - 7 - 5 -AE - 10 --19.7 - 20 -20.1 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 8 -STANDARD - 62 - 7 - 5 -AF - 10 --19.7 - 20 -19.7 - 30 -0.0 - 40 -0.025 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -B0 - 10 --19.322361 - 20 -19.91118 - 30 -0.0 - 11 --19.677639 - 21 -20.08882 - 31 -0.0 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -B1 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -B2 - 10 --19.322361 - 20 -19.91118 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -B3 - 10 --19.385963 - 20 -19.96286 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -B4 - 10 --19.401866 - 20 -19.931055 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -B5 - 10 --19.322361 - 20 -19.91118 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -B6 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -B7 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -B8 - 10 --19.725 - 20 -20.1 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -B9 - 10 --20.0 - 20 -20.1 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -BA - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -BB - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -BC - 10 --19.725 - 20 -20.1 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -BD - 10 --19.805 - 20 -20.11778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -BE - 10 --19.805 - 20 -20.08222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -BF - 10 --19.725 - 20 -20.1 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -C0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -C1 - 10 --19.0 - 20 -19.9 - 30 -0.0 - 11 --19.275 - 21 -19.9 - 31 -0.0 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -C2 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -C3 - 10 --19.0 - 20 -19.9 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -C4 - 10 --19.08 - 20 -19.91778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -C5 - 10 --19.08 - 20 -19.88222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -C6 - 10 --19.0 - 20 -19.9 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -C7 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -C8 - 10 --19.725 - 20 -19.7 - 30 -0.0 - 11 --20.0 - 21 -19.7 - 31 -0.0 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -C9 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -CA - 10 --19.725 - 20 -19.7 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -CB - 10 --19.805 - 20 -19.71778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -CC - 10 --19.805 - 20 -19.68222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -CD - 10 --19.725 - 20 -19.7 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -CE - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -CF - 10 --16.0 - 20 -22.2 - 30 -0.0 - 11 --16.0 - 21 -19.4 - 31 -0.0 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -D0 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -D1 - 10 --16.0 - 20 -22.2 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -D2 - 10 --16.01778 - 20 -22.12 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -D3 - 10 --15.98222 - 20 -22.12 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -D4 - 10 --16.0 - 20 -22.2 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -D5 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -D6 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -D7 - 10 --16.0 - 20 -19.4 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -D8 - 10 --15.98222 - 20 -19.48 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -D9 - 10 --16.01778 - 20 -19.48 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -DA - 10 --16.0 - 20 -19.4 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -DB - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -DC - 10 --15.8 - 20 -22.4 - 30 -0.0 - 11 --15.3 - 21 -22.4 - 31 -0.0 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -DD - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -DE - 10 --15.8 - 20 -22.4 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -DF - 10 --15.72 - 20 -22.38222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -E0 - 10 --15.72 - 20 -22.41778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -E1 - 10 --15.8 - 20 -22.4 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -E2 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -E3 - 10 --15.3 - 20 -19.2 - 30 -0.0 - 11 --15.8 - 21 -19.2 - 31 -0.0 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -E4 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -E5 - 10 --15.3 - 20 -19.2 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -E6 - 10 --15.38 - 20 -19.21778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -E7 - 10 --15.38 - 20 -19.18222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -E8 - 10 --15.3 - 20 -19.2 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -E9 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -EA - 10 --16.0 - 20 -21.2 - 30 -0.0 - 11 --16.3 - 21 -21.2 - 31 -0.0 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -EB - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -EC - 10 --16.0 - 20 -21.2 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -ED - 10 --16.08 - 20 -21.21778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -EE - 10 --16.08 - 20 -21.18222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -EF - 10 --16.0 - 20 -21.2 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -F0 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -F1 - 10 --20.9375 - 20 -19.225 - 30 -0.0 - 40 -0.1 - 1 -cubic - 7 -STYLE1 - 72 - 1 - 11 --20.8 - 21 -19.275 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -F2 - 10 --21.13 - 20 -19.075 - 30 -0.0 - 40 -0.1 - 1 -interpolator - 7 -STYLE1 - 72 - 1 - 11 --20.8 - 21 -19.125 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -F3 - 10 --21.0475 - 20 -20.7 - 30 -0.0 - 40 -0.1 - 1 -free mode - 7 -STYLE1 - 72 - 1 - 11 --20.8 - 21 -20.75 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -F4 - 10 --21.075 - 20 -20.55 - 30 -0.0 - 40 -0.1 - 1 -trajectory - 7 -STYLE1 - 72 - 1 - 11 --20.8 - 21 -20.6 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -F5 - 10 --20.9925 - 20 -20.4 - 30 -0.0 - 40 -0.1 - 1 -planner - 7 -STYLE1 - 72 - 1 - 11 --20.8 - 21 -20.45 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -F6 - 10 --17.575 - 20 -20.7 - 30 -0.0 - 40 -0.1 - 1 -backlash & - 7 -STYLE1 - 72 - 1 - 11 --17.3 - 21 -20.75 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -F7 - 10 --17.6025 - 20 -20.55 - 30 -0.0 - 40 -0.1 - 1 -screw error - 7 -STYLE1 - 72 - 1 - 11 --17.3 - 21 -20.6 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -F8 - 10 --17.41 - 20 -20.4 - 30 -0.0 - 40 -0.1 - 1 -comp - 7 -STYLE1 - 72 - 1 - 11 --17.3 - 21 -20.45 - 31 -0.0 - 73 - 2 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -F9 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -FA - 10 --16.5 - 20 -21.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -FB - 10 --16.5 - 20 -20.6 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -FC - 10 --16.8 - 20 -20.6 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -FD - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -FE - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -FF - 10 --16.5 - 20 -21.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -100 - 10 --16.51778 - 20 -20.92 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -101 - 10 --16.48222 - 20 -20.92 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -102 - 10 --16.5 - 20 -21.0 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -103 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -104 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -105 - 10 --17.8 - 20 -20.7 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -106 - 10 --19.0 - 20 -20.7 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -107 - 10 --19.0 - 20 -20.1 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -108 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -109 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -10A - 10 --17.8 - 20 -20.7 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -10B - 10 --17.88 - 20 -20.71778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -10C - 10 --17.88 - 20 -20.68222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -10D - 10 --17.8 - 20 -20.7 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -10E - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -10F - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -110 - 10 --19.0 - 20 -20.1 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -111 - 10 --19.0 - 20 -19.9 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -112 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -113 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -114 - 10 --19.0 - 20 -19.7 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -115 - 10 --19.0 - 20 -19.2 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -116 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -117 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -118 - 10 --16.2 - 20 -19.2 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -119 - 10 --19.0 - 20 -19.2 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -11A - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -11B - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -11C - 10 --16.2 - 20 -19.2 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -11D - 10 --16.28 - 20 -19.21778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -11E - 10 --16.28 - 20 -19.18222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -11F - 10 --16.2 - 20 -19.2 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -120 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -121 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -122 - 10 --22.8 - 20 -19.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -123 - 10 --23.0 - 20 -19.5 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -124 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -125 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -126 - 10 --22.8 - 20 -19.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -127 - 10 --22.88 - 20 -19.51778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -128 - 10 --22.88 - 20 -19.48222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -129 - 10 --22.8 - 20 -19.5 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -12A - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -12B - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -12C - 10 --17.9 - 20 -19.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -12D - 10 --18.1 - 20 -19.5 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -12E - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -12F - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -130 - 10 --17.9 - 20 -19.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -131 - 10 --17.98 - 20 -19.51778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -132 - 10 --17.98 - 20 -19.48222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -133 - 10 --17.9 - 20 -19.5 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -134 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -135 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -136 - 10 --16.5 - 20 -21.4 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -137 - 10 --16.5 - 20 -21.8 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -138 - 10 --16.7 - 20 -21.8 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -139 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -13A - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -13B - 10 --16.5 - 20 -21.4 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -13C - 10 --16.48222 - 20 -21.48 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -13D - 10 --16.51778 - 20 -21.48 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -13E - 10 --16.5 - 20 -21.4 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -13F - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -140 - 10 --19.7475 - 20 -20.25 - 30 -0.0 - 40 -0.1 - 1 -free mode - 7 -STYLE1 - 72 - 1 - 11 --19.5 - 21 -20.3 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -141 - 10 --19.72 - 20 -19.425 - 30 -0.0 - 40 -0.1 - 1 -teleop & - 7 -STYLE1 - 72 - 1 - 11 --19.5 - 21 -19.475 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -142 - 10 --19.775 - 20 -19.275 - 30 -0.0 - 40 -0.1 - 1 -coord mode - 7 -STYLE1 - 72 - 1 - 11 --19.5 - 21 -19.325 - 31 -0.0 - 73 - 2 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -143 - 10 --17.9 - 20 -19.8 - 30 -0.0 - 11 --17.9 - 21 -20.0 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -144 - 10 --17.9 - 20 -20.0 - 30 -0.0 - 11 --16.7 - 21 -20.0 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -145 - 10 --16.7 - 20 -20.0 - 30 -0.0 - 11 --16.7 - 21 -19.8 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -146 - 10 --16.7 - 20 -19.8 - 30 -0.0 - 11 --17.9 - 21 -19.8 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -147 - 10 --22.8 - 20 -22.6 - 30 -0.0 - 11 --22.8 - 21 -22.8 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -148 - 10 --22.8 - 20 -22.8 - 30 -0.0 - 11 --21.6 - 21 -22.8 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -149 - 10 --21.6 - 20 -22.8 - 30 -0.0 - 11 --21.6 - 21 -22.6 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -14A - 10 --21.6 - 20 -22.6 - 30 -0.0 - 11 --22.8 - 21 -22.6 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -14B - 10 --22.8 - 20 -19.4 - 30 -0.0 - 11 --22.8 - 21 -19.6 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -14C - 10 --22.8 - 20 -19.6 - 30 -0.0 - 11 --21.6 - 21 -19.6 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -14D - 10 --21.6 - 20 -19.6 - 30 -0.0 - 11 --21.6 - 21 -19.4 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -14E - 10 --21.6 - 20 -19.4 - 30 -0.0 - 11 --22.8 - 21 -19.4 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -14F - 10 --17.9 - 20 -19.4 - 30 -0.0 - 11 --17.9 - 21 -19.6 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -150 - 10 --17.9 - 20 -19.6 - 30 -0.0 - 11 --16.7 - 21 -19.6 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -151 - 10 --16.7 - 20 -19.6 - 30 -0.0 - 11 --16.7 - 21 -19.4 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -152 - 10 --16.7 - 20 -19.4 - 30 -0.0 - 11 --17.9 - 21 -19.4 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -153 - 10 --22.8 - 20 -20.7 - 30 -0.0 - 11 --22.8 - 21 -20.9 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -154 - 10 --22.8 - 20 -20.9 - 30 -0.0 - 11 --21.6 - 21 -20.9 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -155 - 10 --21.6 - 20 -20.9 - 30 -0.0 - 11 --21.6 - 21 -20.7 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -156 - 10 --21.6 - 20 -20.7 - 30 -0.0 - 11 --22.8 - 21 -20.7 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -157 - 10 --22.8 - 20 -20.3 - 30 -0.0 - 11 --22.8 - 21 -20.5 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -158 - 10 --22.8 - 20 -20.5 - 30 -0.0 - 11 --21.6 - 21 -20.5 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -159 - 10 --21.6 - 20 -20.5 - 30 -0.0 - 11 --21.6 - 21 -20.3 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -15A - 10 --21.6 - 20 -20.3 - 30 -0.0 - 11 --22.8 - 21 -20.3 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -15B - 10 --17.9 - 20 -21.7 - 30 -0.0 - 11 --17.9 - 21 -21.9 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -15C - 10 --17.9 - 20 -21.9 - 30 -0.0 - 11 --16.7 - 21 -21.9 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -15D - 10 --16.7 - 20 -21.9 - 30 -0.0 - 11 --16.7 - 21 -21.7 - 31 -0.0 - 0 -LINE - 8 -PARAMS - 62 - 7 - 5 -15E - 10 --16.7 - 20 -21.7 - 30 -0.0 - 11 --17.9 - 21 -21.7 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -15F - 10 --20.0 - 20 -19.2 - 30 -0.0 - 11 --20.0 - 21 -19.7 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -160 - 10 --20.0 - 20 -20.1 - 30 -0.0 - 11 --20.0 - 21 -20.6 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -161 - 10 --20.0 - 20 -19.2 - 30 -0.0 - 11 --20.3 - 21 -19.2 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -162 - 10 --20.0 - 20 -20.6 - 30 -0.0 - 11 --20.3 - 21 -20.6 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -163 - 10 --21.3 - 20 -20.8 - 30 -0.0 - 11 --21.6 - 21 -20.8 - 31 -0.0 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -164 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -165 - 10 --21.3 - 20 -20.8 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -166 - 10 --21.38 - 20 -20.81778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -167 - 10 --21.38 - 20 -20.78222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -168 - 10 --21.3 - 20 -20.8 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -169 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -16A - 10 --21.3 - 20 -20.4 - 30 -0.0 - 11 --21.6 - 21 -20.4 - 31 -0.0 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -16B - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -16C - 10 --21.3 - 20 -20.4 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -16D - 10 --21.38 - 20 -20.41778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -16E - 10 --21.38 - 20 -20.38222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -16F - 10 --21.3 - 20 -20.4 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -170 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -171 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 70 - 1 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -172 - 10 --18.7 - 20 -19.7 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -173 - 10 --18.7 - 20 -20.1 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -174 - 10 --18.3 - 20 -20.1 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -175 - 10 --18.3 - 20 -19.7 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -176 - 10 --18.7 - 20 -19.7 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -177 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -178 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -179 - 10 --17.8 - 20 -20.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -17A - 10 --18.1 - 20 -20.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -17B - 10 --18.1 - 20 -19.9 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -17C - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -17D - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -17E - 10 --17.8 - 20 -20.5 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -17F - 10 --17.88 - 20 -20.51778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -180 - 10 --17.88 - 20 -20.48222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -181 - 10 --17.8 - 20 -20.5 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -182 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -183 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -184 - 10 --17.9 - 20 -19.9 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -185 - 10 --18.1 - 20 -19.9 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -186 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -187 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -188 - 10 --17.9 - 20 -19.9 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -189 - 10 --17.98 - 20 -19.91778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -18A - 10 --17.98 - 20 -19.88222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -18B - 10 --17.9 - 20 -19.9 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -18C - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -18D - 10 --18.1 - 20 -19.9 - 30 -0.0 - 11 --18.3 - 21 -19.9 - 31 -0.0 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -18E - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -18F - 10 --18.1 - 20 -19.9 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -190 - 10 --18.18 - 20 -19.91778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -191 - 10 --18.18 - 20 -19.88222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -192 - 10 --18.1 - 20 -19.9 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -193 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -194 - 10 --18.7 - 20 -19.9 - 30 -0.0 - 11 --19.0 - 21 -19.9 - 31 -0.0 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -195 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -196 - 10 --18.7 - 20 -19.9 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -197 - 10 --18.78 - 20 -19.91778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -198 - 10 --18.78 - 20 -19.88222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -199 - 10 --18.7 - 20 -19.9 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -19A - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -19B - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -19C - 10 --19.0 - 20 -19.9 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -19D - 10 --19.0 - 20 -19.7 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -19E - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -19F - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1A0 - 10 --21.6 - 20 -22.7 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1A1 - 10 --21.4 - 20 -22.7 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1A2 - 10 --21.4 - 20 -22.4 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -1A3 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -1A4 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1A5 - 10 --21.6 - 20 -22.7 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1A6 - 10 --21.52 - 20 -22.68222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1A7 - 10 --21.52 - 20 -22.71778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1A8 - 10 --21.6 - 20 -22.7 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -1A9 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -1AA - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1AB - 10 --21.4 - 20 -22.4 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1AC - 10 --16.2 - 20 -22.4 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -1AD - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -1AE - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1AF - 10 --21.4 - 20 -22.4 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1B0 - 10 --21.32 - 20 -22.38222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1B1 - 10 --21.32 - 20 -22.41778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1B2 - 10 --21.4 - 20 -22.4 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -1B3 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -1B4 - 10 --23.0 - 20 -19.5 - 30 -0.0 - 11 --23.0 - 21 -19.2 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -1B5 - 10 --18.1 - 20 -19.5 - 30 -0.0 - 11 --18.1 - 21 -19.2 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -1B6 - 10 --23.4 - 20 -23.2 - 30 -0.0 - 11 --23.4 - 21 -18.4 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -1B7 - 10 --21.4 - 20 -22.4 - 30 -0.0 - 11 --23.6 - 21 -22.4 - 31 -0.0 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -1B8 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1B9 - 10 --23.6 - 20 -22.4 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1BA - 10 --23.52 - 20 -22.38222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1BB - 10 --23.52 - 20 -22.41778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1BC - 10 --23.6 - 20 -22.4 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -1BD - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -1BE - 10 --14.1 - 20 -22.3 - 30 -0.0 - 11 --14.1 - 21 -19.3 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -1BF - 10 --14.1 - 20 -22.5 - 30 -0.0 - 11 --14.1 - 21 -23.2 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -1C0 - 10 --14.1 - 20 -23.2 - 30 -0.0 - 11 --23.4 - 21 -23.2 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -1C1 - 10 --14.1 - 20 -19.1 - 30 -0.0 - 11 --14.1 - 21 -18.4 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -1C2 - 10 --14.1 - 20 -18.4 - 30 -0.0 - 11 --23.4 - 21 -18.4 - 31 -0.0 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -1C3 - 10 --21.3 - 20 -19.2 - 30 -0.0 - 11 --23.0 - 21 -19.2 - 31 -0.0 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -1C4 - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1C5 - 10 --21.3 - 20 -19.2 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1C6 - 10 --21.38 - 20 -19.21778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1C7 - 10 --21.38 - 20 -19.18222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1C8 - 10 --21.3 - 20 -19.2 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -1C9 - 0 -LINE - 8 -STANDARD - 62 - 7 - 5 -1CA - 10 --23.0 - 20 -19.2 - 30 -0.0 - 11 --23.6 - 21 -19.2 - 31 -0.0 - 0 -POLYLINE - 8 -STANDARD - 62 - 7 - 5 -1CB - 66 - 1 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1CC - 10 --23.0 - 20 -19.2 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1CD - 10 --23.08 - 20 -19.21778 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1CE - 10 --23.08 - 20 -19.18222 - 30 -0.0 - 0 -VERTEX - 8 -STANDARD - 62 - 7 - 5 -1CF - 10 --23.0 - 20 -19.2 - 30 -0.0 - 0 -SEQEND - 8 -0 - 5 -1D0 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -1D1 - 10 --13.665 - 20 -19.225 - 30 -0.0 - 40 -0.1 - 1 -Output - 7 -STYLE1 - 72 - 1 - 11 --13.5 - 21 -19.275 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -1D2 - 10 --13.665 - 20 -19.075 - 30 -0.0 - 40 -0.1 - 1 -to HAL - 7 -STYLE1 - 72 - 1 - 11 --13.5 - 21 -19.125 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -1D3 - 10 --13.72 - 20 -22.425 - 30 -0.0 - 40 -0.1 - 1 -Feedback - 7 -STYLE1 - 72 - 1 - 11 --13.5 - 21 -22.475 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -1D4 - 10 --13.72 - 20 -22.275 - 30 -0.0 - 40 -0.1 - 1 -from HAL - 7 -STYLE1 - 72 - 1 - 11 --13.5 - 21 -22.325 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -1D5 - 10 --24.4025 - 20 -22.425 - 30 -0.0 - 40 -0.1 - 1 -Feedback to - 7 -STYLE1 - 72 - 1 - 11 --24.1 - 21 -22.475 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -1D6 - 10 --24.375 - 20 -22.275 - 30 -0.0 - 40 -0.1 - 1 -Kinematics - 7 -STYLE1 - 72 - 1 - 11 --24.1 - 21 -22.325 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -1D7 - 10 --24.32 - 20 -19.3 - 30 -0.0 - 40 -0.1 - 1 -Commands - 7 -STYLE1 - 72 - 1 - 11 --24.1 - 21 -19.35 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -1D8 - 10 --24.21 - 20 -19.15 - 30 -0.0 - 40 -0.1 - 1 -from - 7 -STYLE1 - 72 - 1 - 11 --24.1 - 21 -19.2 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -1D9 - 10 --24.375 - 20 -19.0 - 30 -0.0 - 40 -0.1 - 1 -Kinematics - 7 -STYLE1 - 72 - 1 - 11 --24.1 - 21 -19.05 - 31 -0.0 - 73 - 2 - 0 -TEXT - 8 -STANDARD - 62 - 7 - 5 -1DA - 10 --19.14 - 20 -22.95 - 30 -0.0 - 40 -0.1 - 1 -JOINT CONTROLLER - 7 -STYLE1 - 72 - 1 - 11 --18.7 - 21 -23.0 - 31 -0.0 - 73 - 2 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/code/emc2-motion-joint-controller-block-diag.eps b/docs/src/code/emc2-motion-joint-controller-block-diag.eps deleted file mode 100644 index 340e20ee7cb..00000000000 --- a/docs/src/code/emc2-motion-joint-controller-block-diag.eps +++ /dev/null @@ -1,952 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Title: D:\JMK\Drawings\emc2-motion-joint-controller-block-diag.FC7 -%%BoundingBox: 19 9 784 593 -%%Creator: PSCRIPT.DRV Version 4.0 -%%CreationDate: 07/18/04 22:25:46 -%%Pages: 1 -%%Requirements: None -%%DocumentNeededFonts: (atend) -%%DocumentSuppliedFonts: (atend) -%%LanguageLevel: 1 -%%EndComments - -%%BeginProlog -%%BeginProcSet: Pscript_Res_Emul 1.0 0 -/defineresource where{pop}{userdict begin/defineresource{userdict/Resources 2 -copy known{get begin}{15 dict dup begin put}ifelse exch readonly exch -currentdict 1 index known not{dup 30 dict def}if load 3 -1 roll 2 index put -end}bind readonly def/findresource{userdict/Resources get exch get exch get} -bind readonly def/resourceforall{pop pop pop pop}bind readonly def -/resourcestatus{userdict/Resources 2 copy known{get exch 2 copy known{get exch -known{0 -1 true}{pop pop false}ifelse}{pop pop pop false}ifelse}{pop pop false -}ifelse}bind readonly def end}ifelse -%%EndProcSet -%%BeginResource: procset Pscript_Win_Driver 2.0 0 -/Pscript_Win_Driver 200 dict dup begin -%%BeginResource: file Pscript_FatalError 2.0 0 -/FatalErrorIf{{initgraphics findfont exch scalefont setfont counttomark 3 div -cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def -%%EndResource -/VM? {vmstatus exch sub exch pop gt { [ -(This job requires more memory than is available in this printer.) 100 500 -(Try one or more of the following, and then print again:) 100 485 -(In the PostScript dialog box, click Optimize For Portability.) 115 470 -(In the Device Options dialog box, make sure the Available Printer Memory is accurate.) 115 455 -(Reduce the number of fonts in the document.) 115 440 -(Print the document in parts.) 115 425 -12 /Times-Roman showpage -(%%[ PrinterError: Low Printer VM ]%%) = -true FatalErrorIf}if} bind def -%%BeginResource: file Pscript_Win_Utils 2.0 0 -/|/def load def/,/load load |/~/exch , |/?/ifelse , |/!/pop , |/`/begin , |/^ -/index , |/@/dup , |/+/translate , |/$/roll , |/U/userdict , |/M/moveto , |/- -/rlineto , |/&/currentdict , |/:/gsave , |/;/grestore , |/F/false , |/T/true , -|/N/newpath , |/E/end , |/Ac/arc , |/An/arcn , |/A/ashow , |/D/awidthshow , | -/C/closepath , |/V/div , |/O/eofill , |/L/fill , |/I/lineto , |/-C/rcurveto , -|/-M/rmoveto , |/+S/scale , |/Ji/setfont , |/Lc/setlinecap , |/Lj/setlinejoin -, |/Lw/setlinewidth , |/S/show , |/LH/showpage , |/K/stroke , |/W/widthshow , -|/R/rotate , |/b{bind |}bind |/bd{bind |}bind |/xd{~ |}bd/ld{, |}bd/lw/Lw ld -/lc/Lc ld/lj/Lj ld/sg/setgray ld/L2? F/languagelevel where{! languagelevel 2 -ge{! T}if}if |/g{@ not{U/DefIf_save save put}if U/DefIf_bool 2 ^ put}b -/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e{DefIf_El ! -}b/self & |/reinitialize{[/TextInit/GraphInit/UtilsInit counttomark{@ where{ -self eq}{F}?{cvx exec}{!}?}repeat cleartomark}b/initialize{`{/ADO_mxRot ~ | -/TextInitialised? F | reinitialize E}{U/Pscript_Win_Data 200 dict @ ` put -/ADO_mxRot ~ |/TextInitialised? F | reinitialize}?}b/terminate{!{& self eq{ -exit}{E}?}loop E}b/suspend/terminate , |/resume{` Pscript_Win_Data `}b/snap{ -transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~ itransform}b -/dsnap{dtransform round ~ round ~ idtransform}b<04>cvn{}|/setjn{{statusdict -/jobname known{statusdict/jobname 3 -1 $ put}if}stopped cleartomark}b/solid{[] -0 setdash}b/setdsh{0 setdash}b/colspRefresh{}b/rp{4 2 $ M 1 ^ 0 - 0 ~ - neg 0 --}b/rr{1 ^ 0 - 0 ~ - neg 0 - C}b -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L1 2.0 0 -L2? not g{/rf{N rp L}b/fx{1 1 dtransform @ 0 ge{1 sub 1}{1 add -0.25}? 3 -1 $ -@ 0 ge{1 sub 1}{1 add -0.25}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{ -4 -2 $ snap + +S fx rf}b/rs{N rp C K}b/rc{N rp clip N}b/sg{setgray}b/sco{ -setrgbcolor}b/sgco{{sg}{sco}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L2 2.0 0 -L2? g{/colspA/DeviceGray |/colspABC/DeviceRGB |/setAorABC{{colspA}{colspABC}? -setcolorspace}b/rf/rectfill , |/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5 -}? 3 -1 $ @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ -idtransform}b/BZ{4 -2 $ snap + +S fx rf}b/rs/rectstroke , |/rc/rectclip , |/sg -{@ @ setcolor}b/sco{setcolor}b/colspRefresh{colspABC setcolorspace}b/sgco{{sg -}{sco}?}b/UtilsInit{F setglobal}b/definecolorrendering{/ColorRendering -defineresource !}b/findcolorrendering{@/ColorRendering resourcestatus{! ! -/ColorRendering findresource T}{! F}?}b/selectcolorrendering{@/ColorRendering -resourcestatus{! !/ColorRendering}{!/DefaultColorRendering/ColorRendering}? -findresource setcolorrendering}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Encoding 2.0 0 -/bullets{{/bullet}repeat}b/ANSIEncoding[/grave/acute/circumflex/tilde/macron -/breve/dotaccent/dieresis/ring/cedilla/hungarumlaut/ogonek/caron/dotlessi 18 -bullets StandardEncoding 32 95 getinterval aload ! 3 bullets/quotesinglbase -/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron -/guilsinglleft/OE 4 bullets/quoteleft/quoteright/quotedblleft/quotedblright -/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 2 bullets -/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section -/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered -/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph -/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter -/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis -/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute -/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls -/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute -/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve -/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex -/udieresis/yacute/thorn/ydieresis]| ANSIEncoding @ 39/quotesingle put 96/grave -put/ANSIEncodingOld ANSIEncoding 256 array copy | ANSIEncodingOld @[138 153 -154 169 172 174 177 178 179 181 185 188 189 190 208 215 221 222 240 247 253 -254]{/bullet put @}forall 166/bar put 176/ring put -%%EndResource -%%BeginResource: file Pscript_Win_Text 2.0 0 -/TextInit{TextInitialised? not{/Pscript_Windows_Font & |/TextInitialised? T | -/fM[1 0 0 -1 0 0]|/mFM matrix |/iMat[1 0 0.212557 neg 1 0 0]|}if}b/xUP null | -/yUP null |/uW null |/xSP null |/ySP null |/sW null |/copyfont{1 ^ length add -dict `{1 ^/FID ne{|}{! !}?}forall & E}b/rF{3 copyfont @ `/Encoding -ANSIEncoding &/CharStrings known{CharStrings/Eth known not{! ANSIEncodingOld} -if}if | E}b/mF{findfont ~{@/Encoding get @ StandardEncoding eq{! T}{{ -ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get -StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{rF}{3 copyfont}? ` -/OrigFontType ~ |/OrigFontName ~ | & E 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 -put fM makefont Pscript_Windows_Font 3 1 $ put}b/xF{scalefont -Pscript_Windows_Font 3 1 $ put}b/xMF{mFM astore makefont Pscript_Windows_Font -3 1 $ put}b/xF2/scalefont , |/xMF2{mFM astore makefont}b/sLT{: Lw -M -currentpoint snap M 0 - 0 Lc K ;}b/sSU{N/uW ~ |/yUP ~ |/xUP ~ |}b/sU{xUP yUP -uW sLT}b/sST{N/sW ~ |/ySP ~ |/xSP ~ |}b/sT{xSP ySP sW sLT}b/sR{: + R 0 0 M}b -/sRxy{: matrix astore concat 0 0 M}b/eR/; , | -%%EndResource -%%BeginResource: file Pscript_Win_Text_Bold 2.0 0 -/mBF{@ 4 copyfont `/FontName ~ |/OrigFontType ~ |/OrigFontName ~ | 0 -FontMatrix idtransform ! &/PaintType known{PaintType 0 eq{/PaintType 2 | -/StrokeWidth ~ |}{PaintType 1 eq PaintType 2 eq or PaintType 3 eq or & -/StrokeWidth known and{StrokeWidth add/StrokeWidth ~ |}{!}?}?}{!}? @ & E -definefont Pscript_Windows_Font 3 1 $ put}b/xBF{Pscript_Windows_Font ` 1 ^ -/FontName get 1 ^ scalefont 3 1 $ scalefont 2 copy ~ | ~ ! | E}b/xMBF{mFM -astore Pscript_Windows_Font ` 1 ^/FontName get 1 ^ makefont 3 1 $ makefont 2 -copy ~ | ~ ! | E}b/xBF2{/sB0 ~ mBF/sB1 sB0 3 -1 $ xBF sB1}b/xMBF2{/sB0 ~ mBF -mFM astore/sB1 sB0 3 -1 $ xMBF sB1}b/sB{: Pscript_Windows_Font currentfont get -Ji @ S ; S}b/asB{: Pscript_Windows_Font currentfont get Ji 3 copy A ; A}b/wsB{ -: Pscript_Windows_Font currentfont get Ji 4 copy W ; W}b/awsB{: -Pscript_Windows_Font currentfont get Ji 6 copy D ; D}b/sBT3{: @ S ; 1 1 -M S}b -/asBT3{: 3 copy A ; 1 1 -M A}b/wsBT3{: 4 copy W ; 1 1 -M W}b/awsBT3{: 6 copy D -; 1 1 -M D}b/mIF{iMat 4 3 -1 $ put 2 copyfont `/OrigFontType ~ |/OrigFontName -~ | @ & E definefont iMat makefont Pscript_Windows_Font 3 1 $ put}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics 2.0 0 -/SavedCTM null |/CTMsave{/SavedCTM SavedCTM currentmatrix |}b/CTMrestore{ -SavedCTM setmatrix}b/mp null |/ADO_mxRot null |/GDIHMatrix null | -/GDIHPatternDict 22 dict | GDIHPatternDict `/PatternType 1 |/PaintType 2 | -/Reps L2?{1}{5}? |/XStep 8 Reps mul |/YStep XStep |/BBox[0 0 XStep YStep]| -/TilingType 1 |/PaintProc{` 1 Lw[]0 setdash PaintData , exec E}b/FGnd null | -/BGnd null |/HS_Horizontal{horiz}b/HS_Vertical{vert}b/HS_FDiagonal{fdiag}b -/HS_BDiagonal{biag}b/HS_Cross{horiz vert}b/HS_DiagCross{fdiag biag}b/MaxXYStep -XStep YStep gt{XStep}{YStep}? |/horiz{Reps{0 4 M XStep 0 - 0 8 +}repeat 0 -8 -Reps mul + K}b/vert{Reps{4 0 M 0 YStep - 8 0 +}repeat 0 -8 Reps mul + K}b/biag -{Reps{0 0 M MaxXYStep @ - 0 YStep neg M MaxXYStep @ - 0 8 +}repeat 0 -8 Reps -mul + 0 YStep M 8 8 - K}b/fdiag{Reps{0 0 M MaxXYStep @ neg - 0 YStep M -MaxXYStep @ neg - 0 8 +}repeat 0 -8 Reps mul + MaxXYStep @ M 8 -8 - K}b E -/makehatch{GDIHPatternDict/PaintData 3 -1 $ put CTMsave GDIHMatrix setmatrix -GDIHPatternDict matrix mp CTMrestore ~ U ~ 2 ^ put}b/h0{/h0/HS_Horizontal -makehatch}b/h1{/h1/HS_Vertical makehatch}b/h2{/h2/HS_FDiagonal makehatch}b/h3{ -/h3/HS_BDiagonal makehatch}b/h4{/h4/HS_Cross makehatch}b/h5{/h5/HS_DiagCross -makehatch}b/GDIBWPatternDict 17 dict @ `/PatternType 1 |/PaintType L2?{1}{2}? -|/RepsV L2?{1}{6}? |/RepsH L2?{1}{5}? |/BBox[0 0 RepsH 1]|/TilingType 1 | -/XStep 1 |/YStep 1 |/Height 8 RepsV mul |/Width 8 |/mx[Width 0 0 Height neg 0 -Height]|/FGnd null |/BGnd null |/SetBGndFGnd L2?{{BGnd null ne{BGnd aload ! -sgco BBox aload ! 2 ^ sub ~ 3 ^ sub ~ rf}if FGnd null ne{FGnd aload ! sgco}if} -}{{}}? b/PaintProc{` SetBGndFGnd RepsH{Width Height F mx PaintData imagemask -Width 0 +}repeat E}b E |/GDIBWPatternMx null |/pfprep{save 4 1 $ -/PatternOfTheDay 4 1 $ GDIBWPatternDict `/PaintData ~ |/BGnd ~ |/FGnd ~ | E -CTMsave GDIBWPatternMx setmatrix GDIBWPatternDict matrix mp CTMrestore ~ !}b -/hrf null |/prf{pfprep ~ 6 1 $ 5 hrf restore}b/GraphInit{GDIHMatrix null eq{ -/SavedCTM matrix | : ADO_mxRot concat 0 0 snap + : 0.48 @ GDIHPatternDict ` -YStep mul ~ XStep mul ~ dsnap YStep V ~ XStep V ~ E +S/GDIHMatrix matrix -currentmatrix readonly | ; : 0.24 -0.24 +S GDIBWPatternDict ` Width Height E -dsnap +S/GDIBWPatternMx matrix currentmatrix readonly | ; ;}if}b/cirp{360 0 An -C}b/ellp{CTMsave + +S 0.5 0 M 0 0 0.5 360 0 An C CTMrestore}b/rrp{/rad ~ |/y2 -~ |/x2 ~ |/y1 ~ |/x1 ~ | x2 x1 add 2 V y1 M x1 y1 x1 y2 rad arct x1 y2 x2 y2 -rad arct x2 y2 x2 y1 rad arct x2 y1 x1 y1 rad arct C}b/RRp{CTMsave + +S/dyS ~ -|/dxS ~ | dxS 2 V 0 M 0 0 0 dyS 0.5 arct 0 dyS dxS dyS 0.5 arct dxS dyS dxS 0 -0.5 arct dxS 0 0 0 0.5 arct C CTMrestore}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L1 2.0 0 -L2? not g{/arct{arcto ! ! ! !}b/GDIpattfill{@ ` BGnd null ne PaintType 2 eq -and{: BGnd aload ! sgco fEOFill{O}{L}? ; FGnd aload ! U/fGray 2 ^ put{2}{4}? --1 $}if E @ patterncalc : 4 ^/PaintType get 2 eq{fGray{6 -1 $ sg}{8 -3 $ sco}? -}if fEOFill{eoclip}{clip}? N patternfill ; N}b/hrf{/fGray 1 ^ 6 eq | -4 $ N rp -C/fEOFill F | GDIpattfill}b/hfMain{/fEOFill ~ |/fGray ~ | GDIpattfill}b/hf{T -hfMain}b/hfW{F hfMain}b/hs{currentpoint strokepath M hfW}b/pfMain{/fEOFill ~ | -pfprep GDIpattfill restore N}b/pf{T pfMain}b/pfW{F pfMain}b/ps{currentpoint -strokepath M pfW}b/mpstr 1 string |/mp{~ @ length 12 add dict copy ` -/PatternCTM matrix currentmatrix |/PatternMatrix ~ |/PatWidth XStep mpstr -length mul |/PatHeight YStep |/FontType 3 |/Encoding 256 array | 3 string 0 1 -255{Encoding ~ @ 3 ^ cvs cvn put}for !/FontMatrix matrix |/FontBBox BBox | -/BuildChar{! @ ` XStep 0 FontBBox aload ! setcachedevice/PaintProc , E : exec -;}b & E ~ @ 3 -1 $ definefont}b/patterncalc{` : PatternCTM setmatrix -PatternMatrix concat BBox aload ! ! ! + pathbbox ; PatHeight V ceiling 4 1 $ -PatWidth V ceiling 4 1 $ PatHeight V floor 4 1 $ PatWidth V floor 4 1 $ 2 ^ -sub cvi abs ~ 3 ^ sub cvi abs ~ 4 2 $ PatHeight mul ~ PatWidth mul ~ E}b -/patternfill{5 -1 $ @ ` Ji PatternCTM setmatrix PatternMatrix concat 0 2 ^ 2 ^ -M 0 1 mpstr length 1 sub{1 ^ mpstr 3 1 $ put}for ! 2 ^{currentpoint 5 ^{mpstr -S}repeat YStep add M}repeat ! ! ! ! E}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L2 2.0 0 -L2? g{/mp/makepattern , |/hrf{6 eq setAorABC setpattern rectfill}b/hf{ -setAorABC setpattern O}b/hfW{setAorABC setpattern L}b/hs{setAorABC setpattern -K}b/pf{pfprep setpattern O restore N}b/pfW{pfprep setpattern L restore N}b/ps{ -pfprep setpattern K restore N}b}e -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images 2.0 0 -/iw 0 |/ih 0 |/im_save 0 |/s 0 |/polarity 0 |/smoothflag 0 |/mystring 0 |/bpc -0 |/setup1asciiproc{[currentfile mystring/readhexstring cvx/! cvx]cvx bind}b -/setup1binaryproc{[currentfile mystring/readstring cvx/! cvx]cvx bind}b -/setup2asciiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}b -/setup2binaryproc{currentfile/RunLengthDecode filter}b/mycolorspace{colspABC}| -/myimagedict{/myimagedict 10 dict | myimagedict @ `/ImageType 1 | -/MultipleDataSource F | E}b/imageprocarray[/setup1binaryproc/setup1asciiproc -/setup2binaryproc/setup2asciiproc/setup1binarydecodeproc/setup1asciidecodeproc -]|/L2Polarity{{[1 0]}{[0 1]}?}b/Q{/im_save save | imageprocarray ~ get/s ~ , | -L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring ~ -string |/bpc ~ |/ih ~ |/iw ~ |}b/X{/im_save save | imageprocarray ~ get/s ~ , -| L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring -~ string |/bpc ~ |/ih ~ |/iw ~ |}b/Z{im_save restore}b/Y{sgco myimagedict @ ` -/Width iw |/Height ih |/Decode polarity |/ImageMatrix[iw 0 0 ih 0 0]| -/DataSource s |/BitsPerComponent 1 |/Interpolate smoothflag | E imagemask}b -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images_L1 2.0 0 -L2? not g{/setup2asciiproc{[/Level2ImagesError , aload ! T FatalErrorIf}b -/setup2binaryproc/setup2asciiproc , |/L2Polarity{}|/Y{sgco iw ih polarity[iw 0 -0 ih 0 0]s imagemask}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L1 2.0 0 -L2? not g{/testsystemdict{where{systemdict eq{T}{F}?}{F}?}b/c 1 |/colorimage -where{! T}{F}?{/c 0 statusdict `/processcolors where{! ! processcolors}{ -/deviceinfo where{! deviceinfo/Colors known{!{deviceinfo/Colors get}}if}if}? E -| c 0 ne{/colorimage testsystemdict/setcolortransfer testsystemdict -/currentcolortransfer testsystemdict/currentcmykcolor testsystemdict and and -and not{/c 0 |}if}if}if c @ 1 ne ~ @ 3 ne ~ 4 ne and and{/c 0 |}if c 1 eq g{ -/expandbw{expandfactor mul round cvi bwclut ~ get 255 V}b/doclutimage{!/bwclut -~ | bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/expandfactor ~ |[/expandbw ,/exec , @ -currenttransfer ~]cvx bind settransfer iw ih bpc[iw 0 0 ih 0 0]s image}b}e c @ -3 eq ~ 4 eq or g{/nullproc{{}}|/concatutil{/exec , 7 -1 $/exec ,}b/defsubclut{ -1 add getinterval |}b/spconcattransfer{/Dclut ~ |/Cclut ~ |/Bclut ~ |/Aclut ~ -|/ncompute ~ , | currentcolortransfer[{Aclut ncompute}concatutil]cvx[{Bclut -ncompute}concatutil]cvx[{Cclut ncompute}concatutil]cvx[{Dclut ncompute} -concatutil]cvx setcolortransfer}b/setuprgbcluts{/bit3x rgbclut length 3 sub | -/bit1x bit3x 3 idiv |/rclut rgbclut |/gclut rclut 1 bit3x defsubclut/bclut -rclut 2 bit3x defsubclut}b}e c 3 eq g{/3compute{~ bit3x mul round cvi get 255 -V}b/doclutimage{/rgbclut ~ | ! setuprgbcluts/3compute rclut gclut bclut @ -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @]cvx nullproc nullproc -T 3 colorimage}b}e c 4 eq g{/ftoint{1 ~ sub 255 mul round cvi}b/stuffclut{ -cmykindex 3 -1 $ put}b/4compute{~ bit4x mul round cvi get 255 V}b -/invalidcolortable? T |/computecmykclut{setuprgbcluts/bit4x rgbclut length 3 -idiv 4 mul 4 sub |/cmykclut bit4x 4 add string |/cclut cmykclut |/mclut cclut -1 bit4x defsubclut/yclut cclut 2 bit4x defsubclut/kclut cclut 3 bit4x -defsubclut/cmykindex 0 | 0 1 bit1x{@/cmykindex ~ bit1x ~ sub 4 mul | 3 mul @ -rclut ~ get 255 V ~ @ gclut ~ get 255 V ~ bclut ~ get 255 V setrgbcolor -currentcmykcolor ftoint kclut stuffclut ftoint yclut stuffclut ftoint mclut -stuffclut ftoint cclut stuffclut}for}b/doclutimage{/rgbclut ~ | ! -invalidcolortable?{computecmykclut}if/4compute cclut mclut yclut kclut -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @ @]cvx nullproc -nullproc nullproc T 4 colorimage}b}e c 0 eq g{/a{3 mul 3 getinterval -putinterval ~ 3 add ~ 3 copy}b/8lookup/a , |/4lookup{/byte 1 ^ | -4 bitshift a -byte 15 and a}b/2lookup{/byte 1 ^ | -6 bitshift a byte -4 bitshift 3 and a -byte -2 bitshift 3 and a byte 3 and a}b/colorexpand{mystringexp 0 rgbclut 3 -copy 7 -1 $/mylookup , forall ! ! ! ! !}b/createexpandstr{/mystringexp ~ -mystring length mul string |}b/doclutimage{/rgbclut ~ | !/mylookup bpc 8 eq{3 -createexpandstr/8lookup}{bpc 4 eq{6 createexpandstr/4lookup}{12 -createexpandstr/2lookup}?}? , | iw ih bpc[iw 0 0 ih 0 0][s/exec ,/colorexpand -,/exec ,]cvx F 3 colorimage}b}e/colorimage where{! T}{F}? g{/do24image{iw ih 8 -[iw 0 0 ih 0 0]s F 3 colorimage}b}DefIf_El{/rgbtogray{/str ~ |/len str length -|/smlen len 3 idiv |/rstr str |/gstr str 1 len 1 sub getinterval |/bstr str 2 -len 2 sub getinterval | str @ 0 1 smlen 1 sub{@ 3 mul rstr 1 ^ get 0.3 mul -gstr 2 ^ get 0.59 mul add bstr 3 -1 $ get 0.11 mul add round cvi put @}for ! 0 -smlen getinterval}b/do24image{iw ih 8[iw 0 0 ih 0 0][s/exec ,/rgbtogray ,/exec -,]cvx bind image}b}e/doNimage{bpc 24 eq{do24image}{iw ih bpc[iw 0 0 ih 0 0]s -image}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L2 2.0 0 -L2? g{/doclutimage{/rgbclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[ -/Indexed colspABC hival rgbclut]setcolorspace myimagedict @ `/Width iw | -/Height ih |/Decode[0 hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s | -/BitsPerComponent bpc |/Interpolate smoothflag | E image}b/doCMYKclutimage{ -/CMYKclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[/Indexed/DeviceCMYK -hival CMYKclut]setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 -hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent bpc | -/Interpolate smoothflag | E image}b/doNimage{bpc 24 eq{colspABC}{colspA}? -setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode bpc 24 eq{[0 1 0 1 -0 1]}{[0 1]}? |/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent -bpc 24 eq{8}{bpc}? |/Interpolate smoothflag | E image}b/doCMYKimage{ -/DeviceCMYK setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 1 0 -1 0 1 0 1]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent 8 | -/Interpolate smoothflag | E image}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Type3_Hdr 2.0 0 -/GreNewFont{10 dict @ 3 1 $ | @ ` 4 1 $/FontType 3 |/FontMatrix ~ |/FontBBox ~ -|/Encoding 256 array | 0 1 255{Encoding ~/.notdef put}for/CharProcs 257 dict | -CharProcs/.notdef{}put/Metrics 257 dict | Metrics/.notdef 3 -1 $ put/BuildChar -{/char ~ |/fontdict ~ |/charname fontdict/Encoding get char get | fontdict -/Metrics get charname get aload ! setcachedevice fontdict ` Encoding char get -CharProcs ~ get E exec}| E definefont !}|/AddChar{` Encoding 3 1 $ put -CharProcs 3 1 $ put Metrics 3 1 $ put E}| -%%EndResource -%%BeginResource: file Pscript_Win_Type1_Hdr 2.0 0 -/FEbuf 2 string |/FEglyph 3 string |/FE{(G00)FEglyph copy ! 1 ~{@ 16 lt{ -/offset 2 store}{/offset 1 store}? @ 16 FEbuf cvrs FEglyph ~ offset ~ -putinterval 1 ^ ~ FEglyph cvn put}for}bind |/Type1Hdr{11 dict `/FontName ~ | -/PaintType ~ |/FontType 1 |/FontMatrix[1 3 ^ V 0 0 1 6 ^ V 0 0]| !/Encoding -256 array 0 1 255{1 ^ ~/.notdef put}for 3 ^ 3 ^ FE | ! !/FontBBox{0 0 0 0}| & -E currentfile eexec}bind | -%%EndResource -/pp 1 string |/ss 1 string |/rledecodebinary{/DC 0 |/BC 0 |{DC mystring length -ge{exit}if currentfile ss readstring ! 0 get/BC ~ | BC 127 le{/BC BC 1 add | -DC 1 DC BC add 1 sub{mystring ~ currentfile ss readstring ! 0 get put}for}{/BC -257 BC sub | currentfile ss readstring ! 0 get/pp ~ | DC 1 DC BC add 1 sub{ -mystring ~ pp put}for}?/DC DC BC add |}loop mystring}b/rledecodeascii{/DC 0 | -/BC 0 |{DC mystring length ge{exit}if currentfile ss readhexstring ! 0 get/BC -~ | BC 127 le{/BC BC 1 add | DC 1 DC BC add 1 sub{mystring ~ currentfile ss -readhexstring ! 0 get put}for}{/BC 257 BC sub | currentfile ss readhexstring ! -0 get/pp ~ | DC 1 DC BC add 1 sub{mystring ~ pp put}for}?/DC DC BC add |}loop -mystring}b/setup1asciidecodeproc{[/rledecodeascii cvx]cvx bind}b -/setup1binarydecodeproc{[/rledecodebinary cvx]cvx bind}b -%%BeginResource: file Pscript_Win_Compat 2.0 0 -userdict/Pscript_Win_Compat 13 dict dup begin/bd{bind def}bind def/ld{load def -}bd/CB{pop pop pop pop}bind def/B{pop pop pop pop}bind def/$x matrix def/SS{ -/pagesave save def}bind def/RS{/pagesave where{pop pagesave restore}{$x matrix -invertmatrix concat}ifelse}bind def/ANSIVec[0/grave 1/acute 2/circumflex 3 -/tilde 4/macron 5/breve 6/dotaccent 7/dieresis 8/ring 9/cedilla 10 -/hungarumlaut 11/ogonek 12/caron 13/dotlessi 39/quotesingle 96/grave 124/bar -130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135 -/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE -145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150 -/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156 -/oe 159/Ydieresis 160/space 161/exclamdown 164/currency 165/yen 166/brokenbar -167/section 168/dieresis 169/copyright 170/ordfeminine 171/guillemotleft 172 -/logicalnot 173/hyphen 174/registered 175/macron 176/degree 177/plusminus 178 -/twosuperior 179/threesuperior 180/acute 181/mu 182/paragraph 183 -/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 187 -/guillemotright 188/onequarter 189/onehalf 190/threequarters 191/questiondown -192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198 -/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204 -/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve -211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223 -/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229 -/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis -236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242 -/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248 -/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254 -/thorn 255/ydieresis]def currentdict{dup type/operatortype eq{[exch]cvx def}{ -pop pop}ifelse}forall/initialize{currentdict exch begin begin}bind def -/terminate{/@FL where not{pop end end}{pop}ifelse}bind def/suspend/terminate -load def/resume/initialize load def/M/moveto load def end put/Courier findfont -10 scalefont setfont -%%EndResource -end /ProcSet defineresource pop -%%EndResource -%%EndProlog - -%%BeginSetup -Pscript_Win_Compat dup /initialize get exec -[ 0 1.000 -1.000 0 0 0 ] false /Pscript_Win_Driver /ProcSet findresource dup /initialize get exec - - -/mysetup [ 0.240 0 0 -0.240 8.880 592.800 ] | -%%EndSetup - -%%Page: 1 1 -%%BeginPageSetup -userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 2550 3300 rf ; -%%EndPageSetup - -: 0 0 3229 2391 rc -2620 780 N M -27 -27 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2593 753 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2593 753 N M 27 -28 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2620 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2620 725 N M 360 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2980 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2980 725 N M 0 55 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2980 780 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2980 780 N M -360 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2620 780 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2620 780 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2620 780 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2952 1665 N M 28 -28 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2980 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2980 1637 N M -28 -27 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2952 1610 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2952 1610 N M -359 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2593 1610 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2593 1610 N M 0 55 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2593 1665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2593 1665 N M 359 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2952 1665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2952 1665 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2952 1665 N M 0 0 rr : 0 0 0 sco O ; : 2660 734 490 41 rc 0 0 0 sco %%IncludeFont: Helvetica -(F0) cvn -0.943 - (Helvetica) cvn /Type1 -T -(Helvetica) cvn -mF -(F0_28_35) cvn -F0 -28 0 0 35 0 0 -xMF -F0_28_35 -Ji -2695 734 M -2.025 0 (motor-pos-fb)A -; : 2643 1618 525 41 rc 0 0 0 sco F0_28_35 -Ji -2678 1618 M -2.212 0 (motor-pos-cmd)A -; : 555 1176 490 41 rc 0 0 0 sco F0_28_35 -Ji -590 1176 M -2.173 0 (free-pos-cmd)A -; : 572 1286 490 41 rc 0 0 0 sco F0_28_35 -Ji -607 1286 M -1.547 0 (free-vel-lim)A -; : 1919 899 490 41 rc 0 0 0 sco F0_28_35 -Ji -1954 899 M -1.885 0 (motor-offset)A -; : 1949 1425 315 41 rc 0 0 0 sco F0_28_35 -Ji -1984 1425 M -2.000 0 (vel-cmd)A -; : 605 651 280 41 rc 0 0 0 sco F0_28_35 -Ji -640 651 M -2.198 0 (pos-fb)A -; : 571 1535 420 41 rc 0 0 0 sco F0_28_35 -Ji -606 1535 M -2.051 0 (coarse-pos)A -; : 1942 1535 315 41 rc 0 0 0 sco F0_28_35 -Ji -1977 1535 M -2.521 0 (pos-cmd)A -; : 0 0 3229 2391 rc -934 1720 N M 0 -166 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -934 1554 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -934 1554 N M 277 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1211 1554 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1211 1554 N M 0 166 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1211 1720 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1211 1720 N M -277 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -934 1720 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -934 1333 N M 0 -166 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -934 1167 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -934 1167 N M 277 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1211 1167 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1211 1167 N M 0 166 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1211 1333 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1211 1333 N M -277 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -934 1333 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1902 1333 N M 0 -166 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1902 1167 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1902 1167 N M 276 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2178 1167 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2178 1167 N M 0 166 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2178 1333 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2178 1333 N M -276 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1902 1333 N M 0 0 rr : 0 0 0 sco O ; -N 2399 753 56.000 360 0 An C 1 Lw 1 Lc 1 Lj solid 0 0 0 sco K -N 2399 1637 56.000 360 0 An C 0 0 0 sco K -N 2261 1084 55.000 360 0 An C 0 0 0 sco K : 0 0 3229 2391 rc -2399 753 N M 39 -39 - 1 Lw solid 0 0 0 sco K ; -2438 714 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2399 1637 N M 39 -39 - 1 Lw solid 0 0 0 sco K ; -2438 1598 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2261 1084 N M 39 -39 - 1 Lw solid 0 0 0 sco K ; -2300 1045 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2399 753 N M -39 -39 - 1 Lw solid 0 0 0 sco K ; -2360 714 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2399 1637 N M -39 -39 - 1 Lw solid 0 0 0 sco K ; -2360 1598 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2261 1084 N M -39 -39 - 1 Lw solid 0 0 0 sco K ; -2222 1045 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2399 753 N M -39 39 - 1 Lw solid 0 0 0 sco K ; -2360 792 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2399 1637 N M -39 39 - 1 Lw solid 0 0 0 sco K ; -2360 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2261 1084 N M -39 40 - 1 Lw solid 0 0 0 sco K ; -2222 1124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2399 753 N M 39 39 - 1 Lw solid 0 0 0 sco K ; -2438 792 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2399 1637 N M 39 39 - 1 Lw solid 0 0 0 sco K ; -2438 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2261 1084 N M 39 40 - 1 Lw solid 0 0 0 sco K ; -2300 1124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2385 1604 N M 28 0 - 1 Lw solid 0 0 0 sco K ; -2413 1604 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2247 1051 N M 28 0 - 1 Lw solid 0 0 0 sco K ; -2275 1051 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2399 1590 N M 0 28 - 1 Lw solid 0 0 0 sco K ; -2399 1618 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2261 1037 N M 0 28 - 1 Lw solid 0 0 0 sco K ; -2261 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2352 1637 N M 28 0 - 1 Lw solid 0 0 0 sco K ; -2380 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2366 1623 N M 0 28 - 1 Lw solid 0 0 0 sco K ; -2366 1651 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2261 1104 N M 0 27 - 1 Lw solid 0 0 0 sco K ; -2261 1131 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2385 786 N M 28 0 - 1 Lw solid 0 0 0 sco K ; -2413 786 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2247 1118 N M 28 0 - 1 Lw solid 0 0 0 sco K ; -2275 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2432 739 N M 0 28 - 1 Lw solid 0 0 0 sco K ; -2432 767 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2419 753 N M 27 0 - 1 Lw solid 0 0 0 sco K ; -2446 753 N M 0 0 rr : 0 0 0 sco O ; : 1664 1397 105 41 rc 0 0 0 sco F0_28_35 -Ji -1699 1397 M -2.432 0 (d)A -; : 1654 1452 140 41 rc 0 0 0 sco F0_28_35 -Ji -1689 1452 M -3.162 0 (dT)A -; : 0 0 3229 2391 rc -1681 1444 N M 55 0 - 1 Lw solid 0 0 0 sco K ; -1736 1444 N M 0 0 rr : 0 0 0 sco O ; -N 1487 1444 7.000 360 0 An C 0 0 0 sco K -N 1377 1388 7.000 360 0 An C 0 0 0 sco K -N 1377 1499 7.000 360 0 An C 0 0 0 sco K : 0 0 3229 2391 rc -1481 1441 N M -98 -49 - 1 Lw solid 0 0 0 sco K ; -1383 1392 N M 0 0 rr : 0 0 0 sco O ; -1481 1441 N M -18 -15 - -4 9 - 22 6 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -1481 1441 N M -18 -15 - 0 0 0 sco K ; -1463 1426 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1463 1426 N M -4 9 - 0 0 0 sco K ; -1459 1435 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1459 1435 N M 22 6 - 0 0 0 sco K ; -1481 1441 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1370 1388 N M -76 0 - 0 0 0 sco K ; -1294 1388 N M 0 0 rr : 0 0 0 sco O ; -1370 1388 N M -22 -4 - 0 9 - 22 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1370 1388 N M -22 -4 - 0 0 0 sco K ; -1348 1384 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1348 1384 N M 0 9 - 0 0 0 sco K ; -1348 1393 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1348 1393 N M 22 -5 - 0 0 0 sco K ; -1370 1388 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1570 1444 N M -76 0 - 0 0 0 sco K ; -1494 1444 N M 0 0 rr : 0 0 0 sco O ; -1570 1444 N M -22 -5 - 0 10 - 22 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1570 1444 N M -22 -5 - 0 0 0 sco K ; -1548 1439 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1548 1439 N M 0 10 - 0 0 0 sco K ; -1548 1449 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1548 1449 N M 22 -5 - 0 0 0 sco K ; -1570 1444 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1370 1499 N M -76 0 - 0 0 0 sco K ; -1294 1499 N M 0 0 rr : 0 0 0 sco O ; -1370 1499 N M -22 -5 - 0 10 - 22 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1370 1499 N M -22 -5 - 0 0 0 sco K ; -1348 1494 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1348 1494 N M 0 10 - 0 0 0 sco K ; -1348 1504 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1348 1504 N M 22 -5 - 0 0 0 sco K ; -1370 1499 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2399 808 N M 0 774 - 0 0 0 sco K ; -2399 1582 N M 0 0 rr : 0 0 0 sco O ; -2399 808 N M -5 22 - 10 0 - -5 -22 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2399 808 N M -5 22 - 0 0 0 sco K ; -2394 830 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2394 830 N M 10 0 - 0 0 0 sco K ; -2404 830 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2404 830 N M -5 -22 - 0 0 0 sco K ; -2399 808 N M 0 0 rr : 0 0 0 sco O ; -2399 1582 N M 5 -22 - -10 0 - 5 22 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2399 1582 N M 5 -22 - 0 0 0 sco K ; -2404 1560 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2404 1560 N M -10 0 - 0 0 0 sco K ; -2394 1560 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2394 1560 N M 5 22 - 0 0 0 sco K ; -2399 1582 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2455 753 N M 138 0 - 0 0 0 sco K ; -2593 753 N M 0 0 rr : 0 0 0 sco O ; -2455 753 N M 22 5 - 0 -10 - -22 5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2455 753 N M 22 5 - 0 0 0 sco K ; -2477 758 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2477 758 N M 0 -10 - 0 0 0 sco K ; -2477 748 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2477 748 N M -22 5 - 0 0 0 sco K ; -2455 753 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2593 1637 N M -138 0 - 0 0 0 sco K ; -2455 1637 N M 0 0 rr : 0 0 0 sco O ; -2593 1637 N M -22 -5 - 0 10 - 22 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2593 1637 N M -22 -5 - 0 0 0 sco K ; -2571 1632 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2571 1632 N M 0 10 - 0 0 0 sco K ; -2571 1642 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2571 1642 N M 22 -5 - 0 0 0 sco K ; -2593 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2399 1084 N M -83 0 - 0 0 0 sco K ; -2316 1084 N M 0 0 rr : 0 0 0 sco O ; -2399 1084 N M -22 -4 - 0 9 - 22 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2399 1084 N M -22 -4 - 0 0 0 sco K ; -2377 1080 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1080 N M 0 9 - 0 0 0 sco K ; -2377 1089 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1089 N M 22 -5 - 0 0 0 sco K ; -2399 1084 N M 0 0 rr : 0 0 0 sco O ; : 999 1597 245 41 rc 0 0 0 sco F0_28_35 -Ji -1034 1597 M -2.330 0 (cubic)A -; : 959 1639 490 41 rc 0 0 0 sco F0_28_35 -Ji -994 1639 M -1.495 0 (interpolator)A -; : 966 1190 385 41 rc 0 0 0 sco F0_28_35 -Ji -1001 1190 M -1.883 0 (free mode)A -; : 973 1231 420 41 rc 0 0 0 sco F0_28_35 -Ji -1008 1231 M -1.486 0 (trajectory)A -; : 985 1273 315 41 rc 0 0 0 sco F0_28_35 -Ji -1020 1273 M -1.803 0 (planner)A -; : 1926 1190 420 41 rc 0 0 0 sco F0_28_35 -Ji -1961 1190 M -2.105 0 (backlash &)A -; : 1924 1231 455 41 rc 0 0 0 sco F0_28_35 -Ji -1959 1231 M -1.909 0 (screw error)A -; : 1965 1273 210 41 rc 0 0 0 sco F0_28_35 -Ji -2000 1273 M -2.635 0 (comp)A -; : 0 0 3229 2391 rc -2261 1140 N M 0 110 - 0 0 0 sco K ; -2261 1250 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2261 1250 N M -83 0 - 0 0 0 sco K ; -2178 1250 N M 0 0 rr : 0 0 0 sco O ; -2261 1140 N M -5 22 - 10 0 - -5 -22 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2261 1140 N M -5 22 - 0 0 0 sco K ; -2256 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1162 N M 10 0 - 0 0 0 sco K ; -2266 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2266 1162 N M -5 -22 - 0 0 0 sco K ; -2261 1140 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1902 1223 N M -332 0 - 0 0 0 sco K ; -1570 1223 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1570 1223 N M 0 165 - 0 0 0 sco K ; -1570 1388 N M 0 0 rr : 0 0 0 sco O ; -1902 1223 N M -22 -5 - 0 10 - 22 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1902 1223 N M -22 -5 - 0 0 0 sco K ; -1880 1218 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1880 1218 N M 0 10 - 0 0 0 sco K ; -1880 1228 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1880 1228 N M 22 -5 - 0 0 0 sco K ; -1902 1223 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1570 1388 N M 0 56 - 0 0 0 sco K ; -1570 1444 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1570 1499 N M 0 138 - 0 0 0 sco K ; -1570 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2344 1637 N M -774 0 - 0 0 0 sco K ; -1570 1637 N M 0 0 rr : 0 0 0 sco O ; -2344 1637 N M -22 -5 - 0 10 - 22 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2344 1637 N M -22 -5 - 0 0 0 sco K ; -2322 1632 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2322 1632 N M 0 10 - 0 0 0 sco K ; -2322 1642 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2322 1642 N M 22 -5 - 0 0 0 sco K ; -2344 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -520 1554 N M -55 0 - 0 0 0 sco K ; -465 1554 N M 0 0 rr : 0 0 0 sco O ; -520 1554 N M -22 -5 - 0 10 - 22 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -520 1554 N M -22 -5 - 0 0 0 sco K ; -498 1549 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -498 1549 N M 0 10 - 0 0 0 sco K ; -498 1559 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -498 1559 N M 22 -5 - 0 0 0 sco K ; -520 1554 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1874 1554 N M -55 0 - 0 0 0 sco K ; -1819 1554 N M 0 0 rr : 0 0 0 sco O ; -1874 1554 N M -22 -5 - 0 10 - 22 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1874 1554 N M -22 -5 - 0 0 0 sco K ; -1852 1549 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1852 1549 N M 0 10 - 0 0 0 sco K ; -1852 1559 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1852 1559 N M 22 -5 - 0 0 0 sco K ; -1874 1554 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2261 1029 N M 0 -110 - 0 0 0 sco K ; -2261 919 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2261 919 N M -55 0 - 0 0 0 sco K ; -2206 919 N M 0 0 rr : 0 0 0 sco O ; -2261 1029 N M 5 -22 - -10 0 - 5 22 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2261 1029 N M 5 -22 - 0 0 0 sco K ; -2266 1007 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2266 1007 N M -10 0 - 0 0 0 sco K ; -2256 1007 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1007 N M 5 22 - 0 0 0 sco K ; -2261 1029 N M 0 0 rr : 0 0 0 sco O ; : 1325 1314 385 41 rc 0 0 0 sco F0_28_35 -Ji -1360 1314 M -1.883 0 (free mode)A -; : 1339 1542 350 41 rc 0 0 0 sco F0_28_35 -Ji -1374 1542 M -1.658 0 (teleop &)A -; : 1313 1583 420 41 rc 0 0 0 sco F0_28_35 -Ji -1348 1583 M -2.016 0 (coord mode)A -; : 0 0 3229 2391 rc -1874 1471 N M 0 -55 - 0 0 0 sco K ; -1874 1416 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1874 1416 N M 332 0 - 0 0 0 sco K ; -2206 1416 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1416 N M 0 55 - 0 0 0 sco K ; -2206 1471 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1471 N M -332 0 - 0 0 0 sco K ; -1874 1471 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -520 698 N M 0 -56 - 0 0 0 sco K ; -520 642 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -520 642 N M 332 0 - 0 0 0 sco K ; -852 642 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -852 642 N M 0 56 - 0 0 0 sco K ; -852 698 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -852 698 N M -332 0 - 0 0 0 sco K ; -520 698 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -520 1582 N M 0 -55 - 0 0 0 sco K ; -520 1527 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -520 1527 N M 332 0 - 0 0 0 sco K ; -852 1527 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -852 1527 N M 0 55 - 0 0 0 sco K ; -852 1582 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -852 1582 N M -332 0 - 0 0 0 sco K ; -520 1582 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1874 1582 N M 0 -55 - 0 0 0 sco K ; -1874 1527 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1874 1527 N M 332 0 - 0 0 0 sco K ; -2206 1527 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1527 N M 0 55 - 0 0 0 sco K ; -2206 1582 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1582 N M -332 0 - 0 0 0 sco K ; -1874 1582 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -520 1223 N M 0 -56 - 0 0 0 sco K ; -520 1167 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -520 1167 N M 332 0 - 0 0 0 sco K ; -852 1167 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -852 1167 N M 0 56 - 0 0 0 sco K ; -852 1223 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -852 1223 N M -332 0 - 0 0 0 sco K ; -520 1223 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -520 1333 N M 0 -55 - 0 0 0 sco K ; -520 1278 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -520 1278 N M 332 0 - 0 0 0 sco K ; -852 1278 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -852 1278 N M 0 55 - 0 0 0 sco K ; -852 1333 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -852 1333 N M -332 0 - 0 0 0 sco K ; -520 1333 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1874 946 N M 0 -55 - 0 0 0 sco K ; -1874 891 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1874 891 N M 332 0 - 0 0 0 sco K ; -2206 891 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 891 N M 0 55 - 0 0 0 sco K ; -2206 946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 946 N M -332 0 - 0 0 0 sco K ; -1874 946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1294 1637 N M 0 -138 - 0 0 0 sco K ; -1294 1499 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1294 1388 N M 0 -138 - 0 0 0 sco K ; -1294 1250 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1294 1637 N M -83 0 - 0 0 0 sco K ; -1211 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1294 1250 N M -83 0 - 0 0 0 sco K ; -1211 1250 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -934 1195 N M -82 0 - 0 0 0 sco K ; -852 1195 N M 0 0 rr : 0 0 0 sco O ; -934 1195 N M -22 -5 - 0 10 - 22 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -934 1195 N M -22 -5 - 0 0 0 sco K ; -912 1190 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -912 1190 N M 0 10 - 0 0 0 sco K ; -912 1200 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -912 1200 N M 22 -5 - 0 0 0 sco K ; -934 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -934 1306 N M -82 0 - 0 0 0 sco K ; -852 1306 N M 0 0 rr : 0 0 0 sco O ; -934 1306 N M -22 -5 - 0 9 - 22 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -934 1306 N M -22 -5 - 0 0 0 sco K ; -912 1301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -912 1301 N M 0 9 - 0 0 0 sco K ; -912 1310 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -912 1310 N M 22 -4 - 0 0 0 sco K ; -934 1306 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 1499 N M 0 -111 - 0 0 0 sco K ; -1653 1388 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 1388 N M 111 0 - 0 0 0 sco K ; -1764 1388 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1764 1388 N M 0 111 - 0 0 0 sco K ; -1764 1499 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1764 1499 N M -111 0 - 0 0 0 sco K ; -1653 1499 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1902 1278 N M -83 0 - 0 0 0 sco K ; -1819 1278 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1819 1278 N M 0 166 - 0 0 0 sco K ; -1819 1444 N M 0 0 rr : 0 0 0 sco O ; -1902 1278 N M -22 -5 - 0 10 - 22 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1902 1278 N M -22 -5 - 0 0 0 sco K ; -1880 1273 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1880 1273 N M 0 10 - 0 0 0 sco K ; -1880 1283 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1880 1283 N M 22 -5 - 0 0 0 sco K ; -1902 1278 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1874 1444 N M -55 0 - 0 0 0 sco K ; -1819 1444 N M 0 0 rr : 0 0 0 sco O ; -1874 1444 N M -22 -5 - 0 10 - 22 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1874 1444 N M -22 -5 - 0 0 0 sco K ; -1852 1439 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1852 1439 N M 0 10 - 0 0 0 sco K ; -1852 1449 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1852 1449 N M 22 -5 - 0 0 0 sco K ; -1874 1444 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1819 1444 N M -55 0 - 0 0 0 sco K ; -1764 1444 N M 0 0 rr : 0 0 0 sco O ; -1819 1444 N M -22 -5 - 0 10 - 22 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1819 1444 N M -22 -5 - 0 0 0 sco K ; -1797 1439 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1797 1439 N M 0 10 - 0 0 0 sco K ; -1797 1449 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1797 1449 N M 22 -5 - 0 0 0 sco K ; -1819 1444 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 1444 N M -83 0 - 0 0 0 sco K ; -1570 1444 N M 0 0 rr : 0 0 0 sco O ; -1653 1444 N M -22 -5 - 0 10 - 22 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1653 1444 N M -22 -5 - 0 0 0 sco K ; -1631 1439 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1631 1439 N M 0 10 - 0 0 0 sco K ; -1631 1449 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1631 1449 N M 22 -5 - 0 0 0 sco K ; -1653 1444 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1570 1444 N M 0 55 - 0 0 0 sco K ; -1570 1499 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -852 670 N M 55 0 - 0 0 0 sco K ; -907 670 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -907 670 N M 0 83 - 0 0 0 sco K ; -907 753 N M 0 0 rr : 0 0 0 sco O ; -852 670 N M 22 5 - 0 -10 - -22 5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -852 670 N M 22 5 - 0 0 0 sco K ; -874 675 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -874 675 N M 0 -10 - 0 0 0 sco K ; -874 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -874 665 N M -22 5 - 0 0 0 sco K ; -852 670 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -907 753 N M 1437 0 - 0 0 0 sco K ; -2344 753 N M 0 0 rr : 0 0 0 sco O ; -907 753 N M 22 5 - 0 -10 - -22 5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -907 753 N M 22 5 - 0 0 0 sco K ; -929 758 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 758 N M 0 -10 - 0 0 0 sco K ; -929 748 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 748 N M -22 5 - 0 0 0 sco K ; -907 753 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -465 1554 N M 0 83 - 0 0 0 sco K ; -465 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1819 1554 N M 0 83 - 0 0 0 sco K ; -1819 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -354 532 N M 0 1326 - 0 0 0 sco K ; -354 1858 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -907 753 N M -608 0 - 0 0 0 sco K ; -299 753 N M 0 0 rr : 0 0 0 sco O ; -299 753 N M 22 5 - 0 -10 - -22 5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -299 753 N M 22 5 - 0 0 0 sco K ; -321 758 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -321 758 N M 0 -10 - 0 0 0 sco K ; -321 748 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -321 748 N M -22 5 - 0 0 0 sco K ; -299 753 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2924 780 N M 0 830 - 0 0 0 sco K ; -2924 1610 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2924 725 N M 0 -193 - 0 0 0 sco K ; -2924 532 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2924 532 N M -2570 0 - 0 0 0 sco K ; -354 532 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2924 1665 N M 0 193 - 0 0 0 sco K ; -2924 1858 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2924 1858 N M -2570 0 - 0 0 0 sco K ; -354 1858 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -934 1637 N M -469 0 - 0 0 0 sco K ; -465 1637 N M 0 0 rr : 0 0 0 sco O ; -934 1637 N M -22 -5 - 0 10 - 22 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -934 1637 N M -22 -5 - 0 0 0 sco K ; -912 1632 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -912 1632 N M 0 10 - 0 0 0 sco K ; -912 1642 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -912 1642 N M 22 -5 - 0 0 0 sco K ; -934 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -465 1637 N M -166 0 - 0 0 0 sco K ; -299 1637 N M 0 0 rr : 0 0 0 sco O ; -465 1637 N M -22 -5 - 0 10 - 22 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -465 1637 N M -22 -5 - 0 0 0 sco K ; -443 1632 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -443 1632 N M 0 10 - 0 0 0 sco K ; -443 1642 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -443 1642 N M 22 -5 - 0 0 0 sco K ; -465 1637 N M 0 0 rr : 0 0 0 sco O ; : 3006 1597 223 41 rc 0 0 0 sco F0_28_35 -Ji -3041 1597 M -2.324 0 (Output)A -; : 3006 1639 223 41 rc 0 0 0 sco F0_28_35 -Ji -3041 1639 M -2.234 0 (to HAL)A -; : 2985 713 244 41 rc 0 0 0 sco F0_28_35 -Ji -3020 713 M -2.131 0 (Feedback)A -; : 2986 754 243 41 rc 0 0 0 sco F0_28_35 -Ji -3021 754 M -2.470 0 (from HAL)A -; : 38 713 455 41 rc 0 0 0 sco F0_28_35 -Ji -73 713 M -1.901 0 (Feedback to)A -; : 47 754 420 41 rc 0 0 0 sco F0_28_35 -Ji -82 754 M -2.108 0 (Kinematics)A -; : 43 1577 350 41 rc 0 0 0 sco F0_28_35 -Ji -78 1577 M -2.733 0 (Commands)A -; : 93 1618 210 41 rc 0 0 0 sco F0_28_35 -Ji -128 1618 M -2.250 0 (from)A -; : 47 1659 420 41 rc 0 0 0 sco F0_28_35 -Ji -82 1659 M -2.108 0 (Kinematics)A -; : 1452 568 630 41 rc 0 0 0 sco F0_28_35 -Ji -1487 568 M -3.311 0 (JOINT CONTROLLER)A -; -LH -pagesave restore -%%PageTrailer - -%%Trailer -%%DocumentNeededFonts: -%%DocumentSuppliedFonts: -/Pscript_Win_Driver /ProcSet findresource dup /terminate get exec -Pscript_Win_Compat dup /terminate get exec -%%EOF diff --git a/docs/src/code/emc2-motion-joint-controller-block-diag.png b/docs/src/code/emc2-motion-joint-controller-block-diag.png deleted file mode 100644 index b1fcc7bb122..00000000000 Binary files a/docs/src/code/emc2-motion-joint-controller-block-diag.png and /dev/null differ diff --git a/docs/src/code/emc2-motion-joint-controller-block-diag.ps b/docs/src/code/emc2-motion-joint-controller-block-diag.ps deleted file mode 100644 index 91d5d123340..00000000000 Binary files a/docs/src/code/emc2-motion-joint-controller-block-diag.ps and /dev/null differ diff --git a/docs/src/code/homing.dot b/docs/src/code/homing.dot deleted file mode 100644 index fc36098a193..00000000000 --- a/docs/src/code/homing.dot +++ /dev/null @@ -1,31 +0,0 @@ -digraph homing { - HOME_IDLE -> HOME_START [label="on EMCMOT_HOME(j)"]; - HOME_START -> HOME_IDLE [label="shared home\nswitch closed"]; - HOME_START -> HOME_SET_SWITCH_POSITION [label="no switch for this axis\nimmediate"]; - HOME_START -> HOME_INITIAL_SEARCH_START [label="otherwise\nimmediate"]; - HOME_INITIAL_BACKOFF_START -> HOME_INITIAL_BACKOFF_WAIT [label="after HOME_DELAY"]; - HOME_INITIAL_BACKOFF_WAIT -> HOME_INITIAL_SEARCH_START [label="home_sw_fall"]; - HOME_INITIAL_SEARCH_START -> HOME_INITIAL_BACKOFF_START [label="after HOME_DELAY\nif home switch closed\nimmediate"]; - HOME_INITIAL_SEARCH_START -> HOME_INITIAL_SEARCH_WAIT [label="after HOME_DELAY\nif home switch open\nimmediate"]; - HOME_INITIAL_SEARCH_WAIT -> HOME_SET_COARSE_POSITION [label="home_sw_rise\nimmediate"]; - HOME_SET_COARSE_POSITION -> HOME_FINAL_BACKOFF_START [label="search and latch are same direction\nimmediate"] - HOME_SET_COARSE_POSITION -> HOME_FALL_SEARCH_START [label="search and latch are opposite direction\nimmediate"] - HOME_FINAL_BACKOFF_START -> HOME_FINAL_BACKOFF_WAIT [label="after HOME_DELAY"]; - HOME_FINAL_BACKOFF_WAIT -> HOME_RISE_SEARCH_START [label="home_sw_fall\nimmediate"]; - HOME_RISE_SEARCH_START -> HOME_RISE_SEARCH_WAIT [label="after HOME_DELAY"]; - HOME_RISE_SEARCH_WAIT -> HOME_INDEX_SEARCH_START [label="home_sw_rise\nHOME_USE_INDEX\nimmediate"] - HOME_RISE_SEARCH_WAIT -> HOME_SET_SWITCH_POSITION [label="home_sw_rise\n!HOME_USE_INDEX\nimmediate"] - HOME_FALL_SEARCH_START -> HOME_FALL_SEARCH_WAIT [label="after HOME_DELAY"]; - HOME_FALL_SEARCH_WAIT -> HOME_INDEX_SEARCH_START [label="home_sw_fall\nHOME_USE_INDEX\nimmediate"] - HOME_FALL_SEARCH_WAIT -> HOME_SET_SWITCH_POSITION [label="home_sw_fall\n!HOME_USE_INDEX\nimmediate"] - HOME_INDEX_SEARCH_START -> HOME_INDEX_SEARCH_WAIT [label="immediate"]; - HOME_INDEX_SEARCH_WAIT -> HOME_SET_INDEX_POSITION [label="index seen\nimmediate"]; - HOME_SET_SWITCH_POSITION -> HOME_FINAL_MOVE_START [label="immediate"]; - HOME_SET_INDEX_POSITION -> HOME_FINAL_MOVE_START [label="immediate"]; - HOME_FINAL_MOVE_START -> HOME_FINAL_MOVE_WAIT [label="after HOME_DELAY"]; - HOME_FINAL_MOVE_WAIT -> HOME_ABORT [label="on limit"]; - HOME_FINAL_MOVE_WAIT -> HOME_FINISHED [label="reached home position"]; - HOME_FINISHED -> HOME_IDLE; - any -> HOME_ABORT [label="hit limit\nend of move"] - HOME_ABORT -> HOME_IDLE; -} diff --git a/docs/src/code/hss.dot b/docs/src/code/hss.dot deleted file mode 100644 index 28d2e4d9357..00000000000 --- a/docs/src/code/hss.dot +++ /dev/null @@ -1,14 +0,0 @@ -digraph net { - IDLE; - START_JOINTS; - START; - WAIT_JOINTS; - - IDLE -> START [label="on EMCMOT_HOME(-1)"]; - START -> START_JOINTS; - START_JOINTS -> WAIT_JOINTS; - WAIT_JOINTS -> START_JOINTS [label="all joints in this\nsequence reached home"]; - START_JOINTS -> IDLE [label="if no joints left"]; - WAIT_JOINTS -> IDLE [label="a joint had an error\non its way home"]; - WAIT_JOINTS -> WAIT_JOINTS; -} diff --git a/docs/src/common/.gitignore b/docs/src/common/.gitignore deleted file mode 100644 index ba62b662ae1..00000000000 --- a/docs/src/common/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -GPLD_Copyright -GPLD_Copyright.tex -Glossary -Glossary.tex -emc2_introduction -emc2_introduction.tex diff --git a/docs/src/common/GPLD_Copyright.txt b/docs/src/common/GPLD_Copyright.txt deleted file mode 100644 index e84676ca33d..00000000000 --- a/docs/src/common/GPLD_Copyright.txt +++ /dev/null @@ -1,357 +0,0 @@ -= Legal Section - -== Copyright Terms - -Copyright (c) 2000-2013 LinuxCNC.org - -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.1 or -any later version published by the Free Software Foundation; with no -Invariant Sections, no Front-Cover Texts, and one Back-Cover Text: -"This LinuxCNC Handbook is the product of several authors writing for -linuxCNC.org. As you find it to be of value in your work, we invite you -to contribute to its revision and growth." A copy of the license is -included in the section entitled "GNU Free Documentation License". If -you do not find the license you may order a copy from Free Software -Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 - -== GNU Free Documentation License - -GNU Free Documentation License Version 1.1, March 2000 - -Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, -Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and -distribute verbatim copies of this license document, but changing it is -not allowed. - -*0. PREAMBLE* - -The purpose of this License is to make a manual, textbook, or other -written document "free" in the sense of freedom: to assure everyone the -effective freedom to copy and redistribute it, with or without -modifying it, either commercially or noncommercially. Secondarily, this -License preserves for the author and publisher a way to get credit for -their work, while not being considered responsible for modifications -made by others. - -This License is a kind of "copyleft", which means that derivative -works of the document must themselves be free in the same sense. It -complements the GNU General Public License, which is a copyleft license -designed for free software. - -We have designed this License in order to use it for manuals for free -software, because free software needs free documentation: a free -program should come with manuals providing the same freedoms that the -software does. But this License is not limited to software manuals; it -can be used for any textual work, regardless of subject matter or -whether it is published as a printed book. We recommend this License -principally for works whose purpose is instruction or reference. - -*1. APPLICABILITY AND DEFINITIONS* - -This License applies to any manual or other work that contains a -notice placed by the copyright holder saying it can be distributed -under the terms of this License. The "Document", below, refers to any -such manual or work. Any member of the public is a licensee, and is -addressed as "you". - -A "Modified Version" of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. - -A "Secondary Section" is a named appendix or a front-matter section of -the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall subject -(or to related matters) and contains nothing that could fall directly -within that overall subject. (For example, if the Document is in part a -textbook of mathematics, a Secondary Section may not explain any -mathematics.) The relationship could be a matter of historical -connection with the subject or with related matters, or of legal, -commercial, philosophical, ethical or political position regarding -them. - -The "Invariant Sections" are certain Secondary Sections whose titles -are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. - -The "Cover Texts" are certain short passages of text that are listed, -as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. - -A "Transparent" copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the general -public, whose contents can be viewed and edited directly and -straightforwardly with generic text editors or (for images composed of -pixels) generic paint programs or (for drawings) some widely available -drawing editor, and that is suitable for input to text formatters or -for automatic translation to a variety of formats suitable for input to -text formatters. A copy made in an otherwise Transparent file format -whose markup has been designed to thwart or discourage subsequent -modification by readers is not Transparent. A copy that is not -"Transparent" is called "Opaque". - -Examples of suitable formats for Transparent copies include plain -ASCII without markup, Texinfo input format, LaTeX input format, SGML or -XML using a publicly available DTD, and standard-conforming simple HTML -designed for human modification. Opaque formats include PostScript, -PDF, proprietary formats that can be read and edited only by -proprietary word processors, SGML or XML for which the DTD and/or -processing tools are not generally available, and the machine-generated -HTML produced by some word processors for output purposes only. - -The "Title Page" means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the material -this License requires to appear in the title page. For works in formats -which do not have any title page as such, "Title Page" means the text -near the most prominent appearance of the work's title, preceding the -beginning of the body of the text. - -*2. VERBATIM COPYING* - -You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no other -conditions whatsoever to those of this License. You may not use -technical measures to obstruct or control the reading or further -copying of the copies you make or distribute. However, you may accept -compensation in exchange for copies. If you distribute a large enough -number of copies you must also follow the conditions in section 3. - -You may also lend copies, under the same conditions stated above, and -you may publicly display copies. - -*3. COPYING IN QUANTITY* - -If you publish printed copies of the Document numbering more than 100, -and the Document's license notice requires Cover Texts, you must -enclose the copies in covers that carry, clearly and legibly, all these -Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts -on the back cover. Both covers must also clearly and legibly identify -you as the publisher of these copies. The front cover must present the -full title with all words of the title equally prominent and visible. -You may add other material on the covers in addition. Copying with -changes limited to the covers, as long as they preserve the title of -the Document and satisfy these conditions, can be treated as verbatim -copying in other respects. - -If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto adjacent -pages. - -If you publish or distribute Opaque copies of the Document numbering -more than 100, you must either include a machine-readable Transparent -copy along with each Opaque copy, or state in or with each Opaque copy -a publicly-accessible computer-network location containing a complete -Transparent copy of the Document, free of added material, which the -general network-using public has access to download anonymously at no -charge using public-standard network protocols. If you use the latter -option, you must take reasonably prudent steps, when you begin -distribution of Opaque copies in quantity, to ensure that this -Transparent copy will remain thus accessible at the stated location -until at least one year after the last time you distribute an Opaque -copy (directly or through your agents or retailers) of that edition to -the public. - -It is requested, but not required, that you contact the authors of the -Document well before redistributing any large number of copies, to give -them a chance to provide you with an updated version of the Document. - -*4. MODIFICATIONS* - -You may copy and distribute a Modified Version of the Document under -the conditions of sections 2 and 3 above, provided that you release the -Modified Version under precisely this License, with the Modified -Version filling the role of the Document, thus licensing distribution -and modification of the Modified Version to whoever possesses a copy of -it. In addition, you must do these things in the Modified Version: - -A. Use in the Title Page (and on the covers, if any) a title distinct -from that of the Document, and from those of previous versions (which -should, if there were any, be listed in the History section of the -Document). You may use the same title as a previous version if the -original publisher of that version gives permission. B. List on the -Title Page, as authors, one or more persons or entities responsible for -authorship of the modifications in the Modified Version, together with -at least five of the principal authors of the Document (all of its -principal authors, if it has less than five). C. State on the Title -page the name of the publisher of the Modified Version, as the -publisher. D. Preserve all the copyright notices of the Document. E. -Add an appropriate copyright notice for your modifications adjacent to -the other copyright notices. F. Include, immediately after the -copyright notices, a license notice giving the public permission to use -the Modified Version under the terms of this License, in the form shown -in the Addendum below. G. Preserve in that license notice the full -lists of Invariant Sections and required Cover Texts given in the -Document's license notice. H. Include an unaltered copy of this -License. I. Preserve the section entitled "History", and its title, and -add to it an item stating at least the title, year, new authors, and -publisher of the Modified Version as given on the Title Page. If there -is no section entitled "History" in the Document, create one stating -the title, year, authors, and publisher of the Document as given on its -Title Page, then add an item describing the Modified Version as stated -in the previous sentence. J. Preserve the network location, if any, -given in the Document for public access to a Transparent copy of the -Document, and likewise the network locations given in the Document for -previous versions it was based on. These may be placed in the "History" -section. You may omit a network location for a work that was published -at least four years before the Document itself, or if the original -publisher of the version it refers to gives permission. K. In any -section entitled "Acknowledgements" or "Dedications", preserve the -section's title, and preserve in the section all the substance and tone -of each of the contributor acknowledgements and/or dedications given -therein. L. Preserve all the Invariant Sections of the Document, -unaltered in their text and in their titles. Section numbers or the -equivalent are not considered part of the section titles. M. Delete any -section entitled "Endorsements". Such a section may not be included in -the Modified Version. N. Do not retitle any existing section as -"Endorsements" or to conflict in title with any Invariant Section. - -If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version's license notice. -These titles must be distinct from any other section titles. - -You may add a section entitled "Endorsements", provided it contains -nothing but endorsements of your Modified Version by various -parties--for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. - -You may add a passage of up to five words as a Front-Cover Text, and a -passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of Front-Cover -Text and one of Back-Cover Text may be added by (or through -arrangements made by) any one entity. If the Document already includes -a cover text for the same cover, previously added by you or by -arrangement made by the same entity you are acting on behalf of, you -may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. - -The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. - -*5. COMBINING DOCUMENTS* - -You may combine the Document with other documents released under this -License, under the terms defined in section 4 above for modified -versions, provided that you include in the combination all of the -Invariant Sections of all of the original documents, unmodified, and -list them all as Invariant Sections of your combined work in its -license notice. - -The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name but -different contents, make the title of each such section unique by -adding at the end of it, in parentheses, the name of the original -author or publisher of that section if known, or else a unique number. -Make the same adjustment to the section titles in the list of Invariant -Sections in the license notice of the combined work. - -In the combination, you must combine any sections entitled "History" -in the various original documents, forming one section entitled -"History"; likewise combine any sections entitled "Acknowledgements", -and any sections entitled "Dedications". You must delete all sections -entitled "Endorsements." - -*6. COLLECTIONS OF DOCUMENTS* - -You may make a collection consisting of the Document and other -documents released under this License, and replace the individual -copies of this License in the various documents with a single copy that -is included in the collection, provided that you follow the rules of -this License for verbatim copying of each of the documents in all other -respects. - -You may extract a single document from such a collection, and -distribute it individually under this License, provided you insert a -copy of this License into the extracted document, and follow this -License in all other respects regarding verbatim copying of that -document. - -*7. AGGREGATION WITH INDEPENDENT WORKS* - -A compilation of the Document or its derivatives with other separate -and independent documents or works, in or on a volume of a storage or -distribution medium, does not as a whole count as a Modified Version of -the Document, provided no compilation copyright is claimed for the -compilation. Such a compilation is called an "aggregate", and this -License does not apply to the other self-contained works thus compiled -with the Document, on account of their being thus compiled, if they are -not themselves derivative works of the Document. - -If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one quarter -of the entire aggregate, the Document's Cover Texts may be placed on -covers that surround only the Document within the aggregate. Otherwise -they must appear on covers around the whole aggregate. - -*8. TRANSLATION* - -Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of section 4. -Replacing Invariant Sections with translations requires special -permission from their copyright holders, but you may include -translations of some or all Invariant Sections in addition to the -original versions of these Invariant Sections. You may include a -translation of this License provided that you also include the original -English version of this License. In case of a disagreement between the -translation and the original English version of this License, the -original English version will prevail. - -*9. TERMINATION* - -You may not copy, modify, sublicense, or distribute the Document -except as expressly provided for under this License. Any other attempt -to copy, modify, sublicense or distribute the Document is void, and -will automatically terminate your rights under this License. However, -parties who have received copies, or rights, from you under this -License will not have their licenses terminated so long as such parties -remain in full compliance. - -*10. FUTURE REVISIONS OF THIS LICENSE* - -The Free Software Foundation may publish new, revised versions of the -GNU Free Documentation License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in -detail to address new problems or concerns. See -http://www.gnu.org/copyleft/. - -Each version of the License is given a distinguishing version number. -If the Document specifies that a particular numbered version of this -License "or any later version" applies to it, you have the option of -following the terms and conditions either of that specified version or -of any later version that has been published (not as a draft) by the -Free Software Foundation. If the Document does not specify a version -number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. - -*ADDENDUM*: How to use this License for your documents - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and license -notices just after the title page: - -Copyright (c) YEAR YOUR NAME. Permission is granted to copy, -distribute and/or modify this document under the terms of the GNU Free -Documentation License, Version 1.1 or any later version published by -the Free Software Foundation; with the Invariant Sections being LIST -THEIR TITLES, with the Front-Cover Texts being LIST, and with the -Back-Cover Texts being LIST. A copy of the license is included in the -section entitled "GNU Free Documentation License". - -If you have no Invariant Sections, write "with no Invariant Sections" -instead of saying which ones are invariant. If you have no Front-Cover -Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being -LIST"; likewise for Back-Cover Texts. - -If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, to -permit their use in free software. - diff --git a/docs/src/common/GPLD_Copyright_fr.txt b/docs/src/common/GPLD_Copyright_fr.txt deleted file mode 100644 index 58ab0b36895..00000000000 --- a/docs/src/common/GPLD_Copyright_fr.txt +++ /dev/null @@ -1,360 +0,0 @@ -= Legal Section - -Ce document n'est pas traduit en raison de la complexité de la -validation des documents juridiques. Vous trouverez sur ce site -plus d'information: http://www.gnu.org/licenses/licenses.fr.html - -== Copyright Terms - -Copyright (c) 2000-2012 LinuxCNC.org - -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.1 or -any later version published by the Free Software Foundation; with no -Invariant Sections, no Front-Cover Texts, and one Back-Cover Text: -"This LinuxCNC Handbook is the product of several authors writing for -linuxCNC.org. As you find it to be of value in your work, we invite you -to contribute to its revision and growth." A copy of the license is -included in the section entitled "GNU Free Documentation License". If -you do not find the license you may order a copy from Free Software -Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 - -== GNU Free Documentation License - -GNU Free Documentation License Version 1.1, March 2000 - -Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, -Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and -distribute verbatim copies of this license document, but changing it is -not allowed. - -*0. PREAMBLE* - -The purpose of this License is to make a manual, textbook, or other -written document "free" in the sense of freedom: to assure everyone the -effective freedom to copy and redistribute it, with or without -modifying it, either commercially or noncommercially. Secondarily, this -License preserves for the author and publisher a way to get credit for -their work, while not being considered responsible for modifications -made by others. - -This License is a kind of "copyleft", which means that derivative -works of the document must themselves be free in the same sense. It -complements the GNU General Public License, which is a copyleft license -designed for free software. - -We have designed this License in order to use it for manuals for free -software, because free software needs free documentation: a free -program should come with manuals providing the same freedoms that the -software does. But this License is not limited to software manuals; it -can be used for any textual work, regardless of subject matter or -whether it is published as a printed book. We recommend this License -principally for works whose purpose is instruction or reference. - -*1. APPLICABILITY AND DEFINITIONS* - -This License applies to any manual or other work that contains a -notice placed by the copyright holder saying it can be distributed -under the terms of this License. The "Document", below, refers to any -such manual or work. Any member of the public is a licensee, and is -addressed as "you". - -A "Modified Version" of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. - -A "Secondary Section" is a named appendix or a front-matter section of -the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall subject -(or to related matters) and contains nothing that could fall directly -within that overall subject. (For example, if the Document is in part a -textbook of mathematics, a Secondary Section may not explain any -mathematics.) The relationship could be a matter of historical -connection with the subject or with related matters, or of legal, -commercial, philosophical, ethical or political position regarding -them. - -The "Invariant Sections" are certain Secondary Sections whose titles -are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. - -The "Cover Texts" are certain short passages of text that are listed, -as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. - -A "Transparent" copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the general -public, whose contents can be viewed and edited directly and -straightforwardly with generic text editors or (for images composed of -pixels) generic paint programs or (for drawings) some widely available -drawing editor, and that is suitable for input to text formatters or -for automatic translation to a variety of formats suitable for input to -text formatters. A copy made in an otherwise Transparent file format -whose markup has been designed to thwart or discourage subsequent -modification by readers is not Transparent. A copy that is not -"Transparent" is called "Opaque". - -Examples of suitable formats for Transparent copies include plain -ASCII without markup, Texinfo input format, LaTeX input format, SGML or -XML using a publicly available DTD, and standard-conforming simple HTML -designed for human modification. Opaque formats include PostScript, -PDF, proprietary formats that can be read and edited only by -proprietary word processors, SGML or XML for which the DTD and/or -processing tools are not generally available, and the machine-generated -HTML produced by some word processors for output purposes only. - -The "Title Page" means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the material -this License requires to appear in the title page. For works in formats -which do not have any title page as such, "Title Page" means the text -near the most prominent appearance of the work's title, preceding the -beginning of the body of the text. - -*2. VERBATIM COPYING* - -You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no other -conditions whatsoever to those of this License. You may not use -technical measures to obstruct or control the reading or further -copying of the copies you make or distribute. However, you may accept -compensation in exchange for copies. If you distribute a large enough -number of copies you must also follow the conditions in section 3. - -You may also lend copies, under the same conditions stated above, and -you may publicly display copies. - -*3. COPYING IN QUANTITY* - -If you publish printed copies of the Document numbering more than 100, -and the Document's license notice requires Cover Texts, you must -enclose the copies in covers that carry, clearly and legibly, all these -Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts -on the back cover. Both covers must also clearly and legibly identify -you as the publisher of these copies. The front cover must present the -full title with all words of the title equally prominent and visible. -You may add other material on the covers in addition. Copying with -changes limited to the covers, as long as they preserve the title of -the Document and satisfy these conditions, can be treated as verbatim -copying in other respects. - -If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto adjacent -pages. - -If you publish or distribute Opaque copies of the Document numbering -more than 100, you must either include a machine-readable Transparent -copy along with each Opaque copy, or state in or with each Opaque copy -a publicly-accessible computer-network location containing a complete -Transparent copy of the Document, free of added material, which the -general network-using public has access to download anonymously at no -charge using public-standard network protocols. If you use the latter -option, you must take reasonably prudent steps, when you begin -distribution of Opaque copies in quantity, to ensure that this -Transparent copy will remain thus accessible at the stated location -until at least one year after the last time you distribute an Opaque -copy (directly or through your agents or retailers) of that edition to -the public. - -It is requested, but not required, that you contact the authors of the -Document well before redistributing any large number of copies, to give -them a chance to provide you with an updated version of the Document. - -*4. MODIFICATIONS* - -You may copy and distribute a Modified Version of the Document under -the conditions of sections 2 and 3 above, provided that you release the -Modified Version under precisely this License, with the Modified -Version filling the role of the Document, thus licensing distribution -and modification of the Modified Version to whoever possesses a copy of -it. In addition, you must do these things in the Modified Version: -A. Use in the Title Page (and on the covers, if any) a title distinct -from that of the Document, and from those of previous versions (which -should, if there were any, be listed in the History section of the -Document). You may use the same title as a previous version if the -original publisher of that version gives permission. B. List on the -Title Page, as authors, one or more persons or entities responsible for -authorship of the modifications in the Modified Version, together with -at least five of the principal authors of the Document (all of its -principal authors, if it has less than five). C. State on the Title -page the name of the publisher of the Modified Version, as the -publisher. D. Preserve all the copyright notices of the Document. E. -Add an appropriate copyright notice for your modifications adjacent to -the other copyright notices. F. Include, immediately after the -copyright notices, a license notice giving the public permission to use -the Modified Version under the terms of this License, in the form shown -in the Addendum below. G. Preserve in that license notice the full -lists of Invariant Sections and required Cover Texts given in the -Document's license notice. H. Include an unaltered copy of this -License. I. Preserve the section entitled "History", and its title, and -add to it an item stating at least the title, year, new authors, and -publisher of the Modified Version as given on the Title Page. If there -is no section entitled "History" in the Document, create one stating -the title, year, authors, and publisher of the Document as given on its -Title Page, then add an item describing the Modified Version as stated -in the previous sentence. J. Preserve the network location, if any, -given in the Document for public access to a Transparent copy of the -Document, and likewise the network locations given in the Document for -previous versions it was based on. These may be placed in the "History" -section. You may omit a network location for a work that was published -at least four years before the Document itself, or if the original -publisher of the version it refers to gives permission. K. In any -section entitled "Acknowledgements" or "Dedications", preserve the -section's title, and preserve in the section all the substance and tone -of each of the contributor acknowledgements and/or dedications given -therein. L. Preserve all the Invariant Sections of the Document, -unaltered in their text and in their titles. Section numbers or the -equivalent are not considered part of the section titles. M. Delete any -section entitled "Endorsements". Such a section may not be included in -the Modified Version. N. Do not retitle any existing section as -"Endorsements" or to conflict in title with any Invariant Section. - -If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version's license notice. -These titles must be distinct from any other section titles. - -You may add a section entitled "Endorsements", provided it contains -nothing but endorsements of your Modified Version by various -parties--for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. - -You may add a passage of up to five words as a Front-Cover Text, and a -passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of Front-Cover -Text and one of Back-Cover Text may be added by (or through -arrangements made by) any one entity. If the Document already includes -a cover text for the same cover, previously added by you or by -arrangement made by the same entity you are acting on behalf of, you -may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. - -The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. - -*5. COMBINING DOCUMENTS* - -You may combine the Document with other documents released under this -License, under the terms defined in section 4 above for modified -versions, provided that you include in the combination all of the -Invariant Sections of all of the original documents, unmodified, and -list them all as Invariant Sections of your combined work in its -license notice. - -The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name but -different contents, make the title of each such section unique by -adding at the end of it, in parentheses, the name of the original -author or publisher of that section if known, or else a unique number. -Make the same adjustment to the section titles in the list of Invariant -Sections in the license notice of the combined work. - -In the combination, you must combine any sections entitled "History" -in the various original documents, forming one section entitled -"History"; likewise combine any sections entitled "Acknowledgements", -and any sections entitled "Dedications". You must delete all sections -entitled "Endorsements." - -*6. COLLECTIONS OF DOCUMENTS* - -You may make a collection consisting of the Document and other -documents released under this License, and replace the individual -copies of this License in the various documents with a single copy that -is included in the collection, provided that you follow the rules of -this License for verbatim copying of each of the documents in all other -respects. - -You may extract a single document from such a collection, and -distribute it individually under this License, provided you insert a -copy of this License into the extracted document, and follow this -License in all other respects regarding verbatim copying of that -document. - -*7. AGGREGATION WITH INDEPENDENT WORKS* - -A compilation of the Document or its derivatives with other separate -and independent documents or works, in or on a volume of a storage or -distribution medium, does not as a whole count as a Modified Version of -the Document, provided no compilation copyright is claimed for the -compilation. Such a compilation is called an "aggregate", and this -License does not apply to the other self-contained works thus compiled -with the Document, on account of their being thus compiled, if they are -not themselves derivative works of the Document. - -If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one quarter -of the entire aggregate, the Document's Cover Texts may be placed on -covers that surround only the Document within the aggregate. Otherwise -they must appear on covers around the whole aggregate. - -*8. TRANSLATION* - -Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of section 4. -Replacing Invariant Sections with translations requires special -permission from their copyright holders, but you may include -translations of some or all Invariant Sections in addition to the -original versions of these Invariant Sections. You may include a -translation of this License provided that you also include the original -English version of this License. In case of a disagreement between the -translation and the original English version of this License, the -original English version will prevail. - -*9. TERMINATION* - -You may not copy, modify, sublicense, or distribute the Document -except as expressly provided for under this License. Any other attempt -to copy, modify, sublicense or distribute the Document is void, and -will automatically terminate your rights under this License. However, -parties who have received copies, or rights, from you under this -License will not have their licenses terminated so long as such parties -remain in full compliance. - -*10. FUTURE REVISIONS OF THIS LICENSE* - -The Free Software Foundation may publish new, revised versions of the -GNU Free Documentation License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in -detail to address new problems or concerns. See -http://www.gnu.org/copyleft/. - -Each version of the License is given a distinguishing version number. -If the Document specifies that a particular numbered version of this -License "or any later version" applies to it, you have the option of -following the terms and conditions either of that specified version or -of any later version that has been published (not as a draft) by the -Free Software Foundation. If the Document does not specify a version -number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. - -*ADDENDUM*: How to use this License for your documents - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and license -notices just after the title page: - -Copyright (c) YEAR YOUR NAME. Permission is granted to copy, -distribute and/or modify this document under the terms of the GNU Free -Documentation License, Version 1.1 or any later version published by -the Free Software Foundation; with the Invariant Sections being LIST -THEIR TITLES, with the Front-Cover Texts being LIST, and with the -Back-Cover Texts being LIST. A copy of the license is included in the -section entitled "GNU Free Documentation License". - -If you have no Invariant Sections, write "with no Invariant Sections" -instead of saying which ones are invariant. If you have no Front-Cover -Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being -LIST"; likewise for Back-Cover Texts. - -If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, to -permit their use in free software. - diff --git a/docs/src/common/Getting_EMC_es.txt b/docs/src/common/Getting_EMC_es.txt deleted file mode 100644 index 36140eef71d..00000000000 --- a/docs/src/common/Getting_EMC_es.txt +++ /dev/null @@ -1,270 +0,0 @@ -= Sobre LinuxCNC - -== El Software - -*LinuxCNC (El “Enhanced Machine Controlâ€) es un software para computador que permite el control de maquinas herramienta tales como fresadoras, tornos, robots tipo puma o scara y cualquier otro tipo de maquina de hasta 9 ejes. -*LinuxCNC es software libre con un código fuente abierto. Las versiones actuales de EMC están enteramente licenciadas bajo las licencia GPL y LGPL (General Public License y Lesser GNU General Public License) -*LinuxCNC proporciona: -** una interfase gráfica (se puede elegir entre varias interfaces diferentes) -** un interprete para código G (el lenguaje de programación de maquina RS-274) -**un planeador de movimientos en tiempo real con análisis de instrucción siguiente -** operación de electrónica de maquina de bajo nivel como sensores y controladores para motores -** una capa de aislamiento sencilla de usar que permite crear rápidamente configuraciones únicas para cada maquina -** un PLC basado en software programable con lógica de escalera -**una instalación sencilla con un Live-CD -* No provee capacidades de dibujo (CAD - Dibujo asistido por computadora) o generación de código G a partir de dibujos (CAM – Manufactura asistida por computadora). -* Puede mover 9 ejes simultáneos y soportar una variedad de interfaces. -* El control puede operar servomecanismos verdaderos (analógicos o por PWM) con retroalimentación del el lazo cerrado por el software LinuxCNC en la computadora, o puede operar en lazo abierto con motores a pasos o “paso-servos†-*Algunas características del controlador de movimientos: compensación de radio y largo, desviación de la trayectoria limitada a una tolerancia especificada, roscado en torno, movimientos de ejes sincronizados, velocidad de alimentación adaptiva, velocidad de alimentación controlada por el operador, control de velocidad constante. -*Soporte para sistemas no cartesianos a través de un modulo de cinemática. Algunas de las arquitecturas disponibles son hexapodos (plataformas Stewart y conceptos similares) y sistemas con juntas rotatorias para proporcionar movimiento como en los robots PUMA o SCARA. -*LinuxCNC se ejecuta en Linux usando exenciones de tiempo real. - -== El Sistema Operativo - -Ubuntu fue seleccionado porque encaja perfectamente en la visión de fuente abierta del LinuxCNC: - - - Ubuntu sera siempre libre de cargo, y no se tiene que pagar extra por la “versión empresarialâ€, nosotros hacemos disponible nuestro mejor trabajo para cualquiera en los mismos términos de gratuidad. - - LinuxCNC esta acoplado con las versiones con soporte extendido (LTS) de Ubuntu, lo que provee soporte y arreglos de seguridad por parte del equipo de Ubuntu por 3 – 5 años. - - Ubuntu utiliza lo mejor en traducciones y fácil acceso que la comunidad de software libre tiene para ofrecer, para hacer Ubuntu practico de usar para la mayor cantidad de gente posible. - - La comunidad de Ubuntu esta completamente alineada a los principios de desarrollo del software libre; Nosotros fomentamos el uso por parte de la gente de software de fuente abierta, su mejoramiento y su distribución. - -== Obtener Ayuda - -=== IRC - -IRC (Internet Relay Chat) es un protocolo de comunicaciones en tiempo real basado en texto. -Permite una conexión en vivo con otros usuarios del LinuxCNC. -El canal del LinuxCNC en IRC es #linuxcnc en freenode. - -La manera mas simple de utilizar IRC es utilizar el cliente integrado en la siguiente pagina de internet, http://www.linuxcnc.org/index.php/english/community[pagina]. - -Reglas de comportamiento en IRC:: - - - Pregunte cuestiones especificas... Evite realizar preguntas como: “¿Puede alguien ayudarme?â€. - - Si usted es realmente nuevo en la materia, piense un poco en lo que va a preguntar antes de comenzar a escribir. Asegúrese de proporcionar suficiente información así alguien podría ayudarle a resolver su pregunta. - - Sea paciente mientras espera por una respuesta, en algunas ocasiones toma tiempo formular la respuesta o todos los otros usuarios pueden estar ocupados trabajando en algo mas. - - Inicie sesión en IRC con un único nombre así la gente sabrá quien es usted. Si utiliza el cliente Java, utilice el mismo apodo cada vez que entre. Esto ayuda a la gente a recordar quien es usted y esto reduce el gasto de tiempo de las dos partes. - - La mayoría de los usuarios del canal linuxcnc en IRC son anglo parlantes, tendrá mas probabilidad de éxito si formula sus preguntas en el idioma ingles. - -Compartiendo Archivos:: - -La forma mas común de compartir archivos en IRC es subir el archivo a uno de los siguientes servidores y pegar el enlace (puede utilizar servidores similares). - -* 'Para texto' - http://pastebin.com/ , http://pastie.org/, https://gist.github.com/ - -* 'Para Imagenes' - http://imagebin.org/ , http://imgur.com/ , http://bayimg.com/ - -* 'Para archivos' - https://filedropper.com/ , http://filefactory.com/ , http://1fichier.com/ - -=== Lista de Correo - -Una Lista de Correo es una forma para preguntar a todos los miembros de la lista y obtener una respuesta a su conveniencia. Usted obtiene una mejor exposición de su pregunta utilizando la Lista de Correo que utilizando IRC, pero las respuestas pueden tardar mas tiempo. En pocas palabras usted manda un correo electrónico con su pregunta a la lista de correo y recibe respuestas individuales o un compilado diario de respuestas individuales, dependiendo de como configure su cuenta. - -Información sobre la lista de correo de LinuxCNC se encuentra en: https://lists.sourceforge.net/lists/listinfo/emc-users [emc-users lista de correo] - -=== LinuxCNC Wiki - -Un sitio Wiki es un sitio de internet mantenido por los usuarios en donde todos pueden modificar o agregar información. - -El sitio wiki mantenido por los usuarios del LinuxCNC contiene mucha información y consejos y se encuentra en: - -link:http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl[wiki.linuxcnc.org] - -== Obteniendo LinuxCNC - -=== Descarga Normal - -Descargue el Live-CD de: - -http://www.linuxcnc.org/[La pagina principal del LinuxCNC www.linuxcnc.org] - -y siga el vinculo para descarga. - -=== Descarga Multi-sesion (((Descarga Multi-sesion))) - -Si el archivo es demasiado grande para ser descargado en una sesión debido a una conexión a internet lenta o defectuosa, utilice `wget` (o bittorrent) para permitir restaurar la descarga despues de una interrupción. - -Linux Wget:: (((Linux Wget))) -Abra una ventana de terminal. En Ubuntu valla a Applications/Accessories/Terminal. -Utilice 'cd' para cambiar al directorio donde desea guardar el ISO. -Si lo necesita utilice 'mkdir' para crear un nuevo directorio. -+ -Note que los nombres de los archivos pueden cambiar, usted debería de ir a -http://www.linuxcnc.org/[http://www.linuxcnc.org/] -y seguir el vinculo de descarga para obtener el nombre actual del archivo. -En la mayoría de los buscadores usted puede hacer clic derecho en el vinculo y seleccionar la opción de copiar la locación del vinculo, posteriormente pegue esa locación en la ventana de la terminal utilizando un clic del botón derecho y seleccionando la opción pegar. - -.Ubuntu 10.04 Lucid Lynx y LinuxCNC (versión actual) -********************************************************************* -Para obtener la versión Ubuntu 10.04 Lucid Lynx, -copie una de las siguientes direcciones en la ventana de terminal y presione la tecla enter: - -Para el espejo en USA: -wget http://www.linuxcnc.org/iso/ubuntu-10.04-linuxcnc3-i386.iso - -Para el espejo en Europa: -wget http://dsplabs.upt.ro/~juve/emc/get.php?file=ubuntu-10.04-linuxcnc3-i386.iso - -La md5sum del archivo anterior es: '5283b33b7e23e79da1ee561ad476b05f' -********************************************************************* -+ -Para continuar una descarga parcial que fue interrumpida -agregue la opción -c al comando wget: -+ -wget -c http://www.linuxcnc.org/iso/ubuntu-10.04-linuxcnc1-i386.iso -+ -Para detener una descarga en progreso utilice Ctrl-C o cierre la pantalla de la terminal. -+ -.Ubuntu 8.04 Hardy Heron y LinuxCNC (antiguo) -********************************************************************* -Si usted requiere una versión antigua de Ubuntu, usted puede descargar Ubuntu 8.04. -La imagen CD siguiente tiene el antiguo emc 2.3.x en ella, pero puede ser actualizada a -la versión 2.4.x siguiendo las instrucciones en el wiki de LinuxCNC.org que se encuentran aquí: -http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?UpdatingTo2.4 - -Para el espejo en USA: -wget http://www.linuxcnc.org/iso/ubuntu-8.04-desktop-emc2-aj13-i386.iso - -Para el espejo en Europa: -wget http://dsplabs.upt.ro/~juve/emc/get.php?file=ubuntu-8.04-desktop-emc2-aj13-i386.iso - -La md5sum del archivo anterior es: '1bab052ec879f941628927c988863f14' -********************************************************************* -+ -Cuando la descarga sea completada usted encontrara el archivo ISO en el -directorio que selecciono. A continuación quemaremos el CD. - -Wget Windows:: (((Wget Windows))) -El programa wget se encuentra también disponible para Windows descargado de: -+ -http://gnuwin32.sourceforge.net/packages/wget.htm -+ -Siga las instrucciones de la pagina de internet para descargar e instalar la versión de Windows -del programa wget. -+ -Para correr wget abra una ventana de linea de comandos. -+ -En la mayoría de las instalaciones de Windows esto se hace en Programs/Accessories/Command Prompt -+ -Primero usted tiene que cambiarse al directorio donde wget esta instalado. -+ -Típicamente es en C:\Program Files\GnuWin32\bin por lo tanto en la ventana de la linea de comandos escriba: -+ ---- -'cd C:\Program Files\GnuWin32\bin' ---- -+ -y el prompt debería de cambiar a: 'C:\Program Files\GnuWin32\bin>' -+ -Escriba el comando wget en la ventana de la linea de comandos como se describió en las secciones anteriores dependiendo -de la versión de LinuxCNC que requiera y presione enter. - -=== Quemando el CD de LinuxCNC - -LinuxCNC es distribuido como una imagen de CD con un formato llamado ISO. -Para instalar LinuxCNC, usted necesitara primero quemar el archivo ISO en un CD. -Usted necesita un quemador CD/DVD que funcione y un CD en blanco de 80 minutos (700Mb) para hacer esto. -Si la escritura del CD falla trate de nuevo con una velocidad de escritura mas baja. - -Verificando la integridad del CD con md5sum en Linux:: - -Antes de quemar el CD, es altamente recomendable que verifique el md5sum (hash) -del archivo .iso. -+ -Abra una ventana de terminal. -En Ubuntu valla a Applications/Accessories/Terminal. -+ -Cambie el directorio a donde el archivo ISO fue descargado. -+ ---- -cd download_directory ---- -+ -Ejecute el comando de verificación de md5sum con el nombre del archivo guardado. -+ ---- -md5sum -b ubuntu-10.04-linuxcnc1-i386.iso ---- -+ -El comando md5sum deberá de imprimir una linea sencilla después de calcular el hash. - -En computadoras lentas esto puede tardar un minuto o dos. -+ ---- -5283b33b7e23e79da1ee561ad476b05f *ubuntu-10.04-linuxcnc1-i386.iso ---- -+ -Ahora compare este valor con el que realmente debería de ser. -+ -Si descarga el md5sum asi como el iso, -usted puede preguntar al programa md5sum el hacer la revisión por usted. -En el mismo directorio: -+ ---- -md5sum -c ubuntu-10.04-linuxcnc1-i386.iso.md5 ---- -+ -Si todo va bien despues de una pausa la terminal deveria de imprimir: -+ ---- -ubuntu-10.04-linuxcnc1-i386.iso: OK ---- -+ - -Quemando el archivo ISO en Linux:: - - . Inserte un CD en blanco en su quemador. Una ventana de 'CD/DVD creador' o 'Seleccione tipo de disco' aparecera seleccione no hacer nada y cierre la ventana. - . Busque la imagen Iso en el buscador de archivos. - . Haga click derecro sobre la imagen ISO y seleccione la opcion escrivir a disco. - . Seleccione la velocidad de escritura. Si se esta quemando un disco Live CD de Ubuntu seleccione la velocidad mas baja posible. - . Inicie el proceso de quemado. - . Si una ventana con el titulo 'seleccione el nombre para la imagen de disco' aparece, solo seleccione la opcion OK. - -Verificar md5sum con Windows:: - -Antes de quemar el CD, es altamente recomendable que verifique el md5sum (hash) -del archivo .iso que se descargo. -+ -Windows no incluye un programa de verificacion de mdsum. Se tendra que descargar e instalar uno para provar la md5sum. mas informacion puede ser encontrada en: -+ -https://help.ubuntu.com/community/HowToMD5SUM - -Quemando el archivo ISO en Windows:: - - . Descargue e instale Infra Recorder, el cual es un programa para quemar imagenes de disco gratuito y libre: http://infrarecorder.org/ - . Inserte un CD en blanco en la unidad de disco y seleccione la opcion de hacer nada o cancelar si alguna pantalla emergente aparece. - . Abra Infra Recorder, seleccione la opcion 'Acciones' del menu, posteriormente seleccione 'Quemar Imagen'. - -=== Probando LinuxCNC - -Con el Live CD en la unidad CD/DVD apague la computadora y enciéndala de nuevo. -Esto hará que la computadora arranque desde el Live CD. -Una vez que la computadora haya arrancado usted puede probar LinuxCNC sin instalarlo. -Usted no puede crear configuraciones personalizadas o modificar la mayoría de los -parámetros del sistema tales como la resolución de pantalla amenos que instale LinuxCNC. - -Para probar LinuxCNC desde el menú de Applications/CNC seleccione LinuxCNC. Entonces seleccione -una configuración sim (simulador) para hacer pruebas. - -Para revisar si su computadora es candidata apta para la generación de pasos por software -corra una prueba de latencia como se describe en la sección (<>) - -=== Instalar LinuxCNC - -Si le gustan los resultados que obtuvo probando LinuxCNC, solo haga clic en el icono de instalación del escritorio, -conteste unas cuantas preguntas (su nombre, zona horaria, contraseña) y la instalación se completara en unos pocos minutos. Asegúrese de conservar el nombre y la contraseña que introdujo. Una vez que el proceso de instalación concluya y usted se encuentre en linea el administrador de actualizaciones le permitirá actualizar a la ultima versión estable de LinuxCNC. - -=== Actualizaciones a LinuxCNC(((Actualizaciones a LinuxCNC))) - -Con la instalación normal el agente de actualizaciones le notificara de las actualizaciones disponibles para LinuxCNC cuando se conecte a internet, y usted podrá actualizar sin necesidad de conocer mas sobre LINUX. - -Si usted desea actualizar a 10.04 de 8.04 se recomienda una instalación limpia de EMC. -Es correcto actualizar todo cuando se le pregunte por hacerlo exepto el sistema operativo. - -Advertencia: No actualice Ubuntu a una versión que no sea LTS (Por ejemplo de 8.04 a 8.10) lo anterior arruinara su instalación de EMC y no podrá utilizarlo. - -=== Problemas con la instalación - -En casos raros deberá de resetear el BIOS a su configuración de fabrica si durante el proceso de instalación desde el Live CD el disco duro no es detectado correctamente. - -// vim: set syntax=asciidoc: diff --git a/docs/src/common/Getting_LinuxCNC.txt b/docs/src/common/Getting_LinuxCNC.txt deleted file mode 100644 index e9ccf04da7a..00000000000 --- a/docs/src/common/Getting_LinuxCNC.txt +++ /dev/null @@ -1,321 +0,0 @@ -= About LinuxCNC - -== The Software - -* LinuxCNC (the Enhanced Machine Control) is a software system for computer - control of machine tools such as milling machines and lathes, robots - such as puma and scara and other computer controlled machines up to 9 axes. -* LinuxCNC is free software with open source code. Current versions of LinuxCNC - are entirely licensed under the GNU General Public License and Lesser - GNU General Public License (GPL and LGPL) -* LinuxCNC provides: -** a graphical user interface (actually several interfaces to choose from) -** an interpreter for 'G-code' (the RS-274 machine tool programming language) -** a realtime motion planning system with look-ahead -** operation of low-level machine electronics such as sensors and motor drives -** an easy to use 'breadboard' layer for quickly creating a unique - configuration for your machine -** a software PLC programmable with ladder diagrams -** easy installation with a Live-CD -* It does not provide drawing (CAD - Computer Aided Design) or G-code - generation from the drawing (CAM - Computer Automated Manufacturing) - functions. -* It can simultaneously move up to 9 axes and supports a variety of - interfaces. -* The control can operate true servos (analog or PWM) with the feedback - loop closed by the LinuxCNC software at the computer, or open loop with - step-servos or stepper motors. -* Motion control features include: cutter radius and length - compensation, path deviation limited to a specified tolerance, lathe - threading, synchronized axis motion, adaptive feedrate, operator feed - override, and constant velocity control. -* Support for non-Cartesian motion systems is provided via custom - kinematics modules. Available architectures include hexapods (Stewart - platforms and similar concepts) and systems with rotary joints to - provide motion such as PUMA or SCARA robots. -* LinuxCNC runs on Linux using real time extensions. - -== The Operating System - -Ubuntu has been chosen because it fits perfectly into the Open Source -views of LinuxCNC: - - - Ubuntu will always be free of charge, and there is no extra fee for - the 'enterprise edition', we make our very best work available to - everyone on the same Free terms. - - LinuxCNC is paired with the LTS versions of Ubuntu which provide support - and security fixes from the Ubuntu team for 3 - 5 years. - - Ubuntu uses the very best in translations and accessibility - infrastructure that the Free Software community has to offer, to make - Ubuntu usable for as many people as possible. - - The Ubuntu community is entirely committed to the principles of free - software development; we encourage people to use open source software, - improve it and pass it on. - -== Getting Help - -=== IRC - -IRC stands for Internet Relay Chat. -It is a live connection to other LinuxCNC users. -The LinuxCNC IRC channel is #linuxcnc on freenode. - -The simplest way to get on the IRC is to use -the embedded java client on this -http://www.linuxcnc.org/index.php/english/community[page]. - -Some IRC etiquette:: - - - Ask specific questions... Avoid questions like "Can someone help me?". - - If you're really new to all this, think a bit about your question - before typing it. Make sure you give enough information so - someone can solve your question. - - Have some patience when waiting for an answer, sometimes it takes a - while to formulate an answer or everyone might be busy working or - something. - - Set up your IRC account with your unique name so people will know who - you are. If you use the java client, use the same name every time you - log in. This helps people remember who you are and if you have been on - before many will remember the past discussions which - saves time on both ends. - -Sharing Files:: -The most common way to share files on the IRC is to upload the file -to one of the following or a similar service and paste the link: - -* 'For text' - http://pastebin.com/ , http://pastie.org/, https://gist.github.com/ - -* 'For pictures' - http://imagebin.org/ , http://imgur.com/ , http://bayimg.com/ - -* 'For files' - https://filedropper.com/ , http://filefactory.com/ , http://1fichier.com/ - -=== Mailing List - -An Internet Mailing List is a way to put questions out for everyone on -that list to see and answer at their convenience. You get better -exposure to your questions on a mailing list than on the IRC but -answers take longer. In a nutshell you e-mail a message to the list and -either get daily digests or individual replies back depending on how -you set up your account. - -The https://lists.sourceforge.net/lists/listinfo/emc-users[emc-users mailing list] - -=== LinuxCNC Wiki - -A Wiki site is a user maintained web site -that anyone can add to or edit. - -The user maintained LinuxCNC Wiki site contains a -wealth of information and tips at: - -link:http://wiki.linuxcnc.org/[http://wiki.linuxcnc.org] - -== Getting LinuxCNC - -=== Normal Download - -Download the Live CD from: - -http://www.linuxcnc.org/[the LinuxCNC homepage at www.linuxcnc.org] - -and follow the Download link. - -=== Multi-session Download (((Multi-session Download))) - -If the file is too large to download in one session -because of a bad or slow Internet connection, -use 'wget' to allow resuming after an interrupted download. - -Wget Linux:: (((Wget Linux))) -Open a terminal window. In Ubuntu it is Applications/Accessories/Terminal. -Use 'cd' to change to the directory where you would like to store the ISO. -Use 'mkdir' to create a new directory if needed. -+ -Note that actual file names may change so you might have to go to -http://www.linuxcnc.org/[http://www.linuxcnc.org/] -and follow the Download link to get the actual file name. -In most browsers you can right click on the link and select -Copy Link Location or similar, then paste the link into the -terminal window with a right mouse click and select Paste. -+ -.Ubuntu 10.04 Lucid Lynx and LinuxCNC (current release) -********************************************************************* -To get the Ubuntu 10.04 Lucid Lynx version, -copy one of these in the terminal window and press enter: - -For the USA mirror: -wget http://linuxcnc.org/iso/ubuntu-10.04-linuxcnc3-i386.iso - -For the European mirror: -wget http://dsplabs.upt.ro/~juve/emc/get.php?file=ubuntu-10.04-linuxcnc3-i386.iso - -The md5sum of the above file is: '76dc2416b917679b71255e464ede84ec' -********************************************************************* -+ -To continue a partial download that was interrupted -add the -c option to wget: -+ -wget -c http://linuxcnc.org/iso/ubuntu-10.04-linuxcnc3-i386.iso -+ -To stop a download use Ctrl-C or close the terminal window. -+ -.Ubuntu 8.04 Hardy Heron and LinuxCNC (older) -********************************************************************* -If your hardware requires an older version of Ubuntu, you can download Ubuntu -8.04 and upgrade to the latest LinuxCNC version by following the instructions -on the LinuxCNC.org download page. - -http://linuxcnc.org/index.php/english/download -********************************************************************* -+ -After the download is complete you will find the ISO file in the -directory that you selected. Next we will burn the CD. - -Wget Windows:: (((Wget Windows))) -The wget program is also available for Windows from: -+ -http://gnuwin32.sourceforge.net/packages/wget.htm -+ -Follow the instructions on the web page for downloading and installing -the windows version of the wget program. -+ -To run wget open a command prompt window. -+ -In most Windows it is Programs/Accessories/Command Prompt -+ -First you have to change to the directory where wget is installed in. -+ -Typically it is in C:\Program Files\GnuWin32\bin so -in the Command Prompt window type: -+ ----- -cd C:\Program Files\GnuWin32\bin ----- -+ -and the prompt should change to: 'C:\Program Files\GnuWin32\bin>' -+ -Type the wget command into the window and press enter as above. - -=== Burning the CD - -LinuxCNC is distributed as CD image files, called ISOs. -To install LinuxCNC, you first need to burn the ISO file onto a CD. -You need a working CD/DVD burner and an 80 minute (700 Mb) CD for this. -If the CD writing fails, try writing at a slower burn speed. - -Verify md5sum in Linux:: - -Before burning a CD, it is highly recommended that you verify the -md5sum (hash) of the .iso file. -+ -Open a terminal window. -In Ubuntu it is Applications/Accessories/Terminal. -+ -Change to the directory where the ISO was downloaded to. -+ ----- -cd download_directory ----- -+ -Then run the md5sum command with the file name you saved. -+ ----- -md5sum -b ubuntu-10.04-linuxcnc1-i386.iso ----- -+ -The md5sum should print out a single line after -calculating the hash. -On slower computers this might take a minute or two. -+ ----- -76dc2416b917679b71255e464ede84ec *ubuntu-10.04-linuxcnc3-i386.iso ----- -+ -Now compare it to the md5sum value that it should be. -+ -If you downloaded the md5sum as well as the iso, -you can ask the md5sum program to do the checking for you. -In the same directory: -+ ----- -md5sum -c ubuntu-10.04-linuxcnc1-i386.iso.md5 ----- -+ -If all is well, after a short delay the terminal will print: -+ ----- -ubuntu-10.04-linuxcnc1-i386.iso: OK ----- - -Burning the ISO in Linux:: - - . Insert a blank CD into your burner. A 'CD/DVD Creator' or - 'Choose Disc Type' window will pop up. - Close this, as we will not be using it. - . Browse to the downloaded ISO image in the file browser. - . Right click on the ISO image file and choose Write to Disc. - . Select the write speed. If you are burning a Ubuntu Live CD, it is - recommended that you write at the lowest possible speed. - . Start the burning process. - . If a 'choose a file name for the disc image' window pops up, just pick OK. - -Verify md5sum with Windows:: - -Before burning a CD, it is highly recommended that you verify the md5 -sum (hash) of the .iso file, to ensure that you got a good download. -+ -Windows does not come with a md5sum program. You will have to download -and install one to check the md5sum. More information can be found at: -+ -https://help.ubuntu.com/community/HowToMD5SUM - -Burning the ISO in Windows:: - - . Download and install Infra Recorder, a free and open source image - burning program: http://infrarecorder.org/ - . Insert a blank CD in the drive and select Do nothing or Cancel if an - auto-run dialog pops up. - . Open Infra Recorder, and select the - 'Actions' menu, then 'Burn image'. - -=== Testing LinuxCNC - -With the Live CD in the CD/DVD drive shut down the computer then turn -the computer back on. This will boot the computer from the Live CD. -Once the computer has booted up you can try out LinuxCNC without installing -it. You can not create custom configurations or modify most system -settings like screen resolution unless you install LinuxCNC. - -To try out LinuxCNC from the Applications/CNC menu pick LinuxCNC. Then select -a sim configuration to try out. - -To see if your computer is suitable for software step pulse generation -run the Latency Test as shown <>. - -=== Installing LinuxCNC - -If you like what you see, just click the Install icon on the desktop, -answer a few questions (your name, timezone, password) and the install -completes in a few minutes. Make sure you write down the name you used -and the password. Once the install process is complete and you go on -line the update manager will pop up and allow you to upgrade to the -latest stable version of LinuxCNC. - -=== Updates to LinuxCNC (((Updates to LinuxCNC))) - -With the normal install the Update Manager will notify you of updates -to LinuxCNC when you go on line and allow you to easily upgrade with no -Linux knowledge needed. -If you want to upgrade to 10.04 from 8.04 a -clean install from the Live-CD is recommended. -It is OK to upgrade everything except the operating system when asked to. - -Warning: Do not upgrade Ubuntu to a new but non-LTS version -(like 8.04 to 8.10) as it will prevent LinuxCNC from running. - -=== Install Problems - -In rare cases you might have to reset the BIOS to default settings if -during the Live CD install it cannot recognize the hard drive -during the boot up. - diff --git a/docs/src/common/Getting_linuxcnc_fr.txt b/docs/src/common/Getting_linuxcnc_fr.txt deleted file mode 100644 index e1df3ba5253..00000000000 --- a/docs/src/common/Getting_linuxcnc_fr.txt +++ /dev/null @@ -1,420 +0,0 @@ -:lang: fr -:toc: - -= Se procurer et installer LinuxCNC - -== À propos du logiciel LinuxCNC - -* LinuxCNC est un logiciel de contrôle de machines-outils telles que fraiseuses, - tours, robots etc. -* LinuxCNC est un logiciel libre avec code source ouvert. Les versions actuelles - de LinuxCNC sont entièrement sous licence GNU Lesser General Public et de GNU - General Public License (GPL et LGPL) -* LinuxCNC propose: -** Une installation facile à partir d'un CD live. -** Un assistant de configuration simple à utiliser pour créer rapidement une - configuration spécifique à la machine. -** Une interface graphique (plusieurs interfaces au choix). -** Un outil de création d'interface graphique (GladeVCP). -** Un interpréteur de G-code (RS-274NGC, langage de programmation des - machines-outils). -** Un système prédictif de planification de trajectoire. -** La gestion du fonctionnement de l'électronique machine de bas niveau, tels - que les capteurs et les moteurs. -** Un logiciel d'automate programmable pour schémas à contacts (Ladder). -* Il ne fournit pas directement de logiciel de dessin ni de générateur de G-code, - mais il en existe de nombreux, faciles à mettre en Å“uvre. -* Il peut piloter simultanément jusqu'à 9 axes et supporte une très grande - variété d'interfaces. -* Le contrôleur peut fonctionner avec de vrais servomoteurs (analogiques ou PWM) - en boucle fermée, ou avec des _step-servos_ ou encore, des moteurs pas à pas - en boucle ouverte. -* Le contrôleur de mouvement assure: les compensations de rayon et/ou de - longueur d'outil, le suivi de trajectoire d'usinage avec tolérance spécifiée, - le filetage sur tour, le taraudage rigide, les mouvements avec axes - synchronisés, la vitesse d'avance adaptative, la correction de vitesse par - l'opérateur, le contrôle de vitesse constante etc. -* Il supporte les systèmes à mouvements non cartésiens grâce aux modules de - cinématique personnalisée. - Les architectures disponibles incluent les hexapodes (plate-forme de Stewart - et concepts similaires) et les systèmes à articulations rotatives pour - assurer les mouvements de robots tels que PUMA ou SCARA. -* LinuxCNC fonctionne sous Linux en utilisant ses extensions temps réel RTAI. - -== Le système d'exploitation - -La distribution Ubuntu a été choisie car elle s'intègre parfaitement dans les -vues Open Source de LinuxCNC: - - - Ubuntu sera toujours gratuit, et il n'y a aucun frais supplémentaire pour la - version _"Enterprise Edition"_, - nous rendons nos travaux disponibles pour tout le monde dans les mêmes - conditions de gratuité. - - LinuxCNC est jumelé avec les versions LTS d'Ubuntu qui apportent le soutien et - les correctifs de sécurité de l'équipe Ubuntu pour 3 à 5 ans. - - Ubuntu utilise les meilleurs outils de traductions et d'accessibilité - à l'infrastructure, que la communauté du logiciel libre a à offrir, pour - rendre Ubuntu accessible à un maximum de personnes. - - La communauté Ubuntu a entièrement souscrit aux principes du développement de - logiciels libres, nous encourageons tout le monde à utiliser des logiciels - open source, à les améliorer et à les transmettre. - -== Trouver de l'aide[[sec:Trouver-aide]](((Trouver de l'aide))) - -=== Les salons IRC - -IRC signifie Internet Relay Chat. -Il s'agit d'une connexion en direct avec d'autres utilisateurs LinuxCNC. -Le canal LinuxCNC sur IRC est: #linuxcnc sur freenode.net. - -La manière la plus simple d'aller sur IRC est d'utiliser -le client embarqué sur cette page: -http://webchat.freenode.net/?channels=linuxcnc - -Un peu d'éthique sur le canal IRC: - - - Posez des questions précises... Évitez le "quelqu'un peut m'aider?", - ce type de questions, _ne fonctionnera pas_. - - Si vous êtes vraiment nouveau dans tout cela, réfléchissez à votre question - avant de la poser. Assurez-vous de donner suffisamment d'informations pour - que quelqu'un puisse résoudre votre problème. - - Faites preuve de patience quand vous attendez une réponse, il faut parfois - du temps pour formuler une réponse. Tout les participants peuvent être - occupés, à travailler par exemple :-) ou à autre chose. - - Configurez votre compte IRC avec un pseudo unique afin que les participants - sachent qui vous êtes. Si vous utilisez le client java, utilisez le même - pseudo à chaque fois que vous vous connecter, cela aidera les participants - à se rappeler qui vous êtes, ainsi, si vous êtes déjà venu avant, beaucoup - se souviendront des discussions passées, ce qui fait gagner du temps à tout - le monde. - -=== Partage de fichiers sur IRC - -La façon la plus courante de partager des fichiers sur IRC est de charger le -fichier sur un des services suivants ou service similaire, puis collez le lien -vers le fichier, sur l'IRC: - -Pour le texte:: - http://pastebin.com/, http://pastie.org/, https://gist.github.com/ - -Pour les photos:: - http://imagebin.org/, http://imgur.com/, http://bayimg.com/ - -Pour les fichiers:: - https://filedropper.com/, http://filefactory.com/, http://1fichier.com/ - -=== Les listes de diffusion - -Une liste de diffusion sur Internet est un moyen de poser des questions, -tout les abonnés à cette liste pourrons lire et répondre à leur convenance. -Vous obtiendrez une meilleurs visibilité de vos questions sur une liste -de diffusion plutôt que sur l'IRC et vous aurez plus de réponses. -En quelques mots, vous envoyez un e-mail à la liste et selon comment -vous avez configuré votre compte, vous aurez les réponses soit, -regroupées quotidiennement, soit individuellement. - -Inscription sur la liste de diffusion des utilisateurs de LinuxCNC sur: -https://lists.sourceforge.net/lists/listinfo/linuxcnc-users - -=== Le Wiki de LinuxCNC - -Un site Wiki est un site web maintenu et enrichi par les utilisateurs, -n'importe qui peut ajouter ou modifier les pages. - -Le Wiki de LinuxCNC est également maintenu par les utilisateurs, -il contient un très grand nombre d'informations et d'astuces sur: -http://wiki.linuxcnc.org/ - -== Se procurer LinuxCNC(((Obtenir LinuxCNC))) - -=== Par téléchargement classique - -Téléchargez le CD Live sur le http://www.linuxcnc.org/index.php?lang=french[site de LinuxCNC] - -=== Par téléchargement fragmenté (((Téléchargement fragmenté))) - -Si le fichier est trop important pour être téléchargé en une seule -fois parce que votre connexion Internet est lente ou mauvaise, -utilisez _wget_ qui permet la reprise après un téléchargement interrompu. - -La commande Wget sous Linux:: (((Wget sous Linux))) -Ouvrez un terminal. Dans Gnome, il est dans _Applications_ → _Accessoires_ → -_Terminal_. -Utilisez _cd_ pour changer le répertoire dans lequel vous voulez stocker l'image -ISO. Utilisez _mkdir_ pour créer un nouveau répertoire si nécessaire. -+ -Notez que les noms de fichiers réels peuvent changer, vous pourriez avoir à -aller sur http://www.linuxcnc.org/index.php/french[le site de LinuxCNC] et y suivre -le lien _Téléchargement_ pour obtenir le nom réel du fichier. Dans la plupart -des navigateurs, vous pouvez faire un clic droit sur le lien et sélectionner -_Copier le lien vers_, ou similaire, coller ensuite ce lien dans la fenêtre du -terminal avec un clic droit puis en choisissant _Coller_. -+ -.Ubuntu 10.04 Lucid Lynx et LinuxCNC (version actuelle) -**** -Pour obtenir la version de Ubuntu 10.04 Lucid Lynx, copier l'un des liens -ci-dessous dans la fenêtre du terminal et appuyez sur _Entrée_: - -Pour le miroir Etats-Unis: -wget http://www.linuxcnc.org/iso/ubuntu-10.04-linuxcnc3-i386.iso - -Pour le miroir européen: -wget http://dsplabs.upt.ro/~juve/emc/get.php?file=ubuntu-10.04-linuxcnc3-i386.iso - -La somme MD5 du fichier ci-dessus est: `76dc2416b917679b71255e464ede84ec` -**** -+ -Pour continuer un téléchargement partiel qui aurait été interrompu par exemple, -ajoutez l'option -c à wget: -+ -wget -c http://www.linuxcnc.org/iso/ubuntu-10.04-linuxcnc3-i386.iso -+ -Pour arrêter un téléchargement, utilisez Ctrl-C ou fermer la fenêtre du terminal. -+ -.Ubuntu 8.04 Hardy Heron et LinuxCNC (plus) -**** -Si vous avez besoin d'une ancienne version d'Ubuntu, vous pouvez télécharger -Ubuntu 8.04. L'image du CD ci-dessous est l'ancienne version EMC 2.3.x, mais -elle peut être modifiée vers la version 2.4.x en suivant les instructions sur: - http://wiki.linuxcnc.org/cgi-bin/wiki.pl?UpdatingTo2.4[le wiki LinuxCNC.org] - -Pour le miroir Etats-Unis: -wget http://www.linuxcnc.org/iso/ubuntu-8.04-desktop-emc2-aj13-i386.iso - -Pour le miroir européen: -wget http://dsplabs.upt.ro/~juve/emc/get.php?file=ubuntu-8.04-desktop-emc2-aj13-i386.iso - -La somme MD5 du fichier ci-dessus est: `1bab052ec879f941628927c988863f14` -**** -+ -Quand le téléchargement est terminé, vous trouverez le fichier ISO dans le -répertoire que vous avez sélectionné précédemment. Ensuite, il ne vous restera -plus qu'à graver le CD. - -La commande Wget sous Windows:: (((Wget sous Windows))) -Le programme wget est également disponible pour Windows depuis: -+ -http://gnuwin32.sourceforge.net/packages/wget.htm -+ -Suivez les instructions de la page web pour télécharger et installer -le programme wget sous Windows. -+ -Pour lancer wget ouvrez l'invite de commande. -+ -Dans la plupart des Windows elle est dans _Programmes_ → _Accessoires_ → -_Commande_ -+ -Naviguez jusqu'au répertoire dans lequel s'est installé wget. -Habituellement il est dans _C:\Program Files\GnuWin32\bin_ si -c'est le cas, tapez la commande: -+ ----- -cd C:\Program Files\GnuWin32\bin ----- -+ -et le prompt devrait changer pour: _C:\Program Files\GnuWin32_ -+ -Tapez les commandes _wget_ dans la fenêtre et pressez Entrée comme précédemment. - -== Graver l'image ISO du CD - -LinuxCNC est distribué sous la forme d'un fichier image de CD, l'image ISO du CD. -Pour installer LinuxCNC, vous devez d'abord graver cette image ISO sur un CD. -Vous devez disposer d'un graveur de CD/DVD et d'un CD vierge de 80 minutes -(700 Mio). Pour éviter tout échec de gravure, graver à la vitesse la plus lente -possible. - -=== Sous Linux - -==== Vérifier la somme de contrôle sous Linux - -Avant de graver un CD, il est fortement recommandé de vérifier la -somme de contrôle md5 (hash) du fichier de l'image iso. - -Ouvrez un terminal. -Dans Ubuntu il est dans _Applications_ → _Accessoires_ → _Terminal_. - -Allez dans le répertoire contenant l'image ISO précédemment téléchargée avec: - ----- -cd répertoire_de_l'image ----- - -Puis lancez la commande _md5sum_ suivie du nom du fichier, exemple: - ----- -md5sum -b ubuntu-10.04-linuxcnc3-i386.iso ----- - -La commande md5sum doit retourner une simple ligne après le calcul de la somme - de contrôle. -Sur une machine lente le calcul peut prendre plusieurs minutes: - ----- -76dc2416b917679b71255e464ede84ec ubuntu-10.04-linuxcnc3-i386.iso ----- - -Il reste à comparer avec la somme md5 fournie sur la page de téléchargement. - -Si vous avez téléchargé le md5sum ainsi que l'ISO, vous pouvez demander au -programme md5sum de faire la vérification pour vous. -Dans le même répertoire: - ----- -md5sum -c ubuntu-10.04-linuxcnc1-i386.iso.md5 ----- - -Si tout va bien, après un court délai le terminal affichera: - ----- -ubuntu-10.04-linuxcnc1-i386.iso: OK ----- - -==== Graver le CD sous Linux - -- Insérez un CD vierge dans votre graveur. Une fenêtre surgissante - _CD/DVD Creator_ ou _Choisissez le type de disque_ va s'ouvrir. - Fermez la, elle ne sera pas utilisée. -- Naviguez jusqu'au répertoire contenant l'image ISO. -- Faites un clic droit sur le fichier de l'image ISO et choisissez - _Graver le Disque_. -- Sélectionnez la vitesse de gravure. Pour graver le CD Live de LinuxCNC il - est recommandé de graver à la vitesse la plus lente possible pour - éviter toute erreur de gravure. -- Lancez la gravure. -- Si le choix d'un nom de fichier est demandé pour l'image disque, - cliquez juste _OK_. - -=== Sous Windows - -==== Vérifier la somme de contrôle sous Windows - -Avant de graver un CD, il est fortement recommandé de vérifier la -somme de contrôle md5 (hash) du fichier de l'image iso, malheureusement -Windows ne dispose pas de programme de contrôle du md5. Vous devrez en -installer un pour vérifier la somme de contrôle de l'ISO. Plus -d'informations sont disponibles ici: http://doc.ubuntu-fr.org/md5sum - -==== Gravez le CD sous Windows - -- Si votre Windows n'intègre pas un logiciel de gravure d'image vous - pouvez télécharger Infra Recorder, un logiciel de gravure d'images - gratuit et open source sur http://infrarecorder.org/ -- Insérez un CD vierge dans le graveur, sélectionnez _Quitter_ ou - _Cancel_ si un auto-run démarre. -- Cliquez bouton droit sur le fichier ISO et sélectionnez le menu - _Graver l'image disque_ ou lancez Infra Recorder et choisissez le - menu _Actions→Graver l'image_. - -== Tester LinuxCNC - -Avec le CD Live de LinuxCNC dans le lecteur de CD/DVD, redémarrez votre PC -de sorte qu'il démarre sur le CD Live. Quand l'ordinateur a redémarré -vous pouvez essayer LinuxCNC sans l'installer. Vous ne pouvez pas créer de -configuration personnalisée ni modifier les réglages du système comme -la résolution de l'écran sans installer LinuxCNC. - -Pour lancer LinuxCNC allez dans le menu Applications/CNC et choisissez -LinuxCNC. Puis sélectionnez une configuration en sim (simulation) et -essayez le. - -Pour savoir si votre ordinateur est utilisable par le générateur de -trains d'impulsions du logiciel, lancez un test de latence comme -indiqué <>. - -== Installer la distribution Ubuntu de LinuxCNC sur votre PC - -Si vous avez envie d'aller plus loin, cliquez juste sur l'icône -_Install_ se trouvant sur le bureau, répondez à quelques questions (votre -nom, votre fuseau horaire, le mot de passe) et faites une installation -complète en quelques minutes. Notez bien le mot de passe indiqué et le -nom d'utilisateur. Une fois l'installation complète et que vous êtes -connecté, le gestionnaire de mises à jour vous proposera d'effectuer -une mise à jour vers la dernière version stable de LinuxCNC. - -=== Lancer LinuxCNC - -LinuxCNC se lance comme un autre programme Linux: -depuis un terminal en passant la commande _linuxcnc_, -ou depuis le menu _Applications_ → _CNC_. - -=== Sélecteur de configuration - -Le _Sélecteur de configuration_ s'affichera à chaque fois que vous lancerez -LinuxCNC depuis le menu _Applications_ → _CNC_ → _LinuxCNC_. Vos propres -configurations personnalisées s'affichent dans le haut de la liste, suivies par -les différentes configurations fournies en standard. -Étant donné que chaque exemple de configuration utilise un type différent d' -interface matérielle, la plupart ne fonctionneront pas sur votre système. Les -configurations listées dans la catégorie _Sim_ fonctionneront toutes, même sans -matériel raccordé, ce sont des simulations de machines. - -.Sélecteur de configuration pour LinuxCNC[[cap:Selecteur-de-configuration]] - -image::images/configuration-selector1_fr.png[] - -Cliquez dans la liste, sur les différentes configurations pour afficher les -informations les concernant. Double-cliquez sur une configuration ou cliquez _OK_ -pour démarrer LinuxCNC avec cette configuration. Cochez la case _Créer un -raccourci sur le bureau_ puis cliquez OK pour ajouter une icône sur le bureau -d'Ubuntu. Cette icône vous permettra par la suite de lancer directement -LinuxCNC avec cette configuration, sans passer par le sélecteur de configuration. - -Quand vous choisissez un exemple de configuration dans le sélecteur, un dialogue -vous demandera si vous voulez en faire une copie dans votre répertoire home. -Si vous répondez _oui_, un dossier _linuxcnc_ autorisé en écriture sera créé, il -contiendra un jeu de fichiers que vous pourrez éditer pour les adapter à vos -besoins. Si vous répondez _non_, LinuxCNC démarrera mais pourra se comporter de -façon étrange, par exemple, les décalages d'origine pièce entrés avec la commande -_Toucher_ ne seront pas pris en compte, ce comportement est lié à ce moment, à -l'absence de répertoire autorisé en écriture sans lequel les paramètres ne -peuvent être enregistrés. - -.Dialogue de copie de la configuration - -image::images/copy-configuration_fr.png[] - -=== L'interface utilisateur graphique Axis - -L'interface AXIS est une des interfaces parmi lesquelles vous avez à -choisir. Elle peut être configurée pour lui ajouter un panneau de -commandes virtuel personnalisé en fonction des besoins. AXIS est -l'interface utilisateur par défaut et est activement développée. -C'est aussi la plus populaire. - -.Interface Axis[[cap:Interface-Axis]] - -image::images/axis_25_fr.png[] - -=== Les étapes suivantes de la configuration - -Après avoir trouvé l'exemple de configuration qui utilise -le même matériel que votre machine, et en avoir enregistré une copie dans votre -répertoire personnel, vous pouvez la personnaliser en fonction des besoins -spécifiques à votre machine. Consultez le _Manuel de l'intégrateur_ pour tous -les détails de configuration. - -Si vous souhaitez créer une configuration personnalisée, vous pouvez utiliser -pour cela, un des assistants graphiques de configuration, _StepConf_ ou _PncConf_ -selon votre type de machine. - -== Les mises à jour de LinuxCNC (((Mises à jour de LinuxCNC))) - -Avec l'installation standard, le gestionnaire de mises à jour vous avertira des -mises à jour de LinuxCNC disponibles quand vous serez en ligne et vous permettra -de mettre à jour facilement sans connaissance particulière de Linux. -Si vous souhaitez passer en 10.04 à partir d'une 8.04, une installation propre -à partir du CD live est recommandée. - -WARNING: [red]#Ne pas mettre à jour Ubuntu vers une nouvelle distribution -comme de 10.04 vers 12.04, car elle ne permettrait plus d'utiliser LinuxCNC, ne -pas mettre non plus à jour le kernel, car les modules temps réels ne -fonctionnerait plus.# - -== Problème d'installation possible - -Dans de rares cas, vous pourriez avoir à réinitialiser le BIOS aux réglages par -défaut si lors de l'installation du Live CD, le disque dur n'est pas reconnu -pendant le démarrage. - -// vim: set syntax=asciidoc: diff --git a/docs/src/common/Glossary.txt b/docs/src/common/Glossary.txt deleted file mode 100644 index c1a01bbe31a..00000000000 --- a/docs/src/common/Glossary.txt +++ /dev/null @@ -1,371 +0,0 @@ -= Glossary - -A listing of terms and what they mean. Some terms have a general -meaning and several additional meanings for users, installers, and -developers. - -Acme Screw:: - (((acme screw)))[[glo:AcmeScrew]] A type of lead-screw that uses an Acme - thread form. Acme threads have somewhat lower friction and wear than - simple triangular threads, but ball-screws are lower yet. Most manual - machine tools use acme lead-screws. - -Axis:: - (((axis)))[[glo:Axis]] One of the computer controlled movable parts of the - machine. For a typical vertical mill, the table is the X axis, the - saddle is the Y axis, and the quill or knee is the Z axis. Angular - axes like rotary tables are referred to as A, B, and C. Additional - linear axes relative to the tool are called U, V, and W - respectively. - -Axis(GUI):: - (((GUI))) One of the Graphical User Interfaces available to users of - LinuxCNC. It features the modern use of menus and mouse buttons while - automating and hiding some of the more traditional LinuxCNC controls. It is - the only open-source interface that displays the entire tool path as - soon as a file is opened. - -Backlash:: - (((backlash)))[[glo:Backlash]] The amount of "play" or lost motion that - occurs when direction is reversed in a lead screw. or other mechanical - motion driving system. It can result from nuts that are loose on - leadscrews, slippage in belts, cable slack, "wind-up" in rotary - couplings, and other places where the mechanical system is not "tight". - Backlash will result in inaccurate motion, or in the case of motion - caused by external forces (think cutting tool pulling on the work - piece) the result can be broken cutting tools. This can happen because - of the sudden increase in chip load on the cutter as the work piece is - pulled across the backlash distance by the cutting tool. - -Backlash Compensation:: - (((backlash compensation))) Any technique that attempts to reduce - the effect of backlash without actually removing it from the mechanical - system. This is typically done in software in the controller. This can - correct the final resting place of the part in motion but fails to - solve problems related to direction changes while in motion (think - circular interpolation) and motion that is caused when external forces - (think cutting tool pulling on the work piece) are the source of the - motion. - -Ball Screw:: - (((ball screw)))[[glo:Ballscrew]] A type of lead-screw that uses small - hardened steel balls between the nut and screw to reduce friction. - Ball-screws have very low friction and backlash, but are usually quite - expensive. - -Ball Nut:: - (((ball nut)))[[glo:Ballnut]] A special nut designed for use with a - ball-screw. It contains an internal passage to re-circulate the balls - from one end of the screw to the other. - -CNC:: - (((CNC)))[[glo:CNC]] Computer Numerical Control. The general term used to - refer to computer control of machinery. Instead of a human operator - turning cranks to move a cutting tool, CNC uses a computer and motors - to move the tool, based on a part program. - -Comp:: - (((comp)))[[glo:comp]] A tool used to build, compile and install LinuxCNC HAL - components. - -Configuration(n):: - A directory containing a set of configuration files. Custom - configurations are normally saved in the users home/linuxcnc/configs - directory. These files include LinuxCNC's traditional INI file and HAL - files. A configuration may also contain several general files that - describe tools, parameters, and NML connections. - -Configuration(v):: - The task of setting up LinuxCNC so that it matches the hardware on a - machine tool. - -Coordinate Measuring Machine:: - (((coordinate measuring machine))) A Coordinate Measuring Machine is - used to make many accurate measurements on parts. These machines can be - used to create CAD data for parts where no drawings can be found, when - a hand-made prototype needs to be digitized for moldmaking, or to check - the accuracy of machined or molded parts. - -Display units:: - (((display units))) The linear and angular units used for onscreen - display. - -DRO:: - (((DRO))) A Digital Read Out is a system of position-measuring devices - attached to the slides of a machine tool, which are connected to a - numeric display showing the current location of the tool with respect to - some reference position. - DROs are very popular on hand-operated machine tools because they - measure the true tool position without backlash, even if the machine - has very loose Acme screws. - Some DROs use linear quadrature encoders to pick up position - information from the machine, and some use methods similar to a - resolver which keeps rolling over. - -EDM:: - (((EDM))) EDM is a method of removing metal in hard or difficult to - machine or tough metals, or where rotating tools would not be able to - produce the desired shape in a cost-effective manner. An excellent - example is rectangular punch dies, where sharp internal corners are - desired. Milling operations can not give sharp internal corners with - finite diameter tools. A 'wire' EDM machine can make internal corners - with a radius only slightly larger than the wire's radius. A 'sinker' - EDM can make internal corners with a radius only slightly larger - than the radius on the corner of the sinking electrode. - -EMC:: - (((EMC)))[[glo:EMC]] The Enhanced Machine Controller. Initially a NIST - project. Renamed to LinuxCNC in 2012. - -EMCIO:: - (((EMCIO)))[[glo:EMCIO]] The module within LinuxCNC that handles general - purpose I/O, unrelated to the actual motion of the axes. - -EMCMOT:: - (((EMCMOT)))[[glo:EMCMOT]] The module within LinuxCNC that handles - the actual motion of the cutting tool. It runs as a real-time program - and directly controls the motors. - -Encoder:: - (((encoder)))[[glo:Encoder]] A device to measure position. Usually a - mechanical-optical device, which outputs a quadrature signal. The - signal can be counted by special hardware, or directly by the parport - with LinuxCNC. - -Feed:: - (((feed)))[[glo:Feed]] Relatively slow, controlled motion of the tool used - when making a cut. - -Feed rate:: - (((feed rate))) The speed at which a cutting motion occurs. - In auto or mdi mode, feed rate is commanded using an F word. - F10 would mean ten machine units per minute. - -Feedback:: - (((feedback)))[[glo:Feedback]] A method (e.g., quadrature encoder signals) - by which LinuxCNC receives information about the position of motors - -Feedrate Override:: - (((feedrate override)))[[glo:FeedrateOveride]] A manual, operator controlled - change in the rate at which the tool moves while cutting. Often used to - allow the operator to adjust for tools that are a little dull, or - anything else that requires the feed rate to be “tweakedâ€. - -Floating Point Number:: - A number that has a decimal point. (12.300) In HAL it is known as float. - -G-Code:: - (((G-Code)))[[glo:G-Code]] The generic term used to refer to the most - common part programming language. There are several dialects of G-code, - LinuxCNC uses RS274/NGC. - -GUI:: - [[glo:GUI]](((GUI))) Graphical User Interface. - General;; - A type of interface that allows communications between a computer - and a human (in most cases) via the manipulation of icons and other - elements (widgets) on a computer screen. - - LinuxCNC;; - An application that presents a graphical screen to the machine - operator allowing manipulation of the machine and the corresponding - controlling program. - -HAL:: - (((HAL)))[[glo:HAL]] Hardware Abstraction Layer. At the highest - level, it is simply a way to allow a number of - building blocks to be loaded and interconnected to assemble a complex - system. Many of the building blocks are drivers for hardware devices. - However, HAL can do more than just configure hardware drivers. - -Home:: - (((home)))[[glo:Home]] A specific location in the machine's work envelope - that is used to make sure the computer and the actual machine both - agree on the tool position. - -ini file:: - (((INI)))[[glo:inifile]] A text file that contains most of the information - that configures LinuxCNC for a particular machine. - -Instance:: - (((Instance)))[[glo:Instance]] One can have an instance of a class or a - particular object. The instance is the actual object created at - runtime. In programmer jargon, the Lassie object is an instance of the - Dog class. - -Joint Coordinates:: - (((joint coordinates)))[[glo:Joint_Coordinates]] These specify the angles - between the individual joints of the machine. See also Kinematics - -Jog:: - (((jog))) Manually moving an axis of a machine. Jogging either moves - the axis a fixed amount for each key-press, or moves the axis at a - constant speed as long as you hold down the key. In manual mode, - jog speed can be set from the graphical interface. - -kernel-space:: - [[glo:kernel-space]] See real-time. - -Kinematics:: - (((kinematics)))[[glo:Kinematics]] The position relationship between world - coordinates and joint coordinates of a machine. There are two types of - kinematics. Forward kinematics is used to calculate world coordinates - from joint coordinates. Inverse kinematics is used for exactly the opposite - purpose. Note that kinematics does not take into account, the forces, - moments etc. on the machine. It is for positioning only. - -Lead-screw:: - (((lead screw)))[[glo:Leadscrew]] An screw that is rotated by a motor to - move a table or other part of a machine. Lead-screws are usually either - ball-screws or acme screws, although conventional triangular threaded - screws may be used where accuracy and long life are not as important as - low cost. - -Machine units:: - (((machine units))) The linear and angular units used for machine - configuration. These units are specified and used in the ini file. - HAL pins and parameters are also generally in machine units. - -MDI:: - (((MDI)))[[glo:MDI]] Manual Data Input. This is a mode of operation where - the controller executes single lines of G-code as they are typed by the - operator. - -NIST:: - (((NIST)))[[glo:NIST]] National Institute of Standards and Technology. - An agency of the Department of Commerce in the United States. - -NML:: - (((NML)))[[glo:NML]] Neutral Message Language provides a mechanism for - handling multiple types of messages in the same buffer as well as - simplifying the interface for encoding and decoding buffers in neutral - format and the configuration mechanism. -Offsets:: - (((offsets)))[[glo:Offsets]] - An arbitrary amount, added to the value of something to make it - equal to some desired value. For example, gcode programs are - often written around some convenient point, such as X0, Y0. - Fixture offsets can be used to shift the actual execution point - of that gcode program to properly fit the true location - of the vise and jaws. - Tool offsets can be used to shift the "uncorrected" length - of a tool to equal that tool's actual length. - -Part Program:: - (((part Program)))[[glo:PartProgram]] A description of a part, - in a language that the controller can understand. For LinuxCNC, - that language is RS-274/NGC, commonly known as G-code. - -Program Units:: - (((program units))) The linear and angular units used in a part program. - The linear program units do not have to be the same as the linear machine units. - See G20 and G21 for more information. The angular program units are always - measured in degrees. - -Python:: - General-purpose, very high-level programming language. Used in LinuxCNC - for the Axis GUI, the Stepconf configuration tool, and several G-code - programming scripts. - -Rapid:: - (((rapid)))[[glo:Rapid]] Fast, possibly less precise motion of the tool, - commonly used to move between cuts. If the tool meets the workpiece - or the fixturing during a rapid, it is probably a bad thing! - -Rapid rate:: - (((rapid rate)))[[glo:RapidRate]]The speed at which a rapid motion occurs. - In auto or mdi mode, rapid rate is usually the maximum speed of the machine. - It is often desirable to limit the rapid rate when - testing a g-code program for the first time. - -Real-time:: - (((real-time)))[[glo:real-time]] Software that is intended to meet - very strict timing deadlines. Under Linux, in order to meet these - requirements it is necessary to install a realtime kernel such - as RTAI and build the software to run in the special real-time - environment. For this reason real-time software runs in kernel-space. - -RTAI:: - (((RTAI)))[[glo:RTAI]] Real Time Application Interface, see - https://www.rtai.org/[https://www.rtai.org/], the real-time extensions - for Linux that LinuxCNC can use to achieve real-time performance. - -RTLINUX:: - (((RTLINUX)))[[glo:RTLINUX]] See - https://en.wikipedia.org/wiki/RTLinux[https://en.wikipedia.org/wiki/RTLinux], - an older real-time extension for Linux that LinuxCNC used to use to - achieve real-time performance. Obsolete, replaced by RTAI. - -RTAPI:: - (((RTAPI)))A portable interface to real-time operating systems - including RTAI and RTLINUX - -RS-274/NGC:: - (((RS274NGC)))[[glo:RS274NGC]] The formal name for the language - used by LinuxCNC part programs. - -Servo Motor:: - (((servo motor)))[[glo:ServoMotor]] Generally, any motor that is used - with error-sensing feedback to correct the position of an actuator. - Also, a motor which is specially-designed to provide improved - performance in such applications. - -Servo Loop:: - (((loop)))[[glo:ServoLoop]] A control loop used to control position or - velocity of an motor equipped with a feedback device. - -Signed Integer:: - (((Signed Integer))) A whole number that can have a positive or - negative sign. In HAL it is known as s32. (A signed 32-bit - integer has a usable range of -2,147,483,647 to +2,147,483,647.) - -Spindle:: - (((spindle)))[[glo:Spindle]] The part of a machine tool that spins - to do the cutting. On a mill or drill, the spindle holds the - cutting tool. On a lathe, the spindle holds the workpiece. - -Spindle Speed Override:: - A manual, operator controlled change in the rate at which the tool - rotates while cutting. Often used to allow the operator to adjust for - chatter caused by the cutter's teeth. Spindle Speed Override assumes - that the LinuxCNC software has been configured to control spindle speed. - -Stepconf:: - An LinuxCNC configuration wizard. It is able to handle many - step-and-direction motion command based machines. It writes a full - configuration after the user answers a few questions about the computer - and machine that LinuxCNC is to run on. - -Stepper Motor:: - (((stepper motor)))[[glo:StepperMotor]] A type of motor that turns in - fixed steps. By counting steps, it is possible to determine how far the - motor has turned. If the load exceeds the torque capability of the - motor, it will skip one or more steps, causing position errors. - -TASK:: - (((TASK)))[[glo:TASK]] The module within LinuxCNC that coordinates - the overall execution and interprets the part program. - -Tcl/Tk:: - (((Tk)))[[glo:Tcl/Tk]] A scripting language and graphical widget toolkit - with which several of LinuxCNCs GUIs and selection wizards were - written. - -Traverse Move:: - (((Traverse Move))) A move in a straight line from the start point to - the end point. - -Units:: - (((units))) See "Machine Units", "Display Units", or "Program Units". - -Unsigned Integer:: - (((Unsigned Integer))) A whole number that has no sign. In HAL - it is known as u32. (An unsigned 32-bit integer has a usable range of - zero to 4,294,967,296.) - -World Coordinates:: - (((world coordinates)))[[glo:World_Coordinates]] This is the absolute - frame of reference. It gives coordinates in terms of a fixed reference - frame that is attached to some point (generally the base) of the - machine tool. - diff --git a/docs/src/common/Glossary_es.txt b/docs/src/common/Glossary_es.txt deleted file mode 100644 index 6b804cab395..00000000000 --- a/docs/src/common/Glossary_es.txt +++ /dev/null @@ -1,383 +0,0 @@ -= Glossary - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -A listing of terms and what they mean. Some terms have a general -meaning and several additional meanings for users, installers, and -developers. - -Acme Screw:: - (((acme screw)))[[glo:AcmeScrew]] A type of lead-screw that uses an Acme - thread form. Acme threads have somewhat lower friction and wear than - simple triangular threads, but ball-screws are lower yet. Most manual - machine tools use acme lead-screws. - -Axis:: - (((axis)))[[glo:Axis]] One of the computer controlled movable parts of the - machine. For a typical vertical mill, the table is the X axis, the - saddle is the Y axis, and the quill or knee is the Z axis. Angular - axes like rotary tables are referred to as A, B, and C. Additional - linear axes relative to the tool are called U, V, and W - respectively. - -Axis(GUI):: - (((GUI))) One of the Graphical User Interfaces available to users of - LinuxCNC. It features the modern use of menus and mouse buttons while - automating and hiding some of the more traditional LinuxCNC controls. It is - the only open-source interface that displays the entire tool path as - soon as a file is opened. - -Backlash:: - (((backlash)))[[glo:Backlash]] The amount of "play" or lost motion that - occurs when direction is reversed in a lead screw. or other mechanical - motion driving system. It can result from nuts that are loose on - leadscrews, slippage in belts, cable slack, "wind-up" in rotary - couplings, and other places where the mechanical system is not "tight". - Backlash will result in inaccurate motion, or in the case of motion - caused by external forces (think cutting tool pulling on the work - piece) the result can be broken cutting tools. This can happen because - of the sudden increase in chip load on the cutter as the work piece is - pulled across the backlash distance by the cutting tool. - -Backlash Compensation:: - (((backlash compensation))) Any technique that attempts to reduce - the effect of backlash without actually removing it from the mechanical - system. This is typically done in software in the controller. This can - correct the final resting place of the part in motion but fails to - solve problems related to direction changes while in motion (think - circular interpolation) and motion that is caused when external forces - (think cutting tool pulling on the work piece) are the source of the - motion. - -Ball Screw:: - (((ball screw)))[[glo:Ballscrew]] A type of lead-screw that uses small - hardened steel balls between the nut and screw to reduce friction. - Ball-screws have very low friction and backlash, but are usually quite - expensive. - -Ball Nut:: - (((ball nut)))[[glo:Ballnut]] A special nut designed for use with a - ball-screw. It contains an internal passage to re-circulate the balls - from one end of the screw to the other. - -CNC:: - (((CNC)))[[glo:CNC]] Computer Numerical Control. The general term used to - refer to computer control of machinery. Instead of a human operator - turning cranks to move a cutting tool, CNC uses a computer and motors - to move the tool, based on a part program. - -Comp:: - (((comp)))[[glo:comp]] A tool used to build, compile and install LinuxCNC HAL - components. - -Configuration(n):: - A directory containing a set of configuration files. Custom - configurations are normally saved in the users home/emc2/configs - directory. These files include EMC's traditional INI file and HAL - files. A configuration may also contain several general files that - describe tools, parameters, and NML connections. - -Configuration(v):: - The task of setting up LinuxCNC so that it matches the hardware on a - machine tool. - -Coordinate Measuring Machine:: - (((coordinate measuring machine))) A Coordinate Measuring Machine is - used to make many accurate measurements on parts. These machines can be - used to create CAD data for parts where no drawings can be found, when - a hand-made prototype needs to be digitized for moldmaking, or to check - the accuracy of machined or molded parts. - -Display units:: - (((display units))) The linear and angular units used for onscreen - display. - -DRO:: - (((DRO))) A Digital Read Out is a system of position-measuring devices - attached to the slides of a machine tool, which are connected to a - numeric display showing the current location of the tool with respect to - some reference position. - DROs are very popular on hand-operated machine tools because they - measure the true tool position without backlash, even if the machine - has very loose Acme screws. - Some DROs use linear quadrature encoders to pick up position - information from the machine, and some use methods similar to a - resolver which keeps rolling over. - -EDM:: - (((EDM))) EDM is a method of removing metal in hard or difficult to - machine or tough metals, or where rotating tools would not be able to - produce the desired shape in a cost-effective manner. An excellent - example is rectangular punch dies, where sharp internal corners are - desired. Milling operations can not give sharp internal corners with - finite diameter tools. A 'wire' EDM machine can make internal corners - with a radius only slightly larger than the wire's radius. A 'sinker' - EDM can make internal corners with a radius only slightly larger - than the radius on the corner of the sinking electrode. - -EMC:: - (((EMC)))[[glo:EMC]] The Enhanced Machine Controller. Initially a NIST - project. EMC is able to run a wide range of motion devices. - -EMCIO:: - (((EMCIO)))[[glo:EMCIO]] The module within EMC that handles general - purpose I/O, unrelated to the actual motion of the axes. - -EMCMOT:: - (((EMCMOT)))[[glo:EMCMOT]] The module within EMC that handles the actual - motion of the cutting tool. It runs as a real-time program and directly - controls the motors. - -Encoder:: - (((encoder)))[[glo:Encoder]] A device to measure position. Usually a - mechanical-optical device, which outputs a quadrature signal. The - signal can be counted by special hardware, or directly by the parport - with LinuxCNC. - -Feed:: - (((feed)))[[glo:Feed]] Relatively slow, controlled motion of the tool used - when making a cut. - -Feed rate:: - (((feed rate))) The speed at which a cutting motion occurs. - In auto or mdi mode, feed rate is commanded using an F word. - F10 would mean ten machine units per minute. - -Feedback:: - (((feedback)))[[glo:Feedback]] A method (e.g., quadrature encoder signals) - by which LinuxCNC receives information about the position of motors - -Feedrate Override:: - (((feedrate override)))[[glo:FeedrateOveride]] A manual, operator controlled - change in the rate at which the tool moves while cutting. Often used to - allow the operator to adjust for tools that are a little dull, or - anything else that requires the feed rate to be “tweakedâ€. - -Floating Point Number:: - A number that has a decimal point. (12.300) In HAL it is known as float. - -G-Code:: - (((G-Code)))[[glo:G-Code]] The generic term used to refer to the most - common part programming language. There are several dialects of G-code, - EMC uses RS274/NGC. - -GUI:: - [[glo:GUI]](((GUI))) Graphical User Interface. - General;; - A type of interface that allows communications between a computer - and a human (in most cases) via the manipulation of icons and other - elements (widgets) on a computer screen. - - EMC;; - An application that presents a graphical screen to the machine - operator allowing manipulation of the machine and the corresponding - controlling program. - -HAL:: - (((HAL)))[[glo:HAL]] Hardware Abstraction Layer. At the highest - level, it is simply a way to allow a number of - building blocks to be loaded and interconnected to assemble a complex - system. Many of the building blocks are drivers for hardware devices. - However, HAL can do more than just configure hardware drivers. - -Home:: - (((home)))[[glo:Home]] A specific location in the machine's work envelope - that is used to make sure the computer and the actual machine both - agree on the tool position. - -ini file:: - (((INI)))[[glo:inifile]] A text file that contains most of the information - that configures EMC for a particular machine - -Instance:: - (((Instance)))[[glo:Instance]] One can have an instance of a class or a - particular object. The instance is the actual object created at - runtime. In programmer jargon, the Lassie object is an instance of the - Dog class. - -Joint Coordinates:: - (((joint coordinates)))[[glo:Joint_Coordinates]] These specify the angles - between the individual joints of the machine. See also Kinematics - -Jog:: - (((jog))) Manually moving an axis of a machine. Jogging either moves - the axis a fixed amount for each key-press, or moves the axis at a - constant speed as long as you hold down the key. In manual mode, - jog speed can be set from the graphical interface. - -kernel-space:: - [[glo:kernel-space]] See real-time. - -Kinematics:: - (((kinematics)))[[glo:Kinematics]] The position relationship between world - coordinates and joint coordinates of a machine. There are two types of - kinematics. Forward kinematics is used to calculate world coordinates - from joint coordinates. Inverse kinematics is used for exactly the opposite - purpose. Note that kinematics does not take into account, the forces, - moments etc. on the machine. It is for positioning only. - -Lead-screw:: - (((lead screw)))[[glo:Leadscrew]] An screw that is rotated by a motor to - move a table or other part of a machine. Lead-screws are usually either - ball-screws or acme screws, although conventional triangular threaded - screws may be used where accuracy and long life are not as important as - low cost. - -Machine units:: - (((machine units))) The linear and angular units used for machine - configuration. These units are specified and used in the ini file. - HAL pins and parameters are also generally in machine units. - -MDI:: - (((MDI)))[[glo:MDI]] Manual Data Input. This is a mode of operation where - the controller executes single lines of G-code as they are typed by the - operator. - -NIST:: - (((NIST)))[[glo:NIST]] National Institute of Standards and Technology. - An agency of the Department of Commerce in the United States. - -NML:: - (((NML)))[[glo:NML]] Neutral Message Language provides a mechanism for - handling multiple types of messages in the same buffer as well as - simplifying the interface for encoding and decoding buffers in neutral - format and the configuration mechanism. -Offsets:: - (((offsets)))[[glo:Offsets]] - An arbitrary amount, added to the value of something to make it - equal to some desired value. For example, gcode programs are - often written around some convenient point, such as X0, Y0. - Fixture offsets can be used to shift the actual execution point - of that gcode program to properly fit the true location - of the vise and jaws. - Tool offsets can be used to shift the "uncorrected" length - of a tool to equal that tool's actual length. - -Part Program:: - (((part Program)))[[glo:PartProgram]] A description of a part, in a - language that the controller can understand. For EMC, that language is - RS-274/NGC, commonly known as G-code. - -Program Units:: - (((program units))) The linear and angular units used in a part program. - The linear program units do not have to be the same as the linear machine units. - See G20 and G21 for more information. The angular program units are always - measured in degrees. - -Python:: - General-purpose, very high-level programming language. Used in LinuxCNC - for the Axis GUI, the Stepconf configuration tool, and several G-code - programming scripts. - -Rapid:: - (((rapid)))[[glo:Rapid]] Fast, possibly less precise motion of the tool, - commonly used to move between cuts. If the tool meets the workpiece - or the fixturing during a rapid, it is probably a bad thing! - -Rapid rate:: - (((rapid rate)))[[glo:RapidRate]]The speed at which a rapid motion occurs. - In auto or mdi mode, rapid rate is usually the maximum speed of the machine. - It is often desirable to limit the rapid rate when - testing a g-code program for the first time. - -Real-time:: - (((real-time)))[[glo:real-time]] Software that is intended to meet very - strict timing deadlines. Under Linux, in order to meet these - requirements it is necessary to install RTAI or RTLINUX and build the - software to run in those special environments. For this reason - real-time software runs in kernel-space. - -RTAI:: - (((RTAI)))[[glo:RTAI]] Real Time Application Interface, see - https://www.rtai.org/[https://www.rtai.org/], one of two real-time - extensions for Linux that EMC can use to achieve real-time performance. - -RTLINUX:: - (((RTLINUX)))[[glo:RTLINUX]] See - http://www.rtlinux.org[http://www.rtlinux.org], one of two real-time - extensions for Linux that EMC can use to achieve real-time performance. - -RTAPI:: - (((RTAPI)))A portable interface to real-time operating systems - including RTAI and RTLINUX - -RS-274/NGC:: - (((RS274NGC)))[[glo:RS274NGC]] The formal name for the language used by - EMC part programs. - -Servo Motor:: - (((servo motor)))[[glo:ServoMotor]] Generally, any motor that is used - with error-sensing feedback to correct the position of an actuator. - Also, a motor which is specially-designed to provide improved - performance in such applications. - -Servo Loop:: - (((loop)))[[glo:ServoLoop]] A control loop used to control position or - velocity of an motor equipped with a feedback device. - -Signed Integer:: - (((Signed Integer))) A whole number that can have a positive or - negative sign. In HAL it is known as s32. (A signed 32-bit - integer has a usable range of -2,147,483,647 to +2,147,483,647.) - -Spindle:: - (((spindle)))[[glo:Spindle]] The part of a machine tool that spins - to do the cutting. On a mill or drill, the spindle holds the - cutting tool. On a lathe, the spindle holds the workpiece. - -Spindle Speed Override:: - A manual, operator controlled change in the rate at which the tool - rotates while cutting. Often used to allow the operator to adjust for - chatter caused by the cutter's teeth. Spindle Speed Override assumes - that the LinuxCNC software has been configured to control spindle speed. - -Stepconf:: - An LinuxCNC configuration wizard. It is able to handle many - step-and-direction motion command based machines. It writes a full - configuration after the user answers a few questions about the computer - and machine that LinuxCNC is to run on. - -Stepper Motor:: - (((stepper motor)))[[glo:StepperMotor]] A type of motor that turns in - fixed steps. By counting steps, it is possible to determine how far the - motor has turned. If the load exceeds the torque capability of the - motor, it will skip one or more steps, causing position errors. - -TASK:: - (((TASK)))[[glo:TASK]] The module within EMC that coordinates the overall - execution and interprets the part program. - -Tcl/Tk:: - (((Tk)))[[glo:Tcl/Tk]] A scripting language and graphical widget toolkit - with which several of LinuxCNCs GUIs and selection wizards were - written. - -Traverse Move:: - (((Traverse Move))) A move in a straight line from the start point to - the end point. - -Units:: - (((units))) See "Machine Units", "Display Units", or "Program Units". - -Unsigned Integer:: - (((Unsigned Integer))) A whole number that has no sign. In HAL - it is known as u32. (An unsigned 32-bit integer has a usable range of - zero to 4,294,967,296.) - -World Coordinates:: - (((world coordinates)))[[glo:World_Coordinates]] This is the absolute - frame of reference. It gives coordinates in terms of a fixed reference - frame that is attached to some point (generally the base) of the - machine tool. - diff --git a/docs/src/common/Glossary_fr.txt b/docs/src/common/Glossary_fr.txt deleted file mode 100644 index ff642f238a3..00000000000 --- a/docs/src/common/Glossary_fr.txt +++ /dev/null @@ -1,365 +0,0 @@ -= Glossary - -A listing of terms and what they mean. Some terms have a general -meaning and several additional meanings for users, installers, and -developers. - -Acme Screw:: - (((acme screw)))[[glo:AcmeScrew]] A type of lead-screw that uses an Acme - thread form. Acme threads have somewhat lower friction and wear than - simple triangular threads, but ball-screws are lower yet. Most manual - machine tools use acme lead-screws. - -Axis:: - (((axis)))[[glo:Axis]] One of the computer controlled movable parts of the - machine. For a typical vertical mill, the table is the X axis, the - saddle is the Y axis, and the quill or knee is the Z axis. Angular - axes like rotary tables are referred to as A, B, and C. Additional - linear axes relative to the tool are called U, V, and W - respectively. - -Axis(GUI):: - (((GUI))) One of the Graphical User Interfaces available to users of - LinuxCNC. It features the modern use of menus and mouse buttons while - automating and hiding some of the more traditional LinuxCNC controls. It is - the only open-source interface that displays the entire tool path as - soon as a file is opened. - -Backlash:: - (((backlash)))[[glo:Backlash]] The amount of "play" or lost motion that - occurs when direction is reversed in a lead screw. or other mechanical - motion driving system. It can result from nuts that are loose on - leadscrews, slippage in belts, cable slack, "wind-up" in rotary - couplings, and other places where the mechanical system is not "tight". - Backlash will result in inaccurate motion, or in the case of motion - caused by external forces (think cutting tool pulling on the work - piece) the result can be broken cutting tools. This can happen because - of the sudden increase in chip load on the cutter as the work piece is - pulled across the backlash distance by the cutting tool. - -Backlash Compensation:: - (((backlash compensation))) Any technique that attempts to reduce - the effect of backlash without actually removing it from the mechanical - system. This is typically done in software in the controller. This can - correct the final resting place of the part in motion but fails to - solve problems related to direction changes while in motion (think - circular interpolation) and motion that is caused when external forces - (think cutting tool pulling on the work piece) are the source of the - motion. - -Ball Screw:: - (((ball screw)))[[glo:Ballscrew]] A type of lead-screw that uses small - hardened steel balls between the nut and screw to reduce friction. - Ball-screws have very low friction and backlash, but are usually quite - expensive. - -Ball Nut:: - (((ball nut)))[[glo:Ballnut]] A special nut designed for use with a - ball-screw. It contains an internal passage to re-circulate the balls - from one end of the screw to the other. - -CNC:: - (((CNC)))[[glo:CNC]] Computer Numerical Control. The general term used to - refer to computer control of machinery. Instead of a human operator - turning cranks to move a cutting tool, CNC uses a computer and motors - to move the tool, based on a part program. - -Comp:: - (((comp)))[[glo:comp]] A tool used to build, compile and install LinuxCNC HAL - components. - -Configuration(n):: - A directory containing a set of configuration files. Custom - configurations are normally saved in the users home/LinuxCNC/configs - directory. These files include LinuxCNC's traditional INI file and HAL - files. A configuration may also contain several general files that - describe tools, parameters, and NML connections. - -Configuration(v):: - The task of setting up LinuxCNC so that it matches the hardware on a - machine tool. - -Coordinate Measuring Machine:: - (((coordinate measuring machine))) A Coordinate Measuring Machine is - used to make many accurate measurements on parts. These machines can be - used to create CAD data for parts where no drawings can be found, when - a hand-made prototype needs to be digitized for moldmaking, or to check - the accuracy of machined or molded parts. - -Display units:: - (((display units))) The linear and angular units used for onscreen - display. - -DRO:: - (((DRO))) A Digital Read Out is a system of position-measuring devices - attached to the slides of a machine tool, which are connected to a - numeric display showing the current location of the tool with respect to - some reference position. - DROs are very popular on hand-operated machine tools because they - measure the true tool position without backlash, even if the machine - has very loose Acme screws. - Some DROs use linear quadrature encoders to pick up position - information from the machine, and some use methods similar to a - resolver which keeps rolling over. - -EDM:: - (((EDM))) EDM is a method of removing metal in hard or difficult to - machine or tough metals, or where rotating tools would not be able to - produce the desired shape in a cost-effective manner. An excellent - example is rectangular punch dies, where sharp internal corners are - desired. Milling operations can not give sharp internal corners with - finite diameter tools. A 'wire' EDM machine can make internal corners - with a radius only slightly larger than the wire's radius. A 'sinker' - EDM can make internal corners with a radius only slightly larger - than the radius on the corner of the sinking electrode. - -LinuxCNC:: - (((LinuxCNC)))[[glo:LinuxCNC]] The Enhanced Machine Controller. Initially a NIST - project. LinuxCNC is able to run a wide range of motion devices. - -LinuxCNCIO:: - (((LinuxCNCIO)))[[glo:LinuxCNCIO]] The module within LinuxCNC that handles general - purpose I/O, unrelated to the actual motion of the axes. - -LinuxCNCMOT:: - (((LinuxCNCMOT)))[[glo:LinuxCNCMOT]] The module within LinuxCNC that handles the actual - motion of the cutting tool. It runs as a real-time program and directly - controls the motors. - -Encoder:: - (((encoder)))[[glo:Encoder]] A device to measure position. Usually a - mechanical-optical device, which outputs a quadrature signal. The - signal can be counted by special hardware, or directly by the parport - with LinuxCNC. - -Feed:: - (((feed)))[[glo:Feed]] Relatively slow, controlled motion of the tool used - when making a cut. - -Feed rate:: - (((feed rate))) The speed at which a cutting motion occurs. - In auto or mdi mode, feed rate is commanded using an F word. - F10 would mean ten machine units per minute. - -Feedback:: - (((feedback)))[[glo:Feedback]] A method (e.g., quadrature encoder signals) - by which LinuxCNC receives information about the position of motors - -Feedrate Override:: - (((feedrate override)))[[glo:FeedrateOveride]] A manual, operator controlled - change in the rate at which the tool moves while cutting. Often used to - allow the operator to adjust for tools that are a little dull, or - anything else that requires the feed rate to be “tweakedâ€. - -Floating Point Number:: - A number that has a decimal point. (12.300) In HAL it is known as float. - -G-Code:: - (((G-Code)))[[glo:G-Code]] The generic term used to refer to the most - common part programming language. There are several dialects of G-code, - LinuxCNC uses RS274/NGC. - -GUI:: - [[glo:GUI]](((GUI))) Graphical User Interface. - General;; - A type of interface that allows communications between a computer - and a human (in most cases) via the manipulation of icons and other - elements (widgets) on a computer screen. - - LinuxCNC;; - An application that presents a graphical screen to the machine - operator allowing manipulation of the machine and the corresponding - controlling program. - -HAL:: - (((HAL)))[[glo:HAL]] Hardware Abstraction Layer. At the highest - level, it is simply a way to allow a number of - building blocks to be loaded and interconnected to assemble a complex - system. Many of the building blocks are drivers for hardware devices. - However, HAL can do more than just configure hardware drivers. - -Home:: - (((home)))[[glo:Home]] A specific location in the machine's work envelope - that is used to make sure the computer and the actual machine both - agree on the tool position. - -ini file:: - (((INI)))[[glo:inifile]] A text file that contains most of the information - that configures LinuxCNC for a particular machine - -Instance:: - (((Instance)))[[glo:Instance]] One can have an instance of a class or a - particular object. The instance is the actual object created at - runtime. In programmer jargon, the Lassie object is an instance of the - Dog class. - -Joint Coordinates:: - (((joint coordinates)))[[glo:Joint_Coordinates]] These specify the angles - between the individual joints of the machine. See also Kinematics - -Jog:: - (((jog))) Manually moving an axis of a machine. Jogging either moves - the axis a fixed amount for each key-press, or moves the axis at a - constant speed as long as you hold down the key. In manual mode, - jog speed can be set from the graphical interface. - -kernel-space:: - [[glo:kernel-space]] See real-time. - -Kinematics:: - (((kinematics)))[[glo:Kinematics]] The position relationship between world - coordinates and joint coordinates of a machine. There are two types of - kinematics. Forward kinematics is used to calculate world coordinates - from joint coordinates. Inverse kinematics is used for exactly the opposite - purpose. Note that kinematics does not take into account, the forces, - moments etc. on the machine. It is for positioning only. - -Lead-screw:: - (((lead screw)))[[glo:Leadscrew]] An screw that is rotated by a motor to - move a table or other part of a machine. Lead-screws are usually either - ball-screws or acme screws, although conventional triangular threaded - screws may be used where accuracy and long life are not as important as - low cost. - -Machine units:: - (((machine units))) The linear and angular units used for machine - configuration. These units are specified and used in the ini file. - HAL pins and parameters are also generally in machine units. - -MDI:: - (((MDI)))[[glo:MDI]] Manual Data Input. This is a mode of operation where - the controller executes single lines of G-code as they are typed by the - operator. - -NIST:: - (((NIST)))[[glo:NIST]] National Institute of Standards and Technology. - An agency of the Department of Commerce in the United States. - -Offsets:: - (((offsets)))[[glo:Offsets]] - An arbitrary amount, added to the value of something to make it - equal to some desired value. For example, gcode programs are - often written around some convenient point, such as X0, Y0. - Fixture offsets can be used to shift the actual execution point - of that gcode program to properly fit the true location - of the vise and jaws. - Tool offsets can be used to shift the "uncorrected" length - of a tool to equal that tool's actual length. - -Part Program:: - (((part Program)))[[glo:PartProgram]] A description of a part, in a - language that the controller can understand. For LinuxCNC, that language is - RS-274/NGC, commonly known as G-code. - -Program Units:: - (((program units))) The linear and angular units used in a part program. - The linear program units do not have to be the same as the linear machine units. - See G20 and G21 for more information. The angular program units are always - measured in degrees. - -Python:: - General-purpose, very high-level programming language. Used in LinuxCNC - for the Axis GUI, the Stepconf configuration tool, and several G-code - programming scripts. - -Rapid:: - (((rapid)))[[glo:Rapid]] Fast, possibly less precise motion of the tool, - commonly used to move between cuts. If the tool meets the workpiece - or the fixturing during a rapid, it is probably a bad thing! - -Rapid rate:: - (((rapid rate)))[[glo:RapidRate]]The speed at which a rapid motion occurs. - In auto or mdi mode, rapid rate is usually the maximum speed of the machine. - It is often desirable to limit the rapid rate when - testing a g-code program for the first time. - -Real-time:: - (((real-time)))[[glo:real-time]] Software that is intended to meet very - strict timing deadlines. Under Linux, in order to meet these - requirements it is necessary to install RTAI or RTLINUX and build the - software to run in those special environments. For this reason - real-time software runs in kernel-space. - -RTAI:: - (((RTAI)))[[glo:RTAI]] Real Time Application Interface, see - https://www.rtai.org/[https://www.rtai.org/], one of two real-time - extensions for Linux that LinuxCNC can use to achieve real-time performance. - -RTLINUX:: - (((RTLINUX)))[[glo:RTLINUX]] See - http://www.rtlinux.org[http://www.rtlinux.org], one of two real-time - extensions for Linux that LinuxCNC can use to achieve real-time performance. - -RTAPI:: - (((RTAPI)))A portable interface to real-time operating systems - including RTAI and RTLINUX - -RS-274/NGC:: - (((RS274NGC)))[[glo:RS274NGC]] The formal name for the language used by - LinuxCNC part programs. - -Servo Motor:: - (((servo motor)))[[glo:ServoMotor]] Generally, any motor that is used - with error-sensing feedback to correct the position of an actuator. - Also, a motor which is specially-designed to provide improved - performance in such applications. - -Servo Loop:: - (((loop)))[[glo:ServoLoop]] A control loop used to control position or - velocity of an motor equipped with a feedback device. - -Signed Integer:: - (((Signed Integer))) A whole number that can have a positive or - negative sign. In HAL it is known as s32. (A signed 32-bit - integer has a usable range of -2,147,483,647 to +2,147,483,647.) - -Spindle:: - (((spindle)))[[glo:Spindle]] The part of a machine tool that spins - to do the cutting. On a mill or drill, the spindle holds the - cutting tool. On a lathe, the spindle holds the workpiece. - -Spindle Speed Override:: - A manual, operator controlled change in the rate at which the tool - rotates while cutting. Often used to allow the operator to adjust for - chatter caused by the cutter's teeth. Spindle Speed Override assumes - that the LinuxCNC software has been configured to control spindle speed. - -Stepconf:: - An LinuxCNC configuration wizard. It is able to handle many - step-and-direction motion command based machines. It writes a full - configuration after the user answers a few questions about the computer - and machine that LinuxCNC is to run on. - -Stepper Motor:: - (((stepper motor)))[[glo:StepperMotor]] A type of motor that turns in - fixed steps. By counting steps, it is possible to determine how far the - motor has turned. If the load exceeds the torque capability of the - motor, it will skip one or more steps, causing position errors. - -TASK:: - (((TASK)))[[glo:TASK]] The module within LinuxCNC that coordinates the overall - execution and interprets the part program. - -Tcl/Tk:: - (((Tk)))[[glo:Tcl/Tk]] A scripting language and graphical widget toolkit - with which several of LinuxCNCs GUIs and selection wizards were - written. - -Traverse Move:: - (((Traverse Move))) A move in a straight line from the start point to - the end point. - -Units:: - (((units))) See "Machine Units", "Display Units", or "Program Units". - -Unsigned Integer:: - (((Unsigned Integer))) A whole number that has no sign. In HAL - it is known as u32. (An unsigned 32-bit integer has a usable range of - zero to 4,294,967,296.) - -World Coordinates:: - (((world coordinates)))[[glo:World_Coordinates]] This is the absolute - frame of reference. It gives coordinates in terms of a fixed reference - frame that is attached to some point (generally the base) of the - machine tool. - diff --git a/docs/src/common/Integrator_Concepts.txt b/docs/src/common/Integrator_Concepts.txt deleted file mode 100644 index 2fb1c331c62..00000000000 --- a/docs/src/common/Integrator_Concepts.txt +++ /dev/null @@ -1,217 +0,0 @@ -= Integrator Concepts - -[[cha:integrator-concepts]] (((Integrator Concepts))) - -== Stepper Systems - -=== Base Period - -BASE_PERIOD is the 'heartbeat' of your LinuxCNC computer.footnote:[This -section refers to using *stepgen*, LinuxCNC's built-in -step generator. Some hardware devices have their own step -generator and do not use LinuxCNC's built-in one. In that case, refer to -your hardware manual.] Every period, the -software step generator decides if it is time for another step pulse. -A shorter period will allow you to generate more pulses per second, -within limits. But if you go too short, your computer will spend so -much time generating step pulses that everything else will slow to a -crawl, or maybe even lock up. Latency and stepper drive requirements -affect the shortest period you can use. - -Worst case latencies might only happen a few times a minute, and the -odds of bad latency happening just as the motor is changing direction -are low. So you can get very rare errors that ruin a part every once in -a while and are impossible to troubleshoot. - -The simplest way to avoid this problem is to choose a BASE_PERIOD that -is the sum of the longest timing requirement of your drive, and the -worst case latency of your computer. This is not always the best choice. -For example, if you are running a drive with a 20 us direction signal hold time -requirement, and your latency test said you have a maximum latency of -11 us , then if you set the BASE_PERIOD to 20+11 = 31 us you get a -not-so-nice 32,258 steps per second in one mode and 16,129 steps per -second in another mode. - -The problem is with the 20 us hold time requirement. That plus the 11 us -latency is what forces us to use a slow 31 us period. But the LinuxCNC -software step generator has some parameters that let you increase the -various times from one period to several. For example, if 'steplen' footnote:[steplen -refers to a parameter that adjusts the performance of LinuxCNC's built-in step generator, -'stepgen', which is a HAL component. This parameter adjusts the length of the -step pulse itself. Keep reading, all will be explained eventually.] is -changed from 1 to 2, then there will be two periods between the -beginning and end of the step pulse. Likewise, if 'dirhold' footnote:[dirhold -refers to a parameter that adjusts the length of the direction hold time.] is -changed from 1 to 3, there will be at least three periods between the step -pulse and a change of the direction pin. - -If we can use 'dirhold' to meet the 20 us hold time requirement, then the -next longest time is the 4.5 us high time. Add the 11 us latency to the -4.5 us high time, and you get a minimum period of 15.5 us . When you try -15.5 us , you find that the computer is sluggish, so you settle on 16 us . -If we leave 'dirhold' at 1 (the default), then the minimum time between -step and direction is the 16 us period minus the 11 us latency = 5 us , -which is not enough. We need another 15 us . Since the period is 16 us , we -need one more period. So we change 'dirhold' from 1 to 2. Now the minimum -time from the end of the step pulse to the changing direction pin is -5+16=21 us , and we don't have to worry about the drive stepping the -wrong direction because of latency. - -For more information on stepgen see the stepgen section of the HAL manual. - -=== Step Timing - -Step Timing and Step Space on some drives are different. In this case -the Step point becomes important. If the drive steps on the falling -edge then the output pin should be inverted. - -== Servo Systems - -=== Basic Operation - -Servo systems are capable of greater speed and accuracy than equivalent -stepper systems, but are more costly and complex. -Unlike stepper systems, servo systems require some type of position -feedback device, and must be adjusted or 'tuned', as they don't quite -work right out of the box as a stepper system might. These differences -exist because servos are a 'closed loop' system, -unlike stepper motors which are generally run 'open loop'. What does -'closed loop' mean? Let's look at a simplified diagram of how a servomotor -system is connected. - -.Servo Loop -image::images/servo-feedback.png[] - -This diagram shows that the input signal (and the feedback signal) drive -the summing amplifier, the summing amplifier drives the power amplifier, -the power amplifier drives the motor, the motor drives the load -(and the feedback device), and the feedback device (and the input signal) -drive the motor. This looks very much like a circle (a closed loop) where -A controls B, B controls C, C controls D, and D controls A. - -If you have not worked with servo systems before, this will no doubt seem a -very strange idea at first, especially as compared to more normal electronic -circuits, where the inputs proceed smoothly to the outputs, and never go -back.footnote:[If it helps, the closest equivalent to this in the digital -world are 'state machines', 'sequential machines' and so forth, where what -the outputs are doing 'now' depends on what the inputs (and the outputs) -were doing 'before'. If it doesn't help, then nevermind.] If 'everything' -controls 'everything else', how can that ever work, who's in -charge? The answer is that LinuxCNC 'can' control this system, -but it has to do it by choosing one of several control methods. -The control method that LinuxCNC uses, one of the simplest and best, -is called PID. - -PID stands for Proportional, Integral, and Derivative. The Proportional -value determines the reaction to the current error, the Integral value -determines the reaction based on the sum of recent errors, and the -Derivative value determines the reaction based on the rate at which the -error has been changing. They are three common mathematical techniques -that are applied to the task of getting a working process to follow a -set point. In the case of LinuxCNC the process we want to control is actual -axis position and the set point is the commanded axis position. - -.PID Loop -image::images/pid-feedback.png[] - -By 'tuning' the three constants in the PID controller algorithm, the -controller can provide control action designed for specific process -requirements. The response of the controller can be described in terms -of the responsiveness of the controller to an error, the degree to -which the controller overshoots the set point and the degree of system -oscillation. - -=== Proportional term - -The proportional term (sometimes called gain) makes a change to the -output that is proportional to the current error value. A high -proportional gain results in a large change in the output for a given -change in the error. If the proportional gain is too high, the system -can become unstable. In contrast, a small gain results in a small -output response to a large input error. If the proportional gain is too -low, the control action may be too small when responding to system -disturbances. - -In the absence of disturbances, pure proportional control will not -settle at its target value, but will retain a steady state error that -is a function of the proportional gain and the process gain. Despite -the steady-state offset, both tuning theory and industrial practice -indicate that it is the proportional term that should contribute the -bulk of the output change. - -=== Integral term - -The contribution from the integral term (sometimes called reset) is -proportional to both the magnitude of the error and the duration of the -error. Summing the instantaneous error over time (integrating the -error) gives the accumulated offset that should have been corrected -previously. The accumulated error is then multiplied by the integral -gain and added to the controller output. - -The integral term (when added to the proportional term) accelerates -the movement of the process towards set point and eliminates the -residual steady-state error that occurs with a proportional only -controller. However, since the integral term is responding to -accumulated errors from the past, it can cause the present value to -overshoot the set point value (cross over the set point and then create -a deviation in the other direction). - -=== Derivative term - -The rate of change of the process error is calculated by determining -the slope of the error over time (i.e. its first derivative with -respect to time) and multiplying this rate of change by the derivative -gain. - -The derivative term slows the rate of change of the controller output -and this effect is most noticeable close to the controller set point. -Hence, derivative control is used to reduce the magnitude of the -overshoot produced by the integral component and improve the combined -controller-process stability. - -=== Loop tuning - -If the PID controller parameters (the gains of the proportional, -integral and derivative terms) are chosen incorrectly, the controlled -process input can be unstable, i.e. its output diverges, with or -without oscillation, and is limited only by saturation or mechanical -breakage. Tuning a control loop is the adjustment of its control -parameters (gain/proportional band, integral gain/reset, derivative -gain/rate) to the optimum values for the desired control response. - -=== Manual tuning - -A simple tuning method is to first set the I and D values to zero. -Increase the P until the output of the loop oscillates, then the P -should be set to be approximately half of that value for a 'quarter -amplitude decay' type response. Then increase I until any offset is -correct in sufficient time for the process. However, too much I will -cause instability. Finally, increase D, if required, until the loop is -acceptably quick to reach its reference after a load disturbance. -However, too much D will cause excessive response and overshoot. A fast -PID loop tuning usually overshoots slightly to reach the set point more -quickly; however, some systems cannot accept overshoot, in which case -an 'over-damped' closed-loop system is required, which will require a P -setting significantly less than half that of the P setting causing -oscillation. - -== RTAI - -The Real Time Application Interface (RTAI) is used to provide the best -Real Time (RT) performance. The RTAI patched kernel lets you write -applications with strict timing constraints. RTAI gives you the ability -to have things like software step generation which require precise -timing. - -=== ACPI - -The Advanced Configuration and Power Interface (ACPI) has a lot of -different functions, most of which interfere with RT performance (for -example: power management, CPU power down, CPU frequency scaling, etc). -The LinuxCNC kernel (and probably all RTAI-patched kernels) has ACPI -disabled. ACPI also takes care of powering down the system after a -shutdown has been started, and that's why you might need to push the power -button to completely turn off your computer. The RTAI group has been -improving this in recent releases, so your LinuxCNC system may shut off by -itself after all. - diff --git a/docs/src/common/Integrator_Concepts_es.txt b/docs/src/common/Integrator_Concepts_es.txt deleted file mode 100644 index 086d218e6c4..00000000000 --- a/docs/src/common/Integrator_Concepts_es.txt +++ /dev/null @@ -1,230 +0,0 @@ -= Integrator Concepts - -[[cha:integrator-concepts]] (((Integrator Concepts))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Stepper Systems - -=== Base Period - -BASE_PERIOD is the 'heartbeat' of your LinuxCNC computer.footnote:[This -section refers to using *stepgen*, LinuxCNC's built-in -step generator. Some hardware devices have their own step -generator and do not use LinuxCNC's built-in one. In that case, refer to -your hardware manual.] Every period, the -software step generator decides if it is time for another step pulse. -A shorter period will allow you to generate more pulses per second, -within limits. But if you go too short, your computer will spend so -much time generating step pulses that everything else will slow to a -crawl, or maybe even lock up. Latency and stepper drive requirements -affect the shortest period you can use. - -Worst case latencies might only happen a few times a minute, and the -odds of bad latency happening just as the motor is changing direction -are low. So you can get very rare errors that ruin a part every once in -a while and are impossible to troubleshoot. - -The simplest way to avoid this problem is to choose a BASE_PERIOD that -is the sum of the longest timing requirement of your drive, and the -worst case latency of your computer. This is not always the best choice. -For example, if you are running a drive with a 20 us direction signal hold time -requirement, and your latency test said you have a maximum latency of -11 us , then if you set the BASE_PERIOD to 20+11 = 31 us you get a -not-so-nice 32,258 steps per second in one mode and 16,129 steps per -second in another mode. - -The problem is with the 20 us hold time requirement. That plus the 11 us -latency is what forces us to use a slow 31 us period. But the LinuxCNC -software step generator has some parameters that let you increase the -various times from one period to several. For example, if 'steplen' footnote:[steplen -refers to a parameter that adjusts the performance of LinuxCNC's built-in step generator, -'stepgen', which is a HAL component. This parameter adjusts the length of the -step pulse itself. Keep reading, all will be explained eventually.] is -changed from 1 to 2, then there will be two periods between the -beginning and end of the step pulse. Likewise, if 'dirhold' footnote:[dirhold -refers to a parameter that adjusts the length of the direction hold time.] is -changed from 1 to 3, there will be at least three periods between the step -pulse and a change of the direction pin. - -If we can use 'dirhold' to meet the 20 us hold time requirement, then the -next longest time is the 4.5 us high time. Add the 11 us latency to the -4.5 us high time, and you get a minimum period of 15.5 us . When you try -15.5 us , you find that the computer is sluggish, so you settle on 16 us . -If we leave 'dirhold' at 1 (the default), then the minimum time between -step and direction is the 16 us period minus the 11 us latency = 5 us , -which is not enough. We need another 15 us . Since the period is 16 us , we -need one more period. So we change 'dirhold' from 1 to 2. Now the minimum -time from the end of the step pulse to the changing direction pin is -5+16=21 us , and we don't have to worry about the drive stepping the -wrong direction because of latency. - -For more information on stepgen see the stepgen section of the HAL manual. - -=== Step Timing - -Step Timing and Step Space on some drives are different. In this case -the Step point becomes important. If the drive steps on the falling -edge then the output pin should be inverted. - -== Servo Systems - -=== Basic Operation - -Servo systems are capable of greater speed and accuracy than equivalent -stepper systems, but are more costly and complex. -Unlike stepper systems, servo systems require some type of position -feedback device, and must be adjusted or 'tuned', as they don't quite -work right out of the box as a stepper system might. These differences -exist because servos are a 'closed loop' system, -unlike stepper motors which are generally run 'open loop'. What does -'closed loop' mean? Let's look at a simplified diagram of how a servomotor -system is connected. - -.Servo Loop -image::images/servo-feedback.png[] - -This diagram shows that the input signal (and the feedback signal) drive -the summing amplifier, the summing amplifier drives the power amplifier, -the power amplifier drives the motor, the motor drives the load -(and the feedback device), and the feedback device (and the input signal) -drive the motor. This looks very much like a circle (a closed loop) where -A controls B, B controls C, C controls D, and D controls A. - -If you have not worked with servo systems before, this will no doubt seem a -very strange idea at first, especially as compared to more normal electronic -circuits, where the inputs proceed smoothly to the outputs, and never go -back.footnote:[If it helps, the closest equivalent to this in the digital -world are 'state machines', 'sequential machines' and so forth, where what -the outputs are doing 'now' depends on what the inputs (and the outputs) -were doing 'before'. If it doesn't help, then nevermind.] If 'everything' -controls 'everything else', how can that ever work, who's in -charge? The answer is that LinuxCNC 'can' control this system, -but it has to do it by choosing one of several control methods. -The control method that LinuxCNC uses, one of the simplest and best, -is called PID. - -PID stands for Proportional, Integral, and Derivative. The Proportional -value determines the reaction to the current error, the Integral value -determines the reaction based on the sum of recent errors, and the -Derivative value determines the reaction based on the rate at which the -error has been changing. They are three common mathematical techniques -that are applied to the task of getting a working process to follow a -set point. In the case of LinuxCNC the process we want to control is actual -axis position and the set point is the commanded axis position. - -.PID Loop -image::images/pid-feedback.png[] - -By 'tuning' the three constants in the PID controller algorithm, the -controller can provide control action designed for specific process -requirements. The response of the controller can be described in terms -of the responsiveness of the controller to an error, the degree to -which the controller overshoots the set point and the degree of system -oscillation. - -=== Proportional term - -The proportional term (sometimes called gain) makes a change to the -output that is proportional to the current error value. A high -proportional gain results in a large change in the output for a given -change in the error. If the proportional gain is too high, the system -can become unstable. In contrast, a small gain results in a small -output response to a large input error. If the proportional gain is too -low, the control action may be too small when responding to system -disturbances. - -In the absence of disturbances, pure proportional control will not -settle at its target value, but will retain a steady state error that -is a function of the proportional gain and the process gain. Despite -the steady-state offset, both tuning theory and industrial practice -indicate that it is the proportional term that should contribute the -bulk of the output change. - -=== Integral term - -The contribution from the integral term (sometimes called reset) is -proportional to both the magnitude of the error and the duration of the -error. Summing the instantaneous error over time (integrating the -error) gives the accumulated offset that should have been corrected -previously. The accumulated error is then multiplied by the integral -gain and added to the controller output. - -The integral term (when added to the proportional term) accelerates -the movement of the process towards set point and eliminates the -residual steady-state error that occurs with a proportional only -controller. However, since the integral term is responding to -accumulated errors from the past, it can cause the present value to -overshoot the set point value (cross over the set point and then create -a deviation in the other direction). - -=== Derivative term - -The rate of change of the process error is calculated by determining -the slope of the error over time (i.e. its first derivative with -respect to time) and multiplying this rate of change by the derivative -gain. - -The derivative term slows the rate of change of the controller output -and this effect is most noticeable close to the controller set point. -Hence, derivative control is used to reduce the magnitude of the -overshoot produced by the integral component and improve the combined -controller-process stability. - -=== Loop tuning - -If the PID controller parameters (the gains of the proportional, -integral and derivative terms) are chosen incorrectly, the controlled -process input can be unstable, i.e. its output diverges, with or -without oscillation, and is limited only by saturation or mechanical -breakage. Tuning a control loop is the adjustment of its control -parameters (gain/proportional band, integral gain/reset, derivative -gain/rate) to the optimum values for the desired control response. - -=== Manual tuning - -A simple tuning method is to first set the I and D values to zero. -Increase the P until the output of the loop oscillates, then the P -should be set to be approximately half of that value for a 'quarter -amplitude decay' type response. Then increase I until any offset is -correct in sufficient time for the process. However, too much I will -cause instability. Finally, increase D, if required, until the loop is -acceptably quick to reach its reference after a load disturbance. -However, too much D will cause excessive response and overshoot. A fast -PID loop tuning usually overshoots slightly to reach the set point more -quickly; however, some systems cannot accept overshoot, in which case -an 'over-damped' closed-loop system is required, which will require a P -setting significantly less than half that of the P setting causing -oscillation. - -== RTAI - -The Real Time Application Interface (RTAI) is used to provide the best -Real Time (RT) performance. The RTAI patched kernel lets you write -applications with strict timing constraints. RTAI gives you the ability -to have things like software step generation which require precise -timing. - -=== ACPI - -The Advanced Configuration and Power Interface (ACPI) has a lot of -different functions, most of which interfere with RT performance (for -example: power management, CPU power down, CPU frequency scaling, etc). -The LinuxCNC kernel (and probably all RTAI-patched kernels) has ACPI -disabled. ACPI also takes care of powering down the system after a -shutdown has been started, and that's why you might need to push the power -button to completely turn off your computer. The RTAI group has been -improving this in recent releases, so your LinuxCNC system may shut off by -itself after all. - diff --git a/docs/src/common/Integrator_Concepts_fr.txt b/docs/src/common/Integrator_Concepts_fr.txt deleted file mode 100644 index e21358276e7..00000000000 --- a/docs/src/common/Integrator_Concepts_fr.txt +++ /dev/null @@ -1,254 +0,0 @@ -:lang: fr -:toc: - -= Concepts importants pour l'intégrateur - -[[cha:concepts-integrateur]] (((Concepts intégrateur))) - -== Système pas à pas - -=== Période de base - -Période de base (BASE_PERIOD) est le _métronome_ de -l'ordinateur de LinuxCNC. footnote:[Cette section fait référence à -l'utilisation de _stepgen_ le générateur de pas intégré à LinuxCNC. -Certains dispositifs matériels ont leur propre générateur de pas -et n'utilisent pas celui incorporé à LinuxCNC. Dans ce cas se référer -au manuel du matériel concerné.] A chaque période le logiciel de -génération de pas calcule si c'est le moment pour une autre impulsion -de pas. Une période de base plus courte permet de produire plus -d'impulsions de pas par seconde, mais si elle est trop courte l'ordinateur -passera tout son temps à générer les impulsions et les autres services -seront ralentis voir bloqués. -La latence et les besoins des pilotes des moteurs pas à pas déterminent -la durée minimum de la période que nous pouvons utiliser. - -La latence la plus défavorable peut ne se présenter que quelquefois par -minute ou même moins. La probabilité que cela se produise au même -moment qu'un changement de direction du moteur et faible. Donc -on peut obtenir des erreurs très rares et intermittentes qui -ruinent une production de temps en temps et il est impossible -d'intervenir pour régler le problème. - -La façon la plus simple d'éviter ce problème est de choisir un -BASE_PERIOD qui est la somme des plus longues exigences de temps -de votre périphérique et le pire cas de latence de votre ordinateur. -Ceci n'est pas toujours le meilleur choix. - -Par exemple si le pilote moteur a besoin d'un maintien du signal -de direction d'une durée de 20 µs est que la latence maximum est -de 11 µs, la période de base sera de 11+20=31 µs ce qui donne une fréquence -de génération de pas de 32258 pas par seconde dans un mode -et de 16129 pas par seconde dans un autre mode. - -Le problème est qu'avec les exigences de 20us pour le maintien -du signal et les 11 µs de latence cela nous force à utiliser une -période défavorable de 31 µs. Mais le générateur de pas du -logiciel LinuxCNC a quelques paramètres qui nous laissent régler -les divers temps d'une période de différentes manières. - -Par exemple, si _steplen_ footnote:[Steplen se réfère à un paramètre -qui ajuste la performance du générateur de pas incorporé à LinuxCNC, -_stepgen_, qui est un composant de HAL. Ce paramètre ajuste -la longueur de l'impulsion de pas. Continuez à lire, on expliquera -tous finalement.] est changé de 1 à 2, alors il y aura deux -périodes entre le commencement et la fin de l'impulsion de pas. -De même, si _dirhold_ footnote:[dirhold se réfère à un paramètre -qui adapte la longueur du maintien du signal de commande -de direction.] est changé de 1 à 3, il y aura au moins trois périodes -entre l'impulsion de pas et un changement d'état de la commande -de direction. - -Si nous pouvons utilisez _dirhold_ pour répondre aux exigences des 20µs -de maintiens du signal de direction, le prochain délai à respecter est -la durée de 4.5 µs du signal de pas haut, additionnons les 11 µs de -latence au 4.5 µs de signal haut et nous obtenons une période minimum -de 15.5 µs. -Lorsque nous essayons la valeur de 15.5, nous trouvons que l'ordinateur -est lent, donc nous réglons sur 16 µs. -Si nous laissons _dirhold_ à 1 (par défaut) alors temps minimum entre -un pas et le changement de direction est de 16 µs moins les 11 µs -de latence ce qui nous donne 5µs. Ce qui n'est pas suffisant il nous -manque 15 µs. Puisque la période est 16 µs, nous avons besoin d'encore -une période. Dans ce cas nous changeons _dirhold_ de 1 à 2. Maintenant -le temps minimal entre la fin de l'impulsion de pas et le changement -du signal de direction et de 5+16=21 µs. Nous n'avons plus à -nous inquiéter d'une erreur de direction à cause de la latence. - -Pour plus d'informations sur stepgen voir la section stepgen du manuel -de HAL. - -=== Timing des pas - -Sur certain pilote moteur le rapport entre la durée des espaces et -la durée des impulsions n'est pas égal, dans ce cas -le point (le moment) du pas est important. Si le pas se déclenche -sur le front descendant alors, la broche de sortie doit être inversée. - -== Systèmes à servomoteurs - -=== Opération de base - -Les systèmes à servomoteurs sont capables de vitesses plus élevées pour -une précision équivalente au moteur pas-à-pas, mais ils sont plus coûteux -et complexes. Contrairement aux systèmes pas à pas, les servo-systèmes -nécessitent un dispositif de rétroaction pour se positionner. -Ils ne fonctionnent pas immédiatement sorti de la boite et -ils doivent être calibrés pour fonctionner contrairement aux moteurs -pas à pas. - -Cette différence s'explique par le mode de régulation différent -des deux systèmes. Les servosystèmes sont régulés en _boucle fermée_ -et le moteur pas à pas en _boucle ouverte_. - -Que signifie _boucle fermée_ ? Regardons un schéma simplifié et -la façon dont un système de servomoteur fonctionne. - -.Boucle fermée -image::images/servo-feedback_fr.png[] - -Ce diagramme montre que le signal de consigne (de commande) et le signal -de retour pilotent l'amplificateur sommateur, ensuite celui-ci pilote -l'amplificateur de puissance, qui pilote le moteur, qui actionne -la charge et le dispositif de retour d'information qui fournis -le signal de retour. Cela se perçoit comme une boucle fermée où -A contrôle B, B contrôle C, C contrôle D et D contrôle A. - -Si vous n'avez pas travaillé avec des systèmes à servomoteurs auparavant, -cela sera sans aucun doute étrange au premier abord, surtout -par rapport aux plus normal des circuits électroniques, où le bon -déroulement des entrées vers les sorties est de ne jamais revenir -en arrière.footnote:[Si cela peut aider, l'équivalent le plus proche -dans le monde numérique ce sont les machines d'état, -machines séquentielles où l'état des sorties à ce moment dépend -de l'état que les entrées et sorties avaient avant. Si cela n'aide -pas, alors passons.] - -Si tout contrôle tout le reste comment cela peut-il fonctionner, qui -en a la charge ? La réponse est que LinuxCNC peut contrôler ce système, -mais il doit le faire en choisissant une des différentes méthodes -de contrôle. - -La méthode de contrôle qu'utilise LinuxCNC, est l'une des plus simples -et la meilleure appelée PID. -PID est l'acronyme de **P**roportionnelle, **I**ntégrale et **D**érivée. -La valeur proportionnelle détermine la réaction à l'erreur actuelle, -la valeur intégrale détermine la réaction basée sur la somme d'erreurs -récentes et la valeur dérivée détermine la réaction basée sur -la vitesse de variation de l'erreur. Ce sont trois techniques communes -de mathématique qui sont appliquées pour fournir un processus de suivi -d'une consigne. Dans le cas de LinuxCNC le processus que nous -voulons contrôler est l'actuelle position de l'axe et le point de -consigne qui est la position commandée l'axe. - -.Boucle PID -image::images/pid-feedback_fr.png[] - -En ajustant trois composantes (proportionnelle, intégrale et dérivée) -dans l'algorithme du contrôleur PID, nous pouvons concevoir -une régulation qui s'adapte aux exigences de processus spécifiques. -La réponse du contrôleur peut être décrite en trois termes -de réactivité : une erreur, de tolérance, au dépassement du point -de consigne et au taux d'oscillation du système. - -=== Terme proportionnel - -Le terme proportionnel appelé plus souvent gain proportionnel -applique un changement à la sortie qui est proportionnelle a la valeur -d'erreur courante. Un gain élevé provoque un grand changement à -la sortie pour un petit changement de l'erreur. Si le gain est -trop haut, le système peut devenir instable. Au contraire, -un gain trop faible aboutit à une faible réponse de la sortie -en réaction à une grande erreur d'entrée. Si le gain proportionnel -est trop bas, il peut être trop faible pour répondre aux perturbations -du système. - -En l'absence de perturbation, un contrôle proportionnel pur ne -se positionnera pas à sa valeur cible, mais conservera un état -d'erreur statique qui est une fonction du gain proportionnel et -du gain du processus. Malgré la compensation de l'état stationnaire, -tant la théorie des systèmes asservis que la pratique industrielle -indiquent que c'est le terme proportionnel qui devrait contribuer -à la plus grande partie du changement de la sortie. - -=== Terme intégral - -La contribution du terme intégral est proportionnelle à l'amplitude -de l'erreur et à sa durée. La somme des erreurs instantanées au fil -du temps (intégration) donne la compensation accumulée qui devrait -avoir été corrigée précédemment. L'intégration de l'erreur est alors -multipliée par le gain d'intégral et ajoutée à la sortie du contrôleur. - -Le terme intégral lorsqu'il est ajouté augmente le mouvement -du processus vers la consigne, il élimine l'erreur de statisme qui -se produit avec un régulateur proportionnel seul. Cependant, puisque -le terme intégral doit répondre aux erreurs accumulées par le passé, -il peut causer un dépassement de la valeur de consigne actuelle -(dépasser le point de consigne et puis créer un écart dans l'autre sens). - -=== Terme dérivé - -Le taux de variation de l'erreur du processus est calculé en -déterminant la pente de l'erreur au cours du temps (c'est-à-dire -sa dérivée première en relation avec le temps) et en multipliant ce -taux de changement par le gain de dérivé. -Le terme dérivé ralentit le taux de variation de la sortie -du régulateur, cet effet est plus visible à proximité du point -de consigne du contrôleur. -Par conséquent, le contrôle dérivé est utilisé pour réduire l'ampleur du -dépassement que produit la composante intégrale et pour améliorer la stabilité -de la combinaison contrôleur processus. - -=== Réglage de la boucle - -Si les paramètres du contrôleur PID (les gains des termes -proportionnel, intégral et dérivé) sont mal choisis, -l'entrée du processus contrôlé peut être instable, c'est-à-dire -sa sortie diverge, avec ou sans oscillation et, est limitée seulement -par la saturation ou la rupture mécanique. Le réglage fin d'une boucle -de contrôle consiste en l'ajustement de ses paramètres de contrôle -(gain proportionnel, gain intégral, gain dérivé) aux valeurs optimums -pour la réponse désirée. - -=== Réglage manuel - -Une méthode de réglage simple consiste à régler les valeurs *I* et *D* -à zéro. Augmentons la valeur de *P* jusqu'à ce que la sortie oscille, -*P* devrait être paramétré approximativement à la moitié de cette valeur -pour diminuer d'un quart l'amplitude de ce type de réponse. Augmentons -sa valeur pour que n'importe quelle compensation soit correcte dans un -temps raisonnable pour le processus. Cependant, une valeur trop élevée -apporte de l'instabilité. Ensuite, augmentons la valeur de *D* pour que -la réponse soit suffisamment rapide pour atteindre sa référence après -une perturbation de charge. Cependant, une valeur trop grande de *D* -provoquera une réponse excessive et un dépassement. -Un réglage de boucle PID rapide a un dépassement léger pour atteindre -le point de consigne plus rapidement, cependant, certains systèmes ne -peuvent accepter de dépassement, dans ce cas, une boucle fermée -sur-amortie est nécessaire, cela requière une valeur *P* -significativement plus basse que celle provoquant l'oscillation. - -== RTAI - -La _Real Time Application Interface_ (RTAI) Interface d'application -temps réel est utilisée pour fournir la meilleure performance temps réel. -Le noyau patché RTAI permet d'écrire des applications avec des -contraintes temporelles strictes. RTAI donne la possibilité -d'avoir des logiciels comme ceux de génération de pas qui ont besoin -d'un timing précis. - -=== ACPI - -L'Advanced Configuration and Power Interface (ACPI) a de nombreuses -et différentes fonctions, dont la plupart interfèrent avec les -performances du système temps réel. (Pour par exemple: la gestion de -l'énergie, la réduction de puissance du processeur, la variation de -fréquence du CPU, etc.) -Le noyau LinuxCNC (et probablement tous les noyaux RTAI-patché) ont les -fonctions ACPI désactivées. ACPI prend également soin de mettre hors -tension le système après qu'un arrêt système a été commandé, et -c'est pourquoi vous pourriez avoir besoin de presser sur le bouton -d'alimentation pour éteindre complètement votre ordinateur. -Le groupe RTAI a amélioré cela dans les versions récentes, de sorte -que votre système LinuxCNC peut éteindre le système par lui-même. - diff --git a/docs/src/common/Linux_FAQ.txt b/docs/src/common/Linux_FAQ.txt deleted file mode 100644 index 3bddc3f5635..00000000000 --- a/docs/src/common/Linux_FAQ.txt +++ /dev/null @@ -1,293 +0,0 @@ -= Linux FAQ - -[[cha:linux-faq]] (((Linux FAQ))) - -These are some basic Linux commands and techniques for new to Linux -users. More complete information can be found on the web or by using -the man pages. - -== Automatic Login (((Automatic Login))) - -When you install LinuxCNC with the Ubuntu LiveCD the default is to have to -log in each time you turn the computer on. To enable automatic login go -to 'System > Administration > Login Window'. If it is a fresh install the -Login Window might take a second or three to pop up. You will have to -have your password that you used for the install to gain access to the -Login Window Preferences window. In the Security tab check off Enable -Automatic Login and pick a user name from the list (that would be you). - -== Automatic Startup (((Automatic Startup))) - -To have LinuxCNC start automatically with your config after turning on the -computer go to 'System > Preferences > Sessions > Startup Applications', -click Add. Browse to your config and select the .ini file. When the file -picker dialog closes, add emc and a space in front of the path to your -.ini file. - -Example: - ----- -emc /home/mill/emc2/config/mill/mill.ini ----- - -== Man Pages[[sec:Man-Pages]] - -(((Man Pages))) - -Man pages are automatically generated manual pages in most cases. Man -pages are usually available for most programs and commands in Linux. - -To view a man page open up a terminal window by going to 'Applications > -Accessories > Terminal'. For example if you wanted to find out something -about the find command in the terminal window type: - ----- -man find ----- - -Use the Page Up and Page Down keys to view the man page and the Q key -to quit viewing. - -== List Modules - -Sometimes when troubleshooting you need to get a list of modules that -are loaded. In a terminal window type: - ----- -lsmod ----- - -If you want to send the output from lsmod to a text file in a terminal -window type: - ----- -lsmod > mymod.txt ----- - -The resulting text file will be located in the home directory if you -did not change directories when you opened up the terminal window and -it will be named mymod.txt or what ever you named it. - -== Editing a Root File[[sec:Editing-a-Root-File]] - -(((Editing a Root File))) - -When you open the file browser and you see the Owner of the file is -root you must do extra steps to edit that file. Editing some root files -can have bad results. Be careful when editing root files. Generally, you -can open and view most root files, but they will open in 'read only' -mode. - -=== The Command Line Way - -(((sudo gedit))) - -Open up 'Applications > Accessories > Terminal'. - -In the terminal window type - ----- -sudo gedit ----- - -Open the file with File > Open > Edit - -=== The GUI Way - -(((gksudo))) - - . Right click on the desktop and select Create Launcher - . Type a name in like sudo edit - . Type 'gksudo "gnome-open %u"' as the command and save the launcher to - your desktop - . Drag a file onto your launcher to open and edit - -=== Root Access - -In Ubuntu you can become root by typing in "sudo -i" in a terminal -window then typing in your password. Be careful, because you can really -foul things up as root if you don't know what you're doing. - -== Terminal Commands[[sec:Terminal-Commands]] - -(((Terminal Commands))) - -=== Working Directory (((Working Directory)))(((pwd))) - -To find out the path to the present working directory in the terminal -window type: - ----- -pwd ----- - -=== Changing Directories - -(((Changing Directories)))(((cd))) - -To move up one level in the terminal window type: - ----- -cd .. ----- - -To move up two levels in the terminal window type: - ----- -cd ../.. ----- - -To move down to the emc2/configs subdirectory in the terminal window -type: - ----- -cd emc2/configs ----- - -=== Listing files in a directory - -(((Listing files in a directory)))(((dir)))(((ls))) - -To view a list of all the files and subdirectories in the terminal window type: - ----- -dir ----- - -or - ----- -ls ----- - -=== Finding a File - -(((Finding a File)))(((find))) - -The find command can be a bit confusing to a new Linux user. The basic -syntax is: - ----- -find starting-directory parameters actions ----- - -For example to find all the .ini files in your emc2 directory you -first need to use the pwd command to find out the directory. + -Open a new terminal window and type: - ----- -pwd ----- - -And pwd might return the following result: - ----- -/home/joe ----- - -With this information put the command together like this: - ----- -find /home/joe/linuxcnc -name \*.ini -print ----- - -The -name is the name of the file your looking for and the -print -tells it to print out the result to the terminal window. -The \*.ini tells find to return all files that have the .ini extension. -The backslash is needed to escape the shell meta-characters. See the find -man page for more information on find. - -=== Searching for Text - -(((Searching for Text)))(((grep))) - ----- -grep -irl 'text to search for' * ----- - -This will find all the files that contain the 'text to search for' in the -current directory and all the subdirectories below it, while -ignoring the case. The -i is for ignore case and the -r is for -recursive (include all subdirectories in the search). The -l option will -return a list of the file names, if you leave the -l off you will also -get the text where each occourance of the "text to search for" is found. -The * is a wild card for search all files. See the grep man page for more -information. - -=== Bootup Messages - -To view the bootup messages use "dmesg" from the command window. To -save the bootup messages to a file use the redirection operator, like -this: - ----- -dmesg > bootmsg.txt ----- - -The contents of this file can be copied and pasted on line to share -with people trying to help you diagnose your problem. - -To clear the message buffer type this: - ----- -sudo dmesg -c ----- - -This can be helpful to do just before launching LinuxCNC, so that there will -only be a record of information related to the current launch of LinuxCNC. - -To find the built in parallel port address use grep to filter the information -out of dmesg. - -After boot up open a terminal and type: - ----- -dmesg|grep parport ----- - -== Convenience Items - -=== Terminal Launcher - -If you want to add a terminal launcher to the panel bar on top of the -screen you typically can right click on the panel at the top of the -screen and select "Add to Panel". Select Custom Application Launcher -and Add. Give it a name and put gnome-terminal in the command box. - -== Hardware Problems - -=== Hardware Info - -To find out what hardware is connected to your motherboard in a -terminal window type: - ----- -lspci -v ----- - -=== Monitor Resolution - -During installation Ubuntu attempts to detect the monitor settings. If -this fails you are left with a generic monitor with a maximum -resolution of 800x600. - -Instructions for fixing this are located here: - -https://help.ubuntu.com/community/FixVideoResolutionHowto[https://help.ubuntu.com/community/FixVideoResolutionHowto] - -== Paths - -.Relative Paths -Relative paths are based on the startup directory which is the directory -containing the ini file. Using relative paths can facilitate relocation of -configurations but requires a good understanding of linux path specifiers. - -.... - ./f0 is the same as f0, e.g., a file named f0 in the startup directory - ../f1 refers to a file f1 in the parent directory - ../../f2 refers to a file f2 in the parent of the parent directory - ../../../f3 etc. -.... - - -// vim: set syntax=asciidoc: diff --git a/docs/src/common/Linux_FAQ_es.txt b/docs/src/common/Linux_FAQ_es.txt deleted file mode 100755 index 6af2f0454ae..00000000000 --- a/docs/src/common/Linux_FAQ_es.txt +++ /dev/null @@ -1,295 +0,0 @@ -= Linux FAQ - -[[cha:linux-faq]] (((Linux FAQ))) - -Estos son algunos comandos básicos y técnicas para nuevos usuarios de -linux. Información más completa se puede encontrar en la web o mediante -las páginas del manual con el comando man. - -== Acceso automático (((Automatic Login))) - -Al instalar linuxCNC con el CD de Ubuntu por defecto se tiene que iniciar -sesión cada vez que encienda el ordenador. Para activar autentificacion automática -valla a 'System > Administration > Login Window'. Si se trata -de una nueva instalación de la ventana de inicio de sesión puede tardar -un segundo o tres para apareser. Usted tiene que tener la contraseña que utilizo -para la instalación para acceder a la ventana de configuracion de inicio. -En la pestaña seguridad marque habilitar acceso automático y elija un nombre de -usuario de la lista (seleecione su nombre de usuario). - -== Inicio automático (((Automatic Startup))) - -Para tener un inicio automático de linuxCNC con su configuración después -de encender el equipo valla a 'System > Preferences > Sessions > Startup Applications', -seleccione la opcion agregar nuevo. -Valla a su carpeta de configuración y -seleccione el archivo .ini. Cuando el cuadro de dialogo selector de -archivos se cierra, añadir emc y un espacio al frente de la ruta a su archivo .ini. - -Ejemplo: - ----- -emc /home/mill/emc2/config/mill/mill.ini ----- - -== Páginas de manual [[sec:Man-Pages]] - -(((Man Pages))) - -Las páginas del manual son generadas automáticamente en la mayoría de los casos. -Páginas del manuales estan generalmente disponibles para la -mayoría de los programas y comandos de linux. - -Para abrir una página del manual utilice una terminar, -la terminal se puede abrir usando la ruta 'Applications > -Accessories > Terminal'. -Por ejemplo si quiere encontrar -algo acerca del comando de busqueda "find" tecle: - ----- -man find ----- - -Utilice los botones página hacia arriba y pagina hacia abajo para ver las páginas del manual -y la tecla Q para salir de la visualizacion. - - -== Lista de módulos - -A veces para soluciónar algun problemas que usted necesita obtener una -lista de módulos que se encuentran cargados. En una ventana de terminal tecle: - ----- -lsmod ----- - -Si desea enviar la salida de lsmod a un archivo de texto tecle: - ----- -lsmod > mymod.txt ----- - -El archivo de texto resultante se colocara en el directorio de inicio -si usted no cambio de directorio cuando abrio la terminal y -será nombrado mymod.txt o como usted lo haya nombrado. - - -== Edición de archivos raíz [[sec:Editing-a-Root-File]] - -(((Editing a Root File))) - -Al abrir el explorador de archivos y ver que el propietario del -archivo es el usuario raíz, se tienen que hacer algunos pasos adicionales para modificar el archivo. -La edición de algunos archivos puede tener malos resultados. Tenga cuidado -al editar los archivos de raíz, generalmente usted puede ver y abrir los archivos raíz -en modo de 'solo lectura'. - - -=== El camino de línea de comandos - -(((sudo gedit))) - -Abrir 'Applications > Accessories > Terminal'. - -En la ventana de terminal tecle. - ----- -sudo gedit ----- - -Abrir el archivo con el menu File > Open > Edit, proceda a editar. - -=== Usando la interface grafica - -(((gksudo))) - - .Haga clic derecho sobre el escritorio y seleccione crear lansador - .Escriba nombre en como editar sudo - .Escriba 'gksudo "gnome-open %u"' como el comando y guarda el lansador - en su escritorio. - .Arrastré el archivo a su lansador para abrir y editar. - -=== Acceso tipo super usuario - - -En ubuntu puede convertirse en super usuario tecleando "sudo -i" en una terminal -devera de escribir su contraseña. Tenga -cuidado porque usted puede dañar su instalacion si no sabe lo que esta haciendo. - -== Comandos en la terminal [[sec:Terminal-Commands]] - -(((Terminal Commands))) - -=== Directorio de trabajo (((Working Directory)))(((pwd))) - -Para encontrar la ruta del directorio actual de trabajo en la terminal tecle: - ----- -pwd ----- - -=== Cambiar de directorios - -(((Changing Directories)))(((cd))) - -Para subir un nivel en la terminal tecle: - ----- -cd .. ----- - -Para subir dos niveles en la terminal tecle: - ----- -cd ../.. ----- - -Para desplazarse hacia abajo hacia el subdirectorio emc2/configs en la terminal tecle: - ----- -cd emc2/configs ----- - -=== Listado e los archivos en un directorio - -(((Listing files in a directory)))(((dir)))(((ls))) - -Para ver una lista de todos los archivos y subdirecciones en la terminal tecle: - ----- -dir ----- - -ó - ----- -ls ----- - -=== Encontrar un archivo - -(((Finding a File)))(((find))) - -El comando encontrar puede ser un poco confuso para un usuario nuevo de linux. -La sintaxis básica es la siguiente: - ----- -find directorio-inicio parametros acciones ----- - -Por ejemplo para encontrar todos los archivos .ini en el directorio de EMC2 -primero tiene que usar el comando pwd para ver el directorio. + abra una ventana -terminal y escriba. - ----- -pwd ----- - -y pwd podría devolver el siguiente resultado: - ----- -/home/joe ----- - -Con esta información se pondrá el comando conjunto de esta manera: - ----- -find /home/joe/emc2 -name \*.ini -print ----- - -El -name es el nombre del archivo que se busca y -print muestra -el resultado en la ventana de terminal. El \*.ini indica devolver -todos los archivos que tienen la extensión .ini. -La diagonal se requiere para escapar los meta caracteres de la consola. -sidesea mas informacion al respecto vea las paginas de man. - -=== Búsqueda de texto - -(((Searching for Text)))(((grep))) - ----- -grep -irl 'buscar' * ----- - -Este comando encuentra todos los archivos que contienen el texto 'buscar' -en el directorio actual y todos los subdirectorios por debajo de este, -sin tener en cuenta el uso de mayusculas. El -i es para ignorar mayusculas y el -r es recursivo -(incluir todos los subdirectorios en la búsqueda). La opcion -l retornara una lista de los nombres de archivo, si no se usa -l tambien se obtendra el texto donde fue encontrada la ocurrencia de lo buscado dentro de 'buscar'. -El * es un comodín para buscar todos los archivos. - -=== Mensaje de arranque - -Para ver los mensajes de arranque usar "dmesg" en la ventana de comandos. -Para guardar los mensajes de arranque en un archivo use el operador de redirección, -de esta manera: - ----- -dmesg > bootmsg.txt ----- - -El contenido de este archivo puede ser copiado y pegado en línea para -compartir con la gente que le este intentando ayudar a diagnosticar un problema. - -Para borrar el mensaje de buffer tecle: - ----- -sudo dmesg -c ----- - -Esto puede ser útil de hacer justo antes del arranque de LinuxCNC, por lo que solo -abra un registro de información relacionada con el lanzamiento actual de LinuxCNC. - -Para encontrar la direccion de un puerto paralelo integrado use grep para -filtrar la información producida por dmesg. - -Después del arranque abrir una terminal y escriba: - ------ -dmesg|grep parport ------ - -== Articulos convenientes - -=== Iniciador de terminal - -Si quiere añadir un iniciador de terminal en la barra del panel en la parte superior -de la pantalla normalmente puede hacer clic derecho en el panel en la parte superior -de la pantalla y seleccionar "añadir al panel". Seleccione lanzador de aplicación -personalizado y agregar. Dele un nombre y use el comando gnome-terminal en la caja de comando. - -== Problemas de Hardware - -=== Información Hardware - -Para encontrar que Hardware está conectado a la placa base -en una ventana de terminal tecle. - ----- -lspci -v ----- - -=== Resolución del monitor - - -Durante la instalación ubuntu intentara detectar la configuración del monitor. Si esto no funciona -el sistema se instalara con un máximo de resolución 800x600. - -Instrucciones para la fijación de este se encuentra aquí: - -https://help.ubuntu.com/community/FixVideoResolutionHowto[https://help.ubuntu.com/community/FixVideoResolutionHowto] - -== Paths -.Paths relativos -Los phats relativos se basan en el directorio de arranque que contiene -el archivo ini. Usar paths relativos puede facilitar la relocalizacion -de archivos de configuracion pero requiere una buena comprencion de los especificadores de path linux. - -.... - ./f0 es lo mismo que f0, e.g., un archivo llamado f0 en el directorio de arranque - ../f1 se refiere a un archivo llamado f1 en el directorio padre - ../../f2 se refiere a un archivo llamado f2 en el directorio padre del padre - ../../../f3 etc. -.... - - -// vim: set syntax=asciidoc: diff --git a/docs/src/common/Linux_FAQ_fr.txt b/docs/src/common/Linux_FAQ_fr.txt deleted file mode 100644 index d6ceae57f83..00000000000 --- a/docs/src/common/Linux_FAQ_fr.txt +++ /dev/null @@ -1,242 +0,0 @@ -:lang: fr -:toc: - -= Petite FAQ Linux - -[[cha:FAQ-Linux]] (((FAQ Linux))) - - -Voici quelques commandes et techniques de base pour l'utilisateur -débutant sous Linux. Beaucoup d'autres informations peuvent être -trouvées sur http://www.linuxcnc.org/[le site web de LinuxCNC] ou dans les man -pages. - -== Login automatique - -Quand vous installez LinuxCNC avec le CD-Live Ubuntu, par défaut vous -devez passer par la fenêtre de connexion à chaque démarrage du PC. Pour -activer le login automatique ouvrez le menu -_Système → Administration → Fenêtre de connexion_. -Si l'installation est -récente la fenêtre de connexion peut prendre quelques secondes pour -s'ouvrir. Vous devez entrer le mot de passe utilisé pour l'installation -pour accéder à la fenêtre des préférences. Ouvrez alors l'onglet -_Sécurité_, cochez la case _Activer les connexions automatiques_ et -saisissez votre nom d'utilisateur ou choisissez en un dans la liste -déroulante. Vous êtes maintenant dispensé de la fenêtre de connexion. - -== Les Man Pages[[sec:Man-Pages]] - -(((Man Pages))) - -Les Man pages sont des pages de manuel générées automatiquement le -plus souvent. Les Man pages existent pour quasiment tous les programmes -et les commandes de Linux. - -Pour visualiser une man page ouvrez un terminal depuis _Applications → - Accessoires → Terminal_. Par exemple si vous voulez trouver quelques -choses concernant la commande _find_, tapez alors dans le terminal: ----- -man find ----- - -Utilisez les touches _Vers le haut_ et _Vers le bas_ pour faire -défiler le texte et la touche *Q* pour quitter. - -== Lister les modules du noyau - -En cas de problème il est parfois utile de connaître la liste des -modules du noyau qui sont chargés. Ouvrez une console et tapez: ----- -lsmod ----- - -Si vous voulez, pour le consulter tranquillement, envoyer le résultat -de la commande dans un fichier, tapez la sous cette forme: ----- -lsmod > mes_modules.txt ----- - -Le fichier mes_modules.txt résultant, se trouvera alors dans votre -répertoire home si c'est de là que vous avez ouvert la console. - - -== Éditer un fichier en root[[sec:Editer-un-fichier-en-root]] - -(((Éditer un fichier en root))) - -Éditer certains fichiers du système en root peut donner des résultats -inattendus! Soyez très vigilant quand vous éditez en root, une erreur peut -compromettre tout le système et l'empêcher de redémarrer. Vous pouvez -ouvrir et lire de nombreux fichiers systèmes appartenant au root qui -sont en mode lecture seule. - -=== A la ligne de commande - -(((sudo gedit))) - -Ouvrir un terminal depuis _Applications → Accessoires → Terminal_. - -Dans ce terminal, tapez: ----- -sudo gedit ----- - -Ouvrez un fichier depuis _Fichiers → Ouvrir_ puis éditez le. - -=== En mode graphique - -(((gksudo))) - - . Faites un clic droit sur le bureau et choisissez _Créer un lanceur.._. - . Tapez un nom tel que _éditeur_, dans la zone _Nom_. - . Entrez _gksudo "gnome-open %u"_ dans la zone _Commande_ et validez. - . Glissez un fichier et déposez le sur votre lanceur, il s'ouvrira alors - directement dans l'éditeur. - -== Commandes du terminal[[sec:Commandes-Terminal]] - -(((Terminal Commands))) - -=== Répertoire de travail - -(((repertoire de travail))) (((pwd))) - -Pour afficher le chemin du répertoire courant dans le terminal tapez: ----- -pwd ----- - -=== Changer de répertoire - -(((Changer de repertoire))) (((cd))) - -Pour remonter dans le répertoire précédent, tapez dans le terminal: ----- -cd .. ----- - -Pour remonter de deux niveaux de répertoire, tapez dans le terminal: ----- -cd ../.. ----- - -Pour aller directement dans le sous-répertoire linuxcnc/configs tapez: ----- -cd linuxcnc/configs ----- - -=== Lister les fichiers du répertoire courant - -(((Lister le répertoire courant))) (((ls))) - -Pour voir le contenu du répertoire courant tapez: ----- -ls ----- - -=== Trouver un fichier - -(((Trouver un fichier))) (((find))) - -La commande _find_ peut être un peu déroutante pour le nouvel -utilisateur de Linux. La syntaxe de base est: ----- -find répertoire_de_départ ----- - -Par exemple, pour trouver tous les fichiers .ini dans votre répertoire -linuxcnc utilisez d'abord la commande _pwd_ pour trouver le répertoire -courant. Ouvrez un nouveau terminal et tapez: ----- -pwd ----- - -il vous est retourné par exemple le résultat suivant: ----- -/home/robert ----- - -Avec cette information vous pouvez taper, par exemple, la commande: ----- -find /home/robert/linuxcnc -name *.ini -print ----- - -Le _-name_ est le nom du fichier que vous recherchez et le _-print_ -indique à find d'afficher le résultat dans le terminal. Le _*.ini_ -indique à find de retourner tous les fichiers portant l'extension -_.ini_ - -=== Rechercher un texte - -(((Rechercher un texte)))(((grep))) - -Tapez dans un terminal: ----- -grep -lir "texte à rechercher" * ----- - -Pour trouver tous les fichiers contenant le texte _"texte à rechercher"_ dans le -répertoire courant, tous ses sous-répertoires et en ignorant la casse. -Le paramètre *-l* demande de ne pas afficher les résultats normalement mais à la -place, d'indiquer le nom des fichiers pour lesquels des résultats auraient été -affichés. Le paramètre *-i* demande d'ignorer la casse. Le paramètre *-r* demande -une recherche récursive (qui inclus tous les sous-répertoires dans la recherche). -Le caractère *** est un jocker indiquant _tous les fichiers_. - -=== Messages du boot - -Pour visualiser les messages du boot utilisez la commande _dmesg_ -depuis un terminal. Pour enregistrer ces messages dans un fichier, -redirigez les avec: ----- -dmesg > dmesg.txt ----- - -Le contenu de ce fichier pourra alors être copié et collé à -destination des personnes en ligne qui vous aideront à diagnostiquer -votre problème. - -Pour nettoyer le tampon des messages tapez cette commande: ----- -sudo dmesg -c ----- - -C'est utile avant de lancer LinuxCNC, pour que ne soit enregistrés que les -messages relatifs au fonctionnement courant de LinuxCNC. - -Pour trouver les adresses des ports parallèles de la machine, tapez cette -commande grep pour filtrer les informations contenues dans dmesg. ----- -dmesg|grep parport ----- - -== Problèmes matériels - -=== Informations sur le matériel - -Pour voir la liste du matériel installé sur les ports PCI de votre carte mère, -tapez la commande suivante dans un terminal: ----- -lspci -v ----- - -Pour voir la liste du matériel installé sur les ports USB de votre carte mère, -tapez la commande suivante dans un terminal: ----- -lsusb -v ----- - -=== Résolution du moniteur - -Lors de l'installation d'Ubuntu les réglages du moniteur sont automatiquement -détectés. Il peut arriver que la détection fonctionne mal et que la résolution -ne soit que celle d'un moniteur générique en 800x600. - -Pour résoudre ce cas, suivez les instructions données ici: - -https://help.ubuntu.com/community/FixVideoResolutionHowto[https://help.ubuntu.com/community/FixVideoResolutionHowto] - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/common/Stepper_Diagnostics.txt b/docs/src/common/Stepper_Diagnostics.txt deleted file mode 100644 index b22235ce91f..00000000000 --- a/docs/src/common/Stepper_Diagnostics.txt +++ /dev/null @@ -1,130 +0,0 @@ -= Stepper Diagnostics - -[[cha:stepper-diagnostics]] (((Stepper Diagnostics))) - -If what you get is not what you expect many times you just got some -experience. Learning from the experience increases your understanding -of the whole. Diagnosing problems is best done by divide and conquer. -By this I mean if you can remove 1/2 of the variables from the equation -each time you will find the problem the fastest. In the real world this -is not always the case, but it's usually a good place to start. - -== Common Problems - -=== Stepper Moves One Step - -The most common reason in a new installation for a stepper motor not to -move is that the step and direction signals are exchanged. If you press the -jog forward and jog backward keys, alternately , and the stepper moves -one step each time, and in the same direction, there is your clue. - -=== No Steppers Move - -Many drives have an enable pin or need a charge pump to enable the -output. - -=== Distance Not Correct - -If you command the axis to move a specific distance and it does not -move that distance, then your scale setting is wrong. - -== Error Messages - -=== Following Error - -The concept of a following error is strange when talking about stepper -motors. Since they are an open loop system, there is no position -feedback to let you know if you actually are out of range. LinuxCNC -calculates if it can keep up with the motion called for, and if not, then -it gives a following error. Following errors usually are the result of -one of the following on stepper systems. - - - FERROR too small - - MIN_FERROR too small - - MAX_VELOCITY too fast - - MAX_ACCELERATION too fast - - BASE_PERIOD set too long - - Backlash added to an axis - -Any of the above can cause the real-time pulsing to not be able to keep up -the requested step rate. This can happen if you didn't run the latency -test long enough to get a good number to plug into the Stepconf Wizard, -or if you set the Maximum Velocity or Maximum Acceleration too high. - -If you added backlash you need to increase the STEPGEN_MAXACCEL up to -double the MAX_ACCELERATION in the AXIS section of the INI file for -each axis you added backlash to. LinuxCNC uses "extra acceleration" at a -reversal to take up the backlash. Without backlash correction, step -generator acceleration can be just a few percent above the motion -planner acceleration. - -=== RTAPI Error - -When you get this error: - - RTAPI: ERROR: Unexpected realtime delay on task n - -This error is generated by rtapi based on an indication from RTAI that -a deadline was missed. It is usually an indication that the BASE_PERIOD -in the [EMCMOT] section of the ini file is set too low. You should run -the Latency Test for an extended period of time to see if you have any -delays that would cause this problem. If you used the Stepconf Wizard, -run it again, and test the Base Period Jitter again, and adjust the Base -Period Maximum Jitter on the Basic Machine Information page. You might -have to leave the test running for an extended period of time to find -out if some hardware causes intermittent problems. - -LinuxCNC tracks the number of CPU cycles between invocations of the -real-time thread. If some element of your hardware is causing delays or -your realtime threads are set too fast you will get this error. - -NOTE: This error is only displayed once per session. If you had your -BASE_PERIOD too low you could get hundreds of thousands of error -messages per second if more than one was displayed. - -== Testing - -=== Step Timing - -If you are seeing an axis ending up in the wrong location over -multiple moves, it is likely that you do not have the correct direction -hold times or step timing for your stepper drivers. Each direction -change may be losing a step or more. If the motors are stalling, it is -also possible you have either the MAX_ACCELERATION or MAX_VELOCITY set -too high for that axis. - -The following program will test the Z axis configuration for proper -setup. Copy the program to your ~/emc2/nc_files directory and name it -TestZ.ngc or similar. Zero your machine with Z = 0.000 at the table -top. Load and run the program. It will make 200 moves back and forth -from 0.5 to 1". If you have a configuration issue, you will find that -the final position will not end up 0.500" that the axis window is -showing. To test another axis just replace the Z with your axis in the -G0 lines. - - ( test program to see if Z axis loses position ) - ( msg, test 1 of Z axis configuration ) - G20 #1000=100 ( loop 100 times ) - ( this loop has delays after moves ) - ( tests acc and velocity settings ) - o100 while [#1000] - G0 Z1.000 - G4 P0.250 - G0 Z0.500 - G4 P0.250 - #1000 = [#1000 - 1] - o100 endwhile - ( msg, test 2 of Z axis configuration S to continue) - M1 (stop here) - #1000=100 ( loop 100 times ) - ( the next loop has no delays after moves ) - ( tests direction hold times on driver config and also max accel setting ) - o101 while [#1000] - G0 Z1.000 - G0 Z0.500 - #1000 = [#1000 - 1] - o101 endwhile - ( msg, Done...Z should be exactly .5" above table ) - M2 - - diff --git a/docs/src/common/Stepper_Diagnostics_es.txt b/docs/src/common/Stepper_Diagnostics_es.txt deleted file mode 100644 index 8be87ad6178..00000000000 --- a/docs/src/common/Stepper_Diagnostics_es.txt +++ /dev/null @@ -1,144 +0,0 @@ -= Stepper Diagnostics - -[[cha:stepper-diagnostics]] (((Stepper Diagnostics))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - - -If what you get is not what you expect many times you just got some -experience. Learning from the experience increases your understanding -of the whole. Diagnosing problems is best done by divide and conquer. -By this I mean if you can remove 1/2 of the variables from the equation -each time you will find the problem the fastest. In the real world this -is not always the case, but it's usually a good place to start. - -== Common Problems - -=== Stepper Moves One Step - -The most common reason in a new installation for a stepper motor not to -move is that the step and direction signals are exchanged. If you press the -jog forward and jog backward keys, alternately , and the stepper moves -one step each time, and in the same direction, there is your clue. - -=== No Steppers Move - -Many drives have an enable pin or need a charge pump to enable the -output. - -=== Distance Not Correct - -If you command the axis to move a specific distance and it does not -move that distance, then your scale setting is wrong. - -== Error Messages - -=== Following Error - -The concept of a following error is strange when talking about stepper -motors. Since they are an open loop system, there is no position -feedback to let you know if you actually are out of range. LinuxCNC -calculates if it can keep up with the motion called for, and if not, then -it gives a following error. Following errors usually are the result of -one of the following on stepper systems. - - - FERROR too small - - MIN_FERROR too small - - MAX_VELOCITY too fast - - MAX_ACCELERATION too fast - - BASE_PERIOD set too long - - Backlash added to an axis - -Any of the above can cause the real-time pulsing to not be able to keep up -the requested step rate. This can happen if you didn't run the latency -test long enough to get a good number to plug into the Stepconf Wizard, -or if you set the Maximum Velocity or Maximum Acceleration too high. - -If you added backlash you need to increase the STEPGEN_MAXACCEL up to -double the MAX_ACCELERATION in the AXIS section of the INI file for -each axis you added backlash to. LinuxCNC uses "extra acceleration" at a -reversal to take up the backlash. Without backlash correction, step -generator acceleration can be just a few percent above the motion -planner acceleration. - -=== RTAPI Error - -When you get this error: - - RTAPI: ERROR: Unexpected realtime delay on task n - -This error is generated by rtapi based on an indication from RTAI that -a deadline was missed. It is usually an indication that the BASE_PERIOD -in the [EMCMOT] section of the ini file is set too low. You should run -the Latency Test for an extended period of time to see if you have any -delays that would cause this problem. If you used the Stepconf Wizard, -run it again, and test the Base Period Jitter again, and adjust the Base -Period Maximum Jitter on the Basic Machine Information page. You might -have to leave the test running for an extended period of time to find -out if some hardware causes intermittent problems. - -LinuxCNC tracks the number of CPU cycles between invocations of the -real-time thread. If some element of your hardware is causing delays or -your realtime threads are set too fast you will get this error. - -NOTE: This error is only displayed once per session. If you had your -BASE_PERIOD too low you could get hundreds of thousands of error -messages per second if more than one was displayed. - -== Testing - -=== Step Timing - -If you are seeing an axis ending up in the wrong location over -multiple moves, it is likely that you do not have the correct direction -hold times or step timing for your stepper drivers. Each direction -change may be losing a step or more. If the motors are stalling, it is -also possible you have either the MAX_ACCELERATION or MAX_VELOCITY set -too high for that axis. - -The following program will test the Z axis configuration for proper -setup. Copy the program to your ~/emc2/nc_files directory and name it -TestZ.ngc or similar. Zero your machine with Z = 0.000 at the table -top. Load and run the program. It will make 200 moves back and forth -from 0.5 to 1". If you have a configuration issue, you will find that -the final position will not end up 0.500" that the axis window is -showing. To test another axis just replace the Z with your axis in the -G0 lines. - - ( test program to see if Z axis loses position ) - ( msg, test 1 of Z axis configuration ) - G20 #1000=100 ( loop 100 times ) - ( this loop has delays after moves ) - ( tests acc and velocity settings ) - o100 while [#1000] - G0 Z1.000 - G4 P0.250 - G0 Z0.500 - G4 P0.250 - #1000 = [#1000 - 1] - o100 endwhile - ( msg, test 2 of Z axis configuration S to continue) - M1 (stop here) - #1000=100 ( loop 100 times ) - ( the next loop has no delays after moves ) - ( tests direction hold times on driver config and also max accel setting ) - o101 while [#1000] - G0 Z1.000 - G0 Z0.500 - #1000 = [#1000 - 1] - o101 endwhile - ( msg, Done...Z should be exactly .5" above table ) - M2 - - diff --git a/docs/src/common/Stepper_Diagnostics_fr.txt b/docs/src/common/Stepper_Diagnostics_fr.txt deleted file mode 100644 index 3a4d8f6bafa..00000000000 --- a/docs/src/common/Stepper_Diagnostics_fr.txt +++ /dev/null @@ -1,147 +0,0 @@ -:lang: fr -:toc: - -= Moteurs pas à pas - -[[cha:stepper-diagnostics]] (((Stepper Diagnostics))) - -Si ce que vous obtenez ne correspond pas à ce que vous espériez, la -plupart du temps c'est juste un petit manque d'expérience. Accroître -son expérience permet souvent une meilleure compréhension globale. -Porter un diagnostic sur plusieurs problèmes est toujours plus facile -en les prenant séparément, de même qu'une équation dont on a réduit le -nombre de variables est toujours plus rapide à résoudre. Dans le monde -réel ce n'est pas toujours le cas mais c'est une bonne voie à suivre. - -== Problèmes communs - -=== Le moteur n'avance que d'un pas - -La raison la plus fréquente dans une nouvelle installation pour que le -moteur ne bouge pas est l'interversion entre le signal de pas et le -signal de direction. Si, quand vous pressez le bouton de jog dans un -sens puis dans l'autre, le moteur n'avance que d'un pas à chaque fois -et toujours dans la même direction, vous êtes dans ce cas. - -=== Le moteur ne bouge pas - -Certaine interfaces de pilotage de moteurs ont une broche d'activation -(enable) ou demandent un signal de pompe de charge pour activer leurs -sorties. - -=== Distance incorrecte - -Si vous commandez une distance de déplacement précise sur un axe et -que le déplacement réel ne correspond pas, alors l'échelle de l'axe -n'est pas bonne. - -== Messages d'erreur - -=== Erreur de suivi - -Le concept d'erreur de suivi est étrange quand il s'agit de moteurs -pas à pas. Etant un système en boucle ouverte, aucune contre réaction -ne permet de savoir si le suivi est correct ou non. LinuxCNC calcule si il -peut maintenir le suivi demandé par une commande, si ce n'est pas -possible il stoppe le mouvement et affiche une erreur de suivi. Les -erreurs de suivi sur les systèmes pas à pas sont habituellement les -suivantes: - - - FERROR to small - (FERROR trop petit) - - MIN_FERROR to small - (MIN_FERROR trop petit) - - MAX_VELOCITY to fast - (MAX_VELOCITY trop rapide) - - MAX_ACCELERATION to fast - (MAX_ACCELERATION trop rapide) - - BASE_PERIOD set to long - (BASE_PERIOD trop longue) - - Backlash ajouté à un axe (rattrapage de jeu) - -Toutes ces erreurs se produisent lorsque l'horloge temps réel n'est -pas capable de fournir le nombre de pas nécessaire pour maintenir la -vitesse requise par le réglage de la variable BASE_PERIOD. Ce qui peut -se produire, par exemple après un test de latence trop bref pour -obtenir un valeur fiable, dans ce cas, revenir à une valeur plus proche -de ce qu'elle était et réessayez. C'est également le cas quand les -valeurs de vitesse maximum et d'accélération maximum sont trop élevées. - -Si un backlash a été ajouté, il est nécessaire d'augmenter -STEPGEN_MAXACCEL aux environs du double de MAX_ACCELERATION dans la -section [AXIS] du fichier INI et ce, pour chacun des axes sur lesquels -un backlash a été ajouté. LinuxCNC utilise une _extra accélération_ au -moment de l'inversion de sens pour reprendre le jeu. Sans correction du -backlash, l'accélération pour le générateur de pas peut être juste un -peu plus basse que celle du planificateur de mouvements. - -=== Erreur de RTAPI - -Quand vous rencontrez cette erreur: - - RTAPI: ERROR: Unexpected realtime delay on task n - -C'est généralement que la variable BASE_PERIOD dans la section -[EMCMOT] du fichier ini a une valeur trop petite. Vous devez lancer un -_Latency Test_ pendant une durée plus longue pour voir si vous n'avez -pas un délai excessif quelque part, responsable de ce problème. Si -c'est le cas réajuster alors BASE_PERIOD avec la nouvelle valeur -obtenue. - -LinuxCNC vérifie le nombre de cycles du CPU entre les invocations du -thread temps réel. Si certains éléments de votre matériel provoquent un -délai excessif ou que les threads sont ajustés à des valeurs trop -rapides, vous rencontrerez cette erreur. - -NOTE: Cette erreur n'est affichée qu'une seule fois par session. En -effet, si votre BASE_PERIOD était trop basse vous pourriez avoir des -centaines de milliers de messages d'erreur par seconde si plus d'un -était affiché. - -Plus d'informations <> - -== Tester - -=== Tester le timing des pas - -Si un de vos axes vibre, grogne ou fait des petits mouvements dans -toutes les directions, c'est révélateur d'un mauvais timing -d'impulsions de pas de ce moteur. Les paramètres du pilote matériel -sont a vérifier et a ajuster. Il peut aussi y avoir des pertes de pas -aux changements de direction. Si le moteur cale complétement, il est -aussi possible que les paramètres MAX_ACCELERATION ou MAX_VELOCITY -aient des valeurs trop élevées. - -Le programme suivant vérifie que la configuration de l'axe Z est -correcte. Copiez le programme dans le répertoire de votre linuxcnc/nc_files -nommez le _TestZ.ngc_ ou similaire. Initialisez votre machine avec Z = -0.000 sur le dessus de la table. Chargez et lancez le programme. Il va -effectuer 200 mouvements d'aller et retour entre 10.00 et 30.00mm. Si -vous avez un problème de configuration, la position de l'axe Z affichée -à la fin du programme, soit 10.00mm, ne correspondra pas à la position -mesurée. Pour tester un autre axe remplacez simplement le Z des G0 par -le nouvel axe. ----- -( Faire Z=0 au dessus de la table avant de démarrer! ) -( Ce programme teste les pertes de position en Z ) -( msg, test 1 de la configuration de l'axe Z ) -G21 #1000=100 ( boucle 100 fois ) -( cette boucle comporte un délai après chaque mouvement ) -( test des réglages d'accélération et de vitesse ) -o100 while [#1000] - G0 Z30.000 - G4 P0.250 - G0 Z10.000 - G4 P0.250 - #1000 = [#1000 - 1] -o100 endwhile -( msg, test 2 de la configuration de l'axe Z, pressez S pour continuer) -M1 (un arrêt ici) -#1000=100 ( boucle 100 fois ) -( Les boucles suivantes n'ont plus de délai en fin de mouvements ) -( test des réglages des temps de maintien des pilotes) -( et les réglages d'accélération max ) -o101 while [#1000] - G0 Z30.000 . - G0 Z10.000 - #1000 = [#1000 - 1] -o101 endwhile -( msg, Fin Z doit être à 10mm au dessus de la table ) -M2 ----- - diff --git a/docs/src/common/System_Requirements.txt b/docs/src/common/System_Requirements.txt deleted file mode 100644 index 27cf7d1aa24..00000000000 --- a/docs/src/common/System_Requirements.txt +++ /dev/null @@ -1,54 +0,0 @@ -= System Requirements - -[[cha:system-requirements]] (((System Requirements))) - -== Minimum Requirements (((Minimum Requirements))) - -The minimum system to run LinuxCNC and Ubuntu may vary depending on the -exact usage. Stepper systems in general require faster threads to -generate step pulses than servo systems. Using the Live-CD you can test -the software before committing a computer. Keep in mind that the -Latency Test numbers are more important than the processor speed for -software step generation. More information on the Latency Test is -<>. - -Additional information is on the LinuxCNC Wiki site: - -http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Hardware_Requirements[Wiki.LinuxCNC.org, Hardware_Requirements] - -LinuxCNC and Ubuntu should run reasonably well on a computer with the -following minimum hardware specification. These numbers are not the -absolute minimum but will give reasonable performance for most stepper -systems. - -* 700 MHz x86 processor (1.2 GHz x86 processor recommended) -* 384 MB of RAM (512 MB up to 1 GB recommended) -* 8 GB hard disk -* Graphics card capable of at least 1024x768 resolution, which is not - using the NVidia or ATI fglrx proprietary drivers, and which is not an - onboard video chipset that shares main memory with the CPU -* A network or Internet connection (not strictly needed, but very useful - for updates and for communicating with the LinuxCNC community) - -Minimum hardware requirements change as Ubuntu evolves so check the -https://help.ubuntu.com[Ubuntu] web site for details on the LiveCD your using. -Older hardware may benefit from selecting an older version of the LiveCD when -available. - -== Problematic Hardware - -=== Laptops - -Laptops are not generally suited to real time software step -generation. Again a Latency Test run for an extended time will give you -the info you need to determine suitability. - -=== Video Cards - -If your installation pops up with 800 x 600 screen resolution then -most likely Ubuntu does not recognize your video card or monitor. -Onboard video many times causes bad real time performance. - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/common/System_Requirements_es.txt b/docs/src/common/System_Requirements_es.txt deleted file mode 100644 index fccf3094664..00000000000 --- a/docs/src/common/System_Requirements_es.txt +++ /dev/null @@ -1,35 +0,0 @@ -= Requerimientos del sistema - -[[cha:system-requirements]] (((Requerimientos del sistema))) - -== Requerimientos Mínimos (((Requerimientos Minimos))) - -Los requerimientos mínimos de hardware para ejecutar EMC2 y Ubuntu pueden variar dependiendo del uso que se le dará al sistema. Sistemas basados en motores a pasos requieren procesadores mas rápidos para generar trenes de pulsos en comparación con los servomecanismos retro alimentados. Usando el Live-CD usted puedes probar el software antes de modificar la computadora. Mantenga en Mente que los resultados del estudio de latencia son mas importantes que la velocidad del procesador para la generación de pasos por software. Mas información sobre el estudio de latencia se encuentra en la sección (<>). - -Información adicional se puede encontrar en el sitio de EMC wiki: - -http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Hardware_Requirements[Wiki.LinuxCNC.org, Hardware_Requirements] - -EMC2 y Ubuntu deberían de ejecutarse razonablemente bien en una computadora con las siguientes especificaciones mínimas de hardware. Estas especificaciones no son las mínimas absolutas pero proporcionan un desempeño razonable para la mayoría de los sistemas basados en motores a pasos. - -*700 Mhz x86 procesador (se recomienda un procesador de 1.2GHz x86) -*384 MB de RAM (se recomienda entre 512MB hasta 1GB) -*8 GB de espacio en disco duro -*Tarjeta gráfica capaz de por lo menos 1024x768 de resolución, que no este ejecutando los controladores propietarios Nvidia o ATI fglrx, y de preferencia que no se trate de una tarjeta de vídeo integrada que comparta memoria con el CPU. -*Una conexión de red o Internet (No es estrictamente necesaria, pero resulta muy útil para realizar actualizaciones y contactar a la comunidad de usuarios del EMC) - -Los requerimientos mínimos del sistema cambian conforme Ubuntu evoluciona, por lo tanto revise el sitio web help.ubuntu.com[Ubuntu] para mas detalles sobre el LiveCD que esta usando. Hardware antiguo podría beneficiarse si se selecciona una version mas antigua del LiveCD cuando se encuentre disponible. - -== Hardware Problemático - -=== Computadores Portátiles - -Los computadores portátiles en general no son buenos para la generación por software de pasos en tiempo real. De nuevo el Estudio de Latencia ejecutado por un periodo de tiempo prolongado proveerá la información necesaria para determinar si resulta apropiado su uso. - -=== Tarjetas de Vídeo - -Si su instalación comienza con una resolución de 800 x 600 en la mayoría de los casos eso significa que Ubuntu no reconoció apropiadamente su monitor o tarjeta de vídeo. Las tarjetas de vídeo integradas, la mayoría de los casos, producen malos resultados en el desempeño en tiempo real. - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/common/System_Requirements_fr.txt b/docs/src/common/System_Requirements_fr.txt deleted file mode 100644 index 6e3e9f67363..00000000000 --- a/docs/src/common/System_Requirements_fr.txt +++ /dev/null @@ -1,54 +0,0 @@ -:lang: fr -:toc: - -= Quelle configuration est requise ? - -[[cha:Configuration-requise]] (((Configuration requise))) - -== Configuration minimale - -La configuration minimale pour faire tourner LinuxCNC sous Ubuntu varie -selon l'usage envisagé. Les moteurs pas à pas en général exigent, pour -générer leurs trains d'impulsions de pas, des machines plus rapides que -les systèmes à servomoteurs. Il est possible de tester le logiciel à -partir du CD-Live avant de l'installer sur un ordinateur. Guarder à -l'esprit que les valeurs retournées par le test de latence (Latency -Test), sont plus importantes que la vitesse du µP pour la génération -logicielle des pas. Plus d'informations à ce propos dans la section -relative au <>. - -Des informations additionnelles sont disponibles sur le -http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Hardware_Requirements[wiki de linuxcnc.org.] - -LinuxCNC et Ubuntu doivent fonctionner raisonnablement bien sur la -configuration matérielle minimale suivante. Ces valeurs ne sont pas des -valeurs minimales absolues mais donneront des performances acceptables -de la plupart des systèmes à moteurs pas à pas. - - - Microprocesseur x86 à 700 MHz (x86 à 1.2 GHz recommandé) - - 384 Mio de RAM (512 Mio ou plus de 1 Gio recommandé) - - 8 GB d'espace disque - - Carte graphique avec une résolution minimale de 1024x768 - - Une connection Internet ou réseau (optionnelle mais très pratique pour - les mises à jour) - -== Problématique du matériel - -=== Les portables - -Les portables donnent généralement de piètres performances pour les -tâches temps réel utilisées pour la génération logicielle de pas. -Encore une fois, lancer un test de latence sur une grande période de -temps vous permettra de déterminer si le portable envisagé est -utilisable ou non. - -=== Les cartes graphiques - -Si votre installation se termine par un écran avec une résolution de -800 x 600 il est alors probable que Ubuntu n'a pas reconnu votre carte -graphique. Les cartes graphiques intégrées aux cartes mères donnent -souvent de mauvaises performances temps réel. - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/common/Updating_EMC_es.txt b/docs/src/common/Updating_EMC_es.txt deleted file mode 100644 index 1b5eec90353..00000000000 --- a/docs/src/common/Updating_EMC_es.txt +++ /dev/null @@ -1,195 +0,0 @@ -= Actualizando LinuxCNC - -== Actualizando de 2.4.x a 2.5.x - -As of version 2.5.0, the name of the project has changed from EMC2 -to LinuxCNC. All programs with "emc" in the name have been changed to -"linuxcnc" instead. All documentation has been updated. - -Additionally, the name of the debian package containing the software -has changed. Unfortunately this breaks automatic upgrades. To upgrade -from emc2 2.4.X to linuxcnc 2.5.X, do the following: - -=== On Ubuntu Lucid 10.04 - -First you need to tell your computer where to find the new LinuxCNC -software: - -* Click on the System menu in the top panel and select - Administration->Software Sources. - -* Select the Other Software tab. - -* Select the entry that says - - http://linuxcnc.org/lucid lucid base emc2.4 - - or - - http://linuxcnc.org/lucid lucid base emc2.4-sim - - and click the Edit button. - -* In the Components field, change `emc2.4` to `linuxcnc2.5`, or change - `emc2.4-sim` to `linuxcnc2.5-sim`. - -* Click the OK button. - -* Back in the Software Sources window, Other Software tab, click the - Close button. - -* It will pop up a window informing you that the information about - available software is out-of-date. Click the Reload button. - -Now your computer knows about the new software, next we need to tell -it to install it: - -* Click on the System menu in the top panel and select - Administration->Synaptic Package Manager - -* In the Quick Search bar at the top, type `linuxcnc`. - -* Click the check box to mark the new linuxcnc package for installation. - -* Click the Apply button, and let your computer install the new - package. The old emc 2.4 package will be automatically removed to make - room for the new LinuxCNC 2.5 package. - -=== On Ubuntu Hardy 8.04 - -First you need to tell your computer where to find the new LinuxCNC software: - -* Click on the System menu in the top panel and select Administration->Synaptic Package Manager - -* Go to Settings->Repositories. - -* Select the "Third-Party Software" tab. - -* Select the entry that says - - http://linuxcnc.org/hardy hard emc2.4 - - or - - http://linuxcnc.org/hardy hardy emc2.4-sim - - and click the Edit button. - -* In the Components field, change `emc2.4` to `linuxcnc2.5` or `emc2.4-sim` to `linuxcnc2.5-sim`. - -* Click the OK button. - -* Back in the Software Sources window, click the Close button. - -* Back in the Synaptic Package Manager window, click the Reload button. - - -Now your computer knows about the new software, next we need to tell it to install it: - -* In the Synaptic Package Manager, click the Search button. - -* In the Find dialog window that pops up, type `linuxcnc` and click the - Search button. - -* Click the check-box to mark the linuxcnc package for installation. - -* Click the Apply button, and let your computer install the new - package. The old emc 2.4 package will be automatically removed to make - room for the new LinuxCNC 2.5 package. - -== Config changes - -The user configs moved from $HOME/emc2 to $HOME/linuxcnc, so you will -need to rename your directory, or move your files to the new place. - -The hostmot2 watchdog in LinuxCNC 2.5 does not start running until the -HAL threads start running. This means it now tolerates a timeout on the -order of the servo thread period, instead of requiring a timeout that's -on the order of the time between loading the driver and starting the HAL -threads. This typically means a few milliseconds (a few times the servo -thread period) instead of many hundreds of milliseconds. The default -has been lowered from 1 second to 5 milliseconds. You generally don't -need to set the hm2 watchdog timeout any more, unless you've changed -your servo thread period. - -The old driver for the Mesa 5i20, hal_m5i20, has been removed after being -deprecated in favor of hostmot2 since early 2009 (version 2.3.) If you -are still using this driver, you will need to build a new configuration -using the hostmot2 driver. Pncconf may help you do this, and we have -some sample configs (hm2-servo and hm2-stepper) that act as examples. - -== Actualizando de 2.3.x a 2.4.x - -Las siguientes instrucciones solo aplican a Ubuntu 8.04 "Hardy Heron". -LinuxCNC 2.4 no se encuentra disponible en versiones mas antiguas de Ubuntu. - -Debido a la existencia de incompatibilidades entre 2.3.5 y 2.4.x, -su instalación actual no se actualizara automáticamente por el agente de actualización -a 2.4.x. Si usted desea correr la versión 2.4.x, Cambie al repositorio LinuxCNC-2.4 -siguiendo estas instrucciones: - -Ejecute System/Administration/Synaptic Package Manager - -Vaya a Settings/Repositories - -En la lista de “Third-Party software†debe haber al menos dos lineas -para linuxcnc.org - -Para cada una de ellas: - -* Seleccione la linea y haga clic en Editar -* En la linea de componentes, cambie emc2.3 a emc2.4 -* Haga clic en OK -* Cierre la ventana "Software Preferences" -* Haga clic en "Reload" -* Haga clic en "Mark All Upgrades" - -.Usuarios de tarjetas Mesa y hostmot2: -********** -Si usa una tarjeta Mesa, busque el hostmot2-firmware apropiado -para su tarjeta y márquelo para instalación. Consejo: haga una búsqueda -por "hostmot2-firmware" en el manejador de paquetes Synaptic. -********** - -* Haga clic en 'Apply' - -== Cambios entre 2.3.x y 2.4.x - -Una vez completada la actualización, actualice cualquier archivo de configuración -de maquinas que tenga previamente configuradas siguiendo estas instrucciones: - -=== emc.nml cambios (2.3.x a 2.4.x) - -Para configuraciones que no posen un archivo emc.nml -personalizado, remueva o comente la linea NML_FILE = emc.nml en -el archivo .ini. Esto causara que se use la versión -mas actual de emc.nml. - -Para configuraciones que tienen un archivo emc.nml -personalizado, un cambio similar es requerido. - -El no realizar el cambio puede ocasionar la aparición de un error tal como: ----------------------------------- -libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: -Can't write 10748 bytes at offset 60 from buffer of size 10208. ----------------------------------- - -=== Cambios en la tabla de Herramientas (2.3.x a 2.4.x) - -El formato de la tabla de herramientas a cambiado y es incompatible. -La documentación muestra el nuevo formato. -La antigua tabla de herramientas sera automáticamente actualizada al nuevo formato. - -=== Imágenes del firmware hostmot2 (2.3.x a 2.4.x) - -Las Imágenes del firmware hostmot2 son ahora paquetes separados. Usted puede: - - - Continuar usando la versión ya instalada 'emc2-firmware-mesa-*' paquete 2.3.x - - Instalar los paquetes nuevos desde el manejador de paquetes Synaptic. - Los nuevos paquetes se llaman 'hostmot2-firmware-*' - - Descargar las imágenes del firmware como archivos tar desde - http://emergent.unpy.net/01267622561 e instalarlos manualmente. - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/common/Updating_LinuxCNC.txt b/docs/src/common/Updating_LinuxCNC.txt deleted file mode 100644 index e9288c71c40..00000000000 --- a/docs/src/common/Updating_LinuxCNC.txt +++ /dev/null @@ -1,194 +0,0 @@ -= Updating LinuxCNC - -== Updating from 2.4.x to 2.5.x - -As of version 2.5.0, the name of the project has changed from EMC2 -to LinuxCNC. All programs with "emc" in the name have been changed to -"linuxcnc" instead. All documentation has been updated. - -Additionally, the name of the debian package containing the software -has changed. Unfortunately this breaks automatic upgrades. To upgrade -from emc2 2.4.X to linuxcnc 2.5.X, do the following: - -=== On Ubuntu Lucid 10.04 - -First you need to tell your computer where to find the new LinuxCNC -software: - -* Click on the System menu in the top panel and select - Administration->Software Sources. - -* Select the Other Software tab. - -* Select the entry that says - - http://linuxcnc.org/lucid lucid base emc2.4 - - or - - http://linuxcnc.org/lucid lucid base emc2.4-sim - - and click the Edit button. - -* In the Components field, change `emc2.4` to `linuxcnc2.5`, or change - `emc2.4-sim` to `linuxcnc2.5-sim`. - -* Click the OK button. - -* Back in the Software Sources window, Other Software tab, click the - Close button. - -* It will pop up a window informing you that the information about - available software is out-of-date. Click the Reload button. - -Now your computer knows about the new software, next we need to tell -it to install it: - -* Click on the System menu in the top panel and select - Administration->Synaptic Package Manager - -* In the Quick Search bar at the top, type `linuxcnc`. - -* Click the check box to mark the new linuxcnc package for installation. - -* Click the Apply button, and let your computer install the new - package. The old emc 2.4 package will be automatically removed to make - room for the new LinuxCNC 2.5 package. - -=== On Ubuntu Hardy 8.04 - -First you need to tell your computer where to find the new LinuxCNC software: - -* Click on the System menu in the top panel and select Administration->Synaptic Package Manager - -* Go to Settings->Repositories. - -* Select the "Third-Party Software" tab. - -* Select the entry that says - - http://linuxcnc.org/hardy hard emc2.4 - - or - - http://linuxcnc.org/hardy hardy emc2.4-sim - - and click the Edit button. - -* In the Components field, change `emc2.4` to `linuxcnc2.5` or `emc2.4-sim` to `linuxcnc2.5-sim`. - -* Click the OK button. - -* Back in the Software Sources window, click the Close button. - -* Back in the Synaptic Package Manager window, click the Reload button. - - -Now your computer knows about the new software, next we need to tell it to install it: - -* In the Synaptic Package Manager, click the Search button. - -* In the Find dialog window that pops up, type `linuxcnc` and click the - Search button. - -* Click the check-box to mark the linuxcnc package for installation. - -* Click the Apply button, and let your computer install the new - package. The old emc 2.4 package will be automatically removed to make - room for the new LinuxCNC 2.5 package. - -== Config changes - -The user configs moved from $HOME/emc2 to $HOME/linuxcnc, so you will -need to rename your directory, or move your files to the new place. - -The hostmot2 watchdog in LinuxCNC 2.5 does not start running until the -HAL threads start running. This means it now tolerates a timeout on the -order of the servo thread period, instead of requiring a timeout that's -on the order of the time between loading the driver and starting the HAL -threads. This typically means a few milliseconds (a few times the servo -thread period) instead of many hundreds of milliseconds. The default -has been lowered from 1 second to 5 milliseconds. You generally don't -need to set the hm2 watchdog timeout any more, unless you've changed -your servo thread period. - -The old driver for the Mesa 5i20, hal_m5i20, has been removed after being -deprecated in favor of hostmot2 since early 2009 (version 2.3.) If you -are still using this driver, you will need to build a new configuration -using the hostmot2 driver. Pncconf may help you do this, and we have -some sample configs (hm2-servo and hm2-stepper) that act as examples. - -== Upgrading from 2.3.x to 2.4.x - -The following instructions only apply to Ubuntu 8.04 "Hardy Heron". -LinuxCNC 2.4 is not available for older releases of Ubuntu. - -Because there are several minor incompatibilities between 2.3.5 -and 2.4.x, your existing install will not automatically be -updated to 2.4.x. If you want to run 2.4.x, change to the LinuxCNC-2.4 -repository by following these instructions: - -run System/Administration/Synaptic Package Manager - -go to Settings/Repositories - -In the list of Third-Party software there should be at least two -lines for linuxcnc.org. - -For each of them: - -* Select the line and click Edit -* On the Components line, change emc2.3 to emc2.4 -* Click OK -* Close the 'Software Preferences' window -* Click 'Reload' as instructed -* Click 'Mark All Upgrades' - -.Mesa card and hostmot2 users: -********** -If you use a mesa card, find the proper hostmot2-firmware package -for your card and mark it for installation. Hint: do a search for -'hostmot2-firmware' in the synaptic package manager. -********** - -* Click 'Apply' - -== Changes between 2.3.x and 2.4.x - -Once you have done the upgrade, update any custom configurations -by following these instructions: - -=== emc.nml changes (2.3.x to 2.4.x) - -For configurations that have not customized emc.nml, -remove or comment out the inifile line NML_FILE = emc.nml. -This will cause the most up to date version of emc.nml to be used. - -For configurations that have customized emc.nml, -a change similar to this one is required. - -Failure to do this can cause an error like this one: ----------------------------------- -libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: -Can't write 10748 bytes at offset 60 from buffer of size 10208. ----------------------------------- - -=== tool table changes (2.3.x to 2.4.x) - -The format of the tool table has been changed incompatibly. -The documentation shows the new format. -The tool table will automatically be converted to the new format. - -=== hostmot2 firmware images (2.3.x to 2.4.x) - -The hostmot2 firmware images are now a separate package. You can: - - - Continue using an already-installed 'emc2-firmware-mesa-*' 2.3.x package - - Install the new packages from the synaptic package manager. - The new packages are named 'hostmot2-firmware-*' - - Download the firmware images as tar files from - http://emergent.unpy.net/01267622561 and install them manually - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/common/Updating_linuxcnc_fr.txt b/docs/src/common/Updating_linuxcnc_fr.txt deleted file mode 100644 index 656582c8c96..00000000000 --- a/docs/src/common/Updating_linuxcnc_fr.txt +++ /dev/null @@ -1,173 +0,0 @@ -:lang: fr -:toc: - -= Mises à jour de LinuxCNC - - -== Mise à jour de 2.4.x vers 2.5.x - -La version 2.5.0 de LinuxCNC change de nom, elle passe de _EMC2_ à -_LinuxCNC_. Tous les programmes dont les noms contenaient _emc_ ont été -renommés pour contenir _linuxcnc_. Toute la documentation à été mise à jour. - -De plus, le nom du paquet debian contenant le logiciel a changé. -Malheureusement les mises à jour automatiques sont cassées. Pour mettre à jour -depuis emc2 2.4.X vers linuxcnc 2.5.X, suivez ces méthodes: - -=== Sous Ubuntu Lucid 10.04 - -Déclarer d'abord où se trouve le nouveau logiciel LinuxCNC, pour cela: - - - Dans le menu, cliquer sur _Système -> Administration -> Sources de logiciels_. - - Sélectionner l'onglet _Autres logiciels_. - - Sélectionner la ligne indiquant _http://www.linuxcnc.org/emc2 lucid base -emc2.4_ ou _http://www.linuxcnc.org/emc2 lucid base emc2.4-sim_ puis cliquer le -bouton _Éditer_. - - Dans le champ _URI_, remplacer la ligne courante par _http://www.linuxcnc.org_ - - Dans le champ _Composants_, modifier _emc2.4_ par _linuxcnc2.5_, ou -_emc2.4-sim_ par _linuxcnc2.5-sim_. - - Cliquer enfin sur le bouton _Valider_. - - De retour dans la fenêtre des sources de logiciels, onglet _Autres -logiciels_, cliquer sur le bouton _Fermer_. - - Une fenêtre surgissante informe alors que _Les informations sur les -logiciels disponibles sont obsolètes_. Cliquer le bouton _Actualiser_. - - - Suivre la même procédure pour le _Code source_. - -Maintenant l'ordinateur sait où trouver le nouveau logiciel, ensuite il faudra -lui demander de l'installer: - - - Dans le menu, cliquer sur _Système -> Administration -> Gestionnaire de -paquets Synaptic_ - - Dans la barre de recherche rapide, en haut, taper _linuxcnc_. - - Cocher la case pour valider l'installation du nouveau paquet linuxcnc. - - Cliquer sur le bouton _Appliquer_ et laisser le paquet s'installer. - - L'ancien paquet emc 2.4 sera automatiquement supprimé pour laisser place au -nouveau paquet LinuxCNC 2.5. - -=== Sous Ubuntu Hardy 8.04 - -Déclarer d'abord où se trouve le nouveau logiciel LinuxCNC, pour cela: - - - Dans le menu, cliquer sur _Système -> Administration -> Gestionnaire de -paquets Synaptic_ - - Aller dans le menu _Configuration -> Dépôts_. - - Sélectionner l'onglet _Logiciels tiers_. - - Sélectionner la ligne indiquant _http://linuxcnc.org/hardy hardy emc2.4_ ou -_http://linuxcnc.org/hardy hardy emc2.4-sim_ et cliquer sur le bouton _Éditer_. - - Dans le champs _Composants_, modifier _emc2.4_ par _linuxcnc2.5_ ou -_emc2.4-sim_ par _linuxcnc2.5-sim_. - - Cliquer sur le bouton _Valider_. - - De retour dans la fenêtre des sources de logiciels, cliquer sur le -bouton _Fermer_. - - De retour dans la fenêtre de Synaptic, cliquer sur le bouton _Actualiser_. - -Maintenant l'ordinateur sait où trouver le nouveau logiciel, ensuite il faudra -lui demander de l'installer: - - - Dans le menu, cliquer sur _Système -> Administration -> Gestionnaire de -paquets Synaptic_, cliquer sur le bouton _Rechercher_. - - Dans le champ du dialogue de recherche qui s'ouvre, taper _linuxcnc_ puis -cliquer sur le bouton _Rechercher_. - - Cocher la case pour valider l'installation du paquet _linuxcnc_. - - Cliquer sur le bouton _Appliquer_ et laisser le nouveau paquet s'installer. - - L'ancien paquet emc 2.4 sera automatiquement supprimé pour laisser place au -nouveau paquet LinuxCNC 2.5. - -== Changement de configuration - -Les configurations utilisateur ont migré de $HOME/emc2 vers $HOME/linuxcnc, -il sera nécessaire de renommer l'ancien répertoire si il existe, ou de déplacer -les fichiers vers ce nouvel endroit. -Le watchdog de hostmod2 dans LinuxCNC 2.5 ne démarre qu'après que les threads -de HAL soient eux-même démarrés. Cela signifie qu'il tolère désormais un -délai d'attente de l'ordre de la période servo thread, au lieu de nécessiter -un délai qui soit de l'ordre du temps entre le chargement du pilote -et le démarrage des threads de HAL. Ce qui signifie, de l'ordre de quelques -millisecondes (quelques périodes du thread servo) au lieu de plusieurs -centaines de millisecondes préalablement. La valeur par défaut est descendue -de 1 seconde à 5 millisecondes. Vous ne devriez donc plus avoir a ajuster le -délai du watchdog, à moins que vous ne modifiez la période du threads servo. - -Les anciens pilotes pour les cartes Mesa 5i20, hal_m5i20, ont été enlevés, ils -étaient obsolètes et remplacés par hostmot2 depuis 2009 (version 2.3.) -Si vous utilisiez ces pilotes, vous devrez reconstruire une nouvelle -configuration utilisant le pilote hostmod2. Pncconf peux vous y aider et il -contient quelques exemples de configurations (hm2-servo et hm2-stepper) -qui vous serviront d'exemple. - -== Mise à jour 2.3.x à 2.4.x - -Les instructions suivantes s’appliquent à Ubuntu 8.04 "Hardy Heron". -LinuxCNC 2.4 n'est pas disponible pour des versions plus anciennes de Ubuntu. - -En raison de plusieurs incompatibilités mineures entre les versions 2.3.5 et 2.4.x, -votre installation existante ne sera pas automatiquement mise à jour vers la version -2.4.x. Si vous voulez exécuter la version 2.4.x, veuillez modifier -le dépôt LinuxCNC-2.4 en suivant ces instructions : - -Lancez Système/Administration/Gestionnaire de paquets Synaptic -Sélectionnez Configuration/Dépôt -Dans l'onglet "Autres logiciels" vous trouverez deux lignes -concernant linuxcnc.org. - -Pour chacune: - -- Sélectionnez la ligne et cliquez sur le bouton "Editer" -- Dans le champ composants remplacez emc2.3 par emc2.4 -- Cliquez sur "Valider" -- Fermer la fenêtre "Source de logiciels" avec le bouton fermer -- Cliquez sur "Recharger" dans la barre d'outils -- Cliquez sur "Tout mettre à jour" dans la barre d'outils - -.Utilisateurs de carte Mesa et hostmot2 : - -********** -Si vous utilisez une carte _mesa_, trouvez le paquet -hostmot2-firmware approprié à votre carte et marquez-le pour -l'installation. Astuce: faites une recherche "hostmot2-firmware" -dans gestionnaire de paquet Synaptic. -********** - - - Cliquez "Appliquer" - -== Changements entre 2.3.x et 2.4.x - -Une fois que vous avez fait la mise à jour, mettez à jour les -configurations personnalisées en suivant ces instructions - -=== Changement emc.nml (2.3.x to 2.4.x) - -Pour les configurations qui ont personnalisé emc.nml, enlevez la ligne -`NML_FILE = emc.nml` dans le fichier inifile. Cela forcera l'utilisation -de la version la plus à jour de emc.nml. - -Pour les configurations qui n'ont pas personnalisé emc.nml, -un changement similaire est requis. - -Un échec de cette opération provoque une erreur comme: ----- -libnml/buffer/physmem.cc 143: PHYSMEM_HANDLE: -Can't write 10748 bytes at offset 60 from buffer of size 10208. ----- - -=== Changements de la table d'outils (2.3.x to 2.4.x) - -Le nouveau format de la table d'outil est incompatible. -La documentation explique le nouveau format. -La table d'outil sera automatiquement convertie dans le nouveau format. - -=== Images du micro logiciel hostmot2 (2.3.x to 2.4.x) - -Les images du micro logiciel hostmot2 sont dorénavent dans un paquet séparé. -Vous pouvez : - -- Continuer à utiliser un paquet déjà installé `emc2-firmware-mesa-*` -- Installer les nouveaux paquets du gestionnaire de paquets Synaptic. - Les nouveaux paquets sont nommés `hostmot2-firmware-*` -- Télécharger les fichiers .tar des images du microprogramme depuis - http://emergent.unpy.net/01267622561 et les installer manuellement. - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/common/User_Concepts.txt b/docs/src/common/User_Concepts.txt deleted file mode 100644 index 80ece27caff..00000000000 --- a/docs/src/common/User_Concepts.txt +++ /dev/null @@ -1,304 +0,0 @@ -= Important User Concepts - -[[cha:important-user-concepts]] (((User Concepts))) - -This chapter covers important user concepts that should be understood -before attempting to run a CNC machine with g code. - -[[sec:trajectory-control]] -== Trajectory Control -(((Trajectory Control))) - -=== Trajectory Planning - -Trajectory planning, in general, is the means by which LinuxCNC follows the -path specified by your G Code program, while still operating within the -limits of your machinery. - -A G Code program can never be fully obeyed. For example, imagine you -specify as a single-line program the following move: - ----- -G1 X1 F10 (G1 is linear move, X1 is the destination, F10 is the speed) ----- - -In reality, the whole move can't be made at F10, since the machine -must accelerate from a stop, move toward X=1, and then decelerate to -stop again. Sometimes part of the move is done at F10, but for many -moves, especially short ones, the specified feed rate is never reached -at all. Having short moves in your G Code can cause your machine to -slow down and speed up for the longer moves if the 'naive cam detector' -is not employed with G64 Pn. - -The basic acceleration and deceleration described above is not complex -and there is no compromise to be made. In the INI file the specified -machine constraints such as maximum axis velocity and axis acceleration -must be obeyed by the trajectory planner. - - -=== Path Following - -A less straightforward problem is that of path following. When you -program a corner in G Code, the trajectory planner can do several -things, all of which are right in some cases: it can decelerate to a -stop exactly at the coordinates of the corner, and then accelerate in -the new direction. It can also do what is called blending, which is to -keep the feed rate up while going through the corner, making it -necessary to round the corner off in order to obey machine constraints. -You can see that there is a trade off here: you can slow down to get -better path following, or keep the speed up and have worse path -following. Depending on the particular cut, the material, the tooling, -etc., the programmer may want to compromise differently. - -Rapid moves also obey the current trajectory control. With moves long -enough to reach maximum velocity on a machine with low acceleration and -no path tolerance specified, you can get a fairly round corner. - -=== Programming the Planner(((Programming the Planner))) - -The trajectory control commands are as follows: - -* 'G61' - (Exact Path Mode) visits the programmed point exactly, even though - that means it might temporarily come to a complete stop in order to - change direction to the next programmed point. - -* 'G61.1' - (Exact Stop Mode) tells the planner to come to an exact stop at every - segment's end. - -* 'G64' - (Blend Without Tolerance Mode) G64 is the default setting when you - start LinuxCNC. G64 is just blending and the naive cam detector is not - enabled. G64 and G64 P0 tell the planner to sacrifice path following - accuracy in order to keep the feed rate up. This is necessary for some - types of material or tooling where exact stops are harmful, and can - work great as long as the programmer is careful to keep in mind that - the tool's path will be somewhat more curvy than the program specifies. - When using G0 (rapid) moves with G64 use caution on clearance moves and - allow enough distance to clear obstacles based on the acceleration - capabilities of your machine. - -* 'G64 P- Q-' - (Blend With Tolerance Mode) This enables the 'naive cam detector' and - enables blending with a tolerance. If you program G64 P0.05, you tell - the planner that you want continuous feed, but at programmed corners - you want it to slow down enough so that the tool path can stay within - 0.05 user units of the programmed path. The exact amount of slowdown - depends on the geometry of the programmed corner and the machine - constraints, but the only thing the programmer needs to worry about is - the tolerance. This gives the programmer complete control over the path - following compromise. The blend tolerance can be changed throughout the - program as necessary. Beware that a specification of G64 P0 has the - same effect as G64 alone (above), which is necessary for backward - compatibility for old G Code programs. See the G Code Chapter for more - information on G64 P- Q-. - -* 'Blending without tolerance' - The controlled point will touch each specified movement at at least - one point. The machine will never move at such a speed that it cannot - come to an exact stop at the end of the current movement (or next - movement, if you pause when blending has already started). The distance - from the end point of the move is as large as it needs to be to keep up - the best contouring feed. - -* 'Naive Cam Detector' - Successive G1 moves that involve only the XYZ axes that deviate less - than Q- from a straight line are merged into a single straight line. - This merged movement replaces the individual G1 movements for the - purposes of blending with tolerance. Between successive movements, the - controlled point will pass no more than P- from the actual endpoints of - the movements. The controlled point will touch at least one point on - each movement. The machine will never move at such a speed that it - cannot come to an exact stop at the end of the current movement (or - next movement, if you pause when blending has already started) On G2/3 - moves in the G17 (XY) plane when the maximum deviation of an arc from a - straight line is less than the G64 Q- tolerance the arc is broken into - two lines (from start of arc to midpoint, and from midpoint to end). - those lines are then subject to the naive cam algorithm for lines. - Thus, line-arc, arc-arc, and arc-line cases as well as line-line - benefit from the 'naive cam detector'. This improves contouring - performance by simplifying the path. - -In the following figure the blue line represents the actual machine -velocity. The red lines are the acceleration capability of the machine. -The horizontal lines below each plot is the planned move. The upper -plot shows how the trajectory planner will slow the machine down when -short moves are encountered to stay within the limits of the machines -acceleration setting to be able to come to an exact stop at the end of -the next move. The bottom plot shows the effect of the Naive Cam -Detector to combine the moves and do a better job of keeping the -velocity as planned. - -.Naive Cam Detector - -image::images/naive-cam.png[align="center"] - -=== Planning Moves - -Make sure moves are 'long enough' to suit your machine/material. -Principally because of the rule that the machine will never move at -such a speed that it cannot come to a complete stop at the end of the -current movement, there is a minimum movement length that will allow -the machine to keep up a requested feed rate with a given acceleration -setting. - -The acceleration and deceleration phase each use half the ini file -MAX_ACCELERATION. In a blend that is an exact reversal, this causes the -total axis acceleration to equal the ini file MAX_ACCELERATION. In -other cases, the actual machine acceleration is somewhat less than the -ini file acceleration - -// This is a duplicate paragraph to the one below without latexmath. - -To keep up the feed rate, the move must be longer than the distance it -takes to accelerate from 0 to the desired feed rate and then stop -again. Using A as *1/2* the ini file MAX_ACCELERATION -and F as the feed rate *in units per second*, the acceleration time is -*t~a~ = F/A* and the acceleration distance is -*d~a~ = F*t~a~/2*. The deceleration time -and distance are the same, making the critical distance -*d = d~a~ + d~d~ = 2 * d~a~ = F^2^/A*. - -For example, for a feed rate of 1 inch per second and an acceleration of -*10 inches/sec^2^*, the critical distance is -*1^2^/10 = 1/10 = 0.1 inches*. - -For a feed rate of 0.5 inch per second, the critical distance is -*5^2^/100 = 25/10 = 0.025* inches. - -//// -This section has been commented out until latexmath is working again. - -To keep up the feed rate, the move must be longer than the distance it -takes to accelerate from 0 to the desired feed rate and then stop -again. Using A as latexmath:[$\frac{1}{2}$] the ini file MAX_ACCELERATION -and F as the feed rate *in units per second*, the acceleration time is -latexmath:[$ ta = \frac{F}{A} $] and the acceleration distance is -latexmath:[$ da = \frac{1}{2} \times F \times ta $]. The deceleration time -and distance are the same, making the critical distance -latexmath:[$ d = da + dd = 2 \times da = \frac{F^{2}}{A} $]. - -For example, for a feed rate of 1 inch per second and an acceleration of -latexmath:[$ 10 \frac{inch}{sec^{2}} $], the critical distance is -latexmath:[$\frac{1^{2}}{10} = \frac{1}{10} = 0.1$] inch. -For a feed rate of 0.5 inch per second, the critical distance is -latexmath:[$ \frac{0.5^{2}}{10} = \frac{0.25}{10} = 0.025$] inch. -//// - -== G Code - -=== Defaults - -When LinuxCNC first starts up many G and M codes are loaded by default. The -current active G and M codes can be viewed on the MDI tab in the -'Active G-Codes:' window in the AXIS interface. These G and M codes -define the behavior of LinuxCNC and it is important that you understand what -each one does before running LinuxCNC. The defaults can be changed when -running a G-Code file and left in a different state than when you -started your LinuxCNC session. The best practice is to set the defaults -needed for the job in the preamble of your G-Code file and not assume -that the defaults have not changed. Printing out the G-Code -<> page can help you remember -what each one is. - -=== Feed Rate - -How the feed rate is applied depends on if an axis involved with the -move is a rotary axis. Read and understand the <> -section if you have a rotary axis or a lathe. - -=== Tool Radius Offset - -Tool Radius Offset (G41/42) requires that the tool be able to touch -somewhere along each programmed move without gouging the two adjacent -moves. If that is not possible with the current tool diameter you will -get an error. A smaller diameter tool may run without an error on the -same path. This means you can program a cutter to pass down a path that -is narrower than the cutter without any errors. See the -<> Section -for more information. - -== Homing - -After starting LinuxCNC each axis must be homed prior to running a program -or running a MDI command. - -If your machine does not have home switches a match mark on each axis -can aid in homing the machine coordinates to the same place each time. - -Once homed your soft limits that are set in the ini file will be used. - -If you want to deviate from the default behavior, or want to use the -Mini interface you will need to set the option NO_FORCE_HOMING = 1 in -the [TRAJ] section of your ini file. More information on homing can be -found in the Integrator Manual. - -== Tool Changes - -There are several options when doing manual tool changes. See the -[EMCIO] section of the Integrator Manual for information on -configuration of these options. Also see the G28 and G30 section of the -User Manual. - -== Coordinate Systems - -The Coordinate Systems can be confusing at first. Before running a CNC -machine you must understand the basics of the coordinate systems used -by LinuxCNC. In depth information on the LinuxCNC Coordinate Systems -is in the <> Section of this -manual. - -=== G53 Machine Coordinate - -When you home LinuxCNC you set the G53 Machine Coordinate System to 0 for -each axis homed. - - - No other coordinate systems or tool offsets are changed by homing. - -The only time you move in the G53 machine coordinate system is when -you program a G53 on the same line as a move. Normally you are in the -G54 coordinate system. - -=== G54-59.3 User Coordinates - -Normally you use the G54 Coordinate System. When an offset is applied -to a current user coordinate system a small blue ball with lines will -be at the machine origin when your DRO is displaying 'Position: -Relative Actual' in Axis. If your offsets are temporary use the Zero -Coordinate System from the Machine menu or program 'G10 L2 P1 X0 Y0 Z0' -at the end of your G Code file. Change the 'P' number to suit the -coordinate system you wish to clear the offset in. - - - Offsets stored in a user coordinate system are retained when LinuxCNC is - shut down. - - Using the 'Touch Off' button in Axis sets an offset for the chosen - User Coordinate System. - -=== When You're Lost - -If you're having trouble getting 0,0,0 on the DRO when you think you -should, you may have some offsets programmed in and need to remove -them. - - - Move to the Machine origin with G53 G0 X0 Y0 Z0 - - Clear any G92 offset with G92.1 - - Use the G54 coordinate system with G54 - - Set the G54 coordinate system to be the same as the - machine coordinate system with G10 L2 P1 X0 Y0 Z0 R0 - - Turn off tool offsets with G49 - - Turn on the Relative Coordinate Display from the menu - -Now you should be at the machine origin X0 Y0 Z0 and the relative -coordinate system should be the same as the machine coordinate system. - -== Machine Configurations - -The following diagram shows a typical mill showing direction of travel -of the tool and the mill table and limit switches. Notice how the mill table -moves in the opposite direction of the Cartesian coordinate system arrows -shown by the 'Tool Direction' image. This makes the 'tool' move in the -correct direction in relation to the material. - -.Mill Configuration -image::images/mill-diagram.png[align="center"] - -The following diagram shows a typical lathe showing direction of travel -of the tool and limit switches. - -.Lathe Configuration -image::images/lathe-diagram.png[align="center"] diff --git a/docs/src/common/User_Concepts_es.txt b/docs/src/common/User_Concepts_es.txt deleted file mode 100644 index 58a0100489b..00000000000 --- a/docs/src/common/User_Concepts_es.txt +++ /dev/null @@ -1,300 +0,0 @@ -= Important User Concepts - -[[cha:important-user-concepts]] (((User Concepts))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - - -This chapter covers important user concepts that should be understood -before attempting to run a CNC machine with g code. - -== Trajectory Control[[sec:trajectory-control]](((Trajectory Control))) - -=== Trajectory Planning - -Trajectory planning, in general, is the means by which LinuxCNC follows the -path specified by your G Code program, while still operating within the -limits of your machinery. - -A G Code program can never be fully obeyed. For example, imagine you -specify as a single-line program the following move: - ----- -G1 X1 F10 (G1 is linear move, X1 is the destination, F10 is the speed) ----- - -In reality, the whole move can't be made at F10, since the machine -must accelerate from a stop, move toward X=1, and then decelerate to -stop again. Sometimes part of the move is done at F10, but for many -moves, especially short ones, the specified feed rate is never reached -at all. Having short moves in your G Code can cause your machine to -slow down and speed up for the longer moves if the 'naive cam detector' -is not employed with G64 Pn. - -The basic acceleration and deceleration described above is not complex -and there is no compromise to be made. In the INI file the specified -machine constraints such as maximum axis velocity and axis acceleration -must be obeyed by the trajectory planner. - -=== Path Following - -A less straightforward problem is that of path following. When you -program a corner in G Code, the trajectory planner can do several -things, all of which are right in some cases: it can decelerate to a -stop exactly at the coordinates of the corner, and then accelerate in -the new direction. It can also do what is called blending, which is to -keep the feed rate up while going through the corner, making it -necessary to round the corner off in order to obey machine constraints. -You can see that there is a trade off here: you can slow down to get -better path following, or keep the speed up and have worse path -following. Depending on the particular cut, the material, the tooling, -etc., the programmer may want to compromise differently. - -Rapid moves also obey the current trajectory control. With moves long -enough to reach maximum velocity on a machine with low acceleration and -no path tolerance specified, you can get a fairly round corner. - -=== Programming the Planner(((Programming the Planner))) - -The trajectory control commands are as follows: - -* 'G61' - (Exact Path Mode) visits the programmed point exactly, even though - that means it might temporarily come to a complete stop in order to - change direction to the next programmed point. - -* 'G61.1' - (Exact Stop Mode) tells the planner to come to an exact stop at every - segment's end. - -* 'G64' - (Blend Without Tolerance Mode) G64 is the default setting when you - start LinuxCNC. G64 is just blending and the naive cam detector is not - enabled. G64 and G64 P0 tell the planner to sacrifice path following - accuracy in order to keep the feed rate up. This is necessary for some - types of material or tooling where exact stops are harmful, and can - work great as long as the programmer is careful to keep in mind that - the tool's path will be somewhat more curvy than the program specifies. - When using G0 (rapid) moves with G64 use caution on clearance moves and - allow enough distance to clear obstacles based on the acceleration - capabilities of your machine. - -* 'G64 P- Q-' - (Blend With Tolerance Mode) This enables the 'naive cam detector' and - enables blending with a tolerance. If you program G64 P0.05, you tell - the planner that you want continuous feed, but at programmed corners - you want it to slow down enough so that the tool path can stay within - 0.05 user units of the programmed path. The exact amount of slowdown - depends on the geometry of the programmed corner and the machine - constraints, but the only thing the programmer needs to worry about is - the tolerance. This gives the programmer complete control over the path - following compromise. The blend tolerance can be changed throughout the - program as necessary. Beware that a specification of G64 P0 has the - same effect as G64 alone (above), which is necessary for backward - compatibility for old G Code programs. See the G Code Chapter for more - information on G64 P- Q-. - -* 'Blending without tolerance' - The controlled point will touch each specified movement at at least - one point. The machine will never move at such a speed that it cannot - come to an exact stop at the end of the current movement (or next - movement, if you pause when blending has already started). The distance - from the end point of the move is as large as it needs to be to keep up - the best contouring feed. - -* 'Naive Cam Detector' - Successive G1 moves that involve only the XYZ axes that deviate less - than Q- from a straight line are merged into a single straight line. - This merged movement replaces the individual G1 movements for the - purposes of blending with tolerance. Between successive movements, the - controlled point will pass no more than P- from the actual endpoints of - the movements. The controlled point will touch at least one point on - each movement. The machine will never move at such a speed that it - cannot come to an exact stop at the end of the current movement (or - next movement, if you pause when blending has already started) On G2/3 - moves in the G17 (XY) plane when the maximum deviation of an arc from a - straight line is less than the G64 Q- tolerance the arc is broken into - two lines (from start of arc to midpoint, and from midpoint to end). - those lines are then subject to the naive cam algorithm for lines. - Thus, line-arc, arc-arc, and arc-line cases as well as line-line - benefit from the 'naive cam detector'. This improves contouring - performance by simplifying the path. - -In the following figure the blue line represents the actual machine -velocity. The red lines are the acceleration capability of the machine. -The horizontal lines below each plot is the planned move. The upper -plot shows how the trajectory planner will slow the machine down when -short moves are encountered to stay within the limits of the machines -acceleration setting to be able to come to an exact stop at the end of -the next move. The bottom plot shows the effect of the Naive Cam -Detector to combine the moves and do a better job of keeping the -velocity as planned. - -.Naive Cam Detector - -image::images/naive-cam.png[] - -=== Planning Moves - -Make sure moves are 'long enough' to suit your machine/material. -Principally because of the rule that the machine will never move at -such a speed that it cannot come to a complete stop at the end of the -current movement, there is a minimum movement length that will allow -the machine to keep up a requested feed rate with a given acceleration -setting. - -The acceleration and deceleration phase each use half the ini file -MAX_ACCELERATION. In a blend that is an exact reversal, this causes the -total axis acceleration to equal the ini file MAX_ACCELERATION. In -other cases, the actual machine acceleration is somewhat less than the -ini file acceleration - -// This is a duplicate paragraph to the one below without latexmath. - -To keep up the feed rate, the move must be longer than the distance it -takes to accelerate from 0 to the desired feed rate and then stop -again. Using A as *1/2* the ini file MAX_ACCELERATION -and F as the feed rate *in units per second*, the acceleration time is -*t~a~ = F/A* and the acceleration distance is -*d~a~ = F*t~a~/2*. The deceleration time -and distance are the same, making the critical distance -*d = d~a~ + d~d~ = 2 * d~a~ = F^2^/A*. - -For example, for a feed rate of 1 inch per second and an acceleration of -*10 inches/sec^2^*, the critical distance is -*1^2^/10 = 1/10 = 0.1 inches*. - -For a feed rate of 0.5 inch per second, the critical distance is -*5^2^/100 = 25/10 = 0.025* inches. - -//// -This section has been commented out until latexmath is working again. - -To keep up the feed rate, the move must be longer than the distance it -takes to accelerate from 0 to the desired feed rate and then stop -again. Using A as latexmath:[$\frac{1}{2}$] the ini file MAX_ACCELERATION -and F as the feed rate *in units per second*, the acceleration time is -latexmath:[$ ta = \frac{F}{A} $] and the acceleration distance is -latexmath:[$ da = \frac{1}{2} \times F \times ta $]. The deceleration time -and distance are the same, making the critical distance -latexmath:[$ d = da + dd = 2 \times da = \frac{F^{2}}{A} $]. - -For example, for a feed rate of 1 inch per second and an acceleration of -latexmath:[$ 10 \frac{inch}{sec^{2}} $], the critical distance is -latexmath:[$\frac{1^{2}}{10} = \frac{1}{10} = 0.1$] inch. -For a feed rate of 0.5 inch per second, the critical distance is -latexmath:[$ \frac{0.5^{2}}{10} = \frac{0.25}{10} = 0.025$] inch. -//// - -== G Code - -=== Defaults - -When LinuxCNC first starts up many G and M codes are loaded by default. The -current active G and M codes can be viewed on the MDI tab in the -'Active G-Codes:' window in the AXIS interface. These G and M codes -define the behavior of LinuxCNC and it is important that you understand what -each one does before running LinuxCNC. The defaults can be changed when -running a G-Code file and left in a different state than when you -started your LinuxCNC session. The best practice is to set the defaults -needed for the job in the preamble of your G-Code file and not assume -that the defaults have not changed. Printing out the G-Code -<> page can help you remember -what each one is. - -=== Feed Rate - -How the feed rate is applied depends on if an axis involved with the -move is a rotary axis. Read and understand the <> -section if you have a rotary axis or a lathe. - -=== Tool Radius Offset - -Tool Radius Offset (G41/42) requires that the tool be able to touch -somewhere along each programmed move without gouging the two adjacent -moves. If that is not possible with the current tool diameter you will -get an error. A smaller diameter tool may run without an error on the -same path. This means you can program a cutter to pass down a path that -is narrower than the cutter without any errors. See the -<> Section -for more information. - -== Homing - -After starting LinuxCNC each axis must be homed prior to running a program -or running a MDI command. - -If your machine does not have home switches a match mark on each axis -can aid in homing the machine coordinates to the same place each time. - -Once homed your soft limits that are set in the ini file will be used. - -If you want to deviate from the default behavior, or want to use the -Mini interface you will need to set the option NO_FORCE_HOMING = 1 in -the [TRAJ] section of your ini file. More information on homing can be -found in the Integrator Manual. - -== Tool Changes - -There are several options when doing manual tool changes. See the -[EMCIO] section of the Integrator Manual for information on -configuration of these options. Also see the G28 and G30 section of the -User Manual. - -== Coordinate Systems - -The Coordinate Systems can be confusing at first. Before running a CNC -machine you must understand the basics of the coordinate systems used -by LinuxCNC. In depth information on the LinuxCNC Coordinate Systems -is in the <> Section of this -manual. - -=== G53 Machine Coordinate - -When you home LinuxCNC you set the G53 Machine Coordinate System to 0 for -each axis homed. - - - No other coordinate systems or tool offsets are changed by homing. - -The only time you move in the G53 machine coordinate system is when -you program a G53 on the same line as a move. Normally you are in the -G54 coordinate system. - -=== G54-59.3 User Coordinates - -Normally you use the G54 Coordinate System. When an offset is applied -to a current user coordinate system a small blue ball with lines will -be at the machine origin when your DRO is displaying 'Position: -Relative Actual' in Axis. If your offsets are temporary use the Zero -Coordinate System from the Machine menu or program 'G10 L2 P1 X0 Y0 Z0' -at the end of your G Code file. Change the 'P' number to suit the -coordinate system you wish to clear the offset in. - - - Offsets stored in a user coordinate system are retained when LinuxCNC is - shut down. - - Using the 'Touch Off' button in Axis sets an offset for the chosen - User Coordinate System. - -=== When You're Lost - -If you're having trouble getting 0,0,0 on the DRO when you think you -should, you may have some offsets programmed in and need to remove -them. - - - Move to the Machine origin with G53 G0 X0 Y0 Z0 - - Clear any G92 offset with G92.1 - - Use the G54 coordinate system with G54 - - Set the G54 coordinate system to be the same as the - machine coordinate system with G10 L2 P1 X0 Y0 Z0 R0 - - Turn off tool offsets with G49 - - Turn on the Relative Coordinate Display from the menu - -Now you should be at the machine origin X0 Y0 Z0 and the relative -coordinate system should be the same as the machine coordinate system. - - diff --git a/docs/src/common/User_Concepts_fr.txt b/docs/src/common/User_Concepts_fr.txt deleted file mode 100644 index 93d1ee19945..00000000000 --- a/docs/src/common/User_Concepts_fr.txt +++ /dev/null @@ -1,308 +0,0 @@ -:lang: fr -:toc: - -= Concepts importants pour l'utilisateur - -[[cha:Concepts-pour-utilisateur]] (((Concepts pour l'utilisateur))) - -== La configuration machine - -Le dessin suivant montre les directions de déplacement de l'outil et la position -des fins de course de limite sur une fraiseuse classique. -Noter le diagramme cartésien représentant les directions de déplacement de -l'outil (Tool Direction). La direction de déplacement de la table et en -opposition du système de coordonnées cartésiennes. Le système de coordonnées -cartésiennes représente le sens de déplacement de l'outil. C'est toujours les -déplacements de l'outil qui doivent être programmés pour que l'outil se déplace -dans les directions correctes par rapport au matériel. - -Noter également la position des fins de course et le sens d'activation de leurs -cames. Plusieurs combinaisons sont possibles, par exemple il est possible, à -l'inverse du dessin, de placer un seul fin de course fixe au milieu de la table -et deux cames mobiles pour l'actionner. Dans ce cas les limites seront inversées, -+X sera à droite de la table et -X à gauche. Cette inversion ne change rien du -point de vue du sens de déplacement de l'outil. - -.Configuration typique d'une fraiseuse -image::images/mill-diagram.png[align="left"] - -Le dessin suivant montre les directions de déplacement de l'outil et la position -des fins de course de limite sur un tour classique. - -.Configuration typique d'un tour -image::images/lathe-diagram.png[align="left"] - -== Contrôle de trajectoire - -=== La planification de trajectoire - -La planification de trajectoire est en général, le moyen qui permet à -LinuxCNC de suivre le chemin spécifié par le programme G-code, tout en -restant dans les limites permises par la machine. - -Un programme en G-code ne peut jamais être exactement suivi. Par -exemple imaginez que vous spécifiez dans une ligne du programme les -mouvements suivants: ----- -G1 X10 F100 (G1 un mouvement linéaire, X10 la destination, F100 la vitesse) ----- - -En réalité, la totalité du mouvement ne peut pas être effectuée à -F100, puisque la machine commence le mouvement à une vitesse nulle, -elle doit accélérer pour se déplacer vers X=10, puis décélérer pour -revenir à une vitesse nulle en fin de mouvement. Parfois une portion du -mouvement se fera bien à F100, mais pour beaucoup de mouvements, -spécialement les petits mouvements, la vitesse spécifiée ne sera jamais -atteinte. - -Les accélérations et décélérations de base décrite ici ne sont pas -complexes et ne nécessite pas de compromis. Les contraintes des axes de -la machine sont placés dans le fichier INI, comme la vitesse maximum de -l'axe et l'accélération ne devant pas être dépassées par le -planificateur de trajectoire. - -=== Le suivi du parcours - -Un problème plus compliqué est posé par le suivi du parcours. Quand -vous programmez un angle droit en G-code, le planificateur de -trajectoire peut suivre différents parcours, tous sont bons dans -certains cas; il peut décélérer et s'arrêter exactement sur les -coordonnées du sommet de l'angle, puis accélérer dans la direction -perpendiculaire. Il peut également faire ce qui est appelé le mode -_trajectoire continue_, qui consiste à maintenir la vitesse d'avance en -passant vers le sommet de l'angle, ce qui nécessite d'arrondir l'angle -de façon à respecter les contraintes machine. Vous pouvez remarquer -qu'il y a dans ce cas un compromis: vous pouvez ralentir pour avoir un -meilleur suivi du parcours, ou conserver une vitesse d'avance élevée au -détriment de la finesse des angles, du fait d'un moins bon suivi du -parcours. Selon les particularités de l'usinage, du matériau, de -l'outillage, etc., le programmeur devra décider du bon compromis. - -=== La programmation du planificateur - -Les commandes de contrôle de trajectoire sont les suivantes: - -G61:: - (mode trajectoire exacte) G61 indique au planificateur de suivre - exactement la trajectoire prévue. - -G61.1:: - (mode Arrêt exact) G61.1 demande au planificateur de s'arrêter exactement - à la fin de chaque segment. Le parcours sera suivi avec exactitude mais - les arrêts complets de l'avance peuvent se révéler destructeurs pour la - pièce ou l'outillage, selon les particularités de l'usinage. - -G64:: - (mode trajectoire continue sans tolérance) Le mode G64 est le mode - par défaut au démarrage de LinuxCNC. G64 est juste une trajectoire continue, - le _Détecteur naive CAM_ n'est pas activé. G64 et G64 P0 indiquent au - planificateur de sacrifier la précision de suivi du parcours pour - conserver une vitesse d'avance élevée. Ce mode est nécessaire pour - certains types de matériaux ou d'outillages pour lesquels l'arrêt exact - est dangereux. Il peut très bien fonctionner tant que le programmeur - garde à l'esprit que le parcours d'outil pourra être plus arrondi que - celui indiqué par le programme. - Dans le cas d'un mouvement en G0 (rapide) avec G64, faire preuve de - prudence sur les mouvements de dégagement et prévoir suffisamment de - distance pour éviter les obstacles selon les capacités d'accélérations - de la machine. - -G64 Px.xxx:: - (mode trajectoire continue avec tolérance) Ce mode active le _Détecteur - naive CAM_" et active le mode trajectoire continue avec tolérance. Si - vous utilisez le millimètre comme unité et programmez G64 P1.27, vous - dites au planificateur que vous souhaitez une vitesse d'avance - continue, mais qu'aux coins programmés vous voulez un ralentissement - suffisant pour que le parcours de l'outil puisse rester à moins de - 1.27mm du parcours programmé. L'amplitude exacte du ralentissement - dépend de la géométrie de l'angle programmé et des contraintes machine, - mais la seule chose dont le programmeur ait à se soucier est la - tolérance, ce qui lui donne le contrôle complet des compromis du suivi - de parcours. La tolérance de ce mode peut être modifiée tout au long du - programme si nécessaire. Attention: spécifier un G64 P0 aura le même - effet qu'un G64 seul (voir ci-dessus), c'est rendu nécessaire pour - conserver la compatibilité ascendante avec les anciens programmes - G-code. Voir le chapitre sur le G-code pour plus d'information sur - G64 P- Q-. - -Trajectoire continue sans tolérance:: - Le point contrôlé touchera chaque mouvement spécifié à au moins un - point. La machine ne pourra jamais se déplacer à une vitesse d'avance - telle qu'elle ne puisse pas s'arrêter avec précision à la fin du - mouvement en cours (ou du prochain mouvement, si vous mettez en pause - lorsque la trajectoire est déjà commencée). La distance avec le point - final du mouvement est aussi grande que nécessaire pour maintenir la - meilleure vitesse d'avance possible pendant le parcours. - -Détecteur Naive Cam:: - Les mouvements successifs en G1, concernant uniquement les axes - XYZ, dont la déviation par rapport à une ligne droite est inférieur à - P, sont fusionnés en une seule ligne droite. Ce mouvement fusionné - remplace les mouvements individuels en G1 pour obtenir une nouvelle - trajectoire avec tolérance. Entre les mouvements successifs, le point - contrôlé ne passera jamais à plus de P- du point final du mouvement en - cours. Le point contrôlé touchera au moins un point de chacun des - mouvements. La machine ne pourra jamais se déplacer à une vitesse ne - lui permettant pas de venir s'arrêter exactement à la fin du mouvement - actuel (ou du prochain mouvement, si vous mettez en pause lorsque la - trajectoire est déjà commencée). En mouvement G2/3 dans le plan G17 - (XY) quand la déviation maximale entre un arc et une ligne droite est - plus petite que la tolérance G64 Q- l'arc est brisé en deux lignes - (du début de l'arc à son milieu et du milieu à la fin de l'arc). - Ces deux tronçons sont ensuite soumis à l'algorithme Naïve cam des lignes. - Ainsi, les cas ligne-arc, arc-arc et arc-ligne, comme les cas ligne-ligne - bénéficient du traitement _Détecteur naive CAM_. Les performances de - contourage sont accrues grâce à la simplification de la trajectoire. - -Dans la figure suivante la ligne bleue représente la vitesse machine actuelle. -La ligne rouge représente la capacité d'accélération de la machine. -La ligne horizontale sous chaque tracé est le mouvement planifié. -Le tracé supérieur montre comment le planificateur de trajectoire ralenti -la machine quand des petits mouvements sont rencontrés. Ceci pour rester -dans les limites fixées par les paramètres d'accélération de la machine et -être capable de s'arrêter exactement à la fin du prochain mouvement. -Le tracé du bas montre l'effet du détecteur Naive Cam pour combiner les -mouvements et fournir une amélioration conséquente dans le suivi de la vitesse -programmée. - -.Détecteur Naive Cam - -image::images/naive-cam.png[] - -=== Planification des mouvements - -Assurez-vous que les mouvements soient 'assez longs' pour convenir à -votre machine/matériel. Principalement en raison de la règle selon -laquelle "la machine ne pourra jamais se déplacer à une vitesse ne lui -permettant pas de venir s'arrêter complètement à la fin du mouvement -actuel", il y a une longueur minimale de déplacement permettant à la -machine d'atteindre la vitesse demandée avec un réglage d'accélération -donné. - -Les phases d'accélération et de décélération utilisent chacune la -moitié de la variable MAX_ACCELERATION du fichier .ini. Avec une -trajectoire continue c'est exactement inversé, ce qui fait que -l'accélération totale de l'axe est égal à la variable -MAX_ACCELERATION. Dans d'autres cas, l'accélération actuelle de la -machine est un peu inférieure à celle du fichier ini. - -Pour maintenir la vitesse d'avance, le mouvement doit être plus long -que la distance qui lui est nécessaire pour accélérer de zéro à la -vitesse souhaitée, puis de décélérer pour s'arrêter. En utilisant _A_ -comme étant _1/2_ de la variable MAX_ACCELERATION du fichier ini et -_F_ comme étant la vitesse d'avance _en unités par seconde_, -le temps d'accélération sera _t~a~ = F/A_ et la distance d'accélération sera -_d~a~ = F*t~a~/2_. Les temps et distance de décélération sont les mêmes, ce -qui fait que la distance critique _d = d~a~ + d~d~ = 2 * d~a~ = F^2^/A_. - -Par exemple, pour une vitesse d'avance de _25mm par seconde_ et une -accélération de _250 mm/sec^2^_, la distance critique sera de -_10^2^/100 = 100/100 = 1mm_. -Pour une vitesse d'avance de _5mm par seconde_, la distance critique ne serait -que de _5^2^/100 = 25/100 = 0.25mm_. - -== G-code - -=== Par défaut - -Quand LinuxCNC démarre pour la première fois beaucoup de G et M codes sont -chargés par défaut. Les codes actifs courants sont visibles dans l'interface -Axis, dans l'onglet _Données manuelles_ dans le champ _G-codes actifs_ -Ces codes G et M définissent le comportement de LinuxCNC et il est important -de bien comprendre la signification de chacun avant de démarrer LinuxCNC. -Ces codes par défaut peuvent être modifiés lors du lancement d'un fichier -de G-codes puis laissés dans différents états qui seront identiques lors -d'une nouvelle session de LinuxCNC. La bonne pratique consiste à mettre dans -le préambule de chaque fichier de G-codes les codes nécessaires pour le -travail demandé et ne pas supposer que ceux par défaut conviendront. -Imprimer la page des références rapides du G-code peut aider à se rappeler -la signification de chacun d'eux. - -== Vitesse d'avance - -Si vous avez un tour ou un axe rotatif, pour savoir comment la vitesse -d'avance s'applique selon que l'axe est linéaire ou rotatif, lire et -comprendre la section <> du manuel de -l'utilisateur. - -== Compensation de rayon d'outil - -La compensation de rayon d'outil (G41/G42) nécessite que l'outil puisse -usiner tout au long de la trajectoire programmée sans interférer avec -les mouvements d'entrée ou de sortie. Si c'est impossible avec le -diamètre de l'outil courant, une erreur est signalée. Un diamètre -d'outil inférieur est peut être utilisable sans erreur pour le même -parcours. Ce qui signifie que quand ce type de problème se présente, il -est possible de programmer un outil plus petit pour usiner le même -parcours sans erreur. Voir la section compensation de rayon d'outil pour plus -d'informations. - -== Prise d'origine machine - -Après le démarrage de LinuxCNC chaque axe doit être référencé sur son -point d'origine machine avant tout mouvement ou commande MDI. - -Pour déroger à ce comportement par défaut, ou pour utiliser -l'interface Mini, il est possible d'ajuster l'option NO_FORCE_HOMING = 1 dans -la section [TRAJ] du fichier ini. - -== Changement d'outil - -Il existe plusieurs options pour effectuer un changement d'outil. Voir -la section [EMCIO] dans le manuel de l'intégrateur pour les -informations sur la configuration de ces options. Voir également les -sections G28 et G30 du manuel de l'utilisateur. - -== Systèmes de coordonnées - -Les systèmes de coordonnées peuvent être déroutant au premier abord. -Avant de démarrer une machine CNC, il est important de bien comprendre -les bases des systèmes utilisés par LinuxCNC. Pour explorer plus en profondeur -les systèmes de coordonnées utilisés par LinuxCNC, voir la section xxxxx -de ce manuel. - -=== G53 Coordonnées machine - -Quand vous réalisez une prise d'origine de plusieurs axes de LinuxCNC, -vous passez G53, les coordonnées système, à 0 pour chacun des axes concernés. - - - La prises d'origine ne modifient en rien les autres systèmes de coordonnées, -ni les compensations d'outil. - -La seule façon de se déplacer en mode G53, en coordonnées machine, c'est de programmer -un G53 sur la même ligne que celle d'un mouvement. En fonctionnement normal, -vous êtes dans le système de coordonnées G54. - -=== G54 à 59.3 Coordonnées utilisateur - -Normalement vous utilisez le système de coordonnées G54. Quand un décalage -est appliqué au système de coordonnées utilisateur courant, dans Axis, -une petite sphère bleue avec des rayons est affichée à l'emplacement -de l'origine machine quand la visu affiche _Position: Relative Actuelle_. -Si votre décalage utilise temporairement les coordonnées machine, depuis -le menu Machine ou en programmant _G10 L2 P1 X0 Y0 Z0_ à la fin du programme G-Code. -Modifiez la valeur du mot _P_ en fonction du système de coordonnées dont vous voulez -effacer le décalage. - - - Les décalages stockés dans un système de coordonnées utilisateur sont conservés - à l'arrêt de LinuxCNC. - - Dans Axis, utiliser le bouton _Toucher_ décalera le système de coordonnées utilisateur - choisi. - -=== Quand vous êtes perdu - -Si vous avez des difficultés pour obtenir 0,0,0 sur la visu alors que -vous pensez que vous devriez l'avoir, c'est peut être provoqué par plusieurs -décalages programmés et qu'il conviendrait de supprimer. -Pour cela: - - - Placez vous sur l'origine machine avec _G53 G0 X0 Y0 Z0_ - - Supprimez tous les décalages _G92_ avec _G92.1_ - - Utilisez les coordonnées utilisateur avec _G54_ - - Rendez les coordonnées utilisateur _G54_, identiques aux - coordonnées machine avec _G10 L2 P1 X0 Y0 Z0 R0_ - - Annulez les offsets d'outil avec _G49_ - - Activez l'affichage des coordonnées relatives depuis le menu. - -Maintenant vous devriez être, à l'origine machine _X0 Y0 Z0_ et le système -de coordonnées relatives devrait être le même que le système de coordonnées machine. diff --git a/docs/src/common/emc-history.txt b/docs/src/common/emc-history.txt deleted file mode 100644 index 70aba2e41cd..00000000000 --- a/docs/src/common/emc-history.txt +++ /dev/null @@ -1,109 +0,0 @@ -= LinuxCNC History - -[[cha:linuxcnc-history]] (((LinuxCNC History))) - -EMC (the Enhanced Machine Controller) was created by -http://www.nist.gov/index.html[NIST] , the National Institute of Standards -and Technology, which is an agency of the Commerce Department of the United -States government. - -NIST first became interested in writing a motion control package as a test -platform for concepts and standards. Early sponsorship from General Motors -resulted in an adaptation of the fledgling version of EMC using PMAC -intelligent control boards running under a 'real time' version of Windows NT -and controlling a large milling machine. - -As is required of all 'work product' of US federal government employees, -the resulting software and the report about it are required to be in the -public domain and a report about it was duly published, including on the -Internet. It was there that Matt Shaver discovered EMC. He contacted NIST -and entered into discussions with Fred Proctor about adapting the code for -use in controlling less expensive hardware to be used for upgrades and -replacements of CNC controls that were obsolete or just plain dead. NIST -was intrigued because they too wanted something less expensive. In order to -launch a cooperative effort, a formal agreement was created which guaranteed -that the resulting code and design would remain in the public domain. - -Early considerations focused on replacing the expensive and temperamental -'real time' Windows NT system. It was proposed that a relatively new (at the -time) real time extension of the Linux operating system be tried. This idea -was pursued with success. Next up was the issue of the expensive intelligent -motion control boards. By this time the processing power of a PC was -considered great enough to directly take control of the motion routines. -A quick search of available hardware resulted in the selection of a -http://www.servotogo.com/[Servo-To-Go] interface board as the first platform -for letting the PC directly control the motors. Software for trajectory -planning and PID loop control was added to the existing user interface and -RS274 interpreter. Matt successfully used this version to upgrade a couple -of machines with dead controls and this became the EMC system that first -caught the attention of the outside world. Mention of EMC on the -Rec.Crafts.Metalworking USENET discussion group resulted in early adopters -like http://pico-systems.com/motion.html[Jon Elson] building systems -to take advantage of EMC. - -NIST set up a mailing list for people interested in EMC. As time went on, -others outside NIST became interested in improving EMC. Many people requested -or coded small improvements to the code. Ray Henry wanted to refine the user -interface. Since Ray was reluctant to try tampering with the C code in which -the user interface was written, a simpler method was sought. Fred Proctor of -NIST suggested a scripting language and wrote code to interface the Tcl/Tk -scripting language to the internal NML communications of EMC. With this tool -Ray went on to write a Tcl/Tk program that is the user interface in -predominate use with EMC today. - -By this time interest in EMC as beginning to pick up substantially. As more -and more people began to attempt installation of EMC, the difficulty of -patching a Linux kernel with the real time extensions and of compiling the -EMC code became glaringly obvious. Many attempts to document the process and -write scripts were attempted, some with moderate success. The problem of -matching the correct version of the patches and compilers with the selected -version of Linux kept cropping up. Paul Corner came to the rescue with the -BDI (brain dead install) which was a CD from which a complete working system -(Linux, patches, and EMC) could be installed. Paul’s BDI has evolved into a -bootable CD that can be run on most PC style computers to 'test drive' EMC -without overwriting the existing system on the hard disk. Once the user -decides that they want a permanent EMC system, the same CD can install a -complete EMC/Linux environment. The BDI approach has opened the world of -EMC to a much larger potential user community. As this community became -larger, the EMC mailing list and code archives were moved to the SourceForge -and the LinuxCNC web site was established. - -With a larger community of users participating, EMC became a major focus of -interest at the on-going CNC exhibits at NAMES and NAMES became the annual -meeting event for EMC. For the first couple of years, the meetings just -happened because the interested parties were at NAMES. In 2003 the EMC user -community had its first announced public meeting. It was held the Monday -after NAMES in the lobby of the arena where the NAMES show was held. -Organization was loose, but the idea of a hardware abstraction layer -(HAL) was born and the movement to restructure the code for ease of -development (EMC2) was proposed. - -In the spring of 2011, the LinuxCNC Board of Directors was contacted by -a law firm representing EMC Corporation (www.emc.com) about the use of -"EMC" and "EMC2" to identify the software offered on linuxcnc.org. EMC -Corporation has registered various trademarks relating to EMC and EMC² -(EMC with superscripted numeral two). - -After a number of conversations with the representative of EMC -Corporation, the final result is that, starting with the next major -release of the software, linuxcnc.org will stop identifying the software -using "emc" or "EMC", or those terms followed by digits. To the extent -that the LinuxCNC Board of Directors controls the names used to identify -the software offered on linuxcnc.org, the board has agreed to this. - -As a result, it was necessary to choose a new name for the software. Of -the options the board considered, there was consensus that "LinuxCNC" is -the best option, as this has been our website's name for years. - -In preparation for the new name, we have received a sub-license of the -LINUX® trademark from the Linux Foundation (www.linuxfoundation.org), -protecting our use of the LinuxCNC name. (LINUX® is the registered trademark -of Linus Torvalds in the U.S. and other countries.) - -The rebranding effort will include the linuxcnc.org website, the IRC -channels, and versions of the software and documentation starting with -2.5.0. Rebranding will begin right away. - -A paper written from NIST's perspective on the history of EMC and its -transition to open source is available -http://www.nist.gov/manuscript-publication-search.cfm?pub_id=821651[here]. diff --git a/docs/src/common/images/axis-2.5.png b/docs/src/common/images/axis-2.5.png deleted file mode 100644 index 8c6dd24b6df..00000000000 Binary files a/docs/src/common/images/axis-2.5.png and /dev/null differ diff --git a/docs/src/common/images/axis-gladevcp.png b/docs/src/common/images/axis-gladevcp.png deleted file mode 100644 index f5705efd18e..00000000000 Binary files a/docs/src/common/images/axis-gladevcp.png and /dev/null differ diff --git a/docs/src/common/images/axis-pyvcp.png b/docs/src/common/images/axis-pyvcp.png deleted file mode 100644 index 4435d81dac7..00000000000 Binary files a/docs/src/common/images/axis-pyvcp.png and /dev/null differ diff --git a/docs/src/common/images/axis_25_fr.png b/docs/src/common/images/axis_25_fr.png deleted file mode 100644 index c7509aea7e5..00000000000 Binary files a/docs/src/common/images/axis_25_fr.png and /dev/null differ diff --git a/docs/src/common/images/configuration-selector.png b/docs/src/common/images/configuration-selector.png deleted file mode 100644 index 165dfa46a31..00000000000 Binary files a/docs/src/common/images/configuration-selector.png and /dev/null differ diff --git a/docs/src/common/images/configuration-selector1_fr.png b/docs/src/common/images/configuration-selector1_fr.png deleted file mode 100644 index 57e11e9d829..00000000000 Binary files a/docs/src/common/images/configuration-selector1_fr.png and /dev/null differ diff --git a/docs/src/common/images/copy-configuration_fr.png b/docs/src/common/images/copy-configuration_fr.png deleted file mode 100644 index ff5bf43457c..00000000000 Binary files a/docs/src/common/images/copy-configuration_fr.png and /dev/null differ diff --git a/docs/src/common/images/emc2-intro.png b/docs/src/common/images/emc2-intro.png deleted file mode 100644 index 57d11121aba..00000000000 Binary files a/docs/src/common/images/emc2-intro.png and /dev/null differ diff --git a/docs/src/common/images/keystick.png b/docs/src/common/images/keystick.png deleted file mode 100644 index 1008e4ffcfc..00000000000 Binary files a/docs/src/common/images/keystick.png and /dev/null differ diff --git a/docs/src/common/images/lathe-diagram.png b/docs/src/common/images/lathe-diagram.png deleted file mode 100644 index 5e27bebb671..00000000000 Binary files a/docs/src/common/images/lathe-diagram.png and /dev/null differ diff --git a/docs/src/common/images/lathe_tool.png b/docs/src/common/images/lathe_tool.png deleted file mode 100644 index 148a0ff7d5b..00000000000 Binary files a/docs/src/common/images/lathe_tool.png and /dev/null differ diff --git a/docs/src/common/images/mill-diagram.png b/docs/src/common/images/mill-diagram.png deleted file mode 100644 index bb6b8a96d82..00000000000 Binary files a/docs/src/common/images/mill-diagram.png and /dev/null differ diff --git a/docs/src/common/images/mini.png b/docs/src/common/images/mini.png deleted file mode 100644 index c28b52dd377..00000000000 Binary files a/docs/src/common/images/mini.png and /dev/null differ diff --git a/docs/src/common/images/mini_fr.png b/docs/src/common/images/mini_fr.png deleted file mode 100644 index 3ed1295717e..00000000000 Binary files a/docs/src/common/images/mini_fr.png and /dev/null differ diff --git a/docs/src/common/images/naive-cam.dxf b/docs/src/common/images/naive-cam.dxf deleted file mode 100644 index ff97e60631a..00000000000 --- a/docs/src/common/images/naive-cam.dxf +++ /dev/null @@ -1,2514 +0,0 @@ -999 -dxflib 2.0.4.8 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMASZ - 40 -0.1 - 9 -$DIMGAP - 40 -0.025 - 9 -$DIMEXO - 40 -0.025 - 9 -$INSUNITS - 70 -1 - 9 -$DIMTXT - 40 -0.1 - 9 -$PLIMMAX - 10 -8.2677165354330722 - 20 -11.6929133858267722 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$DIMEXE - 40 -0.05 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -1 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -0 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -0.75 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -0.1 - 42 -0.025 - 43 -3.75 - 44 -0.05 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -0.1 -141 -2.5 -143 -0.03937007874016 -147 -0.025 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -43 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -1 -370 --1 - 6 -ByLayer - 10 -1.0 - 20 -0.0 - 30 -0.0 - 11 -0.5000000000000002 - 21 -0.1339745962155614 - 31 -0.0 - 0 -LINE - 5 -44 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -5 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -0.0 - 30 -0.0 - 11 -0.5000000000000002 - 21 -0.1339745962155614 - 31 -0.0 - 0 -LINE - 5 -45 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -1 -370 --1 - 6 -ByLayer - 10 -1.0 - 20 -0.0 - 30 -0.0 - 11 -2.4928203230275514 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -46 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -1 -370 --1 - 6 -ByLayer - 10 -6.0 - 20 -0.0 - 30 -0.0 - 11 -4.5071796769724504 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -47 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -1 -370 --1 - 6 -ByLayer - 10 -7.0 - 20 -0.0 - 30 -0.0 - 11 -8.4928203230275514 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -48 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -5 -370 --1 - 6 -ByLayer - 10 -12.0 - 20 -0.0 - 30 -0.0 - 11 -10.5071796769724504 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -49 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -1 -370 --1 - 6 -ByLayer - 10 -6.0 - 20 -0.0 - 30 -0.0 - 11 -6.25 - 21 -0.0669872981077807 - 31 -0.0 - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -1 -370 --1 - 6 -ByLayer - 10 -7.0 - 20 -0.0 - 30 -0.0 - 11 -6.75 - 21 -0.0669872981077807 - 31 -0.0 - 0 -LINE - 5 -4B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -1 -370 --1 - 6 -ByLayer - 10 -6.5 - 20 -0.0 - 30 -0.0 - 11 -6.25 - 21 -0.0669872981077807 - 31 -0.0 - 0 -LINE - 5 -4C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -1 -370 --1 - 6 -ByLayer - 10 -6.5 - 20 -0.0 - 30 -0.0 - 11 -6.75 - 21 -0.0669872981077807 - 31 -0.0 - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -3 -370 --1 - 6 -ByLayer - 10 -1.0 - 20 -0.0 - 30 -0.0 - 11 -6.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -4E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -3 -370 --1 - 6 -ByLayer - 10 --0.1 - 20 --1.0 - 30 -0.0 - 11 -12.0 - 21 --1.0 - 31 -0.0 - 0 -LINE - 5 -4F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -5 -370 --1 - 6 -ByLayer - 10 -12.0 - 20 --1.0 - 30 -0.0 - 11 -10.5071796769724504 - 21 --0.6 - 31 -0.0 - 0 -LINE - 5 -50 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -5 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 --1.0 - 30 -0.0 - 11 -1.4928203230275512 - 21 --0.6 - 31 -0.0 - 0 -LINE - 5 -51 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -5 -370 --1 - 6 -ByLayer - 10 -1.4928203230275512 - 20 -0.4 - 30 -0.0 - 11 -5.0071796769724504 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -52 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -5 -370 --1 - 6 -ByLayer - 10 -0.5000000000000002 - 20 -0.1339745962155614 - 30 -0.0 - 11 -1.4928203230275512 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -53 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -5 -370 --1 - 6 -ByLayer - 10 -6.25 - 20 -0.0669872981077807 - 30 -0.0 - 11 -5.0071796769724504 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -54 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -5 -370 --1 - 6 -ByLayer - 10 -7.9928203230275505 - 20 -0.4 - 30 -0.0 - 11 -10.5071796769724504 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -55 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -5 -370 --1 - 6 -ByLayer - 10 -6.75 - 20 -0.0669872981077807 - 30 -0.0 - 11 -7.9928203230275505 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -56 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -6 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -0.0 - 30 -0.0 - 11 -1.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -57 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -6 -370 --1 - 6 -ByLayer - 10 -7.0 - 20 -0.0 - 30 -0.0 - 11 -12.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -58 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -6 -370 --1 - 6 -ByLayer - 10 -6.0 - 20 -0.0 - 30 -0.0 - 11 -6.5 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -59 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -3 -370 --1 - 6 -ByLayer - 10 -6.5 - 20 -0.0 - 30 -0.0 - 11 -7.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -5A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -5 -370 --1 - 6 -ByLayer - 10 -6.75 - 20 -0.0669872981077807 - 30 -0.0 - 11 -6.5 - 21 -0.1339745962155614 - 31 -0.0 - 0 -LINE - 5 -5B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -5 -370 --1 - 6 -ByLayer - 10 -6.25 - 20 -0.0669872981077807 - 30 -0.0 - 11 -6.5 - 21 -0.1339745962155614 - 31 -0.0 - 0 -LINE - 5 -5C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -5 -370 --1 - 6 -ByLayer - 10 -1.4928203230275512 - 20 --0.6 - 30 -0.0 - 11 -10.5071796769724504 - 21 --0.6 - 31 -0.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -5D - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -5D -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -5F - 3 -HIDETEXT -350 -5E - 0 -DICTIONARYVAR - 5 -5E -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -5F -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/common/images/naive-cam.png b/docs/src/common/images/naive-cam.png deleted file mode 100644 index d490d9bb5e7..00000000000 Binary files a/docs/src/common/images/naive-cam.png and /dev/null differ diff --git a/docs/src/common/images/ngcgui.png b/docs/src/common/images/ngcgui.png deleted file mode 100644 index 8ef01b2d99c..00000000000 Binary files a/docs/src/common/images/ngcgui.png and /dev/null differ diff --git a/docs/src/common/images/ngcgui_fr.png b/docs/src/common/images/ngcgui_fr.png deleted file mode 100644 index 93ccdf9ef1a..00000000000 Binary files a/docs/src/common/images/ngcgui_fr.png and /dev/null differ diff --git a/docs/src/common/images/pid-feedback.png b/docs/src/common/images/pid-feedback.png deleted file mode 100644 index efd3c6f2626..00000000000 Binary files a/docs/src/common/images/pid-feedback.png and /dev/null differ diff --git a/docs/src/common/images/pid-feedback.svg b/docs/src/common/images/pid-feedback.svg deleted file mode 100755 index 7d46de1a10c..00000000000 --- a/docs/src/common/images/pid-feedback.svg +++ /dev/null @@ -1,493 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - K - i - 0 - t - - ⌠⌡ - e(Ï„)dÏ„ - p - e(t) - K - K - d - de(t) - dt - - Σ - Σ - P - I - D - Process - output - error - setpoint - - diff --git a/docs/src/common/images/pid-feedback_fr.png b/docs/src/common/images/pid-feedback_fr.png deleted file mode 100644 index 464cc206870..00000000000 Binary files a/docs/src/common/images/pid-feedback_fr.png and /dev/null differ diff --git a/docs/src/common/images/pid-feedback_fr.svg b/docs/src/common/images/pid-feedback_fr.svg deleted file mode 100755 index 985e24e8096..00000000000 --- a/docs/src/common/images/pid-feedback_fr.svg +++ /dev/null @@ -1,493 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - K - i - 0 - t - - ⌠⌡ - e(Ï„)dÏ„ - p - e(t) - K - K - d - de(t) - dt - - Σ - Σ - P - I - D - Processus - sortie - erreur - consigne - - diff --git a/docs/src/common/images/servo-feedback.dxf b/docs/src/common/images/servo-feedback.dxf deleted file mode 100644 index a440beb4001..00000000000 --- a/docs/src/common/images/servo-feedback.dxf +++ /dev/null @@ -1,3986 +0,0 @@ -999 -dxflib 2.0.4.8 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMASZ - 40 -0.1 - 9 -$DIMGAP - 40 -0.025 - 9 -$INSUNITS - 70 -1 - 9 -$DIMEXO - 40 -0.025 - 9 -$DIMTXT - 40 -0.1 - 9 -$DIMSTYLE - 2 -Standard - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$PLIMMAX - 10 -8.2677165354330722 - 20 -11.6929133858267722 - 9 -$DIMEXE - 40 -0.05 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -6 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -0 -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -diagram_items - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -35 -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -text_verbs - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -text_nouns - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -diagram_lines - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -47 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -outer_box - 70 -1 - 62 -7 - 6 -CONTINUOUS -370 -13 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -0.75 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -0.1 - 42 -0.025 - 43 -3.75 - 44 -0.05 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -0.1 -141 -2.5 -143 -0.03937007874016 -147 -0.025 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -CIRCLE - 5 -48 -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.0 - 20 -2.5 - 30 -0.0 - 40 -0.25 - 0 -CIRCLE - 5 -49 -100 -AcDbEntity -100 -AcDbCircle - 8 -diagram_items - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.0 - 20 -2.5 - 30 -0.0 - 40 -0.25 - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_items - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.6000000000000001 - 20 -2.8000000000000003 - 30 -0.0 - 11 -3.6000000000000001 - 21 -2.2000000000000002 - 31 -0.0 - 0 -LINE - 5 -4B -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_items - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.6000000000000001 - 20 -2.2000000000000002 - 30 -0.0 - 11 -4.2000000000000002 - 21 -2.5 - 31 -0.0 - 0 -LINE - 5 -4C -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_items - 62 -256 -370 --1 - 6 -ByLayer - 10 -4.2000000000000002 - 20 -2.5 - 30 -0.0 - 11 -3.6000000000000001 - 21 -2.8000000000000003 - 31 -0.0 - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_items - 62 -256 -370 --1 - 6 -ByLayer - 10 -4.0 - 20 -0.8 - 30 -0.0 - 11 -4.0 - 21 -0.2 - 31 -0.0 - 0 -LINE - 5 -4E -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_items - 62 -256 -370 --1 - 6 -ByLayer - 10 -4.0 - 20 -0.2 - 30 -0.0 - 11 -3.4000000000000004 - 21 -0.2 - 31 -0.0 - 0 -LINE - 5 -4F -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_items - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.4000000000000004 - 20 -0.2 - 30 -0.0 - 11 -3.4000000000000004 - 21 -0.8 - 31 -0.0 - 0 -LINE - 5 -50 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_items - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.4000000000000004 - 20 -0.8 - 30 -0.0 - 11 -4.0 - 21 -0.8 - 31 -0.0 - 0 -LINE - 5 -51 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_items - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.1000000000000001 - 20 -0.6000000000000001 - 30 -0.0 - 11 -2.1000000000000001 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -52 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_items - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.1000000000000001 - 20 -0.4 - 30 -0.0 - 11 -2.1000000000000001 - 21 -0.2 - 31 -0.0 - 0 -LINE - 5 -53 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_items - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.1000000000000001 - 20 -0.2 - 30 -0.0 - 11 -1.9000000000000001 - 21 -0.2 - 31 -0.0 - 0 -LINE - 5 -54 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_items - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.9000000000000001 - 20 -0.2 - 30 -0.0 - 11 -1.9000000000000001 - 21 -0.8 - 31 -0.0 - 0 -LINE - 5 -55 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_items - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.9000000000000001 - 20 -0.8 - 30 -0.0 - 11 -2.1000000000000001 - 21 -0.8 - 31 -0.0 - 0 -LINE - 5 -56 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_items - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.1000000000000001 - 20 -0.8 - 30 -0.0 - 11 -2.1000000000000001 - 21 -0.6000000000000001 - 31 -0.0 - 0 -LINE - 5 -57 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_items - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.9000000000000001 - 20 -2.0 - 30 -0.0 - 11 -2.0 - 21 -2.1000000000000001 - 31 -0.0 - 0 -MTEXT - 5 -58 -100 -AcDbEntity -100 -AcDbMText - 8 -text_verbs - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.2000000000000001 - 20 -1.7000000000000002 - 30 -0.0 - 40 -0.1 - 41 -100.0 - 71 -7 - 72 -2 - 1 -input\~(command)\~signal\Pand\~feedback\~signal\Pdrive\~summing\~amp - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -59 -100 -AcDbEntity -100 -AcDbMText - 8 -text_verbs - 62 -256 -370 --1 - 6 -ByLayer - 10 -4.1000000000000005 - 20 -1.1000000000000001 - 30 -0.0 - 40 -0.1 - 41 -100.0 - 71 -7 - 72 -2 - 1 -power\Pamp\Pdrives\Pmotor - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5A -100 -AcDbEntity -100 -AcDbMText - 8 -text_verbs - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.2000000000000002 - 20 -2.0 - 30 -0.0 - 40 -0.1 - 41 -100.0 - 71 -7 - 72 -2 - 1 -summing\~amp\~drives\~power\~amp - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5B -100 -AcDbEntity -100 -AcDbMText - 8 -text_verbs - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.2000000000000002 - 20 -0.9 - 30 -0.0 - 40 -0.1 - 41 -100.0 - 71 -7 - 72 -2 - 1 -motor\~drives\~load\P(and\~feedback\~device) - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -5C -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.1000000000000001 - 20 -2.6000000000000001 - 30 -0.0 - 11 -1.9000000000000001 - 21 -2.6000000000000001 - 31 -0.0 - 0 -LINE - 5 -5D -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.9000000000000001 - 20 -2.6000000000000001 - 30 -0.0 - 11 -2.0 - 21 -2.5 - 31 -0.0 - 0 -LINE - 5 -5E -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.0 - 20 -2.5 - 30 -0.0 - 11 -1.9000000000000001 - 21 -2.4000000000000004 - 31 -0.0 - 0 -LINE - 5 -5F -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.9000000000000001 - 20 -2.4000000000000004 - 30 -0.0 - 11 -2.1000000000000001 - 21 -2.4000000000000004 - 31 -0.0 - 0 -LINE - 5 -60 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.4000000000000001 - 20 -2.6000000000000001 - 30 -0.0 - 11 -1.5000000000000002 - 21 -2.5 - 31 -0.0 - 0 -LINE - 5 -61 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.5000000000000002 - 20 -2.5 - 30 -0.0 - 11 -1.4000000000000001 - 21 -2.4000000000000004 - 31 -0.0 - 0 -LINE - 5 -62 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -4.0 - 20 -0.5 - 30 -0.0 - 11 -4.1000000000000005 - 21 -0.6000000000000001 - 31 -0.0 - 0 -LINE - 5 -63 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -4.0 - 20 -0.5 - 30 -0.0 - 11 -4.1000000000000005 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -64 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.4000000000000004 - 20 -0.6000000000000001 - 30 -0.0 - 11 -2.1000000000000001 - 21 -0.6000000000000001 - 31 -0.0 - 0 -LINE - 5 -65 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.1000000000000001 - 20 -0.4 - 30 -0.0 - 11 -3.4000000000000004 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -66 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.1000000000000001 - 20 -0.6000000000000001 - 30 -0.0 - 11 -2.2000000000000002 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -67 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.2000000000000002 - 20 -0.6000000000000001 - 30 -0.0 - 11 -2.3000000000000003 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -68 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.3000000000000003 - 20 -0.6000000000000001 - 30 -0.0 - 11 -2.4000000000000004 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -69 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.4000000000000004 - 20 -0.6000000000000001 - 30 -0.0 - 11 -2.5 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -6A -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.5 - 20 -0.6000000000000001 - 30 -0.0 - 11 -2.6000000000000001 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -6B -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.6000000000000001 - 20 -0.6000000000000001 - 30 -0.0 - 11 -2.7000000000000002 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -6C -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.7000000000000002 - 20 -0.6000000000000001 - 30 -0.0 - 11 -2.8000000000000003 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -6D -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.8000000000000003 - 20 -0.6000000000000001 - 30 -0.0 - 11 -2.9000000000000004 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -6E -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.9000000000000004 - 20 -0.6000000000000001 - 30 -0.0 - 11 -3.0 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -6F -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.0 - 20 -0.6000000000000001 - 30 -0.0 - 11 -3.1000000000000001 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -70 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.1000000000000001 - 20 -0.6000000000000001 - 30 -0.0 - 11 -3.2000000000000002 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -71 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.2000000000000002 - 20 -0.6000000000000001 - 30 -0.0 - 11 -3.3000000000000003 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -72 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.3000000000000003 - 20 -0.6000000000000001 - 30 -0.0 - 11 -3.4000000000000004 - 21 -0.4 - 31 -0.0 - 0 -LINE - 5 -73 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.0 - 20 -2.1000000000000001 - 30 -0.0 - 11 -1.9000000000000001 - 21 -2.0 - 31 -0.0 - 0 -LINE - 5 -74 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.0 - 20 -2.1000000000000001 - 30 -0.0 - 11 -2.1000000000000001 - 21 -2.0 - 31 -0.0 - 0 -LINE - 5 -75 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.9000000000000004 - 20 -2.6000000000000001 - 30 -0.0 - 11 -3.0 - 21 -2.5 - 31 -0.0 - 0 -LINE - 5 -76 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.0 - 20 -2.5 - 30 -0.0 - 11 -2.9000000000000004 - 21 -2.4000000000000004 - 31 -0.0 - 0 -LINE - 5 -77 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.0 - 20 -0.8 - 30 -0.0 - 11 -2.0 - 21 -2.2500000000000004 - 31 -0.0 - 0 -LINE - 5 -78 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.75 - 20 -2.5 - 30 -0.0 - 11 -1.3 - 21 -2.5 - 31 -0.0 - 0 -LINE - 5 -79 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.25 - 20 -2.5 - 30 -0.0 - 11 -3.6000000000000001 - 21 -2.5 - 31 -0.0 - 0 -LINE - 5 -7A -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.1000000000000001 - 20 -0.2 - 30 -0.0 - 11 -2.4000000000000004 - 21 -0.2 - 31 -0.0 - 0 -LINE - 5 -7B -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.5 - 20 -0.3 - 30 -0.0 - 11 -2.4000000000000004 - 21 -0.2 - 31 -0.0 - 0 -LINE - 5 -7C -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.4000000000000004 - 20 -0.2 - 30 -0.0 - 11 -2.5 - 21 -0.1 - 31 -0.0 - 0 -LINE - 5 -7D -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -4.6000000000000005 - 20 -2.5 - 30 -0.0 - 11 -4.6000000000000005 - 21 -0.5 - 31 -0.0 - 0 -LINE - 5 -7E -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -4.5 - 20 -2.2000000000000002 - 30 -0.0 - 11 -4.6000000000000005 - 21 -2.1000000000000001 - 31 -0.0 - 0 -LINE - 5 -7F -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -4.6000000000000005 - 20 -2.1000000000000001 - 30 -0.0 - 11 -4.7000000000000002 - 21 -2.2000000000000002 - 31 -0.0 - 0 -LINE - 5 -80 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -4.2000000000000002 - 20 -2.5 - 30 -0.0 - 11 -4.6000000000000005 - 21 -2.5 - 31 -0.0 - 0 -LINE - 5 -81 -100 -AcDbEntity -100 -AcDbLine - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -4.6000000000000005 - 20 -0.5 - 30 -0.0 - 11 -4.0 - 21 -0.5 - 31 -0.0 - 0 -MTEXT - 5 -82 -100 -AcDbEntity -100 -AcDbMText - 8 -text_nouns - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.1000000000000001 - 20 -2.4000000000000004 - 30 -0.0 - 40 -0.1 - 41 -100.0 - 71 -7 - 72 -2 - 1 -input\~signal\P(command\~signal) - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -83 -100 -AcDbEntity -100 -AcDbMText - 8 -text_nouns - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.7000000000000001 - 20 -1.0 - 30 -0.0 - 40 -0.1 - 41 -100.0 - 71 -7 - 72 -2 - 1 -feedback\~signal\~^\P - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -84 -100 -AcDbEntity -100 -AcDbMText - 8 -text_nouns - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.5000000000000001 - 20 -0.6000000000000001 - 30 -0.0 - 40 -0.1 - 41 -100.0 - 71 -7 - 72 -2 - 1 -feedback\~device\~-> - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -85 -100 -AcDbEntity -100 -AcDbMText - 8 -text_nouns - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.7000000000000002 - 20 -2.8000000000000003 - 30 -0.0 - 40 -0.1 - 41 -100.0 - 71 -7 - 72 -2 - 1 -summing\~amp - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -86 -100 -AcDbEntity -100 -AcDbMText - 8 -text_nouns - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.8000000000000003 - 20 -2.8000000000000003 - 30 -0.0 - 40 -0.1 - 41 -100.0 - 71 -7 - 72 -2 - 1 -power\~amp - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -87 -100 -AcDbEntity -100 -AcDbMText - 8 -text_nouns - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.5000000000000004 - 20 -0.5 - 30 -0.0 - 40 -0.1 - 41 -100.0 - 71 -7 - 72 -2 - 1 -motor - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -88 -100 -AcDbEntity -100 -AcDbMText - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.6000000000000001 - 20 -2.5 - 30 -0.0 - 40 -0.1 - 41 -100.0 - 71 -7 - 72 -2 - 1 -+ - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -89 -100 -AcDbEntity -100 -AcDbMText - 8 -diagram_lines - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.9000000000000001 - 20 -2.1000000000000001 - 30 -0.0 - 40 -0.1 - 41 -100.0 - 71 -7 - 72 -2 - 1 -- - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -8A -100 -AcDbEntity -100 -AcDbLine - 8 -outer_box - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -0.0 - 30 -0.0 - 11 -5.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -8B -100 -AcDbEntity -100 -AcDbLine - 8 -outer_box - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -0.0 - 30 -0.0 - 11 -5.0 - 21 -3.0 - 31 -0.0 - 0 -LINE - 5 -8C -100 -AcDbEntity -100 -AcDbLine - 8 -outer_box - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -3.0 - 30 -0.0 - 11 -0.0 - 21 -3.0 - 31 -0.0 - 0 -LINE - 5 -8D -100 -AcDbEntity -100 -AcDbLine - 8 -outer_box - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -3.0 - 30 -0.0 - 11 -0.0 - 21 -0.0 - 31 -0.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -8E - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -8E -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -90 - 3 -HIDETEXT -350 -8F - 0 -DICTIONARYVAR - 5 -8F -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -90 -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/common/images/servo-feedback.eps b/docs/src/common/images/servo-feedback.eps deleted file mode 100644 index e6622444aa8..00000000000 --- a/docs/src/common/images/servo-feedback.eps +++ /dev/null @@ -1,6135 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%BoundingBox: 0 0 334 204 -%%HiResBoundingBox: 0 0 331 201 -%%Creator: Qt 3.3.8b -%%CreationDate: Tue May 24 21:43:15 2011 -%%DocumentFonts: - -%%EndComments -% EPSF created by ps2eps 1.64 -%%BeginProlog --6 243 translate --90 rotate -save -countdictstack -mark -newpath -/showpage {} def -/setpagedevice {pop} def -%%EndProlog -%%Page 1 1 -%%BeginProlog -% Prolog copyright 1994-2006 Trolltech. You may copy this prolog in any way -% that is directly related to this document. For other use of this prolog, -% see your licensing agreement for Qt. -/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D -/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D -/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D -/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read -pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end -d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi -false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88 -0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{ -LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{ -gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get -SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7 -bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL -0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB -exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL -ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1 -eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if -64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3 -i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll -putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3 -1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D -/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3 -colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1 -QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray -QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2 -add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq -{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC -imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel -where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d -/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7 -DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d -/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height -h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4 -DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{ -pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC -WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{ -1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie} -if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4 -2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg -RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0 -exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if -BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h -add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0 -6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT -}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h -D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div -add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1 -ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT -0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy -MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R -{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h -ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry -D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y -w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul -200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90 -x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0 --90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h -ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale -NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS} -D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT -x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP -ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255 -div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0 -B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25 -/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true -exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3 --1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch -/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup -maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding -fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length -dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end -definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d} -D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty -MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch -stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT -1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0 -exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore -showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop -pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D -/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt -ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP} -D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D -/LArr[ [] [] [ 83.333 25.000 ] [ 25.000 83.333 ] [ 25.000 25.000 ] [ 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 25.000 25.000 ] ] d -/pageinit { -% 88*125 mm (landscape) - 90 rotate 0.12 -0.12 scale/defM matrix CM d } d -%%EndProlog -%%BeginSetup -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -QI -%%EndPageSetup -[1 0 0 1 0 0]ST -1 0 B 1 1 PE -NB -W BC -NP -1348 577 MT -1348 575 LT -1348 573 LT -1348 571 LT -1348 569 LT -1348 567 LT -1348 565 LT -1348 563 LT -1347 561 LT -1347 559 LT -1347 557 LT -1347 555 LT -1346 553 LT -1346 551 LT -1346 549 LT -1345 547 LT -1345 545 LT -1344 543 LT -1344 541 LT -1343 539 LT -1343 538 LT -1342 536 LT -1342 534 LT -1341 532 LT -1341 530 LT -1340 528 LT -1339 526 LT -1339 524 LT -1338 522 LT -1337 520 LT -1336 519 LT -1336 517 LT -1335 515 LT -1334 513 LT -1333 511 LT -1332 510 LT -1331 508 LT -1330 506 LT -1329 504 LT -1328 503 LT -1327 501 LT -1326 499 LT -1325 497 LT -1324 496 LT -1323 494 LT -1322 492 LT -1321 491 LT -1320 489 LT -1318 487 LT -1317 486 LT -1316 484 LT -1315 483 LT -1313 481 LT -1312 480 LT -1311 478 LT -1310 477 LT -1308 475 LT -1307 474 LT -1305 472 LT -1304 471 LT -1303 469 LT -1301 468 LT -1300 467 LT -1298 465 LT -1297 464 LT -1295 463 LT -1294 461 LT -1292 460 LT -1291 459 LT -1289 458 LT -1287 457 LT -1286 455 LT -1284 454 LT -1282 453 LT -1281 452 LT -1279 451 LT -1277 450 LT -1276 449 LT -1274 448 LT -1272 447 LT -1271 446 LT -1269 445 LT -1267 444 LT -1265 443 LT -1263 442 LT -1262 441 LT -1260 440 LT -1258 440 LT -1256 439 LT -1254 438 LT -1252 437 LT -1251 437 LT -1249 436 LT -1247 435 LT -1245 435 LT -1243 434 LT -1241 433 LT -1239 433 LT -1237 432 LT -1235 432 LT -1233 431 LT -1231 431 LT -1229 431 LT -1227 430 LT -1226 430 LT -1224 429 LT -1222 429 LT -1220 429 LT -1218 428 LT -1216 428 LT -1214 428 LT -1212 428 LT -1210 428 LT -1208 428 LT -1206 427 LT -1204 427 LT -1202 427 LT -1200 427 LT -1198 427 LT -1196 427 LT -1194 427 LT -1192 427 LT -1190 428 LT -1188 428 LT -1186 428 LT -1184 428 LT -1182 428 LT -1180 428 LT -1178 429 LT -1176 429 LT -1174 429 LT -1172 430 LT -1170 430 LT -1168 430 LT -1166 431 LT -1164 431 LT -1162 432 LT -1160 432 LT -1158 433 LT -1156 433 LT -1154 434 LT -1152 434 LT -1151 435 LT -1149 436 LT -1147 436 LT -1145 437 LT -1143 438 LT -1141 439 LT -1139 439 LT -1137 440 LT -1136 441 LT -1134 442 LT -1132 443 LT -1130 444 LT -1128 445 LT -1127 446 LT -1125 446 LT -1123 447 LT -1121 448 LT -1120 450 LT -1118 451 LT -1116 452 LT -1115 453 LT -1113 454 LT -1111 455 LT -1110 456 LT -1108 457 LT -1107 459 LT -1105 460 LT -1104 461 LT -1102 462 LT -1100 464 LT -1099 465 LT -1097 466 LT -1096 468 LT -1095 469 LT -1093 470 LT -1092 472 LT -1090 473 LT -1089 475 LT -1088 476 LT -1086 478 LT -1085 479 LT -1084 481 LT -1082 482 LT -1081 484 LT -1080 485 LT -1079 487 LT -1077 489 LT -1076 490 LT -1075 492 LT -1074 494 LT -1073 495 LT -1072 497 LT -1071 499 LT -1070 500 LT -1069 502 LT -1068 504 LT -1067 506 LT -1066 507 LT -1065 509 LT -1064 511 LT -1063 513 LT -1062 514 LT -1061 516 LT -1061 518 LT -1060 520 LT -1059 522 LT -1058 524 LT -1058 526 LT -1057 527 LT -1056 529 LT -1056 531 LT -1055 533 LT -1055 535 LT -1054 537 LT -1054 539 LT -1053 541 LT -1053 543 LT -1052 545 LT -1052 547 LT -1051 549 LT -1051 551 LT -1051 553 LT -1050 555 LT -1050 557 LT -1050 559 LT -1049 561 LT -1049 562 LT -1049 564 LT -1049 566 LT -1049 568 LT -1049 570 LT -1049 572 LT -1049 574 LT -1049 576 LT -1049 578 LT -1049 580 LT -1049 582 LT -1049 584 LT -1049 586 LT -1049 588 LT -1049 590 LT -1049 592 LT -1050 594 LT -1050 596 LT -1050 598 LT -1050 600 LT -1051 602 LT -1051 604 LT -1051 606 LT -1052 608 LT -1052 610 LT -1053 612 LT -1053 614 LT -1054 616 LT -1054 618 LT -1055 620 LT -1055 622 LT -1056 624 LT -1057 626 LT -1057 627 LT -1058 629 LT -1059 631 LT -1059 633 LT -1060 635 LT -1061 637 LT -1062 639 LT -1063 640 LT -1063 642 LT -1064 644 LT -1065 646 LT -1066 648 LT -1067 649 LT -1068 651 LT -1069 653 LT -1070 655 LT -1071 656 LT -1072 658 LT -1073 660 LT -1074 661 LT -1076 663 LT -1077 665 LT -1078 666 LT -1079 668 LT -1080 669 LT -1082 671 LT -1083 672 LT -1084 674 LT -1085 675 LT -1087 677 LT -1088 678 LT -1089 680 LT -1091 681 LT -1092 683 LT -1094 684 LT -1095 686 LT -1097 687 LT -1098 688 LT -1100 690 LT -1101 691 LT -1103 692 LT -1104 694 LT -1106 695 LT -1107 696 LT -1109 697 LT -1111 698 LT -1112 700 LT -1114 701 LT -1115 702 LT -1117 703 LT -1119 704 LT -1121 705 LT -1122 706 LT -1124 707 LT -1126 708 LT -1127 709 LT -1129 710 LT -1131 711 LT -1133 712 LT -1135 713 LT -1136 713 LT -1138 714 LT -1140 715 LT -1142 716 LT -1144 717 LT -1146 717 LT -1148 718 LT -1149 719 LT -1151 719 LT -1153 720 LT -1155 720 LT -1157 721 LT -1159 722 LT -1161 722 LT -1163 723 LT -1165 723 LT -1167 723 LT -1169 724 LT -1171 724 LT -1173 725 LT -1175 725 LT -1177 725 LT -1179 726 LT -1181 726 LT -1183 726 LT -1185 726 LT -1187 726 LT -1188 727 LT -1190 727 LT -1192 727 LT -1194 727 LT -1196 727 LT -1198 727 LT -1200 727 LT -1202 727 LT -1204 727 LT -1206 727 LT -1208 727 LT -1210 726 LT -1212 726 LT -1214 726 LT -1216 726 LT -1218 725 LT -1220 725 LT -1222 725 LT -1224 725 LT -1226 724 LT -1228 724 LT -1230 723 LT -1232 723 LT -1234 723 LT -1236 722 LT -1238 722 LT -1240 721 LT -1242 720 LT -1244 720 LT -1246 719 LT -1248 719 LT -1249 718 LT -1251 717 LT -1253 716 LT -1255 716 LT -1257 715 LT -1259 714 LT -1261 713 LT -1262 712 LT -1264 712 LT -1266 711 LT -1268 710 LT -1270 709 LT -1271 708 LT -1273 707 LT -1275 706 LT -1276 705 LT -1278 704 LT -1280 703 LT -1281 702 LT -1283 701 LT -1285 699 LT -1286 698 LT -1288 697 LT -1290 696 LT -1291 695 LT -1293 693 LT -1294 692 LT -1296 691 LT -1297 689 LT -1299 688 LT -1300 687 LT -1302 685 LT -1303 684 LT -1305 683 LT -1306 681 LT -1307 680 LT -1309 678 LT -1310 677 LT -1311 675 LT -1313 674 LT -1314 672 LT -1315 671 LT -1317 669 LT -1318 668 LT -1319 666 LT -1320 664 LT -1321 663 LT -1322 661 LT -1324 659 LT -1325 658 LT -1326 656 LT -1327 654 LT -1328 653 LT -1329 651 LT -1330 649 LT -1331 647 LT -1332 646 LT -1332 644 LT -1333 642 LT -1334 640 LT -1335 638 LT -1336 637 LT -1337 635 LT -1337 633 LT -1338 631 LT -1339 629 LT -1340 627 LT -1340 625 LT -1341 623 LT -1341 622 LT -1342 620 LT -1343 618 LT -1343 616 LT -1344 614 LT -1344 612 LT -1344 610 LT -1345 608 LT -1345 606 LT -1346 604 LT -1346 602 LT -1346 600 LT -1347 598 LT -1347 596 LT -1347 594 LT -1347 592 LT -1348 590 LT -1348 588 LT -1348 586 LT -1348 584 LT -1348 582 LT -1348 580 LT -1348 578 LT -1348 577 LT -QS -1 8 B 1 1 PE -NP -1348 577 MT -1348 575 LT -1348 573 LT -1348 571 LT -1348 569 LT -1348 567 LT -1348 565 LT -1348 563 LT -1347 561 LT -1347 559 LT -1347 557 LT -1347 555 LT -1346 553 LT -1346 551 LT -1346 549 LT -1345 547 LT -1345 545 LT -1344 543 LT -1344 541 LT -1343 539 LT -1343 538 LT -1342 536 LT -1342 534 LT -1341 532 LT -1341 530 LT -1340 528 LT -1339 526 LT -1339 524 LT -1338 522 LT -1337 520 LT -1336 519 LT -1336 517 LT -1335 515 LT -1334 513 LT -1333 511 LT -1332 510 LT -1331 508 LT -1330 506 LT -1329 504 LT -1328 503 LT -1327 501 LT -1326 499 LT -1325 497 LT -1324 496 LT -1323 494 LT -1322 492 LT -1321 491 LT -1320 489 LT -1318 487 LT -1317 486 LT -1316 484 LT -1315 483 LT -1313 481 LT -1312 480 LT -1311 478 LT -1310 477 LT -1308 475 LT -1307 474 LT -1305 472 LT -1304 471 LT -1303 469 LT -1301 468 LT -1300 467 LT -1298 465 LT -1297 464 LT -1295 463 LT -1294 461 LT -1292 460 LT -1291 459 LT -1289 458 LT -1287 457 LT -1286 455 LT -1284 454 LT -1282 453 LT -1281 452 LT -1279 451 LT -1277 450 LT -1276 449 LT -1274 448 LT -1272 447 LT -1271 446 LT -1269 445 LT -1267 444 LT -1265 443 LT -1263 442 LT -1262 441 LT -1260 440 LT -1258 440 LT -1256 439 LT -1254 438 LT -1252 437 LT -1251 437 LT -1249 436 LT -1247 435 LT -1245 435 LT -1243 434 LT -1241 433 LT -1239 433 LT -1237 432 LT -1235 432 LT -1233 431 LT -1231 431 LT -1229 431 LT -1227 430 LT -1226 430 LT -1224 429 LT -1222 429 LT -1220 429 LT -1218 428 LT -1216 428 LT -1214 428 LT -1212 428 LT -1210 428 LT -1208 428 LT -1206 427 LT -1204 427 LT -1202 427 LT -1200 427 LT -1198 427 LT -1196 427 LT -1194 427 LT -1192 427 LT -1190 428 LT -1188 428 LT -1186 428 LT -1184 428 LT -1182 428 LT -1180 428 LT -1178 429 LT -1176 429 LT -1174 429 LT -1172 430 LT -1170 430 LT -1168 430 LT -1166 431 LT -1164 431 LT -1162 432 LT -1160 432 LT -1158 433 LT -1156 433 LT -1154 434 LT -1152 434 LT -1151 435 LT -1149 436 LT -1147 436 LT -1145 437 LT -1143 438 LT -1141 439 LT -1139 439 LT -1137 440 LT -1136 441 LT -1134 442 LT -1132 443 LT -1130 444 LT -1128 445 LT -1127 446 LT -1125 446 LT -1123 447 LT -1121 448 LT -1120 450 LT -1118 451 LT -1116 452 LT -1115 453 LT -1113 454 LT -1111 455 LT -1110 456 LT -1108 457 LT -1107 459 LT -1105 460 LT -1104 461 LT -1102 462 LT -1100 464 LT -1099 465 LT -1097 466 LT -1096 468 LT -1095 469 LT -1093 470 LT -1092 472 LT -1090 473 LT -1089 475 LT -1088 476 LT -1086 478 LT -1085 479 LT -1084 481 LT -1082 482 LT -1081 484 LT -1080 485 LT -1079 487 LT -1077 489 LT -1076 490 LT -1075 492 LT -1074 494 LT -1073 495 LT -1072 497 LT -1071 499 LT -1070 500 LT -1069 502 LT -1068 504 LT -1067 506 LT -1066 507 LT -1065 509 LT -1064 511 LT -1063 513 LT -1062 514 LT -1061 516 LT -1061 518 LT -1060 520 LT -1059 522 LT -1058 524 LT -1058 526 LT -1057 527 LT -1056 529 LT -1056 531 LT -1055 533 LT -1055 535 LT -1054 537 LT -1054 539 LT -1053 541 LT -1053 543 LT -1052 545 LT -1052 547 LT -1051 549 LT -1051 551 LT -1051 553 LT -1050 555 LT -1050 557 LT -1050 559 LT -1049 561 LT -1049 562 LT -1049 564 LT -1049 566 LT -1049 568 LT -1049 570 LT -1049 572 LT -1049 574 LT -1049 576 LT -1049 578 LT -1049 580 LT -1049 582 LT -1049 584 LT -1049 586 LT -1049 588 LT -1049 590 LT -1049 592 LT -1050 594 LT -1050 596 LT -1050 598 LT -1050 600 LT -1051 602 LT -1051 604 LT -1051 606 LT -1052 608 LT -1052 610 LT -1053 612 LT -1053 614 LT -1054 616 LT -1054 618 LT -1055 620 LT -1055 622 LT -1056 624 LT -1057 626 LT -1057 627 LT -1058 629 LT -1059 631 LT -1059 633 LT -1060 635 LT -1061 637 LT -1062 639 LT -1063 640 LT -1063 642 LT -1064 644 LT -1065 646 LT -1066 648 LT -1067 649 LT -1068 651 LT -1069 653 LT -1070 655 LT -1071 656 LT -1072 658 LT -1073 660 LT -1074 661 LT -1076 663 LT -1077 665 LT -1078 666 LT -1079 668 LT -1080 669 LT -1082 671 LT -1083 672 LT -1084 674 LT -1085 675 LT -1087 677 LT -1088 678 LT -1089 680 LT -1091 681 LT -1092 683 LT -1094 684 LT -1095 686 LT -1097 687 LT -1098 688 LT -1100 690 LT -1101 691 LT -1103 692 LT -1104 694 LT -1106 695 LT -1107 696 LT -1109 697 LT -1111 698 LT -1112 700 LT -1114 701 LT -1115 702 LT -1117 703 LT -1119 704 LT -1121 705 LT -1122 706 LT -1124 707 LT -1126 708 LT -1127 709 LT -1129 710 LT -1131 711 LT -1133 712 LT -1135 713 LT -1136 713 LT -1138 714 LT -1140 715 LT -1142 716 LT -1144 717 LT -1146 717 LT -1148 718 LT -1149 719 LT -1151 719 LT -1153 720 LT -1155 720 LT -1157 721 LT -1159 722 LT -1161 722 LT -1163 723 LT -1165 723 LT -1167 723 LT -1169 724 LT -1171 724 LT -1173 725 LT -1175 725 LT -1177 725 LT -1179 726 LT -1181 726 LT -1183 726 LT -1185 726 LT -1187 726 LT -1188 727 LT -1190 727 LT -1192 727 LT -1194 727 LT -1196 727 LT -1198 727 LT -1200 727 LT -1202 727 LT -1204 727 LT -1206 727 LT -1208 727 LT -1210 726 LT -1212 726 LT -1214 726 LT -1216 726 LT -1218 725 LT -1220 725 LT -1222 725 LT -1224 725 LT -1226 724 LT -1228 724 LT -1230 723 LT -1232 723 LT -1234 723 LT -1236 722 LT -1238 722 LT -1240 721 LT -1242 720 LT -1244 720 LT -1246 719 LT -1248 719 LT -1249 718 LT -1251 717 LT -1253 716 LT -1255 716 LT -1257 715 LT -1259 714 LT -1261 713 LT -1262 712 LT -1264 712 LT -1266 711 LT -1268 710 LT -1270 709 LT -1271 708 LT -1273 707 LT -1275 706 LT -1276 705 LT -1278 704 LT -1280 703 LT -1281 702 LT -1283 701 LT -1285 699 LT -1286 698 LT -1288 697 LT -1290 696 LT -1291 695 LT -1293 693 LT -1294 692 LT -1296 691 LT -1297 689 LT -1299 688 LT -1300 687 LT -1302 685 LT -1303 684 LT -1305 683 LT -1306 681 LT -1307 680 LT -1309 678 LT -1310 677 LT -1311 675 LT -1313 674 LT -1314 672 LT -1315 671 LT -1317 669 LT -1318 668 LT -1319 666 LT -1320 664 LT -1321 663 LT -1322 661 LT -1324 659 LT -1325 658 LT -1326 656 LT -1327 654 LT -1328 653 LT -1329 651 LT -1330 649 LT -1331 647 LT -1332 646 LT -1332 644 LT -1333 642 LT -1334 640 LT -1335 638 LT -1336 637 LT -1337 635 LT -1337 633 LT -1338 631 LT -1339 629 LT -1340 627 LT -1340 625 LT -1341 623 LT -1341 622 LT -1342 620 LT -1343 618 LT -1343 616 LT -1344 614 LT -1344 612 LT -1344 610 LT -1345 608 LT -1345 606 LT -1346 604 LT -1346 602 LT -1346 600 LT -1347 598 LT -1347 596 LT -1347 594 LT -1347 592 LT -1348 590 LT -1348 588 LT -1348 586 LT -1348 584 LT -1348 582 LT -1348 580 LT -1348 578 LT -1348 577 LT -QS -2157 757 397 VL -2517 577 2157 757 DL -2157 397 2517 577 DL -2397 1955 1596 VL -2037 1955 2397 HL -2037 1596 1955 VL -2397 1596 2037 HL -1258 1835 1715 VL -1258 1955 1835 VL -1138 1955 1258 HL -1138 1596 1955 VL -1258 1596 1138 HL -1258 1715 1596 VL -1198 817 1138 877 DL -1 6 B 1 1 PE -120 825 865 VL -120 805 808 VL -140 825 865 VL -156 825 140 HL -166 865 835 VL -NP -166 835 MT -166 833 LT -166 831 LT -165 829 LT -163 827 LT -162 826 LT -160 825 LT -158 825 LT -156 825 LT -QS -203 865 186 HL -213 835 855 VL -186 825 203 HL -186 885 825 VL -NP -203 865 MT -205 864 LT -207 864 LT -209 863 LT -210 862 LT -212 860 LT -212 858 LT -213 856 LT -213 855 LT -QS -NP -213 835 MT -213 833 LT -212 831 LT -211 829 LT -210 827 LT -208 826 LT -207 825 LT -205 825 LT -203 825 LT -QS -233 855 825 VL -260 865 243 HL -260 825 865 VL -NP -233 855 MT -233 857 LT -234 859 LT -235 860 LT -236 862 LT -238 863 LT -239 864 LT -241 865 LT -243 865 LT -QS -300 825 280 HL -286 865 805 VL -NP -371 805 MT -370 807 LT -370 808 LT -369 810 LT -368 812 LT -368 814 LT -367 816 LT -367 818 LT -366 820 LT -366 822 LT -366 824 LT -365 826 LT -365 828 LT -365 830 LT -365 832 LT -365 834 LT -365 836 LT -364 838 LT -365 840 LT -365 842 LT -365 844 LT -365 846 LT -365 848 LT -365 850 LT -366 852 LT -366 854 LT -366 856 LT -367 858 LT -367 860 LT -368 862 LT -368 863 LT -369 865 LT -370 867 LT -370 869 LT -371 871 LT -371 871 LT -QS -401 825 411 HL -391 855 835 VL -411 865 401 HL -NP -401 825 MT -399 825 LT -397 826 LT -395 826 LT -394 828 LT -393 829 LT -392 831 LT -391 833 LT -391 835 LT -QS -NP -391 855 MT -391 857 LT -392 859 LT -393 860 LT -394 862 LT -396 863 LT -398 864 LT -400 865 LT -401 865 LT -QS -431 851 838 VL -458 838 851 VL -NP -431 851 MT -431 853 LT -432 855 LT -432 857 LT -433 859 LT -435 860 LT -436 862 LT -438 863 LT -440 864 LT -442 864 LT -444 865 LT -446 865 LT -448 864 LT -449 864 LT -451 863 LT -453 862 LT -454 860 LT -456 859 LT -457 857 LT -457 855 LT -458 853 LT -458 851 LT -QS -NP -458 838 MT -458 836 LT -457 834 LT -456 832 LT -455 830 LT -454 829 LT -453 828 LT -451 826 LT -449 826 LT -447 825 LT -445 825 LT -443 825 LT -441 825 LT -439 826 LT -438 827 LT -436 828 LT -434 829 LT -433 831 LT -432 833 LT -432 834 LT -431 836 LT -431 838 LT -QS -478 825 865 VL -508 825 478 HL -518 865 835 VL -498 865 825 VL -NP -518 835 MT -517 833 LT -517 831 LT -516 829 LT -515 827 LT -513 826 LT -511 825 LT -509 825 LT -508 825 LT -QS -538 825 865 VL -568 825 538 HL -578 865 835 VL -558 865 825 VL -NP -578 835 MT -577 833 LT -577 831 LT -576 829 LT -574 827 LT -573 826 LT -571 825 LT -569 825 LT -568 825 LT -QS -614 825 601 HL -624 865 835 VL -607 865 624 HL -624 845 607 HL -NP -624 835 MT -624 833 LT -623 831 LT -622 829 LT -621 827 LT -619 826 LT -618 825 LT -616 825 LT -614 825 LT -QS -NP -607 845 MT -605 845 LT -604 845 LT -602 846 LT -600 848 LT -599 849 LT -598 851 LT -598 853 LT -598 855 LT -598 857 LT -598 859 LT -600 861 LT -601 862 LT -603 863 LT -604 864 LT -606 865 LT -607 865 LT -QS -644 825 865 VL -661 825 644 HL -671 865 835 VL -NP -671 835 MT -671 833 LT -670 831 LT -669 829 LT -668 827 LT -666 826 LT -664 825 LT -662 825 LT -661 825 LT -QS -717 865 805 VL -701 865 717 HL -691 835 855 VL -717 825 701 HL -NP -691 855 MT -691 857 LT -692 859 LT -692 860 LT -694 862 LT -695 863 LT -697 864 LT -699 865 LT -701 865 LT -QS -NP -701 825 MT -699 825 LT -697 826 LT -695 826 LT -693 828 LT -692 829 LT -691 831 LT -691 833 LT -691 835 LT -QS -NP -737 871 MT -738 869 LT -739 868 LT -739 866 LT -740 864 LT -741 862 LT -741 860 LT -742 858 LT -742 856 LT -742 854 LT -743 852 LT -743 850 LT -743 848 LT -744 846 LT -744 844 LT -744 842 LT -744 840 LT -744 838 LT -744 836 LT -744 834 LT -744 832 LT -744 830 LT -743 828 LT -743 826 LT -743 824 LT -743 822 LT -742 820 LT -742 818 LT -741 816 LT -741 814 LT -740 813 LT -740 811 LT -739 809 LT -738 807 LT -737 805 LT -737 805 LT -QS -830 848 814 842 DL -NP -836 828 MT -834 828 LT -832 827 LT -830 826 LT -828 826 LT -826 826 LT -824 826 LT -822 826 LT -820 826 LT -818 826 LT -816 827 LT -815 827 LT -QS -NP -815 827 MT -813 828 LT -811 829 LT -810 831 LT -810 833 LT -809 835 LT -810 837 LT -810 838 LT -812 840 LT -813 841 LT -814 842 LT -QS -NP -830 863 MT -831 862 LT -833 861 LT -834 859 LT -835 858 LT -835 856 LT -835 854 LT -834 852 LT -833 850 LT -831 849 LT -830 848 LT -QS -NP -809 862 MT -811 863 LT -813 863 LT -815 864 LT -816 864 LT -818 865 LT -820 865 LT -822 865 LT -824 864 LT -826 864 LT -828 864 LT -830 863 LT -QS -855 825 865 VL -855 805 808 VL -892 885 875 HL -902 825 875 VL -885 825 902 HL -875 855 835 VL -902 865 885 HL -NP -892 885 MT -894 884 LT -896 884 LT -898 883 LT -899 882 LT -901 880 LT -901 878 LT -902 876 LT -902 875 LT -QS -NP -885 825 MT -883 825 LT -882 826 LT -880 826 LT -878 828 LT -877 829 LT -876 831 LT -876 833 LT -875 835 LT -QS -NP -875 855 MT -876 857 LT -876 859 LT -877 860 LT -879 862 LT -880 863 LT -882 864 LT -884 865 LT -885 865 LT -QS -922 825 865 VL -939 825 922 HL -949 865 835 VL -NP -949 835 MT -948 833 LT -948 831 LT -947 829 LT -946 827 LT -944 826 LT -942 825 LT -940 825 LT -939 825 LT -QS -985 825 972 HL -995 865 835 VL -979 865 995 HL -995 845 979 HL -NP -995 835 MT -995 833 LT -994 831 LT -994 829 LT -992 827 LT -991 826 LT -989 825 LT -987 825 LT -985 825 LT -QS -NP -979 845 MT -977 845 LT -975 845 LT -973 846 LT -971 848 LT -970 849 LT -969 851 LT -969 853 LT -969 855 LT -969 857 LT -970 859 LT -971 861 LT -972 862 LT -974 863 LT -976 864 LT -977 865 LT -979 865 LT -QS -1015 858 805 VL -NP -1015 858 MT -1016 860 LT -1016 862 LT -1018 863 LT -1020 864 LT -1022 865 LT -1022 865 LT -QS -136 921 123 HL -146 961 931 VL -130 961 146 HL -146 941 130 HL -NP -146 931 MT -146 929 LT -146 927 LT -145 925 LT -143 923 LT -142 922 LT -140 921 LT -138 921 LT -136 921 LT -QS -NP -130 941 MT -128 941 LT -126 941 LT -124 942 LT -123 944 LT -121 945 LT -120 947 LT -120 949 LT -120 951 LT -120 953 LT -121 955 LT -122 957 LT -123 958 LT -125 959 LT -127 960 LT -129 960 LT -130 961 LT -QS -166 921 961 VL -183 921 166 HL -193 961 931 VL -NP -193 931 MT -193 929 LT -192 927 LT -191 925 LT -190 923 LT -188 922 LT -187 921 LT -185 921 LT -183 921 LT -QS -240 961 901 VL -223 961 240 HL -213 931 951 VL -240 921 223 HL -NP -213 951 MT -213 953 LT -214 954 LT -215 956 LT -216 958 LT -218 959 LT -220 960 LT -221 960 LT -223 961 LT -QS -NP -223 921 MT -221 921 LT -219 921 LT -217 922 LT -216 924 LT -215 925 LT -214 927 LT -213 929 LT -213 931 LT -QS -311 911 961 VL -325 901 321 HL -325 921 305 HL -NP -321 901 MT -319 901 LT -317 901 LT -316 902 LT -314 904 LT -313 905 LT -312 907 LT -311 909 LT -311 911 LT -QS -371 941 345 HL -371 934 941 VL -345 951 934 VL -371 961 355 HL -NP -371 934 MT -371 932 LT -371 930 LT -370 928 LT -369 926 LT -368 925 LT -366 923 LT -364 922 LT -363 921 LT -361 921 LT -359 921 LT -357 921 LT -355 921 LT -353 922 LT -351 922 LT -349 924 LT -348 925 LT -347 927 LT -346 928 LT -345 930 LT -345 932 LT -345 934 LT -QS -NP -345 951 MT -345 953 LT -345 954 LT -346 956 LT -348 958 LT -349 959 LT -351 960 LT -353 960 LT -355 961 LT -QS -418 941 391 HL -418 934 941 VL -391 951 934 VL -418 961 401 HL -NP -418 934 MT -418 932 LT -417 930 LT -416 928 LT -415 926 LT -414 925 LT -413 923 LT -411 922 LT -409 921 LT -407 921 LT -405 921 LT -403 921 LT -401 921 LT -399 922 LT -398 922 LT -396 924 LT -395 925 LT -393 927 LT -392 928 LT -392 930 LT -391 932 LT -391 934 LT -QS -NP -391 951 MT -391 953 LT -392 954 LT -393 956 LT -394 958 LT -396 959 LT -398 960 LT -400 960 LT -401 961 LT -QS -464 961 901 VL -448 961 464 HL -438 931 951 VL -464 921 448 HL -NP -438 951 MT -438 953 LT -439 954 LT -440 956 LT -441 958 LT -442 959 LT -444 960 LT -446 960 LT -448 961 LT -QS -NP -448 921 MT -446 921 LT -444 921 LT -442 922 LT -441 924 LT -439 925 LT -438 927 LT -438 929 LT -438 931 LT -QS -484 961 901 VL -501 961 484 HL -511 931 951 VL -484 921 501 HL -NP -501 961 MT -503 960 LT -505 960 LT -507 959 LT -508 957 LT -509 956 LT -510 954 LT -511 952 LT -511 951 LT -QS -NP -511 931 MT -511 929 LT -510 927 LT -509 925 LT -508 923 LT -506 922 LT -505 921 LT -503 921 LT -501 921 LT -QS -548 921 534 HL -558 961 931 VL -541 961 558 HL -558 941 541 HL -NP -558 931 MT -557 929 LT -557 927 LT -556 925 LT -554 923 LT -553 922 LT -551 921 LT -549 921 LT -548 921 LT -QS -NP -541 941 MT -539 941 LT -537 941 LT -535 942 LT -534 944 LT -532 945 LT -532 947 LT -531 949 LT -531 951 LT -531 953 LT -532 955 LT -533 957 LT -534 958 LT -536 959 LT -538 960 LT -540 960 LT -541 961 LT -QS -588 921 598 HL -578 951 931 VL -598 961 588 HL -NP -588 921 MT -586 921 LT -584 921 LT -582 922 LT -580 924 LT -579 925 LT -578 927 LT -578 929 LT -578 931 LT -QS -NP -578 951 MT -578 953 LT -578 954 LT -579 956 LT -581 958 LT -582 959 LT -584 960 LT -586 960 LT -588 961 LT -QS -617 961 901 VL -644 921 617 937 DL -644 961 626 932 DL -730 944 714 938 DL -NP -736 924 MT -734 923 LT -732 923 LT -730 922 LT -728 922 LT -726 922 LT -724 921 LT -722 921 LT -720 922 LT -718 922 LT -716 922 LT -715 923 LT -QS -NP -715 923 MT -713 924 LT -712 925 LT -710 927 LT -710 928 LT -709 930 LT -710 932 LT -711 934 LT -712 936 LT -713 937 LT -714 938 LT -QS -NP -730 959 MT -732 958 LT -733 957 LT -734 955 LT -735 953 LT -735 951 LT -735 949 LT -734 948 LT -733 946 LT -731 945 LT -730 944 LT -QS -NP -709 958 MT -711 958 LT -713 959 LT -715 960 LT -717 960 LT -719 960 LT -721 961 LT -723 960 LT -725 960 LT -727 960 LT -728 960 LT -730 959 LT -QS -756 921 961 VL -756 901 904 VL -792 980 776 HL -802 921 971 VL -786 921 802 HL -776 951 931 VL -802 961 786 HL -NP -792 980 MT -794 980 LT -796 980 LT -798 979 LT -799 977 LT -801 976 LT -802 974 LT -802 972 LT -802 971 LT -QS -NP -786 921 MT -784 921 LT -782 921 LT -780 922 LT -778 924 LT -777 925 LT -776 927 LT -776 929 LT -776 931 LT -QS -NP -776 951 MT -776 953 LT -776 954 LT -777 956 LT -779 958 LT -780 959 LT -782 960 LT -784 960 LT -786 961 LT -QS -822 921 961 VL -839 921 822 HL -849 961 931 VL -NP -849 931 MT -849 929 LT -848 927 LT -847 925 LT -846 923 LT -844 922 LT -842 921 LT -840 921 LT -839 921 LT -QS -885 921 872 HL -895 961 931 VL -879 961 895 HL -895 941 879 HL -NP -895 931 MT -895 929 LT -895 927 LT -894 925 LT -892 923 LT -891 922 LT -889 921 LT -887 921 LT -885 921 LT -QS -NP -879 941 MT -877 941 LT -875 941 LT -873 942 LT -872 944 LT -870 945 LT -869 947 LT -869 949 LT -869 951 LT -869 953 LT -870 955 LT -871 957 LT -872 958 LT -874 959 LT -876 960 LT -878 960 LT -879 961 LT -QS -915 954 901 VL -NP -915 954 MT -916 956 LT -917 958 LT -918 959 LT -920 960 LT -922 961 LT -922 961 LT -QS -146 1056 996 VL -130 1056 146 HL -120 1026 1046 VL -146 1016 130 HL -NP -120 1046 MT -120 1048 LT -121 1050 LT -122 1052 LT -123 1054 LT -124 1055 LT -126 1056 LT -128 1056 LT -130 1056 LT -QS -NP -130 1016 MT -128 1017 LT -126 1017 LT -124 1018 LT -123 1020 LT -121 1021 LT -120 1023 LT -120 1025 LT -120 1026 LT -QS -166 1016 1056 VL -180 1016 166 HL -NP -186 1023 MT -186 1021 LT -185 1019 LT -184 1018 LT -182 1017 LT -180 1016 LT -180 1016 LT -QS -206 1016 1056 VL -206 996 1000 VL -240 1056 226 1016 DL -253 1016 240 1056 DL -300 1036 273 HL -300 1030 1036 VL -273 1046 1030 VL -300 1056 283 HL -NP -300 1030 MT -299 1028 LT -299 1026 LT -298 1024 LT -297 1022 LT -296 1021 LT -295 1019 LT -293 1018 LT -291 1017 LT -289 1017 LT -287 1016 LT -285 1016 LT -283 1017 LT -281 1017 LT -279 1018 LT -278 1020 LT -276 1021 LT -275 1022 LT -274 1024 LT -273 1026 LT -273 1028 LT -273 1030 LT -QS -NP -273 1046 MT -273 1048 LT -274 1050 LT -275 1052 LT -276 1054 LT -278 1055 LT -279 1056 LT -281 1056 LT -283 1056 LT -QS -386 1040 370 1034 DL -NP -391 1020 MT -389 1019 LT -387 1019 LT -386 1018 LT -384 1018 LT -382 1017 LT -380 1017 LT -378 1017 LT -376 1017 LT -374 1018 LT -372 1018 LT -370 1019 LT -QS -NP -370 1019 MT -369 1019 LT -367 1021 LT -366 1022 LT -365 1024 LT -365 1026 LT -365 1028 LT -366 1030 LT -367 1032 LT -369 1033 LT -370 1034 LT -QS -NP -385 1055 MT -387 1054 LT -389 1053 LT -390 1051 LT -390 1049 LT -391 1047 LT -390 1045 LT -390 1043 LT -388 1042 LT -387 1041 LT -386 1040 LT -QS -NP -364 1053 MT -366 1054 LT -368 1055 LT -370 1056 LT -372 1056 LT -374 1056 LT -376 1056 LT -378 1056 LT -380 1056 LT -382 1056 LT -384 1055 LT -385 1055 LT -QS -411 1046 1016 VL -438 1056 421 HL -438 1016 1056 VL -NP -411 1046 MT -411 1048 LT -412 1050 LT -413 1052 LT -414 1054 LT -416 1055 LT -418 1056 LT -420 1056 LT -421 1056 LT -QS -458 1016 1056 VL -488 1016 458 HL -498 1056 1026 VL -478 1056 1016 VL -NP -498 1026 MT -497 1024 LT -497 1023 LT -496 1021 LT -495 1019 LT -493 1018 LT -491 1017 LT -489 1017 LT -488 1016 LT -QS -518 1016 1056 VL -548 1016 518 HL -558 1056 1026 VL -538 1056 1016 VL -NP -558 1026 MT -557 1024 LT -557 1023 LT -556 1021 LT -554 1019 LT -553 1018 LT -551 1017 LT -549 1017 LT -548 1016 LT -QS -578 1016 1056 VL -578 996 1000 VL -598 1016 1056 VL -614 1016 598 HL -624 1056 1026 VL -NP -624 1026 MT -624 1024 LT -623 1023 LT -622 1021 LT -621 1019 LT -619 1018 LT -618 1017 LT -616 1017 LT -614 1016 LT -QS -661 1076 644 HL -671 1016 1066 VL -654 1016 671 HL -644 1046 1026 VL -671 1056 654 HL -NP -661 1076 MT -663 1076 LT -665 1076 LT -666 1075 LT -668 1073 LT -669 1072 LT -670 1070 LT -671 1068 LT -671 1066 LT -QS -NP -654 1016 MT -652 1017 LT -650 1017 LT -648 1018 LT -647 1020 LT -646 1021 LT -645 1023 LT -644 1025 LT -644 1026 LT -QS -NP -644 1046 MT -644 1048 LT -645 1050 LT -646 1052 LT -647 1054 LT -649 1055 LT -651 1056 LT -653 1056 LT -654 1056 LT -QS -752 1016 739 HL -762 1056 1026 VL -746 1056 762 HL -762 1036 746 HL -NP -762 1026 MT -762 1024 LT -761 1023 LT -761 1021 LT -759 1019 LT -758 1018 LT -756 1017 LT -754 1017 LT -752 1016 LT -QS -NP -746 1036 MT -744 1037 LT -742 1037 LT -740 1038 LT -738 1039 LT -737 1041 LT -736 1043 LT -736 1045 LT -736 1047 LT -736 1049 LT -737 1051 LT -738 1052 LT -739 1054 LT -741 1055 LT -743 1056 LT -744 1056 LT -746 1056 LT -QS -782 1016 1056 VL -812 1016 782 HL -822 1056 1026 VL -802 1056 1016 VL -NP -822 1026 MT -822 1024 LT -821 1023 LT -820 1021 LT -819 1019 LT -818 1018 LT -816 1017 LT -814 1017 LT -812 1016 LT -QS -859 1056 842 HL -869 1026 1046 VL -842 1016 859 HL -842 1076 1016 VL -NP -859 1056 MT -861 1056 LT -863 1056 LT -864 1055 LT -866 1053 LT -867 1052 LT -868 1050 LT -869 1048 LT -869 1046 LT -QS -NP -869 1026 MT -869 1024 LT -868 1023 LT -867 1021 LT -866 1019 LT -864 1018 LT -862 1017 LT -860 1017 LT -859 1016 LT -QS -2473 1128 2457 HL -2483 1098 1118 VL -2457 1088 2473 HL -2457 1148 1088 VL -NP -2473 1128 MT -2475 1128 LT -2477 1127 LT -2479 1127 LT -2480 1125 LT -2482 1124 LT -2483 1122 LT -2483 1120 LT -2483 1118 LT -QS -NP -2483 1098 MT -2483 1096 LT -2482 1094 LT -2481 1093 LT -2480 1091 LT -2479 1090 LT -2477 1089 LT -2475 1088 LT -2473 1088 LT -QS -2503 1115 1102 VL -2530 1102 1115 VL -NP -2503 1115 MT -2503 1117 LT -2504 1119 LT -2505 1121 LT -2506 1123 LT -2507 1124 LT -2508 1125 LT -2510 1127 LT -2512 1127 LT -2514 1128 LT -2516 1128 LT -2518 1128 LT -2520 1128 LT -2522 1127 LT -2523 1126 LT -2525 1125 LT -2526 1124 LT -2528 1122 LT -2529 1121 LT -2529 1119 LT -2530 1117 LT -2530 1115 LT -QS -NP -2530 1102 MT -2530 1100 LT -2529 1098 LT -2529 1096 LT -2528 1094 LT -2526 1093 LT -2525 1091 LT -2523 1090 LT -2521 1089 LT -2519 1089 LT -2517 1088 LT -2515 1088 LT -2513 1089 LT -2512 1089 LT -2510 1090 LT -2508 1091 LT -2507 1093 LT -2505 1094 LT -2504 1096 LT -2504 1098 LT -2503 1100 LT -2503 1102 LT -QS -2560 1128 2550 1088 DL -2570 1102 2560 1128 DL -2580 1128 2570 1102 DL -2590 1088 2580 1128 DL -2636 1108 2610 HL -2636 1102 1108 VL -2610 1118 1102 VL -2636 1128 2620 HL -NP -2636 1102 MT -2636 1100 LT -2636 1098 LT -2635 1096 LT -2634 1094 LT -2633 1093 LT -2631 1091 LT -2630 1090 LT -2628 1089 LT -2626 1089 LT -2624 1088 LT -2622 1088 LT -2620 1089 LT -2618 1089 LT -2616 1090 LT -2615 1091 LT -2613 1093 LT -2612 1094 LT -2611 1096 LT -2610 1098 LT -2610 1100 LT -2610 1102 LT -QS -NP -2610 1118 MT -2610 1120 LT -2611 1122 LT -2612 1124 LT -2613 1126 LT -2614 1127 LT -2616 1128 LT -2618 1128 LT -2620 1128 LT -QS -2656 1088 1128 VL -2670 1088 2656 HL -NP -2676 1095 MT -2676 1093 LT -2675 1091 LT -2674 1090 LT -2672 1089 LT -2670 1088 LT -2670 1088 LT -QS -2473 1184 2460 HL -2483 1224 1194 VL -2467 1224 2483 HL -2483 1204 2467 HL -NP -2483 1194 MT -2483 1192 LT -2482 1190 LT -2481 1189 LT -2480 1187 LT -2479 1186 LT -2477 1185 LT -2475 1184 LT -2473 1184 LT -QS -NP -2467 1204 MT -2465 1204 LT -2463 1205 LT -2461 1206 LT -2459 1207 LT -2458 1209 LT -2457 1211 LT -2457 1213 LT -2457 1215 LT -2457 1217 LT -2458 1218 LT -2459 1220 LT -2460 1222 LT -2462 1223 LT -2463 1224 LT -2465 1224 LT -2467 1224 LT -QS -2503 1184 1224 VL -2533 1184 2503 HL -2543 1224 1194 VL -2523 1224 1184 VL -NP -2543 1194 MT -2543 1192 LT -2542 1190 LT -2541 1189 LT -2540 1187 LT -2539 1186 LT -2537 1185 LT -2535 1184 LT -2533 1184 LT -QS -2580 1224 2563 HL -2590 1194 1214 VL -2563 1184 2580 HL -2563 1244 1184 VL -NP -2580 1224 MT -2582 1224 LT -2584 1223 LT -2585 1222 LT -2587 1221 LT -2588 1220 LT -2589 1218 LT -2590 1216 LT -2590 1214 LT -QS -NP -2590 1194 MT -2590 1192 LT -2589 1190 LT -2588 1189 LT -2587 1187 LT -2585 1186 LT -2583 1185 LT -2581 1184 LT -2580 1184 LT -QS -2483 1320 1260 VL -2467 1320 2483 HL -2457 1290 1310 VL -2483 1280 2467 HL -NP -2457 1310 MT -2457 1312 LT -2457 1314 LT -2458 1316 LT -2460 1317 LT -2461 1318 LT -2463 1319 LT -2465 1320 LT -2467 1320 LT -QS -NP -2467 1280 MT -2465 1280 LT -2463 1281 LT -2461 1282 LT -2459 1283 LT -2458 1285 LT -2457 1287 LT -2457 1288 LT -2457 1290 LT -QS -2503 1280 1320 VL -2517 1280 2503 HL -NP -2523 1287 MT -2523 1285 LT -2522 1283 LT -2521 1281 LT -2519 1280 LT -2517 1280 LT -2517 1280 LT -QS -2543 1280 1320 VL -2543 1260 1263 VL -2576 1320 2563 1280 DL -2590 1280 2576 1320 DL -2636 1300 2610 HL -2636 1293 1300 VL -2610 1310 1293 VL -2636 1320 2620 HL -NP -2636 1293 MT -2636 1291 LT -2636 1289 LT -2635 1288 LT -2634 1286 LT -2633 1284 LT -2631 1283 LT -2630 1282 LT -2628 1281 LT -2626 1280 LT -2624 1280 LT -2622 1280 LT -2620 1280 LT -2618 1281 LT -2616 1282 LT -2615 1283 LT -2613 1285 LT -2612 1286 LT -2611 1288 LT -2610 1290 LT -2610 1292 LT -2610 1293 LT -QS -NP -2610 1310 MT -2610 1312 LT -2611 1314 LT -2612 1316 LT -2613 1317 LT -2614 1318 LT -2616 1319 LT -2618 1320 LT -2620 1320 LT -QS -2678 1304 2662 1297 DL -NP -2683 1284 MT -2681 1283 LT -2679 1282 LT -2677 1282 LT -2675 1281 LT -2673 1281 LT -2671 1281 LT -2669 1281 LT -2667 1281 LT -2665 1281 LT -2664 1282 LT -2662 1282 LT -QS -NP -2662 1282 MT -2660 1283 LT -2659 1284 LT -2658 1286 LT -2657 1288 LT -2657 1290 LT -2657 1292 LT -2658 1294 LT -2659 1295 LT -2661 1297 LT -2662 1297 LT -QS -NP -2677 1319 MT -2679 1318 LT -2680 1317 LT -2682 1315 LT -2682 1313 LT -2683 1311 LT -2682 1309 LT -2681 1307 LT -2680 1306 LT -2679 1304 LT -2678 1304 LT -QS -NP -2656 1317 MT -2658 1318 LT -2660 1319 LT -2662 1319 LT -2664 1320 LT -2666 1320 LT -2668 1320 LT -2670 1320 LT -2672 1320 LT -2674 1320 LT -2676 1319 LT -2677 1319 LT -QS -2457 1376 1416 VL -2487 1376 2457 HL -2497 1416 1386 VL -2477 1416 1376 VL -NP -2497 1386 MT -2496 1384 LT -2496 1382 LT -2495 1380 LT -2494 1379 LT -2492 1377 LT -2490 1377 LT -2488 1376 LT -2487 1376 LT -QS -2517 1403 1389 VL -2543 1389 1403 VL -NP -2517 1403 MT -2517 1405 LT -2517 1407 LT -2518 1408 LT -2519 1410 LT -2520 1412 LT -2522 1413 LT -2523 1414 LT -2525 1415 LT -2527 1416 LT -2529 1416 LT -2531 1416 LT -2533 1416 LT -2535 1415 LT -2537 1414 LT -2538 1413 LT -2540 1411 LT -2541 1410 LT -2542 1408 LT -2543 1406 LT -2543 1404 LT -2543 1403 LT -QS -NP -2543 1389 MT -2543 1387 LT -2543 1385 LT -2542 1383 LT -2541 1382 LT -2540 1380 LT -2538 1379 LT -2536 1378 LT -2535 1377 LT -2533 1376 LT -2531 1376 LT -2529 1376 LT -2527 1376 LT -2525 1377 LT -2523 1378 LT -2521 1379 LT -2520 1380 LT -2519 1382 LT -2518 1384 LT -2517 1386 LT -2517 1388 LT -2517 1389 LT -QS -2583 1376 2563 HL -2570 1416 1356 VL -2603 1403 1389 VL -2630 1389 1403 VL -NP -2603 1403 MT -2603 1405 LT -2604 1407 LT -2604 1408 LT -2605 1410 LT -2607 1412 LT -2608 1413 LT -2610 1414 LT -2612 1415 LT -2614 1416 LT -2616 1416 LT -2618 1416 LT -2620 1416 LT -2621 1415 LT -2623 1414 LT -2625 1413 LT -2626 1411 LT -2628 1410 LT -2629 1408 LT -2629 1406 LT -2630 1404 LT -2630 1403 LT -QS -NP -2630 1389 MT -2630 1387 LT -2629 1385 LT -2628 1383 LT -2627 1382 LT -2626 1380 LT -2625 1379 LT -2623 1378 LT -2621 1377 LT -2619 1376 LT -2617 1376 LT -2615 1376 LT -2613 1376 LT -2611 1377 LT -2610 1378 LT -2608 1379 LT -2606 1380 LT -2605 1382 LT -2604 1384 LT -2604 1386 LT -2603 1388 LT -2603 1389 LT -QS -2650 1376 1416 VL -2663 1376 2650 HL -NP -2670 1383 MT -2669 1381 LT -2668 1379 LT -2667 1377 LT -2665 1376 LT -2663 1376 LT -2663 1376 LT -QS -1339 860 1324 854 DL -NP -1345 840 MT -1343 840 LT -1341 839 LT -1339 838 LT -1337 838 LT -1335 838 LT -1333 838 LT -1331 838 LT -1329 838 LT -1327 838 LT -1325 838 LT -1324 839 LT -QS -NP -1324 839 MT -1322 840 LT -1321 841 LT -1320 843 LT -1319 845 LT -1319 847 LT -1319 849 LT -1320 850 LT -1321 852 LT -1322 853 LT -1324 854 LT -QS -NP -1339 875 MT -1341 874 LT -1342 873 LT -1343 871 LT -1344 870 LT -1344 868 LT -1344 866 LT -1343 864 LT -1342 862 LT -1341 861 LT -1339 860 LT -QS -NP -1318 874 MT -1320 875 LT -1322 875 LT -1324 876 LT -1326 876 LT -1328 877 LT -1330 877 LT -1332 877 LT -1334 876 LT -1336 876 LT -1338 876 LT -1339 875 LT -QS -1365 867 837 VL -1391 877 1375 HL -1391 837 877 VL -NP -1365 867 MT -1365 869 LT -1366 871 LT -1367 872 LT -1368 874 LT -1369 875 LT -1371 876 LT -1373 877 LT -1375 877 LT -QS -1411 837 877 VL -1441 837 1411 HL -1451 877 847 VL -1431 877 837 VL -NP -1451 847 MT -1451 845 LT -1451 843 LT -1450 841 LT -1448 839 LT -1447 838 LT -1445 837 LT -1443 837 LT -1441 837 LT -QS -1471 837 877 VL -1501 837 1471 HL -1511 877 847 VL -1491 877 837 VL -NP -1511 847 MT -1511 845 LT -1510 843 LT -1509 841 LT -1508 839 LT -1507 838 LT -1505 837 LT -1503 837 LT -1501 837 LT -QS -1531 837 877 VL -1531 817 820 VL -1551 837 877 VL -1568 837 1551 HL -1578 877 847 VL -NP -1578 847 MT -1578 845 LT -1577 843 LT -1576 841 LT -1575 839 LT -1573 838 LT -1571 837 LT -1569 837 LT -1568 837 LT -QS -1614 897 1598 HL -1624 837 887 VL -1608 837 1624 HL -1598 867 847 VL -1624 877 1608 HL -NP -1614 897 MT -1616 896 LT -1618 896 LT -1620 895 LT -1622 894 LT -1623 892 LT -1624 890 LT -1624 888 LT -1624 887 LT -QS -NP -1608 837 MT -1606 837 LT -1604 837 LT -1602 838 LT -1601 840 LT -1599 841 LT -1598 843 LT -1598 845 LT -1598 847 LT -QS -NP -1598 867 MT -1598 869 LT -1599 871 LT -1600 872 LT -1601 874 LT -1602 875 LT -1604 876 LT -1606 877 LT -1608 877 LT -QS -1706 837 1693 HL -1716 877 847 VL -1699 877 1716 HL -1716 857 1699 HL -NP -1716 847 MT -1716 845 LT -1715 843 LT -1714 841 LT -1713 839 LT -1711 838 LT -1710 837 LT -1708 837 LT -1706 837 LT -QS -NP -1699 857 MT -1697 857 LT -1695 857 LT -1694 858 LT -1692 860 LT -1691 861 LT -1690 863 LT -1689 865 LT -1689 867 LT -1690 869 LT -1690 871 LT -1691 873 LT -1693 874 LT -1694 875 LT -1696 876 LT -1698 877 LT -1699 877 LT -QS -1736 837 877 VL -1766 837 1736 HL -1776 877 847 VL -1756 877 837 VL -NP -1776 847 MT -1776 845 LT -1775 843 LT -1774 841 LT -1773 839 LT -1771 838 LT -1769 837 LT -1767 837 LT -1766 837 LT -QS -1813 877 1796 HL -1823 847 867 VL -1796 837 1813 HL -1796 897 837 VL -NP -1813 877 MT -1815 876 LT -1816 876 LT -1818 875 LT -1820 874 LT -1821 872 LT -1822 870 LT -1822 868 LT -1823 867 LT -QS -NP -1823 847 MT -1822 845 LT -1822 843 LT -1821 841 LT -1819 839 LT -1818 838 LT -1816 837 LT -1814 837 LT -1813 837 LT -QS -1914 877 817 VL -1897 877 1914 HL -1887 847 867 VL -1914 837 1897 HL -NP -1887 867 MT -1888 869 LT -1888 871 LT -1889 872 LT -1890 874 LT -1892 875 LT -1894 876 LT -1896 877 LT -1897 877 LT -QS -NP -1897 837 MT -1895 837 LT -1893 837 LT -1892 838 LT -1890 840 LT -1889 841 LT -1888 843 LT -1888 845 LT -1887 847 LT -QS -1934 837 877 VL -1947 837 1934 HL -NP -1954 843 MT -1954 841 LT -1953 840 LT -1951 838 LT -1950 837 LT -1948 837 LT -1947 837 LT -QS -1974 837 877 VL -1974 817 820 VL -2007 877 1994 837 DL -2021 837 2007 877 DL -2067 857 2041 HL -2067 850 857 VL -2041 867 850 VL -2067 877 2051 HL -NP -2067 850 MT -2067 848 LT -2067 846 LT -2066 844 LT -2065 842 LT -2064 841 LT -2062 840 LT -2060 838 LT -2059 838 LT -2057 837 LT -2055 837 LT -2053 837 LT -2051 837 LT -2049 838 LT -2047 839 LT -2045 840 LT -2044 841 LT -2043 843 LT -2042 844 LT -2041 846 LT -2041 848 LT -2041 850 LT -QS -NP -2041 867 MT -2041 869 LT -2041 871 LT -2042 872 LT -2044 874 LT -2045 875 LT -2047 876 LT -2049 877 LT -2051 877 LT -QS -2108 860 2093 854 DL -NP -2114 840 MT -2112 840 LT -2110 839 LT -2108 838 LT -2106 838 LT -2104 838 LT -2102 838 LT -2100 838 LT -2098 838 LT -2096 838 LT -2094 838 LT -2093 839 LT -QS -NP -2093 839 MT -2091 840 LT -2090 841 LT -2089 843 LT -2088 845 LT -2088 847 LT -2088 849 LT -2089 850 LT -2090 852 LT -2091 853 LT -2093 854 LT -QS -NP -2108 875 MT -2110 874 LT -2111 873 LT -2112 871 LT -2113 870 LT -2113 868 LT -2113 866 LT -2112 864 LT -2111 862 LT -2109 861 LT -2108 860 LT -QS -NP -2087 874 MT -2089 875 LT -2091 875 LT -2093 876 LT -2095 876 LT -2097 877 LT -2099 877 LT -2101 877 LT -2103 876 LT -2105 876 LT -2107 876 LT -2108 875 LT -QS -2195 877 2179 HL -2205 847 867 VL -2179 837 2195 HL -2179 897 837 VL -NP -2195 877 MT -2197 876 LT -2199 876 LT -2201 875 LT -2203 874 LT -2204 872 LT -2205 870 LT -2205 868 LT -2205 867 LT -QS -NP -2205 847 MT -2205 845 LT -2205 843 LT -2204 841 LT -2202 839 LT -2201 838 LT -2199 837 LT -2197 837 LT -2195 837 LT -QS -2225 863 850 VL -2252 850 863 VL -NP -2225 863 MT -2225 865 LT -2226 867 LT -2227 869 LT -2228 871 LT -2229 872 LT -2230 874 LT -2232 875 LT -2234 876 LT -2236 876 LT -2238 877 LT -2240 877 LT -2242 876 LT -2244 876 LT -2245 875 LT -2247 874 LT -2249 872 LT -2250 871 LT -2251 869 LT -2251 867 LT -2252 865 LT -2252 863 LT -QS -NP -2252 850 MT -2252 848 LT -2251 846 LT -2251 844 LT -2250 842 LT -2248 841 LT -2247 840 LT -2245 838 LT -2243 838 LT -2241 837 LT -2239 837 LT -2237 837 LT -2235 837 LT -2234 838 LT -2232 839 LT -2230 840 LT -2229 841 LT -2227 843 LT -2226 844 LT -2226 846 LT -2225 848 LT -2225 850 LT -QS -2282 877 2272 837 DL -2292 850 2282 877 DL -2302 877 2292 850 DL -2312 837 2302 877 DL -2358 857 2332 HL -2358 850 857 VL -2332 867 850 VL -2358 877 2342 HL -NP -2358 850 MT -2358 848 LT -2358 846 LT -2357 844 LT -2356 842 LT -2355 841 LT -2353 840 LT -2352 838 LT -2350 838 LT -2348 837 LT -2346 837 LT -2344 837 LT -2342 837 LT -2340 838 LT -2338 839 LT -2337 840 LT -2335 841 LT -2334 843 LT -2333 844 LT -2332 846 LT -2332 848 LT -2332 850 LT -QS -NP -2332 867 MT -2332 869 LT -2333 871 LT -2334 872 LT -2335 874 LT -2336 875 LT -2338 876 LT -2340 877 LT -2342 877 LT -QS -2378 837 877 VL -2392 837 2378 HL -NP -2398 843 MT -2398 841 LT -2397 840 LT -2396 838 LT -2394 837 LT -2392 837 LT -2392 837 LT -QS -2480 837 2467 HL -2490 877 847 VL -2473 877 2490 HL -2490 857 2473 HL -NP -2490 847 MT -2490 845 LT -2489 843 LT -2488 841 LT -2487 839 LT -2485 838 LT -2483 837 LT -2482 837 LT -2480 837 LT -QS -NP -2473 857 MT -2471 857 LT -2469 857 LT -2468 858 LT -2466 860 LT -2465 861 LT -2464 863 LT -2463 865 LT -2463 867 LT -2464 869 LT -2464 871 LT -2465 873 LT -2467 874 LT -2468 875 LT -2470 876 LT -2472 877 LT -2473 877 LT -QS -2510 837 877 VL -2540 837 2510 HL -2550 877 847 VL -2530 877 837 VL -NP -2550 847 MT -2550 845 LT -2549 843 LT -2548 841 LT -2547 839 LT -2545 838 LT -2543 837 LT -2541 837 LT -2540 837 LT -QS -2586 877 2570 HL -2596 847 867 VL -2570 837 2586 HL -2570 897 837 VL -NP -2586 877 MT -2588 876 LT -2590 876 LT -2592 875 LT -2594 874 LT -2595 872 LT -2596 870 LT -2596 868 LT -2596 867 LT -QS -NP -2596 847 MT -2596 845 LT -2596 843 LT -2595 841 LT -2593 839 LT -2592 838 LT -2590 837 LT -2588 837 LT -2586 837 LT -QS -1318 1400 1440 VL -1348 1400 1318 HL -1358 1440 1410 VL -1338 1440 1400 VL -NP -1358 1410 MT -1358 1408 LT -1357 1406 LT -1356 1404 LT -1355 1403 LT -1353 1401 LT -1352 1401 LT -1350 1400 LT -1348 1400 LT -QS -1378 1427 1413 VL -1405 1413 1427 VL -NP -1378 1427 MT -1378 1429 LT -1379 1431 LT -1379 1432 LT -1380 1434 LT -1382 1436 LT -1383 1437 LT -1385 1438 LT -1387 1439 LT -1389 1440 LT -1391 1440 LT -1393 1440 LT -1395 1439 LT -1396 1439 LT -1398 1438 LT -1400 1437 LT -1401 1435 LT -1403 1434 LT -1404 1432 LT -1404 1430 LT -1405 1428 LT -1405 1427 LT -QS -NP -1405 1413 MT -1405 1411 LT -1404 1409 LT -1403 1407 LT -1402 1406 LT -1401 1404 LT -1400 1403 LT -1398 1402 LT -1396 1401 LT -1394 1400 LT -1392 1400 LT -1390 1400 LT -1388 1400 LT -1386 1401 LT -1385 1402 LT -1383 1403 LT -1382 1404 LT -1380 1406 LT -1379 1408 LT -1379 1410 LT -1378 1412 LT -1378 1413 LT -QS -1445 1400 1425 HL -1431 1440 1380 VL -1465 1427 1413 VL -1491 1413 1427 VL -NP -1465 1427 MT -1465 1429 LT -1465 1431 LT -1466 1432 LT -1467 1434 LT -1468 1436 LT -1470 1437 LT -1471 1438 LT -1473 1439 LT -1475 1440 LT -1477 1440 LT -1479 1440 LT -1481 1439 LT -1483 1439 LT -1485 1438 LT -1486 1437 LT -1488 1435 LT -1489 1434 LT -1490 1432 LT -1491 1430 LT -1491 1428 LT -1491 1427 LT -QS -NP -1491 1413 MT -1491 1411 LT -1491 1409 LT -1490 1407 LT -1489 1406 LT -1488 1404 LT -1486 1403 LT -1485 1402 LT -1483 1401 LT -1481 1400 LT -1479 1400 LT -1477 1400 LT -1475 1400 LT -1473 1401 LT -1471 1402 LT -1469 1403 LT -1468 1404 LT -1467 1406 LT -1466 1408 LT -1465 1410 LT -1465 1412 LT -1465 1413 LT -QS -1511 1400 1440 VL -1525 1400 1511 HL -NP -1531 1407 MT -1531 1405 LT -1530 1403 LT -1529 1401 LT -1527 1400 LT -1525 1400 LT -1525 1400 LT -QS -1623 1440 1380 VL -1606 1440 1623 HL -1596 1410 1430 VL -1623 1400 1606 HL -NP -1596 1430 MT -1596 1432 LT -1597 1434 LT -1598 1436 LT -1599 1437 LT -1601 1438 LT -1603 1439 LT -1605 1440 LT -1606 1440 LT -QS -NP -1606 1400 MT -1604 1400 LT -1602 1401 LT -1600 1402 LT -1599 1403 LT -1598 1405 LT -1597 1406 LT -1596 1408 LT -1596 1410 LT -QS -1643 1400 1440 VL -1656 1400 1643 HL -NP -1663 1407 MT -1662 1405 LT -1662 1403 LT -1660 1401 LT -1658 1400 LT -1656 1400 LT -1656 1400 LT -QS -1683 1400 1440 VL -1683 1380 1383 VL -1716 1440 1703 1400 DL -1729 1400 1716 1440 DL -1776 1420 1749 HL -1776 1413 1420 VL -1749 1430 1413 VL -1776 1440 1759 HL -NP -1776 1413 MT -1776 1411 LT -1775 1409 LT -1775 1407 LT -1774 1406 LT -1772 1404 LT -1771 1403 LT -1769 1402 LT -1767 1401 LT -1765 1400 LT -1763 1400 LT -1761 1400 LT -1759 1400 LT -1758 1401 LT -1756 1402 LT -1754 1403 LT -1753 1404 LT -1751 1406 LT -1750 1408 LT -1750 1410 LT -1749 1412 LT -1749 1413 LT -QS -NP -1749 1430 MT -1749 1432 LT -1750 1434 LT -1751 1436 LT -1752 1437 LT -1754 1438 LT -1756 1439 LT -1758 1440 LT -1759 1440 LT -QS -1817 1424 1801 1417 DL -NP -1823 1404 MT -1821 1403 LT -1819 1402 LT -1817 1402 LT -1815 1401 LT -1813 1401 LT -1811 1401 LT -1809 1401 LT -1807 1401 LT -1805 1401 LT -1803 1402 LT -1802 1402 LT -QS -NP -1802 1402 MT -1800 1403 LT -1798 1404 LT -1797 1406 LT -1797 1408 LT -1796 1410 LT -1797 1412 LT -1797 1414 LT -1799 1415 LT -1800 1417 LT -1801 1417 LT -QS -NP -1817 1439 MT -1818 1438 LT -1820 1436 LT -1821 1435 LT -1822 1433 LT -1822 1431 LT -1822 1429 LT -1821 1427 LT -1820 1425 LT -1818 1424 LT -1817 1424 LT -QS -NP -1796 1437 MT -1798 1438 LT -1800 1438 LT -1801 1439 LT -1803 1439 LT -1805 1440 LT -1807 1440 LT -1809 1440 LT -1811 1440 LT -1813 1439 LT -1815 1439 LT -1817 1439 LT -QS -1887 1433 1380 VL -NP -1887 1433 MT -1888 1435 LT -1889 1437 LT -1890 1438 LT -1892 1439 LT -1894 1440 LT -1894 1440 LT -QS -1914 1427 1413 VL -1941 1413 1427 VL -NP -1914 1427 MT -1914 1429 LT -1915 1431 LT -1915 1432 LT -1916 1434 LT -1918 1436 LT -1919 1437 LT -1921 1438 LT -1923 1439 LT -1925 1440 LT -1927 1440 LT -1929 1440 LT -1931 1439 LT -1932 1439 LT -1934 1438 LT -1936 1437 LT -1937 1435 LT -1939 1434 LT -1939 1432 LT -1940 1430 LT -1941 1428 LT -1941 1427 LT -QS -NP -1941 1413 MT -1941 1411 LT -1940 1409 LT -1939 1407 LT -1938 1406 LT -1937 1404 LT -1936 1403 LT -1934 1402 LT -1932 1401 LT -1930 1400 LT -1928 1400 LT -1926 1400 LT -1924 1400 LT -1922 1401 LT -1921 1402 LT -1919 1403 LT -1917 1404 LT -1916 1406 LT -1915 1408 LT -1915 1410 LT -1914 1412 LT -1914 1413 LT -QS -1977 1400 1964 HL -1987 1440 1410 VL -1971 1440 1987 HL -1987 1420 1971 HL -NP -1987 1410 MT -1987 1408 LT -1986 1406 LT -1986 1404 LT -1984 1403 LT -1983 1401 LT -1981 1401 LT -1979 1400 LT -1977 1400 LT -QS -NP -1971 1420 MT -1969 1420 LT -1967 1421 LT -1965 1422 LT -1963 1423 LT -1962 1425 LT -1961 1426 LT -1961 1428 LT -1961 1430 LT -1961 1432 LT -1962 1434 LT -1963 1436 LT -1964 1437 LT -1966 1439 LT -1968 1439 LT -1969 1440 LT -1971 1440 LT -QS -2034 1440 1380 VL -2017 1440 2034 HL -2007 1410 1430 VL -2034 1400 2017 HL -NP -2007 1430 MT -2007 1432 LT -2008 1434 LT -2009 1436 LT -2010 1437 LT -2012 1438 LT -2014 1439 LT -2016 1440 LT -2017 1440 LT -QS -NP -2017 1400 MT -2015 1400 LT -2013 1401 LT -2012 1402 LT -2010 1403 LT -2009 1405 LT -2008 1406 LT -2007 1408 LT -2007 1410 LT -QS -NP -1325 1476 MT -1324 1478 LT -1323 1480 LT -1323 1481 LT -1322 1483 LT -1322 1485 LT -1321 1487 LT -1321 1489 LT -1320 1491 LT -1320 1493 LT -1319 1495 LT -1319 1497 LT -1319 1499 LT -1319 1501 LT -1318 1503 LT -1318 1505 LT -1318 1507 LT -1318 1509 LT -1318 1511 LT -1318 1513 LT -1318 1515 LT -1319 1517 LT -1319 1519 LT -1319 1521 LT -1319 1523 LT -1320 1525 LT -1320 1527 LT -1320 1529 LT -1321 1531 LT -1321 1533 LT -1322 1535 LT -1323 1536 LT -1323 1538 LT -1324 1540 LT -1325 1542 LT -1325 1542 LT -QS -1361 1496 1348 HL -1371 1536 1506 VL -1355 1536 1371 HL -1371 1516 1355 HL -NP -1371 1506 MT -1371 1504 LT -1371 1502 LT -1370 1500 LT -1368 1499 LT -1367 1497 LT -1365 1496 LT -1363 1496 LT -1361 1496 LT -QS -NP -1355 1516 MT -1353 1516 LT -1351 1517 LT -1349 1518 LT -1348 1519 LT -1346 1520 LT -1345 1522 LT -1345 1524 LT -1345 1526 LT -1345 1528 LT -1346 1530 LT -1347 1532 LT -1348 1533 LT -1350 1534 LT -1352 1535 LT -1354 1536 LT -1355 1536 LT -QS -1391 1496 1536 VL -1408 1496 1391 HL -1418 1536 1506 VL -NP -1418 1506 MT -1418 1504 LT -1417 1502 LT -1416 1500 LT -1415 1499 LT -1413 1497 LT -1412 1496 LT -1410 1496 LT -1408 1496 LT -QS -1465 1536 1476 VL -1448 1536 1465 HL -1438 1506 1526 VL -1465 1496 1448 HL -NP -1438 1526 MT -1438 1528 LT -1439 1530 LT -1440 1531 LT -1441 1533 LT -1443 1534 LT -1444 1535 LT -1446 1536 LT -1448 1536 LT -QS -NP -1448 1496 MT -1446 1496 LT -1444 1497 LT -1442 1498 LT -1441 1499 LT -1440 1500 LT -1439 1502 LT -1438 1504 LT -1438 1506 LT -QS -1536 1486 1536 VL -1550 1476 1546 HL -1550 1496 1530 HL -NP -1546 1476 MT -1544 1476 LT -1542 1477 LT -1541 1478 LT -1539 1479 LT -1538 1480 LT -1537 1482 LT -1536 1484 LT -1536 1486 LT -QS -1596 1516 1570 HL -1596 1509 1516 VL -1570 1526 1509 VL -1596 1536 1580 HL -NP -1596 1509 MT -1596 1507 LT -1596 1505 LT -1595 1503 LT -1594 1502 LT -1593 1500 LT -1591 1499 LT -1589 1498 LT -1588 1497 LT -1586 1496 LT -1584 1496 LT -1582 1496 LT -1580 1496 LT -1578 1497 LT -1576 1498 LT -1574 1499 LT -1573 1500 LT -1572 1502 LT -1571 1504 LT -1570 1505 LT -1570 1507 LT -1570 1509 LT -QS -NP -1570 1526 MT -1570 1528 LT -1570 1530 LT -1571 1531 LT -1573 1533 LT -1574 1534 LT -1576 1535 LT -1578 1536 LT -1580 1536 LT -QS -1643 1516 1616 HL -1643 1509 1516 VL -1616 1526 1509 VL -1643 1536 1626 HL -NP -1643 1509 MT -1643 1507 LT -1642 1505 LT -1641 1503 LT -1640 1502 LT -1639 1500 LT -1638 1499 LT -1636 1498 LT -1634 1497 LT -1632 1496 LT -1630 1496 LT -1628 1496 LT -1626 1496 LT -1624 1497 LT -1623 1498 LT -1621 1499 LT -1620 1500 LT -1618 1502 LT -1617 1504 LT -1617 1505 LT -1616 1507 LT -1616 1509 LT -QS -NP -1616 1526 MT -1616 1528 LT -1617 1530 LT -1618 1531 LT -1619 1533 LT -1621 1534 LT -1623 1535 LT -1625 1536 LT -1626 1536 LT -QS -1689 1536 1476 VL -1673 1536 1689 HL -1663 1506 1526 VL -1689 1496 1673 HL -NP -1663 1526 MT -1663 1528 LT -1664 1530 LT -1664 1531 LT -1666 1533 LT -1667 1534 LT -1669 1535 LT -1671 1536 LT -1673 1536 LT -QS -NP -1673 1496 MT -1671 1496 LT -1669 1497 LT -1667 1498 LT -1666 1499 LT -1664 1500 LT -1663 1502 LT -1663 1504 LT -1663 1506 LT -QS -1709 1536 1476 VL -1726 1536 1709 HL -1736 1506 1526 VL -1709 1496 1726 HL -NP -1726 1536 MT -1728 1536 LT -1730 1535 LT -1732 1534 LT -1733 1533 LT -1734 1531 LT -1735 1529 LT -1736 1527 LT -1736 1526 LT -QS -NP -1736 1506 MT -1736 1504 LT -1735 1502 LT -1734 1500 LT -1733 1499 LT -1731 1497 LT -1729 1496 LT -1728 1496 LT -1726 1496 LT -QS -1773 1496 1759 HL -1783 1536 1506 VL -1766 1536 1783 HL -1783 1516 1766 HL -NP -1783 1506 MT -1782 1504 LT -1782 1502 LT -1781 1500 LT -1779 1499 LT -1778 1497 LT -1776 1496 LT -1774 1496 LT -1773 1496 LT -QS -NP -1766 1516 MT -1764 1516 LT -1762 1517 LT -1760 1518 LT -1759 1519 LT -1757 1520 LT -1757 1522 LT -1756 1524 LT -1756 1526 LT -1756 1528 LT -1757 1530 LT -1758 1532 LT -1759 1533 LT -1761 1534 LT -1763 1535 LT -1765 1536 LT -1766 1536 LT -QS -1813 1496 1823 HL -1803 1526 1506 VL -1823 1536 1813 HL -NP -1813 1496 MT -1811 1496 LT -1809 1497 LT -1807 1498 LT -1805 1499 LT -1804 1500 LT -1803 1502 LT -1803 1504 LT -1803 1506 LT -QS -NP -1803 1526 MT -1803 1528 LT -1803 1530 LT -1804 1531 LT -1806 1533 LT -1807 1534 LT -1809 1535 LT -1811 1536 LT -1813 1536 LT -QS -1842 1536 1476 VL -1869 1496 1842 1512 DL -1869 1536 1851 1507 DL -1961 1536 1476 VL -1944 1536 1961 HL -1934 1506 1526 VL -1961 1496 1944 HL -NP -1934 1526 MT -1934 1528 LT -1935 1530 LT -1936 1531 LT -1937 1533 LT -1939 1534 LT -1940 1535 LT -1942 1536 LT -1944 1536 LT -QS -NP -1944 1496 MT -1942 1496 LT -1940 1497 LT -1938 1498 LT -1937 1499 LT -1936 1500 LT -1935 1502 LT -1934 1504 LT -1934 1506 LT -QS -2007 1516 1981 HL -2007 1509 1516 VL -1981 1526 1509 VL -2007 1536 1991 HL -NP -2007 1509 MT -2007 1507 LT -2007 1505 LT -2006 1503 LT -2005 1502 LT -2004 1500 LT -2002 1499 LT -2000 1498 LT -1999 1497 LT -1997 1496 LT -1995 1496 LT -1993 1496 LT -1991 1496 LT -1989 1497 LT -1987 1498 LT -1985 1499 LT -1984 1500 LT -1983 1502 LT -1982 1504 LT -1981 1505 LT -1981 1507 LT -1981 1509 LT -QS -NP -1981 1526 MT -1981 1528 LT -1981 1530 LT -1982 1531 LT -1984 1533 LT -1985 1534 LT -1987 1535 LT -1989 1536 LT -1991 1536 LT -QS -2041 1536 2027 1496 DL -2054 1496 2041 1536 DL -2074 1496 1536 VL -2074 1476 1479 VL -2104 1496 2114 HL -2094 1526 1506 VL -2114 1536 2104 HL -NP -2104 1496 MT -2102 1496 LT -2100 1497 LT -2098 1498 LT -2097 1499 LT -2095 1500 LT -2094 1502 LT -2094 1504 LT -2094 1506 LT -QS -NP -2094 1526 MT -2094 1528 LT -2095 1530 LT -2096 1531 LT -2097 1533 LT -2098 1534 LT -2100 1535 LT -2102 1536 LT -2104 1536 LT -QS -2160 1516 2134 HL -2160 1509 1516 VL -2134 1526 1509 VL -2160 1536 2144 HL -NP -2160 1509 MT -2160 1507 LT -2160 1505 LT -2159 1503 LT -2158 1502 LT -2157 1500 LT -2155 1499 LT -2154 1498 LT -2152 1497 LT -2150 1496 LT -2148 1496 LT -2146 1496 LT -2144 1496 LT -2142 1497 LT -2140 1498 LT -2139 1499 LT -2137 1500 LT -2136 1502 LT -2135 1504 LT -2134 1505 LT -2134 1507 LT -2134 1509 LT -QS -NP -2134 1526 MT -2134 1528 LT -2135 1530 LT -2136 1531 LT -2137 1533 LT -2138 1534 LT -2140 1535 LT -2142 1536 LT -2144 1536 LT -QS -NP -2180 1542 MT -2181 1541 LT -2182 1539 LT -2182 1537 LT -2183 1535 LT -2184 1533 LT -2184 1531 LT -2185 1529 LT -2185 1527 LT -2185 1525 LT -2186 1523 LT -2186 1521 LT -2186 1519 LT -2187 1517 LT -2187 1515 LT -2187 1513 LT -2187 1511 LT -2187 1509 LT -2187 1507 LT -2187 1505 LT -2187 1503 LT -2187 1501 LT -2186 1499 LT -2186 1497 LT -2186 1495 LT -2186 1493 LT -2185 1491 LT -2185 1489 LT -2184 1488 LT -2184 1486 LT -2183 1484 LT -2183 1482 LT -2182 1480 LT -2181 1478 LT -2180 1476 LT -2180 1476 LT -QS -1138 517 1258 HL -1198 577 1138 517 DL -1138 637 1198 577 DL -1258 637 1138 HL -899 577 839 517 DL -839 637 899 577 DL -2457 1715 2397 1775 DL -2457 1835 2397 1775 DL -1258 1715 2037 HL -2037 1835 1258 HL -1318 1835 1258 1715 DL -1378 1835 1318 1715 DL -1438 1835 1378 1715 DL -1498 1835 1438 1715 DL -1558 1835 1498 1715 DL -1618 1835 1558 1715 DL -1678 1835 1618 1715 DL -1738 1835 1678 1715 DL -1798 1835 1738 1715 DL -1857 1835 1798 1715 DL -1917 1835 1857 1715 DL -1977 1835 1917 1715 DL -2037 1835 1977 1715 DL -1138 877 1198 817 DL -1258 877 1198 817 DL -1798 577 1738 517 DL -1738 637 1798 577 DL -1198 727 1596 VL -779 577 1049 HL -2157 577 1348 HL -1438 1955 1857 HL -1438 1955 1498 1895 DL -1498 2015 1438 1955 DL -2756 1775 577 VL -2756 817 2696 757 DL -2816 757 2756 817 DL -2756 577 2517 HL -2397 1775 2756 HL -1 4 B 1 1 PE -60 501 541 VL -60 481 485 VL -80 501 541 VL -97 501 80 HL -107 541 511 VL -NP -107 511 MT -106 509 LT -106 507 LT -105 505 LT -103 504 LT -102 503 LT -100 502 LT -98 501 LT -97 501 LT -QS -143 541 126 HL -153 511 531 VL -126 501 143 HL -126 561 501 VL -NP -143 541 MT -145 541 LT -147 540 LT -149 539 LT -150 538 LT -152 536 LT -152 535 LT -153 533 LT -153 531 LT -QS -NP -153 511 MT -153 509 LT -152 507 LT -151 505 LT -150 504 LT -148 503 LT -147 502 LT -145 501 LT -143 501 LT -QS -173 531 501 VL -200 541 183 HL -200 501 541 VL -NP -173 531 MT -173 533 LT -174 535 LT -175 537 LT -176 538 LT -178 540 LT -180 540 LT -181 541 LT -183 541 LT -QS -240 501 220 HL -226 541 481 VL -326 525 310 518 DL -NP -331 505 MT -329 504 LT -328 503 LT -326 503 LT -324 502 LT -322 502 LT -320 502 LT -318 502 LT -316 502 LT -314 502 LT -312 503 LT -311 503 LT -QS -NP -311 503 MT -309 504 LT -307 505 LT -306 507 LT -305 509 LT -305 511 LT -305 513 LT -306 515 LT -307 516 LT -309 518 LT -310 518 LT -QS -NP -325 540 MT -327 539 LT -329 538 LT -330 536 LT -331 534 LT -331 532 LT -330 530 LT -330 528 LT -328 527 LT -327 525 LT -326 525 LT -QS -NP -305 538 MT -306 539 LT -308 540 LT -310 540 LT -312 541 LT -314 541 LT -316 541 LT -318 541 LT -320 541 LT -322 541 LT -324 540 LT -325 540 LT -QS -351 501 541 VL -351 481 485 VL -388 561 371 HL -398 501 551 VL -381 501 398 HL -371 531 511 VL -398 541 381 HL -NP -388 561 MT -390 561 LT -392 560 LT -393 559 LT -395 558 LT -396 556 LT -397 555 LT -398 553 LT -398 551 LT -QS -NP -381 501 MT -379 501 LT -377 502 LT -375 503 LT -374 504 LT -373 506 LT -372 508 LT -371 510 LT -371 511 LT -QS -NP -371 531 MT -371 533 LT -372 535 LT -373 537 LT -374 538 LT -376 540 LT -378 540 LT -380 541 LT -381 541 LT -QS -418 501 541 VL -434 501 418 HL -444 541 511 VL -NP -444 511 MT -444 509 LT -444 507 LT -443 505 LT -441 504 LT -440 503 LT -438 502 LT -436 501 LT -434 501 LT -QS -481 501 468 HL -491 541 511 VL -474 541 491 HL -491 521 474 HL -NP -491 511 MT -491 509 LT -490 507 LT -489 505 LT -488 504 LT -486 503 LT -485 502 LT -483 501 LT -481 501 LT -QS -NP -474 521 MT -472 521 LT -470 522 LT -469 523 LT -467 524 LT -466 526 LT -465 528 LT -464 530 LT -464 532 LT -465 534 LT -465 535 LT -466 537 LT -468 539 LT -469 540 LT -471 541 LT -473 541 LT -474 541 LT -QS -511 534 481 VL -NP -511 534 MT -511 536 LT -512 538 LT -514 540 LT -515 541 LT -517 541 LT -518 541 LT -QS -NP -67 577 MT -66 579 LT -65 581 LT -64 583 LT -64 585 LT -63 586 LT -63 588 LT -62 590 LT -62 592 LT -61 594 LT -61 596 LT -61 598 LT -61 600 LT -60 602 LT -60 604 LT -60 606 LT -60 608 LT -60 610 LT -60 612 LT -60 614 LT -60 616 LT -60 618 LT -60 620 LT -61 622 LT -61 624 LT -61 626 LT -62 628 LT -62 630 LT -63 632 LT -63 634 LT -64 636 LT -64 638 LT -65 640 LT -66 641 LT -66 643 LT -67 644 LT -QS -97 597 107 HL -87 627 607 VL -107 637 97 HL -NP -97 597 MT -95 597 LT -93 598 LT -91 599 LT -89 600 LT -88 602 LT -87 603 LT -87 605 LT -87 607 LT -QS -NP -87 627 MT -87 629 LT -87 631 LT -88 633 LT -90 634 LT -91 635 LT -93 636 LT -95 637 LT -97 637 LT -QS -126 624 610 VL -153 610 624 VL -NP -126 624 MT -127 626 LT -127 628 LT -128 629 LT -129 631 LT -130 633 LT -132 634 LT -133 635 LT -135 636 LT -137 637 LT -139 637 LT -141 637 LT -143 637 LT -145 636 LT -147 635 LT -148 634 LT -150 633 LT -151 631 LT -152 629 LT -153 627 LT -153 625 LT -153 624 LT -QS -NP -153 610 MT -153 608 LT -153 606 LT -152 605 LT -151 603 LT -150 601 LT -148 600 LT -146 599 LT -145 598 LT -143 597 LT -141 597 LT -139 597 LT -137 597 LT -135 598 LT -133 599 LT -131 600 LT -130 601 LT -129 603 LT -128 605 LT -127 607 LT -127 609 LT -126 610 LT -QS -173 597 637 VL -203 597 173 HL -213 637 607 VL -193 637 597 VL -NP -213 607 MT -213 605 LT -212 603 LT -211 601 LT -210 600 LT -208 599 LT -207 598 LT -205 597 LT -203 597 LT -QS -233 597 637 VL -263 597 233 HL -273 637 607 VL -253 637 597 VL -NP -273 607 MT -273 605 LT -272 603 LT -271 601 LT -270 600 LT -268 599 LT -267 598 LT -265 597 LT -263 597 LT -QS -310 597 296 HL -320 637 607 VL -303 637 320 HL -320 617 303 HL -NP -320 607 MT -319 605 LT -319 603 LT -318 601 LT -316 600 LT -315 599 LT -313 598 LT -311 597 LT -310 597 LT -QS -NP -303 617 MT -301 617 LT -299 618 LT -297 619 LT -296 620 LT -294 622 LT -294 623 LT -293 625 LT -293 627 LT -293 629 LT -294 631 LT -295 633 LT -296 634 LT -298 636 LT -300 636 LT -302 637 LT -303 637 LT -QS -340 597 637 VL -356 597 340 HL -366 637 607 VL -NP -366 607 MT -366 605 LT -365 603 LT -364 601 LT -363 600 LT -362 599 LT -360 598 LT -358 597 LT -356 597 LT -QS -413 637 577 VL -396 637 413 HL -386 607 627 VL -413 597 396 HL -NP -386 627 MT -386 629 LT -387 631 LT -388 633 LT -389 634 LT -391 635 LT -393 636 LT -395 637 LT -396 637 LT -QS -NP -396 597 MT -394 597 LT -392 598 LT -390 599 LT -389 600 LT -388 602 LT -387 603 LT -386 605 LT -386 607 LT -QS -499 621 483 614 DL -NP -504 601 MT -502 600 LT -501 599 LT -499 599 LT -497 598 LT -495 598 LT -493 598 LT -491 598 LT -489 598 LT -487 598 LT -485 599 LT -484 599 LT -QS -NP -484 599 MT -482 600 LT -480 601 LT -479 603 LT -478 605 LT -478 607 LT -478 609 LT -479 611 LT -480 612 LT -482 614 LT -483 614 LT -QS -NP -498 636 MT -500 635 LT -502 633 LT -503 632 LT -504 630 LT -504 628 LT -504 626 LT -503 624 LT -502 622 LT -500 621 LT -499 621 LT -QS -NP -478 634 MT -479 635 LT -481 636 LT -483 636 LT -485 637 LT -487 637 LT -489 637 LT -491 637 LT -493 637 LT -495 636 LT -497 636 LT -498 636 LT -QS -524 597 637 VL -524 577 580 VL -561 657 544 HL -571 597 647 VL -554 597 571 HL -544 627 607 VL -571 637 554 HL -NP -561 657 MT -563 657 LT -565 656 LT -567 655 LT -568 654 LT -569 652 LT -570 650 LT -571 649 LT -571 647 LT -QS -NP -554 597 MT -552 597 LT -550 598 LT -549 599 LT -547 600 LT -546 602 LT -545 603 LT -544 605 LT -544 607 LT -QS -NP -544 627 MT -544 629 LT -545 631 LT -546 633 LT -547 634 LT -549 635 LT -551 636 LT -553 637 LT -554 637 LT -QS -591 597 637 VL -608 597 591 HL -617 637 607 VL -NP -617 607 MT -617 605 LT -617 603 LT -616 601 LT -614 600 LT -613 599 LT -611 598 LT -609 597 LT -608 597 LT -QS -654 597 641 HL -664 637 607 VL -647 637 664 HL -664 617 647 HL -NP -664 607 MT -664 605 LT -663 603 LT -662 601 LT -661 600 LT -659 599 LT -658 598 LT -656 597 LT -654 597 LT -QS -NP -647 617 MT -645 617 LT -644 618 LT -642 619 LT -640 620 LT -639 622 LT -638 623 LT -638 625 LT -637 627 LT -638 629 LT -638 631 LT -639 633 LT -641 634 LT -642 636 LT -644 636 LT -646 637 LT -647 637 LT -QS -684 630 577 VL -NP -684 630 MT -684 632 LT -685 634 LT -687 636 LT -688 637 LT -690 637 LT -691 637 LT -QS -NP -711 644 MT -711 642 LT -712 640 LT -713 638 LT -713 636 LT -714 634 LT -715 632 LT -715 630 LT -715 628 LT -716 626 LT -716 624 LT -716 622 LT -717 620 LT -717 618 LT -717 616 LT -717 615 LT -717 613 LT -717 611 LT -717 609 LT -717 607 LT -717 605 LT -717 603 LT -717 601 LT -717 599 LT -716 597 LT -716 595 LT -716 593 LT -715 591 LT -715 589 LT -714 587 LT -714 585 LT -713 583 LT -712 581 LT -712 579 LT -711 577 LT -711 577 LT -QS -426 1330 1380 VL -439 1320 436 HL -439 1340 419 HL -NP -436 1320 MT -434 1320 LT -432 1321 LT -430 1322 LT -429 1323 LT -428 1325 LT -427 1326 LT -426 1328 LT -426 1330 LT -QS -486 1360 459 HL -486 1353 1360 VL -459 1370 1353 VL -486 1380 469 HL -NP -486 1353 MT -486 1351 LT -485 1349 LT -485 1348 LT -484 1346 LT -482 1344 LT -481 1343 LT -479 1342 LT -477 1341 LT -476 1340 LT -474 1340 LT -472 1340 LT -470 1340 LT -468 1341 LT -466 1342 LT -464 1343 LT -463 1344 LT -462 1346 LT -461 1348 LT -460 1350 LT -459 1352 LT -459 1353 LT -QS -NP -459 1370 MT -460 1372 LT -460 1374 LT -461 1376 LT -462 1377 LT -464 1378 LT -466 1379 LT -468 1380 LT -469 1380 LT -QS -533 1360 506 HL -533 1353 1360 VL -506 1370 1353 VL -533 1380 516 HL -NP -533 1353 MT -532 1351 LT -532 1349 LT -531 1348 LT -530 1346 LT -529 1344 LT -528 1343 LT -526 1342 LT -524 1341 LT -522 1340 LT -520 1340 LT -518 1340 LT -516 1340 LT -514 1341 LT -512 1342 LT -511 1343 LT -509 1344 LT -508 1346 LT -507 1348 LT -506 1350 LT -506 1352 LT -506 1353 LT -QS -NP -506 1370 MT -506 1372 LT -507 1374 LT -508 1376 LT -509 1377 LT -511 1378 LT -512 1379 LT -514 1380 LT -516 1380 LT -QS -579 1380 1320 VL -563 1380 579 HL -553 1350 1370 VL -579 1340 563 HL -NP -553 1370 MT -553 1372 LT -553 1374 LT -554 1376 LT -556 1377 LT -557 1378 LT -559 1379 LT -561 1380 LT -563 1380 LT -QS -NP -563 1340 MT -561 1340 LT -559 1341 LT -557 1342 LT -555 1343 LT -554 1345 LT -553 1346 LT -553 1348 LT -553 1350 LT -QS -599 1380 1320 VL -616 1380 599 HL -626 1350 1370 VL -599 1340 616 HL -NP -616 1380 MT -618 1380 LT -620 1379 LT -622 1378 LT -623 1377 LT -624 1375 LT -625 1373 LT -626 1372 LT -626 1370 LT -QS -NP -626 1350 MT -626 1348 LT -625 1346 LT -624 1344 LT -623 1343 LT -621 1342 LT -619 1341 LT -617 1340 LT -616 1340 LT -QS -662 1340 649 HL -672 1380 1350 VL -656 1380 672 HL -672 1360 656 HL -NP -672 1350 MT -672 1348 LT -672 1346 LT -671 1344 LT -669 1343 LT -668 1342 LT -666 1341 LT -664 1340 LT -662 1340 LT -QS -NP -656 1360 MT -654 1360 LT -652 1361 LT -650 1362 LT -649 1363 LT -647 1365 LT -646 1366 LT -646 1368 LT -646 1370 LT -646 1372 LT -647 1374 LT -648 1376 LT -649 1377 LT -651 1379 LT -653 1379 LT -655 1380 LT -656 1380 LT -QS -702 1340 712 HL -692 1370 1350 VL -712 1380 702 HL -NP -702 1340 MT -700 1340 LT -698 1341 LT -697 1342 LT -695 1343 LT -694 1345 LT -693 1346 LT -693 1348 LT -692 1350 LT -QS -NP -692 1370 MT -693 1372 LT -693 1374 LT -694 1376 LT -695 1377 LT -697 1378 LT -699 1379 LT -701 1380 LT -702 1380 LT -QS -732 1380 1320 VL -759 1340 732 1357 DL -759 1380 741 1351 DL -845 1364 829 1357 DL -NP -851 1344 MT -849 1343 LT -847 1342 LT -845 1342 LT -843 1341 LT -841 1341 LT -839 1341 LT -837 1341 LT -835 1341 LT -833 1341 LT -831 1342 LT -830 1342 LT -QS -NP -830 1342 MT -828 1343 LT -826 1344 LT -825 1346 LT -825 1348 LT -824 1350 LT -825 1352 LT -825 1354 LT -827 1355 LT -828 1357 LT -829 1357 LT -QS -NP -845 1379 MT -846 1378 LT -848 1376 LT -849 1375 LT -850 1373 LT -850 1371 LT -850 1369 LT -849 1367 LT -848 1365 LT -846 1364 LT -845 1364 LT -QS -NP -824 1377 MT -826 1378 LT -828 1379 LT -829 1379 LT -831 1380 LT -833 1380 LT -835 1380 LT -837 1380 LT -839 1380 LT -841 1379 LT -843 1379 LT -845 1379 LT -QS -870 1340 1380 VL -870 1320 1323 VL -907 1400 890 HL -917 1340 1390 VL -900 1340 917 HL -890 1370 1350 VL -917 1380 900 HL -NP -907 1400 MT -909 1400 LT -911 1399 LT -913 1398 LT -914 1397 LT -916 1395 LT -916 1393 LT -917 1392 LT -917 1390 LT -QS -NP -900 1340 MT -898 1340 LT -897 1341 LT -895 1342 LT -893 1343 LT -892 1345 LT -891 1346 LT -891 1348 LT -890 1350 LT -QS -NP -890 1370 MT -891 1372 LT -891 1374 LT -892 1376 LT -894 1377 LT -895 1378 LT -897 1379 LT -899 1380 LT -900 1380 LT -QS -937 1340 1380 VL -954 1340 937 HL -964 1380 1350 VL -NP -964 1350 MT -963 1348 LT -963 1346 LT -962 1344 LT -961 1343 LT -959 1342 LT -957 1341 LT -955 1340 LT -954 1340 LT -QS -1000 1340 987 HL -1010 1380 1350 VL -994 1380 1010 HL -1010 1360 994 HL -NP -1010 1350 MT -1010 1348 LT -1009 1346 LT -1009 1344 LT -1007 1343 LT -1006 1342 LT -1004 1341 LT -1002 1340 LT -1000 1340 LT -QS -NP -994 1360 MT -992 1360 LT -990 1361 LT -988 1362 LT -986 1363 LT -985 1365 LT -984 1366 LT -984 1368 LT -984 1370 LT -984 1372 LT -985 1374 LT -986 1376 LT -987 1377 LT -989 1379 LT -991 1379 LT -992 1380 LT -994 1380 LT -QS -1030 1373 1320 VL -NP -1030 1373 MT -1031 1375 LT -1031 1377 LT -1033 1379 LT -1035 1380 LT -1037 1380 LT -1037 1380 LT -QS -1125 1320 1148 1347 DL -1102 1347 1125 1320 DL -306 1666 1715 VL -320 1656 316 HL -320 1676 300 HL -NP -316 1656 MT -314 1656 LT -312 1656 LT -311 1657 LT -309 1659 LT -308 1660 LT -307 1662 LT -306 1664 LT -306 1666 LT -QS -366 1696 340 HL -366 1689 1696 VL -340 1706 1689 VL -366 1715 350 HL -NP -366 1689 MT -366 1687 LT -366 1685 LT -365 1683 LT -364 1681 LT -363 1680 LT -361 1678 LT -359 1677 LT -358 1676 LT -356 1676 LT -354 1676 LT -352 1676 LT -350 1676 LT -348 1677 LT -346 1677 LT -344 1679 LT -343 1680 LT -342 1682 LT -341 1683 LT -340 1685 LT -340 1687 LT -340 1689 LT -QS -NP -340 1706 MT -340 1708 LT -340 1709 LT -341 1711 LT -343 1713 LT -344 1714 LT -346 1715 LT -348 1715 LT -350 1715 LT -QS -413 1696 386 HL -413 1689 1696 VL -386 1706 1689 VL -413 1715 396 HL -NP -413 1689 MT -413 1687 LT -412 1685 LT -411 1683 LT -410 1681 LT -409 1680 LT -408 1678 LT -406 1677 LT -404 1676 LT -402 1676 LT -400 1676 LT -398 1676 LT -396 1676 LT -394 1677 LT -393 1677 LT -391 1679 LT -390 1680 LT -388 1682 LT -387 1683 LT -387 1685 LT -386 1687 LT -386 1689 LT -QS -NP -386 1706 MT -386 1708 LT -387 1709 LT -388 1711 LT -389 1713 LT -391 1714 LT -393 1715 LT -395 1715 LT -396 1715 LT -QS -459 1715 1656 VL -443 1715 459 HL -433 1686 1706 VL -459 1676 443 HL -NP -433 1706 MT -433 1708 LT -434 1709 LT -435 1711 LT -436 1713 LT -437 1714 LT -439 1715 LT -441 1715 LT -443 1715 LT -QS -NP -443 1676 MT -441 1676 LT -439 1676 LT -437 1677 LT -436 1679 LT -434 1680 LT -433 1682 LT -433 1684 LT -433 1686 LT -QS -479 1715 1656 VL -496 1715 479 HL -506 1686 1706 VL -479 1676 496 HL -NP -496 1715 MT -498 1715 LT -500 1715 LT -502 1714 LT -503 1712 LT -504 1711 LT -505 1709 LT -506 1707 LT -506 1706 LT -QS -NP -506 1686 MT -506 1684 LT -505 1682 LT -504 1680 LT -503 1678 LT -501 1677 LT -500 1676 LT -498 1676 LT -496 1676 LT -QS -543 1676 529 HL -553 1715 1686 VL -536 1715 553 HL -553 1696 536 HL -NP -553 1686 MT -552 1684 LT -552 1682 LT -551 1680 LT -550 1678 LT -548 1677 LT -546 1676 LT -544 1676 LT -543 1676 LT -QS -NP -536 1696 MT -534 1696 LT -532 1696 LT -530 1697 LT -529 1699 LT -527 1700 LT -527 1702 LT -526 1704 LT -526 1706 LT -526 1708 LT -527 1710 LT -528 1712 LT -529 1713 LT -531 1714 LT -533 1715 LT -535 1715 LT -536 1715 LT -QS -583 1676 593 HL -573 1706 1686 VL -593 1715 583 HL -NP -583 1676 MT -581 1676 LT -579 1676 LT -577 1677 LT -575 1679 LT -574 1680 LT -573 1682 LT -573 1684 LT -573 1686 LT -QS -NP -573 1706 MT -573 1708 LT -573 1709 LT -574 1711 LT -576 1713 LT -577 1714 LT -579 1715 LT -581 1715 LT -583 1715 LT -QS -612 1715 1656 VL -639 1676 612 1692 DL -639 1715 621 1687 DL -731 1715 1656 VL -714 1715 731 HL -704 1686 1706 VL -731 1676 714 HL -NP -704 1706 MT -704 1708 LT -705 1709 LT -706 1711 LT -707 1713 LT -709 1714 LT -710 1715 LT -712 1715 LT -714 1715 LT -QS -NP -714 1676 MT -712 1676 LT -710 1676 LT -708 1677 LT -707 1679 LT -706 1680 LT -705 1682 LT -704 1684 LT -704 1686 LT -QS -777 1696 751 HL -777 1689 1696 VL -751 1706 1689 VL -777 1715 761 HL -NP -777 1689 MT -777 1687 LT -777 1685 LT -776 1683 LT -775 1681 LT -774 1680 LT -772 1678 LT -771 1677 LT -769 1676 LT -767 1676 LT -765 1676 LT -763 1676 LT -761 1676 LT -759 1677 LT -757 1677 LT -755 1679 LT -754 1680 LT -753 1682 LT -752 1683 LT -751 1685 LT -751 1687 LT -751 1689 LT -QS -NP -751 1706 MT -751 1708 LT -751 1709 LT -752 1711 LT -754 1713 LT -755 1714 LT -757 1715 LT -759 1715 LT -761 1715 LT -QS -811 1715 797 1676 DL -824 1676 811 1715 DL -844 1676 1715 VL -844 1656 1659 VL -874 1676 884 HL -864 1706 1686 VL -884 1715 874 HL -NP -874 1676 MT -872 1676 LT -870 1676 LT -868 1677 LT -867 1679 LT -865 1680 LT -864 1682 LT -864 1684 LT -864 1686 LT -QS -NP -864 1706 MT -864 1708 LT -865 1709 LT -866 1711 LT -867 1713 LT -868 1714 LT -870 1715 LT -872 1715 LT -874 1715 LT -QS -930 1696 904 HL -930 1689 1696 VL -904 1706 1689 VL -930 1715 914 HL -NP -930 1689 MT -930 1687 LT -930 1685 LT -929 1683 LT -928 1681 LT -927 1680 LT -925 1678 LT -924 1677 LT -922 1676 LT -920 1676 LT -918 1676 LT -916 1676 LT -914 1676 LT -912 1677 LT -910 1677 LT -909 1679 LT -907 1680 LT -906 1682 LT -905 1683 LT -904 1685 LT -904 1687 LT -904 1689 LT -QS -NP -904 1706 MT -904 1708 LT -905 1709 LT -906 1711 LT -907 1713 LT -908 1714 LT -910 1715 LT -912 1715 LT -914 1715 LT -QS -1022 1689 995 HL -1069 1692 1042 1669 DL -1042 1715 1069 1692 DL -1040 381 1024 375 DL -NP -1045 361 MT -1043 360 LT -1042 360 LT -1040 359 LT -1038 359 LT -1036 358 LT -1034 358 LT -1032 358 LT -1030 358 LT -1028 359 LT -1026 359 LT -1025 360 LT -QS -NP -1025 360 MT -1023 360 LT -1021 362 LT -1020 363 LT -1019 365 LT -1019 367 LT -1019 369 LT -1020 371 LT -1021 373 LT -1023 374 LT -1024 375 LT -QS -NP -1039 396 MT -1041 395 LT -1043 394 LT -1044 392 LT -1045 390 LT -1045 388 LT -1045 386 LT -1044 384 LT -1043 383 LT -1041 382 LT -1040 381 LT -QS -NP -1019 394 MT -1020 395 LT -1022 396 LT -1024 396 LT -1026 397 LT -1028 397 LT -1030 397 LT -1032 397 LT -1034 397 LT -1036 397 LT -1038 396 LT -1039 396 LT -QS -1065 387 357 VL -1092 397 1075 HL -1092 357 397 VL -NP -1065 387 MT -1065 389 LT -1066 391 LT -1067 393 LT -1068 395 LT -1070 396 LT -1072 397 LT -1074 397 LT -1075 397 LT -QS -1112 357 397 VL -1142 357 1112 HL -1152 397 367 VL -1132 397 357 VL -NP -1152 367 MT -1152 365 LT -1151 363 LT -1150 362 LT -1149 360 LT -1147 359 LT -1145 358 LT -1143 357 LT -1142 357 LT -QS -1172 357 397 VL -1202 357 1172 HL -1212 397 367 VL -1192 397 357 VL -NP -1212 367 MT -1211 365 LT -1211 363 LT -1210 362 LT -1209 360 LT -1207 359 LT -1205 358 LT -1203 357 LT -1202 357 LT -QS -1232 357 397 VL -1232 337 341 VL -1252 357 397 VL -1268 357 1252 HL -1278 397 367 VL -NP -1278 367 MT -1278 365 LT -1277 363 LT -1276 362 LT -1275 360 LT -1274 359 LT -1272 358 LT -1270 357 LT -1268 357 LT -QS -1315 417 1298 HL -1325 357 407 VL -1308 357 1325 HL -1298 387 367 VL -1325 397 1308 HL -NP -1315 417 MT -1317 417 LT -1319 416 LT -1321 415 LT -1322 414 LT -1323 413 LT -1324 411 LT -1325 409 LT -1325 407 LT -QS -NP -1308 357 MT -1306 358 LT -1304 358 LT -1303 359 LT -1301 360 LT -1300 362 LT -1299 364 LT -1298 366 LT -1298 367 LT -QS -NP -1298 387 MT -1298 389 LT -1299 391 LT -1300 393 LT -1301 395 LT -1303 396 LT -1305 397 LT -1307 397 LT -1308 397 LT -QS -1406 357 1393 HL -1416 397 367 VL -1400 397 1416 HL -1416 377 1400 HL -NP -1416 367 MT -1416 365 LT -1416 363 LT -1415 362 LT -1413 360 LT -1412 359 LT -1410 358 LT -1408 357 LT -1406 357 LT -QS -NP -1400 377 MT -1398 378 LT -1396 378 LT -1394 379 LT -1393 380 LT -1391 382 LT -1390 384 LT -1390 386 LT -1390 388 LT -1390 390 LT -1391 392 LT -1392 393 LT -1393 395 LT -1395 396 LT -1397 397 LT -1399 397 LT -1400 397 LT -QS -1436 357 397 VL -1466 357 1436 HL -1476 397 367 VL -1456 397 357 VL -NP -1476 367 MT -1476 365 LT -1476 363 LT -1475 362 LT -1473 360 LT -1472 359 LT -1470 358 LT -1468 357 LT -1466 357 LT -QS -1513 397 1496 HL -1523 367 387 VL -1496 357 1513 HL -1496 417 357 VL -NP -1513 397 MT -1515 397 LT -1517 396 LT -1519 396 LT -1520 394 LT -1521 393 LT -1522 391 LT -1523 389 LT -1523 387 LT -QS -NP -1523 367 MT -1523 365 LT -1522 363 LT -1521 362 LT -1520 360 LT -1518 359 LT -1516 358 LT -1515 357 LT -1513 357 LT -QS -2294 397 2277 HL -2304 367 387 VL -2277 357 2294 HL -2277 417 357 VL -NP -2294 397 MT -2296 397 LT -2297 396 LT -2299 396 LT -2301 394 LT -2302 393 LT -2303 391 LT -2303 389 LT -2304 387 LT -QS -NP -2304 367 MT -2303 365 LT -2303 363 LT -2302 362 LT -2300 360 LT -2299 359 LT -2297 358 LT -2295 357 LT -2294 357 LT -QS -2323 384 371 VL -2350 371 384 VL -NP -2323 384 MT -2324 386 LT -2324 388 LT -2325 390 LT -2326 392 LT -2327 393 LT -2329 394 LT -2330 396 LT -2332 396 LT -2334 397 LT -2336 397 LT -2338 397 LT -2340 397 LT -2342 396 LT -2344 395 LT -2345 394 LT -2347 393 LT -2348 391 LT -2349 390 LT -2350 388 LT -2350 386 LT -2350 384 LT -QS -NP -2350 371 MT -2350 369 LT -2350 367 LT -2349 365 LT -2348 363 LT -2347 362 LT -2345 360 LT -2343 359 LT -2342 358 LT -2340 358 LT -2338 357 LT -2336 357 LT -2334 358 LT -2332 358 LT -2330 359 LT -2328 360 LT -2327 362 LT -2326 363 LT -2325 365 LT -2324 367 LT -2324 369 LT -2323 371 LT -QS -2380 397 2370 357 DL -2390 371 2380 397 DL -2400 397 2390 371 DL -2410 357 2400 397 DL -2457 377 2430 HL -2457 371 377 VL -2430 387 371 VL -2457 397 2440 HL -NP -2457 371 MT -2456 369 LT -2456 367 LT -2455 365 LT -2454 363 LT -2453 362 LT -2452 360 LT -2450 359 LT -2448 358 LT -2446 358 LT -2444 357 LT -2442 357 LT -2440 358 LT -2438 358 LT -2436 359 LT -2435 360 LT -2433 362 LT -2432 363 LT -2431 365 LT -2431 367 LT -2430 369 LT -2430 371 LT -QS -NP -2430 387 MT -2430 389 LT -2431 391 LT -2432 393 LT -2433 395 LT -2435 396 LT -2436 397 LT -2438 397 LT -2440 397 LT -QS -2477 357 397 VL -2490 357 2477 HL -NP -2497 364 MT -2496 362 LT -2495 360 LT -2494 359 LT -2492 358 LT -2490 357 LT -2490 357 LT -QS -2578 357 2565 HL -2588 397 367 VL -2571 397 2588 HL -2588 377 2571 HL -NP -2588 367 MT -2588 365 LT -2587 363 LT -2586 362 LT -2585 360 LT -2583 359 LT -2582 358 LT -2580 357 LT -2578 357 LT -QS -NP -2571 377 MT -2569 378 LT -2568 378 LT -2566 379 LT -2564 380 LT -2563 382 LT -2562 384 LT -2562 386 LT -2562 388 LT -2562 390 LT -2562 392 LT -2564 393 LT -2565 395 LT -2567 396 LT -2568 397 LT -2570 397 LT -2571 397 LT -QS -2608 357 397 VL -2638 357 2608 HL -2648 397 367 VL -2628 397 357 VL -NP -2648 367 MT -2648 365 LT -2647 363 LT -2646 362 LT -2645 360 LT -2643 359 LT -2642 358 LT -2640 357 LT -2638 357 LT -QS -2685 397 2668 HL -2695 367 387 VL -2668 357 2685 HL -2668 417 357 VL -NP -2685 397 MT -2687 397 LT -2689 396 LT -2690 396 LT -2692 394 LT -2693 393 LT -2694 391 LT -2695 389 LT -2695 387 LT -QS -NP -2695 367 MT -2694 365 LT -2694 363 LT -2693 362 LT -2692 360 LT -2690 359 LT -2688 358 LT -2686 357 LT -2685 357 LT -QS -2097 1735 1775 VL -2127 1735 2097 HL -2137 1775 1745 VL -2117 1775 1735 VL -NP -2137 1745 MT -2137 1743 LT -2136 1742 LT -2135 1740 LT -2134 1738 LT -2132 1737 LT -2131 1736 LT -2129 1736 LT -2127 1735 LT -QS -2157 1762 1749 VL -2184 1749 1762 VL -NP -2157 1762 MT -2157 1764 LT -2158 1766 LT -2158 1768 LT -2159 1770 LT -2161 1771 LT -2162 1773 LT -2164 1774 LT -2166 1775 LT -2168 1775 LT -2170 1775 LT -2172 1775 LT -2174 1775 LT -2175 1774 LT -2177 1774 LT -2179 1772 LT -2180 1771 LT -2182 1769 LT -2182 1768 LT -2183 1766 LT -2184 1764 LT -2184 1762 LT -QS -NP -2184 1749 MT -2184 1747 LT -2183 1745 LT -2182 1743 LT -2181 1741 LT -2180 1740 LT -2179 1738 LT -2177 1737 LT -2175 1736 LT -2173 1736 LT -2171 1735 LT -2169 1736 LT -2167 1736 LT -2165 1736 LT -2164 1737 LT -2162 1739 LT -2160 1740 LT -2159 1742 LT -2158 1743 LT -2158 1745 LT -2157 1747 LT -2157 1749 LT -QS -2224 1735 2204 HL -2210 1775 1715 VL -2244 1762 1749 VL -2270 1749 1762 VL -NP -2244 1762 MT -2244 1764 LT -2244 1766 LT -2245 1768 LT -2246 1770 LT -2247 1771 LT -2249 1773 LT -2250 1774 LT -2252 1775 LT -2254 1775 LT -2256 1775 LT -2258 1775 LT -2260 1775 LT -2262 1774 LT -2264 1774 LT -2265 1772 LT -2267 1771 LT -2268 1769 LT -2269 1768 LT -2270 1766 LT -2270 1764 LT -2270 1762 LT -QS -NP -2270 1749 MT -2270 1747 LT -2270 1745 LT -2269 1743 LT -2268 1741 LT -2267 1740 LT -2265 1738 LT -2263 1737 LT -2262 1736 LT -2260 1736 LT -2258 1735 LT -2256 1736 LT -2254 1736 LT -2252 1736 LT -2250 1737 LT -2248 1739 LT -2247 1740 LT -2246 1742 LT -2245 1743 LT -2244 1745 LT -2244 1747 LT -2244 1749 LT -QS -2290 1735 1775 VL -2304 1735 2290 HL -NP -2310 1742 MT -2310 1740 LT -2309 1738 LT -2308 1737 LT -2306 1736 LT -2304 1735 LT -2304 1735 LT -QS -1 6 B 1 1 PE -985 550 959 HL -972 564 537 VL -1165 790 1138 HL -QP -%%Trailer -%%Pages: 1 -%%DocumentFonts: -%%Trailer -cleartomark -countdictstack -exch sub { end } repeat -restore -%%EOF diff --git a/docs/src/common/images/servo-feedback.png b/docs/src/common/images/servo-feedback.png deleted file mode 100644 index 23010c38c5e..00000000000 Binary files a/docs/src/common/images/servo-feedback.png and /dev/null differ diff --git a/docs/src/common/images/servo-feedback.ps b/docs/src/common/images/servo-feedback.ps deleted file mode 100644 index 668f327f5a9..00000000000 Binary files a/docs/src/common/images/servo-feedback.ps and /dev/null differ diff --git a/docs/src/common/images/servo-feedback.svg b/docs/src/common/images/servo-feedback.svg deleted file mode 100755 index 179fc68fbd2..00000000000 --- a/docs/src/common/images/servo-feedback.svg +++ /dev/null @@ -1,474 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - § - - Σ - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - input signal[ command signal ] - Summing amp - feedback signal - feedback device - Power amp - Power ampdrivesmotor - motor drives loadand feedback device - Summer ampdrives power amp - input (command) signaland feedback signaldrive summing amp - Motor - - diff --git a/docs/src/common/images/servo-feedback_fr.png b/docs/src/common/images/servo-feedback_fr.png deleted file mode 100644 index b775c5d296d..00000000000 Binary files a/docs/src/common/images/servo-feedback_fr.png and /dev/null differ diff --git a/docs/src/common/images/servo-feedback_fr.svg b/docs/src/common/images/servo-feedback_fr.svg deleted file mode 100755 index f1b37dd621c..00000000000 --- a/docs/src/common/images/servo-feedback_fr.svg +++ /dev/null @@ -1,471 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - Σ - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - Signal de consigneou de commande - Amp sommateur - signal de retour - Capteur de retour - Amp de puissance - L'amplificateur de puissance pilote le moteur - Le moteur pilote la charge et le capteur - L'amp. sommateur pilote l'amplificateurde puissance - Le signal d'entrée et lesignal de retour pilotentl'amplificateur sommateur - Moteur - - diff --git a/docs/src/common/images/tkemc.png b/docs/src/common/images/tkemc.png deleted file mode 100644 index f5e1f5664bf..00000000000 Binary files a/docs/src/common/images/tkemc.png and /dev/null differ diff --git a/docs/src/common/images/tklinuxcnc_fr.png b/docs/src/common/images/tklinuxcnc_fr.png deleted file mode 100644 index 0206f4e70a8..00000000000 Binary files a/docs/src/common/images/tklinuxcnc_fr.png and /dev/null differ diff --git a/docs/src/common/images/touchy.png b/docs/src/common/images/touchy.png deleted file mode 100644 index 5d60c795415..00000000000 Binary files a/docs/src/common/images/touchy.png and /dev/null differ diff --git a/docs/src/common/images/touchy_fr.png b/docs/src/common/images/touchy_fr.png deleted file mode 100644 index 3dfb78b353e..00000000000 Binary files a/docs/src/common/images/touchy_fr.png and /dev/null differ diff --git a/docs/src/common/images/whatstep1.png b/docs/src/common/images/whatstep1.png deleted file mode 100644 index 6bdc9c32202..00000000000 Binary files a/docs/src/common/images/whatstep1.png and /dev/null differ diff --git a/docs/src/common/outdated-notice_fr.txt b/docs/src/common/outdated-notice_fr.txt deleted file mode 100644 index fcae870ce62..00000000000 --- a/docs/src/common/outdated-notice_fr.txt +++ /dev/null @@ -1,34 +0,0 @@ -[NOTE] -.AVIS -================================================= -La version Française de la documentation de LinuxCNC -est toujours en retard sur l'originale faute de -disponibilité des traducteurs. - -Il est recommandé d'utiliser la documentation -en Anglais chaque fois que possible. - -Si vous souhaitez être un traducteur bénévole -pour la documentation française de LinuxCNC, -merci de nous contactez. -================================================= - -[NOTE] -.NOTICE -================================================= -The French version of the LinuxCNC documentation -is always behind the original fault -availability of translators. - -It's recommended to use the -English documentation whenever possible. - -If you would like to be -a volunteer editor for the -French translation of LinuxCNC, -please contact us. -================================================= - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/common/overleaf.txt b/docs/src/common/overleaf.txt deleted file mode 100644 index 5b173440e7d..00000000000 --- a/docs/src/common/overleaf.txt +++ /dev/null @@ -1,23 +0,0 @@ -This handbook is a work in progress. If you are able to help with -writing, editing, or graphic preparation please contact any member -of the writing team or join and send an email to -emc-users@lists.sourceforge.net. - -Copyright © 2000-2012 LinuxCNC.org - -Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, -Version 1.1 or any later version published by the Free Software -Foundation; with no Invariant Sections, no Front-Cover Texts, and -one Back-Cover Text: This LinuxCNC Handbook is the product of several -authors writing for linuxCNC.org. As you find it to be of value in -your work, we invite you to contribute to its revision and growth. -A copy of the license is included in the section entitled GNU Free -Documentation License. If you do not find the license you may order -a copy from Free Software Foundation, Inc. 59 Temple Place, -Suite 330 Boston, MA 02111-1307 - -LINUX® is the registered trademark of Linus Torvalds in the U.S. and other -countries. The registered trademark Linux® is used pursuant to a sublicense -from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a -world-wide basis. diff --git a/docs/src/common/overleaf_fr.txt b/docs/src/common/overleaf_fr.txt deleted file mode 100644 index 034580821fd..00000000000 --- a/docs/src/common/overleaf_fr.txt +++ /dev/null @@ -1,34 +0,0 @@ -Ce manuel est en évolution permanente. Si vous voulez nous aider à son écriture, -sa rédaction, sa traduction ou la préparation des graphiques, merci de contactez -n'importe quel membre de l'équipe de traduction ou envoyez un courrier -électronique à emc-users@lists.sourceforge.net. - - Copyright © 2000-2012 LinuxCNC.org - - -Permission is granted to copy, distribute and/or modify this document under - the terms of the GNU Free Documentation License, Version 1.3 or any later - version published by the Free Software Foundation; with no Invariant - Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the - license is included in the section entitled - "GNU Free Documentation License".. - If you do not find the license you may order a copy from Free Software - Foundation, Inc. 59 Temple Place, Suite 330 Boston, MA 02111-1307 - -LINUX® is the registered trademark of Linus Torvalds in the U.S. and other -countries. The registered trademark Linux® is used pursuant to a sublicense -from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a -world-wide basis. - -Permission est donnée de copier, distribuer et/ou modifier ce document -selon les termes de la « GNU Free Documentation License », Version 1.3 ou -toute version ultérieure publiée par la « Free Software Foundation »; sans - sections inaltérables, sans texte de couverture ni quatrième de - couverture. Une copie de la licence est incluse dans la section - intitulée « GNU Free Documentation License ». Si vous ne trouvez pas - la licence vous pouvez en commander un exemplaire chez Free Software - Foundation, Inc. 59 Temple Place, Suite 330 Boston, MA 02111-1307 - - (La version de langue anglaise fait foi) - - diff --git a/docs/src/common/python-interface.txt b/docs/src/common/python-interface.txt deleted file mode 100644 index 4f087d5ab8a..00000000000 --- a/docs/src/common/python-interface.txt +++ /dev/null @@ -1,746 +0,0 @@ -= Python Interface - -[[cha:python-interface]] (((Python Interface))) - -:ini: {basebackend@docbook:'':ini} -:hal: {basebackend@docbook:'':hal} -:ngc: {basebackend@docbook:'':ngc} - -This is work in progress by Michael Haberler. Comments, fixes, and -addenda are welcome, especially for PositionLogger (A bit of intent, purpose and usage would help here!) - -== The linuxcnc Python module - -User interfaces control LinuxCNC activity by sending -NML messages to the LinuxCNC task controller, and monitor results by -observing the LinuxCNC status structure, as well as the error reporting channel. - -Programmatic access to NML is through a C++ API; however, the most -important parts of the NML interface to LinuxCNC are also available to -Python programs through the `linuxcnc` module. - -Beyond the NML interface to the command, status and error channels, -the `linuxcnc` module also contains: - -- support for reading values from ini files -- support for position logging (???) - - -== Usage Patterns for the LinuxCNC NML interface - -The general pattern for `linuxcnc` usage is roughly like this: - -- import the `linuxcnc` module -- establish connections to the command, status and error NML channels as needed -- poll the status channel, either periodically or as needed -- before sending a command, determine from status whether it is in - fact OK to do so (for instance, there is no point in sending a 'Run' - command if task is in the ESTOP state, or the interpreter is not - idle) -- send the command by using one of the `linuxcnc` command channel methods - - -To retrieve messages from the error channel, poll the error channel -periodically, and process any messages retrieved. - -- poll the status channel, either periodically or as needed -- print any error message FIXME: explore the exception code - -`linuxcnc` also defines the `error` Python exception type to support error reporting. - -== Reading LinuxCNC status - -Here is a Python fragment to explore the contents of the -`linuxcnc.stat` object which contains some 8ß0+ values (run while -linuxcnc is running for typical values): - -[source,python] ---------------------------------------------------------------------- -import sys -import linuxcnc -try: - s = linuxcnc.stat() # create a connection to the status channel - s.poll() # get current values -except linuxcnc.error, detail: - print "error", detail - sys.exit(1) -for x in dir(s): - if not x.startswith('_'): - print x, getattr(s,x) ---------------------------------------------------------------------- - -Linuxcnc uses the default compiled-in path to the NML configuration -file unless overridden, see <> for an example. - - -=== linuxcnc.stat attributes - -*acceleration* :: '(returns float)' - -default acceleration, reflects the ini entry [TRAJ] DEFAULT_ACCELERATION. - -*active_queue*:: '(returns int)' - -number of motions blending. - -*actual_position*:: '(returns tuple of floats)' - -current trajectory position, (x y z a b c u v w) in machine units. - -*adaptive_feed_enabled*:: '(returns True/False)' - -status of adaptive feedrate override (0/1). - -*ain*:: '(returns tuple of floats)' - -current value of the analog input pins. - -*angular_units*:: '(returns string)' - -reflects [TRAJ] ANGULAR_UNITS ini value. - -*aout*:: '(returns tuple of floats)' - -current value of the analog output pins. - -*axes*:: '(returns string)' - -reflects [TRAJ] AXES ini value. - -*axis*:: '(returns tuple of dicts)' - -reflecting current axis values. See -<>. - -*axis_mask*:: '(returns integer)' - -mask of axis available as defined by [TRAJ] COORDINATES in the ini -file. Returns the sum of the axes X=1, Y=2, Z=4, A=8, B=16, C=32, U=64, -V=128, W=256. - -*block_delete*:: '(returns integer)' - -block delete currently on/off. - -*command*:: '(returns string)' - -currently executing command. - -*current_line*:: '(returns integer)' - -currently executing line, int. - -*current_vel*:: '(returns float)' - -current velocity in Cartesian space. - -*cycle_time*:: '(returns string)' - -reflects [TRAJ] CYCLE_TIME ini value (FIXME is this right?). - -*debug*:: '(returns integer)' - -debug flag. - -*delay_left*:: '(returns float)' - -remaining time on dwell (G4) command, seconds. - -*din*:: '(returns tuple of integers)' - -current value of the digital input pins. - -*distance_to_go*:: '(returns float)' - -remaining distance of current move, as reported by trajectory planner, in Cartesian space. - -*dout*:: '(returns tuple of integers)' - -current value of the digital output pins. - -*dtg*:: '(returns tuple of 9 floats)' - -remaining distance of current move, as reported by trajectory planner. - -*echo_serial_number*:: '(returns integer)' - -The serial number of the last completed command sent by a UI -to task. All commands carry a serial number. Once the command -has been executed, its serial number is reflected in -`echo_serial_number`. - -*enabled*:: '(returns integer)' - -trajectory planner enabled flag. - -*estop*:: '(returns integer)' - -estop flag. - -*exec_state*:: '(returns integer)' - -task execution state. One of EXEC_ERROR, EXEC_DONE, -EXEC_WAITING_FOR_MOTION, EXEC_WAITING_FOR_MOTION_QUEUE, -EXEC_WAITING_FOR_PAUSE,EXEC_WAITING_FOR_MOTION_AND_IO, -EXEC_WAITING_FOR_DELAY, EXEC_WAITING_FOR_SYSTEM_CMD. - -*feed_hold_enabled*:: '(returns integer)' - -enable flag for feed hold. - -*feed_override_enabled*:: '(returns integer)' - -enable flag for feed override. - -*feedrate*:: '(returns float)' - -current feedrate override. - -*file*:: '(returns string)' - -currently executing gcode file. - -*flood*:: '(returns integer)' - -flood enabled. - -*g5x_index*:: '(returns string)' - -currently active coordinate system, G54=0, G55=1 etc. - -*g5x_offset*:: '(returns tuple of floats)' - -offset of the currently active coordinate system. - -*g92_offset*:: '(returns tuple of floats)' - -pose of the current g92 offset. - -*gcodes*:: '(returns tuple of 16 integers)' - -currently active G-codes. - -*homed*:: '(returns integer)' - -flag. 1 if homed. - -*id*:: '(returns integer)' - -currently executing motion id. - -*inpos*:: '(returns integer)' - -machine-in-position flag. - -*input_timeout*:: '(returns integer)' - -flag for M66 timer in progress. - -*interp_state*:: '(returns integer)' - -current state of RS274NGC interpreter. One of -INTERP_IDLE, INTERP_READING, INTERP_PAUSED, INTERP_WAITING. - -*interpreter_errcode*:: '(returns integer)' - -current RS274NGC interpreter return code. One of -INTERP_OK, INTERP_EXIT, INTERP_EXECUTE_FINISH, INTERP_ENDFILE, -INTERP_FILE_NOT_OPEN, INTERP_ERROR. -see src/emc/nml_intf/interp_return.hh - -*joint_actual_position*:: '(returns tuple of floats)' - -actual joint positions. - -*joint_position*:: '(returns tuple of floats)' - -Desired joint positions. - -*kinematics_type*:: '(returns integer)' - -identity=1, serial=2, parallel=3, custom=4 . - -*limit*:: '(returns tuple of integers)' - -axis limit masks. minHardLimit=1, -maxHardLimit=2, minSoftLimit=4, maxSoftLimit=8. - -*linear_units*:: '(returns string)' - -reflects [TRAJ]LINEAR_UNITS ini value. - -*lube*:: '(returns integer)' - -'lube on' flag. - -*lube_level*:: '(returns integer)' - -reflects 'iocontrol.0.lube_level'. - -*max_acceleration*:: '(returns float)' - -maximum acceleration. reflects [TRAJ] MAX_ACCELERATION. - -*max_velocity*:: '(returns float)' - -maximum velocity. reflects [TRAJ] MAX_VELOCITY. - -*mcodes*:: '(returns tuple of 10 integers)' - -currently active M-codes. - -*mist*:: '(returns integer)' - -'mist on' flag. - -*motion_line*:: '(returns integer)' - -source line number motion is currently executing. Relation -to `id` unclear. - -*motion_mode*:: '(returns integer)' - -motion mode. - -*motion_type*:: '(returns integer)' - -trajectory planner mode. One of TRAJ_MODE_COORD, -TRAJ_MODE_FREE, TRAJ_MODE_TELEOP. - -*optional_stop*:: '(returns integer)' - -option stop flag. - -*paused*:: '(returns integer)' - -`motion paused` flag. - -*pocket_prepped*:: '(returns integer)' - -A Tx command completed, and this pocket is prepared. -1 if no -prepared pocket. - -*poll()*:: - -method to update current status attributes. - -*position*:: '(returns tuple of floats)' - -trajectory position. - -*probe_tripped*:: '(returns integer)' - -flag, true if probe has tripped (latch) - -*probe_val*:: '(returns integer)' - -reflects value of the `motion.probe-input` pin. - -*probed_position*:: '(returns tuple of floats)' - -position where probe tripped. - -*probing*:: '(returns integer)' - -flag, 1 if a probe operation is in progress. - -*program_units*:: '(returns integer)' - -one of CANON_UNITS_INCHES=1, CANON_UNITS_MM=2, CANON_UNITS_CM=3 - -*queue*:: '(returns integer)' - -current size of the trajectory planner queue. - -*queue_full*:: '(returns integer)' - -the trajectory planner queue is full. - -*read_line*:: '(returns integer)' - -line the RS274NGC interpreter is currently reading. - -*rotation_xy*:: '(returns float)' - -current XY rotation angle around Z axis. - -*settings*:: '(returns tuple of 3 floats)' - -current interpreter settings. settings[0] = -sequence number, settings[1] = feed rate, settings[2] = speed. - -*spindle_brake*:: '(returns integer)' - -value of the spindle brake flag. - -*spindle_direction*:: '(returns integer)' - -rotational direction of the spindle. forward=1, reverse=-1. - -*spindle_enabled*:: '(returns integer)' - -value of the spindle enabled flag. - -*spindle_increasing*:: '(returns integer)' - -unclear. - -*spindle_override_enabled*:: '(returns integer)' - -value of the spindle override enabled flag. - -*spindle_speed*:: '(returns float)' - -spindle speed value, rpm, > 0: clockwise, < 0: -counterclockwise. - -*spindlerate*:: '(returns float)' - -spindle speed override scale. - -*state*:: '(returns integer)' - -current command execution status. One of RCS_DONE, -RCS_EXEC, RCS_ERROR. - -*task_mode*:: '(returns integer)' - -current task mode. one of MODE_MDI, MODE_AUTO, -MODE_MANUAL. - -*task_paused*:: '(returns integer)' - -task paused flag. - -*task_state*:: '(returns integer)' - -current task state. one of STATE_ESTOP, -STATE_ESTOP_RESET, STATE_ON, STATE_OFF. - -*tool_in_spindle*:: '(returns integer)' - -current tool number. - -*tool_offset*:: '(returns tuple of floats)' - -offset values of the current tool. - -*tool_table*:: '(returns tuple of tool_results)' - -list of tool entries. Each entry is a sequence of the following fields: -id, xoffset, yoffset, zoffset, aoffset, boffset, coffset, uoffset, voffset, -woffset, diameter, frontangle, backangle, orientation. The id and orientation -are integers and the rest are floats. - -*velocity*:: '(returns float)' - -default velocity. reflects [TRAJ] DEFAULT_VELOCITY. - -=== The `axis` dictionary [[sec:The-Axis-dictionary]] - -The axis configuration and status values are available through a list -of per-axis dictionaries. Here's an example how to access an attribute -of a particular axis: - -[source,python] ---------------------------------------------------------------------- -import linuxcnc -s = linuxcnc.stat() -s.poll() -print 'Axis 1 homed: ', s.axis[1]['homed'] ---------------------------------------------------------------------- - -For each axis, the following dictionary keys are available: - -*axisType*:: '(returns integer)' - -type of axis configuration parameter, reflects -[AXIS_x]TYPE. LINEAR=1, ANGULAR=2. See <> for details. - -*backlash*:: '(returns float)' - -Backlash in machine units. configuration parameter, reflects [AXIS_x]BACKLASH. - -*enabled*:: '(returns integer)' - -non-zero means enabled. - -*fault*:: '(returns integer)' - -non-zero means axis amp fault. - -*ferror_current*:: '(returns float)' - -current following error. - -*ferror_highmark*:: '(returns float)' - -magnitude of max following error. - -*homed*:: '(returns integer)' - -non-zero means has been homed. - -*homing*:: '(returns integer)' - -non-zero means homing in progress. - -*inpos*:: '(returns integer)' - -non-zero means in position. - -*input*:: '(returns float)' - -current input position. - -*max_ferror*:: '(returns float)' - -maximum following error. configuration -parameter, reflects [AXIS_x]FERROR. - -*max_hard_limit*:: '(returns integer)' - -non-zero means max hard limit exceeded. - -*max_position_limit*:: '(returns float)' - -maximum limit (soft limit) for axis motion, in machine units.configuration -parameter, reflects [AXIS_x]MAX_LIMIT. - -*max_soft_limit*:: -non-zero means `max_position_limit` was exceeded, int - -*min_ferror*:: '(returns float)' - -configuration parameter, reflects [AXIS_x]MIN_FERROR. - -*min_hard_limit*:: '(returns integer)' - -non-zero means min hard limit exceeded. - -*min_position_limit*:: '(returns float)' - -minimum limit (soft limit) for axis motion, in machine units.configuration -parameter, reflects [AXIS_x]MIN_LIMIT. - -*min_soft_limit*:: '(returns integer)' - -non-zero means `min_position_limit` was exceeded. - -*output*:: '(returns float)' - -commanded output position. - -*override_limits*:: '(returns integer)' - -non-zero means limits are overridden. - -*units*:: '(returns float)' - -units per mm, deg for linear, angular - -*velocity*:: '(returns float)' - -current velocity. - -== Preparing to send commands - -Some commands can always be sent, regardless of mode and state; for -instance, the `linuxcnc.command.abort()` method can always be called. - -Other commands may be sent only in appropriate state, and those tests -can be a bit tricky. For instance, an MDI command can be sent only if: - -- ESTOP has not been triggered, and -- the machine is turned on and -- the axes are homed and -- the interpreter is not running and -- the mode is set to `MDI mode` - -so an appropriate test before sending an MDI command through -`linuxcnc.command.mdi()` could be: - -[source,python] ---------------------------------------------------------------------- -import linuxcnc -s = linuxcnc.stat() -c = linuxcnc.command() - -def ok_for_mdi(): - s.poll() - return not s.estop and s.enabled and s.homed and (s.interp_state == linuxcnc.INTERP_IDLE) - -if ok_for_mdi(): - c.mode(linuxcnc.MODE_MDI) - c.wait_complete() # wait until mode switch executed - c.mdi("G0 X10 Y20 Z30") ---------------------------------------------------------------------- - -== Sending commands through `linuxcnc.command` - -Before sending a command, initialize a command channel like so: - -[source,python] ---------------------------------------------------------------------- -import linuxcnc -c = linuxcnc.command() - -# Usage examples for some of the commands listed below: -c.abort() - -c.auto(linuxcnc.AUTO_RUN, program_start_line) -c.auto(linuxcnc.AUTO_STEP) -c.auto(linuxcnc.AUTO_PAUSE) -c.auto(linuxcnc.AUTO_RESUME) - -c.brake(linuxcnc.BRAKE_ENGAGE) -c.brake(linuxcnc.BRAKE_RELEASE) - -c.flood(linuxcnc.FLOOD_ON) -c.flood(linuxcnc.FLOOD_OFF) - -c.home(2) - -c.jog(linuxcnc.JOG_STOP, axis) -c.jog(linuxcnc.JOG_CONTINUOUS, axis, speed) -c.jog(linuxcnc.JOG_INCREMENT, axis, speed, increment) - -c.load_tool_table() - -c.maxvel(200.0) - -c.mdi("G0 X10 Y20 Z30") - -c.mist(linuxcnc.MIST_ON) -c.mist(linuxcnc.MIST_OFF) - -c.mode(linuxcnc.MODE_MDI) -c.mode(linuxcnc.MODE_AUTO) -c.mode(linuxcnc.MODE_MANUAL) - -c.override_limits() - -c.program_open("foo.ngc") -c.reset_interpreter() - -c.tool_offset(toolno, z_offset, x_offset, diameter, frontangle, backangle, orientation) ---------------------------------------------------------------------- -=== `linuxcnc.command` attributes - -`serial`:: - the current command serial number - -=== `linuxcnc.command` methods: - -`abort()`:: - send EMC_TASK_ABORT message. - -`auto(int[, int])`:: - run, step, pause or resume a program. - -`brake(int)`:: - engage or release spindle brake. - -`debug(int)`:: - set debug level via EMC_SET_DEBUG message. - -`feedrate(float)`:: - set the feedrate. - -`flood(int)`:: - turn on/off flooding. - -`home(int)`:: - home a given axis. - -`jog(int, int, [, int[,int]])`:: - Syntax: + - jog(command, axis[, velocity[, distance]]) + - jog(linuxcnc.JOG_STOP, axis) + - jog(linuxcnc.JOG_CONTINUOUS, axis, velocity) + - jog(linuxcnc.JOG_INCREMENT, axis, velocity, distance) + - Constants: + - JOG_STOP (0) + - JOG_CONTINUOUS (1) + - JOG_INCREMENT (2) - -`load_tool_table()`:: - reload the tool table. - -`maxvel(float)`:: - set maximum velocity - -`mdi(string)`:: - send an MDI command. Maximum 255 chars. - -`mist(int)`:: turn on/off mist. + - Syntax: + - mist(command) + - mist(linuxcnc.MIST_ON) [(1)] + - mist(linuxcnc.MIST_OFF) [(0)] + - Constants: + - MIST_ON (1) + - MIST_OFF (0) - - -`mode(int)`:: - set mode (MODE_MDI, MODE_MANUAL, MODE_AUTO). - -`override_limits()`:: - set the override axis limits flag. - -`program_open(string)`:: - open an NGC file. - -`reset_interpreter()`:: - reset the RS274NGC interpreter - -`set_adaptive_feed(int)`:: - set adaptive feed flag - -`set_analog_output(int, float)`:: - set analog output pin to value - -`set_block_delete(int)`:: - set block delete flag - -`set_digital_output(int, int)`:: - set digital output pin to value - -`set_feed_hold(int)`:: - set feed hold on/off - -`set_feed_override(int)`:: - set feed override on/off - -`set_max_limit(int, float)`:: - set max position limit for a given axis - -`set_min_limit()`:: - set min position limit for a given axis - -`set_optional_stop(int)`:: - set optional stop on/off - -`set_spindle_override(int)`:: - set spindle override flag - -`spindle(int)`:: - set spindle direction. Argument one of SPINDLE_FORWARD, - SPINDLE_REVERSE, SPINDLE_OFF, SPINDLE_INCREASE, - SPINDLE_DECREASE, or SPINDLE_CONSTANT. - -`spindleoverride(float)`:: - set spindle override factor - -`state(int)`:: - set the machine state. Machine state should be STATE_ESTOP, STATE_ESTOP_RESET, STATE_ON, or STATE_OFF - -`teleop_enable(int)`:: - enable/disable teleop mode. - -`teleop_vector(float, float, float [,float, float, float])`:: - set teleop destination vector - -`tool_offset(int, float, float, float, float, float, int)`:: - set the tool offset. See usage example above. - -`traj_mode(int)`:: - set trajectory mode. Mode is one of MODE_FREE, MODE_COORD, or - MODE_TELEOP. - -`unhome(int)`:: - unhome a given axis. - -`wait_complete([float])`:: - wait for completion of the last command sent. If timeout in - seconds not specified, default is 1 second. - - -== Reading the error channel - -To handle error messages, connect to the error channel and -periodically poll() it. - -Note that the NML channel for error messages has a queue (other than -the command and status channels), which means -that the first consumer of an error message deletes that message from -the queue; whether your another error message consumer (e.g. Axis) -will 'see' the message is dependent on timing. It is recommended to have just -one error channel reader task in a setup. - - -[source,python] ---------------------------------------------------------------------- -import linuxcnc -e = linuxcnc.error_channel() - -error = e.poll() - -if error: - kind, text = error - if kind in (linuxcnc.NML_ERROR, linuxcnc.OPERATOR_ERROR): - typus = "error" - else: - typus = "info" - print typus, text ---------------------------------------------------------------------- - - -== Reading ini file values [[sec:Python-reading-ini-values]] - -Here's an example for reading values from an ini file through the -`linuxcnc.ini` object: - -[source,python] ---------------------------------------------------------------------- -# run as: -# python ini-example.py ~/emc2-dev/configs/sim/axis/axis_mm.ini - -import sys -import linuxcnc - -inifile = linuxcnc.ini(sys.argv[1]) - -# inifile.find() returns None if the key wasnt found - the -# following idiom is useful for setting a default value: - -machine_name = inifile.find('EMC', 'MACHINE') or "unknown" -print "machine name: ", machine_name - -# inifile.findall() returns a list of matches, or an empty list -# if the key wasnt found: - -extensions = inifile.findall("FILTER", "PROGRAM_EXTENSION") -print "extensions: ", extensions - -# override default NML file by ini parameter if given -nmlfile = inifile.find("EMC", "NML_FILE") -if nmlfile: - linuxcnc.nmlfile = os.path.join(os.path.dirname(sys.argv[1]), nmlfile) ---------------------------------------------------------------------- - -== The `linuxcnc.positionlogger` type - -Some usage hints can be gleaned from -`src/emc/usr_intf/gremlin/gremlin.py`. - - -=== members - -`npts`:: - number of points. - -=== methods -`start(float)`:: - start the position logger and run every ARG seconds - -`clear()`:: - clear the position logger - -`stop()`:: - stop the position logger - -`call()`:: - Plot the backplot now. - -`last([int])`:: - Return the most recent point on the plot or None -, diff --git a/docs/src/common/starting-emc.txt b/docs/src/common/starting-emc.txt deleted file mode 100644 index 87ac541f4e0..00000000000 --- a/docs/src/common/starting-emc.txt +++ /dev/null @@ -1,226 +0,0 @@ -= Starting LinuxCNC - -[[cha:starting-linuxcnc]] (((Starting LinuxCNC))) - -== Running LinuxCNC - -LinuxCNC is started with the script file 'linuxcnc'. - ----- -linuxcnc [options] [] ----- - -.linuxcnc script options -* '-v' = verbose - prints info as it works -* '-d' = echoes script commands to screen for debugging - -If the linuxcnc script is passed an ini file it reads the ini file and starts -LinuxCNC. The ini file [HAL] section specifies the order of loading up HAL -files if more than one is used. Once the HAL=xxx.hal files are loaded then the -GUI is loaded then the POSTGUI=.xxx.hal file is loaded. If you create PyVCP or -GladeVCP objects with HAL pins you must use the postgui HAL file to make any -connections to those pins. See the <> section of the -INI configuration for more information. - -[float] -=== [[sub:configuration-selector]] Configuration Selector - -If no ini file is passed to the linuxcnc script it loads the configuration -selector so you can choose and save a sample configuration. Once a sample -configuration has been saved it can be modified to suit your application. - -[[fig:configuration-selector]] - -.Configuration Selector - -image::images/configuration-selector.png[align="center"] - -== Files Used for Configuration - -LinuxCNC is configured with human readable text files. All of these -files can be read and edited in any of the common text file editors -available with most any Linux distribution.footnote:[Don't confuse a -text editor with a word processor. A text editor like -gedit or kwrite produce files that are plain text. They also produce -lines of text that are separated from each other. A word processor like -Libre Office produces files with paragraphs and word wrapping and lots of -embedded codes that control font size and such. A text editor does none -of this.] You'll need to be a bit careful when you edit these files. Some -mistakes will cause the start up to fail. These files are read whenever -the software starts up. Some of them are read repeatedly while the CNC -is running. - -Configuration files include - -* 'INI' (((INI))) The ini file overrides defaults that are compiled into the - LinuxCNC code. It also provides sections that are read directly by the - Hardware Abstraction Layer. - -* 'HAL' (((HAL))) The HAL files start up process modules and provide linkages - between LinuxCNC signals and specific hardware pins. - -* 'VAR' (((VAR))) The var file is a way for the interpreter to save some - values from one run to the next. These values are saved from one run to - another but not always saved immediately. See the Parameters section of - the G Code Manual for information on what each parameter is. - -* 'TBL' (((TBL))) The tbl file saves tool information. See the User Manual - Tool File section for more info. - -* 'NML' (((NML))) The nml file configures the communication channels used by - the LinuxCNC. It is normally setup to run all of the communication within a - single computer but can be modified to communicate between several - computers. - -* 'linuxcncrc' (((.linuxcncrc))) This file saves user specific information and is created - to save the name of the directory when the user first selects an LinuxCNC - configuration.footnote:[Usually this file is in the users home - directory (e.g. /home/user/ )] - -Items marked *(in HAL)* are used by the sample HAL files and are -suggested as a good convention. -Other items are used by LinuxCNC directly, and must always have -the section and item names given. - -== TWOPASS - -LinuxCNC 2.5 supports TWOPASS processing of hal configuration files -that can help in the modularization and readability of hal files. -(Hal files are specified in an LinuxCNC ini file in the HAL stanza -as [HAL]HALFILE=filename). - -Normally, a set of one or more hal configuration files must use -a single, unique loadrt line to load a kernel module that may -handle multiple instances of a component. For example, if you -use a two input AND gate component (and2) in three different -places in your setup, you would need to have a single line -somewhere to specify: - ----- - loadrt and2 count=3 ----- - -resulting in components and2.0, and2.1, and2.2. - -Configurations are more readable if you specify with the -names=option for components where it is supported, e.g.,: - ----- -loadrt and2 names=aa,ab,ac ----- - -resulting in components aa,ab,ac. - -It can be a maintenance problem to keep track of the components -and their names since when you add (or remove) a component, you -must find and update the single loadrt directive applicable to -the component. - -TWOPASS processing is enabled by including an ini file parameter in -the [HAL] section: - ----- -[HAL] - -TWOPASS = anystring ----- - -Where "anystring" can be any non-null string. -With this setting, you can have multiple specifications like: - ----- -loadrt and2 names=aa -... -loadrt and2 names=ab,ac -... -loadrt and2 names=ad ----- - -These commands can appear in different HALFILES. The HALFILES -are processed in the order of their appearance in the ini file. - -The TWOPASS option can be specified with options to add output for -debugging (verbose) and to prevent deletion of temporary files (nodelete). -The options are separated with commas. - -Example: - ----- -[HAL] - -TWOPASS = on,verbose,nodelete ----- - - -With TWOPASS processing, all [HAL]HALFILES are first read and -multiple appearances of loadrt directives for each module are -accumulated. No hal commands are executed in this initial pass. - -After the initial pass, the modules are loaded automatically -with a number equal to the total number when using the count= -option or with all of the individual names specified when using -the names= option. - -A second pass is then made to execute all of the other hal -instructions specified in the HALFILES. The addf commands that -associate a component's functions with thread execution are -executed in the order of appearance with other commands during -this second pass. - -While you can use either the count= or names= options, they are -mutually exclusive -- only one type can be specified for a -given module. - -TWOPASS processing is most effective when using the names= -option. This option allows you to provide unique names that -are mnemonic or otherwise relevant to the configuration. For -example, if you use a derivative component to estimate the -velocities and accelerations on each (x,y,z) coordinate, using -the count= method will give arcane component names like ddt.0, -ddt.1, ddt.2, etc. - -Alternatively, using the names= option like: - ----- -loadrt ddt names=xvel,yvel,zvel -... -loadrt ddt names=xacel,yacel,zacel ----- - -results in components sensibly named xvel,yvel,zvel, xacel,yacel,zacel. - -Many comps supplied with the distribution are created with the -comp utility and support the names= option. These include the -common logic components that are the glue of many hal configurations. - -User-created comps that use the comp utility automatically -support the names= option as well. In addition to comps generated -with the comp utility, numerous other comps support the names=option. -Comps that support names= option include: at_pid, encoder, -encoder_ratio, pid, siggen, and sim_encoder. - -Twopass processing occurs before the loading of a gui. When using a -[HAL]POSTGUI_HALFILE, it is convenient to place all the loadrt -statements for components needed in a halfile that is loaded earlier. - -Example of a HAL section when using a POSTGUI_HALFILE : ----- -[HAL] - -TWOPASS = on -HALFILE = core_sim.hal -HALFILE = sim_spindle_encoder.hal -HALFILE = axis_manualtoolchange.hal -HALFILE = simulated_home.hal -HALFILE = load_for_postgui.hal <-- loadrt lines for components in postgui.hal - -POSTGUI_HALFILE = postgui.hal -HALUI = halui - ----- - -Examples of TWOPASS usage for a simulator are included in the directories: - - configs/sim/axis/twopass/ - - configs/sim/axis/simtcl/ diff --git a/docs/src/common/starting-emc_es.txt b/docs/src/common/starting-emc_es.txt deleted file mode 100644 index 1584c94b54e..00000000000 --- a/docs/src/common/starting-emc_es.txt +++ /dev/null @@ -1,184 +0,0 @@ -= Starting LinuxCNC - -[[cha:starting-linuxcnc]] (((Starting LinuxCNC))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Files - -LinuxCNC is started with the script file emc. - ----- -usage: emc [options] [] - -options: - -v = verbose - prints info as it works - -d = echos script commands to screen for debugging ----- - -The emc script file reads the ini file and starts emc. The ini file -[HAL] section specifies the order of loading up HAL files if more than -one is used. Once the HAL=xxx.hal files are loaded then the GUI is loaded -then the POSTGUI=.xxx.hal file is loaded. If you create pyvcp objects -with HAL pins you must use the postgui HAL file to make any connections -to those pins. - -If no ini file is passed to the emc script it loads the configuration -selector so you can choose a sample configuration. - -== Files Used for Configuration - -LinuxCNC is configured with human readable text files. All of these -files can be read and edited in any of the common text file editors -available with most any Linux distribution.footnote:[Don't confuse a -text editor with a word processor. A text editor like -gedit or kwrite produce files that are plain text. They also produce -lines of text that are separated from each other. A word processor like -Libre Office produces files with paragraphs and word wrapping and lots of -embedded codes that control font size and such. A text editor does none -of this.] You'll need to be a bit careful when you edit these files. Some -mistakes will cause the start up to fail. These files are read whenever -the software starts up. Some of them are read repeatedly while the CNC -is running. - -Configuration files include - -* 'INI' (((INI))) The ini file overrides defaults that are compiled into the - LinuxCNC code. It also provides sections that are read directly by the - Hardware Abstraction Layer. - -* 'HAL' (((HAL))) The HAL files start up process modules and provide linkages - between LinuxCNC signals and specific hardware pins. - -* 'VAR' (((VAR))) The var file is a way for the interpreter to save some - values from one run to the next. These values are saved from one run to - another but not always saved immediately. See the Parameters section of - the G Code Manual for information on what each parameter is. - -* 'TBL' (((TBL))) The tbl file saves tool information. See the User Manual - Tool File section for more info. - -* 'NML' (((NML))) The nml file configures the communication channels used by - the LinuxCNC. It is normally setup to run all of the communication within a - single computer but can be modified to communicate between several - computers. - -* 'emcrc' (((.emcrc))) This file saves user specific information and is created - to save the name of the directory when the user first selects an LinuxCNC - configuration.footnote:[Usually this file is in the users home - directory (e.g. /home/user/ )] - -Items marked *(in HAL)* are used by the sample HAL files and are -suggested as a good convention. -Other items are used by LinuxCNC directly, and must always have -the section and item names given. - -== TWOPASS - -LinuxCNC 2.5 supports TWOPASS processing of hal configuration files -that can help in the modularization and readability of hal files. -(Hal files are specified in an LinuxCNC ini file in the HAL stanza -as [HAL]HALFILE=filename). - -Normally, a set of one or more hal configuration files must use -a single, unique loadrt line to load a kernel module that may -handle multiple instances of a component. For example, if you -use a two input AND gate component (and2) in three different -places in your setup, you would need to have a single line -somewhere to specify: - ----- - loadrt and2 count=3 ----- - -resulting in components and2.0, and2.1, and2.2. - -Configurations are more readable if you specify with the -names=option for components where it is supported, e.g.,: - ----- -loadrt and2 names=aa,ab,ac ----- - -resulting in components aa,ab,ac. - -It can be a maintenance problem to keep track of the components -and their names since when you add (or remove) a component, you -must find and update the single loadrt directive applicable to -the component. - -TWOPASS processing is enabled by including an ini file parameter: - ----- -[HAL]TWOPASS=anything ----- - -With this setting, you can have multiple specifications like: - ----- -loadrt and2 names=aa -... -loadrt and2 names=ab,ac -... -loadrt and2 names=ad ----- - -These commands can appear in different HALFILES. The HALFILES -are processed in their order of ther appearance in the ini file. - -With TWOPASS processing, all [HAL]HALFILES are first read and -multiple appearances of loadrt directives for each module are -accumulated. No hal commands are executed in this initial pass. - -After the initial pass, the modules are loaded automatically -with a number equal to the total number when using the count= -option or with all of the individual names specified when using -the names= option. - -A second pass is then made to execute all of the other hal -instructions specified in the HALFILES. The addf commands that -associate a component's functions with thread execution are -executed in the order of appearance with other commands during -this second pass. - -While you can use either the count= or names= options, they are -mutually exclusive only one type can be specified for a -given module. - -TWOPASS processing is most effective when using the names= -option. This option allows you to provide unique names that -are mnemonic or otherwise relevant to the configuration. For -example, if you use a derivative component to estimate the -velocities and accelerations on each (x,y,z) coordinate, using -the count= method will give arcane component names like ddt.0, -ddt.1, ddt.2, etc. - -Alternatively, using the names= option like: - ----- -loadrt ddt names=xvel,yvel,zvel -... -loadrt ddt names=xacel,yacel,zacel ----- - -results in components sensibly named xvel,yvel,zvel, xacel,yacel,zacel. - -Many comps supplied with the distribution are created with the -comp utility and support the names= option. These include the -common logic components that are the glue of many hal configurations. - -User-created comps that use the comp utility automatically -support the names= option as well. In addition to comps generated -with the comp utility, a few others comps like the encoder and -pid also support the names=option. diff --git a/docs/src/common/translator-needed_es.txt b/docs/src/common/translator-needed_es.txt deleted file mode 100644 index 24d30a97e8a..00000000000 --- a/docs/src/common/translator-needed_es.txt +++ /dev/null @@ -1,31 +0,0 @@ -[NOTE] -.AVISO -================================================= -Debido a un reciente aumento de interés -en otras traducciones, -el equipo de EMC2 ha comenzado recientemente a este esfuerzo -para entregar un Traducción al español de la documentación de EMC2. - -Si a usted le gustaría ser -un editor voluntario de la -Traducción al español de EMC2, -por favor póngase en contacto con nosotros. -================================================= - -[NOTE] -.NOTICE -================================================= -Because of a recent increase in interest -in other translations, -the EMC2 team has recently begun this effort -to deliver a Spanish Translation of the EMC2 documentation. - -If you would like to be -a volunteer editor for the -Spanish translation of EMC2, -please contact us. -================================================= - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/common/user_intro.txt b/docs/src/common/user_intro.txt deleted file mode 100644 index 9dd2484c2de..00000000000 --- a/docs/src/common/user_intro.txt +++ /dev/null @@ -1,180 +0,0 @@ -= LinuxCNC User Introduction - -[[cha:linuxcnc-user-introduction]] (((LinuxCNC User Introduction))) - -== This Manual - -The focus of this manual is on 'using' LinuxCNC. It is intended to be used -once LinuxCNC is installed and configured. For standard installations see -the Getting Started Guide for step by step instructions to get you up -and going. For detailed information on installation and configuration -of LinuxCNC see the Integrator Manual. - -== How LinuxCNC Works[[how-LinuxCNC-works]] - -The Enhanced Machine Controller (LinuxCNC) is a lot more than just another -CNC mill program. It can control machine tools, robots, or -other automated devices. It can control servo motors, stepper motors, -relays, and other devices related to machine tools. - -There are four main components to the LinuxCNC software: - -* a motion controller (EMCMOT) -* a discrete I/O controller (EMCIO) -* a task executor which coordinates them (EMCTASK) -* and one of several graphical user interfaces. - -In addition there is a layer called HAL (Hardware Abstraction Layer) -which allows configuration of LinuxCNC without the need of recompiling. - -.Simple LinuxCNC Controlled Machine[[fig:Typical_machine]] - -image::images/whatstep1.png[align="center"] - -The above figure shows a simple block diagram showing -what a typical 3-axis LinuxCNC system might look like. This diagram shows a -stepper motor system. The PC, running Linux(((Linux))) as its operating -system, is actually controlling the stepper motor drives by sending -signals through the printer port. These signals (pulses) make the -stepper drives move the stepper motors. The LinuxCNC system can also run servo -motors via servo interface cards or by using an extended parallel port -to connect with external control boards. As we examine each of the -components that make up an LinuxCNC system we will remind the reader of -this typical machine. - -== Graphical User Interfaces[[sub:Graphical-User-Interfaces]] - -A user interface is the part of the LinuxCNC that the machine tool -operator interacts with. The LinuxCNC comes with several types of user -interfaces: - -* <>, the standard GUI interface. - -.Axis GUI[[fig:The-Axis-GUI]] - -image::images/axis-2.5.png[align="center"] - -* <>, a touch screen GUI. - -.Touchy GUI[[fig:touchy-gui]] - -image::images/touchy.png[align="center"] - -* <>, a subroutine GUI that provides 'fill in the blanks' - programming of G code. It also supports concatenation of subroutine files - to enable you to build a complete G code file without programming. - -.NGCGUI GUI embedded into Axis[[fig:ngcgui-gui]] - -image::images/ngcgui.png[align="center"] - -* <>, a Tcl/Tk-based GUI - -.The Mini GUI[[fig:The-Mini-GUI]] - -image::images/mini.png[align="center"] - -* <>, a Tcl/Tk-based GUI - -.The TkLinuxCNC GUI[[fig:The-TkLinuxCNC-GUI]] - -image::images/tkemc.png[align="center"] - -* <>, a character-based screen graphics program - suitable for minimal installations (without the X server running). - -.The Keystick GUI[[fig:The-Keystick-GUI]] - -image::images/keystick.png[align="center"] - - -* 'Xemc', an X-Windows program. A simulator configuration of Xemc can be - ran from the configuration picker. - -* 'halui' - a HAL based user interface which allows to control LinuxCNC - using knobs and switches. See the Integrators manual for more information - on halui. - -* 'linuxcncrsh' - a telnet based user interface which allows commands to - be sent to LinuxCNC from remote computers. - -== Virtual Control Panels - -* 'PyVCP' a python based virtual control panel that can be added to the - Axis GUI or be stand alone. - -.PyVCP with Axis[[fig:pyvcp-with-axis]] - -image::images/axis-pyvcp.png[align="center"] - -* 'GladeVCP' - a glade based virtual control panel that can be added to - the Axis GUI or be stand alone. - -.GladeVCP with Axis[[fig:gladevcp-with-axis]] - -image::images/axis-gladevcp.png[align="center"] - -See the Integrators manual for more information on Virtual Control Panels. - -== Languages - -LinuxCNC uses translation files to translate LinuxCNC User Interfaces into many -languages. You just need to log in with the language you intend to use -and when you start up LinuxCNC it comes up in that language. If your -language has not been translated contact a developer on the IRC or the -mailing list if you can assist in the translation. - -== Thinking Like a Machine Operator[[sec:Thinking-Operator]] - -This book will not even pretend that it can teach you to run a mill or -a lathe. Becoming a machinist takes time and hard work. An author once -said, "We learn from experience, if at all." Broken tools, gouged -vices, and scars are the evidence of lessons taught. Good part finish, -close tolerances, and careful work are the evidence of lessons learned. -No machine, no computer program, can take the place of human -experience. - -As you begin to work with the LinuxCNC program, you will need to place -yourself in the position of operator. You need to think of yourself in -the role of the one in charge of a machine. It is a machine that is -either waiting for your command or executing the command that you have -just given it. Throughout these pages we will give information that -will help you become a good operator of the LinuxCNC system. You will need -some information right up front here so that the following pages will -make sense to you. - -== Modes of Operation[[sub:Modes-of-Operation]] - -When LinuxCNC is running, there are three different major modes used -for inputting commands. These are 'Manual', 'Auto', -and 'MDI'. Changing from one mode to another makes a big -difference in the way that the LinuxCNC control behaves. There are specific things -that can be done in one mode that cannot be done in another. An -operator can home an axis in manual mode but not in auto or MDI modes. -An operator can cause the machine to execute a whole file full of -G-codes in the auto mode but not in manual or MDI. - -In manual mode, each command is entered separately. In human terms a -manual command might be 'turn on coolant' or 'jog X at 25 inches per -minute'. These are roughly equivalent to flipping a switch or turning -the hand wheel for an axis. These commands are normally handled on one -of the graphical interfaces by pressing a button with the mouse or -holding down a key on the keyboard. In auto mode, a similar button or -key press might be used to load or start the running of a whole program -of G-code that is stored in a file. In the MDI mode the operator might -type in a block of code and tell the machine to execute it by pressing -the or key on the keyboard. - -Some motion control commands are available and will cause the same -changes in motion in all modes. These include 'abort', -'estop', and 'feed rate override'). -Commands like these should be self explanatory. - -The AXIS user interface hides some of the distinctions between Auto -and the other modes by making Auto-commands available at most times. It -also blurs the distinction between Manual and MDI because some Manual -commands like Touch Off are actually implemented by sending MDI -commands. It does this by automatically changing to the mode that is -needed for the action the user has requested. - - diff --git a/docs/src/common/user_intro_es.txt b/docs/src/common/user_intro_es.txt deleted file mode 100644 index b0490d58284..00000000000 --- a/docs/src/common/user_intro_es.txt +++ /dev/null @@ -1,183 +0,0 @@ -= LinuxCNC User Introduction - -[[cha:linuxcnc-user-introduction]] (((LinuxCNC User Introduction))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== This Manual - -The focus of this manual is on 'using' LinuxCNC. It is intended to be used -once LinuxCNC is installed and configured. For standard installations see -the Getting Started Guide for step by step instructions to get you up -and going. For detailed information on installation and configuration -of LinuxCNC see the Integrator Manual. - -== How LinuxCNC Works[[how-LinuxCNC-works]] - -The Enhanced Machine Controller (LinuxCNC) is a lot more than just another -CNC mill program. It can control machine tools, robots, or -other automated devices. It can control servo motors, stepper motors, -relays, and other devices related to machine tools. - -There are four main components to the LinuxCNC software: - -* a motion controller (EMCMOT) -* a discrete I/O controller (EMCIO) -* a task executor which coordinates them (EMCTASK) -* and one of several graphical user interfaces. - -In addition there is a layer called HAL (Hardware Abstraction Layer) -which allows configuration of LinuxCNC without the need of recompiling. - -.Simple LinuxCNC Controlled Machine[[fig:Typical_machine]] - -image::images/whatstep1.png[align="center"] - -The above figure shows a simple block diagram showing -what a typical 3-axis LinuxCNC system might look like. This diagram shows a -stepper motor system. The PC, running Linux(((Linux))) as its operating -system, is actually controlling the stepper motor drives by sending -signals through the printer port. These signals (pulses) make the -stepper drives move the stepper motors. The LinuxCNC system can also run servo -motors via servo interface cards or by using an extended parallel port -to connect with external control boards. As we examine each of the -components that make up an LinuxCNC system we will remind the reader of -this typical machine. - -== Graphical User Interfaces[[sub:Graphical-User-Interfaces]] - -A user interface is the part of the LinuxCNC that the machine tool -operator interacts with. The LinuxCNC comes with several types of user -interfaces: - -* <>, the standard GUI interface. - -.Axis GUI[[fig:The-Axis-GUI]] - -image::images/axis-2.5.png[align="center"] - -* <>, a touch screen GUI. - -.Touchy GUI[[fig:touchy-gui]] - -image::images/touchy.png[align="center"] - -* <>, a subroutine GUI that provides 'fill in the blanks' - programming of G code. It also supports concatenation of subroutine files - to enable you to build a complete G code file without programming. - -.NGCGUI GUI imbedded into Axis[[fig:ngcgui-gui]] - -image::images/ngcgui.png[align="center"] - -* <>, a Tcl/Tk-based GUI - -.The Mini GUI[[fig:The-Mini-GUI]] - -image::images/mini.png[align="center"] - -* <>, a Tcl/Tk-based GUI - -.The TkLinuxCNC GUI[[fig:The-TkLinuxCNC-GUI]] - -image::images/tkemc.png[align="center"] - -* <>, a character-based screen graphics program - suitable for minimal installations (without the X server running). - -.The Keystick GUI[[fig:The-Keystick-GUI]] - -image::images/keystick.png[align="center"] - - -* 'Xemc', an X-Windows program. A simulator configuration of Xemc can be - ran from the configuration picker. - -* 'halui' - a HAL based user interface which allows to control LinuxCNC - using knobs and switches. See the Integrators manual for more information - on halui. - -* 'linuxcncrsh' - a telnet based user interface which allows commands to - be sent to LinuxCNC from remote computers. - -== Virtual Control Panels - -* 'PyVCP' a python based virtual control panel that can be added to the - Axis GUI or be stand alone. - -* 'GladeVCP' - a glade based virtual control panel that can be added to - the Axis GUI or be stand alone. - -== Languages - -LinuxCNC uses translation files to translate LinuxCNC User Interfaces into many -languages. You just need to log in with the language you intend to use -and when you start up LinuxCNC it comes up in that language. If your -language has not been translated contact a developer on the IRC or the -mailing list if you can assist in the translation. - -== Thinking Like a Machine Operator[[sec:Thinking-Operator]] - -This book will not even pretend that it can teach you to run a mill or -a lathe. Becoming a machinist takes time and hard work. An author once -said, "We learn from experience, if at all." Broken tools, gouged -vices, and scars are the evidence of lessons taught. Good part finish, -close tolerances, and careful work are the evidence of lessons learned. -No machine, no computer program, can take the place of human -experience. - -As you begin to work with the LinuxCNC program, you will need to place -yourself in the position of operator. You need to think of yourself in -the role of the one in charge of a machine. It is a machine that is -either waiting for your command or executing the command that you have -just given it. Throughout these pages we will give information that -will help you become a good operator of the LinuxCNC system. You will need -some information right up front here so that the following pages will -make sense to you. - -== Modes of Operation[[sub:Modes-of-Operation]] - -When LinuxCNC is running, there are three different major modes used -for inputting commands. These are 'Manual', 'Auto', -and 'MDI'. Changing from one mode to another makes a big -difference in the way that the LinuxCNC control behaves. There are specific things -that can be done in one mode that cannot be done in another. An -operator can home an axis in manual mode but not in auto or MDI modes. -An operator can cause the machine to execute a whole file full of -G-codes in the auto mode but not in manual or MDI. - -In manual mode, each command is entered separately. In human terms a -manual command might be 'turn on coolant' or 'jog X at 25 inches per -minute'. These are roughly equivalent to flipping a switch or turning -the hand wheel for an axis. These commands are normally handled on one -of the graphical interfaces by pressing a button with the mouse or -holding down a key on the keyboard. In auto mode, a similar button or -key press might be used to load or start the running of a whole program -of G-code that is stored in a file. In the MDI mode the operator might -type in a block of code and tell the machine to execute it by pressing -the or key on the keyboard. - -Some motion control commands are available and will cause the same -changes in motion in all modes. These include 'abort', -'estop', and 'feed rate override'). -Commands like these should be self explanatory. - -The AXIS user interface hides some of the distinctions between Auto -and the other modes by making Auto-commands available at most times. It -also blurs the distinction between Manual and MDI because some Manual -commands like Touch Off are actually implemented by sending MDI -commands. It does this by automatically changing to the mode that is -needed for the action the user has requested. - - diff --git a/docs/src/common/user_intro_fr.txt b/docs/src/common/user_intro_fr.txt deleted file mode 100644 index f35dc40a6a4..00000000000 --- a/docs/src/common/user_intro_fr.txt +++ /dev/null @@ -1,177 +0,0 @@ -:lang: fr -:toc: - -= LinuxCNC - -[[cha:linuxcnc-user-introduction]] (((LinuxCNC User Introduction))) - -== Introduction - -Ce document est centré sur l'utilisation de LinuxCNC, -il est plutôt destiné aux lecteurs l'ayant déjà installé et configuré. -Quelques informations sur l'installation sont données dans les -chapitres suivants. -La documentation complète sur l'installation et -la configuration se trouve dans le manuel de l'intégrateur. - -[[sec:Comment-Fonctionne-LinuxCNC]] -== Comment fonctionne LinuxCNC - -LinuxCNC est un peu plus que juste un autre programme de fraiseuse -CNC(((CNC))). Il est capable de contrôler des machines-outils, des -robots ou d'autres automatismes. Il est capable de contrôler des -servomoteurs, des moteurs pas à pas, des relais ainsi que d'autres -mécanismes relatifs aux machines-outils. - -Il y a quatre principales composantes du logiciel LinuxCNC: - -* un contrôleur de mouvement (EMCMOT), -* une contrôleur d'entrées/sorties discrètes (EMCIO), -* un exécuteur des tâches qui les coordonne (EMCTASK), -* et les interfaces utilisateur graphiques. - -En outre il existe une couche appelée HAL (couche d'abstraction du matériel) -qui permet la configuration de LinuxCNC sans avoir besoin de recompiler. - -.Machine simple contrôlée par LinuxCNC -image::images/whatstep1.png[align="center"] - -La figure ci-dessus montre un diagramme bloc -représentant une machine 3 axes typique comme LinuxCNC les aime. Cette -figure montre un système basé sur des moteurs pas à pas. Le PC, -tournant sous Linux(((Linux))) contrôle les interfaces de puissance des -moteurs pas à pas en leur envoyant des signaux au travers du port -parallèle. Ces signaux (impulsionnels) font que la puissance adéquate -est fournie aux moteurs. LinuxCNC peut également contrôler des servomoteurs -via une interface de puissance pour servomoteurs ou utiliser le port -parallèle étendu connecté à une carte de contrôle externe. Quand nous -examinerons chacun des composants qui forment un système LinuxCNC, nous -nous référerons à cette machine typique. - -[[sub:Interfaces-utilisateur-graphiques]] -== Interfaces utilisateur graphiques - -L'interface graphique est la partie de LinuxCNC qui interagit avec -l'opérateur de la machine. LinuxCNC est fourni avec plusieurs -interfaces utilisateurs graphiques: - - -* <>, l'interface utilisateur standard. - -.L'interface graphique AXIS[[fig:Interface-graphique-AXIS]] -image::images/axis_25_fr.png[align="center"] - -* <>, une interface graphique pour écran tactile. - -.L'interface graphique Touchy[[fig:touchy-gui]] - -image::images/touchy_fr.png[align="center"] - -* <>, une interface graphique gérant les sous-programmes. -Elle permet très simplement de créer des programme G-code. Elle supporte -surtout la concaténation de fichiers de sous-programmes, ce qui permet de -construire des programmes G-code complets sans aucune programmation. - -.L'interface graphique NGCGUI intégrée dans Axis[[fig:ngcgui-gui]] -image::images/ngcgui_fr.png[align="center"] - -* <>, une interface en Tcl/Tk. - -.L'interface graphique Mini[[fig:Interface-graphique-Mini]] -image::images/mini_fr.png[align="center"] - -* <>, une autre interface basée sur Tcl/Tk. -C'est l'interface la plus populaire après Axis - -.L'interface graphique tklinuxcnc[[fig:L-interface-graphique-tklinuxcnc]] -image::images/tklinuxcnc_fr.png[align="center"] - -* <>, une interface graphique textuelle et -minimaliste, appropriée pour les installations légères (sans serveur X par -exemple). - -.L'interface textuelle Keystick[[fig:L-interface-Keystick]] -image::images/keystick.png[align="center"] - -* _Xemc_, un programme X-Windows - -* _halui_, une interface utilisateur basée sur HAL, qui permet de contrôler -LinuxCNC en utilisant des boutons et des interrupteurs - -* _linuxcncrsh_, une interface utilisateur basée sur telnet, qui permet -d'envoyer des commandes à partir d'ordinateurs distants de celui de LinuxCNC - -== Panneaux de contrôle virtuels - -* _PyVCP_, un panneau de contrôle virtuel basé sur Python, il peut être intégré -dans l'interface graphique Axis ou utilisé en autonome. - -* _GladeVCP_, un panneau de contrôle virtuel basé sur Glade, il peut être -intégré dans l'interface graphique Axis ou utilisé en autonome. - -== Langues - -LinuxCNC utilise des fichiers traduits pour les interfaces utilisateur. -Il fonctionne dans plusieurs langues et démarre dans la langue de la -session ouverte par l'utilisateur au démarrage du PC. Si votre langue n'a pas -encore été traduite contactez un développeur sur l'IRC ou sur la mailing liste -si vous pouvez aider à la traduction. - -== Penser comme un opérateur sur CNC[[sec:Penser-operateur]] - -Ce manuel ne prétend pas vous apprendre à utiliser un tour ou une -fraiseuse. Devenir un opérateur expérimenté prends beaucoup de temps et -demande beaucoup de travail. Un auteur a dit un jour, _Nous apprenons -par l'expérience, si on la possède toute_. Les outils cassés, les étaux -attaqués et les cicatrices sont les preuves des leçons apprises. Une -belle finition, des tolérances serrées et la prudence pendant le -travail sont les preuves des leçons retenues. Aucune machine, aucun -programme ne peut remplacer l'expérience humaine. - -Maintenant que vous commencez à travailler avec le programme LinuxCNC, -vous devez vous placer dans la peau d'un opérateur. Vous devez être -dans le rôle de quelqu'un qui a la charge d'une machine. C'est une -machine qui attendra vos commandes puis qui exécutera les ordres que -vous lui donnerez. Dans ces pages, nous donnerons les explications qui -vous aideront à devenir un bon opérateur de CNC avec LinuxCNC. Vous aurez besoin -de bonnes informations ici, devant vous, c'est là que les pages suivantes -prendront tout leur sens. - -== Modes opératoires[[sub:Modes-operatoires]] - -Quand LinuxCNC fonctionne, il existe trois différents modes majeurs pour -entrer des commandes. Les modes _Manuel_(((Manuel))), _Auto_(((Auto))) et -_MDI_(((MDI))). Passer d'un mode à un autre marque une grande différence -dans le comportement de LinuxCNC. Des choses spécifiques à un mode ne -peuvent pas être faites dans un autre. L'opérateur peut faire une prise -d'origine sur un axe en mode manuel mais pas en mode auto ou MDI. -L'opérateur peut lancer l'exécution complète d'un programme de G-codes -en mode auto mais pas en mode manuel ni en MDI. - -En mode manuel, chaque commande est entrée séparément. En termes -humains, une commande manuelle pourrait être _active l'arrosage_ ou _jog -l'axe X à 250 millimètres par minute_. C'est en gros, équivalent à -basculer un interrupteur ou à tourner la manivelle d'un axe. Ces -commandes sont normalement contrôlées en pressant un bouton de -l'interface graphique avec la souris ou en maintenant appuyée une -touche du clavier. En mode auto, un bouton similaire ou l'appui d'une -touche peut être utilisé pour charger ou lancer l'exécution -complète d'un programme de G-codes stocké dans un fichier. En mode -d'entrée de données manuelles (MDI) l'opérateur peut saisir un bloc de -codes est dire à la machine de l'exécuter en pressant la touche -_Return_ ou _Entrée_ du clavier. - -Certaines commandes de mouvement sont disponibles et produisent les -mêmes effets dans tous les modes. Il s'agit des commandes -_Abandon_(((ABANDON))), _Arrêt d'Urgence_(((ESTOP))) et _Correcteur de vitesse -travail_ (((correcteur de vitesse))). Ces commandes se dispensent d'explications. - -L'interface utilisateur graphique AXIS supprime certaines distinctions -entre Auto et les autres modes en rendant automatique la disponibilité -des commandes, la plupart du temps. Il rend également floue la -distinction entre Manuel et MDI parce que certaines commandes manuelles -comme _Toucher_, sont également implémentées en envoyant une commande -MDI. Il fait cela en changeant automatiquement le mode qui est -nécessaire pour l'action que l'utilisateur a demandé. - - diff --git a/docs/src/common/userforeword.txt b/docs/src/common/userforeword.txt deleted file mode 100644 index cae8ff64655..00000000000 --- a/docs/src/common/userforeword.txt +++ /dev/null @@ -1,78 +0,0 @@ -= User Foreword - -[[cha:user-foreword]] (((User Foreword))) - -LinuxCNC is modular and flexible. These attributes lead many to see it as -a confusing jumble of little things and wonder why it is the way it is. -This page attempts to answer that question before you get into the -thick of things. - -LinuxCNC started at the National Institute of Standards and Technology in -the USA. It grew up using Unix as its operating system. Unix made it -different. Among early Unix developers there grew a set of code writing -ideas that some call the Unix way. These early LinuxCNC authors followed -those ways. - -Eric S. Raymond, in his book The Art of Unix Programming, summarizes -the Unix philosophy as the widely-used engineering philosophy, "Keep it -Simple, Stupid" (KISS Principle). He then describes how he believes -this overall philosophy is applied as a cultural Unix norm, although -unsurprisingly it is not difficult to find severe violations of most of -the following in actual Unix practice: - -* Rule of Modularity: Write simple parts connected by clean interfaces. - -* Rule of Clarity: Clarity is better than cleverness. - -* Rule of Composition: Design programs to be connected to other programs. - -* Rule of Separation: Separate policy from mechanism; separate - interfaces from engines.footnote:[Found at - http://en.wikipedia.org/wiki/Unix_philosophy, 07/06/2008] - -Mr. Raymond offered several more rules but these four describe -essential characteristics of the LinuxCNC motion control system. - -The *Modularity* rule is critical. Throughout these handbooks you -will find talk of -the interpreter or task planner or motion or HAL. Each of these is a -module or collection of modules. It's modularity that allows you to -connect together just the parts you need to run your machine. - -The *Clarity* rule is essential. LinuxCNC is a work in progress -- it is -not finished -nor will it ever be. It is complete enough to run most of the machines -we want it to run. Much of that progress is achieved because many users -and code developers are able to look at the work of others and build on -what they have done. - -The *Composition* rule allows us to build a predictable control -system from the many -modules available by making them connectable. We achieve connectability -by setting up standard interfaces to sets of modules and following -those standards. - -The *Separation* rule requires that we make distinct parts that do -little things. By -separating functions debugging is much easier and replacement modules -can be dropped into the system and comparisons easily made. - -What does the Unix way mean for you as a user of LinuxCNC. It means that -you are able to make choices about how you will use the system. Many of -these choices are a part of machine integration, but many also affect -the way you will use your machine. As you read you will find many -places where you will need to make comparisons. Eventually you will -make choices, "I'll use this interface rather than that†or, “I'll -write part offsets this way rather than that way." Throughout these -handbooks we describe the range of abilities currently available. - -As you begin your journey into using LinuxCNC we offer two cautionary -notes:footnote:[Found at http://en.wikipedia.org/wiki/Unix_philosophy, 07/06/2008] - - - Paraphrasing the words of Doug Gwyn on UNIX: "LinuxCNC was not designed to - stop its users from doing stupid things, as that would also stop them - from doing clever things." - - Likewise the words of Steven King: "LinuxCNC is user-friendly. It just - isn't promiscuous about which users it's friendly with." - - diff --git a/docs/src/common/userforeword_es.txt b/docs/src/common/userforeword_es.txt deleted file mode 100644 index f0e73a5118e..00000000000 --- a/docs/src/common/userforeword_es.txt +++ /dev/null @@ -1,92 +0,0 @@ -= User Foreword - -[[cha:user-foreword]] (((User Foreword))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - - -LinuxCNC is modular and flexible. These attributes lead many to see it as -a confusing jumble of little things and wonder why it is the way it is. -This page attempts to answer that question before you get into the -thick of things. - -LinuxCNC started at the National Institute of Standards and Technology in -the USA. It grew up using Unix as its operating system. Unix made it -different. Among early Unix developers there grew a set of code writing -ideas that some call the Unix way. These early LinuxCNC authors followed -those ways. - -Eric S. Raymond, in his book The Art of Unix Programming, summarizes -the Unix philosophy as the widely-used engineering philosophy, "Keep it -Simple, Stupid" (KISS Principle). He then describes how he believes -this overall philosophy is applied as a cultural Unix norm, although -unsurprisingly it is not difficult to find severe violations of most of -the following in actual Unix practice: - -* Rule of Modularity: Write simple parts connected by clean interfaces. - -* Rule of Clarity: Clarity is better than cleverness. - -* Rule of Composition: Design programs to be connected to other programs. - -* Rule of Separation: Separate policy from mechanism; separate - interfaces from engines.footnote:[Found at - http://en.wikipedia.org/wiki/Unix_philosophy, 07/06/2008] - -Mr. Raymond offered several more rules but these four describe -essential characteristics of the LinuxCNC motion control system. - -The *Modularity* rule is critical. Throughout these handbooks you -will find talk of -the interpreter or task planner or motion or HAL. Each of these is a -module or collection of modules. It's modularity that allows you to -connect together just the parts you need to run your machine. - -The *Clarity* rule is essential. LinuxCNC is a work in progress -- it is -not finished -nor will it ever be. It is complete enough to run most of the machines -we want it to run. Much of that progress is achieved because many users -and code developers are able to look at the work of others and build on -what they have done. - -The *Composition* rule allows us to build a predictable control -system from the many -modules available by making them connectable. We achieve connectability -by setting up standard interfaces to sets of modules and following -those standards. - -The *Separation* rule requires that we make distinct parts that do -little things. By -separating functions debugging is much easier and replacement modules -can be dropped into the system and comparisons easily made. - -What does the Unix way mean for you as a user of LinuxCNC. It means that -you are able to make choices about how you will use the system. Many of -these choices are a part of machine integration, but many also affect -the way you will use your machine. As you read you will find many -places where you will need to make comparisons. Eventually you will -make choices, "I'll use this interface rather than that†or, “I'll -write part offsets this way rather than that way." Throughout these -handbooks we describe the range of abilities currently available. - -As you begin your journey into using LinuxCNC we offer two cautionary -notes:footnote:[Found at http://en.wikipedia.org/wiki/Unix_philosophy, 07/06/2008] - - - Paraphrasing the words of Doug Gwyn on UNIX: "LinuxCNC was not designed to - stop its users from doing stupid things, as that would also stop them - from doing clever things." - - Likewise the words of Steven King: "LinuxCNC is user-friendly. It just - isn't promiscuous about which users it's friendly with." - - diff --git a/docs/src/common/userforeword_fr.txt b/docs/src/common/userforeword_fr.txt deleted file mode 100644 index a204f962535..00000000000 --- a/docs/src/common/userforeword_fr.txt +++ /dev/null @@ -1,91 +0,0 @@ -:lang: fr -:toc: - -= Avant-propos - -LinuxCNC est souple et modulaire. Ces attributs l'ont fait apparaître à -certains comme un brouillon de petits morceaux confus, ils se sont -demandé pourquoi il en était ainsi. Cette page tentent de répondre à -cette question avant que vous lecteurs, ne plongiez dedans pour vous -faire votre propre idée. - -EMC a débuté à l'institut national des standards et des technologies -des Etats Unis, le NIST. Il a mûri comme un logiciel fonctionnant sur -le système d'exploitation Unix. Unix le rendait différent. Très tôt des -développeurs Unix ont apporté une série d'idées concernant l'écriture -du code, c'est devenu une écriture selon «la tradition d'Unix». Les -premiers auteurs de LinuxCNC ont suivi cette voie. - -Eric S. Raymond, dans son livre The Art of Unix Programming, résume la -philosophie Unix par la philosophie largement utilisée en ingéniérie, -le principe KISS Keep it Simple, Stupid Reste Simple, Crétin ou Sois -Simple et Concis. Puis il décrit sa vision selon laquelle cette -philosophie globale s'applique en tant que norme culturelle Unix, bien -qu'on trouve sans surprise de graves entorses à la plupart des règles -Unix suivantes: - -* Règle de modularité: Ecrire des éléments simples reliés par de -bonnes interfaces. - -* Règle de clarté: La Clarté vaut mieux que l'ingéniosité. - -* Règle de composition: Concevoir des programmes qui peuvent être -reliés à d'autres programmes. - -* Règle de séparation: Séparer les règles du fonctionnement; Séparer -les interfaces du mécanisme.footnote:[Trouvé -sur http://fr.wikipedia.org/wiki/Philosophie_d%27Unix, 09/09/2008] - -Monsieur Raymond offre d'autres règles mais ces quatre là décrivent les -caractéristiques essentielles du système de contrôle de mouvement LinuxCNC. - -La règle de _Modularité_ est critique. Tout au long de ces manuels, -vous trouverez des -discussions à propos de l'interpréteur ou à propos des planificateurs -de tâche ou de mouvement ou encore à propos de HAL. Chacun d'eux est un -module ou un ensemble de modules. Cette modularité vous permettra de ne -connecter entre elles que les parties dont vous avez besoin pour le bon -fonctionnement de votre machine. - -La règle de _clarté_ est essentielle. LinuxCNC est en perpétuelle -évolution, il n'est pas -terminé et ne le sera jamais. Il est assez complet pour piloter toutes -les machines que nous avons voulu qu'il pilote. Une bonne partie de -cette évolution est atteinte parce que les utilisateurs et les -développeurs peuvent voir le travail des autres et construire sur ce -qui est déjà fait. - -La règle de _composition_ nous permet de concevoir et de construire -un contrôleur à partir des -nombreux modules existants, en les rendant connectables entre eux. Nous -obtenons cette connectivité en appliquant une interface standard à tous -les modules et en suivant ce standard. - -La règle de _séparation_ exige que chaque petite chose soit faite par -une partie distincte. En -séparant les fonctions, le dépannage est rendu plus aisé, le -remplacement de modules par d'autres peut être fait à l'intérieur du -système et la comparaison s'effectuer facilement. - -Qu'apporte la fameuse «tradition d'Unix» à vous, utilisateurs de LinuxCNC. -Elle signifie que vous pourrez faire des choix sur la façon d'utiliser -le système. Beaucoup de ces choix affecteront les parties intégrées à -la machine, mais beaucoup également affecteront la manière dont vous -utiliserez votre machine. Au cours de votre lecture, vous trouverez -différents endroits où vous pourrez faire des comparaisons. Finalement -vous pourrez dire «J'utiliserai cette interface plutôt que telle autre» -ou, «J'écrirai cette nouvelle partie de telle manière plutôt que de -telle autre.» Tout au long de ces manuels nous décrirons l'étendue des -possibilités de LinuxCNC actuellement disponibles. - -Puisque vous commencez votre voyage dans l'utilisation de LinuxCNC nous -vous proposons ces deux citations de précaution. - - - Pour paraphraser les paroles de Doug Gwyn sur UNIX: "LinuxCNC n'a pas - été conçu pour empêcher ses utilisateurs de commettre des actes - stupides, car cela les empêcherait aussi de réaliser des - actes ingénieux." - - De même les paroles de Steven King: "LinuxCNC est convivial. Cependant - Unix ne précise pas vraiment avec qui." - - diff --git a/docs/src/config/.gitignore b/docs/src/config/.gitignore deleted file mode 100644 index f0d28ce628a..00000000000 --- a/docs/src/config/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -stepconf -stepconf.tex -emc2hal -emc2hal.tex -ini_config -ini_config.tex -ini_homing -ini_homing.tex -stepper -stepper.tex diff --git a/docs/src/config/copy_and_run.txt b/docs/src/config/copy_and_run.txt deleted file mode 100644 index 2ae8ac11d5f..00000000000 --- a/docs/src/config/copy_and_run.txt +++ /dev/null @@ -1,49 +0,0 @@ -= Running LinuxCNC - -[[cha:running-emc]] (((Running LinuxCNC))) - -== Invoking LinuxCNC - -After installation, LinuxCNC starts just like any other Linux program: -run it from the terminal by issuing the command 'emc', -or select it in the Applications - CNC menu. - -== Configuration Selector - -By default, the Configuration Selector dialog -is shown when you first run LinuxCNC. -Your own personalized configurations are shown at the top of the list, -followed by sample configurations. -Because each sample configuration is for a different type of hardware interface, -almost all will not run without the hardware installed. -The configurations listed under the category 'sim' run entirely -without attached hardware. - -.LinuxCNC Configuration Selector[[cap:LinuxCNC-Configuration-Selector]] - -image::images/configuration-selector.png[] - -Click any of the listed configurations -to display specific information about it. -Double-click a configuration or click OK -to start the configuration. -Select 'Create Desktop Shortcut' and then click OK -to add an icon on the Ubuntu desktop -to directly launch this configuration -without showing the Configuration Selector screen. - -When you select a configuration from the Sample Configurations section, -it will automaticly place a copy of that config in the -emc/configs directory. - -== Next steps in configuration - -After finding the sample configuration that uses -the same interface hardware as your machine, -and saving a copy to your home directory, -you can customize it according to the details of your machine. -Refer to the Integrator Manual for topics on configuration. - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/config/copy_and_run_es.txt b/docs/src/config/copy_and_run_es.txt deleted file mode 100755 index 231877a715b..00000000000 --- a/docs/src/config/copy_and_run_es.txt +++ /dev/null @@ -1,50 +0,0 @@ -= Ejecutando LinuxCNC - -[[cha:running-emc]] (((Ejecutando LinuxCNC))) - -== invocación de LinuxCNC - -Después de la instalación, LinuxCNC comienza como cualquier otro programa de Linux: -Ejecutándolo desde la terminal con el comando `emc`, -O seleccionandolo en el menu de aplicaciones -> CNC menu. - -== Selector de configuración - -De manera determinada, el dialogo de seleccion de configuracion -Se muestra cuando se ejecuta LinuxCNC por primera vez. -Las configuraciones personalizadas se muestran en la parte superior de la lista, -Seguida de ejemplos de configuraciones. -Devido a que cada ejemplo de configuraciones es para un tipo diferente de interface de hardware. -Casi ninguna funcionara sin el hardware espcifico instalado. -Las configuraciones que están en la categoría "sim" se ejecutan completamente -Sin ningun hardware conectado. - -Figura <> muestra la apariencia -De ventana de selección de configuración. - -.LinuxCNC seleccion de configuración[[cap:LinuxCNC-Configuration-Selector]] - -image::images/configuration-selector.png[] - -De click en cualquiera de las configuraciones que se indican -para mostrar información específica al respecto. -De doble click en una configuración o haga click en aceptar -para ejecutar la configuración. -Seleccione "crear acceso directo en el escritorio" y luego de click en aceptar -para añadir un icono en el escritorio de Ubuntu -para iniciar directamente esta configuración -sin mostrar la pantalla de selección de configuración. - -Cuan do se selecciona una configuracion de la seccion de muestras de configuracion, -se creeara un a copia de la misma en el directorio -emc/configs - -== Los siguientes pasos en la configuración son - -Después de encontrar el ejemplo de la configuración que utiliza -la misma interface que el hardware de su máquina, -guarde una copia en su directorio personal. -Usted puede personalizar de acuerdo a los detalles d su maquina -consulte el manual de integración de los temas de configuración. - -// vim: set syntax=asciidoc: diff --git a/docs/src/config/emc2hal.txt b/docs/src/config/emc2hal.txt deleted file mode 100644 index 67af4a338ed..00000000000 --- a/docs/src/config/emc2hal.txt +++ /dev/null @@ -1,545 +0,0 @@ -= Core Components - -[[cha:core-components]] (((Core Components))) - -See also the man pages 'motion(9)'. - -[[sec:motion]] -== Motion - -These pins and parameters are created by the realtime 'motmod' module. -This module provides a HAL interface for LinuxCNC’s motion planner. -Basically motmod takes in a list of waypoints and generates a nice -blended and constraint-limited stream of joint positions to be fed -to the motor drives. - -Optionally the number of Digital I/O is set with num_dio. -The number of Analog I/O is set with num_aio. The default is 4 each. - -Pin names starting with 'axis' are actually joint values, but the pins -and parameters are still called 'axis.N'. -They are read and updated by the motion-controller function. - -Motion is loaded with the motmod command. A kins should be loaded -before motion. - ----- -loadrt motmod [base_period_nsec=period] [servo_period_nsec=period] -[traj_period_nsec=period] [num_joints=[0-9] ([num_dio=1-64] num_aio=1-16])] ----- - -* 'base_period_nsec = 50000' - the 'Base' task period in nanoseconds. - This is the fastest thread in the machine. - -[NOTE] -On servo-based systems, there is generally no reason for -'base_period_nsec' to be smaller than 'servo_period_nsec'. -On machines with software step generation, the 'base_period_nsec' -determines the maximum number of steps per second. In the absence of -long step length and step space requirements, the absolute maximum step -rate is one step per 'base_period_nsec'. Thus, the 'base_period_nsec' shown -above gives an absolute maximum step rate of 20,000 steps per -second. 50,000 ns (50 us) is a fairly conservative value. The -smallest usable value is related to the Latency Test result, the -necessary step length, and the processor speed. -Choosing a 'base_period_nsec' that is too low can lead to the "Unexpected -real time delay" message, lockups, or spontaneous reboots. - -* 'servo_period_nsec = 1000000' - This is the 'Servo' task period in - nanoseconds. This value will be rounded to an integer multiple of - 'base_period_nsec'. This period is used even on systems based on - stepper motors. -+ -This is the rate at which new motor positions are computed, following -error is checked, PID output values are updated, and so on. -Most systems will not need to change this value. It is the update rate -of the low level motion planner. - -* 'traj_period_nsec = 100000' - This is the 'Trajectory Planner' - task period in nanoseconds. This value will be rounded to an integer - multiple of 'servo_period_nsec'. Except for machines with unusual - kinematics (e.g., hexapods) there is no reason to make this value larger - than 'servo_period_nsec'. - - -=== Options - -If the number of digital I/O needed is more than the default of 4 you -can add up to 64 digital I/O by using the num_dio option when loading -motmod. - -If the number of analog I/O needed is more than the default of 4 you -can add up to 16 analog I/O by using the num_aio option when loading -motmod. - -=== Pins (((motion (HAL pins)))) - -These pins, parameters, and functions are created by the realtime -'motmod' module. - -* 'motion.adaptive-feed' - - (float, in) When adaptive feed is enabled with 'M52 P1' , the - commanded velocity is multiplied by this value. This effect is - multiplicative with the NML-level feed override value and - 'motion.feed-hold'. - -* 'motion.analog-in-00' - - (float, in) These pins (00, 01, 02, 03 or more if configured) are - controlled by M66. - -* 'motion.analog-out-00' - - (float, out) These pins (00, 01, 02, 03 or more if configured) are - controlled by M67 or M68. - -* 'motion.coord-error' - - (bit, out) TRUE when motion has encountered an error, such as - exceeding a soft limit - -* 'motion.coord-mode' - - (bit, out) TRUE when motion is in 'coordinated mode', as opposed to - 'teleop mode' - -* 'motion.current-vel' - - (float, out) The current tool velocity in user units per second. - -* 'motion.digital-in-00' - - (bit, in) These pins (00, 01, 02, 03 or more if configured) are - controlled by M62-65. - -* 'motion.digital-out-00' - - (bit, out) These pins (00, 01, 02, 03 or more if configured) are - controlled by the 'M62-65'. - -* 'motion.distance-to-go' - - (float,out) The distance remaining in the current move. - -* 'motion.enable' - - (bit, in) If this bit is driven FALSE, motion stops, the machine is - placed in the 'machine off' state, and a message is displayed for the - operator. For normal motion, drive this bit TRUE. - -* 'motion.feed-hold' - - (bit, in) When Feed Stop Control is enabled with 'M53 P1', and this - bit is TRUE, the feed rate is set to 0. - -* 'motion.feed-inhibit' - - (bit, in) When this bit is TRUE, the feed rate is set to 0. - This will be delayed during spindle synch moves till the end of the move. - -* 'motion.in-position' - - (bit, out) TRUE if the machine is in position. - -* 'motion.motion-enabled' - - (bit, out) TRUE when in 'machine on' state. - -* 'motion.on-soft-limit' - - (bit, out) TRUE when the machine is on a soft limit. - -* 'motion.probe-input' - - (bit, in) 'G38.x' uses the value on this pin to determine when the - probe has made contact. - TRUE for probe contact closed (touching), - FALSE for probe contact open. - -* 'motion.program-line' - - (s32, out) The current program line while executing. Zero if not - running or between lines while single stepping. - -* 'motion.requested-vel' - - (float, out) The current requested velocity in user units per second - from the F=n setting in the G Code file. No feed overrides or any other - adjustments are applied to this pin. - -* 'motion.spindle-at-speed' - - (bit, in) Motion will pause until this pin is TRUE, under the - following conditions: before the first feed move after each spindle - start or speed change; before the start of every chain of - spindle-synchronized moves; and if in CSS mode, at every rapid to feed - transition. This input can be used to ensure that the spindle is up to - speed before starting a cut, or that a lathe spindle in CSS mode has - slowed down after a large to small facing pass before starting the next - pass at the large diameter. Many VFDs have an 'at speed' output. - Otherwise, it is easy to generate this signal with the 'HAL near' - component, by comparing requested and actual spindle speeds. - -* 'motion.spindle-brake' - - (bit, out) TRUE when the spindle brake should be applied. - -* 'motion.spindle-forward' - - (bit, out) TRUE when the spindle should rotate forward. - -* 'motion.spindle-index-enable' - - (bit, I/O) For correct operation of spindle synchronized moves, this - pin must be hooked to the index-enable pin of the spindle encoder. - -* 'motion.spindle-inhibit' - - (bit, in) When this bit is TRUE, the spindle speed is set to 0. - -* 'motion.spindle-on' - - (bit, out) TRUE when spindle should rotate. - -* 'motion.spindle-reverse' - - (bit, out) TRUE when the spindle should rotate backward - -* 'motion.spindle-revs' - - (float, in) For correct operation of spindle synchronized moves, this - signal must be hooked to the position pin of the spindle encoder. The - spindle encoder position should be scaled such that spindle-revs - increases by 1.0 for each rotation of the spindle in the clockwise - ('M3') direction. - -* 'motion.spindle-speed-in' - - (float, in) Feedback of actual spindle speed in rotations per second. - This is used by feed-per-revolution motion ('G95'). If your spindle - encoder driver does not have a velocity output, you - can generate a suitable one by sending the spindle position through a - 'ddt' component. If you do not have a spindle encoder, you can loop - back 'motion.spindle-speed-out-rps'. - -* 'motion.spindle-speed-out' - - (float, out) Commanded spindle speed in rotations per minute. Positive - for spindle forward ('M3'), negative for spindle reverse ('M4'). - -* 'motion.spindle-speed-out-abs' - - (float, out) Commanded spindle speed in rotations per minute. This will - always be a positive number. - -* 'motion.spindle-speed-out-rps' - - (float, out) Commanded spindle speed in rotations per second. Positive - for spindle forward ('M3'), negative for spindle reverse ('M4'). - -* 'motion.spindle-speed-out-rps-abs' - - (float, out) Commanded spindle speed in rotations per second. This will - always be a positive number. - -* 'motion.teleop-mode' - - (bit, out) TRUE when motion is in 'teleop mode', as opposed to - 'coordinated mode' - -* 'motion.tooloffset.x ... motion.tooloffset.w' - - (float, out, one per axis) shows the tool offset in effect; - it could come from the tool table ('G43' active), or it could - come from the gcode ('G43.1' active) - -* `motion.spindle-orient-angle` - - (float,out) Desired spindle orientation for M19. Value of the - M19 R word parameter plus the value of the [RS274NGC]ORIENT_OFFSET ini parameter. - -* `motion.spindle-orient-mode` - - (s32,out) Desired spindle rotation mode M19. Default 0. - -* `motion.spindle-orient` - - (out,bit) - Indicates start of spindle orient cycle. Set by M19. Cleared by any of M3,M4,M5. - If spindle-orient-fault is not zero during spindle-orient - true, the M19 command fails with an error message. - -* `motion.spindle-is-oriented` - - (in, bit) Acknowledge pin for spindle-orient. Completes orient - cycle. If spindle-orient was true when spindle-is-oriented was - asserted, the spindle-orient pin is cleared and the - spindle-locked pin is asserted. Also, the spindle-brake pin is asserted. - -* `motion.spindle-orient-fault` - - (s32, in) Fault code input for orient cycle. Any value other - than zero will cause the orient cycle to abort. - -* `motion.spindle-lock` - - (bit, out) Spindle orient complete pin. Cleared by any of M3,M4,M5. - -==== HAL pin usage for M19 orient spindle - -Conceptually the spindle is in one of the following modes: - - - rotation mode (the default) - - searching for desired orientation mode - - orienation complete mode. - -When an M19 is executed, the spindle changes to 'searching for desired -orientation' , and the `spindle-orient` HAL pin is asserted. The -desired target position is specified by the `spindle-orient-angle` and -`spindle-orient-fwd` pins and driven by the M19 R and P parameters. - -The HAL support logic is expected to react to `spindle-orient` by -moving the spindle to the desired position. When this is complete, the -HAL logic is expected to acknowledge this by asserting the -`spindle-is-oriented` pin. - -Motion then acknowledges this by deasserting the `spindle-orient` pin -and asserts the `spindle-locked` pin to indicate 'orientation -complete' mode. It also raises the `spindle-brake` pin. The spindle now -is in 'orientation complete' mode. - -If, during `spindle-orient` being true, and `spindle-is-oriented` not -yet asserted the `spindle-orient-fault` pin has a value other than -zero, the M19 command is aborted, a message including the fault code -is displayed, and the motion queue is flushed. The spindle reverts to -rotation mode. - -Also, any of the M3,M4 or M5 commands cancel either 'searching for -desired orientation' or 'orientation complete' mode. This is indicated -by deasserting both the `spindle-orient` and `spindle-locked` pins. - -The `spindle-orient-mode` pin reflects the M19 P word and shall be -interpreted as follows: - - - 0: rotate clockwise or counterclockwise for smallest angular movement - - 1: always rotate clockwise - - 2: always rotate counterclockwise - -It can be used with the `orient` HAL component which provides a PID -command value based on spindle encoder positon, `spindle-orient-angle` -and `spindle-orient-mode`. - -=== Parameters - -Many of these parameters serve as debugging aids, and are subject to -change or removal at any time. - -* 'motion-command-handler.time' - - (s32, RO) - -* 'motion-command-handler.tmax' - - (s32, RW) - -* 'motion-controller.time' - - (s32, RO) - -* 'motion-controller.tmax' - - (s32, RW) - -* 'motion.debug-bit-0' - - (bit, RO) This is used for debugging purposes. - -* 'motion.debug-bit-1' - - (bit, RO) This is used for debugging purposes. - -* 'motion.debug-float-0' - - (float, RO) This is used for debugging purposes. - -* 'motion.debug-float-1' - - (float, RO) This is used for debugging purposes. - -* 'motion.debug-float-2' - - (float, RO) This is used for debugging purposes. - -* 'motion.debug-float-3' - - (float, RO) This is used for debugging purposes. - -* 'motion.debug-s32-0' - - (s32, RO) This is used for debugging purposes. - -* 'motion.debug-s32-1' - - (s32, RO) This is used for debugging purposes. - -* 'motion.servo.last-period' - - (u32, RO) The number of CPU cycles between invocations of the servo - thread. Typically, this number divided by the CPU speed gives the time - in seconds, and can be used to determine whether the realtime motion - controller is meeting its timing constraints - -* 'motion.servo.last-period-ns' - - (float, RO) - -* 'motion.servo.overruns' - - (u32, RW) By noting large differences between successive values of - 'motion.servo.last-period' , the motion controller can determine that - there has probably been a - failure to meet its timing constraints. Each time such a failure is - detected, this value is incremented. - -=== Functions - -Generally, these functions are both added to the servo-thread in the -order shown. - -* 'motion-command-handler' - - Processes motion commands coming from user space - -* 'motion-controller' - - Runs the LinuxCNC motion controller - -== Axis (Joints) - -These pins and parameters are created by the realtime 'motmod' -module. These are actually joint values, but the pins and parameters -are still called 'axis.N'.footnote:[In 'trivial kinematics' machines, -there is a one-to-one correspondence between joints and axes.] -They are read and updated by the 'motion-controller' function. - -=== Pins (((axis (HAL pins)))) - -* 'axis.N.active' - - (bit, out) - -* 'axis.N.amp-enable-out' - - (bit, out) TRUE if the amplifier for this joint should be enabled - -* 'axis.N.amp-fault-in' - - (bit, in) Should be driven TRUE if an external fault is detected with - the amplifier for this joint - -* 'axis.N.backlash-corr' - - (float, out) - -* 'axis.N.backlash-filt' - - (float, out) - -* 'axis.N.backlash-vel' - - (float, out) - -* 'axis.N.coarse-pos-cmd' - - (float, out) - -* 'axis.N.error' - - (bit, out) - -* 'axis.N.f-error' - - (float, out) - -* 'axis.N.f-error-lim' - - (float, out) - -* 'axis.N.f-errored' - - (bit, out) - -* 'axis.N.faulted' - - (bit, out) - -* 'axis.N.free-pos-cmd' - - (float, out) - -* 'axis.N.free-tp-enable' - - (bit, out) - -* 'axis.N.free-vel-lim' - - (float, out) - -* 'axis.N.home-sw-in' - - (bit, in) Should be driven TRUE if the home switch for this joint is - closed. - -* 'axis.N.homed' - - (bit, out) - -* 'axis.N.homing' - - (bit, out) TRUE if the joint is currently homing - -* 'axis.N.in-position' - - (bit, out) - -* 'axis.N.index-enable' - - (bit, I/O) - -* 'axis.N.jog-counts' - - (s32, in) Connect to the 'counts' pin of an external encoder to use a - physical jog wheel. - -* 'axis.N.jog-enable' - - (bit, in) When TRUE (and in manual mode), any change in 'jog-counts' - will result in motion. When false, 'jog-counts' is ignored. - -* 'axis.N.jog-scale' - - (float, in) Sets the distance moved for each count on 'jog-counts', in - machine units. - -* 'axis.N.jog-vel-mode' - - (bit, in) When FALSE (the default), the jogwheel operates in position - mode. The axis will move exactly jog-scale units for each count, - regardless of how long that might take. When TRUE, the wheel operates - in velocity mode - motion stops when the wheel stops, even if that - means the commanded motion is not completed. - -* 'axis.N.joint-pos-cmd' - - (float, out) The joint (as opposed to motor) commanded position. There - may be an offset between the joint and motor positions--for example, - the homing process sets this offset. - -* 'axis.N.joint-pos-fb' - - (float, out) The joint (as opposed to motor) feedback position. - -* 'axis.N.joint-vel-cmd' - - (float, out) - -* 'axis.N.kb-jog-active' - - (bit, out) - -* 'axis.N.motor-pos-cmd' - - (float, out) The commanded position for this joint. - -* 'axis.N.motor-pos-fb' - - (float, in) The actual position for this joint. - -* 'axis.N.neg-hard-limit' - - (bit, out) - -* 'axis.N.pos-lim-sw-in' - - (bit, in) Should be driven TRUE if the positive limit switch for this - joint is closed. - -* 'axis.N.pos-hard-limit' - - (bit, out) - -* 'axis.N.neg-lim-sw-in' - - (bit, in) Should be driven TRUE if the negative limit switch for this - joint is closed. - -* 'axis.N.wheel-jog-active' - - (bit, out) - -=== Parameters - -* 'axis.N.home-state' - - Reflects the step of homing currently taking place. - -== iocontrol - -iocontrol − accepts NML I/O commands, interacts with HAL in userspace. - -The signals are turned on and off in userspace - if you have strict -timing requirements or simply need more i/o, consider using the realtime -synchronized i/o provided by <> instead. - -=== Pins (((iocontrol (HAL pins)))) - -* 'iocontrol.0.coolant-flood' - - (bit, out) TRUE when flood coolant is requested. - -* 'iocontrol.0.coolant-mist' - - (bit, out) TRUE when mist coolant is requested. - -* 'iocontrol.0.emc-enable-in' - - (bit, in) Should be driven FALSE when an external E-Stop condition - exists. - -* 'iocontrol.0.lube' - - (bit, out) TRUE when lube is commanded. - -* 'iocontrol.0.lube_level' - - (bit, in) Should be driven TRUE when lube level is high enough. - -* 'iocontrol.0.tool-change' - - (bit, out) TRUE when a tool change is requested. - -* 'iocontrol.0.tool-changed' - - (bit, in) Should be driven TRUE when a tool change is completed. - -* 'iocontrol.0.tool-number' - - (s32, out) The current tool number. - -* 'iocontrol.0.tool-prep-number' - - (s32, out) The number of the next tool, from the RS274NGC T-word. - -* 'iocontrol.0.tool-prepare' - - (bit, out) TRUE when a tool prepare is requested. - -* 'iocontrol.0.tool-prepared' - - (bit, in) Should be driven TRUE when a tool prepare is completed. - -* 'iocontrol.0.user-enable-out' - - (bit, out) FALSE when an internal E-Stop condition exists. - -* 'iocontrol.0.user-request-enable' - - (bit, out) TRUE when the user has requested that E-Stop be cleared. - - diff --git a/docs/src/config/emc2hal_es.txt b/docs/src/config/emc2hal_es.txt deleted file mode 100644 index 493f4b04680..00000000000 --- a/docs/src/config/emc2hal_es.txt +++ /dev/null @@ -1,439 +0,0 @@ -= Core Components - -[[cha:core-components]] (((Core Components))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -See also the man pages 'motion(9)'. - -[[sec:motion]] -== Motion - -These pins and parameters are created by the realtime 'motmod' module. -This module provides a HAL interface for LinuxCNC’s motion planner. -Basically motmod takes in a list of waypoints and generates a nice -blended and constraint-limited stream of joint positions to be fed -to the motor drives. - -Optionally the number of Digital I/O is set with num_dio. -The number of Analog I/O is set with num_aio. The default is 4 each. - -Pin names starting with 'axis' are actually joint values, but the pins -and parameters are still called 'axis.N'. -They are read and updated by the motion-controller function. - -Motion is loaded with the motmod command. A kins should be loaded -before motion. - ----- -loadrt motmod [base_period_nsec=period] [servo_period_nsec=period] -[traj_period_nsec=period] [num_joints=[0-9] ([num_dio=1-64] num_aio=1-16])] ----- - -=== Options - -If the number of digital I/O needed is more than the default of 4 you -can add up to 64 digital I/O by using the num_dio option when loading -motmod. - -If the number of analog I/O needed is more than the default of 4 you -can add up to 16 analog I/O by using the num_aio option when loading -motmod. - -=== Pins (((motion (HAL pins)))) - -These pins, parameters, and functions are created by the realtime -'motmod' module. - -* 'motion.adaptive-feed' - - (float, in) When adaptive feed is enabled with 'M52 P1' , the - commanded velocity is multiplied by this value. This effect is - multiplicative with the NML-level feed override value and - 'motion.feed-hold'. - -* 'motion.analog-in-00' - - (float, in) These pins (00, 01, 02, 03 or more if configured) are - controlled by M66. - -* 'motion.analog-out-00' - - (float, out) These pins (00, 01, 02, 03 or more if configured) are - controlled by M67 or M68. - -* 'motion.coord-error' - - (bit, out) TRUE when motion has encountered an error, such as - exceeding a soft limit - -* 'motion.coord-mode' - - (bit, out) TRUE when motion is in 'coordinated mode', as opposed to - 'teleop mode' - -* 'motion.current-vel' - - (float, out) The current tool velocity in user units per second. - -* 'motion.digital-in-00' - - (bit, in) These pins (00, 01, 02, 03 or more if configured) are - controlled by M62-65. - -* 'motion.digital-out-00' - - (bit, out) These pins (00, 01, 02, 03 or more if configured) are - controlled by the 'M62-65'. - -* 'motion.distance-to-go' - - (float,out) The distance remaining in the current move. - -* 'motion.enable' - - (bit, in) If this bit is driven FALSE, motion stops, the machine is - placed in the 'machine off' state, and a message is displayed for the - operator. For normal motion, drive this bit TRUE. - -* 'motion.feed-hold' - - (bit, in) When Feed Stop Control is enabled with 'M53 P1', and this - bit is TRUE, the feed rate is set to 0. - -* 'motion.in-position' - - (bit, out) TRUE if the machine is in position. - -* 'motion.motion-enabled' - - (bit, out) TRUE when in 'machine on' state. - -* 'motion.on-soft-limit' - - (bit, out) TRUE when the machine is on a soft limit. - -* 'motion.probe-input' - - (bit, in) 'G38.x' uses the value on this pin to determine when the - probe has made contact. - TRUE for probe contact closed (touching), - FALSE for probe contact open. - -* 'motion.program-line' - - (s32, out) The current program line while executing. Zero if not - running or between lines while single stepping. - -* 'motion.requested-vel' - - (float, out) The current requested velocity in user units per second - from the F=n setting in the G Code file. No feed overrides or any other - adjustments are applied to this pin. - -* 'motion.spindle-at-speed' - - (bit, in) Motion will pause until this pin is TRUE, under the - following conditions: before the first feed move after each spindle - start or speed change; before the start of every chain of - spindle-synchronized moves; and if in CSS mode, at every rapid to feed - transition. This input can be used to ensure that the spindle is up to - speed before starting a cut, or that a lathe spindle in CSS mode has - slowed down after a large to small facing pass before starting the next - pass at the large diameter. Many VFDs have an 'at speed' output. - Otherwise, it is easy to generate this signal with the 'HAL near' - component, by comparing requested and actual spindle speeds. - -* 'motion.spindle-brake' - - (bit, out) TRUE when the spindle brake should be applied. - -* 'motion.spindle-forward' - - (bit, out) TRUE when the spindle should rotate forward. - -* 'motion.spindle-index-enable' - - (bit, I/O) For correct operation of spindle synchronized moves, this - pin must be hooked to the index-enable pin of the spindle encoder. - -* 'motion.spindle-on' - - (bit, out) TRUE when spindle should rotate. - -* 'motion.spindle-reverse' - - (bit, out) TRUE when the spindle should rotate backward - -* 'motion.spindle-revs' - - (float, in) For correct operation of spindle synchronized moves, this - signal must be hooked to the position pin of the spindle encoder. The - spindle encoder position should be scaled such that spindle-revs - increases by 1.0 for each rotation of the spindle in the clockwise - ('M3') direction. - -* 'motion.spindle-speed-in' - - (float, in) Feedback of actual spindle speed in rotations per second. - This is used by feed-per-revolution motion ('G95'). If your spindle - encoder driver does not have a velocity output, you - can generate a suitable one by sending the spindle position through a - 'ddt' component. If you do not have a spindle encoder, you can loop - back 'motion.spindle-speed-out-rps'. - -* 'motion.spindle-speed-out' - - (float, out) Commanded spindle speed in rotations per minute. Positive - for spindle forward ('M3'), negative for spindle reverse ('M4'). - -* 'motion.spindle-speed-out-rps' - - (float, out) Commanded spindle speed in rotations per second. Positive - for spindle forward ('M3'), negative for spindle reverse ('M4'). - -* 'motion.teleop-mode' - - (bit, out) TRUE when motion is in 'teleop mode', as opposed to - 'coordinated mode' - -* 'motion.tooloffset.x ... motion.tooloffset.w' - - (float, out, one per axis) shows the tool offset in effect; - it could come from the tool table ('G43' active), or it could - come from the gcode ('G43.1' active) - -=== Parameters - -Many of these parameters serve as debugging aids, and are subject to -change or removal at any time. - -* 'motion-command-handler.time' - - (s32, RO) - -* 'motion-command-handler.tmax' - - (s32, RW) - -* 'motion-controller.time' - - (s32, RO) - -* 'motion-controller.tmax' - - (s32, RW) - -* 'motion.debug-bit-0' - - (bit, RO) This is used for debugging purposes. - -* 'motion.debug-bit-1' - - (bit, RO) This is used for debugging purposes. - -* 'motion.debug-float-0' - - (float, RO) This is used for debugging purposes. - -* 'motion.debug-float-1' - - (float, RO) This is used for debugging purposes. - -* 'motion.debug-float-2' - - (float, RO) This is used for debugging purposes. - -* 'motion.debug-float-3' - - (float, RO) This is used for debugging purposes. - -* 'motion.debug-s32-0' - - (s32, RO) This is used for debugging purposes. - -* 'motion.debug-s32-1' - - (s32, RO) This is used for debugging purposes. - -* 'motion.servo.last-period' - - (u32, RO) The number of CPU cycles between invocations of the servo - thread. Typically, this number divided by the CPU speed gives the time - in seconds, and can be used to determine whether the realtime motion - controller is meeting its timing constraints - -* 'motion.servo.last-period-ns' - - (float, RO) - -* 'motion.servo.overruns' - - (u32, RW) By noting large differences between successive values of - 'motion.servo.last-period' , the motion controller can determine that - there has probably been a - failure to meet its timing constraints. Each time such a failure is - detected, this value is incremented. - -=== Functions - -Generally, these functions are both added to the servo-thread in the -order shown. - -* 'motion-command-handler' - - Processes motion commands coming from user space - -* 'motion-controller' - - Runs the LinuxCNC motion controller - -== Axis (Joints) - -These pins and parameters are created by the realtime 'motmod' -module. These are actually joint values, but the pins and parameters -are still called 'axis.N'.footnote:[In 'trivial kinematics' machines, -there is a one-to-one correspondence between joints and axes.] -They are read and updated by the 'motion-controller' function. - -=== Pins (((axis (HAL pins)))) - -* 'axis.N.active' - - (bit, out) - -* 'axis.N.amp-enable-out' - - (bit, out) TRUE if the amplifier for this joint should be enabled - -* 'axis.N.amp-fault-in' - - (bit, in) Should be driven TRUE if an external fault is detected with - the amplifier for this joint - -* 'axis.N.backlash-corr' - - (float, out) - -* 'axis.N.backlash-filt' - - (float, out) - -* 'axis.N.backlash-vel' - - (float, out) - -* 'axis.N.coarse-pos-cmd' - - (float, out) - -* 'axis.N.error' - - (bit, out) - -* 'axis.N.f-error' - - (float, out) - -* 'axis.N.f-error-lim' - - (float, out) - -* 'axis.N.f-errored' - - (bit, out) - -* 'axis.N.faulted' - - (bit, out) - -* 'axis.N.free-pos-cmd' - - (float, out) - -* 'axis.N.free-tp-enable' - - (bit, out) - -* 'axis.N.free-vel-lim' - - (float, out) - -* 'axis.N.home-sw-in' - - (bit, in) Should be driven TRUE if the home switch for this joint is - closed. - -* 'axis.N.homed' - - (bit, out) - -* 'axis.N.homing' - - (bit, out) TRUE if the joint is currently homing - -* 'axis.N.in-position' - - (bit, out) - -* 'axis.N.index-enable' - - (bit, I/O) - -* 'axis.N.jog-counts' - - (s32, in) Connect to the 'counts' pin of an external encoder to use a - physical jog wheel. - -* 'axis.N.jog-enable' - - (bit, in) When TRUE (and in manual mode), any change in 'jog-counts' - will result in motion. When false, 'jog-counts' is ignored. - -* 'axis.N.jog-scale' - - (float, in) Sets the distance moved for each count on 'jog-counts', in - machine units. - -* 'axis.N.jog-vel-mode' - - (bit, in) When FALSE (the default), the jogwheel operates in position - mode. The axis will move exactly jog-scale units for each count, - regardless of how long that might take. When TRUE, the wheel operates - in velocity mode - motion stops when the wheel stops, even if that - means the commanded motion is not completed. - -* 'axis.N.joint-pos-cmd' - - (float, out) The joint (as opposed to motor) commanded position. There - may be an offset between the joint and motor positions--for example, - the homing process sets this offset. - -* 'axis.N.joint-pos-fb' - - (float, out) The joint (as opposed to motor) feedback position. - -* 'axis.N.joint-vel-cmd' - - (float, out) - -* 'axis.N.kb-jog-active' - - (bit, out) - -* 'axis.N.motor-pos-cmd' - - (float, out) The commanded position for this joint. - -* 'axis.N.motor-pos-fb' - - (float, in) The actual position for this joint. - -* 'axis.N.neg-hard-limit' - - (bit, out) - -* 'axis.N.pos-lim-sw-in' - - (bit, in) Should be driven TRUE if the positive limit switch for this - joint is closed. - -* 'axis.N.pos-hard-limit' - - (bit, out) - -* 'axis.N.neg-lim-sw-in' - - (bit, in) Should be driven TRUE if the negative limit switch for this - joint is closed. - -* 'axis.N.wheel-jog-active' - - (bit, out) - -=== Parameters - -* 'axis.N.home-state' - - Reflects the step of homing currently taking place. - -== iocontrol - -iocontrol − accepts NML I/O commands, interacts with HAL in userspace. - -The signals are turned on and off in userspace - if you have strict -timing requirements or simply need more i/o, consider using the realtime -synchronized i/o provided by <> instead. - -=== Pins (((iocontrol (HAL pins)))) - -* 'iocontrol.0.coolant-flood' - - (bit, out) TRUE when flood coolant is requested. - -* 'iocontrol.0.coolant-mist' - - (bit, out) TRUE when mist coolant is requested. - -* 'iocontrol.0.emc-enable-in' - - (bit, in) Should be driven FALSE when an external E-Stop condition - exists. - -* 'iocontrol.0.lube' - - (bit, out) TRUE when lube is commanded. - -* 'iocontrol.0.lube_level' - - (bit, in) Should be driven TRUE when lube level is high enough. - -* 'iocontrol.0.tool-change' - - (bit, out) TRUE when a tool change is requested. - -* 'iocontrol.0.tool-changed' - - (bit, in) Should be driven TRUE when a tool change is completed. - -* 'iocontrol.0.tool-number' - - (s32, out) The current tool number. - -* 'iocontrol.0.tool-prep-number' - - (s32, out) The number of the next tool, from the RS274NGC T-word. - -* 'iocontrol.0.tool-prepare' - - (bit, out) TRUE when a tool prepare is requested. - -* 'iocontrol.0.tool-prepared' - - (bit, in) Should be driven TRUE when a tool prepare is completed. - -* 'iocontrol.0.user-enable-out' - - (bit, out) FALSE when an internal E-Stop condition exists. - -* 'iocontrol.0.user-request-enable' - - (bit, out) TRUE when the user has requested that E-Stop be cleared. - - diff --git a/docs/src/config/images/HomeAxisTravel.png b/docs/src/config/images/HomeAxisTravel.png deleted file mode 100644 index c30cf12ad13..00000000000 Binary files a/docs/src/config/images/HomeAxisTravel.png and /dev/null differ diff --git a/docs/src/config/images/HomeAxisTravel.svg b/docs/src/config/images/HomeAxisTravel.svg deleted file mode 100644 index 160dd9a9a20..00000000000 --- a/docs/src/config/images/HomeAxisTravel.svg +++ /dev/null @@ -1,3338 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 1 - -1 - a - b - c - d - e - - - - - - - - - - - - - - - - - + - - diff --git a/docs/src/config/images/calibration-1.png b/docs/src/config/images/calibration-1.png deleted file mode 100644 index 8f6b6c7766b..00000000000 Binary files a/docs/src/config/images/calibration-1.png and /dev/null differ diff --git a/docs/src/config/images/calibration-2.png b/docs/src/config/images/calibration-2.png deleted file mode 100644 index d52f742b47f..00000000000 Binary files a/docs/src/config/images/calibration-2.png and /dev/null differ diff --git a/docs/src/config/images/calibration-3.png b/docs/src/config/images/calibration-3.png deleted file mode 100644 index 72655a4eb9c..00000000000 Binary files a/docs/src/config/images/calibration-3.png and /dev/null differ diff --git a/docs/src/config/images/configuration-selector.png b/docs/src/config/images/configuration-selector.png deleted file mode 100644 index 165dfa46a31..00000000000 Binary files a/docs/src/config/images/configuration-selector.png and /dev/null differ diff --git a/docs/src/config/images/d-term.png b/docs/src/config/images/d-term.png deleted file mode 100644 index 4036263acc0..00000000000 Binary files a/docs/src/config/images/d-term.png and /dev/null differ diff --git a/docs/src/config/images/emc2-motion-homing-diag.dxf b/docs/src/config/images/emc2-motion-homing-diag.dxf deleted file mode 100644 index ce00d55dd96..00000000000 --- a/docs/src/config/images/emc2-motion-homing-diag.dxf +++ /dev/null @@ -1,8656 +0,0 @@ -999 -dxflib 2.0.4.8 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$USERR4 - 40 -0.0 - 9 -$AXISUNIT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMTAD - 70 -0 - 9 -$VISRETAIN - 70 -0 - 9 -$TILEMODE - 70 -1 - 9 -$SHADEDIF - 70 -70 - 9 -$USERR5 - 40 -0.0 - 9 -$UCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$ATTREQ - 70 -1 - 9 -$CHAMFERA - 40 -0.0 - 9 -$MENU - 1 -acad - 9 -$CLAYER - 8 -0 - 9 -$UCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$CHAMFERB - 40 -0.0 - 9 -$DIMASZ - 40 -0.18 - 9 -$TRACEWID - 40 -0.05 - 9 -$REGENMODE - 70 -1 - 9 -$ORTHOMODE - 70 -0 - 9 -$EXTMIN - 10 --19.0350000000000001 - 20 -22.75 - 30 -0.0 - 9 -$PUCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$ANGBASE - 50 -0.0 - 9 -$USRTIMER - 70 -1 - 9 -$SKETCHINC - 40 -0.1 - 9 -$DIMGAP - 40 -0.09 - 9 -$DIMTFAC - 40 -1.0 - 9 -$DIMSAH - 70 -0 - 9 -$DIMALT - 70 -0 - 9 -$DIMSHO - 70 -1 - 9 -$PUCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$SURFTYPE - 70 -6 - 9 -$SPLFRAME - 70 -0 - 9 -$AXISMODE - 70 -0 - 9 -$DIMTSZ - 40 -0.0 - 9 -$LIMMIN - 10 -0.0 - 20 -0.0 - 9 -$DWGCODEPAGE - 3 -dos850 - 9 -$SURFTAB1 - 70 -6 - 9 -$SPLINESEGS - 70 -8 - 9 -$BLIPMODE - 70 -1 - 9 -$AUPREC - 70 -0 - 9 -$LUNITS - 70 -2 - 9 -$UNITMODE - 70 -0 - 9 -$USERI1 - 70 -0 - 9 -$SURFTAB2 - 70 -6 - 9 -$SKPOLY - 70 -0 - 9 -$ELEVATION - 40 -0.0 - 9 -$DIMCEN - 40 -0.09 - 9 -$DIMRND - 40 -0.0 - 9 -$INSBASE - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$USERI2 - 70 -0 - 9 -$UCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PELEVATION - 40 -0.0 - 9 -$DIMEXO - 40 -0.0625 - 9 -$TEXTSIZE - 40 -0.2 - 9 -$DRAGMODE - 70 -2 - 9 -$FILLMODE - 70 -1 - 9 -$EXTMAX - 10 --11.9649999999999999 - 20 -32.8500000000000014 - 30 -0.0 - 9 -$INSUNITS - 70 -1 - 9 -$USERI3 - 70 -0 - 9 -$SURFU - 70 -6 - 9 -$ANGDIR - 70 -0 - 9 -$TDUSRTIMER - 40 -0.0 - 9 -$DIMZIN - 70 -0 - 9 -$DIMDLE - 40 -0.0 - 9 -$DIMSCALE - 40 -1.0 - 9 -$WORLDVIEW - 70 -1 - 9 -$USERI4 - 70 -0 - 9 -$SURFV - 70 -6 - 9 -$OSMODE - 70 -0 - 9 -$QTEXTMODE - 70 -0 - 9 -$LIMMAX - 10 -0.0 - 20 -0.0 - 9 -$USERI5 - 70 -0 - 9 -$HANDLING - 70 -1 - 9 -$PDMODE - 70 -0 - 9 -$LIMCHECK - 70 -0 - 9 -$THICKNESS - 40 -0.0 - 9 -$DIMSE1 - 70 -0 - 9 -$DIMLIM - 70 -0 - 9 -$DIMTXT - 40 -0.18 - 9 -$ATTMODE - 70 -1 - 9 -$PEXTMAX - 10 --100000000000000000000.0 - 20 --100000000000000000000.0 - 30 --100000000000000000000.0 - 9 -$PEXTMIN - 10 -100000000000000000000.0 - 20 -100000000000000000000.0 - 30 -100000000000000000000.0 - 9 -$PUCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$SPLINETYPE - 70 -6 - 9 -$TDINDWG - 40 -0.0 - 9 -$LUPREC - 70 -4 - 9 -$DIMSOXD - 70 -0 - 9 -$DIMLFAC - 40 -1.0 - 9 -$DIMSE2 - 70 -0 - 9 -$DIMTOH - 70 -1 - 9 -$CELTYPE - 6 -CONTINUOUS - 9 -$PLIMCHECK - 70 -0 - 9 -$PLINEWID - 40 -0.0 - 9 -$DIMSTYLE - 2 -STANDARD - 9 -$DIMTVP - 40 -0.0 - 9 -$DIMASO - 70 -1 - 9 -$DIMTM - 40 -0.0 - 9 -$DIMDLI - 40 -0.38 - 9 -$CECOLOR - 62 -256 - 9 -$TREEDEPTH - 70 -3020 - 9 -$PLIMMAX - 10 -12.0 - 20 -9.0 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$MAXACTVP - 70 -16 - 9 -$TDUPDATE - 40 -0.0 - 9 -$FILLETRAD - 40 -0.0 - 9 -$DIMCLRT - 70 -0 - 9 -$DIMALTD - 70 -2 - 9 -$DIMTIH - 70 -1 - 9 -$LTSCALE - 40 -1.0 - 9 -$PINSBASE - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$USERR1 - 40 -0.0 - 9 -$ATTDIA - 70 -0 - 9 -$PDSIZE - 40 -0.0 - 9 -$DIMCLRD - 70 -0 - 9 -$DIMEXE - 40 -0.18 - 9 -$PSLTSCALE - 70 -0 - 9 -$PLINEGEN - 70 -1 - 9 -$SHADEDGE - 70 -3 - 9 -$USERR2 - 40 -0.0 - 9 -$COORDS - 70 -0 - 9 -$TDCREATE - 40 -0.0 - 9 -$DIMCLRE - 70 -0 - 9 -$DIMTOFL - 70 -0 - 9 -$DIMALTF - 40 -25.3999999999999986 - 9 -$DIMTOL - 70 -0 - 9 -$DIMTP - 40 -0.0 - 9 -$TEXTSTYLE - 7 -STANDARD - 9 -$USERR3 - 40 -0.0 - 9 -$AUNITS - 70 -0 - 9 -$DIMTIX - 70 -0 - 9 -$MIRRTEXT - 70 -1 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -9 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PROCEDURE - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -35 -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PARAMS - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -13 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -OUTLINE - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -13 -390 -F - 0 -LAYER - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -DETECTIONS - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -35 -390 -F - 0 -LAYER - 5 -47 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -HOME_SWS - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -13 -390 -F - 0 -LAYER - 5 -48 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -INDEX_PULSES - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -13 -390 -F - 0 -LAYER - 5 -49 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -DESCRIPTION - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -13 -390 -F - 0 -LAYER - 5 -4A -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -GAPS - 70 -0 - 62 -7 - 6 -DOT -370 -18 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -0.75 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -0.18 - 42 -0.0625 - 43 -3.75 - 44 -0.18 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -0.18 -141 -2.5 -143 -0.03937007874016 -147 -0.09 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -4B -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.1500000000000004 - 20 -31.8000000000000007 - 30 -0.0 - 11 --17.8000000000000007 - 21 -31.8000000000000007 - 31 -0.0 - 0 -LWPOLYLINE - 5 -4C - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.1500000000000004 - 20 -31.8000000000000007 - 10 --15.3300000000000001 - 20 -31.8399999999999999 - 10 --15.3300000000000001 - 20 -31.7600000000000016 - 10 --15.1500000000000004 - 20 -31.8000000000000007 - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.1500000000000004 - 20 -26.8000000000000007 - 30 -0.0 - 11 --17.8000000000000007 - 21 -26.8000000000000007 - 31 -0.0 - 0 -LWPOLYLINE - 5 -4E - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.1500000000000004 - 20 -26.8000000000000007 - 10 --15.3300000000000001 - 20 -26.8399999999999999 - 10 --15.3300000000000001 - 20 -26.7600000000000016 - 10 --15.1500000000000004 - 20 -26.8000000000000007 - 0 -LINE - 5 -4F -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.1500000000000004 - 20 -29.3500000000000014 - 30 -0.0 - 11 --17.8000000000000007 - 21 -29.3500000000000014 - 31 -0.0 - 0 -LWPOLYLINE - 5 -50 - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.1500000000000004 - 20 -29.3500000000000014 - 10 --15.3300000000000001 - 20 -29.3900000000000006 - 10 --15.3300000000000001 - 20 -29.3099999999999987 - 10 --15.1500000000000004 - 20 -29.3500000000000014 - 0 -LINE - 5 -51 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.1500000000000004 - 20 -24.3500000000000014 - 30 -0.0 - 11 --17.8000000000000007 - 21 -24.3500000000000014 - 31 -0.0 - 0 -LWPOLYLINE - 5 -52 - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.1500000000000004 - 20 -24.3500000000000014 - 10 --15.3300000000000001 - 20 -24.3900000000000006 - 10 --15.3300000000000001 - 20 -24.3099999999999987 - 10 --15.1500000000000004 - 20 -24.3500000000000014 - 0 -LINE - 5 -53 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.25 - 20 -31.5 - 30 -0.0 - 11 --15.1500000000000004 - 21 -31.5 - 31 -0.0 - 0 -LWPOLYLINE - 5 -54 - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --16.25 - 20 -31.5 - 10 --16.0700000000000003 - 20 -31.4600000000000009 - 10 --16.0700000000000003 - 20 -31.5399999999999991 - 10 --16.25 - 20 -31.5 - 0 -LINE - 5 -55 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.4499999999999993 - 20 -26.5 - 30 -0.0 - 11 --15.1500000000000004 - 21 -26.5 - 31 -0.0 - 0 -LWPOLYLINE - 5 -56 - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --16.4499999999999993 - 20 -26.5 - 10 --16.2699999999999996 - 20 -26.4600000000000009 - 10 --16.2699999999999996 - 20 -26.5399999999999991 - 10 --16.4499999999999993 - 20 -26.5 - 0 -LINE - 5 -57 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.3000000000000007 - 20 -29.0500000000000007 - 30 -0.0 - 11 --15.1500000000000004 - 21 -29.0500000000000007 - 31 -0.0 - 0 -LWPOLYLINE - 5 -58 - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --16.3000000000000007 - 20 -29.0500000000000007 - 10 --16.120000000000001 - 20 -29.0100000000000016 - 10 --16.120000000000001 - 20 -29.0899999999999999 - 10 --16.3000000000000007 - 20 -29.0500000000000007 - 0 -LINE - 5 -59 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.3000000000000007 - 20 -24.0500000000000007 - 30 -0.0 - 11 --15.1500000000000004 - 21 -24.0500000000000007 - 31 -0.0 - 0 -LWPOLYLINE - 5 -5A - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --16.3000000000000007 - 20 -24.0500000000000007 - 10 --16.120000000000001 - 20 -24.0100000000000016 - 10 --16.120000000000001 - 20 -24.0899999999999999 - 10 --16.3000000000000007 - 20 -24.0500000000000007 - 0 -LINE - 5 -5B -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.4000000000000004 - 20 -28.75 - 30 -0.0 - 11 --16.3000000000000007 - 21 -28.75 - 31 -0.0 - 0 -LWPOLYLINE - 5 -5C - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.4000000000000004 - 20 -28.75 - 10 --15.5800000000000001 - 20 -28.7899999999999991 - 10 --15.5800000000000001 - 20 -28.7100000000000009 - 10 --15.4000000000000004 - 20 -28.75 - 0 -LINE - 5 -5D -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.3000000000000007 - 20 -23.75 - 30 -0.0 - 11 --16.3000000000000007 - 21 -23.75 - 31 -0.0 - 0 -LWPOLYLINE - 5 -5E - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.3000000000000007 - 20 -23.75 - 10 --15.4800000000000004 - 20 -23.7899999999999991 - 10 --15.4800000000000004 - 20 -23.7100000000000009 - 10 --15.3000000000000007 - 20 -23.75 - 0 -LINE - 5 -5F -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.3000000000000007 - 20 -31.1999999999999993 - 30 -0.0 - 11 --16.25 - 21 -31.1999999999999993 - 31 -0.0 - 0 -LWPOLYLINE - 5 -60 - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --18.3000000000000007 - 20 -31.1999999999999993 - 10 --18.120000000000001 - 20 -31.1600000000000001 - 10 --18.120000000000001 - 20 -31.2399999999999984 - 10 --18.3000000000000007 - 20 -31.1999999999999993 - 0 -LINE - 5 -61 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.6499999999999986 - 20 -26.1999999999999993 - 30 -0.0 - 11 --16.4499999999999993 - 21 -26.1999999999999993 - 31 -0.0 - 0 -LWPOLYLINE - 5 -62 - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --18.6499999999999986 - 20 -26.1999999999999993 - 10 --18.4699999999999989 - 20 -26.1600000000000001 - 10 --18.4699999999999989 - 20 -26.2399999999999984 - 10 --18.6499999999999986 - 20 -26.1999999999999993 - 0 -LINE - 5 -63 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.3000000000000007 - 20 -28.4499999999999993 - 30 -0.0 - 11 --15.4000000000000004 - 21 -28.4499999999999993 - 31 -0.0 - 0 -LWPOLYLINE - 5 -64 - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --18.3000000000000007 - 20 -28.4499999999999993 - 10 --18.120000000000001 - 20 -28.4100000000000001 - 10 --18.120000000000001 - 20 -28.4899999999999984 - 10 --18.3000000000000007 - 20 -28.4499999999999993 - 0 -LINE - 5 -65 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.1499999999999986 - 20 -23.4499999999999993 - 30 -0.0 - 11 --15.3000000000000007 - 21 -23.4499999999999993 - 31 -0.0 - 0 -LWPOLYLINE - 5 -66 - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --18.1499999999999986 - 20 -23.4499999999999993 - 10 --17.9699999999999989 - 20 -23.4100000000000001 - 10 --17.9699999999999989 - 20 -23.4899999999999984 - 10 --18.1499999999999986 - 20 -23.4499999999999993 - 0 -LINE - 5 -67 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.8000000000000007 - 20 -31.8000000000000007 - 30 -0.0 - 11 --15.3000000000000007 - 21 -31.8000000000000007 - 31 -0.0 - 0 -LINE - 5 -68 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.8000000000000007 - 20 -26.8000000000000007 - 30 -0.0 - 11 --15.3000000000000007 - 21 -26.8000000000000007 - 31 -0.0 - 0 -LINE - 5 -69 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.8000000000000007 - 20 -29.3500000000000014 - 30 -0.0 - 11 --15.3000000000000007 - 21 -29.3500000000000014 - 31 -0.0 - 0 -LINE - 5 -6A -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.8000000000000007 - 20 -24.3500000000000014 - 30 -0.0 - 11 --15.3000000000000007 - 21 -24.3500000000000014 - 31 -0.0 - 0 -LINE - 5 -6B -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.1500000000000004 - 20 -31.5 - 30 -0.0 - 11 --16.0500000000000007 - 21 -31.5 - 31 -0.0 - 0 -LINE - 5 -6C -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.1500000000000004 - 20 -26.5 - 30 -0.0 - 11 --16.25 - 21 -26.5 - 31 -0.0 - 0 -LINE - 5 -6D -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.1500000000000004 - 20 -29.0500000000000007 - 30 -0.0 - 11 --16.1000000000000014 - 21 -29.0500000000000007 - 31 -0.0 - 0 -LINE - 5 -6E -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.1500000000000004 - 20 -24.0500000000000007 - 30 -0.0 - 11 --16.1000000000000014 - 21 -24.0500000000000007 - 31 -0.0 - 0 -LINE - 5 -6F -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.5999999999999996 - 20 -28.75 - 30 -0.0 - 11 --16.3000000000000007 - 21 -28.75 - 31 -0.0 - 0 -LINE - 5 -70 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.5 - 20 -23.75 - 30 -0.0 - 11 --16.3000000000000007 - 21 -23.75 - 31 -0.0 - 0 -LINE - 5 -71 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.25 - 20 -31.1999999999999993 - 30 -0.0 - 11 --18.1000000000000014 - 21 -31.1999999999999993 - 31 -0.0 - 0 -LINE - 5 -72 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.4499999999999993 - 20 -26.1999999999999993 - 30 -0.0 - 11 --18.4499999999999993 - 21 -26.1999999999999993 - 31 -0.0 - 0 -LINE - 5 -73 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.4000000000000004 - 20 -28.4499999999999993 - 30 -0.0 - 11 --18.1000000000000014 - 21 -28.4499999999999993 - 31 -0.0 - 0 -LINE - 5 -74 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.3000000000000007 - 20 -23.4499999999999993 - 30 -0.0 - 11 --17.9499999999999993 - 21 -23.4499999999999993 - 31 -0.0 - 0 -LINE - 5 -75 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.3000000000000007 - 20 -31.3000000000000007 - 30 -0.0 - 11 --18.3000000000000007 - 21 -31.0 - 31 -0.0 - 0 -LINE - 5 -76 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.6499999999999986 - 20 -26.3000000000000007 - 30 -0.0 - 11 --18.6499999999999986 - 21 -25.8500000000000014 - 31 -0.0 - 0 -LINE - 5 -77 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.3000000000000007 - 20 -28.5500000000000007 - 30 -0.0 - 11 --18.3000000000000007 - 21 -28.25 - 31 -0.0 - 0 -LINE - 5 -78 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.1499999999999986 - 20 -23.5500000000000007 - 30 -0.0 - 11 --18.1499999999999986 - 21 -23.1000000000000014 - 31 -0.0 - 0 -MTEXT - 5 -79 -100 -AcDbEntity -100 -AcDbMText - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.1499999999999986 - 20 -23.0 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -5 - 72 -2 - 1 -1.000 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7A -100 -AcDbEntity -100 -AcDbMText - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.3000000000000007 - 20 -30.8999999999999986 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -5 - 72 -2 - 1 -1.000 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7B -100 -AcDbEntity -100 -AcDbMText - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.6499999999999986 - 20 -25.75 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -5 - 72 -2 - 1 -1.000 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7C -100 -AcDbEntity -100 -AcDbMText - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.3000000000000007 - 20 -28.1499999999999986 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -5 - 72 -2 - 1 -1.000 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -7D -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --19.0 - 20 -30.3000000000000007 - 30 -0.0 - 11 --19.0 - 21 -30.3000000000000007 - 31 -0.0 - 0 -LINE - 5 -7E -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --19.0 - 20 -27.8000000000000007 - 30 -0.0 - 11 --19.0 - 21 -27.8000000000000007 - 31 -0.0 - 0 -LINE - 5 -7F -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --19.0 - 20 -25.3000000000000007 - 30 -0.0 - 11 --19.0 - 21 -25.3000000000000007 - 31 -0.0 - 0 -LINE - 5 -80 -100 -AcDbEntity -100 -AcDbLine - 8 -PROCEDURE - 62 -7 -370 --1 - 6 -ByLayer - 10 --19.0 - 20 -22.8000000000000007 - 30 -0.0 - 11 --19.0 - 21 -22.8000000000000007 - 31 -0.0 - 0 -LINE - 5 -81 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --19.0 - 20 -30.3000000000000007 - 30 -0.0 - 11 --19.0 - 21 -32.7999999999999972 - 31 -0.0 - 0 -LINE - 5 -82 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --19.0 - 20 -32.7999999999999972 - 30 -0.0 - 11 --12.0 - 21 -32.7999999999999972 - 31 -0.0 - 0 -LINE - 5 -83 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.0 - 20 -32.7999999999999972 - 30 -0.0 - 11 --12.0 - 21 -30.3000000000000007 - 31 -0.0 - 0 -LINE - 5 -84 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.0 - 20 -30.3000000000000007 - 30 -0.0 - 11 --19.0 - 21 -30.3000000000000007 - 31 -0.0 - 0 -LINE - 5 -85 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --19.0 - 20 -27.8000000000000007 - 30 -0.0 - 11 --19.0 - 21 -30.3000000000000007 - 31 -0.0 - 0 -LINE - 5 -86 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.0 - 20 -30.3000000000000007 - 30 -0.0 - 11 --12.0 - 21 -27.8000000000000007 - 31 -0.0 - 0 -LINE - 5 -87 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.0 - 20 -27.8000000000000007 - 30 -0.0 - 11 --19.0 - 21 -27.8000000000000007 - 31 -0.0 - 0 -LINE - 5 -88 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --19.0 - 20 -25.3000000000000007 - 30 -0.0 - 11 --19.0 - 21 -27.8000000000000007 - 31 -0.0 - 0 -LINE - 5 -89 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.0 - 20 -27.8000000000000007 - 30 -0.0 - 11 --12.0 - 21 -25.3000000000000007 - 31 -0.0 - 0 -LINE - 5 -8A -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.0 - 20 -25.3000000000000007 - 30 -0.0 - 11 --19.0 - 21 -25.3000000000000007 - 31 -0.0 - 0 -LINE - 5 -8B -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --19.0 - 20 -22.8000000000000007 - 30 -0.0 - 11 --19.0 - 21 -25.3000000000000007 - 31 -0.0 - 0 -LINE - 5 -8C -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.0 - 20 -25.3000000000000007 - 30 -0.0 - 11 --12.0 - 21 -22.8000000000000007 - 31 -0.0 - 0 -LINE - 5 -8D -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.0 - 20 -22.8000000000000007 - 30 -0.0 - 11 --19.0 - 21 -22.8000000000000007 - 31 -0.0 - 0 -MTEXT - 5 -8E -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --18.6000000000000014 - 20 -32.4500000000000028 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -SEARCH_VEL\~=\~POSITIVE - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8F -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --18.6000000000000014 - 20 -27.4499999999999993 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -SEARCH_VEL\~=\~POSITIVE - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -90 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --18.6000000000000014 - 20 -30.0 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -SEARCH_VEL\~=\~POSITIVE - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -91 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --18.6000000000000014 - 20 -25.0 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -SEARCH_VEL\~=\~POSITIVE - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -92 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --18.6000000000000014 - 20 -32.2999999999999972 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -LATCH_VEL\~=\~NEGATIVE - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -93 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --18.6000000000000014 - 20 -27.3000000000000007 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -LATCH_VEL\~=\~NEGATIVE - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -94 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --18.6000000000000014 - 20 -29.8500000000000014 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -LATCH_VEL\~=\~POSITIVE - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -95 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --18.6000000000000014 - 20 -24.8500000000000014 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -LATCH_VEL\~=\~POSITIVE - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -96 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --18.6000000000000014 - 20 -32.1499999999999986 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -USE_INDEX\~=\~FALSE - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -97 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --18.6000000000000014 - 20 -27.1499999999999986 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -USE_INDEX\~=\~TRUE - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -98 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --18.6000000000000014 - 20 -29.6999999999999993 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -USE_INDEX\~=\~FALSE - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -99 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --18.6000000000000014 - 20 -24.6999999999999993 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -USE_INDEX\~=\~TRUE - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -9A -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --17.0500000000000007 - 20 -25.0 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -HOME_OFFSET\~=\~3.000 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -9B -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --17.0500000000000007 - 20 -32.4500000000000028 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -HOME_OFFSET\~=\~3.000 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -9C -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --17.0500000000000007 - 20 -27.4499999999999993 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -HOME_OFFSET\~=\~3.000 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -9D -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --17.0500000000000007 - 20 -30.0 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -HOME_OFFSET\~=\~3.000 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -9E -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --17.0500000000000007 - 20 -24.8500000000000014 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -HOME\~=\~1.000 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -9F -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --17.0500000000000007 - 20 -32.2999999999999972 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -HOME\~=\~1.000 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -A0 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --17.0500000000000007 - 20 -27.3000000000000007 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -HOME\~=\~1.000 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -A1 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 -13 - 6 -ByLayer - 10 --17.0500000000000007 - 20 -29.8500000000000014 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -HOME\~=\~1.000 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -A2 -100 -AcDbEntity -100 -AcDbLine - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.9000000000000004 - 20 -32.1000000000000014 - 30 -0.0 - 11 --15.9000000000000004 - 21 -31.0 - 31 -0.0 - 0 -LINE - 5 -A3 -100 -AcDbEntity -100 -AcDbLine - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.75 - 20 -32.1000000000000014 - 30 -0.0 - 11 --15.75 - 21 -31.3999999999999986 - 31 -0.0 - 0 -LINE - 5 -A4 -100 -AcDbEntity -100 -AcDbLine - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.9000000000000004 - 20 -27.0 - 30 -0.0 - 11 --15.9000000000000004 - 21 -26.3999999999999986 - 31 -0.0 - 0 -LINE - 5 -A5 -100 -AcDbEntity -100 -AcDbLine - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.75 - 20 -27.0 - 30 -0.0 - 11 --15.75 - 21 -26.3999999999999986 - 31 -0.0 - 0 -LINE - 5 -A6 -100 -AcDbEntity -100 -AcDbLine - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.9000000000000004 - 20 -29.5500000000000007 - 30 -0.0 - 11 --15.9000000000000004 - 21 -28.6499999999999986 - 31 -0.0 - 0 -LINE - 5 -A7 -100 -AcDbEntity -100 -AcDbLine - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.75 - 20 -29.5500000000000007 - 30 -0.0 - 11 --15.75 - 21 -28.25 - 31 -0.0 - 0 -LINE - 5 -A8 -100 -AcDbEntity -100 -AcDbLine - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.9000000000000004 - 20 -24.5500000000000007 - 30 -0.0 - 11 --15.9000000000000004 - 21 -23.6499999999999986 - 31 -0.0 - 0 -LINE - 5 -A9 -100 -AcDbEntity -100 -AcDbLine - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.75 - 20 -24.5500000000000007 - 30 -0.0 - 11 --15.75 - 21 -23.6499999999999986 - 31 -0.0 - 0 -LWPOLYLINE - 5 -AA - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -3 - 70 -0 - 10 --15.7302320000000009 - 20 -32.1292809999999989 - 10 --15.6500000000000004 - 20 -32.25 - 10 --15.4499999999999993 - 20 -32.25 - 0 -LWPOLYLINE - 5 -AB - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.7302320000000009 - 20 -32.1292809999999989 - 10 --15.6785309999999996 - 20 -32.1789690000000022 - 10 --15.7044409999999992 - 20 -32.1961900000000014 - 10 --15.7302320000000009 - 20 -32.1292809999999989 - 0 -LWPOLYLINE - 5 -AC - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -3 - 70 -0 - 10 --15.7302320000000009 - 20 -27.029281000000001 - 10 --15.6500000000000004 - 20 -27.1499999999999986 - 10 --15.4499999999999993 - 20 -27.1499999999999986 - 0 -LWPOLYLINE - 5 -AD - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.7302320000000009 - 20 -27.029281000000001 - 10 --15.6785309999999996 - 20 -27.0789690000000007 - 10 --15.7044409999999992 - 20 -27.09619 - 10 --15.7302320000000009 - 20 -27.029281000000001 - 0 -LWPOLYLINE - 5 -AE - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -3 - 70 -0 - 10 --15.7302320000000009 - 20 -29.5792810000000017 - 10 --15.6500000000000004 - 20 -29.6999999999999993 - 10 --15.4499999999999993 - 20 -29.6999999999999993 - 0 -LWPOLYLINE - 5 -AF - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.7302320000000009 - 20 -29.5792810000000017 - 10 --15.6785309999999996 - 20 -29.6289690000000014 - 10 --15.7044409999999992 - 20 -29.6461900000000007 - 10 --15.7302320000000009 - 20 -29.5792810000000017 - 0 -LWPOLYLINE - 5 -B0 - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -3 - 70 -0 - 10 --15.7302320000000009 - 20 -24.5792810000000017 - 10 --15.6500000000000004 - 20 -24.6999999999999993 - 10 --15.4499999999999993 - 20 -24.6999999999999993 - 0 -LWPOLYLINE - 5 -B1 - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.7302320000000009 - 20 -24.5792810000000017 - 10 --15.6785309999999996 - 20 -24.6289690000000014 - 10 --15.7044409999999992 - 20 -24.6461900000000007 - 10 --15.7302320000000009 - 20 -24.5792810000000017 - 0 -MTEXT - 5 -B2 -100 -AcDbEntity -100 -AcDbMText - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.4000000000000004 - 20 -32.25 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -HOME\~SWITCH\~TRIPS - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -B3 -100 -AcDbEntity -100 -AcDbMText - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.4000000000000004 - 20 -27.1499999999999986 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -HOME\~SWITCH\~TRIPS - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -B4 -100 -AcDbEntity -100 -AcDbMText - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.4000000000000004 - 20 -29.6999999999999993 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -HOME\~SWITCH\~TRIPS - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -B5 -100 -AcDbEntity -100 -AcDbMText - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.4000000000000004 - 20 -24.6999999999999993 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -HOME\~SWITCH\~TRIPS - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -B6 -100 -AcDbEntity -100 -AcDbMText - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.9000000000000004 - 20 -30.8999999999999986 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -5 - 72 -2 - 1 -3.000 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -B7 -100 -AcDbEntity -100 -AcDbMText - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.75 - 20 -28.1499999999999986 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -5 - 72 -2 - 1 -3.000 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LWPOLYLINE - 5 -B8 - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -3 - 70 -0 - 10 --15.8773909999999994 - 20 -27.0293519999999994 - 10 --15.6999999999999993 - 20 -27.3000000000000007 - 10 --15.5 - 20 -27.3000000000000007 - 0 -LWPOLYLINE - 5 -B9 - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.8773909999999994 - 20 -27.0293519999999994 - 10 --15.8260079999999999 - 20 -27.0793700000000008 - 10 --15.8520280000000007 - 20 -27.096423999999999 - 10 --15.8773909999999994 - 20 -27.0293519999999994 - 0 -LWPOLYLINE - 5 -BA - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -3 - 70 -0 - 10 --15.8773909999999994 - 20 -29.5793520000000001 - 10 --15.6999999999999993 - 20 -29.8500000000000014 - 10 --15.5 - 20 -29.8500000000000014 - 0 -LWPOLYLINE - 5 -BB - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.8773909999999994 - 20 -29.5793520000000001 - 10 --15.8260079999999999 - 20 -29.6293700000000015 - 10 --15.8520280000000007 - 20 -29.6464239999999997 - 10 --15.8773909999999994 - 20 -29.5793520000000001 - 0 -LWPOLYLINE - 5 -BC - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -3 - 70 -0 - 10 --15.8773909999999994 - 20 -32.1293519999999972 - 10 --15.6999999999999993 - 20 -32.3999999999999986 - 10 --15.5 - 20 -32.3999999999999986 - 0 -LWPOLYLINE - 5 -BD - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.8773909999999994 - 20 -32.1293519999999972 - 10 --15.8260079999999999 - 20 -32.1793699999999987 - 10 --15.8520280000000007 - 20 -32.1964240000000004 - 10 --15.8773909999999994 - 20 -32.1293519999999972 - 0 -LWPOLYLINE - 5 -BE - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -3 - 70 -0 - 10 --15.8773909999999994 - 20 -24.5793520000000001 - 10 --15.6999999999999993 - 20 -24.8500000000000014 - 10 --15.5 - 20 -24.8500000000000014 - 0 -LWPOLYLINE - 5 -BF - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.8773909999999994 - 20 -24.5793520000000001 - 10 --15.8260079999999999 - 20 -24.6293700000000015 - 10 --15.8520280000000007 - 20 -24.6464239999999997 - 10 --15.8773909999999994 - 20 -24.5793520000000001 - 0 -MTEXT - 5 -C0 -100 -AcDbEntity -100 -AcDbMText - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.4499999999999993 - 20 -27.3000000000000007 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -HOME\~SWITCH\~RELEASES - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -C1 -100 -AcDbEntity -100 -AcDbMText - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.4499999999999993 - 20 -29.8500000000000014 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -HOME\~SWITCH\~RELEASES - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -C2 -100 -AcDbEntity -100 -AcDbMText - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.4499999999999993 - 20 -32.3999999999999986 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -HOME\~SWITCH\~RELEASES - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -C3 -100 -AcDbEntity -100 -AcDbMText - 8 -HOME_SWS - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.4499999999999993 - 20 -24.8500000000000014 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -HOME\~SWITCH\~RELEASES - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -C4 -100 -AcDbEntity -100 -AcDbLine - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.0999999999999996 - 20 -26.0500000000000007 - 30 -0.0 - 11 --15.0999999999999996 - 21 -25.9499999999999993 - 31 -0.0 - 0 -LINE - 5 -C5 -100 -AcDbEntity -100 -AcDbLine - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.0999999999999996 - 20 -23.3000000000000007 - 30 -0.0 - 11 --15.0999999999999996 - 21 -23.1999999999999993 - 31 -0.0 - 0 -LINE - 5 -C6 -100 -AcDbEntity -100 -AcDbLine - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.5999999999999996 - 20 -26.0500000000000007 - 30 -0.0 - 11 --15.5999999999999996 - 21 -25.9499999999999993 - 31 -0.0 - 0 -LINE - 5 -C7 -100 -AcDbEntity -100 -AcDbLine - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.5999999999999996 - 20 -23.8500000000000014 - 30 -0.0 - 11 --15.5999999999999996 - 21 -23.1000000000000014 - 31 -0.0 - 0 -LINE - 5 -C8 -100 -AcDbEntity -100 -AcDbLine - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer - 10 --16.1000000000000014 - 20 -26.6000000000000014 - 30 -0.0 - 11 --16.1000000000000014 - 21 -25.8500000000000014 - 31 -0.0 - 0 -LINE - 5 -C9 -100 -AcDbEntity -100 -AcDbLine - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer - 10 --16.1000000000000014 - 20 -23.3000000000000007 - 30 -0.0 - 11 --16.1000000000000014 - 21 -23.1999999999999993 - 31 -0.0 - 0 -LINE - 5 -CA -100 -AcDbEntity -100 -AcDbLine - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer - 10 --16.6000000000000014 - 20 -26.0500000000000007 - 30 -0.0 - 11 --16.6000000000000014 - 21 -25.9499999999999993 - 31 -0.0 - 0 -LINE - 5 -CB -100 -AcDbEntity -100 -AcDbLine - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer - 10 --16.6000000000000014 - 20 -23.3000000000000007 - 30 -0.0 - 11 --16.6000000000000014 - 21 -23.1999999999999993 - 31 -0.0 - 0 -LINE - 5 -CC -100 -AcDbEntity -100 -AcDbLine - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer - 10 --17.1000000000000014 - 20 -26.0500000000000007 - 30 -0.0 - 11 --17.1000000000000014 - 21 -25.9499999999999993 - 31 -0.0 - 0 -LINE - 5 -CD -100 -AcDbEntity -100 -AcDbLine - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer - 10 --17.1000000000000014 - 20 -23.3000000000000007 - 30 -0.0 - 11 --17.1000000000000014 - 21 -23.1999999999999993 - 31 -0.0 - 0 -LINE - 5 -CE -100 -AcDbEntity -100 -AcDbLine - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer - 10 --17.6000000000000014 - 20 -26.0500000000000007 - 30 -0.0 - 11 --17.6000000000000014 - 21 -25.9499999999999993 - 31 -0.0 - 0 -LINE - 5 -CF -100 -AcDbEntity -100 -AcDbLine - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer - 10 --17.6000000000000014 - 20 -23.3000000000000007 - 30 -0.0 - 11 --17.6000000000000014 - 21 -23.1999999999999993 - 31 -0.0 - 0 -MTEXT - 5 -D0 -100 -AcDbEntity -100 -AcDbMText - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.3000000000000007 - 20 -25.6999999999999993 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -INDEX\~PULSES - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -D1 -100 -AcDbEntity -100 -AcDbMText - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer - 10 --14.8000000000000007 - 20 -22.9499999999999993 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -INDEX\~PULSES - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LWPOLYLINE - 5 -D2 - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -2 - 70 -0 - 10 --16.0721260000000008 - 20 -25.9451180000000008 - 10 --15.3000000000000007 - 20 -25.6999999999999993 - 0 -LWPOLYLINE - 5 -D3 - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --16.0721260000000008 - 20 -25.9451180000000008 - 10 --16.0101140000000015 - 20 -25.9091109999999993 - 10 --16.0007009999999994 - 20 -25.938763999999999 - 10 --16.0721260000000008 - 20 -25.9451180000000008 - 0 -LWPOLYLINE - 5 -D4 - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -2 - 70 -0 - 10 --15.5721260000000008 - 20 -23.1951180000000008 - 10 --14.8000000000000007 - 20 -22.9499999999999993 - 0 -LWPOLYLINE - 5 -D5 - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.5721260000000008 - 20 -23.1951180000000008 - 10 --15.5101139999999997 - 20 -23.1591109999999993 - 10 --15.5007009999999994 - 20 -23.188763999999999 - 10 --15.5721260000000008 - 20 -23.1951180000000008 - 0 -LWPOLYLINE - 5 -D6 - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -2 - 70 -0 - 10 --15.5699710000000007 - 20 -25.9307480000000012 - 10 --15.3000000000000007 - 20 -25.6999999999999993 - 0 -LWPOLYLINE - 5 -D7 - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.5699710000000007 - 20 -25.9307480000000012 - 10 --15.5268660000000001 - 20 -25.8734420000000007 - 10 --15.5066520000000008 - 20 -25.8970920000000007 - 10 --15.5699710000000007 - 20 -25.9307480000000012 - 0 -LWPOLYLINE - 5 -D8 - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -2 - 70 -0 - 10 --15.0699710000000007 - 20 -23.1807480000000012 - 10 --14.8000000000000007 - 20 -22.9499999999999993 - 0 -LWPOLYLINE - 5 -D9 - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.0699710000000007 - 20 -23.1807480000000012 - 10 --15.0268660000000001 - 20 -23.1234420000000007 - 10 --15.0066520000000008 - 20 -23.1470920000000007 - 10 --15.0699710000000007 - 20 -23.1807480000000012 - 0 -MTEXT - 5 -DA -100 -AcDbEntity -100 -AcDbMText - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer - 10 --15.5999999999999996 - 20 -23.0 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -5 - 72 -2 - 1 -3.000 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -DB -100 -AcDbEntity -100 -AcDbMText - 8 -INDEX_PULSES - 62 -7 -370 -13 - 6 -ByLayer - 10 --16.1000000000000014 - 20 -25.75 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -5 - 72 -2 - 1 -3.000 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -DC -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.0 - 20 -31.8000000000000007 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -SEARCH\~FOR\~HOME\~SWITCH\~(SEARCH_VEL) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -DD -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.0 - 20 -26.8000000000000007 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -SEARCH\~FOR\~HOME\~SWITCH\~(SEARCH_VEL) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -DE -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.0 - 20 -29.3500000000000014 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -SEARCH\~FOR\~HOME\~SWITCH\~(SEARCH_VEL) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -DF -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.0 - 20 -24.3500000000000014 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -SEARCH\~FOR\~HOME\~SWITCH\~(SEARCH_VEL) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -E0 -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.0 - 20 -29.0500000000000007 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -BACK\~OFF\~OF\~HOME\~SWITCH\~(SEARCH_VEL) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -E1 -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.0 - 20 -24.0500000000000007 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -BACK\~OFF\~OF\~HOME\~SWITCH\~(SEARCH_VEL) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -E2 -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.0 - 20 -31.5 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -FINAL\~DETECTION\~OF\~SWITCH\~(LATCH_VEL) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -E3 -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.0 - 20 -26.5599999999999987 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -FINAL\~DETECTION\~OF\~SWITCH\~AND - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -E4 -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.0 - 20 -26.4400000000000013 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -INDEX\~PULSE\~(LATCH_VEL) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -E5 -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.0 - 20 -28.75 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -FINAL\~DETECTION\~OF\~SWITCH\~(LATCH_VEL) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -E6 -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.0 - 20 -23.8099999999999987 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -FINAL\~DETECTION\~OF\~SWITCH\~AND - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -E7 -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.0 - 20 -23.6900000000000013 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -INDEX\~PULSE\~(LATCH_VEL) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -E8 -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.0 - 20 -31.1999999999999993 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -GO\~TO\~HOME\~POSITION\~(MAX_VEL) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -E9 -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.0 - 20 -26.1999999999999993 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -GO\~TO\~HOME\~POSITION\~(MAX_VEL) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -EA -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.0 - 20 -28.4499999999999993 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -GO\~TO\~HOME\~POSITION\~(MAX_VEL) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -EB -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.0 - 20 -23.4499999999999993 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -GO\~TO\~HOME\~POSITION\~(MAX_VEL) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LWPOLYLINE - 5 -EC - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -3 - 70 -0 - 10 --15.5 - 20 -31.8999999999999986 - 10 --15.3499999999999996 - 20 -32.0499999999999972 - 10 --15.1999999999999993 - 20 -32.0499999999999972 - 0 -LWPOLYLINE - 5 -ED - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --15.5 - 20 -31.8999999999999986 - 10 --15.4395030000000002 - 20 -31.9384979999999992 - 10 --15.4615019999999994 - 20 -31.9604970000000002 - 10 --15.5 - 20 -31.8999999999999986 - 0 -MTEXT - 5 -EE -100 -AcDbEntity -100 -AcDbMText - 8 -DESCRIPTION - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.1500000000000004 - 20 -32.0499999999999972 - 30 -0.0 - 40 -0.08 - 41 -100.0 - 71 -4 - 72 -2 - 1 -OVERSHOOT - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -EF -100 -AcDbEntity -100 -AcDbLine - 8 -GAPS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.1500000000000004 - 20 -24.3500000000000014 - 30 -0.0 - 11 --15.1500000000000004 - 21 -24.0500000000000007 - 31 -0.0 - 0 -LINE - 5 -F0 -100 -AcDbEntity -100 -AcDbLine - 8 -GAPS - 62 -256 -370 --1 - 6 -ByLayer - 10 --16.3000000000000007 - 20 -24.0500000000000007 - 30 -0.0 - 11 --16.3000000000000007 - 21 -23.75 - 31 -0.0 - 0 -LINE - 5 -F1 -100 -AcDbEntity -100 -AcDbLine - 8 -GAPS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.3000000000000007 - 20 -23.75 - 30 -0.0 - 11 --15.3000000000000007 - 21 -23.4499999999999993 - 31 -0.0 - 0 -LINE - 5 -F2 -100 -AcDbEntity -100 -AcDbLine - 8 -GAPS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.1500000000000004 - 20 -26.8000000000000007 - 30 -0.0 - 11 --15.1500000000000004 - 21 -26.5 - 31 -0.0 - 0 -LINE - 5 -F3 -100 -AcDbEntity -100 -AcDbLine - 8 -GAPS - 62 -256 -370 --1 - 6 -ByLayer - 10 --16.4499999999999993 - 20 -26.5 - 30 -0.0 - 11 --16.4499999999999993 - 21 -26.1999999999999993 - 31 -0.0 - 0 -LINE - 5 -F4 -100 -AcDbEntity -100 -AcDbLine - 8 -GAPS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.1500000000000004 - 20 -29.3500000000000014 - 30 -0.0 - 11 --15.1500000000000004 - 21 -29.0500000000000007 - 31 -0.0 - 0 -LINE - 5 -F5 -100 -AcDbEntity -100 -AcDbLine - 8 -GAPS - 62 -256 -370 --1 - 6 -ByLayer - 10 --16.3000000000000007 - 20 -29.0500000000000007 - 30 -0.0 - 11 --16.3000000000000007 - 21 -28.75 - 31 -0.0 - 0 -LINE - 5 -F6 -100 -AcDbEntity -100 -AcDbLine - 8 -GAPS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.4000000000000004 - 20 -28.75 - 30 -0.0 - 11 --15.4000000000000004 - 21 -28.4499999999999993 - 31 -0.0 - 0 -LINE - 5 -F7 -100 -AcDbEntity -100 -AcDbLine - 8 -GAPS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.1500000000000004 - 20 -31.8000000000000007 - 30 -0.0 - 11 --15.1500000000000004 - 21 -31.5 - 31 -0.0 - 0 -LINE - 5 -F8 -100 -AcDbEntity -100 -AcDbLine - 8 -GAPS - 62 -256 -370 --1 - 6 -ByLayer - 10 --16.25 - 20 -31.5 - 30 -0.0 - 11 --16.25 - 21 -31.1999999999999993 - 31 -0.0 - 0 -CIRCLE - 5 -F9 -100 -AcDbEntity -100 -AcDbCircle - 8 -DETECTIONS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.75 - 20 -31.8000000000000007 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 5 -FA -100 -AcDbEntity -100 -AcDbCircle - 8 -DETECTIONS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.9000000000000004 - 20 -31.5 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 5 -FB -100 -AcDbEntity -100 -AcDbCircle - 8 -DETECTIONS - 62 -256 -370 --1 - 6 -ByLayer - 10 --18.3000000000000007 - 20 -31.1999999999999993 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 5 -FC -100 -AcDbEntity -100 -AcDbCircle - 8 -DETECTIONS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.75 - 20 -29.3500000000000014 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 5 -FD -100 -AcDbEntity -100 -AcDbCircle - 8 -DETECTIONS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.9000000000000004 - 20 -29.0500000000000007 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 5 -FE -100 -AcDbEntity -100 -AcDbCircle - 8 -DETECTIONS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.75 - 20 -28.75 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 5 -FF -100 -AcDbEntity -100 -AcDbCircle - 8 -DETECTIONS - 62 -256 -370 --1 - 6 -ByLayer - 10 --18.3000000000000007 - 20 -28.4499999999999993 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 5 -100 -100 -AcDbEntity -100 -AcDbCircle - 8 -DETECTIONS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.75 - 20 -26.8000000000000007 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 5 -101 -100 -AcDbEntity -100 -AcDbCircle - 8 -DETECTIONS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.9000000000000004 - 20 -26.5 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 5 -102 -100 -AcDbEntity -100 -AcDbCircle - 8 -DETECTIONS - 62 -256 -370 --1 - 6 -ByLayer - 10 --16.1000000000000014 - 20 -26.5 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 5 -103 -100 -AcDbEntity -100 -AcDbCircle - 8 -DETECTIONS - 62 -256 -370 --1 - 6 -ByLayer - 10 --18.6499999999999986 - 20 -26.1999999999999993 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 5 -104 -100 -AcDbEntity -100 -AcDbCircle - 8 -DETECTIONS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.75 - 20 -24.3500000000000014 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 5 -105 -100 -AcDbEntity -100 -AcDbCircle - 8 -DETECTIONS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.9000000000000004 - 20 -24.0500000000000007 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 5 -106 -100 -AcDbEntity -100 -AcDbCircle - 8 -DETECTIONS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.75 - 20 -23.75 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 5 -107 -100 -AcDbEntity -100 -AcDbCircle - 8 -DETECTIONS - 62 -256 -370 --1 - 6 -ByLayer - 10 --15.5999999999999996 - 20 -23.75 - 30 -0.0 - 40 -0.025 - 0 -CIRCLE - 5 -108 -100 -AcDbEntity -100 -AcDbCircle - 8 -DETECTIONS - 62 -256 -370 --1 - 6 -ByLayer - 10 --18.1499999999999986 - 20 -23.4499999999999993 - 30 -0.0 - 40 -0.025 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -109 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -109 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -10B - 3 -HIDETEXT -350 -10A - 0 -DICTIONARYVAR - 5 -10A -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -10B -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/config/images/emc2-motion-homing-diag.eps b/docs/src/config/images/emc2-motion-homing-diag.eps deleted file mode 100644 index a82749e98cb..00000000000 --- a/docs/src/config/images/emc2-motion-homing-diag.eps +++ /dev/null @@ -1,1437 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Title: D:\JMK\Drawings\emc2-motion-homing-diag.FC7 -%%BoundingBox: 19 9 593 784 -%%Creator: PSCRIPT.DRV Version 4.0 -%%CreationDate: 09/05/04 02:12:16 -%%Pages: 1 -%%Requirements: None -%%DocumentNeededFonts: (atend) -%%DocumentSuppliedFonts: (atend) -%%LanguageLevel: 1 -%%EndComments - -%%BeginProlog -%%BeginProcSet: Pscript_Res_Emul 1.0 0 -/defineresource where{pop}{userdict begin/defineresource{userdict/Resources 2 -copy known{get begin}{15 dict dup begin put}ifelse exch readonly exch -currentdict 1 index known not{dup 30 dict def}if load 3 -1 roll 2 index put -end}bind readonly def/findresource{userdict/Resources get exch get exch get} -bind readonly def/resourceforall{pop pop pop pop}bind readonly def -/resourcestatus{userdict/Resources 2 copy known{get exch 2 copy known{get exch -known{0 -1 true}{pop pop false}ifelse}{pop pop pop false}ifelse}{pop pop false -}ifelse}bind readonly def end}ifelse -%%EndProcSet -%%BeginResource: procset Pscript_Win_Driver 2.0 0 -/Pscript_Win_Driver 200 dict dup begin -%%BeginResource: file Pscript_FatalError 2.0 0 -/FatalErrorIf{{initgraphics findfont exch scalefont setfont counttomark 3 div -cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def -%%EndResource -/VM? {vmstatus exch sub exch pop gt { [ -(This job requires more memory than is available in this printer.) 100 500 -(Try one or more of the following, and then print again:) 100 485 -(In the PostScript dialog box, click Optimize For Portability.) 115 470 -(In the Device Options dialog box, make sure the Available Printer Memory is accurate.) 115 455 -(Reduce the number of fonts in the document.) 115 440 -(Print the document in parts.) 115 425 -12 /Times-Roman showpage -(%%[ PrinterError: Low Printer VM ]%%) = -true FatalErrorIf}if} bind def -%%BeginResource: file Pscript_Win_Utils 2.0 0 -/|/def load def/,/load load |/~/exch , |/?/ifelse , |/!/pop , |/`/begin , |/^ -/index , |/@/dup , |/+/translate , |/$/roll , |/U/userdict , |/M/moveto , |/- -/rlineto , |/&/currentdict , |/:/gsave , |/;/grestore , |/F/false , |/T/true , -|/N/newpath , |/E/end , |/Ac/arc , |/An/arcn , |/A/ashow , |/D/awidthshow , | -/C/closepath , |/V/div , |/O/eofill , |/L/fill , |/I/lineto , |/-C/rcurveto , -|/-M/rmoveto , |/+S/scale , |/Ji/setfont , |/Lc/setlinecap , |/Lj/setlinejoin -, |/Lw/setlinewidth , |/S/show , |/LH/showpage , |/K/stroke , |/W/widthshow , -|/R/rotate , |/b{bind |}bind |/bd{bind |}bind |/xd{~ |}bd/ld{, |}bd/lw/Lw ld -/lc/Lc ld/lj/Lj ld/sg/setgray ld/L2? F/languagelevel where{! languagelevel 2 -ge{! T}if}if |/g{@ not{U/DefIf_save save put}if U/DefIf_bool 2 ^ put}b -/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e{DefIf_El ! -}b/self & |/reinitialize{[/TextInit/GraphInit/UtilsInit counttomark{@ where{ -self eq}{F}?{cvx exec}{!}?}repeat cleartomark}b/initialize{`{/ADO_mxRot ~ | -/TextInitialised? F | reinitialize E}{U/Pscript_Win_Data 200 dict @ ` put -/ADO_mxRot ~ |/TextInitialised? F | reinitialize}?}b/terminate{!{& self eq{ -exit}{E}?}loop E}b/suspend/terminate , |/resume{` Pscript_Win_Data `}b/snap{ -transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~ itransform}b -/dsnap{dtransform round ~ round ~ idtransform}b<04>cvn{}|/setjn{{statusdict -/jobname known{statusdict/jobname 3 -1 $ put}if}stopped cleartomark}b/solid{[] -0 setdash}b/setdsh{0 setdash}b/colspRefresh{}b/rp{4 2 $ M 1 ^ 0 - 0 ~ - neg 0 --}b/rr{1 ^ 0 - 0 ~ - neg 0 - C}b -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L1 2.0 0 -L2? not g{/rf{N rp L}b/fx{1 1 dtransform @ 0 ge{1 sub 1}{1 add -0.25}? 3 -1 $ -@ 0 ge{1 sub 1}{1 add -0.25}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{ -4 -2 $ snap + +S fx rf}b/rs{N rp C K}b/rc{N rp clip N}b/sg{setgray}b/sco{ -setrgbcolor}b/sgco{{sg}{sco}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L2 2.0 0 -L2? g{/colspA/DeviceGray |/colspABC/DeviceRGB |/setAorABC{{colspA}{colspABC}? -setcolorspace}b/rf/rectfill , |/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5 -}? 3 -1 $ @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ -idtransform}b/BZ{4 -2 $ snap + +S fx rf}b/rs/rectstroke , |/rc/rectclip , |/sg -{@ @ setcolor}b/sco{setcolor}b/colspRefresh{colspABC setcolorspace}b/sgco{{sg -}{sco}?}b/UtilsInit{F setglobal}b/definecolorrendering{/ColorRendering -defineresource !}b/findcolorrendering{@/ColorRendering resourcestatus{! ! -/ColorRendering findresource T}{! F}?}b/selectcolorrendering{@/ColorRendering -resourcestatus{! !/ColorRendering}{!/DefaultColorRendering/ColorRendering}? -findresource setcolorrendering}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Encoding 2.0 0 -/bullets{{/bullet}repeat}b/ANSIEncoding[/grave/acute/circumflex/tilde/macron -/breve/dotaccent/dieresis/ring/cedilla/hungarumlaut/ogonek/caron/dotlessi 18 -bullets StandardEncoding 32 95 getinterval aload ! 3 bullets/quotesinglbase -/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron -/guilsinglleft/OE 4 bullets/quoteleft/quoteright/quotedblleft/quotedblright -/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 2 bullets -/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section -/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered -/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph -/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter -/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis -/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute -/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls -/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute -/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve -/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex -/udieresis/yacute/thorn/ydieresis]| ANSIEncoding @ 39/quotesingle put 96/grave -put/ANSIEncodingOld ANSIEncoding 256 array copy | ANSIEncodingOld @[138 153 -154 169 172 174 177 178 179 181 185 188 189 190 208 215 221 222 240 247 253 -254]{/bullet put @}forall 166/bar put 176/ring put -%%EndResource -%%BeginResource: file Pscript_Win_Text 2.0 0 -/TextInit{TextInitialised? not{/Pscript_Windows_Font & |/TextInitialised? T | -/fM[1 0 0 -1 0 0]|/mFM matrix |/iMat[1 0 0.212557 neg 1 0 0]|}if}b/xUP null | -/yUP null |/uW null |/xSP null |/ySP null |/sW null |/copyfont{1 ^ length add -dict `{1 ^/FID ne{|}{! !}?}forall & E}b/rF{3 copyfont @ `/Encoding -ANSIEncoding &/CharStrings known{CharStrings/Eth known not{! ANSIEncodingOld} -if}if | E}b/mF{findfont ~{@/Encoding get @ StandardEncoding eq{! T}{{ -ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get -StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{rF}{3 copyfont}? ` -/OrigFontType ~ |/OrigFontName ~ | & E 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 -put fM makefont Pscript_Windows_Font 3 1 $ put}b/xF{scalefont -Pscript_Windows_Font 3 1 $ put}b/xMF{mFM astore makefont Pscript_Windows_Font -3 1 $ put}b/xF2/scalefont , |/xMF2{mFM astore makefont}b/sLT{: Lw -M -currentpoint snap M 0 - 0 Lc K ;}b/sSU{N/uW ~ |/yUP ~ |/xUP ~ |}b/sU{xUP yUP -uW sLT}b/sST{N/sW ~ |/ySP ~ |/xSP ~ |}b/sT{xSP ySP sW sLT}b/sR{: + R 0 0 M}b -/sRxy{: matrix astore concat 0 0 M}b/eR/; , | -%%EndResource -%%BeginResource: file Pscript_Win_Text_Bold 2.0 0 -/mBF{@ 4 copyfont `/FontName ~ |/OrigFontType ~ |/OrigFontName ~ | 0 -FontMatrix idtransform ! &/PaintType known{PaintType 0 eq{/PaintType 2 | -/StrokeWidth ~ |}{PaintType 1 eq PaintType 2 eq or PaintType 3 eq or & -/StrokeWidth known and{StrokeWidth add/StrokeWidth ~ |}{!}?}?}{!}? @ & E -definefont Pscript_Windows_Font 3 1 $ put}b/xBF{Pscript_Windows_Font ` 1 ^ -/FontName get 1 ^ scalefont 3 1 $ scalefont 2 copy ~ | ~ ! | E}b/xMBF{mFM -astore Pscript_Windows_Font ` 1 ^/FontName get 1 ^ makefont 3 1 $ makefont 2 -copy ~ | ~ ! | E}b/xBF2{/sB0 ~ mBF/sB1 sB0 3 -1 $ xBF sB1}b/xMBF2{/sB0 ~ mBF -mFM astore/sB1 sB0 3 -1 $ xMBF sB1}b/sB{: Pscript_Windows_Font currentfont get -Ji @ S ; S}b/asB{: Pscript_Windows_Font currentfont get Ji 3 copy A ; A}b/wsB{ -: Pscript_Windows_Font currentfont get Ji 4 copy W ; W}b/awsB{: -Pscript_Windows_Font currentfont get Ji 6 copy D ; D}b/sBT3{: @ S ; 1 1 -M S}b -/asBT3{: 3 copy A ; 1 1 -M A}b/wsBT3{: 4 copy W ; 1 1 -M W}b/awsBT3{: 6 copy D -; 1 1 -M D}b/mIF{iMat 4 3 -1 $ put 2 copyfont `/OrigFontType ~ |/OrigFontName -~ | @ & E definefont iMat makefont Pscript_Windows_Font 3 1 $ put}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics 2.0 0 -/SavedCTM null |/CTMsave{/SavedCTM SavedCTM currentmatrix |}b/CTMrestore{ -SavedCTM setmatrix}b/mp null |/ADO_mxRot null |/GDIHMatrix null | -/GDIHPatternDict 22 dict | GDIHPatternDict `/PatternType 1 |/PaintType 2 | -/Reps L2?{1}{5}? |/XStep 8 Reps mul |/YStep XStep |/BBox[0 0 XStep YStep]| -/TilingType 1 |/PaintProc{` 1 Lw[]0 setdash PaintData , exec E}b/FGnd null | -/BGnd null |/HS_Horizontal{horiz}b/HS_Vertical{vert}b/HS_FDiagonal{fdiag}b -/HS_BDiagonal{biag}b/HS_Cross{horiz vert}b/HS_DiagCross{fdiag biag}b/MaxXYStep -XStep YStep gt{XStep}{YStep}? |/horiz{Reps{0 4 M XStep 0 - 0 8 +}repeat 0 -8 -Reps mul + K}b/vert{Reps{4 0 M 0 YStep - 8 0 +}repeat 0 -8 Reps mul + K}b/biag -{Reps{0 0 M MaxXYStep @ - 0 YStep neg M MaxXYStep @ - 0 8 +}repeat 0 -8 Reps -mul + 0 YStep M 8 8 - K}b/fdiag{Reps{0 0 M MaxXYStep @ neg - 0 YStep M -MaxXYStep @ neg - 0 8 +}repeat 0 -8 Reps mul + MaxXYStep @ M 8 -8 - K}b E -/makehatch{GDIHPatternDict/PaintData 3 -1 $ put CTMsave GDIHMatrix setmatrix -GDIHPatternDict matrix mp CTMrestore ~ U ~ 2 ^ put}b/h0{/h0/HS_Horizontal -makehatch}b/h1{/h1/HS_Vertical makehatch}b/h2{/h2/HS_FDiagonal makehatch}b/h3{ -/h3/HS_BDiagonal makehatch}b/h4{/h4/HS_Cross makehatch}b/h5{/h5/HS_DiagCross -makehatch}b/GDIBWPatternDict 17 dict @ `/PatternType 1 |/PaintType L2?{1}{2}? -|/RepsV L2?{1}{6}? |/RepsH L2?{1}{5}? |/BBox[0 0 RepsH 1]|/TilingType 1 | -/XStep 1 |/YStep 1 |/Height 8 RepsV mul |/Width 8 |/mx[Width 0 0 Height neg 0 -Height]|/FGnd null |/BGnd null |/SetBGndFGnd L2?{{BGnd null ne{BGnd aload ! -sgco BBox aload ! 2 ^ sub ~ 3 ^ sub ~ rf}if FGnd null ne{FGnd aload ! sgco}if} -}{{}}? b/PaintProc{` SetBGndFGnd RepsH{Width Height F mx PaintData imagemask -Width 0 +}repeat E}b E |/GDIBWPatternMx null |/pfprep{save 4 1 $ -/PatternOfTheDay 4 1 $ GDIBWPatternDict `/PaintData ~ |/BGnd ~ |/FGnd ~ | E -CTMsave GDIBWPatternMx setmatrix GDIBWPatternDict matrix mp CTMrestore ~ !}b -/hrf null |/prf{pfprep ~ 6 1 $ 5 hrf restore}b/GraphInit{GDIHMatrix null eq{ -/SavedCTM matrix | : ADO_mxRot concat 0 0 snap + : 0.48 @ GDIHPatternDict ` -YStep mul ~ XStep mul ~ dsnap YStep V ~ XStep V ~ E +S/GDIHMatrix matrix -currentmatrix readonly | ; : 0.24 -0.24 +S GDIBWPatternDict ` Width Height E -dsnap +S/GDIBWPatternMx matrix currentmatrix readonly | ; ;}if}b/cirp{360 0 An -C}b/ellp{CTMsave + +S 0.5 0 M 0 0 0.5 360 0 An C CTMrestore}b/rrp{/rad ~ |/y2 -~ |/x2 ~ |/y1 ~ |/x1 ~ | x2 x1 add 2 V y1 M x1 y1 x1 y2 rad arct x1 y2 x2 y2 -rad arct x2 y2 x2 y1 rad arct x2 y1 x1 y1 rad arct C}b/RRp{CTMsave + +S/dyS ~ -|/dxS ~ | dxS 2 V 0 M 0 0 0 dyS 0.5 arct 0 dyS dxS dyS 0.5 arct dxS dyS dxS 0 -0.5 arct dxS 0 0 0 0.5 arct C CTMrestore}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L1 2.0 0 -L2? not g{/arct{arcto ! ! ! !}b/GDIpattfill{@ ` BGnd null ne PaintType 2 eq -and{: BGnd aload ! sgco fEOFill{O}{L}? ; FGnd aload ! U/fGray 2 ^ put{2}{4}? --1 $}if E @ patterncalc : 4 ^/PaintType get 2 eq{fGray{6 -1 $ sg}{8 -3 $ sco}? -}if fEOFill{eoclip}{clip}? N patternfill ; N}b/hrf{/fGray 1 ^ 6 eq | -4 $ N rp -C/fEOFill F | GDIpattfill}b/hfMain{/fEOFill ~ |/fGray ~ | GDIpattfill}b/hf{T -hfMain}b/hfW{F hfMain}b/hs{currentpoint strokepath M hfW}b/pfMain{/fEOFill ~ | -pfprep GDIpattfill restore N}b/pf{T pfMain}b/pfW{F pfMain}b/ps{currentpoint -strokepath M pfW}b/mpstr 1 string |/mp{~ @ length 12 add dict copy ` -/PatternCTM matrix currentmatrix |/PatternMatrix ~ |/PatWidth XStep mpstr -length mul |/PatHeight YStep |/FontType 3 |/Encoding 256 array | 3 string 0 1 -255{Encoding ~ @ 3 ^ cvs cvn put}for !/FontMatrix matrix |/FontBBox BBox | -/BuildChar{! @ ` XStep 0 FontBBox aload ! setcachedevice/PaintProc , E : exec -;}b & E ~ @ 3 -1 $ definefont}b/patterncalc{` : PatternCTM setmatrix -PatternMatrix concat BBox aload ! ! ! + pathbbox ; PatHeight V ceiling 4 1 $ -PatWidth V ceiling 4 1 $ PatHeight V floor 4 1 $ PatWidth V floor 4 1 $ 2 ^ -sub cvi abs ~ 3 ^ sub cvi abs ~ 4 2 $ PatHeight mul ~ PatWidth mul ~ E}b -/patternfill{5 -1 $ @ ` Ji PatternCTM setmatrix PatternMatrix concat 0 2 ^ 2 ^ -M 0 1 mpstr length 1 sub{1 ^ mpstr 3 1 $ put}for ! 2 ^{currentpoint 5 ^{mpstr -S}repeat YStep add M}repeat ! ! ! ! E}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L2 2.0 0 -L2? g{/mp/makepattern , |/hrf{6 eq setAorABC setpattern rectfill}b/hf{ -setAorABC setpattern O}b/hfW{setAorABC setpattern L}b/hs{setAorABC setpattern -K}b/pf{pfprep setpattern O restore N}b/pfW{pfprep setpattern L restore N}b/ps{ -pfprep setpattern K restore N}b}e -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images 2.0 0 -/iw 0 |/ih 0 |/im_save 0 |/s 0 |/polarity 0 |/smoothflag 0 |/mystring 0 |/bpc -0 |/setup1asciiproc{[currentfile mystring/readhexstring cvx/! cvx]cvx bind}b -/setup1binaryproc{[currentfile mystring/readstring cvx/! cvx]cvx bind}b -/setup2asciiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}b -/setup2binaryproc{currentfile/RunLengthDecode filter}b/mycolorspace{colspABC}| -/myimagedict{/myimagedict 10 dict | myimagedict @ `/ImageType 1 | -/MultipleDataSource F | E}b/imageprocarray[/setup1binaryproc/setup1asciiproc -/setup2binaryproc/setup2asciiproc/setup1binarydecodeproc/setup1asciidecodeproc -]|/L2Polarity{{[1 0]}{[0 1]}?}b/Q{/im_save save | imageprocarray ~ get/s ~ , | -L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring ~ -string |/bpc ~ |/ih ~ |/iw ~ |}b/X{/im_save save | imageprocarray ~ get/s ~ , -| L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring -~ string |/bpc ~ |/ih ~ |/iw ~ |}b/Z{im_save restore}b/Y{sgco myimagedict @ ` -/Width iw |/Height ih |/Decode polarity |/ImageMatrix[iw 0 0 ih 0 0]| -/DataSource s |/BitsPerComponent 1 |/Interpolate smoothflag | E imagemask}b -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images_L1 2.0 0 -L2? not g{/setup2asciiproc{[/Level2ImagesError , aload ! T FatalErrorIf}b -/setup2binaryproc/setup2asciiproc , |/L2Polarity{}|/Y{sgco iw ih polarity[iw 0 -0 ih 0 0]s imagemask}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L1 2.0 0 -L2? not g{/testsystemdict{where{systemdict eq{T}{F}?}{F}?}b/c 1 |/colorimage -where{! T}{F}?{/c 0 statusdict `/processcolors where{! ! processcolors}{ -/deviceinfo where{! deviceinfo/Colors known{!{deviceinfo/Colors get}}if}if}? E -| c 0 ne{/colorimage testsystemdict/setcolortransfer testsystemdict -/currentcolortransfer testsystemdict/currentcmykcolor testsystemdict and and -and not{/c 0 |}if}if}if c @ 1 ne ~ @ 3 ne ~ 4 ne and and{/c 0 |}if c 1 eq g{ -/expandbw{expandfactor mul round cvi bwclut ~ get 255 V}b/doclutimage{!/bwclut -~ | bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/expandfactor ~ |[/expandbw ,/exec , @ -currenttransfer ~]cvx bind settransfer iw ih bpc[iw 0 0 ih 0 0]s image}b}e c @ -3 eq ~ 4 eq or g{/nullproc{{}}|/concatutil{/exec , 7 -1 $/exec ,}b/defsubclut{ -1 add getinterval |}b/spconcattransfer{/Dclut ~ |/Cclut ~ |/Bclut ~ |/Aclut ~ -|/ncompute ~ , | currentcolortransfer[{Aclut ncompute}concatutil]cvx[{Bclut -ncompute}concatutil]cvx[{Cclut ncompute}concatutil]cvx[{Dclut ncompute} -concatutil]cvx setcolortransfer}b/setuprgbcluts{/bit3x rgbclut length 3 sub | -/bit1x bit3x 3 idiv |/rclut rgbclut |/gclut rclut 1 bit3x defsubclut/bclut -rclut 2 bit3x defsubclut}b}e c 3 eq g{/3compute{~ bit3x mul round cvi get 255 -V}b/doclutimage{/rgbclut ~ | ! setuprgbcluts/3compute rclut gclut bclut @ -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @]cvx nullproc nullproc -T 3 colorimage}b}e c 4 eq g{/ftoint{1 ~ sub 255 mul round cvi}b/stuffclut{ -cmykindex 3 -1 $ put}b/4compute{~ bit4x mul round cvi get 255 V}b -/invalidcolortable? T |/computecmykclut{setuprgbcluts/bit4x rgbclut length 3 -idiv 4 mul 4 sub |/cmykclut bit4x 4 add string |/cclut cmykclut |/mclut cclut -1 bit4x defsubclut/yclut cclut 2 bit4x defsubclut/kclut cclut 3 bit4x -defsubclut/cmykindex 0 | 0 1 bit1x{@/cmykindex ~ bit1x ~ sub 4 mul | 3 mul @ -rclut ~ get 255 V ~ @ gclut ~ get 255 V ~ bclut ~ get 255 V setrgbcolor -currentcmykcolor ftoint kclut stuffclut ftoint yclut stuffclut ftoint mclut -stuffclut ftoint cclut stuffclut}for}b/doclutimage{/rgbclut ~ | ! -invalidcolortable?{computecmykclut}if/4compute cclut mclut yclut kclut -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @ @]cvx nullproc -nullproc nullproc T 4 colorimage}b}e c 0 eq g{/a{3 mul 3 getinterval -putinterval ~ 3 add ~ 3 copy}b/8lookup/a , |/4lookup{/byte 1 ^ | -4 bitshift a -byte 15 and a}b/2lookup{/byte 1 ^ | -6 bitshift a byte -4 bitshift 3 and a -byte -2 bitshift 3 and a byte 3 and a}b/colorexpand{mystringexp 0 rgbclut 3 -copy 7 -1 $/mylookup , forall ! ! ! ! !}b/createexpandstr{/mystringexp ~ -mystring length mul string |}b/doclutimage{/rgbclut ~ | !/mylookup bpc 8 eq{3 -createexpandstr/8lookup}{bpc 4 eq{6 createexpandstr/4lookup}{12 -createexpandstr/2lookup}?}? , | iw ih bpc[iw 0 0 ih 0 0][s/exec ,/colorexpand -,/exec ,]cvx F 3 colorimage}b}e/colorimage where{! T}{F}? g{/do24image{iw ih 8 -[iw 0 0 ih 0 0]s F 3 colorimage}b}DefIf_El{/rgbtogray{/str ~ |/len str length -|/smlen len 3 idiv |/rstr str |/gstr str 1 len 1 sub getinterval |/bstr str 2 -len 2 sub getinterval | str @ 0 1 smlen 1 sub{@ 3 mul rstr 1 ^ get 0.3 mul -gstr 2 ^ get 0.59 mul add bstr 3 -1 $ get 0.11 mul add round cvi put @}for ! 0 -smlen getinterval}b/do24image{iw ih 8[iw 0 0 ih 0 0][s/exec ,/rgbtogray ,/exec -,]cvx bind image}b}e/doNimage{bpc 24 eq{do24image}{iw ih bpc[iw 0 0 ih 0 0]s -image}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L2 2.0 0 -L2? g{/doclutimage{/rgbclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[ -/Indexed colspABC hival rgbclut]setcolorspace myimagedict @ `/Width iw | -/Height ih |/Decode[0 hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s | -/BitsPerComponent bpc |/Interpolate smoothflag | E image}b/doCMYKclutimage{ -/CMYKclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[/Indexed/DeviceCMYK -hival CMYKclut]setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 -hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent bpc | -/Interpolate smoothflag | E image}b/doNimage{bpc 24 eq{colspABC}{colspA}? -setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode bpc 24 eq{[0 1 0 1 -0 1]}{[0 1]}? |/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent -bpc 24 eq{8}{bpc}? |/Interpolate smoothflag | E image}b/doCMYKimage{ -/DeviceCMYK setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 1 0 -1 0 1 0 1]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent 8 | -/Interpolate smoothflag | E image}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Type3_Hdr 2.0 0 -/GreNewFont{10 dict @ 3 1 $ | @ ` 4 1 $/FontType 3 |/FontMatrix ~ |/FontBBox ~ -|/Encoding 256 array | 0 1 255{Encoding ~/.notdef put}for/CharProcs 257 dict | -CharProcs/.notdef{}put/Metrics 257 dict | Metrics/.notdef 3 -1 $ put/BuildChar -{/char ~ |/fontdict ~ |/charname fontdict/Encoding get char get | fontdict -/Metrics get charname get aload ! setcachedevice fontdict ` Encoding char get -CharProcs ~ get E exec}| E definefont !}|/AddChar{` Encoding 3 1 $ put -CharProcs 3 1 $ put Metrics 3 1 $ put E}| -%%EndResource -%%BeginResource: file Pscript_Win_Type1_Hdr 2.0 0 -/FEbuf 2 string |/FEglyph 3 string |/FE{(G00)FEglyph copy ! 1 ~{@ 16 lt{ -/offset 2 store}{/offset 1 store}? @ 16 FEbuf cvrs FEglyph ~ offset ~ -putinterval 1 ^ ~ FEglyph cvn put}for}bind |/Type1Hdr{11 dict `/FontName ~ | -/PaintType ~ |/FontType 1 |/FontMatrix[1 3 ^ V 0 0 1 6 ^ V 0 0]| !/Encoding -256 array 0 1 255{1 ^ ~/.notdef put}for 3 ^ 3 ^ FE | ! !/FontBBox{0 0 0 0}| & -E currentfile eexec}bind | -%%EndResource -/pp 1 string |/ss 1 string |/rledecodebinary{/DC 0 |/BC 0 |{DC mystring length -ge{exit}if currentfile ss readstring ! 0 get/BC ~ | BC 127 le{/BC BC 1 add | -DC 1 DC BC add 1 sub{mystring ~ currentfile ss readstring ! 0 get put}for}{/BC -257 BC sub | currentfile ss readstring ! 0 get/pp ~ | DC 1 DC BC add 1 sub{ -mystring ~ pp put}for}?/DC DC BC add |}loop mystring}b/rledecodeascii{/DC 0 | -/BC 0 |{DC mystring length ge{exit}if currentfile ss readhexstring ! 0 get/BC -~ | BC 127 le{/BC BC 1 add | DC 1 DC BC add 1 sub{mystring ~ currentfile ss -readhexstring ! 0 get put}for}{/BC 257 BC sub | currentfile ss readhexstring ! -0 get/pp ~ | DC 1 DC BC add 1 sub{mystring ~ pp put}for}?/DC DC BC add |}loop -mystring}b/setup1asciidecodeproc{[/rledecodeascii cvx]cvx bind}b -/setup1binarydecodeproc{[/rledecodebinary cvx]cvx bind}b -%%BeginResource: file Pscript_Win_Compat 2.0 0 -userdict/Pscript_Win_Compat 13 dict dup begin/bd{bind def}bind def/ld{load def -}bd/CB{pop pop pop pop}bind def/B{pop pop pop pop}bind def/$x matrix def/SS{ -/pagesave save def}bind def/RS{/pagesave where{pop pagesave restore}{$x matrix -invertmatrix concat}ifelse}bind def/ANSIVec[0/grave 1/acute 2/circumflex 3 -/tilde 4/macron 5/breve 6/dotaccent 7/dieresis 8/ring 9/cedilla 10 -/hungarumlaut 11/ogonek 12/caron 13/dotlessi 39/quotesingle 96/grave 124/bar -130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135 -/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE -145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150 -/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156 -/oe 159/Ydieresis 160/space 161/exclamdown 164/currency 165/yen 166/brokenbar -167/section 168/dieresis 169/copyright 170/ordfeminine 171/guillemotleft 172 -/logicalnot 173/hyphen 174/registered 175/macron 176/degree 177/plusminus 178 -/twosuperior 179/threesuperior 180/acute 181/mu 182/paragraph 183 -/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 187 -/guillemotright 188/onequarter 189/onehalf 190/threequarters 191/questiondown -192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198 -/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204 -/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve -211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223 -/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229 -/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis -236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242 -/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248 -/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254 -/thorn 255/ydieresis]def currentdict{dup type/operatortype eq{[exch]cvx def}{ -pop pop}ifelse}forall/initialize{currentdict exch begin begin}bind def -/terminate{/@FL where not{pop end end}{pop}ifelse}bind def/suspend/terminate -load def/resume/initialize load def/M/moveto load def end put/Courier findfont -10 scalefont setfont -%%EndResource -end /ProcSet defineresource pop -%%EndResource -%%EndProlog - -%%BeginSetup -Pscript_Win_Compat dup /initialize get exec -[ 1.000 0 0 1.000 0 0 ] false /Pscript_Win_Driver /ProcSet findresource dup /initialize get exec - - -/mysetup [ 0.240 0 0 -0.240 18.960 782.880 ] | -%%EndSetup - -%%Page: 1 1 -%%BeginPageSetup -userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 2550 3300 rf ; -%%EndPageSetup - -: 0 0 2391 3229 rc -1318 2152 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1318 2183 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1318 2997 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1318 3028 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1164 2152 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1164 2183 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1164 2828 N M 0 231 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1164 3059 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1011 1983 N M 0 230 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1011 2213 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1011 2997 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1011 3028 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -857 2152 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -857 2183 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -857 2997 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -857 3028 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -703 2152 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -703 2183 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -703 2997 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -703 3028 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -549 2152 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -549 2183 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -549 2997 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -549 3028 N M 0 0 rr : 0 0 0 sco O ; : 1235 2243 434 36 rc 0 0 0 sco %%IncludeFont: Helvetica -(F0) cvn -0.906 - (Helvetica) cvn /Type1 -T -(Helvetica) cvn -mF -(F0_24_32) cvn -F0 -24 0 0 32 0 0 -xMF -F0_24_32 -Ji -1266 2243 M -2.773 0 (INDEX PULSES)A -; : 1389 3088 434 36 rc 0 0 0 sco F0_24_32 -Ji -1420 3088 M -2.773 0 (INDEX PULSES)A -; : 0 0 2391 3229 rc -1072 292 N M 0 338 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1072 630 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1118 292 N M 0 215 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1118 507 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1072 1860 N M 0 184 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1072 2044 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1118 1860 N M 0 184 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1118 2044 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1072 1076 N M 0 277 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1072 1353 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1118 1076 N M 0 400 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1118 1476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1072 2613 N M 0 277 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1072 2890 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1118 2613 N M 0 277 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1118 2890 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 283 N M 25 -37 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1149 246 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1149 246 N M 61 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1210 246 N M 0 0 rr : 0 0 0 sco O ; -1124 283 N M 16 -15 - -8 -6 - -8 21 - C : 0 0 0 sco O ; 1 Lw 1 Lc 1 Lj 0 0 0 sco K : 0 0 2391 3229 rc -1124 283 N M 16 -15 - 0 0 0 sco K ; -1140 268 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1140 268 N M -8 -6 - 0 0 0 sco K ; -1132 262 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1132 262 N M -8 21 - 0 0 0 sco K ; -1124 283 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 1851 N M 25 -37 - 0 0 0 sco K ; -1149 1814 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1149 1814 N M 61 0 - 0 0 0 sco K ; -1210 1814 N M 0 0 rr : 0 0 0 sco O ; -1124 1851 N M 16 -15 - -8 -6 - -8 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1124 1851 N M 16 -15 - 0 0 0 sco K ; -1140 1836 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1140 1836 N M -8 -6 - 0 0 0 sco K ; -1132 1830 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1132 1830 N M -8 21 - 0 0 0 sco K ; -1124 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 1067 N M 25 -37 - 0 0 0 sco K ; -1149 1030 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1149 1030 N M 61 0 - 0 0 0 sco K ; -1210 1030 N M 0 0 rr : 0 0 0 sco O ; -1124 1067 N M 16 -15 - -8 -6 - -8 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1124 1067 N M 16 -15 - 0 0 0 sco K ; -1140 1052 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1140 1052 N M -8 -6 - 0 0 0 sco K ; -1132 1046 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1132 1046 N M -8 21 - 0 0 0 sco K ; -1124 1067 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 2604 N M 25 -37 - 0 0 0 sco K ; -1149 2567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1149 2567 N M 61 0 - 0 0 0 sco K ; -1210 2567 N M 0 0 rr : 0 0 0 sco O ; -1124 2604 N M 16 -15 - -8 -5 - -8 20 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1124 2604 N M 16 -15 - 0 0 0 sco K ; -1140 2589 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1140 2589 N M -8 -5 - 0 0 0 sco K ; -1132 2584 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1132 2584 N M -8 20 - 0 0 0 sco K ; -1124 2604 N M 0 0 rr : 0 0 0 sco O ; : 1205 229 589 36 rc 0 0 0 sco F0_24_32 -Ji -1236 229 M -3.136 0 (HOME SWITCH TRIPS)A -; : 1205 1797 589 36 rc 0 0 0 sco F0_24_32 -Ji -1236 1797 M -3.136 0 (HOME SWITCH TRIPS)A -; : 1205 1013 589 36 rc 0 0 0 sco F0_24_32 -Ji -1236 1013 M -3.136 0 (HOME SWITCH TRIPS)A -; : 1205 2550 589 36 rc 0 0 0 sco F0_24_32 -Ji -1236 2550 M -3.136 0 (HOME SWITCH TRIPS)A -; : 1328 368 1063 36 rc 0 0 0 sco F0_24_32 -Ji -1359 368 M -3.094 0 (SEARCH FOR HOME SWITCH \(SEARCH_VEL\))A -; : 1328 1905 1063 36 rc 0 0 0 sco F0_24_32 -Ji -1359 1905 M -3.094 0 (SEARCH FOR HOME SWITCH \(SEARCH_VEL\))A -; : 1328 1121 1063 36 rc 0 0 0 sco F0_24_32 -Ji -1359 1121 M -3.094 0 (SEARCH FOR HOME SWITCH \(SEARCH_VEL\))A -; : 1328 2658 1063 36 rc 0 0 0 sco F0_24_32 -Ji -1359 2658 M -3.094 0 (SEARCH FOR HOME SWITCH \(SEARCH_VEL\))A -; : 1328 1213 1063 36 rc 0 0 0 sco F0_24_32 -Ji -1359 1213 M -3.044 0 (BACK OFF OF HOME SWITCH \(SEARCH_VEL\))A -; : 1328 2750 1063 36 rc 0 0 0 sco F0_24_32 -Ji -1359 2750 M -3.044 0 (BACK OFF OF HOME SWITCH \(SEARCH_VEL\))A -; : 1328 460 1063 36 rc 0 0 0 sco F0_24_32 -Ji -1359 460 M -3.007 0 (FINAL DETECTION OF SWITCH \(LATCH_VEL\))A -; : 1328 1979 961 36 rc 0 0 0 sco F0_24_32 -Ji -1359 1979 M -3.068 0 (FINAL DETECTION OF SWITCH AND)A -; : 1328 2015 775 36 rc 0 0 0 sco F0_24_32 -Ji -1359 2015 M -2.794 0 (INDEX PULSE \(LATCH_VEL\))A -; : 1328 1305 1063 36 rc 0 0 0 sco F0_24_32 -Ji -1359 1305 M -3.007 0 (FINAL DETECTION OF SWITCH \(LATCH_VEL\))A -; : 1328 2824 961 36 rc 0 0 0 sco F0_24_32 -Ji -1359 2824 M -3.068 0 (FINAL DETECTION OF SWITCH AND)A -; : 1328 2861 775 36 rc 0 0 0 sco F0_24_32 -Ji -1359 2861 M -2.794 0 (INDEX PULSE \(LATCH_VEL\))A -; : 1328 552 961 36 rc 0 0 0 sco F0_24_32 -Ji -1359 552 M -2.905 0 (GO TO HOME POSITION \(MAX_VEL\))A -; : 1328 2089 961 36 rc 0 0 0 sco F0_24_32 -Ji -1359 2089 M -2.905 0 (GO TO HOME POSITION \(MAX_VEL\))A -; : 1328 1397 961 36 rc 0 0 0 sco F0_24_32 -Ji -1359 1397 M -2.905 0 (GO TO HOME POSITION \(MAX_VEL\))A -; : 1328 2935 961 36 rc 0 0 0 sco F0_24_32 -Ji -1359 2935 M -2.905 0 (GO TO HOME POSITION \(MAX_VEL\))A -; : 0 0 2391 3229 rc -1303 384 N M -815 0 - 0 0 0 sco K ; -488 384 N M 0 0 rr : 0 0 0 sco O ; -1303 384 N M -62 -13 - 0 27 - 62 -14 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1303 384 N M -62 -13 - 0 0 0 sco K ; -1241 371 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1241 371 N M 0 27 - 0 0 0 sco K ; -1241 398 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1241 398 N M 62 -14 - 0 0 0 sco K ; -1303 384 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 1921 N M -815 0 - 0 0 0 sco K ; -488 1921 N M 0 0 rr : 0 0 0 sco O ; -1303 1921 N M -62 -13 - 0 27 - 62 -14 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1303 1921 N M -62 -13 - 0 0 0 sco K ; -1241 1908 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1241 1908 N M 0 27 - 0 0 0 sco K ; -1241 1935 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1241 1935 N M 62 -14 - 0 0 0 sco K ; -1303 1921 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 1137 N M -815 0 - 0 0 0 sco K ; -488 1137 N M 0 0 rr : 0 0 0 sco O ; -1303 1137 N M -62 -13 - 0 27 - 62 -14 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1303 1137 N M -62 -13 - 0 0 0 sco K ; -1241 1124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1241 1124 N M 0 27 - 0 0 0 sco K ; -1241 1151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1241 1151 N M 62 -14 - 0 0 0 sco K ; -1303 1137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 2675 N M -815 0 - 0 0 0 sco K ; -488 2675 N M 0 0 rr : 0 0 0 sco O ; -1303 2675 N M -62 -14 - 0 27 - 62 -13 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1303 2675 N M -62 -14 - 0 0 0 sco K ; -1241 2661 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1241 2661 N M 0 27 - 0 0 0 sco K ; -1241 2688 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1241 2688 N M 62 -13 - 0 0 0 sco K ; -1303 2675 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -964 477 N M 339 0 - 0 0 0 sco K ; -1303 477 N M 0 0 rr : 0 0 0 sco O ; -964 477 N M 62 13 - 0 -27 - -62 14 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -964 477 N M 62 13 - 0 0 0 sco K ; -1026 490 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1026 490 N M 0 -27 - 0 0 0 sco K ; -1026 463 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1026 463 N M -62 14 - 0 0 0 sco K ; -964 477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -903 2014 N M 400 0 - 0 0 0 sco K ; -1303 2014 N M 0 0 rr : 0 0 0 sco O ; -903 2014 N M 61 13 - 0 -27 - -61 14 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -903 2014 N M 61 13 - 0 0 0 sco K ; -964 2027 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -964 2027 N M 0 -27 - 0 0 0 sco K ; -964 2000 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -964 2000 N M -61 14 - 0 0 0 sco K ; -903 2014 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -949 1230 N M 354 0 - 0 0 0 sco K ; -1303 1230 N M 0 0 rr : 0 0 0 sco O ; -949 1230 N M 62 13 - 0 -27 - -62 14 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -949 1230 N M 62 13 - 0 0 0 sco K ; -1011 1243 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1011 1243 N M 0 -27 - 0 0 0 sco K ; -1011 1216 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1011 1216 N M -62 14 - 0 0 0 sco K ; -949 1230 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -949 2767 N M 354 0 - 0 0 0 sco K ; -1303 2767 N M 0 0 rr : 0 0 0 sco O ; -949 2767 N M 62 14 - 0 -28 - -62 14 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -949 2767 N M 62 14 - 0 0 0 sco K ; -1011 2781 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1011 2781 N M 0 -28 - 0 0 0 sco K ; -1011 2753 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1011 2753 N M -62 14 - 0 0 0 sco K ; -949 2767 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1226 1322 N M -277 0 - 0 0 0 sco K ; -949 1322 N M 0 0 rr : 0 0 0 sco O ; -1226 1322 N M -62 -14 - 0 28 - 62 -14 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1226 1322 N M -62 -14 - 0 0 0 sco K ; -1164 1308 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1164 1308 N M 0 28 - 0 0 0 sco K ; -1164 1336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1164 1336 N M 62 -14 - 0 0 0 sco K ; -1226 1322 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1256 2859 N M -307 0 - 0 0 0 sco K ; -949 2859 N M 0 0 rr : 0 0 0 sco O ; -1256 2859 N M -61 -14 - 0 28 - 61 -14 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1256 2859 N M -61 -14 - 0 0 0 sco K ; -1195 2845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1195 2845 N M 0 28 - 0 0 0 sco K ; -1195 2873 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1195 2873 N M 61 -14 - 0 0 0 sco K ; -1256 2859 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -334 569 N M 630 0 - 0 0 0 sco K ; -964 569 N M 0 0 rr : 0 0 0 sco O ; -334 569 N M 62 13 - 0 -27 - -62 14 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -334 569 N M 62 13 - 0 0 0 sco K ; -396 582 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -396 582 N M 0 -27 - 0 0 0 sco K ; -396 555 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -396 555 N M -62 14 - 0 0 0 sco K ; -334 569 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -227 2106 N M 676 0 - 0 0 0 sco K ; -903 2106 N M 0 0 rr : 0 0 0 sco O ; -227 2106 N M 61 14 - 0 -28 - -61 14 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -227 2106 N M 61 14 - 0 0 0 sco K ; -288 2120 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -288 2120 N M 0 -28 - 0 0 0 sco K ; -288 2092 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -288 2092 N M -61 14 - 0 0 0 sco K ; -227 2106 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -334 1414 N M 892 0 - 0 0 0 sco K ; -1226 1414 N M 0 0 rr : 0 0 0 sco O ; -334 1414 N M 62 14 - 0 -27 - -62 13 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -334 1414 N M 62 14 - 0 0 0 sco K ; -396 1428 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -396 1428 N M 0 -27 - 0 0 0 sco K ; -396 1401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -396 1401 N M -62 13 - 0 0 0 sco K ; -334 1414 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -380 2951 N M 876 0 - 0 0 0 sco K ; -1256 2951 N M 0 0 rr : 0 0 0 sco O ; -380 2951 N M 62 14 - 0 -27 - -62 13 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -380 2951 N M 62 14 - 0 0 0 sco K ; -442 2965 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -442 2965 N M 0 -27 - 0 0 0 sco K ; -442 2938 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -442 2938 N M -62 13 - 0 0 0 sco K ; -380 2951 N M 0 0 rr : 0 0 0 sco O ; -488 382 N M 768 5 rr : 0 0 0 sco O ; 0 Lc 0 Lj 0 0 0 sco K : 0 0 2391 3229 rc -488 382 N M 768 0 - 1 Lc 1 Lj 0 0 0 sco K ; -1256 382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1256 382 N M 0 5 - 1 Lc 1 Lj 0 0 0 sco K ; -1256 387 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1256 387 N M -768 0 - 1 Lc 1 Lj 0 0 0 sco K ; -488 387 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -488 387 N M 0 -5 - 1 Lc 1 Lj 0 0 0 sco K ; -488 382 N M 0 0 rr : 0 0 0 sco O ; -488 1919 N M 768 5 rr : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -488 1919 N M 768 0 - 1 Lc 1 Lj 0 0 0 sco K ; -1256 1919 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1256 1919 N M 0 5 - 1 Lc 1 Lj 0 0 0 sco K ; -1256 1924 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1256 1924 N M -768 0 - 1 Lc 1 Lj 0 0 0 sco K ; -488 1924 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -488 1924 N M 0 -5 - 1 Lc 1 Lj 0 0 0 sco K ; -488 1919 N M 0 0 rr : 0 0 0 sco O ; -488 1135 N M 768 5 rr : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -488 1135 N M 768 0 - 1 Lc 1 Lj 0 0 0 sco K ; -1256 1135 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1256 1135 N M 0 5 - 1 Lc 1 Lj 0 0 0 sco K ; -1256 1140 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1256 1140 N M -768 0 - 1 Lc 1 Lj 0 0 0 sco K ; -488 1140 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -488 1140 N M 0 -5 - 1 Lc 1 Lj 0 0 0 sco K ; -488 1135 N M 0 0 rr : 0 0 0 sco O ; -488 2672 N M 768 5 rr : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -488 2672 N M 768 0 - 1 Lc 1 Lj 0 0 0 sco K ; -1256 2672 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1256 2672 N M 0 5 - 1 Lc 1 Lj 0 0 0 sco K ; -1256 2677 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1256 2677 N M -768 0 - 1 Lc 1 Lj 0 0 0 sco K ; -488 2677 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -488 2677 N M 0 -5 - 1 Lc 1 Lj 0 0 0 sco K ; -488 2672 N M 0 0 rr : 0 0 0 sco O ; -1303 479 N M -277 -5 rr : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1303 479 N M -277 0 - 1 Lc 1 Lj 0 0 0 sco K ; -1026 479 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1026 479 N M 0 -5 - 1 Lc 1 Lj 0 0 0 sco K ; -1026 474 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1026 474 N M 277 0 - 1 Lc 1 Lj 0 0 0 sco K ; -1303 474 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 474 N M 0 5 - 1 Lc 1 Lj 0 0 0 sco K ; -1303 479 N M 0 0 rr : 0 0 0 sco O ; -1303 2016 N M -339 -5 rr : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1303 2016 N M -339 0 - 1 Lc 1 Lj 0 0 0 sco K ; -964 2016 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -964 2016 N M 0 -5 - 1 Lc 1 Lj 0 0 0 sco K ; -964 2011 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -964 2011 N M 339 0 - 1 Lc 1 Lj 0 0 0 sco K ; -1303 2011 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 2011 N M 0 5 - 1 Lc 1 Lj 0 0 0 sco K ; -1303 2016 N M 0 0 rr : 0 0 0 sco O ; -1303 1232 N M -292 -5 rr : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1303 1232 N M -292 0 - 1 Lc 1 Lj 0 0 0 sco K ; -1011 1232 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1011 1232 N M 0 -5 - 1 Lc 1 Lj 0 0 0 sco K ; -1011 1227 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1011 1227 N M 292 0 - 1 Lc 1 Lj 0 0 0 sco K ; -1303 1227 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 1227 N M 0 5 - 1 Lc 1 Lj 0 0 0 sco K ; -1303 1232 N M 0 0 rr : 0 0 0 sco O ; -1303 2769 N M -292 -4 rr : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1303 2769 N M -292 0 - 1 Lc 1 Lj 0 0 0 sco K ; -1011 2769 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1011 2769 N M 0 -4 - 1 Lc 1 Lj 0 0 0 sco K ; -1011 2765 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1011 2765 N M 292 0 - 1 Lc 1 Lj 0 0 0 sco K ; -1303 2765 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 2765 N M 0 4 - 1 Lc 1 Lj 0 0 0 sco K ; -1303 2769 N M 0 0 rr : 0 0 0 sco O ; -1164 1324 N M -215 -4 rr : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1164 1324 N M -215 0 - 1 Lc 1 Lj 0 0 0 sco K ; -949 1324 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -949 1324 N M 0 -4 - 1 Lc 1 Lj 0 0 0 sco K ; -949 1320 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -949 1320 N M 215 0 - 1 Lc 1 Lj 0 0 0 sco K ; -1164 1320 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1164 1320 N M 0 4 - 1 Lc 1 Lj 0 0 0 sco K ; -1164 1324 N M 0 0 rr : 0 0 0 sco O ; -1195 2861 N M -246 -4 rr : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1195 2861 N M -246 0 - 1 Lc 1 Lj 0 0 0 sco K ; -949 2861 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -949 2861 N M 0 -4 - 1 Lc 1 Lj 0 0 0 sco K ; -949 2857 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -949 2857 N M 246 0 - 1 Lc 1 Lj 0 0 0 sco K ; -1195 2857 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1195 2857 N M 0 4 - 1 Lc 1 Lj 0 0 0 sco K ; -1195 2861 N M 0 0 rr : 0 0 0 sco O ; -964 571 N M -568 -5 rr : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -964 571 N M -568 0 - 1 Lc 1 Lj 0 0 0 sco K ; -396 571 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -396 571 N M 0 -5 - 1 Lc 1 Lj 0 0 0 sco K ; -396 566 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -396 566 N M 568 0 - 1 Lc 1 Lj 0 0 0 sco K ; -964 566 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -964 566 N M 0 5 - 1 Lc 1 Lj 0 0 0 sco K ; -964 571 N M 0 0 rr : 0 0 0 sco O ; -903 2108 N M -615 -4 rr : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -903 2108 N M -615 0 - 1 Lc 1 Lj 0 0 0 sco K ; -288 2108 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -288 2108 N M 0 -4 - 1 Lc 1 Lj 0 0 0 sco K ; -288 2104 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -288 2104 N M 615 0 - 1 Lc 1 Lj 0 0 0 sco K ; -903 2104 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -903 2104 N M 0 4 - 1 Lc 1 Lj 0 0 0 sco K ; -903 2108 N M 0 0 rr : 0 0 0 sco O ; -1226 1416 N M -830 -4 rr : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1226 1416 N M -830 0 - 1 Lc 1 Lj 0 0 0 sco K ; -396 1416 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -396 1416 N M 0 -4 - 1 Lc 1 Lj 0 0 0 sco K ; -396 1412 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -396 1412 N M 830 0 - 1 Lc 1 Lj 0 0 0 sco K ; -1226 1412 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1226 1412 N M 0 4 - 1 Lc 1 Lj 0 0 0 sco K ; -1226 1416 N M 0 0 rr : 0 0 0 sco O ; -1256 2954 N M -814 -5 rr : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1256 2954 N M -814 0 - 1 Lc 1 Lj 0 0 0 sco K ; -442 2954 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -442 2954 N M 0 -5 - 1 Lc 1 Lj 0 0 0 sco K ; -442 2949 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -442 2949 N M 814 0 - 1 Lc 1 Lj 0 0 0 sco K ; -1256 2949 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1256 2949 N M 0 5 - 1 Lc 1 Lj 0 0 0 sco K ; -1256 2954 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1019 2184 N M 237 76 - 1 Lc 1 Lj 0 0 0 sco K ; -1256 2260 N M 0 0 rr : 0 0 0 sco O ; -1019 2184 N M 19 11 - 3 -9 - -22 -2 - C : 0 0 0 sco O ; 1 Lc 1 Lj 0 0 0 sco K : 0 0 2391 3229 rc -1019 2184 N M 19 11 - 0 0 0 sco K ; -1038 2195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1038 2195 N M 3 -9 - 0 0 0 sco K ; -1041 2186 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1041 2186 N M -22 -2 - 0 0 0 sco K ; -1019 2184 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1173 3030 N M 237 75 - 0 0 0 sco K ; -1410 3105 N M 0 0 rr : 0 0 0 sco O ; -1173 3030 N M 19 11 - 3 -9 - -22 -2 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1173 3030 N M 19 11 - 0 0 0 sco K ; -1192 3041 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1192 3041 N M 3 -9 - 0 0 0 sco K ; -1195 3032 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1195 3032 N M -22 -2 - 0 0 0 sco K ; -1173 3030 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1173 2189 N M 83 71 - 0 0 0 sco K ; -1256 2260 N M 0 0 rr : 0 0 0 sco O ; -1173 2189 N M 14 17 - 6 -7 - -20 -10 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1173 2189 N M 14 17 - 0 0 0 sco K ; -1187 2206 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1187 2206 N M 6 -7 - 0 0 0 sco K ; -1193 2199 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1193 2199 N M -20 -10 - 0 0 0 sco K ; -1173 2189 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1327 3034 N M 83 71 - 0 0 0 sco K ; -1410 3105 N M 0 0 rr : 0 0 0 sco O ; -1327 3034 N M 13 18 - 7 -8 - -20 -10 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1327 3034 N M 13 18 - 0 0 0 sco K ; -1340 3052 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1340 3052 N M 7 -8 - 0 0 0 sco K ; -1347 3044 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1347 3044 N M -20 -10 - 0 0 0 sco K ; -1327 3034 N M 0 0 rr : 0 0 0 sco O ; -342 569 N M -2 -5 - -4 -3 - -6 1 - -3 4 - 0 5 - 3 4 - 6 1 - 4 -2 - 2 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -342 569 N M -2 -5 - 0 0 0 sco K ; -340 564 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -340 564 N M -4 -3 - 0 0 0 sco K ; -336 561 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -336 561 N M -6 1 - 0 0 0 sco K ; -330 562 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -330 562 N M -3 4 - 0 0 0 sco K ; -327 566 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -327 566 N M 0 5 - 0 0 0 sco K ; -327 571 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -327 571 N M 3 4 - 0 0 0 sco K ; -330 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -330 575 N M 6 1 - 0 0 0 sco K ; -336 576 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -336 576 N M 4 -2 - 0 0 0 sco K ; -340 574 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -340 574 N M 2 -5 - 0 0 0 sco K ; -342 569 N M 0 0 rr : 0 0 0 sco O ; -234 2106 N M -2 -5 - -4 -3 - -5 1 - -4 4 - 0 6 - 4 4 - 5 0 - 4 -2 - 2 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -234 2106 N M -2 -5 - 0 0 0 sco K ; -232 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -232 2101 N M -4 -3 - 0 0 0 sco K ; -228 2098 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -228 2098 N M -5 1 - 0 0 0 sco K ; -223 2099 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -223 2099 N M -4 4 - 0 0 0 sco K ; -219 2103 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -219 2103 N M 0 6 - 0 0 0 sco K ; -219 2109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -219 2109 N M 4 4 - 0 0 0 sco K ; -223 2113 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -223 2113 N M 5 0 - 0 0 0 sco K ; -228 2113 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -228 2113 N M 4 -2 - 0 0 0 sco K ; -232 2111 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -232 2111 N M 2 -5 - 0 0 0 sco K ; -234 2106 N M 0 0 rr : 0 0 0 sco O ; -342 1414 N M -2 -5 - -4 -2 - -6 1 - -3 4 - 0 5 - 3 4 - 6 1 - 4 -3 - 2 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -342 1414 N M -2 -5 - 0 0 0 sco K ; -340 1409 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -340 1409 N M -4 -2 - 0 0 0 sco K ; -336 1407 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -336 1407 N M -6 1 - 0 0 0 sco K ; -330 1408 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -330 1408 N M -3 4 - 0 0 0 sco K ; -327 1412 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -327 1412 N M 0 5 - 0 0 0 sco K ; -327 1417 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -327 1417 N M 3 4 - 0 0 0 sco K ; -330 1421 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -330 1421 N M 6 1 - 0 0 0 sco K ; -336 1422 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -336 1422 N M 4 -3 - 0 0 0 sco K ; -340 1419 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -340 1419 N M 2 -5 - 0 0 0 sco K ; -342 1414 N M 0 0 rr : 0 0 0 sco O ; -388 2951 N M -2 -5 - -4 -2 - -6 1 - -3 4 - 0 5 - 3 4 - 6 1 - 4 -3 - 2 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -388 2951 N M -2 -5 - 0 0 0 sco K ; -386 2946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -386 2946 N M -4 -2 - 0 0 0 sco K ; -382 2944 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -382 2944 N M -6 1 - 0 0 0 sco K ; -376 2945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -376 2945 N M -3 4 - 0 0 0 sco K ; -373 2949 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -373 2949 N M 0 5 - 0 0 0 sco K ; -373 2954 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -373 2954 N M 3 4 - 0 0 0 sco K ; -376 2958 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -376 2958 N M 6 1 - 0 0 0 sco K ; -382 2959 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -382 2959 N M 4 -3 - 0 0 0 sco K ; -386 2956 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -386 2956 N M 2 -5 - 0 0 0 sco K ; -388 2951 N M 0 0 rr : 0 0 0 sco O ; -1126 384 N M -2 -5 - -5 -2 - -5 1 - -3 4 - 0 5 - 3 4 - 5 1 - 5 -3 - 2 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1126 384 N M -2 -5 - 0 0 0 sco K ; -1124 379 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 379 N M -5 -2 - 0 0 0 sco K ; -1119 377 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1119 377 N M -5 1 - 0 0 0 sco K ; -1114 378 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1114 378 N M -3 4 - 0 0 0 sco K ; -1111 382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1111 382 N M 0 5 - 0 0 0 sco K ; -1111 387 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1111 387 N M 3 4 - 0 0 0 sco K ; -1114 391 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1114 391 N M 5 1 - 0 0 0 sco K ; -1119 392 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1119 392 N M 5 -3 - 0 0 0 sco K ; -1124 389 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 389 N M 2 -5 - 0 0 0 sco K ; -1126 384 N M 0 0 rr : 0 0 0 sco O ; -1126 1921 N M -2 -5 - -5 -2 - -5 1 - -3 4 - 0 5 - 3 4 - 5 1 - 5 -3 - 2 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1126 1921 N M -2 -5 - 0 0 0 sco K ; -1124 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 1916 N M -5 -2 - 0 0 0 sco K ; -1119 1914 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1119 1914 N M -5 1 - 0 0 0 sco K ; -1114 1915 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1114 1915 N M -3 4 - 0 0 0 sco K ; -1111 1919 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1111 1919 N M 0 5 - 0 0 0 sco K ; -1111 1924 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1111 1924 N M 3 4 - 0 0 0 sco K ; -1114 1928 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1114 1928 N M 5 1 - 0 0 0 sco K ; -1119 1929 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1119 1929 N M 5 -3 - 0 0 0 sco K ; -1124 1926 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 1926 N M 2 -5 - 0 0 0 sco K ; -1126 1921 N M 0 0 rr : 0 0 0 sco O ; -1126 1137 N M -2 -4 - -5 -3 - -5 1 - -3 4 - 0 5 - 3 4 - 5 1 - 5 -3 - 2 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1126 1137 N M -2 -4 - 0 0 0 sco K ; -1124 1133 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 1133 N M -5 -3 - 0 0 0 sco K ; -1119 1130 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1119 1130 N M -5 1 - 0 0 0 sco K ; -1114 1131 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1114 1131 N M -3 4 - 0 0 0 sco K ; -1111 1135 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1111 1135 N M 0 5 - 0 0 0 sco K ; -1111 1140 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1111 1140 N M 3 4 - 0 0 0 sco K ; -1114 1144 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1114 1144 N M 5 1 - 0 0 0 sco K ; -1119 1145 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1119 1145 N M 5 -3 - 0 0 0 sco K ; -1124 1142 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 1142 N M 2 -5 - 0 0 0 sco K ; -1126 1137 N M 0 0 rr : 0 0 0 sco O ; -1126 2675 N M -2 -5 - -5 -3 - -5 1 - -3 4 - 0 5 - 3 4 - 5 1 - 5 -2 - 2 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1126 2675 N M -2 -5 - 0 0 0 sco K ; -1124 2670 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 2670 N M -5 -3 - 0 0 0 sco K ; -1119 2667 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1119 2667 N M -5 1 - 0 0 0 sco K ; -1114 2668 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1114 2668 N M -3 4 - 0 0 0 sco K ; -1111 2672 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1111 2672 N M 0 5 - 0 0 0 sco K ; -1111 2677 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1111 2677 N M 3 4 - 0 0 0 sco K ; -1114 2681 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1114 2681 N M 5 1 - 0 0 0 sco K ; -1119 2682 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1119 2682 N M 5 -2 - 0 0 0 sco K ; -1124 2680 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 2680 N M 2 -5 - 0 0 0 sco K ; -1126 2675 N M 0 0 rr : 0 0 0 sco O ; -1080 477 N M -2 -5 - -5 -3 - -5 1 - -3 4 - 0 5 - 3 4 - 5 1 - 5 -3 - 2 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1080 477 N M -2 -5 - 0 0 0 sco K ; -1078 472 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1078 472 N M -5 -3 - 0 0 0 sco K ; -1073 469 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1073 469 N M -5 1 - 0 0 0 sco K ; -1068 470 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1068 470 N M -3 4 - 0 0 0 sco K ; -1065 474 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1065 474 N M 0 5 - 0 0 0 sco K ; -1065 479 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1065 479 N M 3 4 - 0 0 0 sco K ; -1068 483 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1068 483 N M 5 1 - 0 0 0 sco K ; -1073 484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1073 484 N M 5 -3 - 0 0 0 sco K ; -1078 481 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1078 481 N M 2 -4 - 0 0 0 sco K ; -1080 477 N M 0 0 rr : 0 0 0 sco O ; -1080 2014 N M -2 -5 - -5 -3 - -5 1 - -3 4 - 0 5 - 3 4 - 5 1 - 5 -2 - 2 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1080 2014 N M -2 -5 - 0 0 0 sco K ; -1078 2009 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1078 2009 N M -5 -3 - 0 0 0 sco K ; -1073 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1073 2006 N M -5 1 - 0 0 0 sco K ; -1068 2007 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1068 2007 N M -3 4 - 0 0 0 sco K ; -1065 2011 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1065 2011 N M 0 5 - 0 0 0 sco K ; -1065 2016 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1065 2016 N M 3 4 - 0 0 0 sco K ; -1068 2020 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1068 2020 N M 5 1 - 0 0 0 sco K ; -1073 2021 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1073 2021 N M 5 -2 - 0 0 0 sco K ; -1078 2019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1078 2019 N M 2 -5 - 0 0 0 sco K ; -1080 2014 N M 0 0 rr : 0 0 0 sco O ; -1080 1230 N M -2 -5 - -5 -3 - -5 1 - -3 4 - 0 5 - 3 4 - 5 1 - 5 -2 - 2 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1080 1230 N M -2 -5 - 0 0 0 sco K ; -1078 1225 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1078 1225 N M -5 -3 - 0 0 0 sco K ; -1073 1222 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1073 1222 N M -5 1 - 0 0 0 sco K ; -1068 1223 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1068 1223 N M -3 4 - 0 0 0 sco K ; -1065 1227 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1065 1227 N M 0 5 - 0 0 0 sco K ; -1065 1232 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1065 1232 N M 3 4 - 0 0 0 sco K ; -1068 1236 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1068 1236 N M 5 1 - 0 0 0 sco K ; -1073 1237 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1073 1237 N M 5 -2 - 0 0 0 sco K ; -1078 1235 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1078 1235 N M 2 -5 - 0 0 0 sco K ; -1080 1230 N M 0 0 rr : 0 0 0 sco O ; -1080 2767 N M -2 -5 - -5 -3 - -5 1 - -3 4 - 0 5 - 3 5 - 5 0 - 5 -2 - 2 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1080 2767 N M -2 -5 - 0 0 0 sco K ; -1078 2762 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1078 2762 N M -5 -3 - 0 0 0 sco K ; -1073 2759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1073 2759 N M -5 1 - 0 0 0 sco K ; -1068 2760 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1068 2760 N M -3 4 - 0 0 0 sco K ; -1065 2764 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1065 2764 N M 0 5 - 0 0 0 sco K ; -1065 2769 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1065 2769 N M 3 5 - 0 0 0 sco K ; -1068 2774 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1068 2774 N M 5 0 - 0 0 0 sco K ; -1073 2774 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1073 2774 N M 5 -2 - 0 0 0 sco K ; -1078 2772 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1078 2772 N M 2 -5 - 0 0 0 sco K ; -1080 2767 N M 0 0 rr : 0 0 0 sco O ; -1126 1322 N M -2 -5 - -5 -3 - -5 1 - -3 4 - 0 6 - 3 4 - 5 1 - 5 -3 - 2 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1126 1322 N M -2 -5 - 0 0 0 sco K ; -1124 1317 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 1317 N M -5 -3 - 0 0 0 sco K ; -1119 1314 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1119 1314 N M -5 1 - 0 0 0 sco K ; -1114 1315 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1114 1315 N M -3 4 - 0 0 0 sco K ; -1111 1319 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1111 1319 N M 0 6 - 0 0 0 sco K ; -1111 1325 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1111 1325 N M 3 4 - 0 0 0 sco K ; -1114 1329 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1114 1329 N M 5 1 - 0 0 0 sco K ; -1119 1330 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1119 1330 N M 5 -3 - 0 0 0 sco K ; -1124 1327 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 1327 N M 2 -5 - 0 0 0 sco K ; -1126 1322 N M 0 0 rr : 0 0 0 sco O ; -1126 2859 N M -2 -5 - -5 -2 - -5 0 - -3 4 - 0 6 - 3 4 - 5 1 - 5 -3 - 2 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1126 2859 N M -2 -5 - 0 0 0 sco K ; -1124 2854 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 2854 N M -5 -2 - 0 0 0 sco K ; -1119 2852 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1119 2852 N M -5 0 - 0 0 0 sco K ; -1114 2852 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1114 2852 N M -3 4 - 0 0 0 sco K ; -1111 2856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1111 2856 N M 0 6 - 0 0 0 sco K ; -1111 2862 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1111 2862 N M 3 4 - 0 0 0 sco K ; -1114 2866 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1114 2866 N M 5 1 - 0 0 0 sco K ; -1119 2867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1119 2867 N M 5 -3 - 0 0 0 sco K ; -1124 2864 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 2864 N M 2 -5 - 0 0 0 sco K ; -1126 2859 N M 0 0 rr : 0 0 0 sco O ; -1018 2014 N M -2 -5 - -4 -3 - -5 1 - -4 4 - 0 5 - 4 4 - 5 1 - 4 -2 - 2 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1018 2014 N M -2 -5 - 0 0 0 sco K ; -1016 2009 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1016 2009 N M -4 -3 - 0 0 0 sco K ; -1012 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1012 2006 N M -5 1 - 0 0 0 sco K ; -1007 2007 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1007 2007 N M -4 4 - 0 0 0 sco K ; -1003 2011 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1003 2011 N M 0 5 - 0 0 0 sco K ; -1003 2016 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1003 2016 N M 4 4 - 0 0 0 sco K ; -1007 2020 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1007 2020 N M 5 1 - 0 0 0 sco K ; -1012 2021 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1012 2021 N M 4 -2 - 0 0 0 sco K ; -1016 2019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1016 2019 N M 2 -5 - 0 0 0 sco K ; -1018 2014 N M 0 0 rr : 0 0 0 sco O ; -1172 2859 N M -2 -5 - -4 -2 - -6 0 - -3 4 - 0 6 - 3 4 - 6 1 - 4 -3 - 2 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1172 2859 N M -2 -5 - 0 0 0 sco K ; -1170 2854 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1170 2854 N M -4 -2 - 0 0 0 sco K ; -1166 2852 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1166 2852 N M -6 0 - 0 0 0 sco K ; -1160 2852 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1160 2852 N M -3 4 - 0 0 0 sco K ; -1157 2856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1157 2856 N M 0 6 - 0 0 0 sco K ; -1157 2862 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1157 2862 N M 3 4 - 0 0 0 sco K ; -1160 2866 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1160 2866 N M 6 1 - 0 0 0 sco K ; -1166 2867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1166 2867 N M 4 -3 - 0 0 0 sco K ; -1170 2864 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1170 2864 N M 2 -5 - 0 0 0 sco K ; -1172 2859 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 384 N M 0 10 - 0 0 0 sco K ; -1303 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 412 N M 0 19 - 0 0 0 sco K ; -1303 431 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 450 N M 0 19 - 0 0 0 sco K ; -1303 469 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 1921 N M 0 10 - 0 0 0 sco K ; -1303 1931 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 1950 N M 0 18 - 0 0 0 sco K ; -1303 1968 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 1987 N M 0 19 - 0 0 0 sco K ; -1303 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 1137 N M 0 10 - 0 0 0 sco K ; -1303 1147 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 1166 N M 0 18 - 0 0 0 sco K ; -1303 1184 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 1203 N M 0 19 - 0 0 0 sco K ; -1303 1222 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 2675 N M 0 9 - 0 0 0 sco K ; -1303 2684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 2703 N M 0 19 - 0 0 0 sco K ; -1303 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1303 2740 N M 0 19 - 0 0 0 sco K ; -1303 2759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -964 477 N M 0 9 - 0 0 0 sco K ; -964 486 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -964 505 N M 0 18 - 0 0 0 sco K ; -964 523 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -964 542 N M 0 19 - 0 0 0 sco K ; -964 561 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -903 2014 N M 0 9 - 0 0 0 sco K ; -903 2023 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -903 2042 N M 0 19 - 0 0 0 sco K ; -903 2061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -903 2079 N M 0 19 - 0 0 0 sco K ; -903 2098 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -949 1230 N M 0 9 - 0 0 0 sco K ; -949 1239 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -949 1258 N M 0 19 - 0 0 0 sco K ; -949 1277 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -949 1295 N M 0 19 - 0 0 0 sco K ; -949 1314 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -949 2767 N M 0 9 - 0 0 0 sco K ; -949 2776 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -949 2795 N M 0 19 - 0 0 0 sco K ; -949 2814 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -949 2832 N M 0 19 - 0 0 0 sco K ; -949 2851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1226 1322 N M 0 9 - 0 0 0 sco K ; -1226 1331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1226 1350 N M 0 19 - 0 0 0 sco K ; -1226 1369 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1226 1388 N M 0 18 - 0 0 0 sco K ; -1226 1406 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1256 2859 N M 0 9 - 0 0 0 sco K ; -1256 2868 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1256 2887 N M 0 19 - 0 0 0 sco K ; -1256 2906 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1256 2925 N M 0 18 - 0 0 0 sco K ; -1256 2943 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -334 538 N M 0 92 - 0 0 0 sco K ; -334 630 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -227 2075 N M 0 138 - 0 0 0 sco K ; -227 2213 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -334 1383 N M 0 93 - 0 0 0 sco K ; -334 1476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -380 2921 N M 0 138 - 0 0 0 sco K ; -380 3059 N M 0 0 rr : 0 0 0 sco O ; : 313 3073 217 36 rc 0 0 0 sco F0_24_32 -Ji -344 3073 M -2.390 0 (1.000)A -; : 267 644 217 36 rc 0 0 0 sco F0_24_32 -Ji -298 644 M -2.390 0 (1.000)A -; : 160 2228 217 36 rc 0 0 0 sco F0_24_32 -Ji -191 2228 M -2.390 0 (1.000)A -; : 267 1490 217 36 rc 0 0 0 sco F0_24_32 -Ji -298 1490 M -2.390 0 (1.000)A -; : 1097 3073 217 36 rc 0 0 0 sco F0_24_32 -Ji -1128 3073 M -2.390 0 (3.000)A -; : 1005 644 217 36 rc 0 0 0 sco F0_24_32 -Ji -1036 644 M -2.390 0 (3.000)A -; : 944 2228 217 36 rc 0 0 0 sco F0_24_32 -Ji -975 2228 M -2.390 0 (3.000)A -; : 1051 1490 217 36 rc 0 0 0 sco F0_24_32 -Ji -1082 1490 M -2.390 0 (3.000)A -; : 221 168 713 36 rc 0 0 0 sco F0_24_32 -Ji -252 168 M -2.772 0 (SEARCH_VEL = POSITIVE)A -; : 221 1705 713 36 rc 0 0 0 sco F0_24_32 -Ji -252 1705 M -2.772 0 (SEARCH_VEL = POSITIVE)A -; : 221 921 713 36 rc 0 0 0 sco F0_24_32 -Ji -252 921 M -2.772 0 (SEARCH_VEL = POSITIVE)A -; : 221 2458 713 36 rc 0 0 0 sco F0_24_32 -Ji -252 2458 M -2.772 0 (SEARCH_VEL = POSITIVE)A -; : 221 214 682 36 rc 0 0 0 sco F0_24_32 -Ji -252 214 M -2.945 0 (LATCH_VEL = NEGATIVE)A -; : 221 1751 682 36 rc 0 0 0 sco F0_24_32 -Ji -252 1751 M -2.945 0 (LATCH_VEL = NEGATIVE)A -; : 221 967 682 36 rc 0 0 0 sco F0_24_32 -Ji -252 967 M -2.778 0 (LATCH_VEL = POSITIVE)A -; : 221 2504 682 36 rc 0 0 0 sco F0_24_32 -Ji -252 2504 M -2.778 0 (LATCH_VEL = POSITIVE)A -; : 221 260 589 36 rc 0 0 0 sco F0_24_32 -Ji -252 260 M -2.740 0 (USE_INDEX = FALSE)A -; : 221 1797 558 36 rc 0 0 0 sco F0_24_32 -Ji -252 1797 M -2.892 0 (USE_INDEX = TRUE)A -; : 221 1013 589 36 rc 0 0 0 sco F0_24_32 -Ji -252 1013 M -2.740 0 (USE_INDEX = FALSE)A -; : 221 2550 558 36 rc 0 0 0 sco F0_24_32 -Ji -252 2550 M -2.892 0 (USE_INDEX = TRUE)A -; : 0 0 2391 3229 rc -119 3151 N M 0 -768 - 0 0 0 sco K ; -119 2383 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -119 2383 N M 2152 0 - 0 0 0 sco K ; -2271 2383 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2271 2383 N M 0 768 - 0 0 0 sco K ; -2271 3151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2271 3151 N M -2152 0 - 0 0 0 sco K ; -119 3151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -119 845 N M 0 -768 - 0 0 0 sco K ; -119 77 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -119 77 N M 2152 0 - 0 0 0 sco K ; -2271 77 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2271 77 N M 0 768 - 0 0 0 sco K ; -2271 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2271 845 N M -2152 0 - 0 0 0 sco K ; -119 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -119 1614 N M 0 -769 - 0 0 0 sco K ; -119 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -119 845 N M 2152 0 - 0 0 0 sco K ; -2271 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2271 845 N M 0 769 - 0 0 0 sco K ; -2271 1614 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2271 1614 N M -2152 0 - 0 0 0 sco K ; -119 1614 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -119 2383 N M 0 -769 - 0 0 0 sco K ; -119 1614 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -119 1614 N M 2152 0 - 0 0 0 sco K ; -2271 1614 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2271 1614 N M 0 769 - 0 0 0 sco K ; -2271 2383 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2271 2383 N M -2152 0 - 0 0 0 sco K ; -119 2383 N M 0 0 rr : 0 0 0 sco O ; : 697 2458 651 36 rc 0 0 0 sco F0_24_32 -Ji -728 2458 M -2.925 0 (HOME_OFFSET = 3.000)A -; : 697 168 651 36 rc 0 0 0 sco F0_24_32 -Ji -728 168 M -2.925 0 (HOME_OFFSET = 3.000)A -; : 697 1705 651 36 rc 0 0 0 sco F0_24_32 -Ji -728 1705 M -2.925 0 (HOME_OFFSET = 3.000)A -; : 697 921 651 36 rc 0 0 0 sco F0_24_32 -Ji -728 921 M -2.925 0 (HOME_OFFSET = 3.000)A -; : 697 2504 434 36 rc 0 0 0 sco F0_24_32 -Ji -728 2504 M -2.633 0 (HOME = 1.000)A -; : 697 214 434 36 rc 0 0 0 sco F0_24_32 -Ji -728 214 M -2.633 0 (HOME = 1.000)A -; : 697 1751 434 36 rc 0 0 0 sco F0_24_32 -Ji -728 1751 M -2.633 0 (HOME = 1.000)A -; : 697 967 434 36 rc 0 0 0 sco F0_24_32 -Ji -728 967 M -2.633 0 (HOME = 1.000)A -; : 0 0 2391 3229 rc -1195 354 N M 46 -47 - 0 0 0 sco K ; -1241 307 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1241 307 N M 46 0 - 0 0 0 sco K ; -1287 307 N M 0 0 rr : 0 0 0 sco O ; -1195 354 N M 19 -12 - -7 -7 - -12 19 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1195 354 N M 19 -12 - 0 0 0 sco K ; -1214 342 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1214 342 N M -7 -7 - 0 0 0 sco K ; -1207 335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1207 335 N M -12 19 - 0 0 0 sco K ; -1195 354 N M 0 0 rr : 0 0 0 sco O ; : 1281 291 341 36 rc 0 0 0 sco F0_24_32 -Ji -1312 291 M -3.738 0 (OVERSHOOT)A -; : 0 0 2391 3229 rc -1079 1851 N M 55 -83 - 0 0 0 sco K ; -1134 1768 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1134 1768 N M 61 0 - 0 0 0 sco K ; -1195 1768 N M 0 0 rr : 0 0 0 sco O ; -1079 1851 N M 16 -15 - -8 -6 - -8 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1079 1851 N M 16 -15 - 0 0 0 sco K ; -1095 1836 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1095 1836 N M -8 -6 - 0 0 0 sco K ; -1087 1830 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1087 1830 N M -8 21 - 0 0 0 sco K ; -1079 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1079 1067 N M 55 -83 - 0 0 0 sco K ; -1134 984 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1134 984 N M 61 0 - 0 0 0 sco K ; -1195 984 N M 0 0 rr : 0 0 0 sco O ; -1079 1067 N M 16 -15 - -8 -6 - -8 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1079 1067 N M 16 -15 - 0 0 0 sco K ; -1095 1052 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1095 1052 N M -8 -6 - 0 0 0 sco K ; -1087 1046 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1087 1046 N M -8 21 - 0 0 0 sco K ; -1079 1067 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1079 283 N M 55 -83 - 0 0 0 sco K ; -1134 200 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1134 200 N M 61 0 - 0 0 0 sco K ; -1195 200 N M 0 0 rr : 0 0 0 sco O ; -1079 283 N M 16 -15 - -8 -6 - -8 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1079 283 N M 16 -15 - 0 0 0 sco K ; -1095 268 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1095 268 N M -8 -6 - 0 0 0 sco K ; -1087 262 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1087 262 N M -8 21 - 0 0 0 sco K ; -1079 283 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1079 2604 N M 55 -83 - 0 0 0 sco K ; -1134 2521 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1134 2521 N M 61 0 - 0 0 0 sco K ; -1195 2521 N M 0 0 rr : 0 0 0 sco O ; -1079 2604 N M 16 -15 - -8 -6 - -8 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 2391 3229 rc -1079 2604 N M 16 -15 - 0 0 0 sco K ; -1095 2589 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1095 2589 N M -8 -6 - 0 0 0 sco K ; -1087 2583 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1087 2583 N M -8 21 - 0 0 0 sco K ; -1079 2604 N M 0 0 rr : 0 0 0 sco O ; : 1189 1751 682 36 rc 0 0 0 sco F0_24_32 -Ji -1220 1751 M -3.164 0 (HOME SWITCH RELEASES)A -; : 1189 967 682 36 rc 0 0 0 sco F0_24_32 -Ji -1220 967 M -3.164 0 (HOME SWITCH RELEASES)A -; : 1189 183 682 36 rc 0 0 0 sco F0_24_32 -Ji -1220 183 M -3.164 0 (HOME SWITCH RELEASES)A -; : 1189 2504 682 36 rc 0 0 0 sco F0_24_32 -Ji -1220 2504 M -3.164 0 (HOME SWITCH RELEASES)A -; -LH -pagesave restore -%%PageTrailer - -%%Trailer -%%DocumentNeededFonts: -%%DocumentSuppliedFonts: -/Pscript_Win_Driver /ProcSet findresource dup /terminate get exec -Pscript_Win_Compat dup /terminate get exec -%%EOF diff --git a/docs/src/config/images/emc2-motion-homing-diag.png b/docs/src/config/images/emc2-motion-homing-diag.png deleted file mode 100644 index da2c66c05fe..00000000000 Binary files a/docs/src/config/images/emc2-motion-homing-diag.png and /dev/null differ diff --git a/docs/src/config/images/emc2-motion-homing-diag.ps b/docs/src/config/images/emc2-motion-homing-diag.ps deleted file mode 100644 index 06ad46d1e40..00000000000 Binary files a/docs/src/config/images/emc2-motion-homing-diag.ps and /dev/null differ diff --git a/docs/src/config/images/encoder-counts-math.png b/docs/src/config/images/encoder-counts-math.png deleted file mode 100644 index 4b65fe28f0d..00000000000 Binary files a/docs/src/config/images/encoder-counts-math.png and /dev/null differ diff --git a/docs/src/config/images/encoder-scale.png b/docs/src/config/images/encoder-scale.png deleted file mode 100644 index 995164ba0df..00000000000 Binary files a/docs/src/config/images/encoder-scale.png and /dev/null differ diff --git a/docs/src/config/images/ff2.png b/docs/src/config/images/ff2.png deleted file mode 100644 index f138ae82e80..00000000000 Binary files a/docs/src/config/images/ff2.png and /dev/null differ diff --git a/docs/src/config/images/i-term.png b/docs/src/config/images/i-term.png deleted file mode 100644 index 3d14d7a838a..00000000000 Binary files a/docs/src/config/images/i-term.png and /dev/null differ diff --git a/docs/src/config/images/latency.png b/docs/src/config/images/latency.png deleted file mode 100644 index b35f444749d..00000000000 Binary files a/docs/src/config/images/latency.png and /dev/null differ diff --git a/docs/src/config/images/linuxcnc-motion-homing-diag_fr.png b/docs/src/config/images/linuxcnc-motion-homing-diag_fr.png deleted file mode 100644 index 4403ca062d3..00000000000 Binary files a/docs/src/config/images/linuxcnc-motion-homing-diag_fr.png and /dev/null differ diff --git a/docs/src/config/images/linuxcnc-motion-homing-diag_fr.svg b/docs/src/config/images/linuxcnc-motion-homing-diag_fr.svg deleted file mode 100644 index ce58eee1dd8..00000000000 --- a/docs/src/config/images/linuxcnc-motion-homing-diag_fr.svg +++ /dev/null @@ -1,1711 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - Recherche du contact d'origine vitesse de recherche - Prise d'origine machine au relâchement vitesse de détection - Déplacement à la position de l'origine vitesse rapide - Relâchement du contact - Enclenchement du contact - Direction de rechercheDirection de détectionUtilisation indexDécalage d'originePosition de l'origine - PositiveNégativeNon3.0001.000 - - - - - - - - - - - 1.000 - 3.000 - - - Recherche du contact d'origine vitesse de recherche - Prise d'origine machine à l'enclenchement vitesse de détection - Déplacement à la position de l'origine vitesse rapide - Relâchement du contact - Enclenchement du contact - Retour sur contact jusqu'au relâchement vitesse de recherche - Direction de rechercheDirection de détection Utilisation indexDécalage d'originePosition de l'origine - PositivePositiveNon3.0001.000 - - - - - - - - - - - - - - - 1.000 - 3.000 - - Recherche du contact d'origine vitesse de recherche - Prise d'origine machine à la 1ère impulsion d'index après relâchement du contact - vitesse de détection - Déplacement à la position de l'origine vitesse rapide - Relâchement du contact - Enclenchement du contact - Direction de rechercheDirection de détectionUtilisation indexDécalage d'originePosition de l'origine - PositiveNégativeOui3.0001.000 - - - - - - - - - - - - Recherche du contact d'origine vitesse de recherche - Prise d'origine machine à la 1ère impulsionaprès enclenchement - vitesse de détection - Déplacement à la position de l'origine vitesse rapide - Relâchement du contact - Enclenchement du contact - Retour sur contact d'origine jusqu'au relâchement - vitesse de recherche - Direction de rechercheDirection de détectionUtilisation indexDécalage d'originePosition de l'origine - PositivePositiveOui3.0001.000 - - - - - - - - Dépassement - - - - - Impulsions d'index - - - 1.000 - 3.000 - - - - - - Impulsions d'index - - - - - - - - - - - - - - - - 1.000 - 3.000 - - diff --git a/docs/src/config/images/output-offset.png b/docs/src/config/images/output-offset.png deleted file mode 100644 index b19841a69c2..00000000000 Binary files a/docs/src/config/images/output-offset.png and /dev/null differ diff --git a/docs/src/config/images/p-term.png b/docs/src/config/images/p-term.png deleted file mode 100644 index c39ec7449b1..00000000000 Binary files a/docs/src/config/images/p-term.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-advanced.png b/docs/src/config/images/pncconf-advanced.png deleted file mode 100644 index f48873fa3f6..00000000000 Binary files a/docs/src/config/images/pncconf-advanced.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-advanced_fr.png b/docs/src/config/images/pncconf-advanced_fr.png deleted file mode 100644 index 59f4992b963..00000000000 Binary files a/docs/src/config/images/pncconf-advanced_fr.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-axis-config.png b/docs/src/config/images/pncconf-axis-config.png deleted file mode 100644 index 5e961088e99..00000000000 Binary files a/docs/src/config/images/pncconf-axis-config.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-axis-config_fr.png b/docs/src/config/images/pncconf-axis-config_fr.png deleted file mode 100644 index 60d57da43b1..00000000000 Binary files a/docs/src/config/images/pncconf-axis-config_fr.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-axis-drive.png b/docs/src/config/images/pncconf-axis-drive.png deleted file mode 100644 index 60b61b113aa..00000000000 Binary files a/docs/src/config/images/pncconf-axis-drive.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-axis-drive_fr.png b/docs/src/config/images/pncconf-axis-drive_fr.png deleted file mode 100644 index e9bb8c9201a..00000000000 Binary files a/docs/src/config/images/pncconf-axis-drive_fr.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-basic.png b/docs/src/config/images/pncconf-basic.png deleted file mode 100644 index a23968d07b4..00000000000 Binary files a/docs/src/config/images/pncconf-basic.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-basic_fr.png b/docs/src/config/images/pncconf-basic_fr.png deleted file mode 100644 index 72029236a5f..00000000000 Binary files a/docs/src/config/images/pncconf-basic_fr.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-diagram-lathe.png b/docs/src/config/images/pncconf-diagram-lathe.png deleted file mode 100644 index de8869ee3a2..00000000000 Binary files a/docs/src/config/images/pncconf-diagram-lathe.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-diagram-lathe_fr.png b/docs/src/config/images/pncconf-diagram-lathe_fr.png deleted file mode 100644 index 7e2941a87c5..00000000000 Binary files a/docs/src/config/images/pncconf-diagram-lathe_fr.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-external.png b/docs/src/config/images/pncconf-external.png deleted file mode 100644 index 09ce553a23e..00000000000 Binary files a/docs/src/config/images/pncconf-external.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-external_fr.png b/docs/src/config/images/pncconf-external_fr.png deleted file mode 100644 index e7abb4d5857..00000000000 Binary files a/docs/src/config/images/pncconf-external_fr.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-file.png b/docs/src/config/images/pncconf-file.png deleted file mode 100644 index 8f7cf8bad4b..00000000000 Binary files a/docs/src/config/images/pncconf-file.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-file_fr.png b/docs/src/config/images/pncconf-file_fr.png deleted file mode 100644 index 4126685772c..00000000000 Binary files a/docs/src/config/images/pncconf-file_fr.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-gui.png b/docs/src/config/images/pncconf-gui.png deleted file mode 100644 index 18250ef80f0..00000000000 Binary files a/docs/src/config/images/pncconf-gui.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-gui_fr.png b/docs/src/config/images/pncconf-gui_fr.png deleted file mode 100644 index 7acf09ac7b0..00000000000 Binary files a/docs/src/config/images/pncconf-gui_fr.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-hal.png b/docs/src/config/images/pncconf-hal.png deleted file mode 100644 index 4d1244c4703..00000000000 Binary files a/docs/src/config/images/pncconf-hal.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-hal_fr.png b/docs/src/config/images/pncconf-hal_fr.png deleted file mode 100644 index f9dd8647fdf..00000000000 Binary files a/docs/src/config/images/pncconf-hal_fr.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-mesa-config.png b/docs/src/config/images/pncconf-mesa-config.png deleted file mode 100644 index 346c4b15993..00000000000 Binary files a/docs/src/config/images/pncconf-mesa-config.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-mesa-config_fr.png b/docs/src/config/images/pncconf-mesa-config_fr.png deleted file mode 100644 index b1276257a07..00000000000 Binary files a/docs/src/config/images/pncconf-mesa-config_fr.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-mesa-io2.png b/docs/src/config/images/pncconf-mesa-io2.png deleted file mode 100644 index 1b163a5e18c..00000000000 Binary files a/docs/src/config/images/pncconf-mesa-io2.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-mesa-io2_fr.png b/docs/src/config/images/pncconf-mesa-io2_fr.png deleted file mode 100644 index bae0146a46d..00000000000 Binary files a/docs/src/config/images/pncconf-mesa-io2_fr.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-mesa-io3.png b/docs/src/config/images/pncconf-mesa-io3.png deleted file mode 100644 index 9d0d4731b11..00000000000 Binary files a/docs/src/config/images/pncconf-mesa-io3.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-mesa-io3_fr.png b/docs/src/config/images/pncconf-mesa-io3_fr.png deleted file mode 100644 index 423774446f5..00000000000 Binary files a/docs/src/config/images/pncconf-mesa-io3_fr.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-mesa-io4.png b/docs/src/config/images/pncconf-mesa-io4.png deleted file mode 100644 index 21995989fa8..00000000000 Binary files a/docs/src/config/images/pncconf-mesa-io4.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-mesa-io4_fr.png b/docs/src/config/images/pncconf-mesa-io4_fr.png deleted file mode 100644 index 1493d0f2728..00000000000 Binary files a/docs/src/config/images/pncconf-mesa-io4_fr.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-parport.png b/docs/src/config/images/pncconf-parport.png deleted file mode 100644 index 37480d47a5c..00000000000 Binary files a/docs/src/config/images/pncconf-parport.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-parport_fr.png b/docs/src/config/images/pncconf-parport_fr.png deleted file mode 100644 index 34421214af7..00000000000 Binary files a/docs/src/config/images/pncconf-parport_fr.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-scale-calc.png b/docs/src/config/images/pncconf-scale-calc.png deleted file mode 100644 index ccf32ac18bf..00000000000 Binary files a/docs/src/config/images/pncconf-scale-calc.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-scale-calc_fr.png b/docs/src/config/images/pncconf-scale-calc_fr.png deleted file mode 100644 index 484a5fdb3e1..00000000000 Binary files a/docs/src/config/images/pncconf-scale-calc_fr.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-spindle-config.png b/docs/src/config/images/pncconf-spindle-config.png deleted file mode 100644 index 11e6ce01e22..00000000000 Binary files a/docs/src/config/images/pncconf-spindle-config.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-spindle-config_fr.png b/docs/src/config/images/pncconf-spindle-config_fr.png deleted file mode 100644 index 8e4d390a443..00000000000 Binary files a/docs/src/config/images/pncconf-spindle-config_fr.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-splash.png b/docs/src/config/images/pncconf-splash.png deleted file mode 100644 index 0180afa8f8b..00000000000 Binary files a/docs/src/config/images/pncconf-splash.png and /dev/null differ diff --git a/docs/src/config/images/pncconf-splash_fr.png b/docs/src/config/images/pncconf-splash_fr.png deleted file mode 100644 index b3bc9703b23..00000000000 Binary files a/docs/src/config/images/pncconf-splash_fr.png and /dev/null differ diff --git a/docs/src/config/images/scale-math.png b/docs/src/config/images/scale-math.png deleted file mode 100644 index 03795ecd94c..00000000000 Binary files a/docs/src/config/images/scale-math.png and /dev/null differ diff --git a/docs/src/config/images/stepconf-advanced.png b/docs/src/config/images/stepconf-advanced.png deleted file mode 100644 index 8ad3380570f..00000000000 Binary files a/docs/src/config/images/stepconf-advanced.png and /dev/null differ diff --git a/docs/src/config/images/stepconf-advanced_fr.png b/docs/src/config/images/stepconf-advanced_fr.png deleted file mode 100644 index 9c850f3c935..00000000000 Binary files a/docs/src/config/images/stepconf-advanced_fr.png and /dev/null differ diff --git a/docs/src/config/images/stepconf-axis.png b/docs/src/config/images/stepconf-axis.png deleted file mode 100644 index cd7b301075d..00000000000 Binary files a/docs/src/config/images/stepconf-axis.png and /dev/null differ diff --git a/docs/src/config/images/stepconf-axis_fr.png b/docs/src/config/images/stepconf-axis_fr.png deleted file mode 100644 index 2b3f818bd83..00000000000 Binary files a/docs/src/config/images/stepconf-axis_fr.png and /dev/null differ diff --git a/docs/src/config/images/stepconf-basic.png b/docs/src/config/images/stepconf-basic.png deleted file mode 100644 index baccbb9f161..00000000000 Binary files a/docs/src/config/images/stepconf-basic.png and /dev/null differ diff --git a/docs/src/config/images/stepconf-basic_fr.png b/docs/src/config/images/stepconf-basic_fr.png deleted file mode 100644 index 937c63acd10..00000000000 Binary files a/docs/src/config/images/stepconf-basic_fr.png and /dev/null differ diff --git a/docs/src/config/images/stepconf-config.png b/docs/src/config/images/stepconf-config.png deleted file mode 100644 index 9c8867a2a06..00000000000 Binary files a/docs/src/config/images/stepconf-config.png and /dev/null differ diff --git a/docs/src/config/images/stepconf-config_fr.png b/docs/src/config/images/stepconf-config_fr.png deleted file mode 100644 index 4a777e744fc..00000000000 Binary files a/docs/src/config/images/stepconf-config_fr.png and /dev/null differ diff --git a/docs/src/config/images/stepconf-pinout.png b/docs/src/config/images/stepconf-pinout.png deleted file mode 100644 index 496eb154d02..00000000000 Binary files a/docs/src/config/images/stepconf-pinout.png and /dev/null differ diff --git a/docs/src/config/images/stepconf-pinout_fr.png b/docs/src/config/images/stepconf-pinout_fr.png deleted file mode 100644 index 25e93b5a3b5..00000000000 Binary files a/docs/src/config/images/stepconf-pinout_fr.png and /dev/null differ diff --git a/docs/src/config/images/stepconf-spindle.png b/docs/src/config/images/stepconf-spindle.png deleted file mode 100644 index cb6172fa642..00000000000 Binary files a/docs/src/config/images/stepconf-spindle.png and /dev/null differ diff --git a/docs/src/config/images/stepconf-spindle_fr.png b/docs/src/config/images/stepconf-spindle_fr.png deleted file mode 100644 index 6e5c3f164d6..00000000000 Binary files a/docs/src/config/images/stepconf-spindle_fr.png and /dev/null differ diff --git a/docs/src/config/images/stepconf-splash_fr.png b/docs/src/config/images/stepconf-splash_fr.png deleted file mode 100644 index eb87a8de39f..00000000000 Binary files a/docs/src/config/images/stepconf-splash_fr.png and /dev/null differ diff --git a/docs/src/config/images/stepconf-test.png b/docs/src/config/images/stepconf-test.png deleted file mode 100644 index 9b2adb051a5..00000000000 Binary files a/docs/src/config/images/stepconf-test.png and /dev/null differ diff --git a/docs/src/config/images/stepconf-test_fr.png b/docs/src/config/images/stepconf-test_fr.png deleted file mode 100644 index e0ba714df8f..00000000000 Binary files a/docs/src/config/images/stepconf-test_fr.png and /dev/null differ diff --git a/docs/src/config/images/stepper-scale.png b/docs/src/config/images/stepper-scale.png deleted file mode 100644 index 158c596ba69..00000000000 Binary files a/docs/src/config/images/stepper-scale.png and /dev/null differ diff --git a/docs/src/config/images/switch-nc-series.dxf b/docs/src/config/images/switch-nc-series.dxf deleted file mode 100644 index cd06c6f17bf..00000000000 --- a/docs/src/config/images/switch-nc-series.dxf +++ /dev/null @@ -1,3186 +0,0 @@ -999 -dxflib 2.0.4.0 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMASZ - 40 -98.4251968503937036 - 9 -$DIMGAP - 40 -24.6062992125984259 - 9 -$DIMEXO - 40 -24.6062992125984259 - 9 -$INSUNITS - 70 -9 - 9 -$DIMTXT - 40 -98.4251968503937036 - 9 -$PSVPSCALE - 40 -0.5 - 9 -$PLIMMAX - 10 -8267.7165354330718401 - 20 -11692.9133858267723554 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$PINSBASE - 10 -1059.6708554951824226 - 20 -4271.4566929133861777 - 30 -0.0 - 9 -$DIMEXE - 40 -49.2125984251968518 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -2 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -junction - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -100 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -2.5 - 42 -0.625 - 43 -3.75 - 44 -1.25 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -2.5 -141 -2.5 -143 -0.03937007874016 -147 -0.625 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -44 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -2000.0 - 20 -4000.0 - 30 -0.0 - 11 -5000.0 - 21 -4000.0 - 31 -0.0 - 0 -LINE - 5 -45 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -5000.0 - 20 -4000.0 - 30 -0.0 - 11 -5000.0 - 21 -5000.0 - 31 -0.0 - 0 -LINE - 5 -46 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -5000.0 - 20 -6000.0 - 30 -0.0 - 11 -5000.0 - 21 -7000.0 - 31 -0.0 - 0 -LINE - 5 -47 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -2000.0 - 20 -4000.0 - 30 -0.0 - 11 -1800.0 - 21 -4200.0 - 31 -0.0 - 0 -LINE - 5 -48 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1800.0 - 20 -3800.0 - 30 -0.0 - 11 -2000.0 - 21 -4000.0 - 31 -0.0 - 0 -MTEXT - 5 -49 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -700.0 - 20 -4000.0 - 30 -0.0 - 40 -300.0 - 41 -10000.0 - 71 -4 - 72 -0 - 1 -INPUT - 7 -normallatin1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -600.0 - 20 -3800.0 - 30 -0.0 - 11 -1800.0 - 21 -3800.0 - 31 -0.0 - 0 -LINE - 5 -4B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1800.0 - 20 -4200.0 - 30 -0.0 - 11 -600.0 - 21 -4200.0 - 31 -0.0 - 0 -LINE - 5 -4C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -600.0 - 20 -4200.0 - 30 -0.0 - 11 -600.0 - 21 -3800.0 - 31 -0.0 - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -4800.0 - 20 -6000.0 - 30 -0.0 - 11 -5200.0 - 21 -6000.0 - 31 -0.0 - 0 -LINE - 5 -4E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -5200.0 - 20 -6000.0 - 30 -0.0 - 11 -5200.0 - 21 -5000.0 - 31 -0.0 - 0 -LINE - 5 -4F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -5200.0 - 20 -5000.0 - 30 -0.0 - 11 -4800.0 - 21 -5000.0 - 31 -0.0 - 0 -LINE - 5 -50 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -4800.0 - 20 -5000.0 - 30 -0.0 - 11 -4800.0 - 21 -6000.0 - 31 -0.0 - 0 -LINE - 5 -51 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -4800.0 - 20 -6800.0 - 30 -0.0 - 11 -5000.0 - 21 -7000.0 - 31 -0.0 - 0 -LINE - 5 -52 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -5000.0 - 20 -7000.0 - 30 -0.0 - 11 -5200.0 - 21 -6800.0 - 31 -0.0 - 0 -MTEXT - 5 -53 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -4700.0 - 20 -5500.0 - 30 -0.0 - 40 -300.0 - 41 -10000.0 - 71 -6 - 72 -0 - 1 -Pull-Up\PResistor - 7 -normallatin1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LINE - 5 -54 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11000.0 - 20 -4000.0 - 30 -0.0 - 11 -12000.0 - 21 -4000.0 - 31 -0.0 - 0 -LINE - 5 -55 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11700.0 - 20 -1000.0 - 30 -0.0 - 11 -12300.0 - 21 -1000.0 - 31 -0.0 - 0 -LINE - 5 -56 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11800.0 - 20 -900.0 - 30 -0.0 - 11 -12200.0 - 21 -900.0 - 31 -0.0 - 0 -LINE - 5 -57 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -5000.0 - 20 -4000.0 - 30 -0.0 - 11 -7000.0 - 21 -4000.0 - 31 -0.0 - 0 -LINE - 5 -58 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -7000.0 - 20 -4000.0 - 30 -0.0 - 11 -7000.0 - 21 -6000.0 - 31 -0.0 - 0 -LINE - 5 -59 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -7000.0 - 20 -6000.0 - 30 -0.0 - 11 -8000.0 - 21 -6000.0 - 31 -0.0 - 0 -LINE - 5 -5A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11000.0 - 20 -6000.0 - 30 -0.0 - 11 -12000.0 - 21 -6000.0 - 31 -0.0 - 0 -LINE - 5 -5B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -12000.0 - 20 -6000.0 - 30 -0.0 - 11 -12000.0 - 21 -4000.0 - 31 -0.0 - 0 -LINE - 5 -5C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -8000.0 - 20 -4000.0 - 30 -0.0 - 11 -8000.0 - 21 -2000.0 - 31 -0.0 - 0 -LINE - 5 -5D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11000.0 - 20 -2000.0 - 30 -0.0 - 11 -12000.0 - 21 -2000.0 - 31 -0.0 - 0 -LINE - 5 -5E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -12000.0 - 20 -2000.0 - 30 -0.0 - 11 -12000.0 - 21 -1000.0 - 31 -0.0 - 0 -LINE - 5 -5F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9000.0 - 20 -5900.0 - 30 -0.0 - 11 -10000.0 - 21 -5900.0 - 31 -0.0 - 0 -LINE - 5 -60 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9500.0 - 20 -5900.0 - 30 -0.0 - 11 -9500.0 - 21 -6400.0 - 31 -0.0 - 0 -LINE - 5 -61 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9400.0 - 20 -6400.0 - 30 -0.0 - 11 -9600.0 - 21 -6400.0 - 31 -0.0 - 0 -CIRCLE - 5 -62 -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9900.0 - 20 -6000.0 - 30 -0.0 - 40 -100.0 - 0 -CIRCLE - 5 -63 -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9100.0 - 20 -6000.0 - 30 -0.0 - 40 -100.0 - 0 -LINE - 5 -64 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9000.0 - 20 -3900.0 - 30 -0.0 - 11 -10000.0 - 21 -3900.0 - 31 -0.0 - 0 -LINE - 5 -65 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9500.0 - 20 -3900.0 - 30 -0.0 - 11 -9500.0 - 21 -4400.0 - 31 -0.0 - 0 -LINE - 5 -66 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9400.0 - 20 -4400.0 - 30 -0.0 - 11 -9600.0 - 21 -4400.0 - 31 -0.0 - 0 -CIRCLE - 5 -67 -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9900.0 - 20 -4000.0 - 30 -0.0 - 40 -100.0 - 0 -CIRCLE - 5 -68 -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9100.0 - 20 -4000.0 - 30 -0.0 - 40 -100.0 - 0 -LINE - 5 -69 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9000.0 - 20 -1900.0 - 30 -0.0 - 11 -10000.0 - 21 -1900.0 - 31 -0.0 - 0 -LINE - 5 -6A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9500.0 - 20 -1900.0 - 30 -0.0 - 11 -9500.0 - 21 -2400.0 - 31 -0.0 - 0 -LINE - 5 -6B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9400.0 - 20 -2400.0 - 30 -0.0 - 11 -9600.0 - 21 -2400.0 - 31 -0.0 - 0 -CIRCLE - 5 -6C -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9900.0 - 20 -2000.0 - 30 -0.0 - 40 -100.0 - 0 -CIRCLE - 5 -6D -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9100.0 - 20 -2000.0 - 30 -0.0 - 40 -100.0 - 0 -LINE - 5 -6E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10000.0 - 20 -4000.0 - 30 -0.0 - 11 -11000.0 - 21 -4000.0 - 31 -0.0 - 0 -LINE - 5 -6F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -8000.0 - 20 -4000.0 - 30 -0.0 - 11 -9000.0 - 21 -4000.0 - 31 -0.0 - 0 -LINE - 5 -70 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10000.0 - 20 -6000.0 - 30 -0.0 - 11 -11000.0 - 21 -6000.0 - 31 -0.0 - 0 -LINE - 5 -71 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -8000.0 - 20 -6000.0 - 30 -0.0 - 11 -9000.0 - 21 -6000.0 - 31 -0.0 - 0 -LINE - 5 -72 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10000.0 - 20 -2000.0 - 30 -0.0 - 11 -11000.0 - 21 -2000.0 - 31 -0.0 - 0 -LINE - 5 -73 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -8000.0 - 20 -2000.0 - 30 -0.0 - 11 -9000.0 - 21 -2000.0 - 31 -0.0 - 0 -CIRCLE - 5 -74 -100 -AcDbEntity -100 -AcDbCircle - 8 -junction - 62 -256 -370 --1 - 6 -ByLayer - 10 -5000.0 - 20 -4000.0 - 30 -0.0 - 40 -20.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -75 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -75 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -77 - 3 -HIDETEXT -350 -76 - 0 -DICTIONARYVAR - 5 -76 -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -77 -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/config/images/switch-nc-series.eps b/docs/src/config/images/switch-nc-series.eps deleted file mode 100644 index d62e883c2bb..00000000000 --- a/docs/src/config/images/switch-nc-series.eps +++ /dev/null @@ -1,3796 +0,0 @@ -%!PS-Adobe-2.0 EPSF-1.2 -%%Title: -%%Creator: Qt 3.3.6 -%%CreationDate: Wed Aug 1 11:18:37 2007 -%%For:jeplerjepler jepler -%%Pages: 1 -%%DocumentFonts: -%%BoundingBox: 97 339 519 560 -%%EndComments - -%%BeginProlog -%%BeginPreview: 422 221 8 2431 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000000033d0 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000003388b8 -% 99000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000033880088 -% 66990000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000003388000088 -% 00669900000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000338800000088 -% 00006699000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000033880000000088 -% 00000066990000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000003388000000000088 -% 00000000669900000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000228800000000000088 -% 00000000006688000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000668888 -% a8a88888880000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000114444000000000000000000000000 -% 44440000000000000000000000002244330000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000088884466bb3300000000000000000000 -% 44440000000000000000000011aa884477aa33000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000884400000000aa11000000000000000000 -% 444400000000000000000000aa3300000011bb000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000009900000000003388000000000000000000 -% 44440000000000000000004477000000000066440000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000004ea0888888888888b8 -% 888888888888a3000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000b88888888888888888 -% 888888888888888888888888888888888888888888888888888888a8888888888888888888888888 -% 8888888888888888888888888888888888888888888888a8000000000000aa000000000000000000 -% 4444000000000000000000664400000000005da88888888888888888888888888888888888888888 -% 88888888888888888888888888889898888888888888888888888888888888888888888888888888 -% 88888888888888888888a04e00000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000008800000000002288000000000000000000 -% 44440000000000000000004477000000000055440000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000993300000000aa22000000000000000000 -% 444400000000000000000000bb1100000000bb110000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000011bb661133aa6600000000000000000000 -% 44440000000000000000000033aa550033bb33000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000004ea08888ae991100000000000000000000003333000000 -% 66000000000000000000000000333300000000333300000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000008888a8c8c0988888888888888888888888 -% 9898888888888888888888888888b8c8b89088220000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000444400000022bb00000000000000000000004444000000 -% 88000000000000000000000000444400000000444400000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000004444000000008050000000000000000000004444000000 -% 88000000000000000000000000444400000000444400000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000004444000000005050000000000000000000004444000000 -% 88000000000000000000000000444400000000444400003344445c00000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000004444000000007050000088000000008800004444000000 -% 8800000000000000000000000044440000000044440000a0444477bb330000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000444400000011bb00000088000000008800004444000000 -% 88000000000000000000000000444400000000444400008800000011980000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000005da88888a3993300000088000000008800004444000000 -% 88000000006688888888660000444400000000444400008800000000980000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000004444000000000000000088000000008800004444000000 -% 88000000000000000000000000444400000000444400008800000000880000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000004444000000000000000088000000008800004444000000 -% 880000000000000000000000005d5d000000006c5d00008800000000880000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000044440000000000000000ae000000008800004444000000 -% 88000000000000000000000000229900000000992200008800000000b80000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000004444000000000000000088550000008800004070000000 -% 89440000000000000000000000008877000077880000008800000066770000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000222200000000000000000066a388888f00000077440000 -% 1188220000000000000000000000006688884400000000b88888a366000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000008800000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000008800000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000008800000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002200000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000076888888a333000000000000000000000000000000000000000000440000 -% 00000000000000000000440000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000880000002277770000000000000000000000000000000000000000660000 -% 00000000000000000000880000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000880000000000990000000000000000000000000000000000000000000000 -% 00000000000000000000880000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000880000000000a80000000000000000000000000000000000000000000000 -% 00000000000000000000880000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000880000000000a30000001188888855000000006988888844000000660000 -% 00698888884400000088c8888800000011888888550000008f8888b4330000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000880000000000bb00000088330000aa220000449000001133000000880000 -% 4490000011330000000088000000000088330000aa22000088000011880000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000a8888888c2aa33000000a8000000339b0000445500000000000000880000 -% 44550000000000000000880000000000a8000000339b000088000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000088000000992200000000a04444444498000011b088220000000000880000 -% 11b08822000000000000880000000000880000000088000088000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000088000000229900000000a0444444443f000000002299a833000000880000 -% 00002299a83300000000880000000000880000000088000088000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000088000000009922000000a800000000000000000000001199000000880000 -% 00000000119900000000880000000000a800000022a8000088000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000088000000002299000000aa00000000000000110000001188000000880000 -% 11000000118800000000880000000000883300009922000088000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000660000000000880000003388a8888844000044998888b722000000660000 -% 44998888b72200000000660000000000119988995500000066000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000004ea0888888888888b8 -% 888888888888a3000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000668888 -% a8a88888880000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% a8888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888898980000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 88000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000669900000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 880000008800005da80000000044440000b8888888a8bb1100000088000000000088000044888888 -% c8888888226699000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 8800000088000044b422000000444400008800000000228800000088000000000088000000000000 -% 88000000000066990000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000114444000000000000000000000000 -% 44440000000000000000000000002244330000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 88000000880000445d8800000044440000880000000000a300000088000000000088000000000000 -% 88000000000000669900000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000088884466bb3300000000000000000000 -% 44440000000000000000000011aa884477aa33000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 8800000088000044448844000044440000880000000000a800000088000000000088000000000000 -% 88000000000000006699000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000001188d0 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000884400000000aa11000000000000000000 -% 444400000000000000000000aa3300000011bb000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 88000000880000444411aa0000444400008800000000009900000088000000000088000000000000 -% 88000000000000000066990000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000bbffff -% ee220000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000880000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000009900000000003388000000000000000000 -% 44440000000000000000004477000000000066440000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 88000000880000444400665500444400008800000022995500000088000000000088000000000000 -% 8800000000000000000085cb88888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888ffffff -% ffc08888888888888888888888888888888888888888888888888888888888888888888888888888 -% 888888888888888888888888888888888888888888888888888888888888888f0000000000000000 -% 000000000000000000000000000000000000000000000000000000b8888888888888888888888888 -% 8888888888888888888888888888888888888888888888a8000000000000aa000000000000000000 -% 4444000000000000000000664400000000005da88888888888888888888888888888888888888888 -% 88888888888888888888888888889898888888888888888888888888888888888888888888888888 -% 88888888888888888888a04e00000000000000000000 -% 8800000088000044440000bb0044440000b8888888a8330000000088000000000088000000000000 -% 88000000000000000033880000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000bbffff -% ff330000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000008800000000002288000000000000000000 -% 44440000000000000000004477000000000055440000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 88000000880000444400004477444400008800000000000000000098000000000098000000000000 -% 88000000000000003388000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000022aaaa -% 66000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 0000000000000000000000000000000000000000000000993300000000aa22000000000000000000 -% 444400000000000000000000bb1100000000bb110000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 880000008800004444000000aa504400008800000000000000000098000000002298000000000000 -% 88000000000000338800000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 000000000000000000000000000000000000000000000011aa661133aa6600000000000000000000 -% 44440000000000000000000033bb550044bb33000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 88000000880000444400000033a844000088000000000000000000aa11000000aa22000000000000 -% 88000000000033880000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000008888a8c8b8988888888888888888888888 -% 9898888888888888888888888888b8c8b09088220000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 88000000880000444400000000b45d00008800000000000000000022bb7755aa6600000000000000 -% 88000000003388000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 88000000220000111100000000202000002200000000000000000000003344110000000000000000 -% 22000000338800000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% a8888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888898980000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000668888 -% a8a88888880000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44440000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000224444000000000000000000000000 -% 44440000000000000000000000003344330000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000001199884455bb3300000000000000000000 -% 44440000000000000000000011aa884466aa33000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 0000000000000000000000000000000000000000000000883300000000aa11000000000000000000 -% 444400000000000000000000aa1100000011bb000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000009900000000003388000000000000000000 -% 44440000000000000000004466000000000066440000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000b8888888888888888888888888 -% 8888888888888888888888888888888888888888888888a800000000000099000000000000000000 -% 4444000000000000000000664400000000005da88888888888888888888888888888888888888888 -% 88888888888888888888888888889898888888888888888888888888888888888888888888888888 -% 88888888888888888888a04e00000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000008800000000002288000000000000000000 -% 44440000000000000000004477000000000055440000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000993300000000aa22000000000000000000 -% 444400000000000000000000bb1100000011bb110000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000011aa661144996600000000000000000000 -% 44440000000000000000000033bb550055bb33000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000008888a8c8b8908888888888888888888888 -% 9898888888888888888888888888b8c8b08888220000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000444400000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88888888888888888888a0a088888888888888888888 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000022888888888888888888888888888844000000 -%%EndImage -%%EndPreview -save countdictstack mark newpath /showpage {} def /setpagedevice {pop} def -%%EndProlog -%%Page: 1 1 -%%BeginDocument: xfer.ps -%%DocumentFonts: - -% Prolog copyright 1994-2005 Trolltech. You may copy this prolog in any way -% that is directly related to this document. For other use of this prolog, -% see your licensing agreement for Qt. -/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D -/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D -/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D -/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read -pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end -d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi -false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88 -0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{ -LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{ -gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get -SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7 -bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL -0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB -exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL -ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1 -eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if -64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3 -i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll -putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3 -1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D -/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3 -colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1 -QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray -QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2 -add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq -{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC -imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel -where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d -/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7 -DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d -/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height -h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4 -DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{ -pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC -WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{ -1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie} -if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4 -2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg -RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0 -exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if -BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h -add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0 -6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT -}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h -D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div -add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1 -ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT -0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy -MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R -{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h -ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry -D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y -w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul -200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90 -x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0 --90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h -ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale -NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS} -D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT -x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP -ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255 -div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0 -B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25 -/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true -exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3 --1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch -/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup -maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding -fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length -dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end -definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d} -D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty -MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch -stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT -1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0 -exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore -showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop -pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D -/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt -ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP} -D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D - -/LArr[ [] [] [ 83.333 25.000 ] [ 25.000 83.333 ] [ 25.000 25.000 ] [ 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 25.000 25.000 ] ] d -/pageinit { -% 210*297mm (portrait) -0 842.04 translate 0.12 -0.12 scale/defM matrix CM d } d -QI -[1 0 0 1 0 0]ST -1 4 B 1 1 PE -NB -W BC -2135 3255 1235 HL -2135 2955 3255 VL -2135 2355 2655 VL -1175 3195 1235 3255 DL -1235 3255 1175 3315 DL -845 3300 3210 VL -875 3210 3300 VL -925 3300 875 3210 DL -925 3210 3300 VL -955 3210 3300 VL -985 3210 955 HL -1005 3240 3230 VL -955 3260 985 HL -NP -1005 3230 MT -1005 3228 LT -1005 3226 LT -1004 3224 LT -1003 3222 LT -1002 3221 LT -1001 3219 LT -1000 3217 LT -999 3216 LT -997 3215 LT -996 3213 LT -994 3212 LT -992 3212 LT -990 3211 LT -988 3211 LT -986 3210 LT -985 3210 LT -QS -NP -985 3260 MT -987 3260 LT -989 3260 LT -991 3259 LT -993 3259 LT -995 3258 LT -996 3257 LT -998 3255 LT -999 3254 LT -1001 3253 LT -1002 3251 LT -1003 3249 LT -1004 3247 LT -1004 3246 LT -1005 3244 LT -1005 3242 LT -1005 3240 LT -QS -1035 3275 3210 VL -1085 3210 3275 VL -NP -1035 3275 MT -1035 3277 LT -1035 3279 LT -1036 3281 LT -1036 3283 LT -1037 3285 LT -1038 3287 LT -1039 3288 LT -1040 3290 LT -1041 3292 LT -1043 3293 LT -1044 3294 LT -1046 3296 LT -1047 3297 LT -1049 3298 LT -1051 3299 LT -1053 3299 LT -1055 3300 LT -1057 3300 LT -1059 3300 LT -1061 3300 LT -1063 3300 LT -1065 3300 LT -1067 3299 LT -1069 3299 LT -1070 3298 LT -1072 3297 LT -1074 3296 LT -1075 3295 LT -1077 3293 LT -1078 3292 LT -1080 3291 LT -1081 3289 LT -1082 3287 LT -1083 3285 LT -1084 3283 LT -1084 3282 LT -1085 3280 LT -1085 3278 LT -1085 3276 LT -1085 3275 LT -QS -1175 3210 1115 HL -1145 3300 3210 VL -1175 3315 815 HL -815 3195 1175 HL -815 3315 3195 VL -2195 2655 2075 HL -2195 2955 2655 VL -2075 2955 2195 HL -2075 2655 2955 VL -2135 2355 2075 2415 DL -2195 2415 2135 2355 DL -1625 2688 2778 VL -1655 2688 1625 HL -1675 2718 2708 VL -1625 2738 1655 HL -NP -1675 2708 MT -1675 2706 LT -1674 2704 LT -1674 2702 LT -1673 2701 LT -1672 2699 LT -1671 2697 LT -1670 2695 LT -1669 2694 LT -1667 2693 LT -1666 2691 LT -1664 2690 LT -1662 2690 LT -1660 2689 LT -1658 2689 LT -1656 2688 LT -1655 2688 LT -QS -NP -1655 2738 MT -1657 2738 LT -1659 2738 LT -1661 2737 LT -1663 2737 LT -1664 2736 LT -1666 2735 LT -1668 2734 LT -1669 2732 LT -1671 2731 LT -1672 2729 LT -1673 2727 LT -1673 2726 LT -1674 2724 LT -1675 2722 LT -1675 2720 LT -1675 2718 LT -QS -1705 2763 2718 VL -1745 2778 1720 HL -1745 2718 2778 VL -NP -1705 2763 MT -1705 2765 LT -1705 2767 LT -1706 2769 LT -1707 2771 LT -1708 2773 LT -1709 2774 LT -1711 2775 LT -1713 2776 LT -1714 2777 LT -1716 2778 LT -1718 2778 LT -1720 2778 LT -QS -1775 2768 2688 VL -NP -1775 2768 MT -1775 2770 LT -1776 2772 LT -1777 2774 LT -1778 2776 LT -1779 2777 LT -1781 2778 LT -1783 2778 LT -1785 2778 LT -QS -1815 2768 2688 VL -NP -1815 2768 MT -1815 2770 LT -1816 2772 LT -1817 2774 LT -1818 2776 LT -1819 2777 LT -1821 2778 LT -1823 2778 LT -1825 2778 LT -QS -1895 2738 1855 HL -1925 2753 2688 VL -1975 2688 2753 VL -NP -1925 2753 MT -1925 2755 LT -1925 2757 LT -1925 2759 LT -1926 2761 LT -1927 2763 LT -1928 2765 LT -1929 2767 LT -1930 2768 LT -1931 2770 LT -1932 2771 LT -1934 2773 LT -1935 2774 LT -1937 2775 LT -1939 2776 LT -1941 2777 LT -1943 2777 LT -1945 2778 LT -1947 2778 LT -1949 2778 LT -1951 2778 LT -1953 2778 LT -1955 2778 LT -1956 2777 LT -1958 2777 LT -1960 2776 LT -1962 2775 LT -1964 2774 LT -1965 2773 LT -1967 2772 LT -1968 2770 LT -1970 2769 LT -1971 2767 LT -1972 2765 LT -1973 2763 LT -1973 2762 LT -1974 2760 LT -1974 2758 LT -1975 2756 LT -1975 2754 LT -1975 2753 LT -QS -2030 2778 2005 HL -2045 2733 2763 VL -2005 2718 2030 HL -2005 2808 2718 VL -NP -2030 2778 MT -2032 2778 LT -2034 2778 LT -2036 2777 LT -2037 2776 LT -2039 2775 LT -2041 2774 LT -2042 2772 LT -2043 2770 LT -2044 2769 LT -2044 2767 LT -2045 2765 LT -2045 2763 LT -QS -NP -2045 2733 MT -2045 2731 LT -2044 2729 LT -2044 2727 LT -2043 2726 LT -2042 2724 LT -2040 2723 LT -2039 2721 LT -2037 2720 LT -2035 2719 LT -2033 2719 LT -2031 2718 LT -2030 2718 LT -QS -1565 2832 2922 VL -1595 2832 1565 HL -1615 2862 2852 VL -1565 2882 1595 HL -1615 2922 1595 2882 DL -NP -1615 2852 MT -1615 2850 LT -1614 2848 LT -1614 2846 LT -1613 2844 LT -1612 2843 LT -1611 2841 LT -1610 2839 LT -1609 2838 LT -1607 2837 LT -1606 2835 LT -1604 2834 LT -1602 2834 LT -1600 2833 LT -1598 2833 LT -1596 2832 LT -1595 2832 LT -QS -NP -1595 2882 MT -1597 2882 LT -1599 2882 LT -1601 2881 LT -1603 2881 LT -1604 2880 LT -1606 2879 LT -1608 2878 LT -1609 2876 LT -1611 2875 LT -1612 2873 LT -1613 2871 LT -1613 2869 LT -1614 2868 LT -1615 2866 LT -1615 2864 LT -1615 2862 LT -QS -1685 2892 1645 HL -1685 2882 2892 VL -1645 2907 2882 VL -1685 2922 1660 HL -NP -1685 2882 MT -1685 2880 LT -1684 2878 LT -1684 2876 LT -1683 2874 LT -1682 2873 LT -1681 2871 LT -1680 2869 LT -1679 2868 LT -1677 2867 LT -1676 2865 LT -1674 2864 LT -1672 2864 LT -1670 2863 LT -1668 2863 LT -1666 2862 LT -1664 2862 LT -1662 2862 LT -1660 2863 LT -1658 2863 LT -1656 2864 LT -1655 2865 LT -1653 2866 LT -1651 2867 LT -1650 2869 LT -1649 2870 LT -1648 2872 LT -1647 2874 LT -1646 2876 LT -1645 2878 LT -1645 2880 LT -1645 2882 LT -1645 2882 LT -QS -NP -1645 2907 MT -1645 2909 LT -1645 2911 LT -1646 2913 LT -1647 2915 LT -1648 2917 LT -1649 2918 LT -1651 2919 LT -1653 2920 LT -1654 2921 LT -1656 2922 LT -1658 2922 LT -1660 2922 LT -QS -1747 2898 1723 2888 DL -NP -1755 2868 MT -1753 2867 LT -1751 2866 LT -1749 2866 LT -1747 2865 LT -1745 2865 LT -1743 2864 LT -1741 2864 LT -1739 2864 LT -1737 2864 LT -1735 2864 LT -1733 2864 LT -1731 2864 LT -1730 2864 LT -1728 2864 LT -1726 2865 LT -1724 2866 LT -QS -NP -1724 2866 MT -1722 2866 LT -1720 2867 LT -1719 2869 LT -1717 2870 LT -1717 2872 LT -1716 2874 LT -1716 2876 LT -1716 2878 LT -1716 2880 LT -1717 2882 LT -1718 2884 LT -1719 2885 LT -1720 2887 LT -1722 2888 LT -1723 2888 LT -QS -NP -1746 2920 MT -1748 2919 LT -1749 2918 LT -1751 2917 LT -1752 2915 LT -1753 2914 LT -1754 2912 LT -1754 2910 LT -1754 2908 LT -1754 2906 LT -1753 2904 LT -1752 2902 LT -1751 2901 LT -1749 2899 LT -1748 2898 LT -1747 2898 LT -QS -NP -1715 2918 MT -1717 2919 LT -1718 2920 LT -1720 2920 LT -1722 2921 LT -1724 2921 LT -1726 2922 LT -1728 2922 LT -1730 2922 LT -1732 2922 LT -1734 2922 LT -1736 2922 LT -1738 2922 LT -1740 2922 LT -1742 2921 LT -1744 2921 LT -1746 2920 LT -QS -1785 2862 2922 VL -1785 2832 2837 VL -1847 2898 1823 2888 DL -NP -1855 2868 MT -1853 2867 LT -1851 2866 LT -1849 2866 LT -1847 2865 LT -1845 2865 LT -1843 2864 LT -1841 2864 LT -1839 2864 LT -1837 2864 LT -1835 2864 LT -1833 2864 LT -1831 2864 LT -1829 2864 LT -1828 2864 LT -1826 2865 LT -1824 2866 LT -QS -NP -1824 2866 MT -1822 2866 LT -1820 2867 LT -1819 2869 LT -1817 2870 LT -1816 2872 LT -1816 2874 LT -1816 2876 LT -1816 2878 LT -1816 2880 LT -1817 2882 LT -1818 2884 LT -1819 2885 LT -1820 2887 LT -1822 2888 LT -1823 2888 LT -QS -NP -1846 2920 MT -1848 2919 LT -1849 2918 LT -1851 2917 LT -1852 2915 LT -1853 2914 LT -1854 2912 LT -1854 2910 LT -1854 2908 LT -1854 2906 LT -1853 2904 LT -1852 2902 LT -1851 2901 LT -1849 2899 LT -1848 2898 LT -1847 2898 LT -QS -NP -1815 2918 MT -1817 2919 LT -1818 2920 LT -1820 2920 LT -1822 2921 LT -1824 2921 LT -1826 2922 LT -1828 2922 LT -1830 2922 LT -1832 2922 LT -1834 2922 LT -1836 2922 LT -1838 2922 LT -1840 2922 LT -1842 2921 LT -1844 2921 LT -1846 2920 LT -QS -1915 2862 1885 HL -1895 2922 2832 VL -1945 2902 2882 VL -1985 2882 2902 VL -NP -1945 2902 MT -1945 2904 LT -1945 2906 LT -1946 2908 LT -1946 2910 LT -1947 2912 LT -1948 2914 LT -1949 2915 LT -1951 2917 LT -1952 2918 LT -1954 2919 LT -1956 2920 LT -1958 2921 LT -1959 2922 LT -1961 2922 LT -1963 2922 LT -1965 2922 LT -1967 2922 LT -1969 2922 LT -1971 2921 LT -1973 2920 LT -1975 2919 LT -1977 2918 LT -1978 2917 LT -1980 2916 LT -1981 2914 LT -1982 2912 LT -1983 2911 LT -1984 2909 LT -1984 2907 LT -1985 2905 LT -1985 2903 LT -1985 2902 LT -QS -NP -1985 2882 MT -1985 2880 LT -1984 2878 LT -1984 2876 LT -1983 2874 LT -1982 2873 LT -1981 2871 LT -1980 2869 LT -1979 2868 LT -1977 2867 LT -1976 2865 LT -1974 2864 LT -1972 2864 LT -1970 2863 LT -1968 2863 LT -1966 2862 LT -1964 2862 LT -1962 2862 LT -1960 2863 LT -1958 2863 LT -1956 2864 LT -1955 2865 LT -1953 2866 LT -1951 2867 LT -1950 2869 LT -1949 2870 LT -1948 2872 LT -1947 2874 LT -1946 2876 LT -1945 2878 LT -1945 2880 LT -1945 2882 LT -1945 2882 LT -QS -2015 2862 2922 VL -2035 2862 2015 HL -NP -2045 2872 MT -2045 2870 LT -2044 2868 LT -2043 2867 LT -2042 2865 LT -2040 2864 LT -2038 2863 LT -2036 2862 LT -2035 2862 LT -QS -4234 3255 3934 HL -4324 4155 4144 HL -4294 4185 4174 HL -2735 3255 2135 HL -2735 2655 3255 VL -3035 2655 2735 HL -4234 2655 3934 HL -4234 3255 2655 VL -3035 3855 3255 VL -4234 3855 3934 HL -4234 4155 3855 VL -3634 2685 3335 HL -3484 2535 2685 VL -3514 2535 3455 HL -NP -3634 2655 MT -3634 2653 LT -3634 2651 LT -3634 2649 LT -3633 2647 LT -3633 2645 LT -3632 2644 LT -3631 2642 LT -3630 2640 LT -3629 2638 LT -3628 2637 LT -3627 2635 LT -3625 2634 LT -3624 2632 LT -3622 2631 LT -3621 2630 LT -3619 2629 LT -3617 2628 LT -3615 2627 LT -3613 2627 LT -3611 2626 LT -3610 2626 LT -3608 2625 LT -3606 2625 LT -3604 2625 LT -3602 2625 LT -3600 2626 LT -3598 2626 LT -3596 2627 LT -3594 2627 LT -3592 2628 LT -3590 2629 LT -3588 2630 LT -3587 2631 LT -3585 2632 LT -3584 2634 LT -3582 2635 LT -3581 2637 LT -3580 2638 LT -3579 2640 LT -3578 2642 LT -3577 2643 LT -3576 2645 LT -3576 2647 LT -3575 2649 LT -3575 2651 LT -3575 2653 LT -3574 2655 LT -3575 2657 LT -3575 2659 LT -3575 2661 LT -3576 2663 LT -3576 2665 LT -3577 2667 LT -3578 2669 LT -3579 2670 LT -3580 2672 LT -3581 2674 LT -3582 2675 LT -3583 2677 LT -3585 2678 LT -3587 2679 LT -3588 2680 LT -3590 2682 LT -3592 2682 LT -3593 2683 LT -3595 2684 LT -3597 2684 LT -3599 2685 LT -3601 2685 LT -3603 2685 LT -3605 2685 LT -3607 2685 LT -3609 2685 LT -3611 2685 LT -3613 2684 LT -3615 2683 LT -3617 2683 LT -3619 2682 LT -3620 2681 LT -3622 2680 LT -3624 2678 LT -3625 2677 LT -3627 2676 LT -3628 2674 LT -3629 2673 LT -3630 2671 LT -3631 2669 LT -3632 2667 LT -3633 2665 LT -3633 2664 LT -3634 2662 LT -3634 2660 LT -3634 2658 LT -3634 2656 LT -3634 2655 LT -QS -NP -3395 2655 MT -3394 2653 LT -3394 2651 LT -3394 2649 LT -3393 2647 LT -3393 2645 LT -3392 2644 LT -3391 2642 LT -3390 2640 LT -3389 2638 LT -3388 2637 LT -3387 2635 LT -3385 2634 LT -3384 2632 LT -3382 2631 LT -3381 2630 LT -3379 2629 LT -3377 2628 LT -3375 2627 LT -3373 2627 LT -3372 2626 LT -3370 2626 LT -3368 2625 LT -3366 2625 LT -3364 2625 LT -3362 2625 LT -3360 2626 LT -3358 2626 LT -3356 2627 LT -3354 2627 LT -3352 2628 LT -3350 2629 LT -3348 2630 LT -3347 2631 LT -3345 2632 LT -3344 2634 LT -3342 2635 LT -3341 2637 LT -3340 2638 LT -3339 2640 LT -3338 2642 LT -3337 2643 LT -3336 2645 LT -3336 2647 LT -3335 2649 LT -3335 2651 LT -3335 2653 LT -3335 2655 LT -3335 2657 LT -3335 2659 LT -3335 2661 LT -3336 2663 LT -3336 2665 LT -3337 2667 LT -3338 2669 LT -3339 2670 LT -3340 2672 LT -3341 2674 LT -3342 2675 LT -3344 2677 LT -3345 2678 LT -3347 2679 LT -3348 2680 LT -3350 2682 LT -3352 2682 LT -3354 2683 LT -3355 2684 LT -3357 2684 LT -3359 2685 LT -3361 2685 LT -3363 2685 LT -3365 2685 LT -3367 2685 LT -3369 2685 LT -3371 2685 LT -3373 2684 LT -3375 2683 LT -3377 2683 LT -3379 2682 LT -3380 2681 LT -3382 2680 LT -3384 2678 LT -3385 2677 LT -3387 2676 LT -3388 2674 LT -3389 2673 LT -3390 2671 LT -3391 2669 LT -3392 2667 LT -3393 2665 LT -3393 2664 LT -3394 2662 LT -3394 2660 LT -3394 2658 LT -3395 2656 LT -3395 2655 LT -QS -3634 3285 3335 HL -3484 3135 3285 VL -3514 3135 3455 HL -NP -3634 3255 MT -3634 3253 LT -3634 3251 LT -3634 3249 LT -3633 3247 LT -3633 3245 LT -3632 3244 LT -3631 3242 LT -3630 3240 LT -3629 3238 LT -3628 3237 LT -3627 3235 LT -3625 3234 LT -3624 3232 LT -3622 3231 LT -3621 3230 LT -3619 3229 LT -3617 3228 LT -3615 3227 LT -3613 3227 LT -3611 3226 LT -3610 3226 LT -3608 3225 LT -3606 3225 LT -3604 3225 LT -3602 3225 LT -3600 3226 LT -3598 3226 LT -3596 3227 LT -3594 3227 LT -3592 3228 LT -3590 3229 LT -3588 3230 LT -3587 3231 LT -3585 3232 LT -3584 3234 LT -3582 3235 LT -3581 3237 LT -3580 3238 LT -3579 3240 LT -3578 3242 LT -3577 3243 LT -3576 3245 LT -3576 3247 LT -3575 3249 LT -3575 3251 LT -3575 3253 LT -3574 3255 LT -3575 3257 LT -3575 3259 LT -3575 3261 LT -3576 3263 LT -3576 3265 LT -3577 3267 LT -3578 3269 LT -3579 3270 LT -3580 3272 LT -3581 3274 LT -3582 3275 LT -3583 3277 LT -3585 3278 LT -3587 3279 LT -3588 3280 LT -3590 3281 LT -3592 3282 LT -3593 3283 LT -3595 3284 LT -3597 3284 LT -3599 3285 LT -3601 3285 LT -3603 3285 LT -3605 3285 LT -3607 3285 LT -3609 3285 LT -3611 3284 LT -3613 3284 LT -3615 3283 LT -3617 3283 LT -3619 3282 LT -3620 3281 LT -3622 3280 LT -3624 3278 LT -3625 3277 LT -3627 3276 LT -3628 3274 LT -3629 3272 LT -3630 3271 LT -3631 3269 LT -3632 3267 LT -3633 3265 LT -3633 3263 LT -3634 3261 LT -3634 3260 LT -3634 3258 LT -3634 3256 LT -3634 3255 LT -QS -NP -3395 3255 MT -3394 3253 LT -3394 3251 LT -3394 3249 LT -3393 3247 LT -3393 3245 LT -3392 3244 LT -3391 3242 LT -3390 3240 LT -3389 3238 LT -3388 3237 LT -3387 3235 LT -3385 3234 LT -3384 3232 LT -3382 3231 LT -3381 3230 LT -3379 3229 LT -3377 3228 LT -3375 3227 LT -3373 3227 LT -3372 3226 LT -3370 3226 LT -3368 3225 LT -3366 3225 LT -3364 3225 LT -3362 3225 LT -3360 3226 LT -3358 3226 LT -3356 3227 LT -3354 3227 LT -3352 3228 LT -3350 3229 LT -3348 3230 LT -3347 3231 LT -3345 3232 LT -3344 3234 LT -3342 3235 LT -3341 3237 LT -3340 3238 LT -3339 3240 LT -3338 3242 LT -3337 3243 LT -3336 3245 LT -3336 3247 LT -3335 3249 LT -3335 3251 LT -3335 3253 LT -3335 3255 LT -3335 3257 LT -3335 3259 LT -3335 3261 LT -3336 3263 LT -3336 3265 LT -3337 3267 LT -3338 3269 LT -3339 3270 LT -3340 3272 LT -3341 3274 LT -3342 3275 LT -3344 3277 LT -3345 3278 LT -3347 3279 LT -3348 3280 LT -3350 3281 LT -3352 3282 LT -3354 3283 LT -3355 3284 LT -3357 3284 LT -3359 3285 LT -3361 3285 LT -3363 3285 LT -3365 3285 LT -3367 3285 LT -3369 3285 LT -3371 3284 LT -3373 3284 LT -3375 3283 LT -3377 3283 LT -3379 3282 LT -3380 3281 LT -3382 3280 LT -3384 3278 LT -3385 3277 LT -3387 3276 LT -3388 3274 LT -3389 3272 LT -3390 3271 LT -3391 3269 LT -3392 3267 LT -3393 3265 LT -3393 3263 LT -3394 3261 LT -3394 3260 LT -3394 3258 LT -3395 3256 LT -3395 3255 LT -QS -3634 3885 3335 HL -3484 3735 3885 VL -3514 3735 3455 HL -NP -3634 3855 MT -3634 3853 LT -3634 3851 LT -3634 3849 LT -3633 3847 LT -3633 3845 LT -3632 3843 LT -3631 3842 LT -3630 3840 LT -3629 3838 LT -3628 3837 LT -3627 3835 LT -3625 3834 LT -3624 3832 LT -3622 3831 LT -3621 3830 LT -3619 3829 LT -3617 3828 LT -3615 3827 LT -3613 3826 LT -3611 3826 LT -3610 3826 LT -3608 3825 LT -3606 3825 LT -3604 3825 LT -3602 3825 LT -3600 3826 LT -3598 3826 LT -3596 3826 LT -3594 3827 LT -3592 3828 LT -3590 3829 LT -3588 3830 LT -3587 3831 LT -3585 3832 LT -3584 3833 LT -3582 3835 LT -3581 3836 LT -3580 3838 LT -3579 3840 LT -3578 3841 LT -3577 3843 LT -3576 3845 LT -3576 3847 LT -3575 3849 LT -3575 3851 LT -3575 3853 LT -3574 3855 LT -3575 3857 LT -3575 3859 LT -3575 3861 LT -3576 3863 LT -3576 3865 LT -3577 3867 LT -3578 3868 LT -3579 3870 LT -3580 3872 LT -3581 3874 LT -3582 3875 LT -3583 3877 LT -3585 3878 LT -3587 3879 LT -3588 3880 LT -3590 3881 LT -3592 3882 LT -3593 3883 LT -3595 3884 LT -3597 3884 LT -3599 3885 LT -3601 3885 LT -3603 3885 LT -3605 3885 LT -3607 3885 LT -3609 3885 LT -3611 3884 LT -3613 3884 LT -3615 3883 LT -3617 3882 LT -3619 3882 LT -3620 3881 LT -3622 3879 LT -3624 3878 LT -3625 3877 LT -3627 3875 LT -3628 3874 LT -3629 3872 LT -3630 3871 LT -3631 3869 LT -3632 3867 LT -3633 3865 LT -3633 3863 LT -3634 3861 LT -3634 3859 LT -3634 3857 LT -3634 3855 LT -3634 3855 LT -QS -NP -3395 3855 MT -3394 3853 LT -3394 3851 LT -3394 3849 LT -3393 3847 LT -3393 3845 LT -3392 3843 LT -3391 3842 LT -3390 3840 LT -3389 3838 LT -3388 3837 LT -3387 3835 LT -3385 3834 LT -3384 3832 LT -3382 3831 LT -3381 3830 LT -3379 3829 LT -3377 3828 LT -3375 3827 LT -3373 3826 LT -3372 3826 LT -3370 3826 LT -3368 3825 LT -3366 3825 LT -3364 3825 LT -3362 3825 LT -3360 3826 LT -3358 3826 LT -3356 3826 LT -3354 3827 LT -3352 3828 LT -3350 3829 LT -3348 3830 LT -3347 3831 LT -3345 3832 LT -3344 3833 LT -3342 3835 LT -3341 3836 LT -3340 3838 LT -3339 3840 LT -3338 3841 LT -3337 3843 LT -3336 3845 LT -3336 3847 LT -3335 3849 LT -3335 3851 LT -3335 3853 LT -3335 3855 LT -3335 3857 LT -3335 3859 LT -3335 3861 LT -3336 3863 LT -3336 3865 LT -3337 3867 LT -3338 3868 LT -3339 3870 LT -3340 3872 LT -3341 3874 LT -3342 3875 LT -3344 3877 LT -3345 3878 LT -3347 3879 LT -3348 3880 LT -3350 3881 LT -3352 3882 LT -3354 3883 LT -3355 3884 LT -3357 3884 LT -3359 3885 LT -3361 3885 LT -3363 3885 LT -3365 3885 LT -3367 3885 LT -3369 3885 LT -3371 3884 LT -3373 3884 LT -3375 3883 LT -3377 3882 LT -3379 3882 LT -3380 3881 LT -3382 3879 LT -3384 3878 LT -3385 3877 LT -3387 3875 LT -3388 3874 LT -3389 3872 LT -3390 3871 LT -3391 3869 LT -3392 3867 LT -3393 3865 LT -3393 3863 LT -3394 3861 LT -3394 3859 LT -3394 3857 LT -3395 3855 LT -3395 3855 LT -QS -3934 3255 3634 HL -3335 3255 3035 HL -3934 2655 3634 HL -3335 2655 3035 HL -3934 3855 3634 HL -3335 3855 3035 HL -1 24 B 1 1 PE -NP -2141 3255 MT -2140 3253 LT -2139 3251 LT -2138 3250 LT -2136 3249 LT -2134 3249 LT -2132 3250 LT -2130 3251 LT -2129 3253 LT -2129 3255 LT -2129 3257 LT -2130 3259 LT -2131 3260 LT -2133 3261 LT -2135 3261 LT -2137 3261 LT -2139 3260 LT -2140 3258 LT -2141 3256 LT -2141 3255 LT -QS - -QP -%%DocumentFonts: -%%EndDocument -%%Trailer -cleartomark countdictstack exch sub { end } repeat restore -%%EOF diff --git a/docs/src/config/images/switch-nc-series.png b/docs/src/config/images/switch-nc-series.png deleted file mode 100644 index e62697aa1e5..00000000000 Binary files a/docs/src/config/images/switch-nc-series.png and /dev/null differ diff --git a/docs/src/config/images/switch-nc-series_fr.png b/docs/src/config/images/switch-nc-series_fr.png deleted file mode 100644 index 92a23ba99e3..00000000000 Binary files a/docs/src/config/images/switch-nc-series_fr.png and /dev/null differ diff --git a/docs/src/config/images/switch-nc-series_fr.svg b/docs/src/config/images/switch-nc-series_fr.svg deleted file mode 100755 index a555307f28e..00000000000 --- a/docs/src/config/images/switch-nc-series_fr.svg +++ /dev/null @@ -1,220 +0,0 @@ - - - -image/svg+xmlEntrée - - - - - - - -Résistancede rappel - - - - - - \ No newline at end of file diff --git a/docs/src/config/images/switch-no-parallel.dxf b/docs/src/config/images/switch-no-parallel.dxf deleted file mode 100644 index 1948dc6681f..00000000000 --- a/docs/src/config/images/switch-no-parallel.dxf +++ /dev/null @@ -1,3196 +0,0 @@ -999 -dxflib 2.0.4.0 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMASZ - 40 -98.4252000000000038 - 9 -$GRIDUNIT - 10 -0.0 - 20 -0.0 - 9 -$DIMADEC - 70 -2 - 9 -$DIMGAP - 40 -24.6063000000000009 - 9 -$SPLINESEGS - 70 -8 - 9 -$AUPREC - 70 -2 - 9 -$LUNITS - 70 -2 - 9 -$DIMEXO - 40 -24.6063000000000009 - 9 -$INSUNITS - 70 -9 - 9 -$DIMLUNIT - 70 -2 - 9 -$DIMTXT - 40 -98.4252000000000038 - 9 -$GRIDMODE - 70 -1 - 9 -$LUPREC - 70 -4 - 9 -$PSVPSCALE - 40 -0.5 - 9 -$DIMSTYLE - 2 -Standard - 9 -$PLIMMAX - 10 -8500.0 - 20 -11000.0 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$PINSBASE - 10 -488.4579764279098981 - 20 -3543.7291605020818679 - 30 -0.0 - 9 -$DIMEXE - 40 -49.2126000000000019 - 9 -$DIMAUNIT - 70 -0 - 9 -$AUNITS - 70 -0 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -2 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -junction - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -100 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -2.5 - 42 -0.625 - 43 -3.75 - 44 -1.25 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -2.5 -141 -2.5 -143 -0.03937007874016 -147 -0.625 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -44 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -2000.0 - 20 -4000.0 - 30 -0.0 - 11 -5000.0 - 21 -4000.0 - 31 -0.0 - 0 -LINE - 5 -45 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -5000.0 - 20 -4000.0 - 30 -0.0 - 11 -5000.0 - 21 -5000.0 - 31 -0.0 - 0 -LINE - 5 -46 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -5000.0 - 20 -6000.0 - 30 -0.0 - 11 -5000.0 - 21 -7000.0 - 31 -0.0 - 0 -LINE - 5 -47 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -2000.0 - 20 -4000.0 - 30 -0.0 - 11 -1800.0 - 21 -4200.0 - 31 -0.0 - 0 -LINE - 5 -48 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1800.0 - 20 -3800.0 - 30 -0.0 - 11 -2000.0 - 21 -4000.0 - 31 -0.0 - 0 -MTEXT - 5 -49 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -700.0 - 20 -4000.0 - 30 -0.0 - 40 -300.0 - 41 -10000.0 - 71 -4 - 72 -2 - 1 -INPUT - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -600.0 - 20 -3800.0 - 30 -0.0 - 11 -1800.0 - 21 -3800.0 - 31 -0.0 - 0 -LINE - 5 -4B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1800.0 - 20 -4200.0 - 30 -0.0 - 11 -600.0 - 21 -4200.0 - 31 -0.0 - 0 -LINE - 5 -4C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -600.0 - 20 -4200.0 - 30 -0.0 - 11 -600.0 - 21 -3800.0 - 31 -0.0 - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -4800.0 - 20 -6000.0 - 30 -0.0 - 11 -5200.0 - 21 -6000.0 - 31 -0.0 - 0 -LINE - 5 -4E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -5200.0 - 20 -6000.0 - 30 -0.0 - 11 -5200.0 - 21 -5000.0 - 31 -0.0 - 0 -LINE - 5 -4F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -5200.0 - 20 -5000.0 - 30 -0.0 - 11 -4800.0 - 21 -5000.0 - 31 -0.0 - 0 -LINE - 5 -50 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -4800.0 - 20 -5000.0 - 30 -0.0 - 11 -4800.0 - 21 -6000.0 - 31 -0.0 - 0 -LINE - 5 -51 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -4800.0 - 20 -6800.0 - 30 -0.0 - 11 -5000.0 - 21 -7000.0 - 31 -0.0 - 0 -LINE - 5 -52 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -5000.0 - 20 -7000.0 - 30 -0.0 - 11 -5200.0 - 21 -6800.0 - 31 -0.0 - 0 -MTEXT - 5 -53 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -4700.0 - 20 -5500.0 - 30 -0.0 - 40 -300.0 - 41 -10000.0 - 71 -6 - 72 -2 - 1 -Pull-Up\PResistor - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -54 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -5000.0 - 20 -4000.0 - 30 -0.0 - 11 -8000.0 - 21 -4000.0 - 31 -0.0 - 0 -LINE - 5 -55 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -8000.0 - 20 -4000.0 - 30 -0.0 - 11 -8000.0 - 21 -6000.0 - 31 -0.0 - 0 -LINE - 5 -56 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -8000.0 - 20 -4000.0 - 30 -0.0 - 11 -8000.0 - 21 -2000.0 - 31 -0.0 - 0 -LINE - 5 -57 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11000.0 - 20 -6000.0 - 30 -0.0 - 11 -11000.0 - 21 -2000.0 - 31 -0.0 - 0 -LINE - 5 -58 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11000.0 - 20 -4000.0 - 30 -0.0 - 11 -12000.0 - 21 -4000.0 - 31 -0.0 - 0 -LINE - 5 -59 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -12000.0 - 20 -4000.0 - 30 -0.0 - 11 -12000.0 - 21 -1000.0 - 31 -0.0 - 0 -LINE - 5 -5A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11700.0 - 20 -1000.0 - 30 -0.0 - 11 -12300.0 - 21 -1000.0 - 31 -0.0 - 0 -LINE - 5 -5B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11800.0 - 20 -900.0 - 30 -0.0 - 11 -12200.0 - 21 -900.0 - 31 -0.0 - 0 -LINE - 5 -5C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9000.0 - 20 -2300.0 - 30 -0.0 - 11 -10000.0 - 21 -2300.0 - 31 -0.0 - 0 -LINE - 5 -5D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9500.0 - 20 -2300.0 - 30 -0.0 - 11 -9500.0 - 21 -2800.0 - 31 -0.0 - 0 -LINE - 5 -5E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9400.0 - 20 -2800.0 - 30 -0.0 - 11 -9600.0 - 21 -2800.0 - 31 -0.0 - 0 -LINE - 5 -5F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10000.0 - 20 -6000.0 - 30 -0.0 - 11 -11000.0 - 21 -6000.0 - 31 -0.0 - 0 -LINE - 5 -60 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -8000.0 - 20 -6000.0 - 30 -0.0 - 11 -9000.0 - 21 -6000.0 - 31 -0.0 - 0 -LINE - 5 -61 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -8000.0 - 20 -4000.0 - 30 -0.0 - 11 -9000.0 - 21 -4000.0 - 31 -0.0 - 0 -LINE - 5 -62 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10000.0 - 20 -4000.0 - 30 -0.0 - 11 -11000.0 - 21 -4000.0 - 31 -0.0 - 0 -LINE - 5 -63 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10000.0 - 20 -2000.0 - 30 -0.0 - 11 -11000.0 - 21 -2000.0 - 31 -0.0 - 0 -LINE - 5 -64 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -8000.0 - 20 -2000.0 - 30 -0.0 - 11 -9000.0 - 21 -2000.0 - 31 -0.0 - 0 -CIRCLE - 5 -65 -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9100.0 - 20 -2000.0 - 30 -0.0 - 40 -100.0 - 0 -CIRCLE - 5 -66 -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9900.0 - 20 -2000.0 - 30 -0.0 - 40 -100.0 - 0 -LINE - 5 -67 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9000.0 - 20 -4300.0 - 30 -0.0 - 11 -10000.0 - 21 -4300.0 - 31 -0.0 - 0 -LINE - 5 -68 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9500.0 - 20 -4300.0 - 30 -0.0 - 11 -9500.0 - 21 -4800.0 - 31 -0.0 - 0 -LINE - 5 -69 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9400.0 - 20 -4800.0 - 30 -0.0 - 11 -9600.0 - 21 -4800.0 - 31 -0.0 - 0 -CIRCLE - 5 -6A -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9100.0 - 20 -4000.0 - 30 -0.0 - 40 -100.0 - 0 -CIRCLE - 5 -6B -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9900.0 - 20 -4000.0 - 30 -0.0 - 40 -100.0 - 0 -LINE - 5 -6C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9000.0 - 20 -6300.0 - 30 -0.0 - 11 -10000.0 - 21 -6300.0 - 31 -0.0 - 0 -LINE - 5 -6D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9500.0 - 20 -6300.0 - 30 -0.0 - 11 -9500.0 - 21 -6800.0 - 31 -0.0 - 0 -LINE - 5 -6E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9400.0 - 20 -6800.0 - 30 -0.0 - 11 -9600.0 - 21 -6800.0 - 31 -0.0 - 0 -CIRCLE - 5 -6F -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9100.0 - 20 -6000.0 - 30 -0.0 - 40 -100.0 - 0 -CIRCLE - 5 -70 -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9900.0 - 20 -6000.0 - 30 -0.0 - 40 -100.0 - 0 -CIRCLE - 5 -71 -100 -AcDbEntity -100 -AcDbCircle - 8 -junction - 62 -256 -370 --1 - 6 -ByLayer - 10 -5000.0 - 20 -4000.0 - 30 -0.0 - 40 -20.0 - 0 -CIRCLE - 5 -72 -100 -AcDbEntity -100 -AcDbCircle - 8 -junction - 62 -256 -370 --1 - 6 -ByLayer - 10 -8000.0 - 20 -4000.0 - 30 -0.0 - 40 -20.0 - 0 -CIRCLE - 5 -73 -100 -AcDbEntity -100 -AcDbCircle - 8 -junction - 62 -256 -370 --1 - 6 -ByLayer - 10 -11000.0 - 20 -4000.0 - 30 -0.0 - 40 -20.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -74 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -74 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -76 - 3 -HIDETEXT -350 -75 - 0 -DICTIONARYVAR - 5 -75 -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -76 -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/config/images/switch-no-parallel.eps b/docs/src/config/images/switch-no-parallel.eps deleted file mode 100644 index df02f4a974c..00000000000 --- a/docs/src/config/images/switch-no-parallel.eps +++ /dev/null @@ -1,3837 +0,0 @@ -%!PS-Adobe-2.0 EPSF-1.2 -%%Title: -%%Creator: Qt 3.3.6 -%%CreationDate: Wed Aug 1 11:18:30 2007 -%%For:jeplerjepler jepler -%%Pages: 1 -%%DocumentFonts: -%%BoundingBox: 56 287 479 508 -%%EndComments - -%%BeginProlog -%%BeginPreview: 423 221 8 2431 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000000033b6 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000033bbbd -% 99000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000033bb1188 -% 66990000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000033bb110088 -% 00669900000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000033bb11000088 -% 00006699000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000033bb1100000088 -% 00000066990000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000033bb110000000088 -% 00000000669900000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000022bb11000000000088 -% 00000000006688000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000448888 -% 88a88888880000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000008888888888888888888888888888888888 -% 88c88888888888888888888888888888888888440000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000004433000000000000000000000000 -% 00000000000000000000000000000044220000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000066aa6677995500000000000000000000 -% 0000000000000000000000000088996688bb33000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000005577000000009933000000000000000000 -% 000000000000000000000000885500000011bb110000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000aa000000000011aa000000000000000000 -% 00000000000000000000000099000000000033770000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000003f98888888888888c8 -% 8888888888888f000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000a8888888888888888888888888 -% 8888888888888888888888888888888888888888888888c100000000000088000000000000000000 -% 00000000000000000000003388000000000000c88888888888888888888888888888888888888888 -% 8888888888888888888888888888888f000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 000000000000000000000000000000000000000000000099000000000000aa000000000000000000 -% 00000000000000000000001188000000000011880000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000008833000000007766000000000000000000 -% 000000000000000000000000aa220000000088220000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 000000000000000000000000000000000000000000000011aa771122779900000000000000000000 -% 00000000000000000000000022aa6600338866000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000004ea08888ae881100000000000000000000003333000000 -% 33330000000000000000000000333300000000333300000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000558888440000000000000000000000 -% 00000000000000000000000000005588883300000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000444400000022aa00000000000000000000004444000000 -% 44440000000000000000000000444400000000444400000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000004444000000006050000000000000000000004444000000 -% 44440000000000000000000000444400000000444400000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000004444000000005050000000000000000000004444000000 -% 44440000000000000000000000444400000000444400000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000004444000000006c5d000088000000008800004444000000 -% 4444000000000000000000000044440000000044440000a88888a8aa330000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000444400000011aa11000088000000008800004444000000 -% 44440000000000000000000000444400000000444400008800000011a70000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000005da88888a3993300000088000000008800004444000000 -% 44440000004488888888660000444400000000444400008800000000980000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000004444000000000000000088000000008800004444000000 -% 44440000000000000000000000444400000000444400008800000000880000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000004444000000000000000088000000008800004444000000 -% 444400000000000000000000005c5c000000005c5c00008800000000880000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000044440000000000000000a3000000008800004444000000 -% 44440000000000000000000000228800000000883300008800000000ae0000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000004444000000000000000077550000008800005d89000000 -% 6c6c0000000000000000000000008877000077990000008800000044880000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000333300000000000000000088ae8888a300000088440000 -% 1199220000000000000000000000006699886600000000a88888a888110000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000008800000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000008800000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000008800000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002200000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000003f4444446c22000000000000000000000000000000000000000000220000 -% 00000000000000000000220000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000984444445daa660000000000000000000000000000000000000000660000 -% 00000000000000000000880000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000880000000000990000000000000000000000000000000000000000000000 -% 00000000000000000000880000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000880000000000a80000000000000000000000000000000000000000000000 -% 00000000000000000000880000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000880000000000a30000000088889933000000008288aa8833000000660000 -% 008288aa883300000088c8888800000000888899440000004ea088b4330000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000880000000000aa00000088660000aa330000339900002277000000880000 -% 3399000022770000000088000000000077660000aa33000044440000990000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000009844444493aa550000009800000011980000554400000000000000880000 -% 55440000000000000000880000000000980000001198000044440000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000098444444ca1100000000a8444444449f000011b488110000000000880000 -% 11b48811000000000000880000000000880000000088000044440000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000088000000448800000000a8444444443f000000004488b822000000880000 -% 00004488b82200000000880000000000880000000088000044440000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000008800000000aa11000000a800000000000000000000001188000000880000 -% 00000000118800000000880000000000a800000000a8000044440000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000088000000004488000000aa00000000000000000000000099000000880000 -% 00000000009900000000880000000000993300008855000044440000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000880000000000aa00000033bba8888844000022998888b733000000880000 -% 22998888b7330000000088000000000011aa88aa6600000044440000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000444400000000000000 -% 00000000000088000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000005da8888888888888a8 -% 888888888888b8000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000448888 -% 88a88888880000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000008888888888888888888888888888888888 -% 88c88888888888888888888888888888888888440000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 8f888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 888888987a0000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000666600000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 8800000088000069a80000000044440000b8888888b4991100000088000000000088000044888888 -% c8888888226666000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 8800000088000044c111000000444400008800000000339900000088000000000088000000000000 -% 88000000000066660000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000003322000000000000000000000000 -% 00000000000000000000000000000033110000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 88000000880000445d8800000044440000880000000000a800000088000000000088000000000000 -% 88000000000000666600000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000066aa7788994400000000000000000000 -% 0000000000000000000000000088998888bb33000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 8800000088000044449922000044440000880000000000a800000088000000000088000000000000 -% 88000000000000006666000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000000077c8 -% 33000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000077c8220000000000000000000000 -% 00000000000000000000000000000000000000000000005588000000009933000000000000000000 -% 000000000000000000000000886600000011bb110000000000000000000000000000000000000000 -% 000000000000000000000000000066c8330000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 88000000880000444411990000444400008800000000008800000088000000000088000000000000 -% 88000000000000000066660000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000088ffff -% ee220000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000088ffffff2200000000000000000000 -% 0000000000000000000000000000000000000000000000aa000000000011aa000000000000000000 -% 00000000000000000000000099000000000044770000000000000000000000000000000000000000 -% 0000000000000000000000000088ffffee4400000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 88000000880000444400884400444400008800000000885500000088000000000088000000000000 -% 8800000000000000000085ba88888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888f8ffff -% ffc08888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888f0ffffffc888888888888888888888 -% 8888888888888888888888888888888888888888888888c100000000000088000000000000000000 -% 00000000000000000000003388000000000000c88888888888888888888888888888888888888888 -% 88888888888888888888888888e0ffffffc888888888888888888888888888888888888888888888 -% 88888888888888888888888f0000000000000000000000 -% 8800000088000044440011990044440000b8888888a8440000000088000000000088000000000000 -% 88000000000000000033bb1100000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000bbffff -% ff550000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000bbffffff4400000000000000000000 -% 00000000000000000000000000000000000000000000009900000000000099000000000000000000 -% 00000000000000000000001188000000000011880000000000000000000000000000000000000000 -% 0000000000000000000000000099ffffff7700000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 88000000880000444400006666444400008800000000000000000098000000000098000000000000 -% 880000000000000033bb110000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000033aabb -% 88000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000001199e0880000000000000000000000 -% 00000000000000000000000000000000000000000000008833000000006677000000000000000000 -% 000000000000000000000000aa220000000088330000000000000000000000000000000000000000 -% 0000000000000000000000000011aae0880000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 880000008800004444000000aa444400008800000000000000000098000000002298000000000000 -% 8800000000000033bb11000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 000000000000000000000000000000000000000000000011bb550011779900000000000000000000 -% 00000000000000000000000022994400228877000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 88000000880000444400000044a844000088000000000000000000bb110000008822000000000000 -% 88000000000033bb1100000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000668888550000000000000000000000 -% 00000000000000000000000000116688884400000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 88000000880000444400000000c15000008800000000000000000033aa5544996600000000000000 -% 880000000033bb110000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 88000000220000111100000000202000002200000000000000000000114444220000000000000000 -% 2200000033bb11000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% a8888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888898c41100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000224444 -% 445d4444440000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000224444 -% 44a84444440000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000004444444444444444444444444444444444 -% 44a84444444444444444444444444444444444220000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000004444444444444444444444444444444444 -% 445d4444444444444444444444444444444444220000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000000066bb8888993300000000000000000000 -% 0000000000000000000000000088aa8888aa22000000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 00000000000000000000000000000000000000000000004499000000119933000000000000000000 -% 000000000000000000000000886600000011aa110000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000088000000000000000000000000 -% 0000000000000000000000000000000000000000000000aa00000000001199000000000000000000 -% 000000000000000000000000aa000000000044770000000000000000000000000000000000000000 -% 00000000000000000000000000000088000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000c8888888888888888888888888 -% 8888888888888888888888888888888888888888888888c100000000000088000000000000000000 -% 00000000000000000000003388000000000000c88888888888888888888888888888888888888888 -% 888888888888888888888888888888b8000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000009900000000000099000000000000000000 -% 00000000000000000000001188000000000011880000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000009933000000006677000000000000000000 -% 000000000000000000000000aa220000000088440000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000011bb550011778800000000000000000000 -% 00000000000000000000000022aa4400228888000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000668888550000000000000000000000 -% 00000000000000000000000000116688884400000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000880000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 6688888888888888888888c88888888888888888888844 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000088888888888888888888888888886600000000 -%%EndImage -%%EndPreview -save countdictstack mark newpath /showpage {} def /setpagedevice {pop} def -%%EndProlog -%%Page: 1 1 -%%BeginDocument: xfer.ps -%%DocumentFonts: - -% Prolog copyright 1994-2005 Trolltech. You may copy this prolog in any way -% that is directly related to this document. For other use of this prolog, -% see your licensing agreement for Qt. -/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D -/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D -/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D -/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read -pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end -d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi -false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88 -0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{ -LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{ -gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get -SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7 -bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL -0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB -exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL -ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1 -eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if -64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3 -i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll -putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3 -1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D -/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3 -colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1 -QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray -QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2 -add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq -{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC -imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel -where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d -/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7 -DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d -/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height -h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4 -DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{ -pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC -WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{ -1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie} -if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4 -2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg -RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0 -exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if -BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h -add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0 -6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT -}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h -D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div -add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1 -ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT -0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy -MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R -{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h -ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry -D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y -w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul -200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90 -x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0 --90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h -ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale -NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS} -D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT -x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP -ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255 -div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0 -B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25 -/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true -exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3 --1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch -/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup -maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding -fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length -dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end -definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d} -D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty -MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch -stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT -1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0 -exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore -showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop -pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D -/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt -ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP} -D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D - -/LArr[ [] [] [ 83.333 25.000 ] [ 25.000 83.333 ] [ 25.000 25.000 ] [ 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 25.000 25.000 ] ] d -/pageinit { -% 216*279mm (portrait) -0 792 translate 0.12 -0.12 scale/defM matrix CM d } d -QI -[1 0 0 1 0 0]ST -1 4 B 1 1 PE -NB -W BC -1794 3272 893 HL -1794 2972 3272 VL -1794 2372 2672 VL -833 3212 893 3272 DL -893 3272 833 3332 DL -503 3317 3227 VL -533 3227 3317 VL -583 3317 533 3227 DL -583 3227 3317 VL -613 3227 3317 VL -643 3227 613 HL -663 3257 3247 VL -613 3277 643 HL -NP -663 3247 MT -663 3245 LT -663 3243 LT -662 3241 LT -662 3240 LT -661 3238 LT -660 3236 LT -658 3235 LT -657 3233 LT -656 3232 LT -654 3231 LT -652 3230 LT -650 3229 LT -648 3228 LT -647 3228 LT -645 3227 LT -643 3227 LT -QS -NP -643 3277 MT -645 3277 LT -647 3277 LT -649 3277 LT -651 3276 LT -653 3275 LT -654 3274 LT -656 3273 LT -658 3271 LT -659 3270 LT -660 3268 LT -661 3266 LT -662 3265 LT -662 3263 LT -663 3261 LT -663 3259 LT -663 3257 LT -QS -693 3292 3227 VL -743 3227 3292 VL -NP -693 3292 MT -693 3294 LT -694 3296 LT -694 3298 LT -694 3300 LT -695 3302 LT -696 3304 LT -697 3306 LT -698 3307 LT -699 3309 LT -701 3310 LT -702 3312 LT -704 3313 LT -706 3314 LT -707 3315 LT -709 3316 LT -711 3316 LT -713 3317 LT -715 3317 LT -717 3317 LT -719 3317 LT -721 3317 LT -723 3317 LT -725 3317 LT -727 3316 LT -729 3315 LT -730 3314 LT -732 3313 LT -734 3312 LT -735 3311 LT -737 3309 LT -738 3308 LT -739 3306 LT -740 3304 LT -741 3303 LT -742 3301 LT -742 3299 LT -743 3297 LT -743 3295 LT -743 3293 LT -743 3292 LT -QS -833 3227 773 HL -803 3317 3227 VL -833 3332 473 HL -473 3212 833 HL -473 3332 3212 VL -1854 2672 1734 HL -1854 2972 2672 VL -1734 2972 1854 HL -1734 2672 2972 VL -1794 2372 1734 2432 DL -1854 2432 1794 2372 DL -1283 2705 2795 VL -1313 2705 1283 HL -1334 2735 2725 VL -1283 2755 1313 HL -NP -1334 2725 MT -1333 2723 LT -1333 2721 LT -1333 2719 LT -1332 2717 LT -1331 2716 LT -1330 2714 LT -1329 2712 LT -1327 2711 LT -1326 2709 LT -1324 2708 LT -1323 2707 LT -1321 2706 LT -1319 2706 LT -1317 2705 LT -1315 2705 LT -1313 2705 LT -QS -NP -1313 2755 MT -1315 2755 LT -1317 2755 LT -1319 2754 LT -1321 2754 LT -1323 2753 LT -1325 2752 LT -1326 2750 LT -1328 2749 LT -1329 2748 LT -1330 2746 LT -1331 2744 LT -1332 2742 LT -1333 2740 LT -1333 2739 LT -1333 2737 LT -1334 2735 LT -QS -1364 2780 2735 VL -1404 2795 1379 HL -1404 2735 2795 VL -NP -1364 2780 MT -1364 2782 LT -1364 2784 LT -1365 2786 LT -1366 2788 LT -1367 2789 LT -1368 2791 LT -1370 2792 LT -1371 2793 LT -1373 2794 LT -1375 2795 LT -1377 2795 LT -1379 2795 LT -QS -1434 2785 2705 VL -NP -1434 2785 MT -1434 2787 LT -1434 2789 LT -1435 2791 LT -1437 2792 LT -1438 2794 LT -1440 2795 LT -1442 2795 LT -1444 2795 LT -QS -1474 2785 2705 VL -NP -1474 2785 MT -1474 2787 LT -1474 2789 LT -1475 2791 LT -1477 2792 LT -1478 2794 LT -1480 2795 LT -1482 2795 LT -1484 2795 LT -QS -1554 2755 1514 HL -1584 2770 2705 VL -1634 2705 2770 VL -NP -1584 2770 MT -1584 2772 LT -1584 2774 LT -1584 2776 LT -1585 2778 LT -1586 2780 LT -1586 2782 LT -1587 2783 LT -1589 2785 LT -1590 2787 LT -1591 2788 LT -1593 2789 LT -1594 2791 LT -1596 2792 LT -1598 2793 LT -1600 2793 LT -1601 2794 LT -1603 2795 LT -1605 2795 LT -1607 2795 LT -1609 2795 LT -1611 2795 LT -1613 2795 LT -1615 2794 LT -1617 2794 LT -1619 2793 LT -1621 2792 LT -1623 2791 LT -1624 2790 LT -1626 2788 LT -1627 2787 LT -1628 2786 LT -1630 2784 LT -1631 2782 LT -1631 2780 LT -1632 2779 LT -1633 2777 LT -1633 2775 LT -1634 2773 LT -1634 2771 LT -1634 2770 LT -QS -1689 2795 1664 HL -1704 2750 2780 VL -1664 2735 1689 HL -1664 2825 2735 VL -NP -1689 2795 MT -1691 2795 LT -1693 2795 LT -1695 2794 LT -1696 2793 LT -1698 2792 LT -1699 2791 LT -1701 2789 LT -1702 2787 LT -1703 2786 LT -1703 2784 LT -1704 2782 LT -1704 2780 LT -QS -NP -1704 2750 MT -1704 2748 LT -1703 2746 LT -1702 2744 LT -1702 2743 LT -1700 2741 LT -1699 2739 LT -1698 2738 LT -1696 2737 LT -1694 2736 LT -1692 2736 LT -1690 2735 LT -1689 2735 LT -QS -1223 2849 2939 VL -1253 2849 1223 HL -1273 2879 2869 VL -1223 2899 1253 HL -1273 2939 1253 2899 DL -NP -1273 2869 MT -1273 2867 LT -1273 2865 LT -1273 2863 LT -1272 2861 LT -1271 2860 LT -1270 2858 LT -1269 2856 LT -1267 2855 LT -1266 2854 LT -1264 2852 LT -1263 2851 LT -1261 2851 LT -1259 2850 LT -1257 2849 LT -1255 2849 LT -1253 2849 LT -QS -NP -1253 2899 MT -1255 2899 LT -1257 2899 LT -1259 2898 LT -1261 2898 LT -1263 2897 LT -1265 2896 LT -1266 2895 LT -1268 2893 LT -1269 2892 LT -1270 2890 LT -1271 2888 LT -1272 2886 LT -1273 2885 LT -1273 2883 LT -1273 2881 LT -1273 2879 LT -QS -1344 2909 1303 HL -1344 2899 2909 VL -1303 2924 2899 VL -1344 2939 1318 HL -NP -1344 2899 MT -1343 2897 LT -1343 2895 LT -1343 2893 LT -1342 2891 LT -1341 2890 LT -1340 2888 LT -1339 2886 LT -1337 2885 LT -1336 2884 LT -1334 2882 LT -1333 2881 LT -1331 2881 LT -1329 2880 LT -1327 2880 LT -1325 2879 LT -1323 2879 LT -1321 2879 LT -1319 2880 LT -1317 2880 LT -1315 2881 LT -1313 2882 LT -1312 2883 LT -1310 2884 LT -1309 2886 LT -1307 2887 LT -1306 2889 LT -1305 2891 LT -1305 2893 LT -1304 2895 LT -1304 2896 LT -1304 2898 LT -1303 2899 LT -QS -NP -1303 2924 MT -1304 2926 LT -1304 2928 LT -1305 2930 LT -1306 2932 LT -1307 2934 LT -1308 2935 LT -1310 2936 LT -1311 2937 LT -1313 2938 LT -1315 2939 LT -1317 2939 LT -1318 2939 LT -QS -1405 2915 1382 2905 DL -NP -1414 2885 MT -1412 2884 LT -1410 2883 LT -1408 2883 LT -1406 2882 LT -1404 2881 LT -1402 2881 LT -1400 2881 LT -1398 2881 LT -1396 2880 LT -1394 2880 LT -1392 2881 LT -1390 2881 LT -1388 2881 LT -1386 2881 LT -1384 2882 LT -1382 2882 LT -QS -NP -1382 2882 MT -1381 2883 LT -1379 2884 LT -1377 2886 LT -1376 2887 LT -1375 2889 LT -1375 2891 LT -1374 2893 LT -1374 2895 LT -1375 2897 LT -1375 2899 LT -1376 2901 LT -1377 2902 LT -1379 2903 LT -1381 2905 LT -1382 2905 LT -QS -NP -1405 2937 MT -1406 2936 LT -1408 2935 LT -1410 2934 LT -1411 2932 LT -1412 2931 LT -1412 2929 LT -1413 2927 LT -1413 2925 LT -1412 2923 LT -1412 2921 LT -1411 2919 LT -1410 2918 LT -1408 2916 LT -1406 2915 LT -1405 2915 LT -QS -NP -1374 2935 MT -1375 2936 LT -1377 2936 LT -1379 2937 LT -1381 2938 LT -1383 2938 LT -1385 2939 LT -1387 2939 LT -1389 2939 LT -1391 2939 LT -1393 2939 LT -1395 2939 LT -1397 2939 LT -1399 2939 LT -1401 2938 LT -1403 2938 LT -1405 2937 LT -QS -1444 2879 2939 VL -1444 2849 2854 VL -1505 2915 1482 2905 DL -NP -1514 2885 MT -1512 2884 LT -1510 2883 LT -1508 2883 LT -1506 2882 LT -1504 2881 LT -1502 2881 LT -1500 2881 LT -1498 2881 LT -1496 2880 LT -1494 2880 LT -1492 2881 LT -1490 2881 LT -1488 2881 LT -1486 2881 LT -1484 2882 LT -1482 2882 LT -QS -NP -1482 2882 MT -1481 2883 LT -1479 2884 LT -1477 2886 LT -1476 2887 LT -1475 2889 LT -1475 2891 LT -1474 2893 LT -1474 2895 LT -1475 2897 LT -1475 2899 LT -1476 2901 LT -1478 2902 LT -1479 2903 LT -1481 2905 LT -1482 2905 LT -QS -NP -1505 2937 MT -1507 2936 LT -1508 2935 LT -1510 2934 LT -1511 2932 LT -1512 2931 LT -1513 2929 LT -1513 2927 LT -1513 2925 LT -1513 2923 LT -1512 2921 LT -1511 2919 LT -1510 2918 LT -1508 2916 LT -1506 2915 LT -1505 2915 LT -QS -NP -1474 2935 MT -1475 2936 LT -1477 2936 LT -1479 2937 LT -1481 2938 LT -1483 2938 LT -1485 2939 LT -1487 2939 LT -1489 2939 LT -1491 2939 LT -1493 2939 LT -1495 2939 LT -1497 2939 LT -1499 2939 LT -1501 2938 LT -1503 2938 LT -1505 2937 LT -QS -1574 2879 1544 HL -1554 2939 2849 VL -1604 2919 2899 VL -1644 2899 2919 VL -NP -1604 2919 MT -1604 2921 LT -1604 2923 LT -1605 2925 LT -1605 2927 LT -1606 2929 LT -1607 2931 LT -1608 2932 LT -1610 2934 LT -1611 2935 LT -1613 2936 LT -1615 2937 LT -1616 2938 LT -1618 2939 LT -1620 2939 LT -1622 2939 LT -1624 2939 LT -1626 2939 LT -1628 2939 LT -1630 2938 LT -1632 2937 LT -1634 2936 LT -1635 2935 LT -1637 2934 LT -1638 2933 LT -1640 2931 LT -1641 2930 LT -1642 2928 LT -1643 2926 LT -1643 2924 LT -1643 2922 LT -1644 2920 LT -1644 2919 LT -QS -NP -1644 2899 MT -1644 2897 LT -1643 2895 LT -1643 2893 LT -1642 2891 LT -1641 2890 LT -1640 2888 LT -1639 2886 LT -1638 2885 LT -1636 2884 LT -1634 2882 LT -1633 2881 LT -1631 2881 LT -1629 2880 LT -1627 2880 LT -1625 2879 LT -1623 2879 LT -1621 2879 LT -1619 2880 LT -1617 2880 LT -1615 2881 LT -1613 2882 LT -1612 2883 LT -1610 2884 LT -1609 2886 LT -1608 2887 LT -1606 2889 LT -1606 2891 LT -1605 2893 LT -1604 2895 LT -1604 2896 LT -1604 2898 LT -1604 2899 LT -QS -1674 2879 2939 VL -1694 2879 1674 HL -NP -1704 2889 MT -1703 2887 LT -1703 2885 LT -1702 2884 LT -1701 2882 LT -1699 2881 LT -1697 2880 LT -1695 2879 LT -1694 2879 LT -QS -2694 3272 1794 HL -2694 2672 3272 VL -2694 3873 3272 VL -3595 3873 2672 VL -3895 3272 3595 HL -3895 4173 3272 VL -3985 4173 3805 HL -3955 4203 3835 HL -3294 3783 2994 HL -3144 3633 3783 VL -3174 3633 3114 HL -3595 2672 3294 HL -2994 2672 2694 HL -2994 3272 2694 HL -3595 3272 3294 HL -3595 3873 3294 HL -2994 3873 2694 HL -NP -3054 3873 MT -3054 3871 LT -3054 3869 LT -3054 3867 LT -3053 3865 LT -3053 3863 LT -3052 3861 LT -3051 3859 LT -3050 3857 LT -3049 3856 LT -3048 3854 LT -3047 3853 LT -3045 3851 LT -3044 3850 LT -3042 3849 LT -3041 3847 LT -3039 3846 LT -3037 3846 LT -3035 3845 LT -3033 3844 LT -3031 3844 LT -3029 3843 LT -3027 3843 LT -3025 3843 LT -3023 3843 LT -3021 3843 LT -3019 3843 LT -3017 3843 LT -3016 3844 LT -3014 3845 LT -3012 3845 LT -3010 3846 LT -3008 3847 LT -3007 3848 LT -3005 3850 LT -3004 3851 LT -3002 3852 LT -3001 3854 LT -3000 3856 LT -2999 3857 LT -2998 3859 LT -2997 3861 LT -2996 3863 LT -2995 3865 LT -2995 3867 LT -2995 3868 LT -2994 3870 LT -2994 3872 LT -2994 3874 LT -2995 3876 LT -2995 3878 LT -2995 3880 LT -2996 3882 LT -2997 3884 LT -2997 3886 LT -2998 3888 LT -2999 3889 LT -3001 3891 LT -3002 3893 LT -3003 3894 LT -3005 3895 LT -3006 3897 LT -3008 3898 LT -3010 3899 LT -3011 3900 LT -3013 3901 LT -3015 3901 LT -3017 3902 LT -3019 3902 LT -3021 3903 LT -3023 3903 LT -3025 3903 LT -3027 3903 LT -3029 3902 LT -3031 3902 LT -3033 3901 LT -3035 3901 LT -3037 3900 LT -3038 3899 LT -3040 3898 LT -3042 3897 LT -3043 3896 LT -3045 3895 LT -3046 3893 LT -3048 3892 LT -3049 3890 LT -3050 3888 LT -3051 3887 LT -3052 3885 LT -3053 3883 LT -3053 3881 LT -3054 3879 LT -3054 3877 LT -3054 3875 LT -3054 3873 LT -3054 3873 LT -QS -NP -3294 3873 MT -3294 3871 LT -3294 3869 LT -3294 3867 LT -3293 3865 LT -3293 3863 LT -3292 3861 LT -3291 3859 LT -3290 3857 LT -3289 3856 LT -3288 3854 LT -3287 3853 LT -3285 3851 LT -3284 3850 LT -3282 3849 LT -3281 3847 LT -3279 3846 LT -3277 3846 LT -3275 3845 LT -3273 3844 LT -3271 3844 LT -3270 3843 LT -3268 3843 LT -3266 3843 LT -3264 3843 LT -3262 3843 LT -3260 3843 LT -3258 3843 LT -3256 3844 LT -3254 3845 LT -3252 3845 LT -3250 3846 LT -3248 3847 LT -3247 3848 LT -3245 3850 LT -3244 3851 LT -3242 3852 LT -3241 3854 LT -3240 3856 LT -3239 3857 LT -3238 3859 LT -3237 3861 LT -3236 3863 LT -3236 3865 LT -3235 3867 LT -3235 3868 LT -3235 3870 LT -3234 3872 LT -3234 3874 LT -3235 3876 LT -3235 3878 LT -3235 3880 LT -3236 3882 LT -3237 3884 LT -3238 3886 LT -3238 3888 LT -3240 3889 LT -3241 3891 LT -3242 3893 LT -3243 3894 LT -3245 3895 LT -3246 3897 LT -3248 3898 LT -3250 3899 LT -3252 3900 LT -3253 3901 LT -3255 3901 LT -3257 3902 LT -3259 3902 LT -3261 3903 LT -3263 3903 LT -3265 3903 LT -3267 3903 LT -3269 3902 LT -3271 3902 LT -3273 3901 LT -3275 3901 LT -3277 3900 LT -3279 3899 LT -3280 3898 LT -3282 3897 LT -3284 3896 LT -3285 3895 LT -3286 3893 LT -3288 3892 LT -3289 3890 LT -3290 3888 LT -3291 3887 LT -3292 3885 LT -3293 3883 LT -3293 3881 LT -3294 3879 LT -3294 3877 LT -3294 3875 LT -3294 3873 LT -3294 3873 LT -QS -3294 3182 2994 HL -3144 3032 3182 VL -3174 3032 3114 HL -NP -3054 3272 MT -3054 3270 LT -3054 3268 LT -3054 3266 LT -3053 3265 LT -3053 3263 LT -3052 3261 LT -3051 3259 LT -3050 3257 LT -3049 3255 LT -3048 3254 LT -3047 3252 LT -3045 3251 LT -3044 3250 LT -3042 3248 LT -3041 3247 LT -3039 3246 LT -3037 3245 LT -3035 3244 LT -3033 3244 LT -3031 3243 LT -3029 3243 LT -3027 3243 LT -3025 3242 LT -3023 3242 LT -3021 3243 LT -3019 3243 LT -3017 3243 LT -3016 3244 LT -3014 3244 LT -3012 3245 LT -3010 3246 LT -3008 3247 LT -3007 3248 LT -3005 3249 LT -3004 3251 LT -3002 3252 LT -3001 3254 LT -3000 3255 LT -2999 3257 LT -2998 3259 LT -2997 3261 LT -2996 3262 LT -2995 3264 LT -2995 3266 LT -2995 3268 LT -2994 3270 LT -2994 3272 LT -2994 3274 LT -2995 3276 LT -2995 3278 LT -2995 3280 LT -2996 3282 LT -2997 3284 LT -2997 3286 LT -2998 3287 LT -2999 3289 LT -3001 3291 LT -3002 3292 LT -3003 3294 LT -3005 3295 LT -3006 3296 LT -3008 3298 LT -3010 3299 LT -3011 3300 LT -3013 3300 LT -3015 3301 LT -3017 3302 LT -3019 3302 LT -3021 3302 LT -3023 3302 LT -3025 3302 LT -3027 3302 LT -3029 3302 LT -3031 3302 LT -3033 3301 LT -3035 3301 LT -3037 3300 LT -3038 3299 LT -3040 3298 LT -3042 3297 LT -3043 3296 LT -3045 3294 LT -3046 3293 LT -3048 3291 LT -3049 3290 LT -3050 3288 LT -3051 3286 LT -3052 3285 LT -3053 3283 LT -3053 3281 LT -3054 3279 LT -3054 3277 LT -3054 3275 LT -3054 3273 LT -3054 3272 LT -QS -NP -3294 3272 MT -3294 3270 LT -3294 3268 LT -3294 3266 LT -3293 3265 LT -3293 3263 LT -3292 3261 LT -3291 3259 LT -3290 3257 LT -3289 3255 LT -3288 3254 LT -3287 3252 LT -3285 3251 LT -3284 3250 LT -3282 3248 LT -3281 3247 LT -3279 3246 LT -3277 3245 LT -3275 3244 LT -3273 3244 LT -3271 3243 LT -3270 3243 LT -3268 3243 LT -3266 3242 LT -3264 3242 LT -3262 3243 LT -3260 3243 LT -3258 3243 LT -3256 3244 LT -3254 3244 LT -3252 3245 LT -3250 3246 LT -3248 3247 LT -3247 3248 LT -3245 3249 LT -3244 3251 LT -3242 3252 LT -3241 3254 LT -3240 3255 LT -3239 3257 LT -3238 3259 LT -3237 3261 LT -3236 3262 LT -3236 3264 LT -3235 3266 LT -3235 3268 LT -3235 3270 LT -3234 3272 LT -3234 3274 LT -3235 3276 LT -3235 3278 LT -3235 3280 LT -3236 3282 LT -3237 3284 LT -3238 3286 LT -3238 3287 LT -3240 3289 LT -3241 3291 LT -3242 3292 LT -3243 3294 LT -3245 3295 LT -3246 3296 LT -3248 3298 LT -3250 3299 LT -3252 3300 LT -3253 3300 LT -3255 3301 LT -3257 3302 LT -3259 3302 LT -3261 3302 LT -3263 3302 LT -3265 3302 LT -3267 3302 LT -3269 3302 LT -3271 3302 LT -3273 3301 LT -3275 3301 LT -3277 3300 LT -3279 3299 LT -3280 3298 LT -3282 3297 LT -3284 3296 LT -3285 3294 LT -3286 3293 LT -3288 3291 LT -3289 3290 LT -3290 3288 LT -3291 3286 LT -3292 3285 LT -3293 3283 LT -3293 3281 LT -3294 3279 LT -3294 3277 LT -3294 3275 LT -3294 3273 LT -3294 3272 LT -QS -3294 2582 2994 HL -3144 2432 2582 VL -3174 2432 3114 HL -NP -3054 2672 MT -3054 2670 LT -3054 2668 LT -3054 2666 LT -3053 2664 LT -3053 2662 LT -3052 2660 LT -3051 2659 LT -3050 2657 LT -3049 2655 LT -3048 2654 LT -3047 2652 LT -3045 2651 LT -3044 2649 LT -3042 2648 LT -3041 2647 LT -3039 2646 LT -3037 2645 LT -3035 2644 LT -3033 2643 LT -3031 2643 LT -3029 2643 LT -3027 2642 LT -3025 2642 LT -3023 2642 LT -3021 2642 LT -3019 2643 LT -3017 2643 LT -3016 2643 LT -3014 2644 LT -3012 2645 LT -3010 2646 LT -3008 2647 LT -3007 2648 LT -3005 2649 LT -3004 2650 LT -3002 2652 LT -3001 2653 LT -3000 2655 LT -2999 2657 LT -2998 2658 LT -2997 2660 LT -2996 2662 LT -2995 2664 LT -2995 2666 LT -2995 2668 LT -2994 2670 LT -2994 2672 LT -2994 2674 LT -2995 2676 LT -2995 2678 LT -2995 2680 LT -2996 2682 LT -2997 2684 LT -2997 2685 LT -2998 2687 LT -2999 2689 LT -3001 2691 LT -3002 2692 LT -3003 2694 LT -3005 2695 LT -3006 2696 LT -3008 2697 LT -3010 2698 LT -3011 2699 LT -3013 2700 LT -3015 2701 LT -3017 2701 LT -3019 2702 LT -3021 2702 LT -3023 2702 LT -3025 2702 LT -3027 2702 LT -3029 2702 LT -3031 2701 LT -3033 2701 LT -3035 2700 LT -3037 2700 LT -3038 2699 LT -3040 2698 LT -3042 2697 LT -3043 2695 LT -3045 2694 LT -3046 2693 LT -3048 2691 LT -3049 2689 LT -3050 2688 LT -3051 2686 LT -3052 2684 LT -3053 2682 LT -3053 2680 LT -3054 2679 LT -3054 2677 LT -3054 2675 LT -3054 2673 LT -3054 2672 LT -QS -NP -3294 2672 MT -3294 2670 LT -3294 2668 LT -3294 2666 LT -3293 2664 LT -3293 2662 LT -3292 2660 LT -3291 2659 LT -3290 2657 LT -3289 2655 LT -3288 2654 LT -3287 2652 LT -3285 2651 LT -3284 2649 LT -3282 2648 LT -3281 2647 LT -3279 2646 LT -3277 2645 LT -3275 2644 LT -3273 2643 LT -3271 2643 LT -3270 2643 LT -3268 2642 LT -3266 2642 LT -3264 2642 LT -3262 2642 LT -3260 2643 LT -3258 2643 LT -3256 2643 LT -3254 2644 LT -3252 2645 LT -3250 2646 LT -3248 2647 LT -3247 2648 LT -3245 2649 LT -3244 2650 LT -3242 2652 LT -3241 2653 LT -3240 2655 LT -3239 2657 LT -3238 2658 LT -3237 2660 LT -3236 2662 LT -3236 2664 LT -3235 2666 LT -3235 2668 LT -3235 2670 LT -3234 2672 LT -3234 2674 LT -3235 2676 LT -3235 2678 LT -3235 2680 LT -3236 2682 LT -3237 2684 LT -3238 2685 LT -3238 2687 LT -3240 2689 LT -3241 2691 LT -3242 2692 LT -3243 2694 LT -3245 2695 LT -3246 2696 LT -3248 2697 LT -3250 2698 LT -3252 2699 LT -3253 2700 LT -3255 2701 LT -3257 2701 LT -3259 2702 LT -3261 2702 LT -3263 2702 LT -3265 2702 LT -3267 2702 LT -3269 2702 LT -3271 2701 LT -3273 2701 LT -3275 2700 LT -3277 2700 LT -3279 2699 LT -3280 2698 LT -3282 2697 LT -3284 2695 LT -3285 2694 LT -3286 2693 LT -3288 2691 LT -3289 2689 LT -3290 2688 LT -3291 2686 LT -3292 2684 LT -3293 2682 LT -3293 2680 LT -3294 2679 LT -3294 2677 LT -3294 2675 LT -3294 2673 LT -3294 2672 LT -QS -1 24 B 1 1 PE -NP -1800 3272 MT -1799 3270 LT -1798 3269 LT -1797 3267 LT -1795 3267 LT -1793 3266 LT -1791 3267 LT -1789 3268 LT -1788 3270 LT -1788 3272 LT -1788 3274 LT -1789 3276 LT -1790 3277 LT -1792 3278 LT -1794 3278 LT -1796 3278 LT -1798 3277 LT -1799 3275 LT -1800 3273 LT -1800 3272 LT -QS -NP -2700 3272 MT -2700 3270 LT -2699 3269 LT -2697 3267 LT -2695 3267 LT -2693 3266 LT -2691 3267 LT -2690 3268 LT -2689 3270 LT -2688 3272 LT -2688 3274 LT -2689 3276 LT -2691 3277 LT -2692 3278 LT -2694 3278 LT -2696 3278 LT -2698 3277 LT -2699 3275 LT -2700 3273 LT -2700 3272 LT -QS -NP -3601 3272 MT -3600 3270 LT -3599 3269 LT -3598 3267 LT -3596 3267 LT -3594 3266 LT -3592 3267 LT -3590 3268 LT -3589 3270 LT -3589 3272 LT -3589 3274 LT -3590 3276 LT -3591 3277 LT -3593 3278 LT -3595 3278 LT -3597 3278 LT -3599 3277 LT -3600 3275 LT -3601 3273 LT -3601 3272 LT -QS - -QP -%%DocumentFonts: -%%EndDocument -%%Trailer -cleartomark countdictstack exch sub { end } repeat restore -%%EOF diff --git a/docs/src/config/images/switch-no-parallel.png b/docs/src/config/images/switch-no-parallel.png deleted file mode 100644 index 1d3619b143a..00000000000 Binary files a/docs/src/config/images/switch-no-parallel.png and /dev/null differ diff --git a/docs/src/config/images/switch-no-parallel_fr.png b/docs/src/config/images/switch-no-parallel_fr.png deleted file mode 100644 index dc209885913..00000000000 Binary files a/docs/src/config/images/switch-no-parallel_fr.png and /dev/null differ diff --git a/docs/src/config/images/switch-no-parallel_fr.svg b/docs/src/config/images/switch-no-parallel_fr.svg deleted file mode 100755 index 8d880688d68..00000000000 --- a/docs/src/config/images/switch-no-parallel_fr.svg +++ /dev/null @@ -1,219 +0,0 @@ - - - -image/svg+xml - - - - - - - -Entrée - - - -Résistancede rappel - - - - \ No newline at end of file diff --git a/docs/src/config/ini_config.txt b/docs/src/config/ini_config.txt deleted file mode 100644 index 7960f9f0c6d..00000000000 --- a/docs/src/config/ini_config.txt +++ /dev/null @@ -1,1088 +0,0 @@ -= INI Configuration - -[[cha:ini-configuration]] (((INI Configuration))) - -== The INI File Components - -A typical INI file follows a rather simple layout that includes; - -* comments -* sections -* variables - -Each of these elements is separated on single lines. Each end of line -or newline character creates a new element. - -=== Comments (((Comments, INI File))) - -A comment line is started with a ; or a # mark. When the ini reader -sees either of these marks at the start a line, the rest of the line is -ignored by the software. Comments can be used to describe what an INI -element will do. - ----- -; This is my mill configuration file. -# I set it up on January 12, 2012 ----- - -Comments can also be used to 'turn off' a variable. This makes it easier -to pick between different variables. - ----- -DISPLAY = axis -# DISPLAY = touchy ----- - -In this list, the DISPLAY variable will be set to axis because the -other one is commented out. If someone carelessly edits a list like -this and leaves two of the lines uncommented, the first one encountered -will be used. - -Note that inside a variable, the "#" and ";" characters do not denote -comments: - ----- -INCORRECT = value # and a comment - -# Correct Comment -CORRECT = value ----- - -=== Sections - -Related parts of an ini file are separated into sections. -A section name is enclosed in brackets like this '[THIS_SECTION]' -The order of sections is unimportant. Sections begin at the section -name and end at the next section name. - -The following sections are used by LinuxCNC: - -* '[<>]' general information -* '[<>]' settings related to the graphical user interface -* '[<>]' settings input filter programs -* '[<>]' settings used by the g-code interpreter -* '[<>]' settings used by the real time motion controller -* '[<>]' settings used by the task controller -* '[<>]' specifies .hal files -* '[<>]' MDI commands used by HALUI -* '[<>]' additional settings used by the real time motion controller -* '[<>]' individual axis variables -* '[<>]' settings used by the I/O Controller - -=== Variables - -A variable line is made up of a variable name, an equals sign (=), and -a value. Everything from the first non-white space character after the -= up to the end of the line is passed as the value, so you can embed -spaces in string symbols if you want to or need to. A variable name is -often called a keyword. - -The following sections detail each section of the configuration file, -using sample values for the configuration lines. - -Variables that are used by LinuxCNC must always use the section -names and variable names as shown. In the following example the variable -'MACHINE' is assigned the value 'My Machine'. - -.Variable Example ----- -MACHINE = My Machine ----- - -[[sub:custom-variables]] -=== Custom Sections and Variables - -Most sample configurations use custom sections and variables to put all of the -settings into one location for convenience. - -To use a custom section variable in your HAL file add the section and -variable to the INI file. - -.Custom Section Example ----- -[OFFSETS] -OFFSET_1 = 0.1234 ----- - -To add a custom variable to a LinuxCNC section simply include the variable -in that section. - -.Custom Variable Example ----- -[AXIS_0] -TYPE = LINEAR -... -SCALE = 16000 ----- - -To use the custom variables in your HAL file put the section and variable -name in place of the value. - -.HAL Example ----- -setp offset.1.offset [OFFSETS]OFFSET_1 -setp stepgen.0.position-scale [AXIS_0]SCALE ----- - -[NOTE] -The value stored in the variable must match the type specified by the -component pin. - -=== Include Files - -An INI file may include the contents of another file by using a #INCLUDE -directive. - -.#INCLUDE Format ----- -#INCLUDE filename ----- - -The filename can be specified as: - - * a file in the same directory as the INI file - * a file located relative to the working directory - * an absolute file name (starts with a /) - * a user-home-relative file name (starts with a ~) - -Multiple #INCLUDE directives are supported. - -.#INCLUDE Examples ----- -#INCLUDE axis_0.inc -#INCLUDE ../parallel/axis_1.inc -#INCLUDE below/axis_2.inc -#INCLUDE /home/myusername/myincludes/display.inc -#INCLUDE ~/linuxcnc/myincludes/rs274ngc.inc ----- - -The #INCLUDE directives are supported for one level of expansion only -- an -included file may not include additional files. The recommended file extension -is .inc. Do not use a file extension of .ini for included files. - - -[[sec:INI-Detail]] -== INI File Sections - -[[sub:EMC-section]] -=== [EMC] Section(((EMC (inifile section)))) - -* 'VERSION = $Revision: 1.3 $' - The version number for the INI file. The value shown here looks odd - because it is automatically updated when using the Revision Control - System. It's a good idea to change this number each time you revise - your file. If you want to edit this manually just change the number and - leave the other tags alone. - -* 'MACHINE = My Controller' - This is the name of the controller, which is printed out at the top - of most graphical interfaces. You can put whatever you want here as - long as you make it a single line long. - -* 'DEBUG = 0' - Debug level 0 means no messages will be printed when LinuxCNC is run from a - terminal. Debug flags are usually only useful to developers. See - src/emc/nml_intf/debugflags.h for other settings. - -[[sub:DISPLAY-section]] -=== [DISPLAY] Section(((DISPLAY (inifile section)))) - -Different user interface programs use different options, and not every -option is supported by every user interface. The main two interfaces -for LinuxCNC are AXIS and Touchy. Axis is an interface for use with normal -computer and monitor, Touchy is for use with touch screens. -Descriptions of the interfaces are in the Interfaces section of the -User Manual. - -* 'DISPLAY = axis' - The name of the user interface to use. Valid options - may include: axis,(((axis))) touchy,(((touchy))) keystick,(((keystick))) - mini,(((mini))) tklinuxcnc,(((tkLinuxCNC))) xemc,(((xemc))) - -* 'POSITION_OFFSET = RELATIVE' - The coordinate system (RELATIVE or MACHINE) to show when the user - interface starts. The RELATIVE coordinate system reflects the G92 and - G5x coordinate offsets currently in effect. - -* 'POSITION_FEEDBACK = ACTUAL' - The coordinate value (COMMANDED or ACTUAL) to show when the user - interface starts. The COMMANDED position is the ideal position - requested by LinuxCNC. The ACTUAL position is the feedback position of the - motors. - -* 'MAX_FEED_OVERRIDE = 1.2' - The maximum feed override the user may select. 1.2 means 120% of the - programmed feed rate. - -* 'MIN_SPINDLE_OVERRIDE = 0.5' - The minimum spindle override the user may select. 0.5 means 50% of the - programmed spindle speed. (This is useful as it's dangerous to run a - program with a too low spindle speed). - -* 'MAX_SPINDLE_OVERRIDE = 1.0' - The maximum spindle override the user may select. 1.0 means 100% of - the programmed spindle speed. - -* 'PROGRAM_PREFIX = ~/linuxcnc/nc_files' - The default location for g-code files - and the location for user-defined M-codes. This location is searched for - the file name before the subroutine path and user M path if specified - in the [RS274NGC] section. - -* 'INTRO_GRAPHIC = emc2.gif' - The image shown on the splash screen. - -* 'INTRO_TIME = 5' - The maximum time to show the splash screen, in seconds. - -* 'CYCLE_TIME = 0.05' - Cycle time in seconds that display will sleep between - polls. - -[NOTE] -The following [DISPLAY] items are for the AXIS interface only. - -* 'DEFAULT_LINEAR_VELOCITY = .25' - The default velocity for linear jogs, in , - <> per second. - -* 'MIN_VELOCITY = .01' - The approximate lowest value the jog slider. - -* 'MAX_LINEAR_VELOCITY = 1.0' - The maximum velocity for linear jogs, in machine units per second. - -* 'MIN_LINEAR_VELOCITY = .01' - The approximate lowest value the jog slider. - -* 'DEFAULT_ANGULAR_VELOCITY = .25' - The default velocity for angular jogs, in machine units per second. - -* 'MIN_ANGULAR_VELOCITY = .01' - The approximate lowest value the angular jog slider. - -* 'MAX_ANGULAR_VELOCITY = 1.0' - The maximum velocity for angular jogs, in machine units per second. - -* 'INCREMENTS = 1 mm, .5 in, ...' - Defines the increments available for incremental jogs. - The INCREMENTS can be used to override the default. - The values can be decimal numbers (e.g., 0.1000) or fractional numbers (e.g., 1/16), - optionally followed by a unit (cm, mm, um, inch, in or mil). - If a unit is not specified the machine unit is assumed. - Metric and imperial distances may be mixed: - INCREMENTS = 1 inch, 1 mil, 1 cm, 1 mm, 1 um is a valid entry. - -* 'GRIDS = 10 mm, 1 in, ...' - Defines the preset values for grid lines. - The value is interpreted the same way as 'INCREMENTS'. - -* 'OPEN_FILE = /full/path/to/file.ngc' - The file to show in the preview plot when AXIS starts. Use - a blank string "" and no file will be loaded at start up. - -* 'EDITOR = gedit' - The editor to use when selecting File > Edit to edit the G code - from the AXIS menu. This must be configured for this menu item to - work. Another valid entry is gnome-terminal -e vim. - -* 'TOOL_EDITOR = tooledit' - The editor to use when editing the tool table (for example by - selecting "File > Edit tool table..." in Axis). Other valid - entries are "gedit", "gnome-terminal -e vim", and "gvim". - -* 'PYVCP = /filename.xml' - The PyVCP panel description file. See the PyVCP section for more - information. - -* 'LATHE = 1' - This displays in lathe mode with a top view and with Radius and - Diameter on the DRO. - -* 'GEOMETRY = XYZABCUVW' - Controls the preview and backplot of rotary motion. This item consists - of a sequence of axis letters, optionally preceded by a "-" sign. Only - axes defined in '[TRAJ]AXES' should be used. This sequence specifies - the order in which the effect - of each axis is applied, with a "-" inverting the sense of the - rotation. - The proper GEOMETRY string depends on the machine configuration and - the kinematics used to control it. The example string GEOMETRY=XYZBCUVW - is for a 5-axis machine where kinematics causes UVW to move in the - coordinate system of the tool and XYZ to move in the coordinate system - of the material. The order of the letters is important, because it - expresses the order in which the different transformations are applied. - For example rotating around C then B is different than rotating around - B then C. Geometry has no effect without a rotary axis. - -* 'ARCDIVISION = 64' - Set the quality of preview of arcs. Arcs are previewed by dividing - them into a number of straight lines; a semicircle is divided into - *ARCDIVISION* parts. Larger values give a more accurate preview, but - take longer to - load and result in a more sluggish display. Smaller values give a less - accurate preview, but take less time to load and may result in a faster - display. The default value of 64 means a circle of up to 3 inches will - be displayed to within 1 mil (.03%).footnote:[In LinuxCNC 2.4 and earlier, - the default value was 128.] - -* 'MDI_HISTORY_FILE =' - The name of a local MDI history file. If this is not specified Axis - will save the MDI history in *.axis_mdi_history* in the user's home - directory. This is useful if you have multiple configurations on one - computer. - -[NOTE] -The following [DISPLAY] item is used by the TKLinuxCNC interface only. - -* 'HELP_FILE = tklinucnc.txt' - Path to help file. - -[[sub:FILTER-Section]] -=== [FILTER] Section(((ini [FILTER] Section))) - -AXIS has the ability to send loaded files through a filter program. -This filter can do any desired task: Something as simple as making sure -the file ends with M2, or something as complicated as detecting whether -the input is a depth image, and generating g-code to mill the shape it -defines. The [FILTER] section of the ini file controls how filters -work. First, for each type of file, write a PROGRAM_EXTENSION line. -Then, specify the program to execute for each type of file. This -program is given the name of the input file as its first argument, and -must write RS274NGC code to standard output. This output is what will -be displayed in the text area, previewed in the display area, and -executed by LinuxCNC when Run. - -* 'PROGRAM_EXTENSION = .extension Description' - -If your post processor outputs files in all caps you might want to add -the following line: - -* 'PROGRAM_EXTENSION = .NGC XYZ Post Processor' - -The following lines add support for the image-to-gcode converter -included with LinuxCNC: - -* 'PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image' -** 'png = image-to-gcode' -** 'gif = image-to-gcode' -** 'jpg = image-to-gcode' - -It is also possible to specify an interpreter: - -* 'PROGRAM_EXTENSION = .py Python Script' -** 'py = python' - -In this way, any Python script can be opened, and its output is -treated as g-code. One such example script is available at -nc_files/holecircle.py. This script creates g-code for drilling a -series of holes along the circumference of a circle. Many more g-code -generators are on the LinuxCNC Wiki site -http://wiki.linuxcnc.org/[http://wiki.linuxcnc.org/]. - -If the environment variable AXIS_PROGRESS_BAR is set, then lines -written to stderr of the form - -* 'FILTER_PROGRESS=%d' - -sets the AXIS progress bar to the given percentage. This feature -should be used by any filter that runs for a long time. - -Python filters should use the print function to output the result to Axis. - -This example program filters a file and adds a W axis to match the Z axis. -It depends on there being a space between each axis word to work. - ----- -#! /usr/bin/env python - -import sys - -def main(argv): - - openfile = open(argv[0], 'r') - file_in = openfile.readlines() - openfile.close() - - file_out = [] - for line in file_in: - # print line - if line.find('Z') != -1: - words = line.rstrip('\n') - words = words.split(' ') - newword = '' - for i in words: - if i[0] == 'Z': - newword = 'W'+ i[1:] - if len(newword) > 0: - words.append(newword) - newline = ' '.join(words) - file_out.append(newline) - else: - file_out.append(line) - for item in file_out: - print "%s" % item - -if __name__ == "__main__": - main(sys.argv[1:]) ----- - -[[sub:RS274NGC-section]] -=== [RS274NGC] Section(((RS274NGC (inifile section)))) - -* 'PARAMETER_FILE = myfile.var' - - (((PARAMETER FILE))) The file located in the same directory as the ini - file which contains the parameters used by the interpreter (saved - between runs). - -* 'ORIENT_OFFSET = 0' - - (((ORIENT OFFSET ))) A float value added to the R word parameter - of an <> operation. Used to define an arbitrary - zero position regardless of encoder mount orientation. - -* 'RS274NGC_STARTUP_CODE = G01 G17 G20 G40 G49 G64 P0.001 G80 G90 G92 G94 G97 G98' - - (((RS274NGC STARTUP CODE))) A string of NC codes that the interpreter - is initialized with. This is not a substitute for specifying modal - g-codes at the top of each ngc file, because the modal codes of - machines differ, and may be changed by g-code interpreted earlier in - the session. - -* 'SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs' - - (((SUBROUTINE PATH))) Specifies a colon (:) separated list of up to 10 - directories to be searched when single-file subroutines are specified - in gcode. These directories are searched after searching - [DISPLAY]PROGRAM_PREFIX (if it is specified) and before searching - [WIZARD]WIZARD_ROOT (if specified). The paths are searched in the order - that they are listed. The first matching subroutine file - found in the search is used. Directories are specified relative to the - current directory for the ini file or as absolute paths. The list must - contain no intervening whitespace. - -* 'USER_M_PATH = myfuncs:/tmp/mcodes:experimentalmcodes' - (((USER M PATH))) - Specifies a list of colon (:) separated directories for user defined - functions. Directories are specified relative to the current directory - for the ini file or as absolute paths. The list must contain no intervening - whitespace. -+ -A search is made for each possible user defined function, typically -(M100-M199). The search order is: -+ -. [DISPLAY]PROGRAM_PREFIX (if specified) -. If [DISPLAY]PROGRAM_PREFIX is not specified, search the default location: nc_files -. Then search each directory in the list [RS274NGC]USER_M_PATH -+ -The first executable M1xx found in the search is used for each M1xx. - -* 'USER_DEFINED_FUNCTION_MAX_DIRS=5'. The maximum number of directories defined - at compile time. - -[NOTE] -[WIZARD]WIZARD_ROOT is a valid search path but the Wizard has not been fully -implemented and the results of using it are unpredictable. - -[[sub:EMCMOT-section]] -=== [EMCMOT] Section(((EMCMOT (inifile section)))) - -This section is a custom section and is not used by LinuxCNC directly. Most -configurations use values from this section to load the motion controller. For -more information on the motion controller see the <> -Section. - -* 'EMCMOT = motmod' - the motion controller name is typically used here. - -* 'BASE_PERIOD = 50000' - the 'Base' task period in nanoseconds. - -* 'SERVO_PERIOD = 1000000' - This is the "Servo" task period in nanoseconds. - -* 'TRAJ_PERIOD = 100000' - This is the 'Trajectory Planner' task period in - nanoseconds. - -[[sub:TASK-section]] -=== [TASK] Section(((TASK (inifile section)))) - -* 'TASK = milltask' - - Specifies the name of the 'task' executable. The 'task' executable does various - things, such as communicate with the UIs over NML, communicate with the - realtime motion planner over non-HAL shared memory, and interpret gcode. - Currently there is only one task executable that makes sense for - 99.9% of users, milltask. - -* 'CYCLE_TIME = 0.010' - - The period, in seconds, at which TASK will run. This parameter - affects the polling interval when waiting for motion to complete, when - executing a pause instruction, and when accepting a command from a user - interface. There is usually no need to change this number. - -=== [HAL] section[[sub:HAL-section]] -(((HAL (inifile section)))) - -* 'TWOPASS=ON' - Use two pass processing for loading HAL comps. With TWOPASS processing, - all [HAL]HALFILES are first read and multiple appearances of loadrt - directives for each moduleb are accumulated. - No hal commands are executed in this initial pass. - -* 'HALFILE = example.hal' - Execute the file 'example.hal' at start up. - If 'HALFILE' is specified multiple times, the files are executed in the order they - appear in the ini file. Almost all configurations will have at least - one 'HALFILE', and stepper systems typically have two such files, one - which - specifies the generic stepper configuration ('core_stepper.hal') and - one which specifies the machine pin out ('xxx_pinout.hal') - -* 'HALCMD = command' - Execute 'command' as a single HAL command. - If 'HALCMD' is specified multiple times, the commands are executed in the order - they appear in the ini file. 'HALCMD' lines are executed after all - 'HALFILE' lines. - -* 'SHUTDOWN = shutdown.hal' - Execute the file 'shutdown.hal' when LinuxCNC is exiting. - Depending on the hardware drivers used, this may make it possible to set outputs to - defined values when LinuxCNC is exited normally. However, because there is - no guarantee this file will be executed (for instance, in the case of a - computer crash) it is not a replacement for a proper physical e-stop - chain or other protections against software failure. - -* 'POSTGUI_HALFILE = example2.hal' - (Only with the TOUCHY and AXIS GUI) - Execute 'example2.hal' after the GUI has created its HAL pins. See - section <> Section for more information. - -* 'HALUI = halui' - adds the HAL user interface pins. For more information see - the <> chapter. - -[[sub:HALUI-section]] -=== [HALUI] section(((HALUI (inifile section)))) - -* 'MDI_COMMAND = G53 G0 X0 Y0 Z0' - - An MDI command can be executed by using halui.mdi-command-00. Increment - the number for each command listed in the [HALUI] section. - -[[sub:TRAJ-section]] -=== [TRAJ] Section(((TRAJ (inifile section)))) - -The [TRAJ] section contains general parameters for the trajectory -planning module in 'motion'. - -* 'COORDINATES = X Y Z' - The names of the axes being controlled. - Only X, Y, Z, A, B, C, U, V, W are valid. Only axes named in 'COORDINATES' - are accepted in g-code. This has no effect on the mapping from G-code - axis names (X- Y- Z-) to joint numbers--for 'trivial kinematics', X is - always joint 0, A is always joint 3, and U is always joint 6, and so - on. It is permitted to write an axis name twice (e.g., X Y Y Z for a - gantry machine) but this has no effect. - -* 'AXES = 3' - One more than the number of the highest joint number in the system. - For an XYZ machine, the joints are numbered 0, 1 and 2; in this case - AXES should be 3. For an XYUV machine using 'trivial kinematics', the V - joint is numbered 7 and therefore AXES should be 8. For a machine with - nontrivial kinematics (e.g., scarakins) this will generally be the - number of controlled joints. - -* 'JOINTS = 3' - (This config variable is used by the Axis GUI only, - not by the trajectory planner in the motion controller.) Specifies - the number of joints (motors) in the system. For example, an XYZ - machine with a single motor for each axis has 3 joints. A gantry - machine with one motor on each of two of the axes, and two motors - on the third axis, has 4 joints. - -* 'HOME = 0 0 0' - Coordinates of the homed position of each axis. Again - for a fourth - axis you will need 0 0 0 0. This value is only used for machines with - nontrivial kinematics. On machines with trivial kinematics this value - is ignored. - -* 'LINEAR_UNITS = ' - (((LINEAR UNITS))) Specifies the 'machine units' for linear axes. - Possible choices are (in, inch, imperial, metric, mm). - This does not affect the linear units in NC code (the G20 and G21 - words do this). - -* 'ANGULAR_UNITS = ' - (((ANGULAR UNITS))) Specifies the 'machine units' for rotational axes. - Possible choices are 'deg', 'degree' (360 per circle), 'rad', 'radian' - (2pi per circle), 'grad', or 'gon' (400 per circle). - This does not affect the angular units of NC code. In RS274NGC, A-, B- - and C- words are always expressed in degrees. - -* 'DEFAULT_VELOCITY = 0.0167' - The initial rate for jogs of linear axes, in - machine units per second. The value shown in 'Axis' equals - machine units per minute. - -* 'DEFAULT_ACCELERATION = 2.0' - In machines with nontrivial kinematics, the acceleration used - for "teleop" (Cartesian space) jogs, in 'machine units' per second per second. - -* 'MAX_VELOCITY = 5.0' - (((MAX VELOCITY))) The maximum velocity for any axis or coordinated - move, in 'machine units' per second. The value shown equals 300 units per - minute. - -* 'MAX_ACCELERATION = 20.0' - (((MAX ACCELERATION))) The maximum acceleration for any axis or - coordinated axis move, in 'machine units' per second per second. - -* 'POSITION_FILE = position.txt' - If set to a non-empty value, the joint positions are stored between - runs in this file. This allows the machine to start with the same - coordinates it had on shutdown. This assumes there was no movement of - the machine while powered off. If unset, joint positions are not stored - and will begin at 0 each time LinuxCNC is started. This can help on smaller - machines without home switches. - -* 'NO_FORCE_HOMING = 1' - The default behavior is for LinuxCNC to force the user to home the machine - before any MDI command or a program is run. Normally, only jogging is - allowed before homing. Setting NO_FORCE_HOMING = 1 allows the user to - make MDI moves and run programs without homing the machine first. - Interfaces without homing ability will need to have this option set to 1. - -[WARNING] -Using this will allow the machine to go beyond the soft limits -while in operation. It is not generally desirable to allow this. - -=== [AXIS_] Section[[sub:AXIS-section]] -(((AXIS (inifile section)))) - -The [AXIS_0], [AXIS_1], etc. sections contains general parameters for -the individual components in the axis control module. The axis section -names begin numbering at 0, and run through the number of axes -specified in the [TRAJ] AXES entry minus 1. - -Typically (but not always): - -* AXIS_0 = X -* AXIS_1 = Y -* AXIS_2 = Z -* AXIS_3 = A -* AXIS_4 = B -* AXIS_5 = C -* AXIS_6 = U -* AXIS_7 = V -* AXIS_8 = W - -* 'TYPE = LINEAR' - - The type of axes, either LINEAR or ANGULAR. - -* 'WRAPPED_ROTARY = 1' - - When this is set to 1 for an ANGULAR axis the axis will move 0-359.999 - degrees. Positive Numbers will move the axis in a positive direction and - negative numbers will move the axis in the negative direction. - -* 'LOCKING_INDEXER = 1' - When this is set to 1 a G0 move for this axis will - initiate an unlock with axis.N.unlock pin then wait for the - axis.N.is-unlocked pin then move the axis at the rapid rate for that axis. - After the move the axis.N.unlock will be false and motion will wait for - axis.N.is-unlocked to go false. Moving with other axes is not allowed when - moving a locked rotary axis. - -* 'UNITS = INCH' - - (((UNITS))) If specified, this setting overrides the related [TRAJ] UNITS setting. - (e.g., [TRAJ]LINEAR_UNITS if the TYPE of this axis is LINEAR, - [TRAJ]ANGULAR_UNITS if the TYPE of this axis is ANGULAR) - -* 'MAX_VELOCITY = 1.2' - - Maximum velocity for this axis in <> per second. - -* 'MAX_ACCELERATION = 20.0' - - Maximum acceleration for this axis in machine units per - second squared. - -* 'BACKLASH = 0.0000' - - (((Backlash))) Backlash in machine units. Backlash compensation value - can be used to make up for small deficiencies in the hardware used to - drive an axis. If backlash is added to an axis and you are using - steppers the STEPGEN_MAXACCEL must be increased to 1.5 to 2 times the - MAX_ACCELERATION for the axis. - -* 'COMP_FILE = file.extension' - - (((Compensation))) A file holding compensation structure for the axis. - The file could be named xscrew.comp, for example, for the X axis. File - names are case sensitive and can contain letters and/or numbers. The - values are triplets per line separated by a space. The first value is - nominal (where it should be). The second and third values depend on the - setting of COMP_FILE_TYPE. Currently the limit inside LinuxCNC is for 256 - triplets per axis. If COMP_FILE is specified, BACKLASH is ignored. - Compensation file values are in machine units. - -* 'COMP_FILE_TYPE = 0 or 1' - -** 'If 0:' The second and third values specify - the forward position (where the axis is while traveling forward) and - the reverse position (where the axis is while traveling reverse), - positions which correspond to the nominal position.' -** 'If 1:' The second and third values specify - the forward trim (how far from nominal while traveling forward) and - the reverse trim (how far from nominal while traveling in reverse), - positions which correspond to the nominal position. - - Example triplet with COMP_FILE_TYPE = 0: 1.00 1.01 0.99 + - Example triplet with COMP_FILE_TYPE = 1: 1.00 0.01 -0.01 - -* 'MIN_LIMIT = -1000' - - (((MIN LIMIT))) The minimum limit (soft limit) for axis motion, in machine units. - When this limit is exceeded, the controller aborts axis motion. - -* 'MAX_LIMIT = 1000' - - (((MAX LIMIT))) The maximum limit (soft limit) for axis motion, in machine units. - When this limit is exceeded, the controller aborts axis motion. - -* 'MIN_FERROR = 0.010' - - (((MIN FERROR))) This is the value in machine units by which the axis is permitted to - deviate from commanded position at very low speeds. If MIN_FERROR is - smaller than FERROR, the two produce a ramp of error trip points. You - could think of this as a graph where one dimension is speed and the - other is permitted following error. As speed increases the amount of - following error also increases toward the FERROR value. - -* 'FERROR = 1.0' - - (((FERROR))) FERROR is the maximum allowable following error, in machine units. - If the difference between commanded and sensed position exceeds this - amount, the controller disables servo calculations, sets all the - outputs to 0.0, and disables the amplifiers. If MIN_FERROR is present - in the .ini file, velocity-proportional following errors are used. - Here, the maximum allowable following error is proportional to the - speed, with FERROR applying to the rapid rate set by - [TRAJ]MAX_VELOCITY, and proportionally smaller following errors for - slower speeds. The maximum allowable following error will always be - greater than MIN_FERROR. This prevents small following errors for - stationary axes from inadvertently aborting motion. Small following - errors will always be present due to vibration, etc. The following - polarity values determine how inputs are interpreted and how outputs - are applied. They can usually be set via trial-and-error since there - are only two possibilities. The LinuxCNC Servo Axis Calibration utility - program (in the AXIS interface menu Machine/Calibration and in TkLinuxCNC it - is under Setting/Calibration) can be used to set these and more - interactively and verify their results so that the proper values can be - put in the INI file with a minimum of trouble. - -[[sub:Homing-related-items]] -==== Homing - -These parameters are Homing related, for a better explanation read the -<> Chapter. - -* 'HOME = 0.0' - - The position that the joint will go to upon completion of the homing - sequence. - -* 'HOME_OFFSET = 0.0' - - The axis position of the home switch or index pulse, in - <>. When the home point is found during - the homing process, this is the position that is assigned to that point. - When sharing home and limit switches and using a home sequence that will - leave the home/limit switch in the toggled state the home offset can be - used define the home switch position to be other than 0 if your HOME - position is desired to be 0. - -* 'HOME_SEARCH_VEL = 0.0' - - (((HOME SEARCH VEL))) Initial homing velocity in machine units per second. - Sign denotes direction of travel. A value of zero means assume that the current - location is the home position for the machine. If your machine has no - home switches you will want to leave this value at zero. - -* 'HOME_LATCH_VEL = 0.0' - - Homing velocity in machine units per second to the home - switch latch position. Sign denotes direction of travel. - -* 'HOME_FINAL_VEL = 0.0' - - Velocity in machine units per second from home latch position to home - position. If left at 0 or not included in the axis rapid velocity is - used. Must be a positive number. - -* 'HOME_USE_INDEX = NO' - - If the encoder used for this axis has an index pulse, and the motion - card has provision for this signal you may set it to yes. When it is - yes, it will affect the kind of home pattern used. Currently, you can't - home to index with steppers unless you're using stepgen in velocity mode - and PID. - -* 'HOME_IGNORE_LIMITS = NO' - - When you use the limit switch as a home switch and the limit switch - this should be set to YES. When set to YES the limit switch for this - axis is ignored when homing. You must configure your homing - so that at the end of your home move the home/limit switch is not in the - toggled state you will get a limit switch error after the home move. - -* 'HOME_IS_SHARED = ' - - If the home input is shared by more than one axis set to 1 to - prevent homing from starting if the one of the shared switches is - already closed. Set to 0 to permit homing if a switch is closed. - -* 'HOME_SEQUENCE = ' - - Used to define the "Home All" sequence. starts at 0 and no numbers - may be skipped. If left out or set to -1 the joint will not be homed by - the "Home All" function. More than one axis can be homed at the same - time. - -* 'VOLATILE_HOME = 0' - - When enabled (set to 1) this joint will be unhomed if the Machine - Power is off or if E-Stop is on. This is useful if your machine has - home switches and does not have position feedback such as a step and - direction driven machine. - - -[[sub:Servo-related-items]] -==== Servo - -These parameters are relevant to axes controlled by servos. - -[WARNING] -The following are custom INI file entries that you may find in a sample INI file -or a wizard generated file. These are not used by the LinuxCNC software. They -are only there to put all the settings in one place. For more information on -custom INI file entries see the -<> subsection. - -The following items might be used by a PID component and the assumption is -that the output is volts. - -* 'DEADBAND = 0.000015' - How close is close enough to consider the motor in position, -in <>. This is often set to a distance equivalent to 1, 1.5, 2, -or 3 encoder counts, but there are no strict rules. -Looser (larger) settings allow less servo 'hunting' at the expense of lower accuracy. -Tighter (smaller) settings attempt higher accuracy at the expense of more servo 'hunting'. -Is it really more accurate if it's also more uncertain? -As a general rule, it's good to avoid, or at least limit, servo 'hunting' if you can. - -Be careful about going below 1 encoder count, since you may create a condition where -there is no place that your servo is happy. This can go beyond 'hunting' (slow) to -'nervous' (rapid), and even to 'squealing' which is easy to confuse with -oscillation caused by improper tuning. Better to be a count or two loose -here at first, until you've been through 'gross tuning' at least. - -Example of calculating machine units per encoder pulse to use in deciding DEADBAND value: - -/////////////////////////////////////////////////////////// -latexmath:[ \frac{X\, inches}{1\, encoder\, count} = -\frac{1\, revolution}{1000\, encoder\, lines} \times -\frac{1\, encoder\, line}{4\, quadrature\, counts} \times -\frac{0.200\, inches}{1\, revolution} = -\frac{0.200\, inches}{4000\, encoder\, counts} = -\frac{0.000050\, inches}{1\, encoder\, count} ] -/////////////////////////////////////////////////////////// - -image::images/encoder-counts-math.png[align="center"] - -* 'BIAS = 0.000' - This is used by hm2-servo and some others. - Bias is a constant amount - that is added to the output. In most cases it should be left at zero. - However, it can sometimes be useful to compensate for offsets in servo - amplifiers, or to balance the weight of an object that moves - vertically. bias is turned off when the PID loop is disabled, just like - all other components of the output. - -* 'P = 50' - The proportional gain for the axis servo. This value - multiplies the - error between commanded and actual position in machine units, resulting - in a contribution to the computed voltage for the motor amplifier. The - units on the P gain are volts per machine unit, e.g., - image:images/p-term.png[height=25] - -//latexmath:[$\frac{volt}{mu}$]. - -* 'I = 0' - The integral gain for the axis servo. The value - multiplies the - cumulative error between commanded and actual position in machine - units, resulting in a contribution to the computed voltage for the - motor amplifier. The units on the I gain are volts per machine unit - second, e.g., image:images/i-term.png[height=25] - -//latexmath:[$\frac{volt}{mu\, s}$]. - -* 'D = 0' - The derivative gain for the axis servo. The value - multiplies the - difference between the current and previous errors, resulting in a - contribution to the computed voltage for the motor amplifier. The units - on the D gain are volts per machine unit per second, e.g., - image:images/i-term.png[height=25] - -// latexmath:[$\frac{volt}{mu/s}$]. - -* 'FF0 = 0' - The 0th order feed forward gain. This number is - multiplied by the - commanded position, resulting in a contribution to the computed voltage - for the motor amplifier. The units on the FF0 gain are volts per - machine unit, e.g., image:images/p-term.png[height=25] - -// latexmath:[$\frac{volt}{mu}$]. - -* 'FF1 = 0' - The 1st order feed forward gain. This number is - multiplied by the - change in commanded position per second, resulting in a contribution to - the computed voltage for the motor amplifier. The units on the FF1 gain - are volts per machine unit per second, e.g., image:images/i-term.png[height=25] - -// latexmath:[$\frac{volt}{mu\, s}$]. - -* 'FF2 = 0' - The 2nd order feed forward gain. This number is - multiplied by the - change in commanded position per second per second, resulting in a - contribution to the computed voltage for the motor amplifier. The units - on the FF2 gain are volts per machine unit per second per second, - e.g., image:images/ff2.png[height=25] - -// latexmath:[$\frac{volt}{mu\, s^{2}}$]. - -* 'OUTPUT_SCALE = 1.000' - - -* 'OUTPUT_OFFSET = 0.000' - These two values are the scale and offset factors for - the axis output to the motor amplifiers. - The second value (offset) is subtracted from - the computed output (in volts), and divided by the first value (scale - factor), before being written to the D/A converters. The units on the - scale value are in true volts per DAC output volts. The units on the - offset value are in volts. These can be used to linearize a DAC. - Specifically, when writing outputs, the LinuxCNC first converts the desired - output in quasi-SI units to raw actuator values, e.g., volts for an - amplifier DAC. This scaling - looks like: image:images/output-offset.png[] - -// latexmath:[raw=\frac{output-offset}{scale}] - -The value for scale can be obtained analytically by doing a unit -analysis, i.e., units are [output SI units]/[actuator units]. For -example, on a machine with a velocity mode amplifier such that -1 volt results in 250 mm/sec velocity. - -image::images/scale-math.png[align="center"] - -// latexmath:[$ amplifier [volts] = (output [\frac{mm}{sec}] -// - offset [\frac{mm}{sec}]) / 250 \frac{mm}{sec\, volt} ] $] - -Note that the units of the offset are in machine units, e.g., -mm/sec, and they are pre-subtracted from the sensor readings. The value -for this offset is obtained by finding the value of your output which -yields 0.0 for the actuator output. If the DAC is linearized, this -offset is normally 0.0. - -The scale and offset can be used to linearize the DAC as well, -resulting in values that reflect the combined effects of amplifier -gain, DAC non-linearity, DAC units, etc. - -To do this, follow this procedure. - -. Build a calibration table for the output, driving the DAC with a - desired voltage and measuring the result. - -. Do a least-squares linear fit to get coefficients a, b such - that image:images/calibration-1.png[] -. Note that we want raw output such that our measured result is - identical to the commanded output. This means -.. image:images/calibration-2.png[] -.. image:images/calibration-3.png[] -. As a result, the a and b coefficients from the linear fit can be - used as the scale and offset for the controller directly. - -See the following table for an example of voltage measurements. - -// latexmath:[ meas=a*raw+b ] -// latexmath:[ cmd=a*raw+b ] -// latexmath:[ raw=(cmd-b)/a ] - -.Output Voltage Measurements[[cap:Output-Voltage-Measurements]] - -[width="50%", cols="2*^", options="header"] -|=============== -|Raw | Measured -|-10 | -9.93 -|-9 | -8.83 -|0 | -0.03 -|1 | 0.96 -|9 | 9.87 -|10 | 10.87 -|=============== - -* 'MAX_OUTPUT = 10' - The maximum value for the output of the PID compensation - that is written to the motor amplifier, in volts. The computed - output value is clamped to this limit. The limit is applied before - scaling to raw output units. The value is applied symmetrically to - both the plus and the minus side. - -* 'INPUT_SCALE = 20000' - in Sample configs -* 'ENCODER_SCALE = 20000' - in PNCconf built configs -Specifies the number of pulses that -corresponds to a move of one machine unit as set in the [TRAJ] section. -For a linear axis one machine unit will be equal to -the setting of LINEAR_UNITS. -For an angular axis one unit is equal to the setting in ANGULAR_UNITS. -A second number, if specified, is ignored. -For example, on a 2000 counts per rev encoder(((encoder))), and 10 -revs/inch gearing, and desired units of inch, we -have: - -image::images/encoder-scale.png[align="center"] - -//latexmath:[ INPUT\_SCALE = -//\frac{2000\, counts}{rev} \times \frac{10\, rev}{inch} = -//\frac{20000\, counts}{inch} ] - - -[[sub:Stepper-related-items]] -==== Stepper - -These parameters are relevant to axes controlled by steppers. - -[WARNING] -The following are custom INI file entries that you may find in a sample INI file -or a wizard generated file. These are not used by the LinuxCNC software. They -are only there to put all the settings in one place. For more information on -custom INI file entries see the -<> subsection. - -The following items might be used by a stepgen component. - -* 'SCALE = 4000' - in Sample configs -* 'STEP_SCALE = 4000' - in PNCconf built configs -Specifies the number of pulses that corresponds to a -move of one machine unit as set in the [TRAJ] section. -For stepper systems, this is -the number of step pulses issued per machine unit. For a linear axis -one machine unit will be equal to the setting of LINEAR_UNITS. For an -angular axis one unit is equal to the setting in ANGULAR_UNITS. For -servo systems, this is the number of feedback pulses per machine unit. -A second number, if specified, is ignored. - -For example, on a 1.8 degree stepper motor with half-stepping, and 10 -revs/inch gearing, and desired <> of inch, we -have: - -image::images/stepper-scale.png[align="center"] - -//latexmath:[ scale = -//\frac{2\, steps}{1.8\, degree} \times \frac{360\, degree}{rev} \times \frac{10\, rev}{inch} = -//\frac{4000\, steps}{inch} ] - -* 'ENCODER_SCALE = 20000' (Optionally used in PNCconf built configs) - -Specifies the number of pulses that -corresponds to a move of one machine unit as set in the [TRAJ] section. -For a linear axis one machine unit will be equal to -the setting of LINEAR_UNITS. -For an angular axis one unit is equal to the setting in ANGULAR_UNITS. -A second number, if specified, is ignored. -For example, on a 2000 counts per rev encoder(((encoder))), and 10 -revs/inch gearing, and desired units of inch, we -have: - -image::images/encoder-scale.png[align="center"] - -//latexmath:[ ENCODER\_SCALE = -//\frac{2000\, counts}{rev} \times \frac{10\, rev}{inch} = -//\frac{20000\, counts}{inch} ] - - -* 'STEPGEN_MAXACCEL = 21.0' - Acceleration limit for the step generator. - This should be 1% to 10% - larger than the axis MAX_ACCELERATION. This value improves the tuning - of stepgen's "position loop". If you have added backlash compensation - to an axis then this should be 1.5 to 2 times greater than - MAX_ACCELERATION. - -* 'STEPGEN_MAXVEL = 1.4' - Older configuration files have a velocity limit for - the step - generator as well. If specified, it should also be 1% to 10% larger - than the axis MAX_VELOCITY. Subsequent testing has shown that use of - STEPGEN_MAXVEL does not improve the tuning of stepgen's position loop. - - -==== [EMCIO] Section[[sub:EMCIO-Section]] -(((EMCIO (inifile section)))) - -* 'EMCIO = io' - Name of IO controller program - -* 'CYCLE_TIME = 0.100' - - The period, in seconds, at which EMCIO will run. Making - it 0.0 or a - negative number will tell EMCIO not to sleep at all. There is usually - no need to change this number. - -* 'TOOL_TABLE = tool.tbl' - - The file which contains tool information, described in - the User Manual. - -* 'TOOL_CHANGE_POSITION = 0 0 2' - - Specifies the XYZ location to move to when performing a - tool change if three digits are used. - Specifies the XYZABC location when 6 digits are used. - Specifies the XYZABCUVW location when 9 digits are used. - Tool Changes can be combined. For example if you combine the - quill up with change position you can move the Z first then the X and Y. - -* 'TOOL_CHANGE_WITH_SPINDLE_ON = 1' - - The spindle will be left on during the tool change when the value is 1. - Useful for lathes or machines where the material is in the spindle, - not the tool. - -* 'TOOL_CHANGE_QUILL_UP = 1' - - The Z axis will be moved to machine zero prior to the tool change when - the value is 1. This is the same as issuing a G0 G53 Z0. - -* 'TOOL_CHANGE_AT_G30 = 1' - - The machine is moved to reference point defined by parameters - 5181-5186 for G30 if the value is 1. For more information on G30 and - Parameters see the G Code Manual. - -* 'RANDOM_TOOLCHANGER = 1' - - This is for machines that cannot place the tool back into the pocket - it came from. For example, machines that exchange the tool in the - active pocket with the tool in the spindle. - - diff --git a/docs/src/config/ini_config_es.txt b/docs/src/config/ini_config_es.txt deleted file mode 100644 index 8c2f1a7e83b..00000000000 --- a/docs/src/config/ini_config_es.txt +++ /dev/null @@ -1,1016 +0,0 @@ -= INI Configuration - -[[cha:ini-configuration]] (((INI Configuration))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== The INI File Components - -A typical INI file follows a rather simple layout that includes; - -* comments -* sections -* variables - -Each of these elements is separated on single lines. Each end of line -or newline character creates a new element. - -=== Comments (((Comments, INI File))) - -A comment line is started with a ; or a # mark. When the ini reader -sees either of these marks at the start a line, the rest of the line is -ignored by the software. Comments can be used to describe what an INI -element will do. - ----- -; This is my mill configuration file. -# I set it up on January 12, 2012 ----- - -Comments can also be used to 'turn off' a variable. This makes it easier -to pick between different variables. - ----- -DISPLAY = axis -# DISPLAY = touchy ----- - -In this list, the DISPLAY variable will be set to axis because the -other one is commented out. If someone carelessly edits a list like -this and leaves two of the lines uncommented, the first one encountered -will be used. - -Note that inside a variable, the "#" and ";" characters do not denote -comments: - ----- -INCORRECT = value # and a comment - -# Correct Comment -CORRECT = value ----- - -=== Sections - -Related parts of an ini file are separated into sections. -A section name is enclosed in brackets like this '[THIS_SECTION]' -The order of sections is unimportant. Sections begin at the section -name and end at the next section name. - -The following sections are used by LinuxCNC: - -* '[<>]' general information -* '[<>]' settings related to the graphical user interface -* '[<>]' settings input filter programs -* '[<>]' settings used by the g-code interpreter -* '[<>]' settings used by the real time motion controller -* '[<>]' settings used by the task controller -* '[<>]' specifies .hal files -* '[<>]' MDI commands used by HALUI -* '[<>]' additional settings used by the real time motion controller -* '[<>]' individual axis variables -* '[<>]' settings used by the I/O Controller - -=== Variables - -A variable line is made up of a variable name, an equals sign (=), and -a value. Everything from the first non-white space character after the -= up to the end of the line is passed as the value, so you can embed -spaces in string symbols if you want to or need to. A variable name is -often called a keyword. - -The following sections detail each section of the configuration file, -using sample values for the configuration lines. - -Variables that are used by LinuxCNC must always use the section -names and variable names as shown. In the following example the variable -'MACHINE' is assigned the value 'My Machine'. - -.Variable Example ----- -MACHINE = My Machine ----- - -[[sub:custom-variables]] -=== Custom Sections and Variables - -Most sample configurations use custom sections and variables to put all of the -settings into one location for convenience. - -To use a custom section variable in your HAL file add the section and -variable to the INI file. - -.Custom Section Example ----- -[OFFSETS] -OFFSET_1 = 0.1234 ----- - -To add a custom variable to a LinuxCNC section simply include the variable -in that section. - -.Custom Variable Example ----- -[AXIS_0] -TYPE = LINEAR -... -SCALE = 16000 ----- - -To use the custom variables in your HAL file put the section and variable -name in place of the value. - -.HAL Example ----- -setp offset.1.offset [OFFSETS]OFFSET_1 -setp stepgen.0.position-scale [AXIS_0]SCALE ----- - -[NOTE] -The value stored in the variable must match the type specified by the -component pin. - -[[sec:INI-Detail]] -== INI File Sections - -[[sub:EMC-section]] -=== [EMC] Section -(((EMC (inifile section)))) - -* 'VERSION = $Revision: 1.3 $' - The version number for the INI file. The value shown here looks odd - because it is automatically updated when using the Revision Control - System. It's a good idea to change this number each time you revise - your file. If you want to edit this manually just change the number and - leave the other tags alone. - -* 'MACHINE = My Controller' - This is the name of the controller, which is printed out at the top - of most graphical interfaces. You can put whatever you want here as - long as you make it a single line long. - -* 'DEBUG = 0' - Debug level 0 means no messages will be printed when LinuxCNC is run from a - terminal. Debug flags are usually only useful to developers. See - src/emc/nml_intf/emcglb.h for other settings. - -[[sub:DISPLAY-section]] -=== [DISPLAY] Section -(((DISPLAY (inifile section)))) - -Different user interface programs use different options, and not every -option is supported by every user interface. The main two interfaces -for LinuxCNC are AXIS and Touchy. Axis is an interface for use with normal -computer and monitor, Touchy is for use with touch screens. -Descriptions of the interfaces are in the Interfaces section of the -User Manual. - -* 'DISPLAY = axis' - The name of the user interface to use. Valid options - may include: axis,(((axis))) touchy,(((touchy))) keystick,(((keystick))) - mini,(((mini))) tklinuxcnc,(((tkLinuxCNC))) xemc,(((xemc))) - -* 'POSITION_OFFSET = RELATIVE' - The coordinate system (RELATIVE or MACHINE) to show when the user - interface starts. The RELATIVE coordinate system reflects the G92 and - G5x coordinate offsets currently in effect. - -* 'POSITION_FEEDBACK = ACTUAL' - The coordinate value (COMMANDED or ACTUAL) to show when the user - interface starts. The COMMANDED position is the ideal position - requested by LinuxCNC. The ACTUAL position is the feedback position of the - motors. - -* 'MAX_FEED_OVERRIDE = 1.2' - The maximum feed override the user may select. 1.2 means 120% of the - programmed feed rate. - -* 'MIN_SPINDLE_OVERRIDE = 0.5' - The minimum spindle override the user may select. 0.5 means 50% of the - programmed spindle speed. (This is useful as it's dangerous to run a - program with a too low spindle speed). - -* 'MAX_SPINDLE_OVERRIDE = 1.0' - The maximum spindle override the user may select. 1.0 means 100% of - the programmed spindle speed. - -* 'PROGRAM_PREFIX = ~/emc2/nc_files' - The default location for g-code files - and the location for user-defined M-codes. This location is searched for - the file name before the subroutine path and user M path if specified - in the [RS274NGC] section. - -* 'INTRO_GRAPHIC = emc2.gif' - The image shown on the splash screen. - -* 'INTRO_TIME = 5' - The maximum time to show the splash screen, in seconds. - -* 'CYCLE_TIME = 0.05' - Cycle time in seconds that display will sleep between - polls. - -[NOTE] -The following [DISPLAY] items are for the AXIS interface only. - -* 'DEFAULT_LINEAR_VELOCITY = .25' - The default velocity for linear jogs, in , - <> per second. - -* 'MIN_VELOCITY = .01' - The approximate lowest value the jog slider. - -* 'MAX_LINEAR_VELOCITY = 1.0' - The maximum velocity for linear jogs, in machine units per second. - -* 'MIN_LINEAR_VELOCITY = .01' - The approximate lowest value the jog slider. - -* 'DEFAULT_ANGULAR_VELOCITY = .25' - The default velocity for angular jogs, in machine units per second. - -* 'MIN_ANGULAR_VELOCITY = .01' - The approximate lowest value the jog slider. - -* 'MAX_ANGULAR_VELOCITY = 1.0' - The maximum velocity for angular jogs, in machine units per second. - -* 'INCREMENTS = 1 mm, .5 in, ...' - Defines the increments available for incremental jogs. - The INCREMENTS can be used to override the default. - The values can be decimal numbers (e.g., 0.1000) or fractional numbers (e.g., 1/16), - optionally followed by a unit (cm, mm, um, inch, in or mil). - If a unit is not specified the machine unit is assumed. - Metric and imperial distances may be mixed: - INCREMENTS = 1 inch, 1 mil, 1 cm, 1 mm, 1 um is a valid entry. - -* 'OPEN_FILE = /full/path/to/file.ngc' - The file to show in the preview plot when AXIS starts. Use - a blank string "" and no file will be loaded at start up. - -* 'EDITOR = gedit' - The editor to use when selecting File > Edit to edit the gcode - from the AXIS menu. This must be configured for this menu item to - work. Another valid entry is gnome-terminal -e vim. - -* 'TOOL_EDITOR = tooledit' - The editor to use when editing the tool table (for example by - selecting "File > Edit tool table..." in Axis). Other valid - entries are "gedit", "gnome-terminal -e vim", and "gvim". - -* 'PYVCP = /filename.xml' - The PyVCP panel description file. See the PyVCP section for more - information. - -* 'LATHE = 1' - This displays in lathe mode with a top view and with Radius and - Diameter on the DRO. - -* 'GEOMETRY = XYZABCUVW' - Controls the preview and backplot of rotary motion. This item consists - of a sequence of axis letters, optionally preceded by a "-" sign. Only - axes defined in '[TRAJ]AXES' should be used. This sequence specifies - the order in which the effect - of each axis is applied, with a "-" inverting the sense of the - rotation. - The proper GEOMETRY string depends on the machine configuration and - the kinematics used to control it. The example string GEOMETRY=XYZBCUVW - is for a 5-axis machine where kinematics causes UVW to move in the - coordinate system of the tool and XYZ to move in the coordinate system - of the material. The order of the letters is important, because it - expresses the order in which the different transformations are applied. - For example rotating around C then B is different than rotating around - B then C. Geometry has no effect without a rotary axis. - -* 'ARCDIVISION = 64' - Set the quality of preview of arcs. Arcs are previewed by dividing - them into a number of straight lines; a semicircle is divided into - *ARCDIVISION* parts. Larger values give a more accurate preview, but - take longer to - load and result in a more sluggish display. Smaller values give a less - accurate preview, but take less time to load and may result in a faster - display. The default value of 64 means a circle of up to 3 inches will - be displayed to within 1 mil (.03%).footnote:[In LinuxCNC 2.4 and earlier, - the default value was 128.] - -* 'MDI_HISTORY_FILE =' - The name of a local MDI history file. If this is not specified Axis - will save the MDI history in *.axis_mdi_history* in the user's home - directory. This is useful if you have multiple configurations on one - computer. - -[NOTE] -The following [DISPLAY] item is used by the TKLinuxCNC interface only. - -* 'HELP_FILE = tklinucnc.txt' - Path to help file. - -[[sub:FILTER-Section]] -=== [FILTER] Section -(((ini [FILTER] Section))) - -AXIS has the ability to send loaded files through a filter program. -This filter can do any desired task: Something as simple as making sure -the file ends with M2, or something as complicated as detecting whether -the input is a depth image, and generating g-code to mill the shape it -defines. The [FILTER] section of the ini file controls how filters -work. First, for each type of file, write a PROGRAM_EXTENSION line. -Then, specify the program to execute for each type of file. This -program is given the name of the input file as its first argument, and -must write RS274NGC code to standard output. This output is what will -be displayed in the text area, previewed in the display area, and -executed by LinuxCNC when Run. - -* 'PROGRAM_EXTENSION = .extension Description' - -If your post processor outputs files in all caps you might want to add -the following line: - -* 'PROGRAM_EXTENSION = .NGC XYZ Post Processor' - -The following lines add support for the image-to-gcode converter -included with LinuxCNC: - -* 'PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image' -** 'png = image-to-gcode' -** 'gif = image-to-gcode' -** 'jpg = image-to-gcode' - -It is also possible to specify an interpreter: - -* 'PROGRAM_EXTENSION = .py Python Script' -** 'py = python' - -In this way, any Python script can be opened, and its output is -treated as g-code. One such example script is available at -nc_files/holecircle.py. This script creates g-code for drilling a -series of holes along the circumference of a circle. Many more g-code -generators are on the LinuxCNC Wiki site -http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl[http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl]. - -If the environment variable AXIS_PROGRESS_BAR is set, then lines -written to stderr of the form - -* 'FILTER_PROGRESS=%d' - -sets the AXIS progress bar to the given percentage. This feature -should be used by any filter that runs for a long time. - -[[sub:RS274NGC-section]] -=== [RS274NGC] Section -(((RS274NGC (inifile section)))) - -* 'PARAMETER_FILE = myfile.var' - - (((PARAMETER FILE))) The file located in the same directory as the ini - file which contains the parameters used by the interpreter (saved - between runs). - -* 'RS274NGC_STARTUP_CODE = G01 G17 G20 G40 G49 G64 P0.001 G80 G90 G92 G94 G97 G98' - - (((RS274NGC STARTUP CODE))) A string of NC codes that the interpreter - is initialized with. This is not a substitute for specifying modal - g-codes at the top of each ngc file, because the modal codes of - machines differ, and may be changed by g-code interpreted earlier in - the session. - -* 'SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs' - - (((SUBROUTINE PATH))) Specifies a colon (:) separated list of up to 10 - directories to be searched when single-file subroutines are specified - in gcode. These directories are searched after searching - [DISPLAY]PROGRAM_PREFIX (if it is specified) and before searching - [WIZARD]WIZARD_ROOT (if specified). The paths are searched in the order - that they are listed. The first matching subroutine file - found in the search is used. Directories are specified relative to the - current directory for the inifile or as absolute paths. The list must - contain no intervening whitespace. - -* 'USER_M_PATH = myfuncs:/tmp/mcodes:experimentalmcodes' - (((USER M PATH))) - Specifies a list of colon (:) separated directories for user defined - functions. Directories are specified relative to the current directory - for the inifile or as absolute paths. The list must contain no intervening - whitespace. -+ -A search is made for each possible user defined function, typically -(M100-M199). The search order is: -+ -. [DISPLAY]PROGRAM_PREFIX (if specified) -. If [DISPLAY]PROGRAM_PREFIX is not specified, search the default location: nc_files -. Then search each directory in the list [RS274NGC]USER_M_PATH -+ -The first executable M1xx found in the search is used for each M1xx. - -* 'USER_DEFINED_FUNCTION_MAX_DIRS=5'. The maximum number of directories defined - at compile time. - -[NOTE] -[WIZARD]WIZARD_ROOT is a valid search path but the Wizard has not been fully -implemented and the results of using it are unpredictable. - -[[sub:EMCMOT-section]] -=== [EMCMOT] Section -(((EMCMOT (inifile section)))) - -This section is a custom section and is not used by LinuxCNC directly. Most -configurations use values from this section to load the motion controller. For -more information on the motion controller see the <> -Section. - -* 'EMCMOT = motmod' - the motion controller name is typically used here. - -* 'BASE_PERIOD = 50000' - the 'Base' task period in nanoseconds. - -* 'SERVO_PERIOD = 1000000' - This is the "Servo" task period in nanoseconds. - -* 'TRAJ_PERIOD = 100000' - This is the 'Trajectory Planner' task period in - nanoseconds. - -[[sub:TASK-section]] -=== [TASK] Section -(((TASK (inifile section)))) - -* 'TASK = milltask' - - Specifies the name of the 'task' executable. The 'task' executable does various - things, such as communicate with the UIs over NML, communicate with the - realtime motion planner over non-HAL shared memory, and interpret gcode. - Currently there is only one task executable that makes sense for - 99.9% of users, milltask. - -* 'CYCLE_TIME = 0.010' - - The period, in seconds, at which TASK will run. This parameter - affects the polling interval when waiting for motion to complete, when - executing a pause instruction, and when accepting a command from a user - interface. There is usually no need to change this number. - -[[sub:HAL-section]] -=== [HAL] section -(((HAL (inifile section)))) - -* 'TWOPASS=ON' - Use two pass processing for loading HAL comps. With TWOPASS processing, - all [HAL]HALFILES are first read and multiple appearances of loadrt - directives for each moduleb are accumulated. - No hal commands are executed in this initial pass. - -* 'HALFILE = example.hal' - Execute the file 'example.hal' at start up. - If 'HALFILE' is specified multiple times, the files are executed in the order they - appear in the ini file. Almost all configurations will have at least - one 'HALFILE', and stepper systems typically have two such files, one - which - specifies the generic stepper configuration ('core_stepper.hal') and - one which specifies the machine pin out ('xxx_pinout.hal') - -* 'HALCMD = command' - Execute 'command' as a single HAL command. - If 'HALCMD' is specified multiple times, the commands are executed in the order - they appear in the ini file. 'HALCMD' lines are executed after all - 'HALFILE' lines. - -* 'SHUTDOWN = shutdown.hal' - Execute the file 'shutdown.hal' when LinuxCNC is exiting. - Depending on the hardware drivers used, this may make it possible to set outputs to - defined values when LinuxCNC is exited normally. However, because there is - no guarantee this file will be executed (for instance, in the case of a - computer crash) it is not a replacement for a proper physical e-stop - chain or other protections against software failure. - -* 'POSTGUI_HALFILE = example2.hal' - (Only with the TOUCHY and AXIS GUI) - Execute 'example2.hal' after the GUI has created its HAL pins. See - section <> Section for more information. - -* 'HALUI = halui' - adds the HAL user interface pins. For more information see - the <> chapter. - -[[sub:HALUI-section]] -=== [HALUI] section -(((HALUI (inifile section)))) - -* 'MDI_COMMAND = G53 G0 X0 Y0 Z0' - - An MDI command can be executed by using halui.mdi-command-00. Increment - the number for each command listed in the [HALUI] section. - -[[sub:TRAJ-section]] -=== [TRAJ] Section -(((TRAJ (inifile section)))) - -The [TRAJ] section contains general parameters for the trajectory -planning module in 'motion'. - -* 'COORDINATES = X Y Z' - The names of the axes being controlled. - Only X, Y, Z, A, B, C, U, V, W are valid. Only axes named in 'COORDINATES' - are accepted in g-code. This has no effect on the mapping from G-code - axis names (X- Y- Z-) to joint numbers--for 'trivial kinematics', X is - always joint 0, A is always joint 4, and U is always joint 7, and so - on. It is permitted to write an axis name twice (e.g., X Y Y Z for a - gantry machine) but this has no effect. - -* 'AXES = 3' - One more than the number of the highest joint number in the system. - For an XYZ machine, the joints are numbered 0, 1 and 2; in this case - AXES should be 3. For an XYUV machine using 'trivial kinematics', the V - joint is numbered 7 and therefore AXES should be 8. For a machine with - nontrivial kinematics (e.g., scarakins) this will generally be the - number of controlled joints. - -* 'JOINTS = 3' - (This config variable is used by the Axis GUI only, - not by the trajectory planner in the motion controller.) Specifies - the number of joints (motors) in the system. For example, an XYZ - machine with a single motor for each axis has 3 joints. A gantry - machine with one motor on each of two of the axes, and two motors - on the third axis, has 4 joints. - -* 'HOME = 0 0 0' - Coordinates of the homed position of each axis. Again - for a fourth - axis you will need 0 0 0 0. This value is only used for machines with - nontrivial kinematics. On machines with trivial kinematics this value - is ignored. - -* 'LINEAR_UNITS = ' - (((LINEAR UNITS))) Specifies the 'machine units' for linear axes. - Possible choices are (in, inch, imperial, metric, mm). - This does not affect the linear units in NC code (the G20 and G21 - words do this). - -* 'ANGULAR_UNITS = ' - (((ANGULAR UNITS))) Specifies the 'machine units' for rotational axes. - Possible choices are 'deg', 'degree' (360 per circle), 'rad', 'radian' - (2pi per circle), 'grad', or 'gon' (400 per circle). - This does not affect the angular units of NC code. In RS274NGC, A-, B- - and C- words are always expressed in degrees. - -* 'DEFAULT_VELOCITY = 0.0167' - The initial rate for jogs of linear axes, in - machine units per second. The value shown in 'Axis' equals - machine units per minute. - -* 'DEFAULT_ACCELERATION = 2.0' - In machines with nontrivial kinematics, the acceleration used - for "teleop" (Cartesian space) jogs, in 'machine units' per second per second. - -* 'MAX_VELOCITY = 5.0' - (((MAX VELOCITY))) The maximum velocity for any axis or coordinated - move, in 'machine units' per second. The value shown equals 300 units per - minute. - -* 'MAX_ACCELERATION = 20.0' - (((MAX ACCELERATION))) The maximum acceleration for any axis or - coordinated axis move, in 'machine units' per second per second. - -* 'POSITION_FILE = position.txt' - If set to a non-empty value, the joint positions are stored between - runs in this file. This allows the machine to start with the same - coordinates it had on shutdown. This assumes there was no movement of - the machine while powered off. If unset, joint positions are not stored - and will begin at 0 each time LinuxCNC is started. This can help on smaller - machines without home switches. - -* 'NO_FORCE_HOMING = 1' - The default behavior is for LinuxCNC to force the user to home the machine - before any MDI command or a program is run. Normally jogging only is - allowed before homing. Setting NO_FORCE_HOMING = 1 allows the user to - make MDI moves and run programs without homing the machine first. - Interfaces without homing ability will need to have this option set to 1. - -[WARNING] -Using this will allow the machine to go beyond the soft limits -while in operation. It is not generally desirable to allow this. - -[[sub:AXIS-section]] -=== [AXIS_] Section -(((AXIS (inifile section)))) - -The [AXIS_0], [AXIS_1], etc. sections contains general parameters for -the individual components in the axis control module. The axis section -names begin numbering at 0, and run through the number of axes -specified in the [TRAJ] AXES entry minus 1. - -Typically (but not always): - -* AXIS_0 = X -* AXIS_1 = Y -* AXIS_2 = Z -* AXIS_3 = A -* AXIS_4 = B -* AXIS_5 = C -* AXIS_6 = U -* AXIS_7 = V -* AXIS_8 = W - -* 'TYPE = LINEAR' - - The type of axes, either LINEAR or ANGULAR. - -* 'WRAPPED_ROTARY = 1' - - When this is set to 1 for an ANGULAR axis the axis will move 0-359.999 - degrees. Positive Numbers will move the axis in a positive direction and - negative numbers will move the axis in the negative direction. - -* 'LOCKING_INDEXER = 1' - When this is set to 1 a G0 move for this axis will - initiate an unlock with axis.N.unlock pin then wait for the - axis.N.is-unlocked pin then move the axis at the rapid rate for that axis. - After the move the axis.N.unlock will be false and motion will wait for - axis.N.is-unlocked to go false. Moving with other axes is not allowed when - moving a locked rotary axis. - -* 'UNITS = INCH' - - (((UNITS))) If specified, this setting overrides the related [TRAJ] UNITS setting. - (e.g., [TRAJ]LINEAR_UNITS if the TYPE of this axis is LINEAR, - [TRAJ]ANGULAR_UNITS if the TYPE of this axis is ANGULAR) - -* 'MAX_VELOCITY = 1.2' - - Maximum velocity for this axis in <> per second. - -* 'MAX_ACCELERATION = 20.0' - - Maximum acceleration for this axis in machine units per - second squared. - -* 'BACKLASH = 0.0000' - - (((Backlash))) Backlash in machine units. Backlash compensation value - can be used to make up for small deficiencies in the hardware used to - drive an axis. If backlash is added to an axis and you are using - steppers the STEPGEN_MAXACCEL must be increased to 1.5 to 2 times the - MAX_ACCELERATION for the axis. - -* 'COMP_FILE = file.extension' - - (((Compensation))) A file holding compensation structure for the axis. - The file could be named xscrew.comp, for example, for the X axis. File - names are case sensitive and can contain letters and/or numbers. The - values are triplets per line separated by a space. The first value is - nominal (where it should be). The second and third values depend on the - setting of COMP_FILE_TYPE. Currently the limit inside LinuxCNC is for 256 - triplets per axis. If COMP_FILE is specified, BACKLASH is ignored. - Compensation file values are in machine units. - -* 'COMP_FILE_TYPE = 0 or 1' - -** 'If 0:' The second and third values specify - the forward position (where the axis is while traveling forward) and - the reverse position (where the axis is while traveling reverse), - positions which correspond to the nominal position.' -** 'If 1:' The second and third values specify - the forward trim (how far from nominal while traveling forward) and - the reverse trim (how far from nominal while traveling in reverse), - positions which correspond to the nominal position. - - Example triplet with COMP_FILE_TYPE = 0: 1.00 1.01 0.99 + - Example triplet with COMP_FILE_TYPE = 1: 1.00 0.01 -0.01 - -* 'MIN_LIMIT = -1000' - - (((MIN LIMIT))) The minimum limit (soft limit) for axis motion, in machine units. - When this limit is exceeded, the controller aborts axis motion. - -* 'MAX_LIMIT = 1000' - - (((MAX LIMIT))) The maximum limit (soft limit) for axis motion, in machine units. - When this limit is exceeded, the controller aborts axis motion. - -* 'MIN_FERROR = 0.010' - - (((MIN FERROR))) This is the value in machine units by which the axis is permitted to - deviate from commanded position at very low speeds. If MIN_FERROR is - smaller than FERROR, the two produce a ramp of error trip points. You - could think of this as a graph where one dimension is speed and the - other is permitted following error. As speed increases the amount of - following error also increases toward the FERROR value. - -* 'FERROR = 1.0' - - (((FERROR))) FERROR is the maximum allowable following error, in machine units. - If the difference between commanded and sensed position exceeds this - amount, the controller disables servo calculations, sets all the - outputs to 0.0, and disables the amplifiers. If MIN_FERROR is present - in the .ini file, velocity-proportional following errors are used. - Here, the maximum allowable following error is proportional to the - speed, with FERROR applying to the rapid rate set by - [TRAJ]MAX_VELOCITY, and proportionally smaller following errors for - slower speeds. The maximum allowable following error will always be - greater than MIN_FERROR. This prevents small following errors for - stationary axes from inadvertently aborting motion. Small following - errors will always be present due to vibration, etc. The following - polarity values determine how inputs are interpreted and how outputs - are applied. They can usually be set via trial-and-error since there - are only two possibilities. The LinuxCNC Servo Axis Calibration utility - program (in the AXIS interface menu Machine/Calibration and in TkLinuxCNC it - is under Setting/Calibration) can be used to set these and more - interactively and verify their results so that the proper values can be - put in the INI file with a minimum of trouble. - -[[sec:Homing-related-items]] -==== Homing - -These parameters are Homing related, for a better explanation read the -<> Chapter. - -* 'HOME = 0.0' - - The position that the joint will go to upon completion of the homing - sequence. - -* 'HOME_OFFSET = 0.0' - - The axis position of the home switch or index pulse, in - <>. In other words, when the home point is found during - the homing process, this is the value or position that should be - assigned to the home point, or initialized at the home point. - -* 'HOME_SEARCH_VEL = 0.0' - - (((HOME SEARCH VEL))) Initial homing velocity in machine units per second. - Sign denotes direction of travel. A value of zero means assume that the current - location is the home position for the machine. If your machine has no - home switches you will want to leave this value at zero. - -* 'HOME_LATCH_VEL = 0.0' - - Homing velocity in machine units per second to the home - switch latch position. Sign denotes direction of travel. - -* 'HOME_FINAL_VEL = 0.0' - - Velocity in machine units per second from home latch position to home - position. If left at 0 or not included in the axis rapid velocity is - used. Must be a positive number. - -* 'HOME_USE_INDEX = NO' - - If the encoder used for this axis has an index pulse, and - the motion - card has provision for this signal you may set it to yes. When it is - yes, it will affect the kind of home pattern used. Currently, you can't - home to index with steppers unless you're using stepgen in velocity mode - and PID. - -* 'HOME_IGNORE_LIMITS = NO' - - Some machines use a single switch per axis as a home switch - and limit switch. This variable should be set to YES if the machine - configured this way. When set to YES the limit switch for this axis - only is ignored when homing. - -* 'HOME_IS_SHARED = ' - - If the home input is shared by more than one axis set to 1 to - prevent homing from starting if the one of the shared switches is - already closed. Set to 0 to permit homing if a switch is closed. - -* 'HOME_SEQUENCE = ' - - Used to define the "Home All" sequence. starts at 0 and no numbers - may be skipped. If left out or set to -1 the joint will not be homed by - the "Home All" function. More than one axis can be homed at the same - time. - -* 'VOLATILE_HOME = 0' - - When enabled (set to 1) this joint will be unhomed if the Machine - Power is off or if E-Stop is on. This is useful if your machine has - home switches and does not have position feedback such as a step and - direction driven machine. - -// NOTICE this stuff belongs in the PID section - -[WARNING] -The following are custom INI file entries that you may find in a sample INI file -or a wizard generated file. These are not used by the LinuxCNC software. They -are only there to put all the settings in one place. For more information on -custom INI file entries see the -<> subsection. - -The following items might be used by a PID component and the assumption is -that the output is volts. - -* 'DEADBAND = 0.000015' - How close is close enough to consider the motor in position, -in <>. This is often set to a distance equivalent to 1, 1.5, 2, -or 3 encoder counts, but there are no strict rules. -Looser (larger) settings allow less servo 'hunting' at the expense of lower accuracy. -Tighter (smaller) settings attempt higher accuracy at the expense of more servo 'hunting'. -Is it really more accurate if it's also more uncertain? -As a general rule, it's good to avoid, or at least limit, servo 'hunting' if you can. - -Be careful about going below 1 encoder count, since you may create a condition where -there is no place that your servo is happy. This can go beyond 'hunting' (slow) to -'nervous' (rapid), and even to 'squealing' which is easy to confuse with -oscillation caused by improper tuning. Better to be a count or two loose -here at first, until you've been through 'gross tuning' at least. - -Example of calculating machine units per encoder pulse to use in deciding DEADBAND value: - -/////////////////////////////////////////////////////////// -latexmath:[ \frac{X\, inches}{1\, encoder\, count} = -\frac{1\, revolution}{1000\, encoder\, lines} \times -\frac{1\, encoder\, line}{4\, quadrature\, counts} \times -\frac{0.200\, inches}{1\, revolution} = -\frac{0.200\, inches}{4000\, encoder\, counts} = -\frac{0.000050\, inches}{1\, encoder\, count} ] -/////////////////////////////////////////////////////////// - -image::images/encoder-counts-math.png[align="center"] - -* 'BIAS = 0.000' - This is used by hm2-servo and some others. - Bias is a constant amount - that is added to the output. In most cases it should be left at zero. - However, it can sometimes be useful to compensate for offsets in servo - amplifiers, or to balance the weight of an object that moves - vertically. bias is turned off when the PID loop is disabled, just like - all other components of the output. - -* 'P = 50' - The proportional gain for the axis servo. This value - multiplies the - error between commanded and actual position in machine units, resulting - in a contribution to the computed voltage for the motor amplifier. The - units on the P gain are volts per machine unit, e.g., - image:images/p-term.png[height=25] - -//latexmath:[$\frac{volt}{mu}$]. - -* 'I = 0' - The integral gain for the axis servo. The value - multiplies the - cumulative error between commanded and actual position in machine - units, resulting in a contribution to the computed voltage for the - motor amplifier. The units on the I gain are volts per machine unit - second, e.g., image:images/i-term.png[height=25] - -//latexmath:[$\frac{volt}{mu\, s}$]. - -* 'D = 0' - The derivative gain for the axis servo. The value - multiplies the - difference between the current and previous errors, resulting in a - contribution to the computed voltage for the motor amplifier. The units - on the D gain are volts per machine unit per second, e.g., - image:images/i-term.png[height=25] - -// latexmath:[$\frac{volt}{mu/s}$]. - -* 'FF0 = 0' - The 0th order feed forward gain. This number is - multiplied by the - commanded position, resulting in a contribution to the computed voltage - for the motor amplifier. The units on the FF0 gain are volts per - machine unit, e.g., image:images/p-term.png[height=25] - -// latexmath:[$\frac{volt}{mu}$]. - -* 'FF1 = 0' - The 1st order feed forward gain. This number is - multiplied by the - change in commanded position per second, resulting in a contribution to - the computed voltage for the motor amplifier. The units on the FF1 gain - are volts per machine unit per second, e.g., image:images/i-term.png[height=25] - -// latexmath:[$\frac{volt}{mu\, s}$]. - -* 'FF2 = 0' - The 2nd order feed forward gain. This number is - multiplied by the - change in commanded position per second per second, resulting in a - contribution to the computed voltage for the motor amplifier. The units - on the FF2 gain are volts per machine unit per second per second, - e.g., image:images/ff2.png[height=25] - -// latexmath:[$\frac{volt}{mu\, s^{2}}$]. - -* 'OUTPUT_SCALE = 1.000' - - -* 'OUTPUT_OFFSET = 0.000' - These two values are the scale and offset factors for - the axis output to the motor amplifiers. - The second value (offset) is subtracted from - the computed output (in volts), and divided by the first value (scale - factor), before being written to the D/A converters. The units on the - scale value are in true volts per DAC output volts. The units on the - offset value are in volts. These can be used to linearize a DAC. - Specifically, when writing outputs, the LinuxCNC first converts the desired - output in quasi-SI units to raw actuator values, e.g., volts for an - amplifier DAC. This scaling - looks like: image:images/output-offset.png[] - -// latexmath:[raw=\frac{output-offset}{scale}] - -The value for scale can be obtained analytically by doing a unit -analysis, i.e., units are [output SI units]/[actuator units]. For -example, on a machine with a velocity mode amplifier such that -1 volt results in 250 mm/sec velocity. - -image::images/scale-math.png[align="center"] - -// latexmath:[$ amplifier [volts] = (output [\frac{mm}{sec}] -// - offset [\frac{mm}{sec}]) / 250 \frac{mm}{sec\, volt} ] $] - -Note that the units of the offset are in machine units, e.g., -mm/sec, and they are pre-subtracted from the sensor readings. The value -for this offset is obtained by finding the value of your output which -yields 0.0 for the actuator output. If the DAC is linearized, this -offset is normally 0.0. - -The scale and offset can be used to linearize the DAC as well, -resulting in values that reflect the combined effects of amplifier -gain, DAC non-linearity, DAC units, etc. - -To do this, follow this procedure. - -. Build a calibration table for the output, driving the DAC with a - desired voltage and measuring the result. - -. Do a least-squares linear fit to get coefficients a, b such - that image:images/calibration-1.png[] -. Note that we want raw output such that our measured result is - identical to the commanded output. This means -.. image:images/calibration-2.png[] -.. image:images/calibration-3.png[] -. As a result, the a and b coefficients from the linear fit can be - used as the scale and offset for the controller directly. - -See the following table for an example of voltage measurements. - -// latexmath:[ meas=a*raw+b ] -// latexmath:[ cmd=a*raw+b ] -// latexmath:[ raw=(cmd-b)/a ] - -.Output Voltage Measurements[[cap:Output-Voltage-Measurements]] - -[width="50%", cols="2*^", options="header"] -|=============== -|Raw | Measured -|-10 | -9.93 -|-9 | -8.83 -|0 | -0.03 -|1 | 0.96 -|9 | 9.87 -|10 | 10.87 -|=============== - -* 'MAX_OUTPUT = 10' - The maximum value for the output of the PID compensation - that is written to the motor amplifier, in volts. The computed - output value is clamped to this limit. The limit is applied before - scaling to raw output units. The value is applied symmetrically to - both the plus and the minus side. - -* 'INPUT_SCALE = 20000' - in Sample configs -* 'ENCODER_SCALE = 20000' - in PNCconf built configs -Specifies the number of pulses that -corresponds to a move of one machine unit as set in the [TRAJ] section. -For a linear axis one machine unit will be equal to -the setting of LINEAR_UNITS. -For an angular axis one unit is equal to the setting in ANGULAR_UNITS. -A second number, if specified, is ignored. -For example, on a 2000 counts per rev encoder(((encoder))), and 10 -revs/inch gearing, and desired units of inch, we -have: - -image::images/encoder-scale.png[align="center"] - -//latexmath:[ INPUT\_SCALE = -//\frac{2000\, counts}{rev} \times \frac{10\, rev}{inch} = -//\frac{20000\, counts}{inch} ] - -[WARNING] -The following are custom INI file entries that you may find in a sample INI file -or a wizard generated file. These are not used by the LinuxCNC software. They -are only there to put all the settings in one place. For more information on -custom INI file entries see the -<> subsection. - -The following items might be used by a stepgen component. - -* 'SCALE = 4000' - in Sample configs -* 'STEP_SCALE = 4000' - in PNCconf built configs -Specifies the number of pulses that corresponds to a -move of one machine unit as set in the [TRAJ] section. -For stepper systems, this is -the number of step pulses issued per machine unit. For a linear axis -one machine unit will be equal to the setting of LINEAR_UNITS. For an -angular axis one unit is equal to the setting in ANGULAR_UNITS. For -servo systems, this is the number of feedback pulses per machine unit. -A second number, if specified, is ignored. - -For example, on a 1.8 degree stepper motor with half-stepping, and 10 -revs/inch gearing, and desired <> of inch, we -have: - -image::images/stepper-scale.png[align="center"] - -//latexmath:[ scale = -//\frac{2\, steps}{1.8\, degree} \times \frac{360\, degree}{rev} \times \frac{10\, rev}{inch} = -//\frac{4000\, steps}{inch} ] - -* 'ENCODER_SCALE = 20000' (Optionally used in PNCconf built configs) - -Specifies the number of pulses that -corresponds to a move of one machine unit as set in the [TRAJ] section. -For a linear axis one machine unit will be equal to -the setting of LINEAR_UNITS. -For an angular axis one unit is equal to the setting in ANGULAR_UNITS. -A second number, if specified, is ignored. -For example, on a 2000 counts per rev encoder(((encoder))), and 10 -revs/inch gearing, and desired units of inch, we -have: - -image::images/encoder-scale.png[align="center"] - -//latexmath:[ ENCODER\_SCALE = -//\frac{2000\, counts}{rev} \times \frac{10\, rev}{inch} = -//\frac{20000\, counts}{inch} ] - - -* 'STEPGEN_MAXACCEL = 21.0' - Acceleration limit for the step generator. - This should be 1% to 10% - larger than the axis MAX_ACCELERATION. This value improves the tuning - of stepgen's "position loop". If you have added backlash compensation - to an axis then this should be 1.5 to 2 times greater than - MAX_ACCELERATION. - -* 'STEPGEN_MAXVEL = 1.4' - Older configuration files have a velocity limit for - the step - generator as well. If specified, it should also be 1% to 10% larger - than the axis MAX_VELOCITY. Subsequent testing has shown that use of - STEPGEN_MAXVEL does not improve the tuning of stepgen's position loop. - -[[sub:EMCIO-Section]] -=== [EMCIO] Section -(((EMCIO (inifile section)))) - -* 'CYCLE_TIME = 0.100' - - The period, in seconds, at which EMCIO will run. Making - it 0.0 or a - negative number will tell EMCIO not to sleep at all. There is usually - no need to change this number. - -* 'TOOL_TABLE = tool.tbl' - - The file which contains tool information, described in - the User Manual. - -* 'TOOL_CHANGE_POSITION = 0 0 2' - - Specifies the XYZ location to move to when performing a - tool change if three digits are used. - Specifies the XYZABC location when 6 digits are used. - Specifies the XYZABCUVW location when 9 digits are used. - Tool Changes can be combined. For example if you combine the - quill up with change position you can move the Z first then the X and Y. - -* 'TOOL_CHANGE_WITH_SPINDLE_ON = 1' - - The spindle will be left on during the tool change when the value is 1. - Useful for lathes or machines where the material is in the spindle, - not the tool. - -* 'TOOL_CHANGE_QUILL_UP = 1' - - The Z axis will be moved to machine zero prior to the tool change when - the value is 1. This is the same as issuing a G0 G53 Z0. - -* 'TOOL_CHANGE_AT_G30 = 1' - - The machine is moved to reference point defined by parameters - 5181-5186 for G30 if the value is 1. For more information on G30 and - Parameters see the G Code Manual. - -* 'RANDOM_TOOLCHANGER = 1' - - This is for machines that cannot place the tool back into the pocket - it came from. For example, machines that exchange the tool in the - active pocket with the tool in the spindle. - - diff --git a/docs/src/config/ini_config_fr.txt b/docs/src/config/ini_config_fr.txt deleted file mode 100644 index 824d5282fba..00000000000 --- a/docs/src/config/ini_config_fr.txt +++ /dev/null @@ -1,1202 +0,0 @@ -:lang: fr -:toc: - -= Configuration de LinuxCNC - -[[cha:ini-configuration]] (((INI Configuration))) - -== Script de lancement - -LinuxCNC est lancé par le fichier de script _linuxcnc_. - ----- -linuxcnc [options] [] ----- - -Avec les options suivantes: -* _-v_ = verbose - informations de fonctionnement -* _-d_ = commande d'écho à l'écran pour le débogage - -Le fichier de script _linuxcnc_ lit le fichier ini puis lance LinuxCNC. -La section [HAL] du fichier ini, spécifie l'ordre de chargement des fichiers -de HAL, si plusieurs sont utilisés. Après que les fichiers HAL soient chargés, -l'interface graphique est chargée à son tour puis le fichier HAL POSTGUI. -Si des objets pyvcp ont été créés avec des pins de HAL, le fichier _postgui.hal_ -doit effectuer les raccordements à ces pins, se reporter à la section -<> pour plus de détails. - -Si aucun fichier ini n'est passé en argument au script _linuxcnc_, le sélecteur -de configuration est lancé pour permettre à l'utilisateur de choisir parmi les -exemples de configuration existants. - -[[fig:selecteur-de-configuration]] - -.Sélecteur de configuration - -image::../common/images/configuration-selector1_fr.png[align="center"] - -== Fichiers utilisés pour la configuration - -LinuxCNC est entièrement configuré avec des fichiers textes classiques. -Tous ces fichiers peuvent être lus et modifiés dans n'importe quel -éditeur de texte disponible dans toute distribution Linux.footnote:[Ne -pas confondre un éditeur de texte et un traitement de texte. Un -éditeur de texte comme gedit ou kwrite produisent des fichiers -uniquement en texte. Les lignes de textes sont séparées les unes des -autres. Un traitement de texte comme Open Office produit des fichiers -avec des paragraphes, des mises en formes des mots. Ils ajoutent des -codes de contrôles, des polices de formes et de tailles variées etc. Un -éditeur de texte n'a rien de tout cela.] -Soyez prudent lorsque vous modifierez ces fichiers, certaines -erreurs pourraient empêcher le démarrage de LinuxCNC. Ces fichiers sont lus à -chaque fois que le logiciel démarre. Certains d'entre eux sont lus de -nombreuses fois pendant l'exécution de LinuxCNC. - -Les fichiers de configuration inclus: - -* _INI_ (((INI))) Le fichier ini écrase les valeurs par défaut compilées dans - le code de LinuxCNC. Il contient également des sections qui sont lues - directement par HAL (Hardware Abstraction Layer, couche - d'abstraction matérielle). - -* _HAL_ (((HAL))) Les fichiers hal installent les modules de process, ils - créent les liens entre les signaux de LinuxCNC et les broches spécifiques du - matériel. - -* _VAR_ (((VAR))) Ce fichier contient une suite de numéros de variables. Ces - variables contiennent les paramètres qui seront utilisés par - l'interpréteur. Ces valeurs sont enregistrées et réutilisées d'une - exécution à l'autre. - -* _TBL_ (((TBL))) Ce fichier contient les informations relatives aux outils. - Voir la section 'Fichier d'outils' du Manuel de l'utilisateur pour plus - d'infos. - -* _NML_ (((NML))) Ce fichier configure les voies de communication utilisées - par LinuxCNC. Il est normalement réglé pour lancer toutes les communications - avec un seul ordinateur, peut être modifié pour communiquer entre - plusieurs ordinateurs. - -* _.linuxcncrc_ (((.linuxcncrc))) Ce fichier enregistre des informations - spécifiques à l'utilisateur, il a été créé pour enregistrer le nom du - répertoire lorsque l'utilisateur choisit sa première configuration - de LinuxCNC.footnote:[Habituellement, ce fichier est dans le répertoire home - de l'utilisateur (ex: _/home/robert/_ )] - -Les éléments avec le repère _(hal)_ sont utilisés seulement pour les -fichiers de HAL en exemples. C'est -une bonne convention. D'autres éléments sont utilisés directement par -LinuxCNC et doivent toujours avoir la section et le nom donné à l'item. - -== Double passe (TWOPASS) - -LinuxCNC 2.5 supporte le processus dit TWOPASS des fichiers de configuration hal, -ce qui aide à la modularité des fichiers hal et améliore leur lisibilité. -(les fichiers Hal sont spécifiés dans le fichier ini de LinuxCNC, dans -l'instance HAL sous la forme _[HAL]HALFILE=nomdufichier_. - -Normalement, un jeu de un ou plusieurs fichiers de configuration HAL doivent -utiliser une seule et unique ligne loadrt pour charger le module du kernel qui -pourra gérer de multiples instances d'un même composant. Par exemple: si vous -utilisez une portes AND à deux entrées, composant (and2), à trois endroits -différents de votre configuration, vous ne devez avoir que cette seule ligne -quelque part pour le spécifier: ----- -loadrt and2 count=3 ----- - -Ce qui fournira finalement les composants and2.0, and2.1, and2.2. - -Les configurations seront plus lisibles si vous spécifiez les composants sous -la forme names=option quand c'est supporté, par exemple: ----- -loadrt and2 names=aa,ab,ac ----- - -Ce qui nommera les composants aa, ab, ac. - -Il pourrait apparaitre un problème de maintenance pour garder la trace des -composants et de leur noms après avoir ajouté (ou enlevé) un composant, -vous devrez trouver et mettre à jour, la ligne de directives de loadrt, -applicable à ce composant. - -Le processus TWOPASS est activé par inclusion d'un paramètre dans le fichier ini: ----- -[HAL]TWOPASS=anything ----- - -Avec ce réglage, vous pouvez avoir de multiples spécifications comme: ----- -loadrt and2 names=aa -... -loadrt and2 names=ab,ac -... -loadrt and2 names=ad ----- - -Ces commandes peuvent être placées dans différents fichiers HALFILES. Les -HALFILES sont traités dans leur ordre d'apparition dans le fichier ini. - -Avec le processus double passe, tous les [HAL]HALFILES sont lus une première -fois et les multiples apparitions de la directive loadrt sont cumulées pour -chaque module. Aucune commande hal n'est exécutée lors de cette passe initiale. - -Après la passe initiale, les modules sont automatiquement chargés -en nombre égal au nombre total lors de l'utilisation de count=option ou -de tous les noms spécifiés individuellement lors de l'utilisation de -names=option. - -Une seconde passe est alors faite pour exécuter toutes les autres instructions -de hal spécifiées dans les HALFILES. Les commandes addf qui associent les -fonctions de composants avec l'exécution du thread sont exécutées selon leur -ordre d'apparition avec les autres commandes dans cette seconde passe. - -Bien que vous puissiez utiliser indifféremment les options avec count= ou names=, -elles sont toutefois exclusives. Un seul type peut être utilisé pour un même -module. - -Le processus TWOPASS n'est pas effectif lors de l'usage de names=option. -Cette option permet d'avoir un nom unique qui soit mnémonique ou plus pertinent -avec la configuration. Par exemple: si vous utilisez un composant _dérivé_ pour -estimer la vitesse et l'accélération de chacun des coordonnées (x,y,z), utiliser -la méthode count= donnera un composant au nom ésotérique comme ddt.0, ddt.1, -ddt.2, etc. - -Alternativement, l'utilisation de names=option comme: ----- -loadrt ddt names=xvit,yvit,zvit -... -loadrt ddt names=xaccel,yaccel,zaccel ----- - -donnera des composants plus parlants, nommés xvit,yvit,zvit, xaccel,yaccel, -zaccel. - -Beaucoup de composants fournis avec la distribution ont été créés avec -_comp utility_ et supportent la méthode names=option. Il s'agit notamment de -composants logiques qui sont les briques de beaucoup de configurations HAL. - -Exemples d'inclusions: ----- -and2,ddt,deadzone,flipflop,or2,or4,mux2,mux4,scale,sum2,timedelay,lowpass ----- - -et beaucoup d'autres. - -Les composants utilisateur créés avec _comp utility_ supportent également -automatiquement la méthode names=option. En plus des composants générés -avec _comp utility_, quelques autres composants comme _encoder_ et -_pid_ supportent aussi names=option. - -== Organisation du fichier ini - -Organisation du fichier ini:: (((Fichier ini))) -Un fichier ini typique suit une organisation simple; - -* les commentaires. -* les sections. -* les variables. - -Chacun de ces éléments est séparé, sur une seule ligne. Chaque fin de -ligne ou retour chariot crée un nouvel élément. - -=== Les commentaires (((commentaires))) - -Une ligne de commentaires débute avec un *;* ou un *#*. Si le logiciel qui -analyse le fichier ini rencontre l'un ou l'autre de ces caractères, le -reste de la ligne est ignoré. Les commentaires peuvent être utilisés -pour décrire ce que font les éléments du fichier ini. ----- -; Ceci est le fichier de configuration de ma petite fraiseuse. ----- - -Des commentaires peuvent également être utilisés pour choisir entre -plusieurs valeurs d'une seule variable. ----- -DISPLAY = axis -# DISPLAY = touchy ----- - -Dans cette liste, la variable DISPLAY est positionnée sur -axis puisque l'autre est commentée. Si quelqu'un édite une -liste comme celle-ci et par erreur, dé-commente deux lignes, c'est la -première rencontrée qui sera utilisée. - -Noter que dans une ligne de variables, les caractères *#* et *;* -n'indiquent pas un commentaire. ----- -INCORRECT = valeur # et un commentaire - -# Commentaire correct -CORRECT = valeur ----- - -=== Les sections (((Sections))) -Les différentes parties d'un fichier .ini sont regroupées en sections. -Une section commence par son nom en majuscules entre crochets [UNE_SECTION]. -L'ordre des sections est sans importance. - -Les sections suivantes sont utilisées par LinuxCNC: - -* _[<>]_ informations générales. -* _[<>]_ sélection du type d'interface graphique. -* _[<>]_ sélection d'un programme de filtrage. -* _[<>]_ ajustements utilisés par l'interpréteur -de g-code. -* _[<>]_ réglages utilisés par le contrôleur -de mouvements temps réel. -* _[<>]_ réglages utilisés par le contrôleur de tâche. -* _[<>]_ spécifications des fichiers .hal. -* _[<>]_ commandes MDI utilisées par HALUI. -* _[<>]_ réglages additionnels utilisés par le contrôleur -de mouvements temps réel. -* _[<>]_ groupes de variables relatives à chaque axe. -* _[<>]_ réglages utilisés par le contrôleur -d'entrées/sorties. - -=== Les variables (((Variables))) -Une ligne de variables est composée d'un nom de variable, du signe -égal (=) et d'une valeur. Tout, du premier caractère non blanc qui suit -le signe = jusqu'à la fin de la ligne, est passé comme valeur à la -variable. Vous pouvez donc intercaler des espaces entre les symboles si -besoin. Un nom de variable est souvent appelé un mot clé. - -Les paragraphes suivants détaillent chaque section du fichier de -configuration, en utilisant des exemples de variables dans les lignes -de configuration. - -Certaines de ces variables sont utilisées par LinuxCNC. Elles doivent -toujours utiliser le nom de section et le nom de variable dans leur -appellation. D'autres variables ne sont utilisées que par HAL. Les noms -des sections et les noms des variables indiquées, sont ceux qui sont -utilisés dans les exemples de fichiers de configuration. - -Les variables personnalisées peuvent être utilisées dans vos fichiers -HAL avec la syntaxe suivante: - ----- -MACHINE = MaVariable ----- - -=== Sections et variables utilisateur[[sub:variables-utilisateur]] - -Certaines configurations utilisent des sections utilisateur et des variables -personnalisées pour regrouper les paramètres en un seul emplacement pour -améliorer la lisibilité du fichier ini. - -Pour utiliser une section de variable utilisateur dans un fichier HAL, ajouter -la section et la variable dans le fichier INI. - -.Exemple de section utilisateur ----- -[OFFSETS] -OFFSET_1 = 0.1234 ----- - -Pour ajouter une variable utilisateur à une section LinuxCNC, inclure simplement -cette variable dans la section souhaitée. - -.Exemple de variable utilisateur ----- -[AXIS_0] -TYPE = LINEAR -... -SCALE = 16000 ----- - -Pour utiliser une variable utilisateur dans un fichier HAL, utiliser les noms -de section et de variable en lieu et place de leurs valeurs. - -.Exemple d'utilisation dans un fichier HAL ----- -setp offset.1.offset [OFFSETS]OFFSET_1 -setp stepgen.0.position-scale [AXIS_0]SCALE ----- - -[NOTE] -La valeur stockée dans la variable doit correspondre au type spécifié pour la -pin du composant. - -[[sec:Details-fichier-INI]] -== Détails des sections du fichier ini - - -[[sub:Section-EMC]] -=== Section [EMC](((Section [EMC] du fichier ini))) - - -* _VERSION_ = $Revision: 1.5 $_ - Le numéro de version du fichier INI. -La valeur indiquée ici semble étrange, car elle est automatiquement mise -à jour lors de l'utilisation du système de contrôle de révision. -C'est une bonne idée de changer ce numéro à chaque fois que vous modifiez -votre fichier. Si vous voulez le modifier manuellement, il suffit de -changer le numéro sans toucher au reste. - -* _MACHINE = ma machine_ - C'est le nom du contrôleur, qui est imprimé dans -le haut de la plupart des fenêtres. Vous pouvez insérer ce que vous voulez ici -tant que ça reste sur une seule ligne. - -* _DEBUG = 0_ - Niveau de débogage 0 signifie qu'aucun message ne sera affiché -dans le terminal pendant le fonctionnement de LinuxCNC. Les drapeaux de débogage -ne sont généralement utiles que pour les développeurs. - -[[sub:Section-DISPLAY]] -=== Section [DISPLAY](((Section [DISPLAY] du fichier ini))) - -Les différentes interfaces graphiques utilisent différentes options -qui ne sont pas supportées par toutes les interfaces utilisateur. -Les deux principales interfaces pour LinuxCNC sont _AXIS_ et _Touchy_. -Axis est une interface pour une utilisation avec un ordinateur classique et -son moniteur, Touchy est à utiliser avec les ordinateurs à écran tactile. -Pour plus d'informations, voire la section Interfaces du Manuel de l'utilisateur. - -* _DISPLAY = axis_ - Le nom de l'interface graphique à utiliser. Les options -disponibles sont les suivantes: _axis_,(((axis))) _touchy_,(((touchy))) -_keystick_, (((keystick))) _mini_,(((mini))) _tklinuxcnc_,(((tklinuxcnc))) -_xlinuxcnc_, (((xlinuxcnc))) - -* _POSITION_OFFSET = RELATIVE_ - Le système de coordonnées (RELATIVE ou MACHINE) -à utiliser au démarrage de l'interface utilisateur. Le système de coordonnées -RELATIVE reflète le G92 et le décalage d'origine G5x actuellement actifs. - -* _POSITION_FEEDBACK = ACTUAL_ - Valeur de la position (COMMANDED ou ACTUAL) à -afficher au démarrage de l'interface utilisateur. La position COMMANDED est la -position exacte requise par LinuxCNC. La position ACTUAL est la position -retournée par l'électronique des moteurs. - -* _MAX_FEED_OVERRIDE = 1.2_ - La correction de vitesse maximum que l'opérateur -peut utiliser. 1.2 signifie 120% de la vitesse programmée. - -* _MIN_SPINDLE_OVERRIDE = 0.5_ - Correction de vitesse minimum de broche que -l'opérateur pourra utiliser. 0.5 signifie 50% de la vitesse de broche -programmée. (utile si il est dangereux de démarrer un programme avec une -vitesse de broche trop basse). - -* _MAX_SPINDLE_OVERRIDE = 1.0_ - Correction de vitesse maximum de broche que -l'opérateur pourra utiliser. 1.0 signifie 100% de la vitesse de broche programmée. - -* _PROGRAM_PREFIX = ~/linuxcnc/nc_files_ - Répertoire par défaut des fichiers -de g-codes et emplacement des M-codes définis par l'utilisateur. -Les recherches de fichiers s'effectueront d'abords dans cet emplacement, -avant les chemins des sous-programmes et des fichiers M utilisateur, si -il est spécifié dans la section [RS274NGC]. - -* _INTRO_GRAPHIC = linuxcnc.gif_ - L'image affichée sur l'écran d'accueil. - -* _INTRO_TIME = 5_ - Durée d'affichage de l'écran d'accueil. - -* _CYCLE_TIME = 0.05_ - Cycle time in seconds that display will sleep between -polls. - -Les éléments suivants sont utilisés uniquement si AXIS est sélectionné comme -programme d'interface utilisateur. - -* _DEFAULT_LINEAR_VELOCITY = .25_ - Vitesse minimum par défaut pour les jogs -linéaires, en unités machine par seconde. Seulement utilisé dans l'interface -AXIS. - -* _MIN_VELOCITY = .01_ - Valeur approximative minimale du curseur de vitesse de -jog. - -* _MAX_LINEAR_VELOCITY = 1.0_ - Vitesse maximum par défaut pour les jogs -linéaires, en unités machine par seconde. Seulement utilisé dans l'interface AXIS. - -* _MIN_LINEAR_VELOCITY = .01_ - Approximativement la valeur minimale du curseur -de vitesse de jog. - -* _DEFAULT_ANGULAR_VELOCITY = .25_ - Vitesse minimum par défaut pour les jogs -angulaires, en unités machine par seconde. Seulement utilisé dans l'interface AXIS. - -* _MIN_ANGULAR_VELOCITY = .01_ - Valeur approximative minimale du curseur de -vitesse angulaire de jog. - -* _MAX_ANGULAR_VELOCITY = 1.0_ - Vitesse maximum par défaut pour les jogs -angulaires, en unités machine par seconde. Seulement utilisé dans l'interface AXIS. - -* _INCREMENTS = 1 mm, .5 mm, ..._ - Définit les incréments disponibles pour -le jog incrémental. Les incréments peuvent être utilisés pour remplacer la -valeur par défaut. Ces valeurs doivent contenir des nombres décimaux -(ex. 0.1000) ou des nombres fractionnaires (ex. 1/16), éventuellement suivis -par une unité parmi _cm_, _mm_, _um_, _inch_, _in_ ou _mil_. Si aucune unité -n'est spécifiée, les unités natives de la machine seront utilisées. - -* Distances métriques et impériales peuvent être mélangées + -_INCREMENTS = 1 inch, 1 mil, 1 cm, 1 mm, 1 um_ sont des entrées valides. - -* _OPEN_FILE = /chemin/complet/du/fichier.ngc_ -Le fichier ngc à utiliser au démarrage d'AXIS. Utilisez une chaîne vide "" -et aucun fichier ne sera chargé au démarrage. - -* _EDITOR = gedit_ - L'éditeur à utiliser lors du choix _Éditer fichier_ du -menu d'AXIS, pour éditer le G-code. Ceci doit être configuré pour que cet item -de menu s'active. Une autre possibilité valide est: _gnome-terminal -e nano_. - -* _TOOL_EDITOR = tooledit_ - L'éditeur de texte à utiliser pour éditer les -tables d'outils. (par exemple en sélectionnant "Fichiers > Éditer la table. -d'outils" dans le menu d'Axis). D'autres entrées comme _gedit_, -_gnome-terminal -e vim_, _gvim_ ou _nano_ sont valides. - -* _PYVCP = /filename.xml_ - Le fichier de description du panneau PyVCP. Voir -la section PyVCP. - -* _LATHE = 1_ - Passe l'affichage en mode tour, avec vue de dessus et la visu -soit en rayon, soit en diamètre. - -* _GEOMETRY = XYZABCUVW_ - Contrôle de prévisualisation du parcours d'outil -d'un mouvement rotatif. Cet item consiste en une suite de lettre d'axe, -optionnellement précédé d'un signe *-*. Seuls, les axes définis par -*[TRAJ]AXES* peuvent être utilisés. Cette séquence spécifie l'ordre dans lequel -l'effet de chaque axe est appliqué. Un signe *-* inverse le sens de la rotation. -La chaine GEOMETRY correcte dépend de la configuration de la machine et -de la cinématique utilisée pour la contrôler. La chaine exemple GEOMETRY=XYZBCUVW -est pour une machine à 5 axes pour laquelle la cinématique déplace UVW -en coordonnées système de l'outil et XYZ déplace la pièce en coordonnées -système. L'ordre des lettres est important, parce qu'il donne expressément -l'ordre dans lequel les différentes transformations seront appliquées. -Par exemple: tourner autour de C puis de B est différent de tourner -autour de B puis de C. La géométrie n'a pas d'effet sans rotation d'axes. - -* _ARCDIVISION = 64_ - Ajuste la valeur de prévisualisation des arcs. Les arcs -sont visualisés en les divisant par un nombre de lignes droites; un semi-cercle -est divisé en _ARCDIVISION_ de tronçons. Les valeurs élevées donnent une -meilleure précision à la pré-visualisation, mais sont plus lentes et donne un -écran plus saccadé. Les petites valeurs sont moins précises mais plus rapides, -l'affichage résultant est plus rapide. La valeur par défaut de 64 -signifie qu'un cercle de 3 pouces maximum sera affiché dans moins de 3 -centièmes de mm, (.03%).footnote:[ Dans LinuxCNC 2.4 et précédents, -la valeur par défaut était de 128.] - -* _MDI_HISTORY_FILE =_ - Le nom du fichier d'historique des commandes MDI. -Si rien n'est spécifié, Axis enregistrera cet historique dans -_.axis_mdi_history_ dans le répertoire home de l'utilisateur. C'est très -pratique dans le cas de multiples configurations sur la même machine. - -* _HELP_FILE = tklinucnc.txt_ - Chemin du fichier d'aide (non utilisé avec AXIS). - -[[sub:Section-FILTER]] -=== Section [FILTER](((Section [FILTER] du fichier ini))) - -AXIS a la possibilité d'envoyer les fichiers chargés au travers d'un programme de -filtrage. Ce filtrage peut réaliser toutes sortes de tâches. Parfois aussi simple -que s'assurer que le programme se termine bien par M2, ou parfois aussi compliqué -que détecter si le fichier d'entrée est une image et en générer le G-code pour -graver la forme qu'il à ainsi défini. -La section _[FILTER]_ du fichier ini, contrôle comment les filtres fonctionnent. -Premièrement, pour chaque type de fichier, écrire une ligne _PROGRAM_EXTENSION_. -Puis, spécifier le programme à exécuter pour chaque type de filtre. Ce -programme reçoit le nom du fichier d'entrée dans son premier argument, il -doit écrire le code RS274/NGC sur la sortie standard. C'est cette sortie qui -sera affichée dans la zone de texte, pré-visualisée dans la zone du parcours -d'outil et enfin, exécutée par LinuxCNC quand il sera mis en marche. ----- -PROGRAM_EXTENSION = .extension Description ----- - -Si votre fichier de sortie est tout en majuscules, vous devez ajouter -la ligne suivante: ----- -PROGRAM_EXTENSION = .NGC XYZ Post Processor ----- - -Les lignes suivantes ajoutent le support pour le convertisseur _image-to-gcode_ -fourni avec LinuxCNC: ----- -PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image - png = image-to-gcode - gif = image-to-gcode - jpg = image-to-gcode ----- - -Il est également possible de spécifier un interpréteur: ----- -PROGRAM_EXTENSION = .py Python Script - py = python ----- - -De cette façon, n'importe quel script Python pourra être ouvert et ses sorties -seront traitées comme du g-code. Un exemple de script de ce genre est disponible: -nc_files/holecircle.py. -Ce script crée le G-code pour percer une série de trous séquents à la -périphérie d'un cercle. -De nombreux générateurs de G-code sont par ailleurs disponibles sur le wiki: -http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Simple_LinuxCNC_G-Code_Generators[à la -page des générateurs de G-code]. - -Si la variable d'environnement AXIS_PROGRESS_BAR est activée, alors les lignes -écrites sur stderr de la forme ----- -FILTER_PROGRESS=%d ----- - -activeront la barre de progression d'AXIS qui donnera le pourcentage. Cette -fonctionnalité devrait être utilisée par tous les filtres susceptibles de -fonctionner pendant un long moment. - -Les filtres Python doivent utiliser la fonction _print_ pour sortir le résultat -dans Axis. - -Cet exemple de programme filtre un fichier et ajoute un axe W correspondant à -l'axe Z. Il marchera selon la présence d'un espace entre chaque mot d'axe. - ----- -#! /usr/bin/env python - -import sys - -def main(argv): - - openfile = open(argv[0], 'r') - file_in = openfile.readlines() - openfile.close() - - file_out = [] - for line in file_in: - # print line - if line.find('Z') != -1: - words = line.rstrip('\n') - words = words.split(' ') - newword = '' - for i in words: - if i[0] == 'Z': - newword = 'W'+ i[1:] - if len(newword) > 0: - words.append(newword) - newline = ' '.join(words) - file_out.append(newline) - else: - file_out.append(line) - for item in file_out: - print "%s" % item - -if __name__ == "__main__": - main(sys.argv[1:]) ----- - - -[[sub:Section-RS274NGC]] -=== Section [RS274NGC] -(((Section [RS274NGC] du fichier ini))) - -* _PARAMETER_FILE = monfichier.var_ - (((PARAMETER FILE))) Le fichier situé -dans le même répertoire que le fichier ini qui contiendra les paramètres -utilisés par l'interpréteur (enregistré entre chaque lancement). - -* _RS274NGC_STARTUP_CODE = G01 G17 G20 G40 G49 G64 P0.001 G80 G90 G92 G94 G97 G98_ - - (((RS274NGC STARTUP CODE))) Une chaine de codes NGC qui sera utilisée -pour initialiser l'interpréteur. Elle ne se substitue pas à la -spécification des G-codes modaux du début de chaque fichier ngc. Les -codes modaux des machines diffèrent, ils pourraient être modifiés par -les G-codes interprétés plutôt dans la session. - -* _SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs_ - - (((SUBROUTINE PATH))) Spécifie une liste, séparée par (:) d'au maximum 10 -répertoires dans lesquels seront cherchés les fichier de sous-programme -spécifiés dans le g-code. Ces répertoires sont inspectés après que ne le -soit [DISPLAY]PROGRAM_PREFIX (si il est spécifié) et avant que ne le soit -[WIZARD]WIZARD_ROOT (si il est spécifié). les recherches s'effectuent dans -l'ordre dans lequel les chemins sont listés. La première occurrence avec le -sous-programme recherché est utilisée. Les répertoires sont spécifiés -relativement au répertoire courant du fichier ini ou par des chemins -absolus. La liste ne doit contenir aucun espace blanc. - -* _USER_M_PATH = myfuncs:/tmp/mcodes:experimentalmcodes_ - - (((USER M PATH))) Spécifie une liste de répertoires, séparés par (:) (sans -aucun espace blanc) pour les fonctions définies par l'utilisateur. Les -répertoires sont spécifiés par rapport au répertoire courant pour les -fichiers ini ou en chemins absolus. La liste ne doit contenir aucun -espace blanc. - -* _USER_DEFINED_FUNCTION_MAX_DIRS=5_ - Défini le nombre maximum de répertoires -au moment de la compilation. Une recherche est faite pour chaque fonction -utilisateur définie possible, typiquement _M100_ à _M199_. + -L'ordre de recherche est le suivant: + -. [DISPLAY]PROGRAM_PREFIX (si il est spécifié) -. Si [DISPLAY]PROGRAM_PREFIX n'est pas spécifié, cherche dans le répertoire -par défaut: nc_files -. Recherche ensuite dans chaque répertoire de la liste [RS274NGC]USER_M_PATH -Le premier M1xx trouvé au cours de la recherche est utilisé pour chaque M1xx. - -[NOTE] -[WIZARD]WIZARD_ROOT est un chemin de recherche valide mais l'assistant n'est -pas encore complétement implémenté et les résultats, découlant de son -utilisation, sont imprévisibles. - -[[sub:Section-EMCMOT]] -=== Section [EMCMOT] -(((Section [EMCMOT] du fichier ini))) - -D'autres entrées peuvent être rencontrées dans cette section, elles ne doivent -pas être modifiées. - -* _BASE_PERIOD = 50000_ - (((BASE PERIOD))) (HAL) Période de base des tâches, -exprimée en ns.C'est la plus rapide des horloges de la machine. -Avec un système à servomoteurs, il n'y a généralement pas de raison -pour que _BASE_PERIOD_ soit plus petite que _SERVO_PERIOD_. -Sur une machine de type _step&direction_ avec génération logicielle -des impulsions de pas, c'est _BASE_PERIOD_ qui détermine le nombre -maximum de pas par seconde. Si de longues -impulsions de pas ou de longs espaces entre les impulsions ne sont pas -requis par l'électronique, la fréquence maximum absolue est de un pas -par _BASE_PERIOD_. Ainsi, la _BASE_PERIOD_ utilisée ici donnera une -fréquence de pas maximum absolue de 20000 -pas par seconde. 50000ns est une valeur assez large. La plus petite -valeur utilisable est liée au résultat <>, à la longueur des impulsions de pas nécessaire et à la vitesse du µP. -Choisir une BASE_PERIOD trop basse peut amener à des messages -_Unexpected realtime delay_, des blocages ou des reboots spontanés. - -* _SERVO_PERIOD = 1000000_ - (((SERVO PERIOD))) (hal) Période de la tâche -_Servo_, exprimée également en nanosecondes. -Cette valeur sera arrondie à un multiple entier de _BASE_PERIOD_. -Elle est utilisée aussi sur des systèmes basés sur des moteurs pas à pas. -C'est la vitesse avec laquelle la nouvelle position des moteurs est -traitée, les erreurs de suivi vérifiées, les valeurs des sorties PID -sont rafraichies etc. -Sur la plupart des systèmes cette valeur n'est pas à modifier. Il -s'agit du taux de mise à jour du planificateur de mouvement de bas niveau. - -* _TRAJ_PERIOD = 1000000_ - (((TRAJ PERIOD))) (hal) Période du planificateur -de trajectoire, exprimée en nanosecondes. -Cette valeur sera arrondie à un multiple entier de _SERVO_PERIOD_. -Excepté pour les machines avec une cinématique particulière -(ex: hexapodes) Il n'y a aucune raison de rendre cette valeur supérieure à -_SERVO_PERIOD_. - -[[sub:Section-TASK]] -=== Section [TASK] -(((Section [TASK] du fichier ini))) - -* _TASK = milltask_ - Indique le nom de la _tâche_ exécutable. La tâche réalise -différentes actions, telles que communiquer avec les interfaces utilisateur au -dessus de NML, communiquer avec le planificateur de mouvements temps réel dans -la mémoire partagée non-HAL, et interpréter le g-code. -Actuellement il n'y a qu'une seule tâche exécutable qui fait sens pour -99,9% des utilisateurs, milltask. - -* _CYCLE_TIME = 0.010_ - Période exprimée en secondes, à laquelle TASK -va tourner. Ce paramètre affecte l'intervalle de polling lors de l'attente de -la fin d'un mouvement, lors de l'exécution d'une pause d'instruction et quand -une commande provenant d'une interface utilisateur est acceptée. Il -n'est généralement pas nécessaire de modifier cette valeur. - -[[sub:Section-HAL]] -=== Section [HAL] -(((Section [HAL] du fichier ini ))) - -* _TWOPASS=ON_ - Utilise le processus _twopass_ (double passe) pour charger -les composants HAL. Avec le processus TWOPASS, tous les fichiers [HAL]HALFILES -sont premièrement lus et les occurrences multiples des directives à loadrt -pour chaque module sont cumulées. Aucune commande HAL n'est exécutée à -la première passe. - -* _HALFILE = example.hal_ - Exécute le fichier _example.hal_ au démarrage. -Si _HALFILE_ est spécifié plusieurs fois, les fichiers sont exécutés dans -l'ordre de leur apparition dans le fichier ini. Presque toutes les -configurations auront au moins un _HALFILE_ . Les systèmes à moteurs -pas à pas ont généralement deux de ces fichiers, un qui spécifie la -configuration générale des moteurs _core_stepper.hal_ et un qui spécifie le -brochage des sorties _xxx_pinout.hal_. - -* _HAL = command_ - Exécute _command_ comme étant une simple commande hal. -Si _HAL_ est spécifié plusieurs fois, les commandes sont exécutées dans -l'ordre où elles apparaissent dans le fichier ini. Les lignes _HAL_ -sont exécutées après toutes les lignes _HALFILE_. - -* _SHUTDOWN = shutdown.hal_ - Exécute le fichier _shutdown.hal_ quand LinuxCNC -s'arrête. Selon les pilotes de matériel utilisés, il est ainsi possible de -positionner les sorties sur des valeurs définies quand LinuxCNC s'arrête -normalement. Cependant, parce qu'il n'y a aucune garantie que ce fichier sera -exécuté (par exemple, dans le cas d'une panne de l'ordinateur), il ne -remplace pas une véritable chaîne physique d'arrêt d'urgence ou -d'autres dispositifs logiciels de protection des défauts de fonctionnement comme -la pompe de charge ou le watchdog. - -* _POSTGUI_HALFILE = example2.hal_ - (Seulement avec les interfaces TOUCHY et -AXIS) Exécute _example2.hal_ après que l'interface graphique ait créé ses HAL -pins. - -[[sub:Section-HALUI]] -=== Section [HALUI] -(((Section [HALUI] du fichier ini ))) - -* _MDI_COMMAND = G53 G0 X0 Y0 Z0_ - Une commande MDI peut être exécuté en -utilisant _halui.mdi-command-00_. Incrémente le nombre pour chaque commande -énumérée dans la section [HALUI]. - -[[sub:Section-TRAJ]] -=== Section [TRAJ] -(((Section [TRAJ] du fichier ini ))) - -La section [TRAJ] contient les paramètres généraux du module -planificateur de trajectoires de EMCMOT. Vous n'aurez pas à modifier -ces valeurs si vous utilisez LinuxCNC avec une machine à trois axes en -provenance des USA. Si vous êtes dans une zone métrique, utilisant des -éléments matériels métriques, vous pourrez utiliser le fichier -_stepper_mm.ini_ dans lequel les valeurs sont déjà configurées dans cette -unité. - -* _COORDINATES = X Y Z_ - Les noms des axes à contrôler. X, Y, Z, A, B, C, U, V -et W sont valides. Seuls les axes nommés dans _COORDINATES_ seront acceptés dans -le G-code. Cela n'a aucun effet sur l'ordonnancement des noms d'axes depuis -le G-code (X- Y- Z-) jusqu'aux numéros d'articulations. Pour une _cinématique -triviale_, X est toujours l'articulation 0, A est toujours l'articulation 3, -U est toujours l'articulation 6 et ainsi de suite. Il est permis d'écrire les -noms d'axe par paire (ex: X Y Y Z pour une machine à portique) mais -cela n'a aucun effet. - -* _AXES = 3_ - Une unité de plus que le plus grand numéro d'articulation du -système. Pour une machine XYZ, les articulations sont numérotées 0, 1 et 2. Dans -ce cas, les AXES sont 3. Pour un système XYUV utilisant une -_cinématique triviale_, l'articulation V est numérotée 7 et donc les -AXES devraient être 8. Pour une machine à cinématique non triviale (ex: -scarakins) ce sera généralement le nombre d'articulations contrôlées. - -* _JOINTS = 3_ - (Cette variable de configuration est utilisée seulement par -Axis et non par le planificateur de trajectoire du contrôleur de -mouvement.) Elle spécifie le nombre d'articulations (moteurs) que -comporte le système. Par exemple, une machine XYZ avec un seul moteur -pour chacun des 3 axes, comporte 3 articulations (joints). Une machine -à portique avec un seul moteur sur deux de ses axes et deux moteurs -sur le troisième axe, comporte 4 articulations (joints). - -* _HOME = 0 0 0_ - Coordonnées de l'origine machine de chaque axe. De nouveau, -pour une machine 4 axes, vous devrez avoir 0 0 0 0. Cette valeur est utilisée -uniquement pour les machines à cinématique non triviale. Sur les -machines avec cinématique triviale, cette valeur est ignorée. - -* _LINEAR_UNITS=_ - (((LINEAR UNITS)))Le nom des unités utilisées dans -le fichier INI. Les choix possibles sont _in_, _inch_, _imperial_, _metric_, -_mm_. Cela n'affecte pas les unités linéaires du code NC (pour cela il y a -les mots G20 et G21). - -* _ANGULAR_UNITS=_ - (((ANGULAR UNITS)))Le nom des unités utilisées -dans le fichier INI. Les choix possibles sont _deg_, _degree_ (360 pour un -cercle), _rad_, _radian_ (2pi pour un cercle), _grad_, ou _gon_ (400 pour un -cercle). Cela n'affecte pas les unités angulaires du code NC. Dans le code -RS274NGC, les mots A-, B- et C- sont toujours exprimés en degrés. - -* _DEFAULT_VELOCITY = 0.0167_ - La vitesse initiale de jog des axes linéaires, -en unités par seconde. La valeur indiquée ici correspond à une unité par minute. - -* _DEFAULT_ACCELERATION = 2.0_ - Dans les machines à cinématique non triviale, -l'accélération utilisée pour _teleop_ jog (espace cartésien), en unités machine -par seconde par seconde. - -* _MAX_VELOCITY = 5.0_ - (((MAX VELOCITY))) Vitesse maximale de déplacement -pour les axes, exprimée en unités machine par seconde. La valeur indiquée est -égale à 300 unités par minute. - -* _MAX_ACCELERATION = 20.0_ - (((MAX ACCELERATION))) Accélération maximale pour -les axes, exprimée en unités machine par seconde par seconde. - -* _POSITION_FILE = position.txt_ - Si réglée à une valeur non vide, les -positions des axes (joins) sont enregistrées dans ce fichier. Cela permet donc -de redémarrer avec les mêmes coordonnées que lors de l'arrêt, ce qui suppose, -que hors puissance, la machine ne fera aucun mouvement pendant tout son arrêt. -C'est utile pour les petites machines sans contact d'origine machine. -Si vide, les positions ne seront pas enregistrées et commenceront à 0 à -chaque fois que LinuxCNC démarrera. - -* _NO_FORCE_HOMING = 1_ - LinuxCNC oblige implicitement l'utilisateur à -référencer la machine par une prise d'origine machine avant de pouvoir lancer -un programme ou exécuter une commande dans le MDI, seuls les mouvements de Jog -sont autorisés avant les prises d'origines. Mettre NO_FORCE_HOMING = 1 -permet à l'opérateur averti de s'affranchir de cette restriction de -sécurité lors de la phase de mise au point de la machine. - -[WARNING] -_NO_FORCE_HOMING_ mise à 1 permettra à la machine de franchir les -limites logicielles pendant les mouvements ce qui n'est pas souhaitable -pour un fonctionnement normal! - -[[sub:Sections-AXIS]] -=== Sections [AXIS_n] -(((Sections [AXIS_n] du fichier ini))) - -Les sections [AXIS_0], [AXIS_1], etc. contiennent les paramètres -généraux des composants individuels du module de contrôle. La -numérotation des sections axis commence à 0 et augmente jusqu'au nombre -d'axes spécifiés dans la variable [TRAJ] AXES, moins 1. - -Généralement (mais pas toujours): - - - AXIS_0 = X - - AXIS_1 = Y - - AXIS_2 = Z - - AXIS_3 = A - - AXIS_4 = B - - AXIS_5 = C - - AXIS_6 = U - - AXIS_7 = V - - AXIS_8 = W - -* _TYPE = LINEAR_ - Type des axes, soit LINEAR, soit ANGULAR. - -* _WRAPPED_ROTARY = 1_ - Lorsque ce paramètre est réglé à 1 pour un axe angulaire -l'axe se déplace de 0 à 359.999 degrés. Les nombres positifs déplacent -l'axe dans le sens positif et les nombres négatifs dans le sens négatif. - -* _LOCKING_INDEXER = 1_ - Quand ce paramètre est mis à 1, un mouvement en G0 -sur cet axe va produire un signal de déblocage sur la pin _axis.N.unlock_, puis -attendre le signal _axis.N.is-unlocked_ de cet axe pour déplacer l'axe à la -vitesse rapide prévue pour cet axe. Après ce mouvement, le signal -_axis.N.unlock_ retombera à false et les mouvements attendront que -_axis.N.is-unlocked_ redevienne false. Le mouvement des autres axes n'est pas -autorisé lors du mouvement d'un axe rotatif à verrou. - -* _UNITS = inch_ - (((UNITS))) Ce réglage écrase celui des variables -[TRAJ] UNITS si il est spécifié. (ex: [TRAJ]LINEAR_UNITS si le TYPE de cet axe -est LINEAR, [TRAJ]ANGULAR_UNITS si le TYPE de cet axe est ANGULAR) - -* _MAX_VELOCITY = 1.2_ - Vitesse maximum pour cet axe en unités machine par -seconde. - -* _MAX_ACCELERATION = 20.0_ - Accélération maximum pour cet axe en unités -machine par seconde au carré. - -* _BACKLASH = 0.000_ - Valeur de compensation du jeu en unités machine. -Peut être utilisée pour atténuer de petites déficiences du matériel utilisé -pour piloter cet axe. Si un backlash est ajouté à un axe et que des moteurs -pas à pas sont utilisés, la valeur de STEPGEN_MAXACCEL doit être 1.5 à 2 -fois plus grande que celle de MAX_ACCELERATION pour cet axe. - -* _COMP_FILE = file.extension_ - Fichier dans lequel est enregistrée une -structure de compensation spécifique à cet axe. Le fichier peut être nommé -_xscrew.comp_, par exemple, pour l'axe X. Les noms de fichiers sont sensibles -à la casse et peuvent contenir des lettres et/ou des chiffres. Les valeurs -sont des triplets par ligne séparés par un espace. La première valeur -est nominale (où elle devrait l'être). Les deuxième et troisième valeurs -dépendront du réglage de COMP_FILE_TYPE. Actuellement la -limite de LinuxCNC est de 256 triplets par axe. Si COMP_FILE est spécifié, -BACKLASH est ignoré. Les valeurs sont en unités machine. - -* _COMP_FILE_TYPE = 0 ou 1_ - -** _Si 0:_ Les deuxième et troisième valeurs spécifient la position en avant -(de combien l'axe est en avance) et la position en arrière (de combien l'axe -est en retard), positions qui correspondent à la position nominale. -** _Si 1:_ Les deuxième et troisième valeurs spécifient l'ajustement avant -(à quelle distance de la valeur nominale lors d'un déplacement vers l'avant) -et l'ajustement arrière (à quelle distance de la valeur nominale lors d'un -déplacement vers l'arrière), positions qui correspondent à la position -nominale. - -Exemple de triplet avec COMP_FILE_TYPE = 0: 1.00 1.01 0.99 + -Exemple de triplet avec COMP_FILE_TYPE = 1: 1.00 0.01 -0.01 - -* _MIN_LIMIT = -1000_ - (((MIN LIMIT))) Limite minimale des mouvements de cet -axe (limite logicielle), en unités machine. Quand cette limite tend à être -dépassée, le contrôleur arrête le mouvement. - -* _MAX_LIMIT = 1000_ - (((MAX LIMIT))) Limite maximale des mouvements de cet -axe (limite logicielle), en unités machine. Quand cette limite tend à être -dépassée, le contrôleur arrête le mouvement. - -* _MIN_FERROR = 0.010_ - (((MIN FERROR))) Valeur indiquant, en unités machine, -de combien le mobile peut dévier à très petite vitesse de la position commandée. -Si MIN_FERROR est plus petit que FERROR, les deux produisent une rampe de -points de dérive. Vous pouvez imaginer un graphe sur lequel une -dimension représente la vitesse et l'autre, l'erreur tolérée. Quand la -vitesse augmente, la quantité d'erreurs de suivi augmente également et -tend vers la valeur FERROR. - -* _FERROR = 1.0_ - (((FERROR))) FERROR est le maximum d'erreur de suivi -tolérable, en unités machine. Si la différence entre la position commandée et la -position retournée excède cette valeur, le contrôleur désactive les -calculs des servomoteurs, positionne toutes les sorties à 0.0 et coupe -les amplis des moteurs. Si MIN_FERROR est présent dans le fichier .ini, -une vitesse proportionnelle aux erreurs de suivi est utilisée. Ici, le -maximum d'erreur de suivi est proportionnel à la vitesse, quand FERROR -est appliqué à la vitesse rapide définie dans [TRAJ]MAX_VELOCITY et -proportionnel aux erreurs de suivi pour les petites vitesses. L'erreur -maximale admissible sera toujours supérieure à MIN_FERROR. Cela permet -d'éviter que de petites erreurs de suivi sur les axes stationnaires -arrêtent les mouvements de manière impromptue. Des petites erreurs de -suivi seront toujours présentes à cause des vibrations, etc. La -polarité des valeurs de suivi détermine comment les entrées sont -interprétées et comment les résultats sont appliqués aux sorties. Elles -peuvent généralement être réglées par tâtonnement car il n'y a que deux -possibilités. L'utilitaire de calibration peut être utilisé pour les -ajuster interactivement et vérifier les résultats, de sorte que les -valeurs puissent être mises dans le fichier INI avec un minimum de -difficultés. Cet utilitaire est accessible dans Axis depuis le menu -_Machine_ puis _Calibration_ et dans TkLinuxCNC depuis le menu _Réglages_ -puis _Calibration_. - -[[sub:Section-HOMING]] -=== Section [HOMING] - -Les paramètres suivants sont relatifs aux prises d'origine, pour plus -d'informations, lire <>. - -* _HOME = 0.0_ - La position à laquelle le mobile ira à la fin de la séquence -de prise d'origine. - -* _HOME_OFFSET = 0.0_ - Position du contact d'origine machine de l'axe ou -de l'impulsion d'index, en <>. Lorsque le point -d'origine est détecté pendant le processus de prise d'origine, c'est cette -position qui est assignée à ce point. Dans le cas du partage de capteur entre -l'origine et les limites d'axe et de l'utilisation d'une séquence de prise -d'origine qui laisse le capteur dans l'état activé, la valeur de HOME_OFFSET -peut être utilisée pour définir une position du capteur différente du 0 utilisé -alors pour l'origine. - -* _HOME_SEARCH_VEL = 0.0_ - (((HOME SEARCH VEL))) Vitesse du mouvement initial -de prise d'origine, en unités machine par seconde. Une valeur de zéro suppose -que la position courante est l'origine machine. Si la machine n'a pas de -contact d'origine, laisser cette valeur à zéro. - -* _HOME_LATCH_VEL = 0.0_ - Vitesse du mouvement de dégagement du contact -d'origine, en unités machine par seconde. - -* _HOME_FINAL_VEL = 0.0_ - Vitesse du mouvement final entre le contact d'origine -et la position d'origine, en unités machine par seconde. Si cette variable est -laissée à 0 ou absente, la vitesse de déplacement rapide est utilisée. Doit -avoir une valeur positive. - -* _HOME_USE_INDEX = NO_ - Si l'encodeur utilisé pour cet axe fournit une -impulsion d'index et qu'elle est gérée par la carte contrôleur, il est possible -de mettre sur Yes. Quand il est sur yes, il aura une incidence sur le type de -séquence de prise d'origine utilisée. - -* _HOME_IGNORE_LIMITS = NO_ - Si la machine utilise un seul et même -contact comme limite d'axe et origine machine de l'axe. Cette variable devra -alors être positionnée sur yes. Dans ce cas le contact de limite de cet axe est -ignoré pendant la séquence de prise d'origines. Il est nécessaire de configurer -la séquence pour qu'à la fin du mouvement le capteur ne reste pas dans l'état -activé qui aboutirait finalement à un message d'erreur du capteur de limite. - -* _HOME_IS_SHARED = _ - Si l'entrée du contact d'origine est partagée par -plusieurs axes, mettre à 0 pour permettre la POM même si un des contacts -partagés est déjà attaqué. Le mettre à 1 pour interdire la prise d'origine dans -ce cas. - -* _HOME_SEQUENCE = _ - Utilisé pour définir l'ordre dans lequel les axes se -succéderont lors d'une séquence de _POM générale_. ** commence à 0, aucun -numéro ne peut être sauté. Si cette variable est absente ou à -1, la POM de l'axe -ne pourra pas être exécutée par la commande _POM générale_. La POM de -plusieurs axes peut se dérouler simultanément. - -* _VOLATILE_HOME = 0_ - Lorsqu'il est activé (mis à 1), l'origine machine de -cette articulation sera effacée si la machine est en marche et que l'arrêt -d'urgence est activé. Ceci est utile si la machine possède des contacts -d'origine mais n'a pas de retour de position comme une machine à moteur pas à -pas de type pas/direction. - -[[sub:Variables-relatives-aux-servomoteurs]] -=== Variables relatives aux servomoteurs - -Les éléments suivants sont pour les systèmes à servomoteurs et à pseudos -servomoteurs. Cette description suppose que les unités en sortie du -composant PID sont des Volts. - -* _DEADBAND = 0.000015_ - (dans HAL) Quelle distance est assez proche de la -consigne pour considérer le moteur en position, en unités machine. Cette -variable est fréquemment réglée pour une distance équivalente à 1, 1.5, 2, ou -3 impulsions de comptage du codeur, mais cela n'a rien d'une règle stricte. Un -réglage lâche (large) permet de moins solliciter le servo au détriment de la -précision. Un réglage serré (petit) permettra d'atteindre une grande précision -mais le servo sera plus sollicité. -Est-ce vraiment plus précis si c'est plus incertain ? En règle générale, il est -préférable d'éviter le plus possible de solliciter le servo, si c'est possible. - -Ayez la prudence de ne pas chercher à aller en dessous d'une impulsion de codeur, -sinon vous enverrez votre servo quelque part où il ne sera pas heureux ! Cela -peut arriver entre réglage lent et réglage nerveux et même un réglage impropre -peut provoquer des couinements, des grincements dus aux oscillations provoquées -par ce mauvais réglage. Il est préférable de perdre une ou deux impulsions au -début des réglages, au moins jusqu'à avoir bien dégrossi les réglages. - -Exemple de calcul en unités machine par top de codeur à utiliser pour décider de -la valeur de DEADBAND (bande morte): - -*+X pouces / top de codeur =+* -*+1 tour / 1000 top de codeur * 1 top de codeur / 4 top en quadrature * 0.2 -pouce / tour =+* -*+0.200 pouce / 4000 top de codeur = 0.000050 pouce / top de codeur.+* - -* _BIAS = 0.000_ - (dans HAL) (Parfois appelé _offset_) il est utilisé par -hm2-servo et quelques autres. -Le Bias est une valeur constante qui est ajoutée sur la sortie. -Dans la plupart des cas, elle peut rester à zéro. -Toutefois, il peut être intéressant pour compenser un décalage de l'ampli -du servo, ou équilibrer le poids d'un objet se déplaçant verticalement. -Le bias est mis à zéro quand la boucle PID est désactivée, comme -tous les autres composants de la sortie. - -* _P = 50_ - (hal) La composante Proportionnelle du gain de l'ampli moteur de -cet axe. Cette valeur multiplie l'erreur entre la position commandée et la -position actuelle en unités machine, elle entre dans le calcul de la tension -appliquée à l'ampli moteur. Les unités du gain *P* sont des Volts sur des unités -machine, par exemple: *+Volt/mm+* si l'unité machine est le millimètre. - -* _I = 0_ - (hal) La composante Intégrale du gain de l'ampli moteur de cet -axe. Cette valeur multiplie l'erreur cumulative entre la position commandée et -la position actuelle en unités machine, elle entre dans le calcul de la tension -appliquée à l'ampli moteur. Les unités du gain *I* sont des Volts sur des unités -machine par seconde, exemple: *+Volt/mm*s+* si l'unité machine est le -millimètre. - -* _D = 0_ - (hal) La composante Dérivée du gain de l'ampli moteur de cet axe. -Cette valeur multiplie la différence entre l'erreur courante et les précédentes, -elle entre dans le calcul de la tension appliquée à l'ampli moteur. Les unités -du gain *D* sont des Volts sur des unités machine sur des secondes, exemple: -*+Volt/(mm/s)+* si l'unité machine est le millimètre. - -* _FF0 = 0_ - (hal) Gain à priori (retour vitesse) d'ordre 0. Cette valeur est -multipliée par la position commandée, elle entre dans le calcul de la tension -appliquée à l'ampli moteur. Les unités du gain FF0 sont des Volts sur des unités -machine, exemple: *+Volt/mm+* si l'unité machine est le millimètre. - -* _FF1 = 0_ - (hal) Gain à priori (retour vitesse) de premier ordre. Cette -valeur est multipliée par l'écart de la position commandée par seconde, elle entre -dans le calcul de la tension appliquée à l'ampli moteur. Les unités du -gain FF1 sont des Volts sur des unités machine par seconde, exemple: -*+Volt/(mm/s)+* si l'unité machine est le millimètre. - -* _FF2 = 0_ - (hal) Gain à priori (retour vitesse) de second ordre. Cette -valeur est multipliée par l'écart de la position commandée par seconde au carré, -elle entre dans le calcul de la tension appliquée à l'ampli moteur. Les -unités du gain FF2 sont des Volts sur des unités machine par des -secondes au carré, exemple: *+Volt/mm/s^2^+* si l'unité machine est le -millimètre. - -* _OUTPUT_SCALE = 1.000_ - -+ -* _OUTPUT_OFFSET = 0.000_ - (hal) Ces deux valeurs sont les facteurs d'échelle -et offset pour la sortie de l'axe à l'amplificateurs moteur. -La seconde valeur (offset) est soustraite de la -valeur de sortie calculée (en Volts) puis divisée par la première -valeur (facteur d'échelle), avant d'être écrite dans le convertisseur -D/A. Les unités du facteur d'échelle sont des Volts réels par Volts en -sortie de DAC. Les unités de la valeur d'offset sont en Volts. Ces -valeurs peuvent être utilisées pour linéariser un DAC. -Plus précisément, quand les sorties sont écrites, LinuxCNC converti d'abord -les unités quasi-SI des sorties concernées en valeurs brutes, exemple: -Volts pour un amplificateur DAC. Cette mise à l'échelle ressemble à cela: + -*+raw = output-offset/scale+* la valeur d'échelle peut être obtenue par analyse -des unités, exemple: les unités sont [unités SI en sortie]/[unités de -l'actuateur]. Par exemple, sur une machine sur laquelle une tension de consigne -de l'ampli de 1 Volt donne une vitesse de 250 mm/s : + -*+amplifier [volts] = (output[mm/s] - offset[mm/s]) / 250mm/(s/Volt)+* -+ -Notez que les unités d'offset sont en unités machine, exemple: -mm/s et qu'elles sont déjà soustraites depuis la sonde de lecture. La -valeur de cet offset est obtenue en prenant la valeur de votre sortie -qui donne 0,0 sur la sortie de l'actuateur. Si le DAC est linéarisé, -cet offset est normalement de 0.0. - -L'échelle et l'offset peuvent être utilisés pour linéariser les DAC, -d'où des valeurs qui reflètent les effets combinés du gain de l'ampli, -de la non linéarité du DAC, des unités du DAC, etc. Pour ce faire, -suivez cette procédure: - -- Construire un tableau de calibrage pour la sortie, piloter le DAC - avec la tension souhaitée et mesurer le résultat. Voir le tableau - ci-dessous pour un exemple de mesures de tension. -- Par la méthode des moindres carrés, obtenir les coefficients *a*,*b* - tels que: *+mesure = a*raw+b+* -- Noter que nous voulons des sorties brutes de sorte que nos résultats - mesurés soient identiques à la sortie commandée. Ce qui signifie: -- *+cmd = a*raw+b+* -- *+raw = (cmd-b)/a+* -- En conséquence, les coefficients *a* et *b* d'ajustement linéaire - peuvent être directement utilisés comme valeurs d'échelle et - d'offset pour le contrôleur. -// -// [[cap:Mesure des tensions de sortie]] -// -.Mesure des tensions de sortie - -[width="50%", cols="2*^", options="header"] -|======================== -|Brutes (Raw) | Mesurées -|-10 | -9.93 -|-9 | -8.83 -|0 | -0.03 -|1 | 0.96 -|9 | 9.87 -|10 | 10.87 -|======================== - -* _MAX_OUTPUT = 10_ - (hal) La valeur maximale pour la sortie de la -compensation PID pouvant être envoyée sur l'ampli moteur, en Volts. La valeur -calculée de la sortie sera fixée à cette valeur limite. La limite est appliquée -avant la mise à l'échelle de la sortie en unités brutes. La valeur est appliquée -de manière symétrique aux deux côtés, le positif et le négatif. - -* _INPUT_SCALE = 20000_ - (((INPUT SCALE))) (hal) Spécifie le nombre -d'impulsions qui correspond à un mouvement de une unité machine telle que fixée -dans la section TRAJ. -Pour un axe linéaire, une unité machine sera égale à la valeur de LINEAR_UNITS. -Pour un axe angulaire, une unité machine sera égale à la valeur de ANGULAR_UNITS. -Un second chiffre, si spécifié, sera ignoré. -Par exemple, sur un codeur de 2000 impulsions par tour(((codeur))), un -réducteur de 10 tours/pouce et des unités demandées en pouces, nous avons: + -*+INPUT_SCALE = 2000 top/tour * 10 tour/pouce = 20000 top/pouce+* - -[[sub:Variables-relatives-aux-moteurs-pas-a-pas]] -=== Variables relatives aux moteurs pas à pas - -* _SCALE = 4000_ - (((INPUT SCALE))) (hal) Spécifie le nombre d'impulsions qui -correspond à un mouvement d'une unité machine comme indiqué dans la section [TRAJ]. -Pour les systèmes à moteurs pas à pas, c'est le nombre d'impulsions de pas -nécessaires pour avancer d'une unité machine. Pour un axe linéaire, une unité -machine sera égale à la valeur de LINEAR_UNITS. -Pour un axe angulaire, une unité machine sera égale à la valeur de ANGULAR_UNITS. -Pour les systèmes à servomoteurs, c'est le nombre d'impulsions -de retour signifiant que le mobile a avancé d'une unité machine. -Un second nombre, si spécifié, sera ignoré. -Par exemple, un pas moteur de 1.8 degré, en mode demi-pas, avec une -réduction de 10 tours/pouce et des unités souhaitées en pouces, nous avons: + -*+scale = 2 pas/1.8 degrés * 360 degrés/tour * 10 tour/pouce = 4000 pas/pouce+* - -(D'anciens fichiers .ini et .hal utilisaient INPUT_SCALE pour cette valeur.) - -* _STEPGEN_MAXACCEL = 21.0_ - (hal) Limite d'accélération pour le générateur -de pas. Elle doit être 1% à 10% supérieure à celle de l'axe MAX_ACCELERATION. -Cette valeur améliore les réglages de la _boucle de position_ de stepgen. Si -une correction de jeu a été appliquée sur un axe, alors STEPGEN_MAXACCEL doit -être 1,5 à 2 fois plus grande que MAX_ACCELERATION. - -* _STEPGEN_MAXVEL = 1.4_ - (hal) Les anciens fichiers de configuration avaient -également une limite de vitesse du générateur de pas. Si spécifiée, elle doit -aussi être 1% à 10% supérieure à celle de l'axe MAX_VELOCITY. Des tests -ultérieurs ont montré que l'utilisation de STEPGEN_MAXVEL n'améliore pas le -réglage de la boucle de position de stepgen. - -[[sub:Section-EMCIO]] -=== Section [EMCIO] -(((Section [EMCIO] du fichier ini))) - -* _CYCLE_TIME = 0.100_ - La période en secondes, à laquelle EMCIO va tourner. -La mettre à 0.0 ou à une valeur négative fera que EMCIO tournera en permanence. -Il est préférable de ne pas modifier cette valeur. - -* _TOOL_TABLE = tool.tbl_ - Ce fichier contient les informations des outils, -décrites dans le Manuel de l'utilisateur. - -* _TOOL_CHANGE_POSITION = 0 0 2_ - Quand trois digits sont utilisés, spécifie -la position XYZ ou le mobile sera déplacé pour le changement d'outil. -Si six digits sont utilisés, spécifie l'emplacement ou sera envoyé -le mobile pour réaliser le changement d'outil sur une machine de type XYZABC et -de même, sur une machine de type XYZABCUVW lorsque 9 digits sont utilisés. -Les variables relatives à la position du changement d'outil peuvent être -combinées, par exemple; en combinant TOOL_CHANGE_POSITION avec -TOOL_CHANGE_QUILL_UP il est possible de déplacer d'abord Z puis X et Y. - -* _TOOL_CHANGE_WITH_SPINDLE_ON = 1_ - Avec cette valeur à 1, la broche reste en -marche pendant le changement d'outil. Particulièrement utile sur les tours. - -* _TOOL_CHANGE_QUILL_UP = 1_ - Avec cette valeur à 1, l'axe Z sera déplacé sur -son origine machine avant le changement d'outil. C'est l'équivalent d'un G0 G53 Z0. - -* _TOOL_CHANGE_AT_G30 = 1_ - Avec cette valeur à 1, le mobile sera envoyé sur -un point de référence prédéfini par G30 dans les paramètres 5181-5186. Pour -plus de détails sur les paramètres de G30, voir le chapitre relatif au G-code -dans le Manuel de l'utilisateur. - -* _RANDOM_TOOLCHANGER = 1_ - C'est pour des machines qui ne peuvent pas placer -l'outil dans la poche il vient. Par exemple, les machines qui change l'outil -dans la poche active avec l'outil dans la broche. - - diff --git a/docs/src/config/ini_homing.txt b/docs/src/config/ini_homing.txt deleted file mode 100644 index de93a4d25be..00000000000 --- a/docs/src/config/ini_homing.txt +++ /dev/null @@ -1,172 +0,0 @@ -= Homing Configuration - -[[cha:homing-configuration]] (((Homing Configuration))) - -== Overview - -Homing seems simple enough - just move each joint to a known location, -and set LinuxCNC's internal variables accordingly. However, different -machines have different requirements, and homing is actually quite -complicated. - -== Homing Sequence - -There are four possible homing sequences defined by the sign of SEARCH_VEL -and LATCH_VEL, along with the associated configuration parameters as shown -in the following table. Two basic conditions exist, SEARCH_VEL and LATCH_VEL -are the same sign or they are opposite signs. For a more detailed description -of what each configuration parameter does, see the following section. - -.Homing Sequences[[fig:motion-homing-sequence-diagram]] - -image::images/emc2-motion-homing-diag.png[align="center"] - -== Configuration - -The following determines exactly how the home sequence behaves. -They are defined in an [AXIS] section of the inifile. - -[width="80%", options="header", cols="4*^"] -|========================================================== -|Homing Type |SEARCH_VEL |LATCH_VEL |USE_INDEX -|Immediate |0 |0 |NO -|Index-only |0 |nonzero |YES -|Switch-only |nonzero |nonzero |NO -|Switch and Index |nonzero |nonzero |YES -|========================================================== - -[NOTE] -Any other combinations may result in an error. - -=== HOME_SEARCH_VEL (((HOME SEARCH VEL))) - -The default value is zero. A value of zero causes LinuxCNC to assume that -there is no home switch; the search stage of homing is skipped. - -If HOME_SEARCH_VEL is non-zero, then LinuxCNC assumes that there is a home -switch. It begins by checking whether the home switch is already -tripped. If tripped it backs off the switch at HOME_SEARCH_VEL. The -direction of the back-off is opposite the sign of HOME_SEARCH_VEL. Then -it searches for the home switch by moving in the direction specified by -the sign of HOME_SEARCH_VEL, at a speed determined by its absolute -value. When the home switch is detected, the joint will stop as fast as -possible, but there will always be some overshoot. The amount of -overshoot depends on the speed. If it is too high, the joint might -overshoot enough to hit a limit switch or crash into the end of travel. -On the other hand, if HOME_SEARCH_VEL is too low, homing can take a -long time. - -=== HOME_LATCH_VEL (((HOME LATCH VEL))) - -Specifies the speed and direction that LinuxCNC uses when it makes its -final accurate determination of the home switch (if present) and index -pulse location (if present). It will usually be slower than the search -velocity to maximize accuracy. If HOME_SEARCH_VEL and HOME_LATCH_VEL -have the same sign, then the latch phase is done while moving in the -same direction as the search phase. (In that case, LinuxCNC first backs off -the switch, before moving towards it again at the latch velocity.) If -HOME_SEARCH_VEL and HOME_LATCH_VEL have opposite signs, the latch phase -is done while moving in the opposite direction from the search phase. -That means LinuxCNC will latch the first pulse after it moves off the -switch. If HOME_SEARCH_VEL is zero (meaning there is no home switch), -and this parameter is nonzero, LinuxCNC goes ahead to the index pulse -search. If HOME_SEARCH_VEL is non-zero and this parameter is zero, it -is an error and the homing operation will fail. The default value is -zero. - -=== HOME_FINAL_VEL - -It specifies the speed that LinuxCNC uses when it makes its move from -HOME_OFFSET to the HOME position. If the HOME_FINAL_VEL is missing from -the ini file, then the maximum joint speed is used to make this move. -The value must be a positive number. - -=== HOME_IGNORE_LIMITS (((HOME IGNORE LIMITS))) - -Can hold the values YES / NO. The default value for this parameter is NO. -This flag determines whether LinuxCNC will ignore the limit switch input -for this axis while homing. Setting this to YES will not ignore limit inputs -for other axes. If you do not have a separate home switch set this to YES and -case connect the limit switch signal to the home switch input in HAL. LinuxCNC -will ignore the limit switch input for this axis while homing. To use only -one input for all homing and limits you will have to block the limit signals -of the axes not homing in HAL and home one axis at a time. - -=== HOME_USE_INDEX (((HOME USE INDEX))) - -Specifies whether or not there is an index pulse. If the flag is true -(HOME_USE_INDEX = YES), LinuxCNC will latch on the rising edge of the index -pulse. If false, LinuxCNC will latch on either the rising or falling edge of -the home switch (depending on the signs of HOME_SEARCH_VEL and -HOME_LATCH_VEL). The default value is NO. - -=== HOME_OFFSET (((HOME OFFSET))) - -Contains the location of the home switch or index pulse, in joint -coordinates. It can also be treated as the distance between the point -where the switch or index pulse is latched and the zero point of the -joint. After detecting the index pulse, LinuxCNC sets the joint coordinate -of the current point to HOME_OFFSET. The default value is zero. - -=== HOME (((HOME))) - -The position that the joint will go to upon completion of the homing -sequence. After detecting the index pulse, and setting the coordinate -of that point to HOME_OFFSET, LinuxCNC makes a move to HOME as the final -step of the homing process. The default value is zero. Note that even -if this parameter is the same as HOME_OFFSET, the joint will slightly -overshoot the latched position as it stops. Therefore there will always -be a small move at this time (unless HOME_SEARCH_VEL is zero, and the -entire search/latch stage was skipped). This final move will be made at -the joint's maximum velocity. Since the joint is now homed, there should -be no risk of crashing the machine, and a rapid move is the quickest -way to finish the homing sequence. footnote:[The distinction between -'home_offset' and 'home' is that 'home_offset' first establishes the -scale location on the machine by applying the 'home_offset' value to -the location where home was found, and then 'home' says where -the joint should move to on that scale.] - -=== HOME_IS_SHARED (((HOME IS SHARED))) - -If there is not a separate home switch input for this axis, but a -number of momentary switches wired to the same pin, set this value to 1 -to prevent homing from starting if one of the shared switches is -already closed. Set this value to 0 to permit homing even if the switch -is already closed. - -=== HOME_SEQUENCE (((HOME SEQUENCE))) - -Used to define a multi-axis homing sequence HOME ALL and enforce -homing order (e.g., Z may not be homed if X is not yet homed). An axis -may be homed after all axes with a lower HOME_SEQUENCE have already -been homed and are at the HOME_OFFSET. If two axes have the same -HOME_SEQUENCE, they may be homed at the same time. If HOME_SEQUENCE is --1 or not specified then this joint will not be homed by the HOME ALL -sequence. HOME_SEQUENCE numbers start with 0 and there may be no unused -numbers. - -=== VOLATILE_HOME (((VOLATILE HOME))) - -If this setting is true, this axis becomes unhomed whenever the -machine transitions into the OFF state. This is appropriate for -any axis that does not maintain position when the axis drive is -off. Some stepper drives, especially microstep drives, may need -this. - -=== LOCKING_INDEXER (((LOCKING INDEXER))) - -If this axis is a locking rotary indexer, it will unlock before -homing, and lock afterward. - -=== Immediate Homing (((Immediate Homing))) - -If an axis does not have home switches or does not have a logical -home position like a rotary axis and you want that axis to home at -the current position when the "Home All" button is pressed in Axis -the following ini entries for that axis are needed. - -. SEARCH_VEL = 0 -. LATCH_VEL = 0 -. USE_INDEX = NO -. HOME_SEQUENCE = 0 - diff --git a/docs/src/config/ini_homing_es.txt b/docs/src/config/ini_homing_es.txt deleted file mode 100644 index 37251a14f4b..00000000000 --- a/docs/src/config/ini_homing_es.txt +++ /dev/null @@ -1,174 +0,0 @@ -= Homing Configuration - -[[cha:homing-configuration]] (((Homing Configuration))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Overview - -Homing seems simple enough - just move each joint to a known location, -and set LinuxCNC's internal variables accordingly. However, different -machines have different requirements, and homing is actually quite -complicated. - -== Homing Sequence - -There are four possible homing sequences, along with the associated -configuration parameters as shown in the following table. For a more -detailed description of what each configuration parameter does, see the -following section. - -.Homing Sequences[[fig:motion-homing-sequence-diagram]] - -image::images/emc2-motion-homing-diag.png[align="center"] - -== Configuration - -There are six pieces of information that determine exactly how the -home sequence behaves. They are defined in an [AXIS] section of the -inifile. - -[width="80%", options="header", cols="4*^"] -|========================================================== -|Homing Type |SEARCH_VEL |LATCH_VEL |USE_INDEX -|Immediate |0 |0 |NO -|Index-only |0 |nonzero |YES -|Switch-only |nonzero |nonzero |NO -|Switch and Index |nonzero |nonzero |YES -|========================================================== - -[NOTE] -Any other combinations may result in an error. - -=== HOME_SEARCH_VEL (((HOME SEARCH VEL))) - -The default value is zero. A value of zero causes LinuxCNC to assume that -there is no home switch; the search stage of homing is skipped. - -If HOME_SEARCH_VEL is non-zero, then LinuxCNC assumes that there is a home -switch. It begins by checking whether the home switch is already -tripped. If tripped it backs off the switch at HOME_SEARCH_VEL. The -direction of the back-off is opposite the sign of HOME_SEARCH_VEL. Then -it searches for the home switch by moving in the direction specified by -the sign of HOME_SEARCH_VEL, at a speed determined by its absolute -value. When the home switch is detected, the joint will stop as fast as -possible, but there will always be some overshoot. The amount of -overshoot depends on the speed. If it is too high, the joint might -overshoot enough to hit a limit switch or crash into the end of travel. -On the other hand, if HOME_SEARCH_VEL is too low, homing can take a -long time. - -=== HOME_LATCH_VEL (((HOME LATCH VEL))) - -Specifies the speed and direction that LinuxCNC uses when it makes its -final accurate determination of the home switch (if present) and index -pulse location (if present). It will usually be slower than the search -velocity to maximize accuracy. If HOME_SEARCH_VEL and HOME_LATCH_VEL -have the same sign, then the latch phase is done while moving in the -same direction as the search phase. (In that case, LinuxCNC first backs off -the switch, before moving towards it again at the latch velocity.) If -HOME_SEARCH_VEL and HOME_LATCH_VEL have opposite signs, the latch phase -is done while moving in the opposite direction from the search phase. -That means LinuxCNC will latch the first pulse after it moves off the -switch. If HOME_SEARCH_VEL is zero (meaning there is no home switch), -and this parameter is nonzero, LinuxCNC goes ahead to the index pulse -search. If HOME_SEARCH_VEL is non-zero and this parameter is zero, it -is an error and the homing operation will fail. The default value is -zero. - -=== HOME_FINAL_VEL - -It specifies the speed that LinuxCNC uses when it makes its move from -HOME_OFFSET to the HOME position. If the HOME_FINAL_VEL is missing from -the ini file, then the maximum joint speed is used to make this move. -The value must be a positive number. - -=== HOME_IGNORE_LIMITS (((HOME IGNORE LIMITS))) - -Can hold the values YES / NO. This flag determines whether LinuxCNC will -ignore the limit switch input for this axis while homing. Some machine -configurations do not use a separate home switch, instead they route -one of the limit switch signals to the home switch input as well. -In this case, LinuxCNC needs to ignore that limit during homing. The default -value for this parameter is NO. To use only one input for all homing and -limits you will have to block the limits of the axis not homing with axis -that is homing in HAL. - -=== HOME_USE_INDEX (((HOME USE INDEX))) - -Specifies whether or not there is an index pulse. If the flag is true -(HOME_USE_INDEX = YES), LinuxCNC will latch on the rising edge of the index -pulse. If false, LinuxCNC will latch on either the rising or falling edge of -the home switch (depending on the signs of HOME_SEARCH_VEL and -HOME_LATCH_VEL). The default value is NO. - -=== HOME_OFFSET (((HOME OFFSET))) - -Contains the location of the home switch or index pulse, in joint -coordinates. It can also be treated as the distance between the point -where the switch or index pulse is latched and the zero point of the -joint. After detecting the index pulse, LinuxCNC sets the joint coordinate -of the current point to HOME_OFFSET. The default value is zero. - -=== HOME (((HOME))) - -The position that the joint will go to upon completion of the homing -sequence. After detecting the index pulse, and setting the coordinate -of that point to HOME_OFFSET, LinuxCNC makes a move to HOME as the final -step of the homing process. The default value is zero. Note that even -if this parameter is the same as HOME_OFFSET, the joint will slightly -overshoot the latched position as it stops. Therefore there will always -be a small move at this time (unless HOME_SEARCH_VEL is zero, and the -entire search/latch stage was skipped). This final move will be made at -the joint's maximum velocity. Since the joint is now homed, there should -be no risk of crashing the machine, and a rapid move is the quickest -way to finish the homing sequence. footnote:[The distinction between -'home_offset' and 'home' is that 'home_offset' first establishes the -scale location on the machine by applying the 'home_offset' value to -the location where home was found, and then 'home' says where -the joint should move to on that scale.] - -=== HOME_IS_SHARED (((HOME IS SHARED))) - -If there is not a separate home switch input for this axis, but a -number of momentary switches wired to the same pin, set this value to 1 -to prevent homing from starting if one of the shared switches is -already closed. Set this value to 0 to permit homing even if the switch -is already closed. - -=== HOME_SEQUENCE (((HOME SEQUENCE))) - -Used to define a multi-axis homing sequence HOME ALL and enforce -homing order (e.g., Z may not be homed if X is not yet homed). An axis -may be homed after all axes with a lower HOME_SEQUENCE have already -been homed and are at the HOME_OFFSET. If two axes have the same -HOME_SEQUENCE, they may be homed at the same time. If HOME_SEQUENCE is --1 or not specified then this joint will not be homed by the HOME ALL -sequence. HOME_SEQUENCE numbers start with 0 and there may be no unused -numbers. - -=== VOLATILE_HOME (((VOLATILE HOME))) - -If this setting is true, this axis becomes unhomed whenever the -machine transitions into the OFF state. This is appropriate for -any axis that does not maintain position when the axis drive is -off. Some stepper drives, especially microstep drives, may need -this. - -=== LOCKING_INDEXER (((LOCKING INDEXER))) - -If this axis is a locking rotary indexer, it will unlock before -homing, and lock afterward. - - diff --git a/docs/src/config/ini_homing_fr.txt b/docs/src/config/ini_homing_fr.txt deleted file mode 100644 index 0d16d85a54d..00000000000 --- a/docs/src/config/ini_homing_fr.txt +++ /dev/null @@ -1,179 +0,0 @@ -:lang: fr -:toc: - -= Prise d'origine - -[[sec:Prises-d-origine]] (((Prise d'origine))) - -== La prise d'origine - -La prise d'origine semble assez simple, il suffit de déplacer chaque -axe à un emplacement connu et de positionner l'ensemble des variables -internes de LinuxCNC en conséquence. Toutefois, les machines étant différentes -les unes des autres, la prise d'origine est maintenant devenue assez complexe. - -== Séquences de prise d'origine - -Il existe quatre séquences de prise d'origine possibles. Elles sont définies par -le signe des variables SEARCH_VEL et LATCH_VEL ainsi que les paramètres de -configuration associés, la figure suivante donne le détail de ces séquences. - -[[fig:Sequences-de-prise-d-origine]] -.Les séquences de POM possibles - -image::images/linuxcnc-motion-homing-diag_fr.png[] - - -. Comme on le voit sur la figure, les deux conditions de base sont les suivantes: -.. La direction de recherche (SEARCH_VEL) et la direction de détection -(LATCH_VEL) sont de même signe. -.. La direction de recherche (SEARCH_VEL) et la direction de détection -(LATCH_VEL) sont de signe opposé. - -== Configuration - -Le tableau suivant détermine exactement comment se déroule la séquence de -prise d'origines définie dans la section [AXIS] du fichier ini. - -[[cap:Variables-sequences-de-POM]] -.Combinaisons des variables de la POM - -[width="80%", options="header", cols="4*^"] -|========================================================== -|Type de POM |SEARCH_VEL |LATCH_VEL |USE_INDEX -|Immediate |0 |0 |NON -|Index-seul |0 |nonzero |OUI -|Contact-seul |nonzero |nonzero |NO -|Contact et Index |nonzero |nonzero |OUI -|========================================================== - -[NOTE] -Toute autre combinaison produira une erreur. - -=== Vitesse de recherche (HOME_SEARCH_VEL) (((Vitesse de recherche du contact d'origine))) - -Vitesse de la phase initiale de prise d'origine, pendant la recherche du -contact d'origine machine. Une valeur différente de zéro indique à LinuxCNC -la présence d'un contact d'origine machine. LinuxCNC va alors commencer par -vérifier si ce contact est déjà attaqué. Si oui, il le dégagera à la -vitesse établie par _HOME_SEARCH_VEL_, la direction du dégagement sera -de signe opposé à celui de _HOME_SEARCH_VEL_. Puis, il va revenir vers -le contact en se déplaçant dans la direction spécifiée par le signe de -_HOME_SEARCH_VEL_ et à la vitesse déterminée par sa valeur absolue. -Quand le contact d'origine machine est détecté, le mobile s'arrête -aussi vite que possible, il y aura cependant toujours un certain dépassement -dû à l'inertie et dépendant de la vitesse. Si celle-ci est trop élevée, le -mobile peut dépasser suffisamment le contact pour aller attaquer un -fin de course de limite d'axe, voir même aller se crasher dans une butée -mécanique. À l'opposé, si _HOME_SEARCH_VEL_ est trop basse, la prise -d'origine peut durer très longtemps. - -Une valeur égale à zéro indique qu'il n'y a pas de contact d'origine -machine, dans ce cas, les phases de recherche de ce contact seront -occultées. La valeur par défaut est zéro. - -=== Vitesse de détection (HOME_LATCH_VEL) (((Vitesse de détection du contact d'origine))) - -Spécifie la vitesse et la direction utilisée par le mobile pendant la -dernière phase de la prise d'origine, c'est la recherche précise du -contact d'origine machine, si il existe et de l'emplacement de -l'impulsion d'index, si elle est présente. Cette vitesse est plus lente -que celle de la phase de recherche initiale, afin d'améliorer la précision. -Si _HOME_SEARCH_VEL_ et _HOME_LATCH_VEL_ sont de mêmes signes, la phase de -recherche précise s'effectuera dans le même sens que la phase de -recherche initiale. Dans ce cas, le mobile dégagera d'abord le contact -en sens inverse avant de revenir vers lui à la vitesse définie ici. -L'acquisition de l'origine machine se fera sur la première -impulsion de changement d'état du contact. Si _HOME_SEARCH_VEL_ et -_HOME_LATCH_VEL_ sont de signes opposés, la phase de recherche précise -s'effectuera dans le sens opposé à celui de la recherche initiale. Dans -ce cas, LinuxCNC dégagera le contact à la vitesse définie ici. L'acquisition -de l'origine machine se fera sur la première impulsion de -changement d'état du contact lors de son dégagement. Si -_HOME_SEARCH_VEL_ est à zéro, signifiant qu'il n'y a pas de contact et -que _HOME_LATCH_VEL_ et différente de zéro, le mobile continuera -jusqu'à la prochaine impulsion d'index, l'acquisition de l'origine machine -se fera à cet position. Si _HOME_SEARCH_VEL_ est différent de zéro et - que _HOME_LATCH_VEL_ est égale à zéro, c'est une cause d'erreur, -l'opération de prise d'origine échouera. La valeur par défaut est zéro. - -=== HOME_IGNORE_LIMITS (((HOME IGNORE LIMITS))) - -Peut contenir les valeurs YES ou NO. Cette variable détermine si LinuxCNC -doit ignorer les fins de course de limites d'axe. Certaines machines -n'utilisent pas un contact d'origine séparé, à la place, elles -utilisent un des interrupteurs de fin de course comme contact -d'origine. Dans ce cas, LinuxCNC doit ignorer l'activation de cette limite -de course pendant la séquence de prise d'origine. La valeur par défaut -de ce paramètre est NO. - -=== HOME_USE_INDEX (((HOME USE INDEX))) - -Spécifie si une impulsion d'index doit être prise en compte (cas de -règles de mesure ou de codeurs de positions). Si cette variable est -vraie (HOME_USE_INDEX = YES), LinuxCNC fera l'acquisition de l'origine -machine sur le premier front de l'impulsion d'index. Si elle est fausse -(=NO), LinuxCNC fera l'acquisition de l'origine sur le premier front produit -par le contact d'origine (dépendra des signes de _HOME_SEARCH_VEL_ et -_HOME_LATCH_VEL_). La valeur par défaut est NO. - -=== HOME_OFFSET (((HOME OFFSET))) - -Contient l'emplacement du point d'origine ou de l'impulsion d'index, -en coordonnées relatives. Il peut aussi être traité comme le décalage -entre le point d'origine machine et le zéro de l'axe. A la détection du point -d'origine ou de l'impulsion d'origine, LinuxCNC ajuste les coordonnées de l'axe -à la valeur de _HOME_OFFSET_. La valeur par défaut est zéro. - -=== Position de l'origine (HOME) (((HOME))) - -C'est la position sur laquelle ira le mobile à la fin de la séquence -de prise d'origine machine. Après avoir détecté le contact d'origine, -avoir ajusté les coordonnées de ce point à la valeur de _HOME_OFFSET_, -le mobile va se déplacer sur la valeur de _HOME_, c'est le point final -de la séquence de prise d'origine. La valeur par défaut est zéro. -Notez que même si ce paramètre est égal à la valeur de _HOME_OFFSET_, -le mobile dépassera très légérement la position du point d'aquisition de -l'origine machine avant de s'arrêter. Donc il y aura toujours un petit -mouvement à ce moment là (sauf bien sûr si _HOME_SEARCH_VEL_ est à -zéro, et que toute la séquence de POM a été sautée). Ce mouvement final -s'effectue en vitesse de déplacement rapide. Puisque l'axe est -maintenant référencé, il n'y a plus de risque pour la machine, un -mouvement rapide est donc la façon la plus rapide de finir la séquence -de prise d'origine. - -=== HOME_IS_SHARED (((HOME IS SHARED))) - -Si cet axe n'a pas un contact d'origine séparé des autres, mais -plusieurs contacts câblés sur la même broche d'entrée, mettre cette -valeur à 1 pour éviter de commencer la prise d'origine si un de ces -contacts partagés est déjà activé. Mettez cette valeur à 0 pour -permettre la prise d'origine même si un contact est déjà attaqué. - -=== HOME_SEQUENCE (((HOME SEQUENCE))) - -Utilisé pour définir l'ordre des séquences _HOME_ALL_ de prise -d'origine des différents axes (exemple: la POM de l'axe X ne pourra se -faire qu'après celle de Z). La POM d'un axe ne pourra se faire qu'après -tous les autres en ayant la valeur la plus petite de _HOME_SEQUENCE_ et -après qu'ils soient déjà tous à _HOME_OFFSET_. Si deux axes ont la même -valeur de _HOME_SEQUENCE_, leurs POM s'effectueront simultanément. Si -_HOME_SEQUENCE_ est égale à -1 ou n'est pas spécifiée, l'axe ne sera pas -compris dans la séquence _HOME_ALL_. Les valeurs de _HOME_SEQUENCE_ -débutent à 0, il ne peut pas y avoir de valeur inutilisée. - -=== VOLATILE_HOME (((VOLATILE HOME))) - -Si ce paramètre est vrai, l'origine machine de cet axe sera effacée -chaque fois que la machine sera mise à l'arrêt. Cette variable est -appropriée pour les axes ne maintenant pas la position si le moteur -est désactivé (gravité de la broche par exemple). -Certains moteurs pas à pas, en particulier fonctionnant en micropas, -peuvent se comporter de la sorte. - -=== LOCKING_INDEXER (((Verrouillage Indexeur))) - -Si cet axe comporte un verrouillage d'indexeur rotatif, celui-ci -sera déverrouillé avant le début de la séquence de prise d'origine, -et verrouillé à la fin. - diff --git a/docs/src/config/lathe_config.txt b/docs/src/config/lathe_config.txt deleted file mode 100644 index 4f0d0324c84..00000000000 --- a/docs/src/config/lathe_config.txt +++ /dev/null @@ -1,35 +0,0 @@ -= Lathe Configuration - -[[cha:lathe-configuration]] (((Lathe Configuration))) - -== Default Plane - -When LinuxCNC's interpreter was first written, it was designed for mills. -That is why the default plane is XY (G17). A normal lathe only uses the -XZ plane (G18). To change the default plane place the following line in -the .ini file in the RS274NGC section. - ----- -RS274NGC_STARTUP_CODE = G18 ----- - -The above can be overwritten in a g code program so always set important things -in the preamble of the g code file. - -== INI Settings - -The following .ini settings are needed for lathe mode in Axis in addition to -or replacing normal settings in the .ini file. - ----- -[DISPLAY] -DISPLAY = axis -LATHE = 1 -[TRAJ] -AXES = 3 -COORDINATES = X Z -[AXIS_0] -... -[AXIS_2] -... ----- diff --git a/docs/src/config/lathe_config_es.txt b/docs/src/config/lathe_config_es.txt deleted file mode 100644 index 41dee0c6c5d..00000000000 --- a/docs/src/config/lathe_config_es.txt +++ /dev/null @@ -1,48 +0,0 @@ -= Lathe Configuration - -[[cha:lathe-configuration]] (((Lathe Configuration))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Default Plane - -When LinuxCNC's interpreter was first written, it was designed for mills. -That is why the default plane is XY (G17). A normal lathe only uses the -XZ plane (G18). To change the default plane place the following line in -the .ini file in the RS274NGC section. - ----- -RS274NGC_STARTUP_CODE = G18 ----- - -The above can be overwritten in a g code program so always set important things -in the preamble of the g code file. - -== INI Settings - -The following .ini settings are needed for lathe mode in Axis in addition to -or replacing normal settings in the .ini file. - ----- -[DISPLAY] -DISPLAY = axis -LATHE = 1 -[TRAJ] -AXES = 3 -COORDINATES = X Z -[AXIS_0] -... -[AXIS_2] -... ----- diff --git a/docs/src/config/lathe_config_fr.txt b/docs/src/config/lathe_config_fr.txt deleted file mode 100644 index e0b66d6fff8..00000000000 --- a/docs/src/config/lathe_config_fr.txt +++ /dev/null @@ -1,39 +0,0 @@ -:lang: fr -:toc: - -= Tours - -[[cha:Configuration-tour]] (((Configuration tour))) - -== Plan par défaut - -Quand l'interpréteur de LinuxCNC à été créé, il à été écrit pour les -fraiseuses. C'est pourquoi le plan par défaut est le plan XY (G17). Sur -un tour standard on utilise seulement les axes du plan XZ (G18). Pour -changer le plan par défaut d'un tour, mettez la ligne suivante dans la -section RS274NGC du fichier ini. - ----- -RS274NGC_STARTUP_CODE = G18 ----- - -La ligne de commande ci-dessus peut être remplacées par des G codes placés -dans le préambule du programme G-code. - -== Réglages INI - -Les réglages du fichier .ini suivants sont nécessaires dans Axis en mode tour, -en remplacement ou ajout au fichier .ini normal. - ----- -[DISPLAY] -DISPLAY = axis -LATHE = 1 -[TRAJ] -AXES = 3 -COORDINATES = X Z -[AXIS_0] -... -[AXIS_2] -... ----- diff --git a/docs/src/config/linuxcnc2hal_fr.txt b/docs/src/config/linuxcnc2hal_fr.txt deleted file mode 100644 index 0464c259f62..00000000000 --- a/docs/src/config/linuxcnc2hal_fr.txt +++ /dev/null @@ -1,471 +0,0 @@ -:lang: fr -:toc: - -= LinuxCNC et HAL - -[[cha:LinuxCNC-et-HAL]] -(((LinuxCNC et HAL))) - -Voir également la man page _motion(9)_. - -[[sec:Motion]] -== motion (temps réel) -(((Motion))) - -Ces pins et paramètres sont créés par le module temps réel _motmod_. -Ce module fourni une interface vers HAL pour le planificateur de mouvements de - LinuxCNC. En gros, motmod prends dans une liste de points de cheminement -et génère un flux de positions respectant les limites de contrainte des -articulations. Ce flux sera reçu simultanément par tous les pilotes de moteurs. - -Optionnellement le nombre d'E/S numériques est fixé avec _num_dio_. -Le nombre d'E/S analogiques est fixé avec _num_aio_. Le nombre par défaut est 4 -de chaque. - -Les noms de pin commençant par _axis_ sont actuellement des valeurs -d'articulations, mais les pins et les paramètres sont également appelés _axis.N_. -Ils sont lus et mis à jour par la fonction _motion-controller_. - -_motion_ est chargé par la commande _motmod_. -La cinématique doit être chargée avant motion. - ----- -loadrt motmod [base_period_nsec=period] [servo_period_nsec=period] \ -[traj_period_nsec=period] [num_joints=[0-9] ([num_dio=1-64] num_aio=1-16])] ----- - -* _base_period_nsec = 50000_ - période de _Base_ des tâches, en nanosecondes. - C'est le _thread_ le plus rapide de la machine. - -[NOTE] -Sur les systèmes à base de servomoteurs, il n'y a généralement aucune raison -d'avoir une valeur _base_period_nsec_ inférieure à celle de _servo_period_nsec_. -Sur les machines avec une génération de pas logicielle, la valeur de -_base_period_nsec_ détermine le nombre maximum de pas par seconde. En l'absence -de la nécessité d'une grande durée de pas ou d'un grand écart entre pas, le -taux maximum de pas est de un pas par _base_period_nsec_. Ainsi, la -_base_period_nsec_ ci-dessus donnera un taux maximum absolu de 20000 pas -par seconde. 50000ns (50 µs) est une valeur assez prudente. La plus petite -valeur utilisable est relative au résultat du test de latence, à la -longueur de pas nécessaire et à la vitesse du processeur. -Choisir une _base_period_nsec_ trop basse peut entrainer l'arrivée du message -"Unexpected real time delay" ou "délai temps réel inattendu", le blocage de la -machine ou son redémarrage spontané. - -* _servo_period_nsec = 1000000_ - C'est la période de la tâche _Servo_ en - nanosecondes. Cette valeur doit être arrondie à un entier multiple de - _base_period_nsec_. Cette période est utilisée même sur les systèmes à - moteurs pas à pas. -+ -C'est la vitesse à laquelle sont calculées les nouvelles positions des moteurs, -que l'erreur de suivi est calculée, que les valeurs de sortie des PID sont -rafraichies et ainsi de suite. Les valeurs par défaut conviennent pour la -plupart des systèmes. C'est le taux de rafraichissement du planificateur de -mouvement de bas niveau. - -* _traj_period_nsec = 100000_ - C'est la période, en nanosecondes, du - planificateur de mouvement. Cette valeur doit être arrondie à un entier - multiple de _servo_period_nsec_. Excepté pour les machines ayant une - cinématique particulière (ex: hexapodes) cette valeur n'a pas de raison - d'être supérieure à celle de _servo_period_nsec_. - -=== Options - -Si le nombre d'entrées/sorties numériques demandées est supérieur à la valeur -par défaut de 4, il est possible d'en ajouter jusqu'à 64 en utilisant -l'option num_dio au chargement de motmod. - -Si le nombre d'entrées/sorties analogiques demandées est supérieur à la -valeur par défaut de 4, il est possible d'en ajouter jusqu'à 16 en utilisant -l'option num_aio au chargement de motmod. - -=== Pins (((motion (hal pins)))) - -motion.adaptive-feed:: - (float, in) Quand la vitesse est placée en mode adaptatif avec - _M52 P1_ la vitesse commandée est multipliée par cette valeur. Cet - effet est - multiplicatif avec _motion.feed-hold_ et la valeur du correcteur de - vitesse du niveau NML. - -motion.analog-in-00:: - (float, in) Ces pins (00, 01, 02, 03 ou plus si configurées) sont - contrôlées par _M66_. - -motion.analog-out-00:: - (float, out) Ces pins (00, 01, 02, 03 ou plus si configurées) sont contrôlées par _M67_ ou _M68_. - -motion.coord-error:: - (bit, out) TRUE quand le mouvement est en erreur, ex: dépasser une - limite logicielle. - -motion.coord-mode:: - (bit, out) TRUE quand le mouvement est en _mode coordonnées_ par - opposistion au _mode téléopération_. - -motion.current-vel:: - (float, out) La vitesse courante de l'outil. - -motion.digital-in-00:: - (bit, in) Ces pins (00, 01, 02, 03 ou plus si configurées) sont contrôlées par _M62_ à _M65_. - -motion.digital-out-00:: - (bit, out) Ces pins (00, 01, 02, 03 ou plus si configurées) sont controlées par _M62_ à _M65_. - -motion.distance-to-go:: - (float, out) Distance restante pour terminer le mouvement courant. - -motion.enable:: - (bit, in) Si ce bit devient FALSE, les mouvements s'arrêtent, la - machine est placée dans l'état “machine arrêtée†et un message est - affiché pour l'opérateur. En fonctionnement normal, ce bit devra être - mis TRUE. - -motion.feed-hold:: - (bit, in) Quand la vitesse est placée en mode arrêt contrôlé avec - _M53 P1_ et que ce bit est TRUE, la vitesse est fixée à 0. - -motion.motion-inposition:: - (bit, out) TRUE si la machine est en position. - -motion.motion-enabled:: - (bit, out) TRUE quand l'état de la machine est _machine on_. - -motion.on-soft-limit:: - (bit, out) TRUE quand la machine est sur une limite logicielle. - -motion.probe-input:: - (bit, in) _G38.x_ utilise la valeur de cette pin pour déterminer - quand la sonde de mesure a touché. TRUE le contact de la sonde est fermé - (touche), FALSE le contact de la sonde est ouvert. - -motion.program-line:: - (s32, out) La ligne en cours d'exécution pendant le déroulement du programme. - Zéro si pas en marche ou entre deux lignes, pendant le changement de pas de programme. - -motion.requested-vel:: - (float, out) La vitesse courante requise en unités utilisateur par seconde selon le réglage F=n du fichier G-code. Les correcteurs de vitesse et autres ajustements ne s'appliquent pas à cette pin. - -motion.spindle-at-speed:: - (bit, in) Les mouvements passent en pause tant que cette pin est TRUE, - sous les conditions suivantes: avant le premier mouvement d'avance - suivant chaque démarrage de broche ou changement de vitesse; après le - démarrage de tout enchainement de mouvements avec broche synchronisée; - et si en mode CSS, à chaque transition avance rapide -> avance travail. - Cette entrée peut être utilisée pour s'assurer que la broche a atteint - sa vitesse, avant de lancer un mouvement d'usinage. Elle peut également - être utilisée sur un tour travaillant en mode CSS, au passage d'un - grand diamètre à un petit, pour s'assurer que la vitesse a été - suffisamment réduite avant la prise de passe sur le petit diamètre et - inversement, lors du passage d'un petit diamètre vers un grand, pour - s'assurer que la vitesse a été suffisamment augmentée. Beaucoup de - variateurs de fréquence disposent d'une sortie _vitesse atteinte_. - Sinon, il est facile de générer ce signal avec le composant _near_, par - comparaison entre la vitesse de broche demandée et la vitesse actuelle. - -motion.spindle-brake:: - (bit, out) TRUE quand le frein de broche doit être activé. - -motion.spindle-forward:: - (bit, in) TRUE quand la broche doit tourner en sens horaire. - -motion.spindle-index-enable:: - (bit, I/O) Pour les mouvements avec broche synchronisée, ce signal - doit être raccordé à la pin _index-enable_ du codeur de broche. - -motion.spindle-on:: - (bit, out) TRUE quand la broche doit tourner. - -motion.spindle-reverse:: - (bit, out) TRUE quand la broche doit tourner en sens anti-horaire. - -motion.spindle-revs:: - (float, in) Pour le bon fonctionnement des mouvements avec broche - synchronisée, ce signal doit être raccordé à la broche _position_ du - codeur de broche. La position donnée par le codeur de broche doit être - étalonnée pour que _spindle-revs_ augmente de 1.0 pour chaque tour de - broche dans le sens horaire (_M3_). - -motion.spindle-speed-in:: - (float, in) Donne la vitesse actuelle de rotation de la broche - exprimée en tours par seconde. Elle est utilisée pour les mouvements en - unités par tour (_G95_). Si le pilote du codeur de broche ne dispose pas - d'une sortie _vitesse_, il est possible d'en générer une en passant la - position de la broche au travers d'un composant ddt. Si la machine n'a pas de - codeur de broche, il est possible d'utiliser _motion.spindle-speed-out-rps_. - -motion.spindle-speed-out:: - (float, out) Consigne de vitesse de rotation de la broche, exprimée en - tours par minute. Positive pour le sens horaire (_M3_), négative pour le - sens anti-horaire (_M4_). - -motion.spindle-speed-out-rps:: - (float, out) Vitesse de rotation broche commandée tours par seconde. Valeur positive - pour le sens horaire (_M3_), valeur négative pour le sens anti-horaire (_M4_). - -motion.teleop-mode:: - (bit, out) TRUE quand motion est en _mode téléopération_, par opposition au - _mode coordonné_. - -motion.tooloffset.x:: à motion.tooloffset.w:: - (float, out; un par axe) montre l'offset d'outil courant. Il peut provenir de la - table d'outils (_G43 actif_), ou du G-code (_G43.1 actif_) - -=== Paramètres - -Beaucoup de ces paramètres servent d'aide au déboguage et sont sujets -aux changements ou au retrait à tout moment. - -motion-command-handler.time:: - (s32, RO) - -motion-command-handler.tmax:: - (s32, RW) - -motion-controller.time:: - (s32, RO) - -motion-controller.tmax:: - (s32, RW) - -motion.debug-bit-0:: - (bit, RO) Utilisé pour le déboguage. - -motion.debug-bit-1:: - (bit, RO) Utilisé pour le déboguage. - -motion.debug-float-0:: - (float, RO) Utilisé pour le déboguage. - -motion.debug-float-1:: - (float, RO) Utilisé pour le déboguage. - -motion.debug-float-2:: - (float, RO) Utilisé pour le déboguage. - -motion.debug-float-3:: - (float, RO) Utilisé pour le déboguage. - -motion.debug-s32-0:: - (s32, RO) Utilisé pour le déboguage. - -motion.debug-s32-1:: - (s32, RO) Utilisé pour le déboguage. - -motion.servo.last-period:: - Le nombre de cycle du processeur entre les invoquations du thread - servo. Typiquement, ce nombre divisé par la vitesse du processeur donne - un temps en secondes. Il peut être utilisé pour determiner si le - contrôleur de mouvement en temps réel respecte ses contraintes de - timing. - -motion.servo.last-period-ns:: - (float, RO) - -motion.servo.overruns:: - (u32, RW) - En voyant de grandes différences entre les valeurs successives de - _motion.servo.last-period_ , le contrôleur de mouvement peut - déterminer qu'il a échoué dans le respect de ses contraintes de timing. - Chaque fois qu'une erreur est détectée, cette valeur est incrémentée. - -=== Fonctions - -Généralement, ces fonctions sont toutes les deux ajoutées à -servo-thread dans l'ordre suivant: - -motion-command-handler:: - Processus des commandes de mouvement provenant de l'interface - utilisateur. - -motion-controller:: - Lance le contrôleur de mouvement de LinuxCNC. - -== axis.N (temps réel) - -Ces pins et paramètres sont créés par le module temps réel _motmod_. -Ce sont en fait des valeurs d'articulations, mais les pins et les -paramètres sont toujours appelés _axis.N_.footnote:[Dans une machine à -_cinématique triviale_, il y a correspondance une -pour une, entre les articulations et les axes. -Note Du Traducteur: nous utilisons dans cette traduction le terme _axe_, -dans le cas d'une cinématique non triviale il devra être remplacé par -le terme _articulation_ (joint).] -Ils sont lus et mis à jour par la fonction _motion-controller_. - -=== Pins (((axis (hal pins)))) - -axis.N.active:: - TRUE quand cet axe est actif. - -axis.N.amp-enable-out:: - (bit, out) TRUE si l'ampli de cet axe doit être activé. - -axis.N.amp-fault-in:: - (bit, in) Doit être mis TRUE si une erreur externe est détectée sur - l'ampli de cet axe. - -axis.N.backlash-corr:: - (float, out) - -axis.N.backlash-filt:: - (float, out) - -axis.N.backlash-vel:: - (float, out) - -axis.N.coarse-pos-cmd:: - (float, out) - -axis.N.error:: - (bit, out) - -axis.N.f-error:: - (float, out) - -axis.N.f-error-lim:: - (float, out) - -axis.N.f-errored:: - (bit, out) - -axis.N.faulted:: - (bit, out) - -axis.N.free-pos-cmd:: - (float, out) - -axis.N.free-tp-enable:: - (bit, out) - -axis.N.free-vel-lim:: - (float, out) - -axis.N.home-sw-in:: - (bit, in) Doit être mis TRUE si le contact d'origine de cet axe est - activé. - -axis.N.homed:: - (bit, out) - -axis.N.homing:: - (bit, out) TRUE si la prise d'origine de cette axe est en cours. - -axis.N.in-position:: - TRUE si cet axe, utilisant le _free planner_, a atteint un arrêt. - -axis.N.index-enable:: - (bit, I/O) Doit être reliée à la broche _index-enable_ du codeur de - cet axe pour activer la prise d'origine sur l'impulsion d'index. - -axis.N.jog-counts:: - (s32, in) Connection à la broche _counts_ d'un codeur externe utilisé - comme manivelle. - -axis.N.jog-enable:: - (bit, in) Quand elle est TRUE (et en mode manuel), tout changement - dans _jog-counts_ se traduira par un mouvement. Quand elle est FALSE, - _jog-counts_ sera ignoré. - -axis.N.jog-scale:: - (float, in) Fixe la distance, en unités machine, du déplacement pour - chaque évolution de _jog-counts_. - -axis.N.jog-vel-mode:: - (bit, in) Quand elle est FALSE (par défaut), la manivelle fonctionne - en mode position. L'axe se déplace exactement selon l'incrément de jog - sélectionné pour chaque impulsion, sans s'occuper du temps que prendra - le mouvement. Quand elle est TRUE, la manivelle fonctionne en mode - vitesse. Le mouvement s'arrête quand la manivelle s'arrête, même si le - mouvement commandé n'est pas achevé. - -axis.N.joint-pos-cmd:: - (float, out) La position commandée de l'articulation (par opposition à celle du moteur). - Ca peut être un écart entre les positions articulation et moteur. Par exemple; - la procédure de prise d'origine fixe cet écart. - -axis.N.joint-pos-fb:: - (float, out) Le retour de position de l'articulation (par opposition à celui du moteur). - -axis.N.joint-vel-cmd:: - (float, out) - -axis.N.kb-jog-active:: - (bit, out) - -axis.N.motor-pos-cmd:: - (float, out) Position commandée pour cette articulation. - -axis.N.motor-pos-fb:: - (float, in) Position actuelle de cette articulation. - -axis.N.neg-hard-limit:: - (bit, out) - -axis.N.pos-lim-sw-in:: - (bit, in) Doit être mis TRUE si le fin de course de limite positive de - cette articulation est activé. - -axis.N.pos-hard-limit:: - (bit, out) - -axis.N.neg-lim-sw-in:: - (bit, in) Doit être mis TRUE si le fin de course de limite négative de - cette articulation est activé. - -axis.N.wheel-jog-active:: - (bit, out) - -=== Paramètres - -axis.N.home-state:: - Reflète l'étape de la prise d'origine en cours actuellement. - -== iocontrol (espace utilisateur) - -Ces pins sont créées par le contrôleur d'entrées/sorties de l'espace -utilisateur, habituellement appelé _io_. - -=== Pins (((iocontrol (HAL pins)))) - -iocontrol.0.coolant-flood:: - (bit, out) TRUE quand l'arrosage est demandé. - -iocontrol.0.coolant-mist:: - (bit, out) TRUE quand le brouillard est demandé. - -iocontrol.0.emc-enable-in:: - (bit, in) Doit être mise FALSE quand un arrêt d'urgence externe est - activé. - -iocontrol.0.lube:: - (bit, out) TRUE quand le graissage centralisé est commandé. - -iocontrol.0.lube_level:: - (bit, in) Doit être mise TRUE quand le niveau d'huile est correct. - -iocontrol.0.tool-change:: - (bit, out) TRUE quand un changement d'outil est demandé. - -iocontrol.0.tool-changed:: - (bit, in) Doit être mise TRUE quand le changement d'outil est terminé. - -iocontrol.0.tool-number:: - (s32, out) Numéro de l'outil courant. - -iocontrol.0.tool-prep-number:: - (s32, out) Numéro du prochain outil, donné par le mot *T* selon RS274NGC. - -iocontrol.0.tool-prepare:: - (bit, out) TRUE quand une préparation d'outil est demandée. - -iocontrol.0.tool-prepared:: - (bit, in) Doit être mise TRUE quand une préparation d'outil est - terminée. - -iocontrol.0.user-enable-out:: - (bit, out) FALSE quand un arrêt d'urgence interne est activé. - -iocontrol.0.user-request-enable:: - (bit, out) TRUE quand l'arrêt d'urgence est relâché. - diff --git a/docs/src/config/pncconf.txt b/docs/src/config/pncconf.txt deleted file mode 100644 index e2701f15528..00000000000 --- a/docs/src/config/pncconf.txt +++ /dev/null @@ -1,944 +0,0 @@ -= Mesa Configuration Wizard - -[[cha:PNCconf-wizard]] -(((Point n Click Configuration Wizard))) -(((Mesa Configuration Wizard))) - -PNCconf is made to help build configurations that utilize specific Mesa -'Anything I/O' products. - -It can configure closed loop servo systems or hardware stepper systems. -It uses a similar 'wizard' approach as Stepconf (used for software stepping, -parallel port driven systems). - -PNCconf is still in a development stage (Beta) so there are some bugs and - lacking features. -Please report bugs and suggestions to the LinuxCNC forum page or mail-list. - -There are two trains of thought when using PNCconf: - -One is to use PNCconf to always configure your system - if you decide to change -options, reload PNCconf and allow it to configure the new options. This will -work well if your machine is fairly standard and you can use custom files to add - non standard features. PNCconf tries to work with you in this regard. - -The other is to use PNCconf to build a config that is close to what you want and - then hand edit everything to tailor it to your needs. This would be the choice -if you need extensive modifications beyond PNCconf's scope or just want to -tinker with / learn about LinuxCNC - -You navigate the wizard pages with the forward, back, and cancel buttons there -is also a help button that gives some help information about the pages, diagrams - and an output page. - -TIP: PNCconf's help page should have the most up to date info and has additional - details. - -[float] -Step by Step Instructions -========================= - -.PnCConf Splash - -image::images/pncconf-splash.png[] - -== Create or Edit - -This allows you to select a previously saved configuration or create a new one. -If you pick 'Modify a configuration' and then press next a file selection box -will show. Pncconf preselects your last saved file. Choose the the config you -wish to edit. It also allows you to select desktop shortcut / launcher options. -A desktop shortcut will place a folder icon on the desktop that points to your -new configuration files. Otherwise you would have to look in your home folder -under emc2/configs. - -A Desktop launcher will add an icon to the desktop for starting your config -directly. You can also launch it under Applications/cnc/emc2 and selecting your -config name. - -== Basic Machine Information - -.PnCConf Basic - -image::images/pncconf-basic.png[] - -Machine Basics:: -If you use a name with spaces PNCconf will replace the spaces with underscore -(as a loose rule Linux doesn't like spaces in names) -Pick an axis configuration - this selects what type of machine you are building -and what axes are available. The Machine units selector allows data entry of -metric or imperial units in the following pages. - -TIP: Defaults are not converted when using metric so make sure they are sane -values! - -Computer Response Time:: - -The servo period sets the heart beat of the system. Latency refers to the amount -of time the computer can be longer then that period. Just like a railroad, LinuxCNC -requires everything on a very tight and consistent time line or bad things -happen. LinuxCNC requires and uses a 'real time' operating system, which just means -it has a low latency ( lateness ) response time when LinuxCNC requires its -calculations and when doing LinuxCNCs calculations it cannot be interrupted by lower -priority requests (such as user input to screen buttons or drawing etc). -+ -Testing the latency is very important and a key thing to check early. Luckily by -using the Mesa card to do the work that requires the fastest response time -(encoder counting and PWM generation) we can endure a lot more latency then if -we used the parallel port for these things. The standard test in LinuxCNC is checking -the BASE period latency (even though we are not using a base period). If you -press the 'test base period jitter' button, this launches the latency test -window ( you can also load this directly from the applications/cnc panel ). The -test mentions to run it for a few minutes but the longer the better. consider 15 -minutes a bare minimum and overnight even better. At this time use the computer -to load things, use the net, use USB etc we want to know the worst case -latency and to find out if any particular activity hurts our latency. We need to -look at base period jitter. -Anything under 20000 is excellent - you could even do fast software stepping -with the machine -20000 - 50000 is still good for software stepping and fine for us. -50000 - 100000 is really not that great but could still be used with hardware -cards doing the fast response stuff. -So anything under 100000 is useable to us. -If the latency is disappointing or you get a bad hiccup periodically you may -still be able to improve it. - -TIP: There is a user compiled list of equipment and the -latency obtained on the LinuxCNC wiki : -http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Latency-Test -Please consider adding your info to the list. Also on that page are links to -info about fixing some latency problems. - -Now we are happy with the latency and -must pick a servo period. In most cases a servo period of 1000000 ns is -fine ( that gives a 1 kHz servo calculation rate - 1000 calculations a second) -if you are building a closed loop servo system that controls torque (current) -rather then velocity (voltage) a faster rate would be better - something like -200000 (5 kHz calculation rate). The problem with lowering the servo rate is -that it leaves less time available for the computer to do other things besides -LinuxCNC's calculations. Typically the display (GUI) becomes less responsive. You - must decide on a balance. Keep in mind that if you tune your closed loop servo -system then change the servo period you probably will need to tune them again. - -I/O Control Ports/Boards:: -PNCconf is capable of configuring machines that have up to two Mesa boards and -three parallel ports. Parallel ports can only be used for simple low speed -(servo rate) I/O. - -Mesa:: -You must choose at least one Mesa board as PNCconf will not configure the -parallel ports to count encoders or output step or PWM signals. -The mesa cards available in the selection box are based on what PNCconf finds -for firmware on the systems. There are options to add custom firmware and/or -'blacklist' (ignore) some firmware or boards using a preference file. -If no firmware is found PNCconf will show a warning and use internal sample -firmware - no testing will be possible. One point to note is that if you choose -two PCI Mesa cards there currently is no way to predict which card is 0 and -which is 1 - you must test - moving the cards could change their order. If you -configure with two cards both cards must be installed for tests to function. - -Parallel Port:: -Up to 3 parallel ports (referred to as parports) can be used as simple I/O. You -must set the address of the parport. You can either enter the Linux parallel -port numbering system (0,1,or 2) or enter the actual address. The address for an - on board parport is often 0x0278 or 0x0378 (written in hexadecimal) but can be -found in the BIOS page. The BIOS page is found when you first start your -computer you must press a key to enter it (such as F2). On the BIOS page you can - find the parallel port address and set the mode such as SPP, EPP, etc on some -computers this info is displayed for a few seconds during start up. For PCI -parallel port cards the address can be found by pressing the 'parport address -search' button. This pops up the help output page with a list of all the PCI -devices that can be found. In there should be a reference to a parallel port -device with a list of addresses. One of those addresses should work. Not all -PCI parallel ports work properly. Either type can be selected as 'in' (maximum -amount of input pins) or 'out' (maximum amount of output pins) - -GUI Frontend list:: -This specifies the graphical display screens LinuxCNC will use. -Each one has different option. - -AXIS - -* fully supports lathes. -* is the most developed and used frontend -* is designed to be used with mouse and keyboard -* is tkinter based so integrates PYVCP (python based virtual control - panels) naturally. -* has a 3D graphical window. -* allows VCP integrated on the side or in center tab - -TOUCHY - -* Touchy was designed to be used with a touchscreen, some minimal - physical switches and a MPG wheel. -* requires cycle-start, abort, and single-step signals and buttons -* It also requires shared axis MPG jogging to be selected. -* is GTK based so integrates GLADE VCP (virtual control panels) naturally. -* allows VCP panels integrated in the center Tab -* has no graphical window -* look can be changed with custom themes - -MINI - -* standard on OEM Sherline machines -* does not use Estop -* no VCP integration - -TkLinuxCNC - -* hi contrast bright blue screen -* separate graphics window -* no VCP integration - -== External Configuration - -This page allows you to select external controls such as for jogging or -overrides. - -.GUI External - -image::images/pncconf-external.png[] - -If you select a Joystick for jogging, You will need it always connected for LinuxCNC -to load. To use the analog sticks for useful jogging you probably need to add -some custom HAL code. MPG jogging requires a pulse generator connected to a MESA - encoder counter. Override controls can either use a pulse generator (MPG) or -switches (such as a rotary dial). External buttons might be used with a switch -based OEM joystick. - -Joystick jogging:: -Requires a custom 'device rule' to be installed in the system. This is a file -that LinuxCNC uses to connect to LINUX's device list. PNCconf will help to make this -file. -+ -'Search for device rule' will search the system for rules, you can use this to -find the name of devices you have already built with PNCconf. -+ -'Add a device rule' will allow you to configure a new device by following the -prompts. You will need your device available. -+ -'test device' allows you to load a device, see its pin names and check its -functions with halmeter. -+ -joystick jogging uses HALUI and hal_input components. - -External buttons:: -allows jogging the axis with simple buttons at a specified jog rate. Probably -best for rapid jogging. - -MPG Jogging:: -Allows you to use a Manual Pulse Generator to jog the machine's axis. -+ -MPG's are often found on commercial grade machines. They output quadrature -pulses that can be counted with a MESA encoder counter. PNCconf allows for an -MPG per axis or one MPG shared with all axis. It allows for selection of jog -speeds using switches or a single speed. -+ -The selectable increments option uses the mux16 component. This component -has options such as debounce and gray code to help filter the raw switch input. - -Overrides:: -PNCconf allows overrides of feedrates and/or spindle speed using a pulse -generator (MPG) or switches (eg. rotary). - -== GUI Configuration - -Here you can set defaults for the display screens, add virtual control panels -(VCP), and set some LinuxCNC options.. - -.GUI Configuration - -image::images/pncconf-gui.png[] - -Frontend GUI Options:: - -The default options allows general defaults to be chosen for any display screen. -+ -AXIS defaults are options specific to AXIS. If you choose size , position or -force maximize options then PNCconf will ask if it's alright to overwrite a -preference file (.axisrc). Unless you have manually added commands to this file -it is fine to allow it. Position and force max can be used to move AXIS to a -second monitor if the system is capable. -+ -Touchy defaults are options specific to Touchy. Most of Touchy's options can be -changed while Touchy is running using the preference page. Touchy uses GTK to -draw its screen, and GTK supports themes. Themes controls the basic look and -feel of a program. You can download themes from the net or edit them yourself. -There are a list of the current themes on the computer that you can pick from. -To help some of the text to stand out PNCconf allows you to override the -Themes's defaults. The position and force max options can be used to move Touchy -to a second monitor if the system is capable. - -VCP options:: - -Virtual Control Panels allow one to add custom controls and displays to the -screen. AXIS and Touchy can integrate these controls inside the screen in -designated positions. There are two kinds of VCPs - -pyVCP which uses 'Tkinter' to draw the screen and GLADE VCP that uses 'GTK' to -draw the screen. - -PyVCP:: -PyVCPs screen XML file can only be hand built. PyVCPs fit naturally in with AXIS -as they both use TKinter. -+ -HAL pins are created for the user to connect to inside their custom HAL file. -There is a sample spindle display panel for the user to use as-is or build on. -You may select a blank file that you can later add your controls 'widgets' to -or select a spindle display sample that will display spindle speed and indicate -if the spindle is at requested speed. -+ -PNCconf will connect the proper spindle display HAL pins for you. -If you are using AXIS then the panel will be integrated on the right side. -If not using AXIS then the panel will be separate 'stand-alone' from the -frontend screen. -+ -You can use the geometry options to size and move the panel, for instance to -move it to a second screen if the system is capable. If you press the 'Display -sample panel' button the size and placement options will be honoured. - -GLADE VCP:: -GLADE VCPs fit naturally inside of TOUCHY screen as they both use GTK to draw -them, but by changing GLADE VCP's theme it can be made to blend pretty well in -AXIS. (try Redmond) -+ -It uses a graphical editor to build its XML files. -HAL pins are created for the user to connect to, inside of their custom HAL -file. -+ -GLADE VCP also allows much more sophisticated (and complicated) programming -interaction, which PNCconf currently doesn't leverage. (see GLADE VCP in the -manual) -+ -PNCconf has sample panels for the user to use as-is or build on. -With GLADE VCP PNCconf will allow you to select different options on your -sample display. -+ -Under 'sample options' select which ones you would like. -The zero buttons use HALUI commands which you could edit later in the HALUI -section. -+ -Auto Z touch-off also requires the classicladder touch-off program and a probe -input selected. It requires a conductive touch-off plate and a grounded -conductive tool. For an idea on how it works see: -+ -http://wiki.linuxcnc.org/cgi-bin/wiki.pl?ClassicLadderExamples#Single_button_probe_touchoff -+ -Under 'Display Options', size, position, and force max can be used on a -'stand-alone' panel for such things as placing the screen on a second monitor if -the system is capable. -+ -You can select a GTK theme which sets the basic look and feel of the panel. -You Usually want this to match the frontend screen. -These options will be used if you press the 'Display sample button'. -With GLADE VCP depending on the frontend screen, you can select where the panel -will display. -+ -You can force it to be stand-alone or with AXIS it can be in the center or on -the right side, with Touchy it can be in the center. - -Defaults and Options:: - -* Require homing before MDI / Running -** If you want to be able to move the machine before homing uncheck - this checkbox. - -* Popup Tool Prompt -** Choose between an on screen prompt for tool changes or export standard signal - names for a User supplied custom tool changer Hal file - -* Leave spindle on during tool change: -** Used for lathes - -* Force individual manual homing - -* Move spindle up before tool change - -* Restore joint position after shutdown -** Used for non-trivial kinematics machines - -* Random position toolchangers -** Used for toolchangers that do not return the tool to the same - pocket. You will need to add custom HAL code to support toolchangers. - -== Mesa Configuration -The Mesa configuration pages allow one to utilize different firmwares. -On the basic page you selected a Mesa card here you pick the available firmware -and select what and how many components are available. - -.Mesa Configuration - -image::images/pncconf-mesa-config.png[] - -Parport address is used only with Mesa parport card, the 7i43. An onboard -parallel port usually uses 0x278 or 0x378 though you should be able to find the -address from the BIOS page. The 7i43 requires the parallel port to use the EPP -mode, again set in the BIOS page. If using a PCI parallel port the address can -be searched for by using the search button on the basic page. - -[NOTE] -Many PCI cards do not support the EPP protocol properly. - -PDM PWM and 3PWM base frequency sets the balance between ripple and linearity. -If using Mesa daughter boards the docs for the board should give recommendations - -[IMPORTANT] -It's important to follow these to avoid damage and get the best performance. - -.... -The 7i33 requires PDM and a PDM base frequency of 6 mHz -The 7i29 requires PWM and a PWM base frequency of 20 Khz -The 7i30 requires PWM and a PWM base frequency of 20 Khz -The 7i40 requires PWM and a PWM base frequency of 50 Khz -The 7i48 requires UDM and a PWM base frequency of 24 Khz -.... - -Watchdog time out is used to set how long the MESA board will wait before -killing outputs if communication is interrupted from the computer. Please -remember Mesa uses 'active low' outputs meaning that when the output pin is on, -it is low (approx 0 volts) and if it's off the output in high (approx 5 volts) -make sure your equipment is safe when in the off (watchdog bitten) state. - -You may choose the number of available components by deselecting unused ones. -Not all component types are available with all firmware. - -Choosing less then the maximum number of components allows one to gain more GPIO - pins. If using daughter boards keep in mind you must not deselect pins that the - card uses. For instance some firmware supports two 7i33 cards, If you only have - one you may deselect enough components to utilize the connector that supported -the second 7i33. Components are deselected numerically by the highest number -first then down with out skipping a number. If by doing this the components are -not where you want them then you must use a different firmware. The firmware -dictates where, what and the max amounts of the components. Custom firmware is -possible, ask nicely when contacting the LinuxCNC developers and Mesa. Using custom -firmware in PNCconf requires special procedures and is not always possible - -Though I try to make PNCconf as flexible as possible. - -After choosing all these options press the 'Accept Component Changes' button and - PNCconf will update the I/O setup pages. Only I/O tabs will be shown for -available connectors, depending on the Mesa board. - - -== Mesa I/O Setup -The tabs are used to configure the input and output pins of the Mesa boards. -PNCconf allows one to create custom signal names for use in custom HAL files. - -.Mesa I/O C2 - -image::images/pncconf-mesa-io2.png[] - -On this tab with this firmware the components are setup for a 7i33 daughter -board, usually used with closed loop servos. Note the component numbers of the -encoder counters and PWM drivers are not in numerical order. This follows the -daughter board requirements. - -.Mesa I/O C3 - -image::images/pncconf-mesa-io3.png[] - -On this tab all the pins are GPIO. Note the 3 digit numbers - they will match -the HAL pin number. GPIO pins can be selected as input or output and can be -inverted. - -.Mesa I/O C4 - -image::images/pncconf-mesa-io4.png[] - -On this tab there are a mix of step generators and GPIO. -Step generators output and direction pins can be inverted. Note that inverting a - Step Gen-A pin (the step output pin) changes the step timing. It should match -what your controller expects. - -== Parport configuration - -image::images/pncconf-parport.png[] - -The parallel port can be used for simple I/O similar to Mesa's GPIO pins. - -== Axis Configuration - -.Axis Drive Configuration - -image::images/pncconf-axis-drive.png[] - -This page allows configuring and testing of the motor and/or encoder combination -. If using a servo motor an open loop test is available, if using a stepper a -tuning test is available. - -Open Loop Test:: -An open loop test is important as it confirms the direction of the motor and -encoder. The motor should move the axis in the positive direction when the -positive button is pushed and also the encoder should count in the postie -direction. The axis movement should follow the Machinery's Handbook -footnote:["axis nomenclature" in the chapter "Numerical Control" in the -"Machinery's Handbook" published by Industrial Press.] standards or -AXIS graphical display will not make much sense. Hopefully the help page and -diagrams can help figure this out. Note that axis directions are based on TOOL -movement not table movement. There is no acceleration ramping with the open loop - test so start with lower DAC numbers. By moving the axis a known distance one -can confirm the encoder scaling. The encoder should count even without the amp -enabled depending on how power is supplied to the encoder. -+ -WARNING: If the motor and encoder do not agree on counting direction then the -servo will run away when using PID control. -+ -Since at the moment PID settings can not be tested in PNCconf the settings are -really for when you re-edit a config - enter your tested PID settings. -+ -DAC scaling, max output and offset are used to tailor the DAC output. - -Compute DAC:: -These two values are the scale and offset factors for the axis output to the -motor amplifiers. The second value (offset) is subtracted from the computed -output (in volts), and divided by the first value (scale factor), before being -written to the D/A converters. The units on the scale value are in true volts -per DAC output volts. The units on the offset value are in volts. These can be -used to linearize a DAC. -+ -Specifically, when writing outputs, the LinuxCNC first converts the desired -output in quasi-SI units to raw actuator values, e.g., volts for an amplifier - DAC. This scaling looks like: The value for scale can be obtained analytically -by doing a unit analysis, i.e., units are [output SI units]/[actuator units]. -For example, on a machine with a velocity mode amplifier such that 1 volt -results in 250 mm/sec velocity, Note that the units of the offset are in machine - units, e.g., mm/sec, and they are pre-subtracted from the sensor readings. The -value for this offset is obtained by finding the value of your output which -yields 0.0 for the actuator output. If the DAC is linearized, this offset is -normally 0.0. -+ -The scale and offset can be used to linearize the DAC as well, resulting in -values that reflect the combined effects of amplifier gain, DAC non-linearity, -DAC units, etc. To do this, follow this procedure: - -* Build a calibration table for the output, driving the DAC with a - desired voltage and measuring the result: - -.Output Voltage Measurements - -[cols="^,^",width="50%"] -|================== -|*Raw* | *Measured* -|-10 | *-9.93* -| -9 | *-8.83* -| 0 | *-0.96* -| 1 | *-0.03* -| 9 | *9.87* -| 10 | *10.07* -|================== - - -* Do a least-squares linear fit to get coefficients a, b such that meas=a*raw+b -* Note that we want raw output such that our measured result is - identical to the commanded output. This means -** cmd=a*raw+b -** raw=(cmd-b)/a -* As a result, the a and b coefficients from the linear fit can be used - as the scale and offset for the controller directly. - -MAX OUTPUT: -The maximum value for the output of the PID compensation that is written to the -motor amplifier, in volts. The computed output value is clamped to this limit. -The limit is applied before scaling to raw output units. The value is applied -symmetrically to both the plus and the minus side. - -*Tuning Test* -The tuning test unfortunately only works with stepper based systems. Again -confirm the directions on the axis is correct. Then test the system by running - the axis back and forth, If the acceleration or max speed is too high you will -lose steps. While jogging, Keep in mind it can take a while for an axis with low -acceleration to stop. Limit switches are not functional during this test. You -can set a pause time so each end of the test movement. This would allow you to -set up and read a dial indicator to see if you are loosing steps. - -*Stepper Timing* -Stepper timing needs to be tailored to the step controller's requirements. -Pncconf supplies some default controller timing or allows custom timing settings -. See http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Stepper_Drive_Timing for -some more known timing numbers (feel free to add ones you have figured out). If -in doubt use large numbers such as 5000 this will only limit max speed. - -*Brushless Motor Control* -These options are used to allow low level control of brushless motors using -special firmware and daughter boards. It also allows conversion of HALL sensors -from one manufacturer to another. It is only partially supported and will -require one to finish the HAL connections. Contact the mail-list or forum for -more help. - -.Axis Scale Calculation - -image::images/pncconf-scale-calc.png[] - -The scale settings can be directly entered or one can use the 'calculate scale' -button to assist. Use the check boxes to select appropriate calculations. Note -that 'pulley teeth' requires the number of teeth not the gear ratio. Worm turn -ratio is just the opposite it requires the gear ratio. If your happy with the -scale press apply otherwise push cancel and enter the scale directly. - - -.Axis Configuration - -image::images/pncconf-axis-config.png[] - -Also refer to the diagram tab for two examples of -home and limit switches. These are two examples of -many different ways to set homing and limits. - -IMPORTANT: It is very important to start with the axis moving in the right -direction or else getting homing right is very difficult! - -Remember positive and negative directions -refer to the TOOL not the table as per the Machinists handbook. - -.On a typical knee or bed mill -* when the TABLE moves out that is the positive Y direction -* when the TABLE moves left that is the positive X direction -* when the TABLE moves down that is the positive Z direction -* when the HEAD moves up that is the positive Z direction - -.On a typical lathe -* when the TOOL moves right, away from the chuck -* that is the positive Z direction -* when the TOOL moves toward the operator -* that is the positive X direction. Some lathes have X -* opposite (eg tool on back side), that will work fine but -* AXIS graphical display can not be made to reflect this. - -When using homing and / or limit switches -LinuxCNC expects the HAL signals to be true when -the switch is being pressed / tripped. -If the signal is wrong for a limit switch then -LinuxCNC will think the machine is on end of limit -all the time. If the home switch search logic is wrong -LinuxCNC will seem to home in the wrong direction. -What it actually is doing is trying to BACK off -the home switch. - - -Decide on limit switch location. - -Limit switches are the back up for software limits in case -something electrical goes wrong eg. servo runaway. -Limit switches should be placed so that the machine does not -hit the physical end of the axis movement. Remember the axis -will coast past the contact point if moving fast. Limit switches -should be 'active low' on the machine. eg. power runs through -the switches all the time - a loss of power (open switch) trips. -While one could wire them the other way, this is fail safe. -This may need to be inverted so that the HAL signal in LinuxCNC -in 'active high' - a TRUE means the switch was tripped. When -starting LinuxCNC if you get an on-limit warning, and axis is NOT -tripping the switch, inverting the signal is probably the -solution. (use HALMETER to check the corresponding HAL signal -eg. axis.0.pos-lim-sw-in X axis positive limit switch) - -Decide on the home switch location. - -If you are using limit switches You may as well use one as a -home switch. A separate home switch is useful if you have a long -axis that in use is usually a long way from the limit switches or -moving the axis to the ends presents problems of interference -with material. -eg a long shaft in a lathe makes it hard to home to limits with out -the tool hitting the shaft, so a separate home switch closer to the -middle may be better. -If you have an encoder with index then the home switch acts as a -course home and the index will be the actual home location. - -Decide on the MACHINE ORIGIN position. - -MACHINE ORIGIN is what LinuxCNC uses to reference all user coordinate -systems from. -I can think of little reason it would need to be in any particular -spot. There are only a few G codes that can access the -MACHINE COORDINATE system.( G53, G30 and G28 ) -If using tool-change-at-G30 option having the Origin at the tool -change position may be convenient. By convention, it may be easiest -to have the ORIGIN at the home switch. - -Decide on the (final) HOME POSITION. - -this just places the carriage at a consistent and convenient position -after LinuxCNC figures out where the ORIGIN is. - -Measure / calculate the positive / negative axis travel distances. - -Move the axis to the origin. Mark a reference on the movable -slide and the non-moveable support (so they are in line) move -the machine to the end of limits. Measure between the marks that is one -of the travel distances. Move the table to the other end of travel. -Measure the marks again. That is the other travel distance. If the ORIGIN -is at one of the limits then that travel distance will be zero. - -(machine) ORIGIN:: - The Origin is the MACHINE zero point. (not - the zero point you set your cutter / material at). - LinuxCNC uses this point to reference everything else - from. It should be inside the software limits. - LinuxCNC uses the home switch location to calculate - the origin position (when using home switches - or must be manually set if not using home switches. - -Travel distance:: - This is the maximum distance the axis can - travel in each direction. This may - or may not be able to be measured directly - from origin to limit switch. The positive and - negative travel distances should add up to the - total travel distance. - -POSITIVE TRAVEL DISTANCE:: - This is the distance the Axis travels from - the Origin to the positive travel distance or - the total travel minus the negative travel - distance. You would set this to zero if the - origin is positioned at the positive limit. - The will always be zero or a positive number. - -NEGATIVE TRAVEL DISTANCE:: - This is the distance the Axis travels from - the Origin to the negative travel distance. - or the total travel minus the positive travel - distance. You would set this to zero if the - origin is positioned at the negative limit. - This will always be zero or a negative number. - If you forget to make this negative PNCconf - will do it internally. - -(Final) HOME POSITION:: - This is the position the home sequence will - finish at. It is referenced from the Origin - so can be negative or positive depending on - what side of the Origin it is located. - When at the (final) home position if - you must move in the Positive direction to - get to the Origin, then the number will be - negative. - -HOME SWITCH LOCATION:: - This is the distance from the home switch to - the Origin. It could be negative or positive - depending on what side of the Origin it is - located. When at the home switch location if - you must move in the Positive direction to - get to the Origin, then the number will be - negative. If you set this to zero then the - Origin will be at the location of the limit - switch (plus distance to find index if used) - -Home Search Velocity:: - Course home search velocity in units per minute. - -Home Search Direction:: - Sets the home switch search direction - either negative (ie. towards negative limit switch) - or positive (ie. towards positive limit switch) - -Home Latch Velocity:: - Fine Home search velocity in units per minute - -Home Final Velocity:: - Velocity used from latch position to (final) home position - in units per minute. Set to 0 for max rapid speed - -Home latch Direction:: - Allows setting of the latch direction to the same - or opposite of the search direction. - -Use Encoder Index For Home:: - LinuxCNC will search for an encoder index pulse while in - the latch stage of homing. - -Use Compensation File:: - Allows specifying a Comp filename and type. - Allows sophisticated compensation. See Manual. - -Use Backlash Compensation:: - Allows setting of simple backlash compensation. Can - not be used with Compensation File. See Manual. - -.AXIS Help Diagram - -image::images/pncconf-diagram-lathe.png[] - -The diagrams should help to demonstrate an example of limit switches and -standard axis movement directions. -In this example the Z axis was two limit switches, the positive switch is shared - as a home switch. -The MACHINE ORIGIN (zero point) is located at the negative limit. -The left edge of the carriage is the negative trip pin and the right the -positive trip pin. -We wish the FINAL HOME POSITION to be 4 inches away from the ORIGIN on the -positive side. -If the carriage was moved to the positive limit we would measure 10 inches -between the negative limit and the negative trip pin. - -== Spindle Configuration - -If you select spindle signals then this page is available to configure spindle -control. - -TIP: Many of the option on this page will not show unless the proper option was -selected on previous pages! - -.Spindle Configuration - -image::images/pncconf-spindle-config.png[] - -This page is similar to the axis motor configuration page. - -There are some differences: - -* Unless one has chosen a stepper driven spindle there is no acceleration or -velocity limiting. -* There is no support for gear changes or ranges. -* If you picked a VCP spindle display option then spindle-at-speed scale and -filter settings may be shown. -* Spindle-at-speed allows LinuxCNC to wait till the spindle is at the requested speed -before moving the axis. This is particularly handy on lathes with constant -surface feed and large speed diameter changes. It requires either encoder -feedback or a digital spindle-at-speed signal typically connected to a VFD -drive. -* If using encoder feedback, you may select a spindle-at-speed scale setting that -specifies how close the actual speed must be to the requested speed to be -considered at-speed. -* If using encoder feedback, the VCP speed display can be erratic - the -filter setting can be used to smooth out the display. The encoder scale must be -set for the encoder count / gearing used. -* If you are using a single input for a spindle encoder you must add the line: -setp hm2_7i43.0.encoder.00.counter-mode 1 -(changing the board name and encoder number to your requirements) into a custom -HAL file. See the Hostmot2 section on encoders for more info about counter mode. - - - -== Advanced Options - -This allows setting of HALUI commands and loading of classicladder and sample -ladder programs. -If you selected GLADE VCP options such as for zeroing axis, there will be -commands showing. -See the manual about info on HALUI for using custom halcmds. -There are several ladder program options. -The Estop program allows an external ESTOP switch or the GUI frontend to throw -an Estop. It also has a timed lube pump signal. -The Z auto touch-off is with a touch-off plate, the GLADE VCP touch-off button -and special HALUI commands to set the current -user origin to zero and rapid clear. -The serial modbus program is basically a blank template program that sets up -classicladder for serial modbus. See the classicladder section in the manual. - -.Advanced Options - -image::images/pncconf-advanced.png[] - -== HAL Components - -On this page you can add additional HAL components you might need for custom -HAL files. -In this way one should not have to hand edit the main HAL file, while still -allowing user needed components. - -.HAL Components - -image::images/pncconf-hal.png[] - -The first selection is components that pncconf uses internally. -You may configure pncconf to load extra instances of the components for your -custom HAL file. - -Select the number of instances your custom file will need, pncconf will add -what it needs after them. - -Meaning if you need 2 and pncconf needs 1 pncconf will load 3 instances and use -the last one. - -Custom Component Commands:: - -This selection will allow you to load HAL components that pncconf does not use. -Add the loadrt or loadusr command, under the heading 'loading command' -Add the addf command under the heading 'Thread command'. -The components will be added to the thread between reading of inputs and writing -of outputs, in the order you write them in the 'thread command'. - -== Advanced Usage Of PNCconf - -PNCconf does its best to allow flexible customization by the user. -PNCconf has support for custom signal names, custom loading of components, -custom HAL files and custom firmware. - -There are also signal names that PNCconf always provides regardless of options -selected, for user's custom HAL files -With some thought most customizations should work regardless if you later select -different options in PNCconf. - -Eventually if the customizations are beyond the scope of PNCconf's frame work -you can use PNCconf to build a base config or use one of LinuxCNC's sample -configurations and just hand edit it to what ever you want. - -Custom Signal Names:: - -If you wish to connect a component to something in a custom HAL file write a -unique signal name in the combo entry box. Certain components will add endings -to your custom signal name: - -Encoders will add < customname > +: - -* position -* count -* velocity -* index-enable -* reset - -Steppers add: - -* enable -* counts -* position-cmd -* position-fb -* velocity-fb - -PWM add: - -* enable -* value - -GPIO pins will just have the entered signal name connected to it - -In this way one can connect to these signals in the custom HAL files and still -have the option to move them around later. - -Custom Signal Names:: - -The Hal Components page can be used to load components needed by a user for -customization. - -Loading Custom Firmware:: - -PNCconf searches for firmware on the system and then looks for the XML file that -it can convert to what it understands. These XML files are only supplied for -officially released firmware from the LinuxCNC team. To utilize custom firmware one -must convert it to an array that PNCconf understands and add its filepath -to PNCconf's preference file. By default this path searches the desktop for -a folder named custom_firmware and a file named firmware.py. - -The hidden preference file is in the user's home file, is -named .pncconf-preferences and require one to select 'show hidden files' to see -and edit it. The contents of this file can be seen when you first load PNCconf - -press the help button and look at the output page. - -Ask on the LinuxCNC mail-list or forum for info about converting custom firmware. -Not all firmware can be utilized with PNCconf. - -Custom HAL Files:: - -There are four custom files that you can use to add HAL commands to: - -* custom.hal is for HAL commands that don't have to be run after the GUI frontend -loads. It is run after the configuration-named HAL file. -* custom_postgui.hal is for commands that must be run after AXIS loads or a -standalone PYVCP display loads. -* custom_gvcp.hal is for commands that must be run after glade VCP is loaded. -* shutdown.hal is for commands to run when LinuxCNC shuts down in a controlled manner. - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/config/pncconf_es.txt b/docs/src/config/pncconf_es.txt deleted file mode 100644 index 9cd93dc760e..00000000000 --- a/docs/src/config/pncconf_es.txt +++ /dev/null @@ -1,958 +0,0 @@ -= Mesa Configuration Wizard - -[[cha:PNCconf-wizard]] -(((Point n Click Configuration Wizard))) -(((Mesa Configuration Wizard))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - - -PNCconf is made to help build configurations that utilize specific Mesa -'Anything I/O' products. - -It can configure closed loop servo systems or hardware stepper systems. -It uses a similar 'wizard' approach as Stepconf (used for software stepping, -parallel port driven systems). - -PNCconf is still in a development stage (Beta) so there are some bugs and - lacking features. -Please report bugs and suggestions to the LinuxCNC forum page or mail-list. - -There are two trains of thought when using PNCconf: - -One is to use PNCconf to always configure your system - if you decide to change -options, reload PNCconf and allow it to configure the new options. This will -work well if your machine is fairly standard and you can use custom files to add - non standard features. PNCconf tries to work with you in this regard. - -The other is to use PNCconf to build a config that is close to what you want and - then hand edit everything to tailor it to your needs. This would be the choice -if you need extensive modifications beyond PNCconf's scope or just want to -tinker with / learn about LinuxCNC - -You navigate the wizard pages with the forward, back, and cancel buttons there -is also a help button that gives some help information about the pages, diagrams - and an output page. - -TIP: PNCconf's help page should have the most up to date info and has additional - details. - -[float] -Step by Step Instructions -========================= - -.PnCConf Splash - -image::images/pncconf-splash.png[] - -== Create or Edit - -This allows you to select a previously saved configuration or create a new one. -If you pick 'Modify a configuration' and then press next a file selection box -will show. Pncconf preselects your last saved file. Choose the the config you -wish to edit. It also allows you to select desktop shortcut / launcher options. -A desktop shortcut will place a folder icon on the desktop that points to your -new configuration files. Otherwise you would have to look in your home folder -under emc2/configs. - -A Desktop launcher will add an icon to the desktop for starting your config -directly. You can also launch it under Applications/cnc/emc2 and selecting your -config name. - -== Basic Machine Information - -.PnCConf Basic - -image::images/pncconf-basic.png[] - -Machine Basics:: -If you use a name with spaces PNCconf will replace the spaces with underscore -(as a loose rule Linux doesn't like spaces in names) -Pick an axis configuration - this selects what type of machine you are building -and what axes are available. The Machine units selector allows data entry of -metric or imperial units in the following pages. - -TIP: Defaults are not converted when using metric so make sure they are sane -values! - -Computer Response Time:: - -The servo period sets the heart beat of the system. Latency refers to the amount -of time the computer can be longer then that period. Just like a railroad, LinuxCNC -requires everything on a very tight and consistent time line or bad things -happen. LinuxCNC requires and uses a 'real time' operating system, which just means -it has a low latency ( lateness ) response time when LinuxCNC requires its -calculations and when doing LinuxCNCs calculations it cannot be interrupted by lower -priority requests (such as user input to screen buttons or drawing etc). -+ -Testing the latency is very important and a key thing to check early. Luckily by -using the Mesa card to do the work that requires the fastest response time -(encoder counting and PWM generation) we can endure a lot more latency then if -we used the parallel port for these things. The standard test in LinuxCNC is checking -the BASE period latency (even though we are not using a base period). If you -press the 'test base period jitter' button, this launches the latency test -window ( you can also load this directly from the applications/cnc panel ). The -test mentions to run it for a few minutes but the longer the better. consider 15 -minutes a bare minimum and overnight even better. At this time use the computer -to load things, use the net, use USB etc we want to know the worst case -latency and to find out if any particular activity hurts our latency. We need to -look at base period jitter. -Anything under 20000 is excellent - you could even do fast software stepping -with the machine -20000 - 50000 is still good for software stepping and fine for us. -50000 - 100000 is really not that great but could still be used with hardware -cards doing the fast response stuff. -So anything under 100000 is useable to us. -If the latency is disappointing or you get a bad hiccup periodically you may -still be able to improve it. - -TIP: There is a user compiled list of equipment and the -latency obtained on the LinuxCNC wiki : -http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Latency-Test -Please consider adding your info to the list. Also on that page are links to -info about fixing some latency problems. - -Now we are happy with the latency and -must pick a servo period. In most cases a servo period of 1000000 ns is -fine ( that gives a 1 kHz servo calculation rate - 1000 calculations a second) -if you are building a closed loop servo system that controls torque (current) -rather then velocity (voltage) a faster rate would be better - something like -200000 (5 kHz calculation rate). The problem with lowering the servo rate is -that it leaves less time available for the computer to do other things besides -LinuxCNC's calculations. Typically the display (GUI) becomes less responsive. You - must decide on a balance. Keep in mind that if you tune your closed loop servo -system then change the servo period you probably will need to tune them again. - -I/O Control Ports/Boards:: -PNCconf is capable of configuring machines that have up to two Mesa boards and -three parallel ports. Parallel ports can only be used for simple low speed -(servo rate) I/O. - -Mesa:: -You must choose at least one Mesa board as PNCconf will not configure the -parallel ports to count encoders or output step or PWM signals. -The mesa cards available in the selection box are based on what PNCconf finds -for firmware on the systems. There are options to add custom firmware and/or -'blacklist' (ignore) some firmware or boards using a preference file. -If no firmware is found PNCconf will show a warning and use internal sample -firmware - no testing will be possible. One point to note is that if you choose -two PCI Mesa cards there currently is no way to predict which card is 0 and -which is 1 - you must test - moving the cards could change their order. If you -configure with two cards both cards must be installed for tests to function. - -Parallel Port:: -Up to 3 parallel ports (referred to as parports) can be used as simple I/O. You -must set the address of the parport. You can either enter the Linux parallel -port numbering system (0,1,or 2) or enter the actual address. The address for an - on board parport is often 0x0278 or 0x0378 (written in hexadecimal) but can be -found in the BIOS page. The BIOS page is found when you first start your -computer you must press a key to enter it (such as F2). On the BIOS page you can - find the parallel port address and set the mode such as SPP, EPP, etc on some -computers this info is displayed for a few seconds during start up. For PCI -parallel port cards the address can be found by pressing the 'parport address -search' button. This pops up the help output page with a list of all the PCI -devices that can be found. In there should be a reference to a parallel port -device with a list of addresses. One of those addresses should work. Not all -PCI parallel ports work properly. Either type can be selected as 'in' (maximum -amount of input pins) or 'out' (maximum amount of output pins) - -GUI Frontend list:: -This specifies the graphical display screens LinuxCNC will use. -Each one has different option. - -AXIS - -* fully supports lathes. -* is the most developed and used frontend -* is designed to be used with mouse and keyboard -* is tkinter based so integrates PYVCP (python based virtual control - panels) naturally. -* has a 3D graphical window. -* allows VCP integrated on the side or in center tab - -TOUCHY - -* Touchy was designed to be used with a touchscreen, some minimal - physical switches and a MPG wheel. -* requires cycle-start, abort, and single-step signals and buttons -* It also requires shared axis MPG jogging to be selected. -* is GTK based so integrates GLADE VCP (virtual control panels) naturally. -* allows VCP panels integrated in the center Tab -* has no graphical window -* look can be changed with custom themes - -MINI - -* standard on OEM Sherline machines -* does not use Estop -* no VCP integration - -TkLinuxCNC - -* hi contrast bright blue screen -* separate graphics window -* no VCP integration - -== External Configuration - -This page allows you to select external controls such as for jogging or -overrides. - -.GUI External - -image::images/pncconf-external.png[] - -If you select a Joystick for jogging, You will need it always connected for LinuxCNC -to load. To use the analog sticks for useful jogging you probably need to add -some custom HAL code. MPG jogging requires a pulse generator connected to a MESA - encoder counter. Override controls can either use a pulse generator (MPG) or -switches (such as a rotary dial). External buttons might be used with a switch -based OEM joystick. - -Joystick jogging:: -Requires a custom 'device rule' to be installed in the system. This is a file -that LinuxCNC uses to connect to LINUX's device list. PNCconf will help to make this -file. -+ -'Search for device rule' will search the system for rules, you can use this to -find the name of devices you have already built with PNCconf. -+ -'Add a device rule' will allow you to configure a new device by following the -prompts. You will need your device available. -+ -'test device' allows you to load a device, see its pin names and check its -functions with halmeter. -+ -joystick jogging uses HALUI and hal_input components. - -External buttons:: -allows jogging the axis with simple buttons at a specified jog rate. Probably -best for rapid jogging. - -MPG Jogging:: -Allows you to use a Manual Pulse Generator to jog the machine's axis. -+ -MPG's are often found on commercial grade machines. They output quadrature -pulses that can be counted with a MESA encoder counter. PNCconf allows for an -MPG per axis or one MPG shared with all axis. It allows for selection of jog -speeds using switches or a single speed. -+ -The selectable increments option uses the mux16 component. This component -has options such as debounce and gray code to help filter the raw switch input. - -Overrides:: -PNCconf allows overrides of feedrates and/or spindle speed using a pulse -generator (MPG) or switches (eg. rotary). - -== GUI Configuration - -Here you can set defaults for the display screens, add virtual control panels -(VCP), and set some LinuxCNC options.. - -.GUI Configuration - -image::images/pncconf-gui.png[] - -Frontend GUI Options:: - -The default options allows general defaults to be chosen for any display screen. -+ -AXIS defaults are options specific to AXIS. If you choose size , position or -force maximize options then PNCconf will ask if it's alright to overwrite a -preference file (.axisrc). Unless you have manually added commands to this file -it is fine to allow it. Position and force max can be used to move AXIS to a -second monitor if the system is capable. -+ -Touchy defaults are options specific to Touchy. Most of Touchy's options can be -changed while Touchy is running using the preference page. Touchy uses GTK to -draw its screen, and GTK supports themes. Themes controls the basic look and -feel of a program. You can download themes from the net or edit them yourself. -There are a list of the current themes on the computer that you can pick from. -To help some of the text to stand out PNCconf allows you to override the -Themes's defaults. The position and force max options can be used to move Touchy -to a second monitor if the system is capable. - -VCP options:: - -Virtual Control Panels allow one to add custom controls and displays to the -screen. AXIS and Touchy can integrate these controls inside the screen in -designated positions. There are two kinds of VCPs - -pyVCP which uses 'Tkinter' to draw the screen and GLADE VCP that uses 'GTK' to -draw the screen. - -PyVCP:: -PyVCPs screen XML file can only be hand built. PyVCPs fit naturally in with AXIS -as they both use TKinter. -+ -HAL pins are created for the user to connect to inside their custom HAL file. -There is a sample spindle display panel for the user to use as-is or build on. -You may select a blank file that you can later add your controls 'widgets' to -or select a spindle display sample that will display spindle speed and indicate -if the spindle is at requested speed. -+ -PNCconf will connect the proper spindle display HAL pins for you. -If you are using AXIS then the panel will be integrated on the right side. -If not using AXIS then the panel will be separate 'stand-alone' from the -frontend screen. -+ -You can use the geometry options to size and move the panel, for instance to -move it to a second screen if the system is capable. If you press the 'Display -sample panel' button the size and placement options will be honoured. - -GLADE VCP:: -GLADE VCPs fit naturally inside of TOUCHY screen as they both use GTK to draw -them, but by changing GLADE VCP's theme it can be made to blend pretty well in -AXIS. (try Redmond) -+ -It uses a graphical editor to build its XML files. -HAL pins are created for the user to connect to, inside of their custom HAL -file. -+ -GLADE VCP also allows much more sophisticated (and complicated) programming -interaction, which PNCconf currently doesn't leverage. (see GLADE VCP in the -manual) -+ -PNCconf has sample panels for the user to use as-is or build on. -With GLADE VCP PNCconf will allow you to select different options on your -sample display. -+ -Under 'sample options' select which ones you would like. -The zero buttons use HALUI commands which you could edit later in the HALUI -section. -+ -Auto Z touch-off also requires the classicladder touch-off program and a probe -input selected. It requires a conductive touch-off plate and a grounded -conductive tool. For an idea on how it works see: -+ -http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?ClassicLadderExamples#Single_button_probe_touchoff -+ -Under 'Display Options', size, position, and force max can be used on a -'stand-alone' panel for such things as placing the screen on a second monitor if -the system is capable. -+ -You can select a GTK theme which sets the basic look and feel of the panel. -You Usually want this to match the frontend screen. -These options will be used if you press the 'Display sample button'. -With GLADE VCP depending on the frontend screen, you can select where the panel -will display. -+ -You can force it to be stand-alone or with AXIS it can be in the center or on -the right side, with Touchy it can be in the center. - -Defaults and Options:: - -* Require homing before MDI / Running -** If you want to be able to move the machine before homing uncheck - this checkbox. - -* Popup Tool Prompt -** Choose between an on screen prompt for tool changes or export standard signal - names for a User supplied custom tool changer Hal file - -* Leave spindle on during tool change: -** Used for lathes - -* Force individual manual homing - -* Move spindle up before tool change - -* Restore joint position after shutdown -** Used for non-trivial kinematics machines - -* Random position toolchangers -** Used for toolchangers that do not return the tool to the same - pocket. You will need to add custom HAL code to support toolchangers. - -== Mesa Configuration -The Mesa configuration pages allow one to utilize different firmwares. -On the basic page you selected a Mesa card here you pick the available firmware -and select what and how many components are available. - -.Mesa Configuration - -image::images/pncconf-mesa-config.png[] - -Parport address is used only with Mesa parport card, the 7i43. An onboard -parallel port usually uses 0x278 or 0x378 though you should be able to find the -address from the BIOS page. The 7i43 requires the parallel port to use the EPP -mode, again set in the BIOS page. If using a PCI parallel port the address can -be searched for by using the search button on the basic page. - -[NOTE] -Many PCI cards do not support the EPP protocol properly. - -PDM PWM and 3PWM base frequency sets the balance between ripple and linearity. -If using Mesa daughter boards the docs for the board should give recommendations - -[IMPORTANT] -It's important to follow these to avoid damage and get the best performance. - -.... -The 7i33 requires PDM and a PDM base frequency of 6 mHz -The 7i29 requires PWM and a PWM base frequency of 20 Khz -The 7i30 requires PWM and a PWM base frequency of 20 Khz -The 7i40 requires PWM and a PWM base frequency of 50 Khz -The 7i48 requires UDM and a PWM base frequency of 24 Khz -.... - -Watchdog time out is used to set how long the MESA board will wait before -killing outputs if communication is interrupted from the computer. Please -remember Mesa uses 'active low' outputs meaning that when the output pin is on, -it is low (approx 0 volts) and if it's off the output in high (approx 5 volts) -make sure your equipment is safe when in the off (watchdog bitten) state. - -You may choose the number of available components by deselecting unused ones. -Not all component types are available with all firmware. - -Choosing less then the maximum number of components allows one to gain more GPIO - pins. If using daughter boards keep in mind you must not deselect pins that the - card uses. For instance some firmware supports two 7i33 cards, If you only have - one you may deselect enough components to utilize the connector that supported -the second 7i33. Components are deselected numerically by the highest number -first then down with out skipping a number. If by doing this the components are -not where you want them then you must use a different firmware. The firmware -dictates where, what and the max amounts of the components. Custom firmware is -possible, ask nicely when contacting the LinuxCNC developers and Mesa. Using custom -firmware in PNCconf requires special procedures and is not always possible - -Though I try to make PNCconf as flexible as possible. - -After choosing all these options press the 'Accept Component Changes' button and - PNCconf will update the I/O setup pages. Only I/O tabs will be shown for -available connectors, depending on the Mesa board. - - -== Mesa I/O Setup -The tabs are used to configure the input and output pins of the Mesa boards. -PNCconf allows one to create custom signal names for use in custom HAL files. - -.Mesa I/O C2 - -image::images/pncconf-mesa-io2.png[] - -On this tab with this firmware the components are setup for a 7i33 daughter -board, usually used with closed loop servos. Note the component numbers of the -encoder counters and PWM drivers are not in numerical order. This follows the -daughter board requirements. - -.Mesa I/O C3 - -image::images/pncconf-mesa-io3.png[] - -On this tab all the pins are GPIO. Note the 3 digit numbers - they will match -the HAL pin number. GPIO pins can be selected as input or output and can be -inverted. - -.Mesa I/O C4 - -image::images/pncconf-mesa-io4.png[] - -On this tab there are a mix of step generators and GPIO. -Step generators output and direction pins can be inverted. Note that inverting a - Step Gen-A pin (the step output pin) changes the step timing. It should match -what your controller expects. - -== Parport configuration - -image::images/pncconf-parport.png[] - -The parallel port can be used for simple I/O similar to Mesa's GPIO pins. - -== Axis Configuration - -.Axis Drive Configuration - -image::images/pncconf-axis-drive.png[] - -This page allows configuring and testing of the motor and/or encoder combination -. If using a servo motor an open loop test is available, if using a stepper a -tuning test is available. - -Open Loop Test:: -An open loop test is important as it confirms the direction of the motor and -encoder. The motor should move the axis in the positive direction when the -positive button is pushed and also the encoder should count in the postie -direction. The axis movement should follow the Machinery's Handbook -footnote:["axis nomenclature" in the chapter "Numerical Control" in the -"Machinery's Handbook" published by Industrial Press.] standards or -AXIS graphical display will not make much sense. Hopefully the help page and -diagrams can help figure this out. Note that axis directions are based on TOOL -movement not table movement. There is no acceleration ramping with the open loop - test so start with lower DAC numbers. By moving the axis a known distance one -can confirm the encoder scaling. The encoder should count even without the amp -enabled depending on how power is supplied to the encoder. -+ -WARNING: If the motor and encoder do not agree on counting direction then the -servo will run away when using PID control. -+ -Since at the moment PID settings can not be tested in PNCconf the settings are -really for when you re-edit a config - enter your tested PID settings. -+ -DAC scaling, max output and offset are used to tailor the DAC output. - -Compute DAC:: -These two values are the scale and offset factors for the axis output to the -motor amplifiers. The second value (offset) is subtracted from the computed -output (in volts), and divided by the first value (scale factor), before being -written to the D/A converters. The units on the scale value are in true volts -per DAC output volts. The units on the offset value are in volts. These can be -used to linearize a DAC. -+ -Specifically, when writing outputs, the LinuxCNC first converts the desired -output in quasi-SI units to raw actuator values, e.g., volts for an amplifier - DAC. This scaling looks like: The value for scale can be obtained analytically -by doing a unit analysis, i.e., units are [output SI units]/[actuator units]. -For example, on a machine with a velocity mode amplifier such that 1 volt -results in 250 mm/sec velocity, Note that the units of the offset are in machine - units, e.g., mm/sec, and they are pre-subtracted from the sensor readings. The -value for this offset is obtained by finding the value of your output which -yields 0.0 for the actuator output. If the DAC is linearized, this offset is -normally 0.0. -+ -The scale and offset can be used to linearize the DAC as well, resulting in -values that reflect the combined effects of amplifier gain, DAC non-linearity, -DAC units, etc. To do this, follow this procedure: - -* Build a calibration table for the output, driving the DAC with a - desired voltage and measuring the result: - -.Output Voltage Measurements - -[cols="^,^",width="50%"] -|================== -|*Raw* | *Measured* -|-10 | *-9.93* -| -9 | *-8.83* -| 0 | *-0.96* -| 1 | *-0.03* -| 9 | *9.87* -| 10 | *10.07* -|================== - - -* Do a least-squares linear fit to get coefficients a, b such that meas=a*raw+b -* Note that we want raw output such that our measured result is - identical to the commanded output. This means -** cmd=a*raw+b -** raw=(cmd-b)/a -* As a result, the a and b coefficients from the linear fit can be used - as the scale and offset for the controller directly. - -MAX OUTPUT: -The maximum value for the output of the PID compensation that is written to the -motor amplifier, in volts. The computed output value is clamped to this limit. -The limit is applied before scaling to raw output units. The value is applied -symmetrically to both the plus and the minus side. - -*Tuning Test* -The tuning test unfortunately only works with stepper based systems. Again -confirm the directions on the axis is correct. Then test the system by running - the axis back and forth, If the acceleration or max speed is too high you will -lose steps. While jogging, Keep in mind it can take a while for an axis with low -acceleration to stop. Limit switches are not functional during this test. You -can set a pause time so each end of the test movement. This would allow you to -set up and read a dial indicator to see if you are loosing steps. - -*Stepper Timing* -Stepper timing needs to be tailored to the step controller's requirements. -Pncconf supplies some default controller timing or allows custom timing settings -. See http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Stepper_Drive_Timing for -some more known timing numbers (feel free to add ones you have figured out). If -in doubt use large numbers such as 5000 this will only limit max speed. - -*Brushless Motor Control* -These options are used to allow low level control of brushless motors using -special firmware and daughter boards. It also allows conversion of HALL sensors -from one manufacturer to another. It is only partially supported and will -require one to finish the HAL connections. Contact the mail-list or forum for -more help. - -.Axis Scale Calculation - -image::images/pncconf-scale-calc.png[] - -The scale settings can be directly entered or one can use the 'calculate scale' -button to assist. Use the check boxes to select appropriate calculations. Note -that 'pulley teeth' requires the number of teeth not the gear ratio. Worm turn -ratio is just the opposite it requires the gear ratio. If your happy with the -scale press apply otherwise push cancel and enter the scale directly. - - -.Axis Configuration - -image::images/pncconf-axis-config.png[] - -Also refer to the diagram tab for two examples of -home and limit switches. These are two examples of -many different ways to set homing and limits. - -IMPORTANT: It is very important to start with the axis moving in the right -direction or else getting homing right is very difficult! - -Remember positive and negative directions -refer to the TOOL not the table as per the Machinists handbook. - -.On a typical knee or bed mill -* when the TABLE moves out that is the positive Y direction -* when the TABLE moves left that is the positive X direction -* when the TABLE moves down that is the positive Z direction -* when the HEAD moves up that is the positive Z direction - -.On a typical lathe -* when the TOOL moves right, away from the chuck -* that is the positive Z direction -* when the TOOL moves toward the operator -* that is the positive X direction. Some lathes have X -* opposite (eg tool on back side), that will work fine but -* AXIS graphical display can not be made to reflect this. - -When using homing and / or limit switches -LinuxCNC expects the HAL signals to be true when -the switch is being pressed / tripped. -If the signal is wrong for a limit switch then -LinuxCNC will think the machine is on end of limit -all the time. If the home switch search logic is wrong -LinuxCNC will seem to home in the wrong direction. -What it actually is doing is trying to BACK off -the home switch. - - -Decide on limit switch location. - -Limit switches are the back up for software limits in case -something electrical goes wrong eg. servo runaway. -Limit switches should be placed so that the machine does not -hit the physical end of the axis movement. Remember the axis -will coast past the contact point if moving fast. Limit switches -should be 'active low' on the machine. eg. power runs through -the switches all the time - a loss of power (open switch) trips. -While one could wire them the other way, this is fail safe. -This may need to be inverted so that the HAL signal in LinuxCNC -in 'active high' - a TRUE means the switch was tripped. When -starting LinuxCNC if you get an on-limit warning, and axis is NOT -tripping the switch, inverting the signal is probably the -solution. (use HALMETER to check the corresponding HAL signal -eg. axis.0.pos-lim-sw-in X axis positive limit switch) - -Decide on the home switch location. - -If you are using limit switches You may as well use one as a -home switch. A separate home switch is useful if you have a long -axis that in use is usually a long way from the limit switches or -moving the axis to the ends presents problems of interference -with material. -eg a long shaft in a lathe makes it hard to home to limits with out -the tool hitting the shaft, so a separate home switch closer to the -middle may be better. -If you have an encoder with index then the home switch acts as a -course home and the index will be the actual home location. - -Decide on the MACHINE ORIGIN position. - -MACHINE ORIGIN is what LinuxCNC uses to reference all user coordinate -systems from. -I can think of little reason it would need to be in any particular -spot. There are only a few G codes that can access the -MACHINE COORDINATE system.( G53, G30 and G28 ) -If using tool-change-at-G30 option having the Origin at the tool -change position may be convenient. By convention, it may be easiest -to have the ORIGIN at the home switch. - -Decide on the (final) HOME POSITION. - -this just places the carriage at a consistent and convenient position -after LinuxCNC figures out where the ORIGIN is. - -Measure / calculate the positive / negative axis travel distances. - -Move the axis to the origin. Mark a reference on the movable -slide and the non-moveable support (so they are in line) move -the machine to the end of limits. Measure between the marks that is one -of the travel distances. Move the table to the other end of travel. -Measure the marks again. That is the other travel distance. If the ORIGIN -is at one of the limits then that travel distance will be zero. - -(machine) ORIGIN:: - The Origin is the MACHINE zero point. (not - the zero point you set your cutter / material at). - LinuxCNC uses this point to reference everything else - from. It should be inside the software limits. - LinuxCNC uses the home switch location to calculate - the origin position (when using home switches - or must be manually set if not using home switches. - -Travel distance:: - This is the maximum distance the axis can - travel in each direction. This may - or may not be able to be measured directly - from origin to limit switch. The positive and - negative travel distances should add up to the - total travel distance. - -POSITIVE TRAVEL DISTANCE:: - This is the distance the Axis travels from - the Origin to the positive travel distance or - the total travel minus the negative travel - distance. You would set this to zero if the - origin is positioned at the positive limit. - The will always be zero or a positive number. - -NEGATIVE TRAVEL DISTANCE:: - This is the distance the Axis travels from - the Origin to the negative travel distance. - or the total travel minus the positive travel - distance. You would set this to zero if the - origin is positioned at the negative limit. - This will always be zero or a negative number. - If you forget to make this negative PNCconf - will do it internally. - -(Final) HOME POSITION:: - This is the position the home sequence will - finish at. It is referenced from the Origin - so can be negative or positive depending on - what side of the Origin it is located. - When at the (final) home position if - you must move in the Positive direction to - get to the Origin, then the number will be - negative. - -HOME SWITCH LOCATION:: - This is the distance from the home switch to - the Origin. It could be negative or positive - depending on what side of the Origin it is - located. When at the home switch location if - you must move in the Positive direction to - get to the Origin, then the number will be - negative. If you set this to zero then the - Origin will be at the location of the limit - switch (plus distance to find index if used) - -Home Search Velocity:: - Course home search velocity in units per minute. - -Home Search Direction:: - Sets the home switch search direction - either negative (ie. towards negative limit switch) - or positive (ie. towards positive limit switch) - -Home Latch Velocity:: - Fine Home search velocity in units per minute - -Home Final Velocity:: - Velocity used from latch position to (final) home position - in units per minute. Set to 0 for max rapid speed - -Home latch Direction:: - Allows setting of the latch direction to the same - or opposite of the search direction. - -Use Encoder Index For Home:: - LinuxCNC will search for an encoder index pulse while in - the latch stage of homing. - -Use Compensation File:: - Allows specifying a Comp filename and type. - Allows sophisticated compensation. See Manual. - -Use Backlash Compensation:: - Allows setting of simple backlash compensation. Can - not be used with Compensation File. See Manual. - -.AXIS Help Diagram - -image::images/pncconf-diagram-lathe.png[] - -The diagrams should help to demonstrate an example of limit switches and -standard axis movement directions. -In this example the Z axis was two limit switches, the positive switch is shared - as a home switch. -The MACHINE ORIGIN (zero point) is located at the negative limit. -The left edge of the carriage is the negative trip pin and the right the -positive trip pin. -We wish the FINAL HOME POSITION to be 4 inches away from the ORIGIN on the -positive side. -If the carriage was moved to the positive limit we would measure 10 inches -between the negative limit and the negative trip pin. - -== Spindle Configuration - -If you select spindle signals then this page is available to configure spindle -control. - -TIP: Many of the option on this page will not show unless the proper option was -selected on previous pages! - -.Spindle Configuration - -image::images/pncconf-spindle-config.png[] - -This page is similar to the axis motor configuration page. - -There are some differences: - -* Unless one has chosen a stepper driven spindle there is no acceleration or -velocity limiting. -* There is no support for gear changes or ranges. -* If you picked a VCP spindle display option then spindle-at-speed scale and -filter settings may be shown. -* Spindle-at-speed allows LinuxCNC to wait till the spindle is at the requested speed -before moving the axis. This is particularly handy on lathes with constant -surface feed and large speed diameter changes. It requires either encoder -feedback or a digital spindle-at-speed signal typically connected to a VFD -drive. -* If using encoder feedback, you may select a spindle-at-speed scale setting that -specifies how close the actual speed must be to the requested speed to be -considered at-speed. -* If using encoder feedback, the VCP speed display can be erratic - the -filter setting can be used to smooth out the display. The encoder scale must be -set for the encoder count / gearing used. -* If you are using a single input for a spindle encoder you must add the line: -setp hm2_7i43.0.encoder.00.counter-mode 1 -(changing the board name and encoder number to your requirements) into a custom -HAL file. See the Hostmot2 section on encoders for more info about counter mode. - - - -== Advanced Options - -This allows setting of HALUI commands and loading of classicladder and sample -ladder programs. -If you selected GLADE VCP options such as for zeroing axis, there will be -commands showing. -See the manual about info on HALUI for using custom halcmds. -There are several ladder program options. -The Estop program allows an external ESTOP switch or the GUI frontend to throw -an Estop. It also has a timed lube pump signal. -The Z auto touch-off is with a touch-off plate, the GLADE VCP touch-off button -and special HALUI commands to set the current -user origin to zero and rapid clear. -The serial modbus program is basically a blank template program that sets up -classicladder for serial modbus. See the classicladder section in the manual. - -.Advanced Options - -image::images/pncconf-advanced.png[] - -== HAL Components - -On this page you can add additional HAL components you might need for custom -HAL files. -In this way one should not have to hand edit the main HAL file, while still -allowing user needed components. - -.HAL Components - -image::images/pncconf-hal.png[] - -The first selection is components that pncconf uses internally. -You may configure pncconf to load extra instances of the components for your -custom HAL file. - -Select the number of instances your custom file will need, pncconf will add -what it needs after them. - -Meaning if you need 2 and pncconf needs 1 pncconf will load 3 instances and use -the last one. - -Custom Component Commands:: - -This selection will allow you to load HAL components that pncconf does not use. -Add the loadrt or loadusr command, under the heading 'loading command' -Add the addf command under the heading 'Thread command'. -The components will be added to the thread between reading of inputs and writing -of outputs, in the order you write them in the 'thread command'. - -== Advanced Usage Of PNCconf - -PNCconf does its best to allow flexible customization by the user. -PNCconf has support for custom signal names, custom loading of components, -custom HAL files and custom firmware. - -There are also signal names that PNCconf always provides regardless of options -selected, for user's custom HAL files -With some thought most customizations should work regardless if you later select -different options in PNCconf. - -Eventually if the customizations are beyond the scope of PNCconf's frame work -you can use PNCconf to build a base config or use one of LinuxCNC's sample -configurations and just hand edit it to what ever you want. - -Custom Signal Names:: - -If you wish to connect a component to something in a custom HAL file write a -unique signal name in the combo entry box. Certain components will add endings -to your custom signal name: - -Encoders will add < customname > +: - -* position -* count -* velocity -* index-enable -* reset - -Steppers add: - -* enable -* counts -* position-cmd -* position-fb -* velocity-fb - -PWM add: - -* enable -* value - -GPIO pins will just have the entered signal name connected to it - -In this way one can connect to these signals in the custom HAL files and still -have the option to move them around later. - -Custom Signal Names:: - -The Hal Components page can be used to load components needed by a user for -customization. - -Loading Custom Firmware:: - -PNCconf searches for firmware on the system and then looks for the XML file that -it can convert to what it understands. These XML files are only supplied for -officially released firmware from the LinuxCNC team. To utilize custom firmware one -must convert it to an array that PNCconf understands and add its filepath -to PNCconf's preference file. By default this path searches the desktop for -a folder named custom_firmware and a file named firmware.py. - -The hidden preference file is in the user's home file, is -named .pncconf-preferences and require one to select 'show hidden files' to see -and edit it. The contents of this file can be seen when you first load PNCconf - -press the help button and look at the output page. - -Ask on the LinuxCNC mail-list or forum for info about converting custom firmware. -Not all firmware can be utilized with PNCconf. - -Custom HAL Files:: - -There are four custom files that you can use to add HAL commands to: - -* custom.hal is for HAL commands that don't have to be run after the GUI frontend -loads. It is run after the configuration-named HAL file. -* custom_postgui.hal is for commands that must be run after AXIS loads or a -standalone PYVCP display loads. -* custom_gvcp.hal is for commands that must be run after glade VCP is loaded. -* shutdown.hal is for commands to run when LinuxCNC shuts down in a controlled manner. - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/config/pncconf_fr.txt b/docs/src/config/pncconf_fr.txt deleted file mode 100644 index 5459186f3bc..00000000000 --- a/docs/src/config/pncconf_fr.txt +++ /dev/null @@ -1,1033 +0,0 @@ -:lang: fr -:toc: - -= Assistant graphique de configuration Mesa - -[[cha:Assistant-graphique-PNCConf]] (((Assistant graphique de configuration Mesa pncconf))) - -L'assistant de configuration PNCconf couvre toute la gamme des cartes d'entrées/ -sorties Mesa et jusqu'à trois ports parallèles. Il est destiné à la -configuration de systèmes à servomoteurs en boucle fermée ou de systèmes à -moteurs pas à pas avec pilotage _matériel_ externe. Il utilise une approche -d'assistance similaire à celle de StepConf qui est lui, utilisé pour configurer -les systèmes avec pilotage _logiciel_ des moteurs pas à pas, au travers de ports -parallèles. Pour une machine n'utilisant qu’un à trois ports parallèles -standards, le logiciel StepConf est un assistant mieux adapté. - -L'assistant PNCconf permet de produire des configurations avancées sans -connaitre quoi que ce soit de HAL. - -PNCconf en est encore au stade du développement (Beta 1) il peut exister -quelques bogues et manques de fonctionnalités. -Merci de rapporter les bogues et les suggestions à la page du forum ou par -courriel à la liste de diffusion. - -Il y a deux manières d'utiliser PNCconf: - -. La première consiste à l'utiliser pour configurer le système et si, par -la suite, certaines options doivent être modifiées, il suffira alors de -recharger PNCconf et d'apporter les modifications aux réglages. -Cela fonctionne bien si la machine est assez standard, pour les machines -particulières il est possible d'ajouter à la main les nouvelles fonctionnalités. -PCNConf est bien adapté pour cette utilisation. - -. La seconde consiste à l'utiliser pour construire une configuration la plus -proche possible de ce qui est souhaité, puis à la modifier à la main pour -l'adapter aux besoins. C'est le bon choix si les besoins de modifications vont -au-delà des possibilités de PNCconf ou pour expérimenter et en apprendre plus -sur LinuxCNC. - -Il est possible de naviguer dans l'assistant, revenir sur des pages, annuler des -choix, obtenir de l'aide et des diagrammes puis enfin, de valider la -configuration par la page de sortie du programme. - -**** -NDT: Certaines divergences entre cette traduction et l'aspect réel de -l'interface peuvent apparaitre pendant la phase de développement de PNCconf. -Elles disparaitront quand le logiciel sera finalisé. -**** - -== Instructions pas à pas - -Démarrer le programme depuis le menu _Applications → CNC → PNCconf_ ou -depuis un terminal avec la commande: - ----- -pncconf ----- - -.Écran d'accueil de PnCConf - -image::images/pncconf-splash_fr.png[] - -== Créer ou éditer une configuration - -.Créer ou éditer - -image::images/pncconf-file_fr.png[] - -Il est possible de créer une nouvelle configuration ou d'en modifier une -existante. -Si _Modifier une configuration déjà créée_ est choisi, suivi d'un clic -sur _Suivant_, un sélecteur de fichier apparait pour choisir la configuration -existante à modifier. Par défaut, Pncconf présélectionne le dernier fichier -enregistré. Il est possible de cocher les options _Créer un lien sur le -bureau_ qui créera un lien sur le bureau pointant sur ce nouveau fichier de -configuration, _Créer un lanceur_ qui créera un lanceur sur le bureau qui -démarrera LinuxCNC dans cette configuration. -Si ces options ne sont pas utilisées, le nouveau fichier de configuration se -trouvera dans le dossier _~/linuxcnc/configs_. Il est toujours possible de -lancer LinuxCNC normalement et de sélectionner la configuration souhaitée dans -la liste. - -== Informations machine - -.Informations machine - -image::images/pncconf-basic_fr.png[] - -_Éléments de base_ - -Nom de la machine:: - Préciser ici le nom de la machine à configurer, les espaces dans les noms - seront remplacés par des *'_'* (en règle générale, Linux n'aime pas les - espaces dans les noms de fichiers). - -Configuration des axes:: - Cette liste déroulante précise le nombre d'axes de la machine, - sélectionner selon la machine XYZ (fraiseuse 3 axes), XYZA (fraiseuse 4 - axes) ou XZ (tour). - -Unité machine:: - Définit l'unité de mesure utilisée par la machine, pouce ou millimètre, - toutes les données introduites par la suite devront être données dans - l'unité choisie ici. - - Les valeurs introduites par défaut dans cet assistant ne sont pas converties - automatiquement dans l'unité choisie ici, bien vérifier toutes ces valeurs. - -_Temps de réponse de l'ordinateur_ - -Période servo actuelle:: - La période d'asservissement. C'est l'horloge du système. La latence donne - la variation de cette horloge. LinuxCNC demande une chronologie serrée et - cohérente, sinon des problèmes surviendront. - -Quelques explications: -LinuxCNC requiert et utilise un système d'exploitation temps réel, ce qui -signifie qu'il a une latence très faible et un temps de réponse très court. Les -évènements arrivent avec précision dans le temps quand LinuxCNC nécessite pour -ses calculs, de ne pas être interrompu par des demandes de priorité inférieure -(interruptions) comme des saisies au clavier ou des demandes d'affichage. - -Le test de latence est très important, il est un élément clef qui doit être -effectué au plus tôt. Heureusement les cartes Mesa se chargent des tâches -critiques en temps de réponse, comme le comptage d'impulsions, la génération de -PWM et cela leur permet de supporter une latence supérieure à celle d'un système -utilisant les ports parallèles de la carte mère. - -Le test standard dans LinuxCNC, consiste à vérifier la latence de base du PC. Un -appui sur le bouton _Test de latence_ lancera le test de latence, il est -également possible de le lancer depuis le menu _application → cnc → latency -test_. Une fenêtre s'ouvre dans laquelle s'affichent les temps mesurés. -Ce test doit fonctionner plusieurs minutes, en fait, le plus longtemps possible. -15 minutes est un minimum. Pendant le test, essayer d'utiliser le plus possible -l'ordinateur, le réseau, le port USB, les disques durs, l'affichage. -Observer et noter si une action particulière dégrade le temps de latence. -A la fin, il sera possible de connaitre la _base period jitter_, la latence de -base. Une valeur en dessous de 20000 est excellente et permet une génération -rapide des impulsions de pas avec cette machine.+ -20000 à 50000 est assez bon pour la génération de pas. + -50000 à 100000 ce n'est pas très bon mais la machine peu encore servir pour la -génération de pas avec une carte ayant des temps de réponse courts. + -Plus grand que 100000, la machine n'est pas utilisable pour cette fonction - -Si la latence est médiocre ou si des problèmes intermittents surviennent -régulièrement il sera toujours possible de l'améliorer. - -TIP: Il y a une liste d'équipements et de leurs temps de latence sur -http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Latency-Test[le wiki de LinuxCNC] + -SVP, pensez à ajouter vos infos à la liste. Sur cette page il y a des liens vers -des informations pour résoudre certains problèmes de latence. - -Maintenant que nous avons un temps de latence acceptable nous devons choisir -une période d'asservissement (Période servo actuelle). -Dans la plupart des cas une période d'asservissement de 1000000ns est bonne, -cela donne un taux de calcul de 1 kHz soit 1000 calculs par seconde. -Si le système d'asservissement est construit en boucle fermée avec contrôle -de couple (courant) plutôt que de vitesse (tension) le taux sera meilleur, -quelque chose comme 5000 calculs par seconde (5 kHz). Le problème avec -l'abaissement de la période, c'est qu'elle laisse moins de temps disponible à -l'ordinateur pour faire d'autres choses. Typiquement la réponse de l'affichage -(GUI) est moins bonne. Il faut choisir un équilibre. Garder à l'esprit que sur -un mécanisme en boucle fermée, une modification de la période d'asservissement -nécessitera de réajuster l'ensemble des paramètres de la boucle. - -_Ports et cartes d'entrées/sorties_ - -PNCconf est capable de configurer une machines avec deux cartes Mesa et -trois ports parallèles. Les ports parallèles ne sont utilisables que pour -des actions simples et peu rapide. - -Mesa:: - Au moins une carte Mesa doit être choisie. PNCconf ne peut pas configurer - les ports parallèles pour des codeurs, des signaux de pas ou pour la - génération de signaux PWM. La liste de sélection des cartes Mesa présentes - dans la liste de sélection est construite selon les micros logiciels des - cartes trouvées sur le système. Il existe des options permettant d'ajouter - des micros logiciels personnalisés ou pour ignorer (blacklister) certaines - versions de micros logiciels ou certaines cartes, en utilisant un fichier - de préférences. - Si aucune carte n'est détectée PNCconf affichera un avertissement et - utilisera des valeurs par défaut mais aucun test ne sera possible. Il faut - noter que, si plusieurs cartes Mesa sont utilisées, il n'existe aucun moyen - de déterminer laquelle sera la carte N°0 ou N°1 et il sera indispensable de - le tester. Déplacer les cartes dans les ports PCI, peut changer leur ordre. - Si la configuration est créée pour deux cartes, elles doivent être - installées pour que les tests fonctionnent. - -Ports parallèles:: - Jusqu'à 3 ports parallèles, appelés parports par Mesa, peuvent être - utilisés comme de simples entrées sorties. L'adresse du port parallèle doit - être définie. Il est possible soit d'entrer le N° du port parallèle selon le - système de numérotation de Linux 0, 1 ou 2 ou, d'entrer l'adresse réelle en - hexadécimal. Les adresses des ports parallèles intégrés à la carte mère son - le plus souvent aux adresses 0x0378 et 0x0278, elles peuvent être trouvées - dans la configuration du BIOS. Le Bios s'ouvre en enfonçant une touche du - clavier au tout début du cycle de démarrage de l'ordinateur, souvent (Del - ou F2) se reporter au document de la carte mère. Sur une des pages du BIOS, - il est possible de choisir l'adresse des ports parallèles et de définir - leurs modes de fonctionnement comme SPP, EPP, etc, sur certains ordinateurs - cette information est affichée pendant quelques secondes lors du démarrage - du PC. Pour les ports parallèles sur carte PCI les adresses sont trouvées - en cliquant sur le bouton _Outil d'aide à la recherche d'adresse de ports - parallèles_ qui affichera la liste des périphériques PCI découverts. Dans - cette liste, se trouvera une référence aux ports parallèles avec une liste - d'adresses. Une de ces adresses doit fonctionner. Noter que tous les ports - parallèles PCI ne fonctionnent pas correctement en EPP. Chaque port peut être - sélectionné comme _Entrée_ pour augmenter le nombre d'entrées sur ce port - ou _Sortie_ pour un maximum de sorties. Par défaut, les ports parallèles - sont configurés avec leurs broches 2 à 9 en _Sortie_. - -_Liste des interfaces graphiques_ - -Spécifie les interfaces utilisateur graphiques que LinuxCNC peut utiliser. -Chacune dispose d'options particulières. - -_AXIS_ - -* Supporte les tours. -* C'est l'interface la plus utilisée et la plus développée. -* Elle est conçue pour être utilisée à la souris est avec un clavier. -* Elle est basée sur tkinter et intègre donc PYVCP (contrôle visuel python). -* Elle dispose d'un affichage graphique en 3D. -* Elle est intégrable sur les barres de tâches ou sur le bureau. - -_TOUCHY_ - -* Touchy est une interface conçue pour les écrans tactiles. -* Elle ne nécessite que quelques interrupteurs physiques et une manivelle de -jog. -* Elle nécessite les boutons _Départ cycle_, _Abandon_, _Marche par pas_. -* Elle nécessite également un bouton sélecteur d'axe sur le jog. -* Elle est basée sur GTK et intègre naturellement GladeVCP (création de -panneaux de contrôle). -* Elle permet d'intégrer les panneaux de contrôle virtuels (VCP). -* Elle n'a pas de fenêtre de suivi du parcours d'outil. -* L'aspect peut être modifié avec des thèmes personnalisés. - -*MINI_ - -* Est fourni en standard sur les machines Sherline. -* N'utilise pas d'arrêt d'urgence (ESTOP). -* Pas de possibilité d'intégrer un panneau de contrôle. - -_TkLinuxCNC_ - -* Contraste élevé grâce à un fond bleu. -* Fenêtre graphique séparée. -* Pas d'intégration de panneau de contrôle possible. - -== Contrôles externes - -Cette page permet de sélectionner des contrôles externes pour la commande -manuelle de déplacement des axes (jog) ou des curseurs des correcteurs de vitesse. - -.Contrôles externes - -image::images/pncconf-external_fr.png[] - -Si une manette de jeu externe est sélectionnée pour le jog, il faudra -toujours la connecter à LinuxCNC avant de démarrer celui-ci. Si la manette est -analogique il faudra probablement ajouter du code personnalisé à HAL. -Les manivelles de jog à vernier et micro impulsion nécessitent d'être -connectées à une carte Mesa sur un compteur de codeur. Pour les correcteurs de -vitesses externe il est possible d'utiliser un mécanisme à générateur -d'impulsions ou à commutation comme un commutateur rotatif. -Les boutons externes peuvent être ceux d'une manette de jeu. - -Joystick USB pour le jog:: - Demande des règlages spécifiques personnalisés pour être installé dans le - système. Il s'agi d'un fichier qui est utilisé par LinuxCNC pour se connecter - à la liste des périphériques Linux. PNCconf aidera à la construction de ce - fichier. - -* Ajouter règle dispositif: s'utilise pour configurer un nouveau périphérique - en suivant les instructions. Le périphérique doit être branché et disponible. - -* test dispositif: permet de charger un périphérique, d'afficher les noms de - ses broches et de visualiser ses fonctions avec l’outil halmeter. - -* Rechercher règles pour le dispositif: va rechercher les règles dans le - système, utilisable pour trouver le nom des périphériques déjà construits - avec PNCconf. - -Les manettes de jeu utilisées en jog utilisent HALUI et le composant -hal_input. - -Boutons de jog externes:: - Permet le jog de l'axe avec de simples boutons à une vitesse spécifiée. - Probablement mieux adapté pour le jog en vitesse rapide. - -Manivelle de jog externe:: - Permet d'utiliser un générateur d'impulsions manuel pour faire du - jog sur les axes de la machine. - Les manivelles à impulsions (MPG) sont souvent présentes sur les machines - de bonne qualité. Elles délivrent en sortie des impulsions en quadrature qui - peuvent être comptées avec un compteur de codeur MESA. PNCconf gère une - manivelle par axe ou une manivelle partagée entre les axes. - Il permet la sélection des vitesses de jog en utilisant des commutateurs - rotatifs. L'option de sélection des incréments de jog utilise le - composant mux16. Ce composant dispose d'options telles que l'anti-rebond et - l'utilisation du code Gray pour filtrer l'entrée physique du commutateur. - -Correcteurs de vitesses:: - PNCconf permet de modifier les vitesses d'avances ou de broche en utilisant - une manivelle à micros impulsions ou un commutateur rotatif. Les - incréments sont configurables. - -== Configuration des GUI - -Ici il est possible de configurer l'interface graphique utilisateur (GUI), lui -ajouter des panneaux de commande virtuels (VCP) et définir certaines options -d'LinuxCNC. - -.Configuration des GUI - -image::images/pncconf-gui_fr.png[] - -_Options des interfaces graphiques_ - -Valeurs communes par défaut:: - Permet de fixer des valeurs générales par défaut, communes à toutes les - interfaces graphiques. - -Options par défaut d'AXIS:: - Ici se trouve les options spécifiques à AXIS. Si une des options _Taille_, - _Position_ ou _Forcer à maximiser_ et choisie, il sera possible de modifier - les valeurs de vitesse minimale ou maximale, le choix de l'éditeur de fichiers, - la géométrie de la machine affichée. Ensuite, PNCconf demandera si il peut - écraser le fichier de préférences (.Axisrc). - Ce qui écrasera les données qui aurait été ajoutées extérieurement dans ce - fichier. - -Touchy:: - Ici se trouve les options spécifiques à Touchy. La plupart des options de - Touchy peuvent être modifiées dans la page des préférences de l'application - même quand elle est en marche. Touchy utilise GTK pour dessiner son écran, - et supporte les thèmes GTK. Les thèmes modifient l'apparence et l'ergonomie - du programme. il est possible de télécharger des thèmes depuis le net ou - de les modifier soit-même. Il y a déjà une liste des thèmes utilisables sur - le système. PNCconf permet de modifier facilement le thème par défaut. - -_Panneaux de contrôle virtuels_ - -Les panneaux de contrôle virtuels permettent d'ajouter des contrôles -et des afficheurs personnalisés. AXIS et Touchy peuvent intégrer ces -contrôles dans une zone déterminée de leur écran. Il y a deux sortes de -panneaux de contrôle (VCP), pyVCP qui utilise _Tkinter_ pour dessiner -l'écran ou GLADE VCP qui utilise _GTK_. - -Panneau PyVCP:: - PyVCP est un écran construit par un fichier XML. Il ne peut pas être - construit à la main. Les PyVCP s'intègrent naturellement avec AXIS car ils - utilisent tous les deux Tkinter. Des _HAL pins_ sont créées pour que - l'utilisateur puisse les connecter dans son fichier HAL personnalisé. - Il existe par exemple, un tachymètre pour la vitesse de broche ou un panneau - de boutons XYZ pour le jog, l'utilisateur peut les utiliser tel quel ou - les reconstruire à son gout. - Sélectionner un fichier vide où les contrôles (widgets) personnels seront - enregistrés ou sélectionner un des modèles d'affichage prêts à l'emploi, - PCCcong établira alors lui-même les bonnes connexions avec HAL. - Si AXIS est utilisé, le panneau sera intégré sur le côté droit. - Si AXIS n'est pas utilisé, le panneau sera distinct de l'écran frontal. - Il est possible d'utiliser les options de géométrie et de dimensions - et de déplacer le panneau, par exemple si le système le permet vers un second - écran. Si le bouton _Ouvrir un panneau simple_ est pressé, les données de - géométrie et de dimensions seront utilisées et le panneau affiché. - -Panneau GladeVCP:: - GladeVCP s'intègre naturellement à l'intérieur de l'écran TOUCHY car ils - utilisent tous les deux GTK pour leurs interfaces, mais en modifiant le thème - de GladeVCP il se fond très bien dans AXIS. Il utilise un éditeur graphique - pour créer ses fichiers XML. Des _HAL pins_ sont créées, que l'utilisateur - pourra connecter dans son fichier HAL personnalisé. - GladeVCP permet aussi une interaction de programmation beaucoup plus - sophistiquée et compliquée, ce qui n'est actuellement pas possible par PNCconf. - Voir le chapitre sur GladeVCP et <> - -PNCconf propose des exemples de panneaux à utiliser tel quel ou à reconstruire. -Avec PNCconf, GladeVCP permettra de sélectionner différentes options d'affichage -sur le modèle. Sous _Echantillon d'options_ sélectionner les options souhaitées. -Les boutons de zéro utilisent des commandes HALUI qui pourront être modifiées -ultérieurement dans la section HALUI. Le bouton _Toucher Z automatique_ -nécessite le programme _Touch-off_ de classicladder et que l'entrée de sonde -soit sélectionnée. Il faut aussi un palpeur qui peut être réalisé avec une -plaque conductrice reliée à la masse. Pour avoir une idée sur la façon dont -cela fonctionne, voir: -//http://wiki.linuxcnc.org/cgi-bin/wiki.pl?ClassicLadderExamples#Single_button_probe_touchoff[ Simple bouton "Toucher"] - -Sous _Options d'affichage_, les options de géométrie et de dimensions -permettent de déplacer le panneau, par exemple vers un second écran, si le -système le permet. Sélectionner un thème GTK pour définir l'aspect du panneaux. -En général, on le souhaite identique à l'aspect de l'écran frontal. -Le panneau créé et ses options seront visibles en appuyant sur le -bouton _Ouvrir un panneau simple_. GladeVCP placé sur l'écran frontal permet de -sélectionner la position du panneau sur celui-ci. Il peut fonctionner de -manière autonome ou avec AXIS, il peut être au centre ou sur le côté droit, -avec Touchy il peut être au centre. - -_Défauts et options_ - -Prise d'origine requise avant tout mouvement:: - Pour pouvoir déplacer la machine sans passer par une recherche du point - d'origine machine décocher la case. Dans ce cas la plus grande vigilance est - nécessaire pour ne pas percuter une limite. - -Dialogue pour le changement d'outil:: - Permet le choix entre l'utilisation d'un dialogue de changement d'outil et - l'exportation d'un signal standard pour utiliser un changeur d'outils - automatique externe et la table d'outils. - -Laisser tourner la broche pendant le changement d'outil:: - Laisse tourner la broche pendant le changement d'outil. Utile pour les tours. - -Forcer la prise d'origine individuelle en manuel:: - Oblige à effectuer la prise d'origine individuelle de chaque axe en manuel. - -Relever la broche avant le changement d'outil:: - Met la broche en position haute avant le changement d'outil. - -Récupérer position jointure après arrêt:: - Mémorise la position des articulations lors de l'arrêt. Utilisé pour les - machines a cinématique complexe. - -Changeur d'outil à position aléatoire:: - Utilisé pour les changeurs d'outils qui ne reçoivent pas toujours les outils -au mêmes emplacements. Des codes HAL doivent être ajoutés pour le support de ces -changeurs d'outils. - -== Configuration Mesa - -Les pages de configuration Mesa permettent d'utiliser les différents micros -logiciels. Sur la page de configuration, si une carte Mesa a été sélectionnée, -ici s'effectue le choix du micro logiciel parmi ceux disponibles, puis le choix et -le paramétrage des composants nécessaires à la machine. - -.Configuration Mesa - -image::images/pncconf-mesa-config_fr.png[] - -Adresse du port parallèle MESA:: - Un port parallèle est utilisé seulement avec la carte Mesa 7i43. - Les ports parallèles sur la carte mère ont généralement les adresses 0x378 et - 0x278 il est possible de trouver l'adresse sur la page du BIOS. - Le 7i43 nécessite de programmer le port parallèle dans le mode EPP, - encore une fois cela se configure dans la page du BIOS. Si un port parallèle - sur carte PCI est utilisé, les adresses peuvent être recherchées en utilisant - le bouton de recherche sur la page de base de PNCConf. - -IMPORTANT: Noter que beaucoup de cartes PCI ne prennent pas en charge le - protocole EPP correctement. - -Fréquence de base PWM, PDM et 3PWM:: footnote:[PDM: acronyme de Modulation de -Densité d'Impulsions, PWM: acronyme de Modulation de Largeur d'Impulsions] - Règle l'équilibrage entre entrainement et linéarité. - Si des cartes filles Mesa sont utilisées, les documents de celles-ci - devraient donner des recommandations. Il est important de les suivre pour - éviter des dommages et obtenir les meilleures performances. - -Par exemple....:: -- La carte 7i33 demande un PDM et une fréquence de base de 6 mHz. -- La carte 7i29 demande un PWM et une fréquence de base de 20 Khz. -- La carte 7i30 demande un PWM et une fréquence de base de 20 Khz. -- La carte 7i40 demande un PWM et une fréquence de base de 50 Khz. -- La carte 7i48 demande un PWM et une fréquence de base de 24 Khz. - -Délai du chien de garde:: - Définit le délai durant lequel la carte Mesa va attendre avant de - déconnecter les sorties si la communication est interrompue avec l'ordinateur. - Les carte Mesa utilisent sur ce contact un niveau actif bas ce qui signifie - que lorsque la sortie est activée son niveau logique est à 0 et si la sortie - est inactive son niveau logique est à 1 soit environ 5 volts. S'assurer - que l'équipement est en sécurité quand le chien de garde est déclenché. - -Nombre de codeurs:: -Nombre de générateur de PWM:: -Nombre de générateur de PAS:: - Il est possible de choisir les composants en dé-sélectionnant ceux qui sont - inutilisés. Les types de composants disponibles varient selon le micro - logiciel et les cartes installées. - Si des composants ne sont pas sélectionnés, des broches GPIO seront gagnées. - Si des cartes filles sont utilisées, garder à l'esprit que les pins que - les cartes utilisent ne doivent pas être dé-sélectionnées. Par exemple, - certain micros logiciels supportent deux cartes 7i33, si une seule est - installée, il est possible de dé-sélectionner assez de composants non - nécessaires pour utiliser le connecteur qui était prévus pour la seconde - 7i33. Les composants sont dé-sélectionnés numériquement en commençant par le - plus grand nombre d'abord, puis en descendant sans en sauter. Si en faisant - cela, les composants ne sont pas là où il devraient, alors il faut utiliser - un micro logiciel différent. Le micro logiciel dicte où, quoi et les nombre - maximum de composants. Un micro logiciel personnalisé est possible en le - demandant gentiment aux développeurs LinuxCNC et Mesa. - Les micros logiciels dans PNCconf nécessitent des procédures spéciales et ce - n'est pas toujours possible. Bien que nous essayons de rendre PNCconf aussi - souple que possible. - Après avoir choisi toutes les options, appuyer sur le bouton - _Accepter le changement de composants_ et PNCconf mettra à jour les pages - de configuration des E / S. Seuls les onglets nécessaires seront affichés - pour les connexions disponibles, selon les documents de Mesa. - -== Réglages des E/S Mesa - -Les onglets sont utilisés pour configurer les broches d'entrée et de sortie -des cartes Mesa. PNCconf permet de créer des noms de signaux personnalisés -à utiliser dans les fichiers de HAL personnalisés. - -.Réglages des E/S Mesa C2 - -image::images/pncconf-mesa-io2_fr.png[] -Sur cet onglet, avec ce micro logiciel, les composants sont liés à l'installation -d'une carte fille 7i33, généralement utilisée avec des servomoteurs en boucle fermée. -Noter que les numéros de composant des codeurs, des compteurs et des pilotes PWM -ne sont pas dans l'ordre numérique. Cela fait suite aux exigences de -l'architecture des cartes filles. - -.Réglages des E/S Mesa C3 - -image::images/pncconf-mesa-io3_fr.png[] -Sur cet onglet, il n'y a que des broches GPIO. Noter les numéros à trois -chiffres, ils correspondent au numéros des _HAL pins_. Les broches GPIO -peuvent être sélectionnées comme des entrées ou des sorties et elles peuvent -être inversées. - -.Réglages des E/S Mesa C4 - -image::images/pncconf-mesa-io4_fr.png[] -Sur cet onglet, il y a un mélange entre des broches GPIO et des générateurs de pas. -Les sorties générateur de pas et de direction peuvent être inversées. -Noter que l'inversion d'un signal Step Gen modifie les délais de pas, -il doivent correspondre à ce que le contrôleur attend. - -_Configuration des ports parallèles_ - -image::images/pncconf-parport_fr.png[] - -Les ports parallèles peuvent être utilisés pour de simples E/S similaires aux -broches GPIO Mesa. - -== Configuration des axes - - -.Configuration des axes - -image::images/pncconf-axis-drive_fr.png[] - -Cette page permet de configurer et tester un moteur combiné ou non à un codeur. -Si un servomoteur est utilisé, un test en boucle ouverte est disponible. -si un moteur pas à pas est utilisé, un test de réglage est disponible. - -Test en boucle ouverte:: - Le test en boucle ouverte est important car il confirme la bonne direction du - moteur et du codeur. Le moteur doit se déplacer dans le sens positif sur l'axe - lorsque le bouton est pressé dans le sens positifs et aussi le codeur doit compter - dans le même sens. Le mouvement de l'axe doit suivre les normes conventionnelles - des machine-outil, sinon l'affichage graphique de l'axe n'aura pas de sens. - Espérons que la page d'aide et le diagramme vous aideront à comprendre cela. - Noter que les directions des axes sont celles du mouvement de l'outil et non - celle du mouvement de la table. Il n'y a pas de rampe d'accélération lors du test - en boucle ouverte, il convient donc de commencer avec une valeur faible du DAC. - Déplacer l'axe sur une distance connue, confirmera la bonne mise à l'échelle du - codeur. Le codeur doit compter dans le même sens, même sans la puissance sur le - moteur, mais cela dépend de la manière dont le codeur est alimenté. - -[red]#AVERTISSEMENT:# Si le moteur et le codeur ne comptent pas dans le même sens, -le servomoteur sera incontrôlable et s'emballera lors de l'utilisation en boucle -fermée sous régulation PID.footnote:[ PID: acronyme de Proportionnelle, Intégrale, -Dérivée. Ce sont les 3 composantes de la régulation en boucle fermée de type PID.] - -Pour le moment les paramètres PID ne peuvent pas être testés dans PNCconf, -ces réglages sont vraiment, pour quand vous rééditerez une configuration pour y -mettre vos paramètres PID testés... - -Echelle du DAC:: footnote:[ DAC, acronyme pour Convertisseur Analogique Digital] - Deux valeurs de mise à l'échelle, _Max Output_ et _Offset_ sont utilisées - pour linéariser le DAC. - -Théorie:: - Ces deux valeurs sont les facteurs d'échelle et d'offset de la sortie vers - l’amplificateur moteur, de l'axe. La deuxième valeur, l'offset, est soustraite - de la sortie calculée (en Volts) et divisée par la première valeur (le facteur -d'échelle), - avant d'être écrite dans le DAC. La valeur d'échelle (Scale) s'exprime en - Volts/Volts de sortie du DAC. Le décalage (offset) s'exprime en Volts. - Elles peuvent être utilisées pour linéariser le DAC. Plus précisément, lors - de l'écriture des sorties, LinuxCNC convertit d'abord la valeur effective de la - sortie concernée, qui est en quasi-unités SI, en valeurs brute d'actionneur. - Par exemple, des Volts pour un amplificateur DAC. La valeur de l'échelle peut - être obtenue en analysant l'unité c'est-à-dire en déterminant le rapport - [sortie unités SI]/[unités actionneur]. - Par exemple, sur une machine avec un amplificateur en mode vitesse, qui fourni - 1 Volt pour une vitesse résultante de 250 mm/s. Noter que les unités de - l'offset sont en unités machine, ici des mm/s et qu'elles sont pré-soustraites - des lectures capteur. La valeur de cet offset est obtenue en trouvant la - valeur de sortie qui donne 0,0 sur la sortie de l'actionneur. Si le DAC est - linéarisé, cet offset est normalement de 0,0. - L'échelle et l'offset peuvent être utilisés pour linéariser le DAC, il en - résultera des valeurs qui reflèteront les effets combinés du gain de - l'amplificateur, de la non-linéarité du DAC, des unités du DAC, etc. - Pour le faire, suivre cette procédure: - -.Construire une table de calibration pour la sortie. -Piloter le DAC avec la tension souhaitée et mesurer le résultat: - -Mesure des tensions de sortie: - -[width="50%"] -|======================================== -|*Sortie brute* | *Mesure* -|-10 | *-9.93* -| -9 | *-8.83* -| 0 | *-0.96* -| 1 | *-0.03* -| 9 | *9.87* -| 10 | *10.07* -|======================================== - -* Par la méthode des moindres carrés, déterminer les coefficients *+a+*, *+b+* tels que - *+Mesure=a*Sortiebrute+b+* -* Noter que nous voulons une sortie effective telle que la valeur mesurée soit - identique à la consigne. Cela signifie -** *+cmd=a*Sortiebrute+b+* -** *+Sortiebrute=(cmd-b)/a+* -* Par conséquent, les coefficients *+a+* et *+b+* de l'ajustement linéaire peuvent être - utilisés directement comme échelle et offset pour le contrôleur. - -Valeur maximale de sortie:: - La valeur maximale pour la sortie de compensation PID qui est écrite sur - l'ampli moteur, exprimée en volts. La valeur de sortie calculée est alignée - sur cette limite. La limite est appliquée avant la mise à l'échelle des unités - de sortie effective. La valeur est appliquée de manière symétrique aux deux - limites, positive et négative. - -Test de réglage:: - Le test de réglage ne fonctionne, malheureusement, qu'avec les systèmes à -base moteur pas à pas. Encore une fois vérifier que les directions de déplacements -sur l'axe sont correctes. Puis tester le système en déplaçant l'axe d’avant en arrière, -si l'accélération ou la vitesse maximum sont trop élevées, des pas seront perdus. -Attention: Au cours de ce déplacement manuel garder à l'esprit que la distance -d’arrêt est inversement proportionnelle à l’accélération et qu'avec une accélération -faible il faut du temps et de la distance pour arrêter l’axe. Les fins de course -ne sont pas fonctionnels pendant ce test. Un temps de pause peut être défini -entre chaque mouvement d'essai. Cela permet de vérifier la position de l’axe et -de voir si des pas sont perdus. - -Timing des moteur pas à pas:: - La séquence de signaux des sorties pas a pas, doit être adaptée aux exigences -du pilote des moteurs. Pncconf propose par défaut, certaines de ces séquences et il -est possible de les personnaliser. -Voir http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Stepper_Drive_Timing pour y -trouver des séquences pour le matériel le plus commun (n'hésitez pas à ajouter -celles que vous avez expérimenté). En cas de doute utiliser une valeur élevée -comme 5000, cela ne fera que limiter la vitesse maximale. - -Contrôle de moteur Brushless:: - Ces options sont utilisées pour permettre le contrôle bas niveau des -moteurs _brushless_ avec un micro logiciel spécial et des cartes filles. -Elles permettent également la conversion des capteurs à effet Hall d'un fabricant -à l'autre. Ce n'est que partiellement pris en charge et aura besoin d’une -intervention pour terminer les connexions de HAL. Contacter la mail-liste ou un -forum pour avoir de l'aide. - -.Calcul de l'échelle d'axe - -image::images/pncconf-scale-calc_fr.png[] -Les paramètres d'échelle peuvent être saisis directement ou, on peut utiliser le -bouton _calculer échelle_ pour être assisté. Utiliser alors les cases à cocher -pour sélectionner les calculs appropriés. Noter que _Dents des poulies_ exige -le nombre de dents et non le rapport de réduction. _Rapport de réduction_, -le rapport de réduction est exactement le contraire, il exige le rapport -entre poulie menante et poulie menée (Entrée/Sortie). Si l'échelle à déjà été -calculée manuellement, il est possible de la saisir directement sans passer par -l'assistant. - -.Configuration des axes - -image::images/pncconf-axis-config_fr.png[] - -Se référer également à l'onglet diagramme pour deux exemples de disposition des -contacts de fin de course d'origine machine et de limites. Ce sont deux exemples -parmi les nombreuses façons différentes de placer ces contacts. - -IMPORTANT: Il est très important de commencer avec l'axe se déplaçant dans la -bonne direction sinon l’acquisition du point d'origine est impossible ! - -Se souvenir que les directions positives et négatives se référent toujours à -l'outil et jamais à la table. - -Sur une fraiseuse classique:: -- Lorsque la table se déplace vers l'opérateur, c'est la direction positive de l'axe Y. -- Lorsque la table se déplace à gauche, c'est la direction positive de l'axe X. -- Lorsque la table se déplace vers le bas, c'est la direction positive de l'axe Z. -- Lorsque la tête se déplace vers le haut, c'est aussi la direction positive de l'axe Z. - -Sur un tour classique:: -- Lorsque l'outil se déplace à droite, en s'éloignant du mandrin, c'est le sens - positif de l'axe Z. -- Lorsque l'outil se déplace vers l'opérateur, c’est le sens positif de l'axe X. -- Certains tours ont un axe X opposé, dans ce cas l'outil est à l'arrière, cela - fonctionne bien, mais l'affichage graphique d'AXIS ne peut pas refléter cette - configuration. - -Lorsque des contacts d'origine machine et des contacts de fin de course sont utilisés, -LinuxCNC attend des signaux de HAL au niveaux haut lorsque le contact est actionné. -Si le signal d'un fin de course est inversé, LinuxCNC détectera en permanence que -la machine est en bout de course. Si la logique de recherche du contact d'origine -machine est mauvaise (fichier ini), LinuxCNC lancera la séquence de recherche d'origine -machine de l'axe dans la mauvaise direction. - -Décider de l'emplacement des fins de courses:: - Les fins de course de limite d'axe sont au delà des limites logicielles, ils - protègent la machine en cas de problème électrique, par exemple, l'emballement - d'un servomoteur. - Les fins de course doivent être placés de manière à ce que l'axe ne puisse pas - percuter une butée mécanique. Attention: si la distance d'activation du contact - de fin de course est trop faible, avec l'inertie du mobile il pourra le dépasser. - Les fins de course des limites d'axes, doivent être actifs à l'état bas et - ils doivent aussi couper la puissance sur l'axe concerné. Le contact doit - s'ouvrir à l'activation du fin de course. Utiliser un autre câblage est - possible mais il est moins sécurisé. - Il peut être nécessaire d'inverser le signal de HAL dans LinuxCNC pour avoir un - état actif haut, TRUE signifie que le contact a été activé. Lorsqu'au - démarrage de LinuxCNC un avertissement de limite et affiché même si l'axe n'est - pas sur un des fins de course, le signal est probablement inversé. Utiliser - HALMETER pour vérifier l'état du signal de HAL correspondant, par exemple, - axis.0.pos-lim-sw-in, fin de course positif de l'axe X. - -Décider de l'emplacement des contacts d'origine machine:: - Si des fins de course de limite d'axe sont utilisés, il est possible de les - utiliser également comme contacts d'origine machine. - Un contact d'origine machine séparé est utile si les axes sont longs et que - le déplacement vers un fin de course dure trop longtemps pour un usage normale - ou que le déplacement vers une extrémité présente des problèmes d'interférences - avec le porte-pièce ou la pièce. - Par exemple sur un tour, le déplacement en bout de banc n'est pas efficace - pour un point d'origine machine et un contact placé vers le centre est - certainement meilleur. - Si codeur avec un index est utilisé, le contact agit comme point de référence - et l'index suivant sera le point d'origine machine effectif. - -Décider de la position de l'origine machine:: - L'origine machine dans LinuxCNC sert de référence à tous les systèmes de coordonnées - utilisateur. Il n'y a pas d'emplacement particulier pour ce point. Seuls - quelques G-codes accèdent au système de coordonnées machine (G53, G30 et G28). - Si l'option de changement d'outil sur G30 est utilisée, placer l'origine machine - à cet endroit peut être commode. Par convention, il est plus simple d'avoir - l'origine machine sur le contact d'origine. - -Décider de la position finale de l'origine:: - Ça consiste simplement à placer le chariot ou la broche à la position - la plus commode après que LinuxCNC soit initialisé et que les points d'origines - machine de chacun des axes lui soit connus. - -Définition des côtés positifs/négatifs et des longueurs de courses maximales:: - Placer l'axe à l'origine. Faire un repère sur le mobile et un autre sur la - partie fixe. Déplacer la machine jusqu'au contact de limite d'axe. Mesurer - la distance entre les deux repères pour obtenir la longueur de déplacement - maximale dans ce sens. Déplacer dans l'autre sens, sur le contact de limite - de l'autre côté. Mesurer de nouveau les repères pour obtenir la longueur de - déplacement maximale dans l'autre sens. Si l'origine machine est située sur - une des limites d'axe, alors cette distance de déplacement sera évidemment - de zéro. - -Point d'origine machine:: - Ce point est le point de référence de la machine. (Ne pas confondre avec le - point zéro de l'outil ou de la pièce). LinuxCNC référence tout à partir de ce point. - Il doit être à l'intérieur des limites logicielles sinon la machine ne pourrait - jamais l'atteindre. LinuxCNC utilise la position du contact d'origine machine - pour calculer la position d'origine. Si la machine ne dispose pas de contact - il faudra la positionner manuellement sur les points d'origine, cocher les axes - l'un après l'autre et pour chacun, presser le bouton _POM des axes_. - Dans Axis, le symbole indiquant que l'origine machine de l'axe est connue - s'affichera alors à droite de la visu de l'axe concerné. - -Course de la table:: - C'est la distance maximale que l'axe peut parcourir dans chaque direction. - Ceci peut ou ne peut pas être mesuré directement de l'origine aux contacts - de fin de course. Le cumul des courses positives et négatives sera égal à la - longueur de course totale. - -Course positive:: - C'est la distance depuis l'origine de l'axe, jusqu'au fin de course de limite - du côté positif. Si l'origine de l'axe est placée sur le fin de course de - limite positive, cette valeur est égale à zéro. Les valeurs possibles sont - positives ou égales à zéro. - -Course négative:: - C'est la distance depuis l'origine de l'axe, jusqu'au fin de course de limite - du coté négatif. Ou la course totale moins la course positive. Si l'origine de l'axe - est placée sur le fin de course de limite négative, cette valeur est de zéro. - Les valeurs possibles sont négatives égales à zéro. - Si la valeur entrée dans PNCconf n'est pas négative, elle sera déduite des - autres valeurs. - -Position de l'origine:: - C'est la position ou se termine la séquence de prise d'origine machine. - Elle est référencée par rapport à l'origine et peut être positive, si cette - position finale est du coté positif ou négative, si cette position finale est - du coté négatif. - -Position du contact d'origine machine:: - C'est la distance depuis le contact d'origine jusqu'à la position de l'origine. - Il peut être négatif ou positif selon de quel côté de l'origine il est placé. - Depuis ce point, si l'axe doit être déplacé dans la direction positive pour - arriver à l'origine, alors la valeur sera négative, sinon elle sera positive. - Si il est mis à zéro, l'origine sera à l'emplacement du contact (plus la distance - éventuelle pour attendre l'index suivant, si une règle de mesure, ou un codeur - de position avec index sont utilisés). - -Vitesse de recherche du contact d'origine machine:: - Vitesse utilisée pendant le déplacement vers le contact d'origine machine en - unités par minute. - -Direction de recherche du contact d'origine machine:: - Direction de la recherche de l'origine machine. Négatif ou Positif selon le - coté de l'axe où se trouve le contact d'origine machine. - -Vitesse d'acquisition du contact d'origine machine:: - Vitesse lente de détection du contact d'origine machine, en unités par minute. - -Vitesse vers la position de l'origine:: - Vitesse utilisée pour déplacer le mobile de la position d'acquisition du contact - d'origine machine, vers la position finale de l'origine, en unités par minute. - Si réglée à 0 c'est la vitesse de déplacement rapide qui sera utilisée. - -Direction d'acquisition du contact d'origine machine:: - Direction d'acquisition de l'origine machine, peut être dans la même direction - que la recherche, ou à l'opposé. - -Origine machine sur l'index du codeur:: - LinuxCNC attendra l'impulsion d'index du codeur après l’acquisition du contact - d'origine machine. - -Utiliser un fichier de compensation de jeu:: - Permet de spécifier le nom et le type d'un fichier de compensation de jeu. - Permet une compensation sophistiquée. Voir le manuel. - -Utiliser la compensation de jeu:: - Permet de régler la compensation du jeu de la vis, ne peut pas être utilisé - en même temps qu'un fichier de compensation. Voir le manuel. - -.Dessin d'aide à l'identification des axes et fins de course - -image::images/pncconf-diagram-lathe_fr.png[] - -Ce dessin devrait aider à comprendre un exemple de positionnement des contacts -de fin de course et les directions standards sur un tour. -Sur ce tour, l'axe Z a deux contacts de fin de course, le contact positif est -utilisé également comme contact de prise d'origine machine. La position du zéro -machine (origine machine de l'axe) est placée à la limite négative. -Le bord gauche du chariot est la came qui active le fin de course de la limite -négative et le côté droit, la came qui active le fin de course de la limite positive. -Nous voyons que la position finale de l'origine se trouve à 4 pouces de distance -de l'origine de l'axe, du côté positif. -Si le chariot était déplacé jusqu'à la limite positive, nous mesurerions 10 pouces -entre la limite négative et la came du côté négatif du chariot (fin de course -bord gauche du chariot). - -Configuration de la broche - -Si un signal de contrôle de la broche est présent, cette page permet de le configurer. - -TIP: Beaucoup d'options de cette page ne sont visibles que si les sélections -appropriées ont été choisies dans les pages précédentes. Si des signaux de broche -ont été sélectionnés, alors cette page est disponible pour les configurer. - -.Configuration de la broche - -image::images/pncconf-spindle-config_fr.png[] - -Cette page est semblable à la page de configuration des moteurs d'axe mais il y a -quelques différences: À moins que l'on ait choisi un moteur pas à pas pour la -conduite de la broche il n'y a pas d'accélération ni de limitation de vitesse. -Il n'y a pas de support pour les changements de vitesse ni pour les gammes de vitesses. -Si une option VCP d'affichage de vitesse broche est choisie, alors la -_Vitesse broche atteinte_, _l'échelle_, _la vitesse_ et _les réglages des -filtres_ seront visibles. L’information sur la vitesse de broche permet à LinuxCNC -d'attendre que celle-ci ait atteint la vitesse de consigne, avant de déplacer les axes. -C'est particulièrement pratique sur les tours, lors de l'utilisation d'une vitesse -de coupe constante avec de grands changements de diamètre. Il exige un retour -d'information par codeur ou par un signal de vitesse broche numérique, typiquement -connecté à un variateur de vitesse (VFD). - -En utilisant le retour d'information d'un codeur, il est possible de choisir une -plage de _vitesse broche atteinte_ comme tolérance de vitesse, au delà de laquelle, -la vitesse broche sera admise comme étant la vitesse de consigne. - -En utilisant le retour d'information d'un codeur, l'affichage de vitesse VCP peut -être irrégulier, des filtres peuvent dans ce cas, être utilisés pour corriger -l'affichage. L'échelle du codeur doit être réglée à la valeur -_comptage codeur/rapport de réduction utilisé_. -Si une seule entrée est utilisée pour le codeur de broche, la ligne suivante doit -être ajoutée: - ----- -setp hm2_7i43.0.encoder.00.counter-mode 1 ----- - -(Changer le nom de la carte et le numéro de codeur selon besoins) dans le -fichier HAL personnalisé. Lire la section codeurs dans Hostmot2 pour plus -d'information sur les modes de comptage. - -== Options avancées - -Cette page permet de régler les commandes HALUI, de charger classicladder. Elle -propose des exemples de programmes en Ladder. -Si l'option GladeVCP a été choisie, comme pour la mise à zéro de l'axe sur -l'origine pièce. Les commandes nécessaires s'afficheront. -Voir le manuel de HALUI pour utiliser des commandes personnalisées halcmds. -Parmi les exemples de programmes ladder: Le programme Estop permet de gérer un -contact externe d'arrêt d'urgence ou permet à l'interface graphique de déclencher -l'arrêt d'urgence. La commande périodique de la pompe du graissage centralisé est -disponible. + -Le contact de mise au zéro pièce de l'axe Z (longueur d'outil) s'utilise avec -une plaque de référence, le contact (touch-off) de GladeVCP et les commandes -spéciales HALUI sont là pour permettre rapidement, une recherche de l'origine pièce. - -Le programme série _modbus_ est un squelette de programme, vierge, préréglé pour -l'utilisation de classicladder avec le protocole série modbus. Voir la section -classicladder dans le manuel. - - -.Options avancées - -image::images/pncconf-advanced_fr.png[] - -== Composants de HAL - -Cette page permet d'ajouter des composants de HAL supplémentaires qui seront utilisés -dans les fichiers HAL personnalisés. De cette manière il n'est pas nécessaire -d'éditer le fichier HAL principal en permettant malgré tout à l'utilisateur de -définir ses propres composants. - -.Composants de HAL - -image::images/pncconf-hal_fr.png[] - -La première sélection est prévue pour les composants que pncconf utilise en interne. -Il est possible de configurer pncconf pour qu'il charge les instances additionnelles -pour votre fichier HAL personnalisé. -Sélectionner le nombres d'instances dont a besoin le fichier de personnalisation -et pncconf ajoutera ce qui est nécessaire. -Si 2 composants sont nécessaires et que pncconf à besoin d'un composant interne, -il chargera 3 composants et utilisera le dernier. - -Composants de commande personnalisés:: - Cette sélection permettra de charger des composants de HAL que pncconf - n'utilise pas. - Ajoute les commandes loadrt ou loadusr dans l'entête _loading command_. - Ajoute la commande addf dans l'entête _Thread command_. - Les composants seront ajoutés au thread entre la lecture des entrées et - l'écriture des sorties, dans l'ordre ou ils sont écrits dans thread command. - -== Utilisation avancée de PNCConf - -PNCconf fait de son mieux pour permettre un personnalisation souple à l'utilisateur, -PNCconf supporte les noms de signaux particuliers, le chargement de composants -personnalisés comme la personnalisation des fichiers de HAL et des microprogrammes. -Il y a aussi les noms de signaux que PNCconf fournit, indépendamment des options -choisies, pour les fichiers HAL personnalisés. - -Avec une conception réfléchie, la plupart des personnalisations devraient fonctionner, -même si des options doivent être modifiées par la suite dans PNCCONF. -Finalement, si les personnalisations vont au-delà du périmètre de travail de PNCCONF, -il sera possible d'utiliser PNCCONF pour construire une configuration de base, -ou d'utiliser une des configurations fournies en standards par LinuxCNC et de l'éditer -pour obtenir ce que est souhaité. - -Nom de signaux personnalisés:: - -Si un composant doit être connecté à quelque chose dans un fichier HAL personnalisé, -écrire un nom de signal unique dans la boîte de dialogue. Certains composants -ajouteront des suffixes au nom du signal personnalisé. - - Les codeurs ajoutent < Nom personnalisé >: - -position - -count - -velocity - -index-enable - -reset - - Les contrôles de moteurs pas à pas ajoutent: - -enable - -counts - -position-cmd - -position-fb - -velocity-fb - - Les PWM ajoutent: - -enable - -value - - Les broches GPIO auront juste le nom du signal d'entrée qui leur est connecté. - -De cette façon on peut établir des connexions à ces signaux dans les fichiers -personnalisés de HAL et avoir toujours la possibilité de les déplacer plus tard. - -Charger un microprogramme personnalisé:: - -PNCconf cherche le microprogramme sur le système et cherche ensuite le fichier XML -qu'il peut convertir et qu'il comprend. Ces fichiers XML sont seulement fournis -pour les microprogrammes officiellement délivrés par l'équipe LinuxCNC. Pour utiliser -un microprogramme personnalisé, il faut le convertir en tableau que PNCconf comprend -et ajouter son chemin dans le fichier de préférences de PNCCONF. Par défaut -le chemin recherché est sur le bureau, dans un dossier nommé _custom_firmware_ -contenant un fichier nommé firmware.py. - -Le fichier caché des préférence est dans le dossier home de l'utilisateur et se -nomme .pncconf-preferences, pour l'éditer il faut sélectionner _Afficher les -fichiers cachés_. On peut voir le contenu de ce fichier au premier démarrage de -PNCCONF. Presser le bouton d'aide et regarder la page de sortie. -Demander sur la liste de diffusion LinuxCNC ou sur le forum pour des renseignements -pour convertir un microprogramme personnalisé. -Tous les microprogrammes ne peuvent pas être utilisés avec PNCCONF. - -Fichiers HAL Personnalisés:: - Il y a quatre fichiers personnalisés utilisables pour ajouter des commandes a HAL: -- custom.hal est prévu pour les commandes HAL utilisées avant le chargement de - l'interface graphique. Il est exécuté après le fichier HAL de configuration - nommé : non-de-la-configuration.hal -- custom_postgui.hal est prévu pour les commandes qui doivent être exécutées après - le chargement de l'interface graphique Axis ou PYVCP autonomes. -// PYVCP a trouver -- custom_gvcp.hal est prévu pour les commandes qui doivent être exécutées après - le chargement de GLADE VCP. -- shutdown.hal est prévu pour des commandes exécutées quand LinuxCNC se ferme de façon - contrôlée. - -// vim: set syntax=asciidoc: - - - - diff --git a/docs/src/config/stepconf.txt b/docs/src/config/stepconf.txt deleted file mode 100644 index 4666b99bade..00000000000 --- a/docs/src/config/stepconf.txt +++ /dev/null @@ -1,549 +0,0 @@ -= Stepper Configuration Wizard - -[[cha:stepconf-wizard]] (((Stepconf Wizard))) - -LinuxCNC is capable of controlling a wide range of machinery -using many different hardware interfaces. - -Stepconf is a program that generates configuration files for LinuxCNC -for a specific class of CNC machine: -those that are controlled via a 'standard parallel port', and -controlled by signals of type 'step & direction'. - -Stepconf is installed when you install LinuxCNC and is in the CNC menu. - -Stepconf places a file in the linuxcnc/config directory -to store the choices for each configuration you create. -When you change something, you need to pick the file -that matches your configuration name. -The file extension is .stepconf. - -The Stepconf Wizard needs at least 800 x 600 screen resolution -to see the buttons on the bottom of the pages. - -[float] -Step by Step Instructions -========================= - -== Entry Page[[sec:Entry-Page]] - -.Entry Page[[cap:Entry-Page]] - -image::images/stepconf-config.png[align="center"] - -* 'Create New' - Creates a fresh configuration. - -* 'Modify' - Modify an existing configuration. After selecting this a file -picker pops up so you can select the .stepconf file for modification. If you -made any modifications to the main .hal or the .ini file these will be lost. -Modifications to custom.hal and custom_postgui.hal will not be changed by -the Stepconf Wizard. - -* 'Create Desktop Shortcut' - This will place a link on your desktop to the -files. - -* 'Create Desktop Launcher' - This will place a launcher on your desktop to -start your application. - -== Basic Information[[sec:Basic-Information]] - -.Basic Information Page[[cap:Basic-Information-Page]] - -image::images/stepconf-basic.png[align="center"] - -* 'Machine Name' - Choose a name for your machine. Use only uppercase letters, -lowercase letters, digits, - and _. - -* 'Axis Configuration' - Choose XYZ (Mill), XYZA (4-axis mill) or XZ (Lathe). - -* 'Machine Units' - Choose Inch or mm. All subsequent entries will be in the -chosen units - -* 'Driver Type' - If you have one of the stepper drivers listed in the pull down -box, choose it. Otherwise, select 'Other' and find the timing values in your -driver's data sheet and enter them as 'nano seconds' in the 'Driver Timing -Settings'. If the data sheet gives a value in microseconds, multiply by 1000. -For example, enter 4.5us as 4500ns. - -A list of some popular drives, along with their timing values, is on the -LinuxCNC.org Wiki under -http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Stepper_Drive_Timing[Stepper Drive Timing]. - -Additional signal conditioning or isolation such as optocouplers and RC filters -on break out boards can impose timing constraints of their own, in addition -to those of the driver. You may find it necessary to add some time to the -drive requirements to allow for this. - -The LinuxCNC Configuration Selector has configs for Sherline already configured. - -* 'Step Time' - How long the step pulse is 'on' in nano seconds. If your not -sure about this setting a value of 10,000 will work with most drives. - -* 'Step Space' - Minimum time between step pulses in nano seconds. If your -not sure about this setting a value of 10,000 will work with most drives. - -* 'Direction Hold' - How long the direction pin is held after a change of -direction in nanoseconds. If your not sure about this setting a value of -200,000 will work with most drives. - -* 'Direction Setup' - How long before a direction change after the last -step pulse in nanoseconds. If your not sure about this setting a value of -200,000 will work with most drives. - -* 'First Parport' - Usually the default of 0x378 is correct. - -* 'Second Parport' - If you need to specify additional parallel ports enter -the address and the type. For information on finding the address of PCI -parallel ports see the Port Address in the Integrator Manual. -(Try 0x278 or 0x3BC first.) - -* 'Base Period Maximum Jitter' - Enter the result of the Latency Test here. -To run a latency test press the 'Test Base Period Jitter' button. See the -<> section for more details. - -* 'Max Step Rate' -Stepconf automatically calculates the Max Step Rate based -on the driver characteristics entered and the latency test result. - -* 'Min Base Period' - Stepconf automatically determines the Min Base Period -based on the driver characteristics entered and latency test result. - -* 'Onscreen Prompt For Tool Change' - If this box is checked, LinuxCNC will -pause and prompt you to change the tool when 'M6' is encountered. This feature -is usually only useful if you have presettable tools. - -== Latency Test[[latency-test]](((Latency Test))) - -While the test is running, you should 'abuse' the computer. Move -windows around on the screen. Surf the web. Copy some large files -around on the disk. Play some music. Run an OpenGL program such as -glxgears. The idea is to put the PC through its paces while the latency -test checks to see what the worst case numbers are. Run the test at least a few -minutes. The longer you run the test the -better it will be at catching events that might occour at less frequent -intervals. This is a test for your computer only, so no hardware needs -to be connected to run the test. - -[WARNING] -Do not attempt run LinuxCNC while the latency test is running. - -.Latency Test[[cap:Latency-Test]] - -image::images/latency.png[align="center"] - -Latency is how long it takes the PC to stop what it is doing and -respond to an external request. In our case, the request is the -periodic 'heartbeat' that serves as a timing reference for the step -pulses. The lower the latency, the faster you can run the heartbeat, -and the faster and smoother the step pulses will be. - -Latency is far more important than CPU speed. The CPU isn't the only -factor in determining latency. Motherboards, video cards, USB ports, -SMI issues, and a number of other things can hurt the latency. - -.Troubleshooting SMI Issues (LinuxCNC.org Wiki) -************************************************************ -Fixing Realtime problems caused by SMI on Ubuntu - -http://wiki.linuxcnc.org/cgi-bin/wiki.pl?FixingSMIIssues -************************************************************ - -The important numbers are the 'max jitter'. In the example above 9075 -nanoseconds, or 9.075 microseconds, is the highest jitter. -Record this number, and enter it in -the Base Period Maximum Jitter box. - -If your Max Jitter number is less than about 15-20 microseconds -(15000-20000 nanoseconds), the computer should give very nice results -with software stepping. If the max latency is more like 30-50 -microseconds, you can still get good results, but your maximum step -rate might be a little disappointing, especially if you use -microstepping or have very fine pitch leadscrews. If the numbers are -100 us or more (100,000 nanoseconds), then the PC is not a good -candidate for software stepping. Numbers over 1 millisecond (1,000,000 -nanoseconds) mean the PC is not a good candidate for LinuxCNC, regardless of -whether you use software stepping or not. - -== Parallel Port Setup[[sec:Parallel-Port-Setup]](((Parallel Port Setup))) - -.Parallel Port Setup Page[[cap:Parallel-Port-Setup]] - -image::images/stepconf-pinout.png[align="center"] - -For each pin, choose the signal which matches -your parallel port pinout. -Turn on the 'invert' check box if the signal is inverted -(0V for true/active, 5V for false/inactive). - -* 'Output pinout presets' - Automatically set pins 2 through 9 according to -the Sherline standard (Direction on pins 2, 4, 6, 8) or the Xylotex standard -(Direction on pins 3, 5, 7, 9). - -* 'Inputs and Outputs' - If the input or output is not used set the option -to 'Unused'. - -* 'External E Stop' - This can be selected from an input pin drop down box. -A typical E Stop chain uses all normally closed contacts. - -* 'Homing & Limit Switches' - These can be selected from an input pin drop -down box for most configurations. - -* 'Charge Pump' - If your driver board requires a charge pump signal select -Charge Pump from the drop down list for the output pin you wish to connect -to your charge pump input. The charge pump output is connected to the base -thread by Stepconf. The charge pump output will be about 1/2 of the maximum -step rate shown on the Basic Machine Configuration page. - -== Axis Configuration[[sec:Axis-Configuration]](((Axis Configuration))) - -.Axis Configuration Page[[cap:Axis-Configuration-Page]] - -image::images/stepconf-axis.png[align="center"] - -* 'Motor Steps Per Revolution' - The number of full steps per motor revolution. -If you know how many degrees per step the motor is (e.g., 1.8 degree), then -divide 360 by the degrees per step to find the number of steps per motor -revolution. - -* 'Driver Microstepping' - The amount of microstepping performed by the driver. -Enter '2' for half-stepping. - -* 'Pulley Ratio' - If your machine has pulleys between the motor and leadscrew, -enter the ratio here. If not, enter '1:1'. - -* 'Leadscrew Pitch' - Enter the pitch of the leadscrew here. If you chose -'Inch' units, enter the number of threads per inch If you chose 'mm' units, -enter the number of millimeters per revolution (e.g., enter 2 for 2mm/rev). -If the machine travels in the wrong direction, enter a negative number here -instead of a positive number, or invert the direction pin for the axis. - -* 'Maximum Velocity' -Enter the maximum velocity for the axis in units per -second. - -* 'Maximum Acceleration' - The correct values for these items can only be -determined through experimentation. See -<> to set the speed and -<> to set the -acceleration. - -* 'Home Location' - The position the machine moves to after completing the -homing procedure for this axis. For machines without home switches, this is -the location the operator manually moves the machine to before pressing the -Home button. If you combine the home and limit switches you must move off of -the switch to the home position or you will get a joint limit error. - -* 'Table Travel' - The range of travel for that axis based on the machine -origin. The home location must be inside the 'Table Travel' and not equal to -one of the Table Travel values. - -* 'Home Switch Location' - The location at which the home switch trips -or releases reletive to the machine origin. This item and the two below only -appear when Home Switches were chosen in the Parallel Port Pinout. If -you combine home and limit switches the home switch location can not be -the same as the home position or you will get a joint limit error. - -* 'Home Search Velocity' - The velocity to use when searching for the home -switch. If the switch is near the end of travel, this velocity must be chosen - so that the axis can decelerate to a stop before hitting the end of travel. -If the switch is only closed for a short range of travel -(instead of being closed from its trip point to one end of travel), -this velocity must be chosen so that the axis can decelerate to a stop -before the switch opens again, and homing must always be started from -the same side of the switch. -If the machine moves the wrong direction at the beginning of the -homing procedure, negate the value of 'Home Search Velocity'. - -* 'Home Latch Direction' - Choose 'Same' to have the axis back off the switch, -then approach it again at a very low speed. The second time the switch -closes, the home position is set. Choose 'Opposite' to have the axis back off -the switch and when the switch opens, the home position is set. - -* 'Time to accelerate to max speed' - Time to reach maximum speed calculated -from 'Max Acceleration' and 'Max Velocity'. - -* 'Distance to accelerate to max speed' - Distance to reach maximum speed from -a standstill. - -* 'Pulse rate at max speed' - Information computed based on the values entered -above. The greatest 'Pulse rate at max speed' determines the 'BASE_PERIOD'. -Values above 20000Hz may lead to slow response time or even lockups -(the fastest usable pulse rate varies from computer to computer) - -* 'Axis SCALE' - The number that will be used in the ini file [SCALE] setting. -This is how many steps per user unit. - -* 'Test this axis' - This will open a window to allow testing for each axis. -This can be used after filling out all the information for this axis. - -=== Test This Axis - -.Test This Axis[[cap:Test-This-Axis]] - -image::images/stepconf-test.png[align="center"] - -Test this axis is a basic tester that only outputs step and direction signals -to try different values for acceleration and velocity. - -[IMPORTANT] -In order to use test this axis you have to manually enable the axis if this -is required. If your driver has a charge pump you will have to bypass it. -Test this axis does not react to limit switch inputs. Use with caution. - -==== Finding Maximum Velocity[[finding-maximum-velocity]](((Finding Maximum Velocity))) - -Begin with a low Acceleration -// comment out latexmath until a fix is found for the html docs -// (e.g., latexmath:[ 2 in/s^2 ] or latexmath:[ 50 mm/s^2 ]) -(for example, *+2 inches/s^2^+* or *+50 mm/s^2^+*) -and the velocity you hope to attain. -Using the buttons provided, jog the axis to near the center of travel. -Take care because with a low acceleration value, -it can take a surprising distance for the axis to decelerate to a stop. - -After gaging the amount of travel available, -enter a safe distance in Test Area, keeping in mind that -after a stall the motor may next start to move in an unexpected direction. -Then click Run. -The machine will begin to move back and forth along this axis. -In this test, it is important that the combination of Acceleration and -Test Area allow the machine to reach the selected Velocity and 'cruise' for -at least a short distance -- the more distance, the better this test is. -The formula *+d = 0.5 * v * v/a+* -// latexmath:[ d = 0.5 * v * v/a ] -gives the minimum distance required to reach the -specified velocity with the given acceleration. -If it is convenient and safe to do so, -push the table against the direction of motion to simulate cutting forces. -If the machine stalls, reduce the speed and start the test again. - -If the machine did not obviously stall, click the 'Run' button off. The axis -now returns to the position where it started. If the position is incorrect, -then the axis stalled or lost steps during the test. Reduce Velocity and start -the test again. - -If the machine doesn't move, stalls, or loses steps, no matter how low -you turn Velocity, verify the following: - -- Correct step waveform timings -- Correct pinout, including 'Invert' on step pins -- Correct, well-shielded cabling -- Physical problems with the motor, motor coupling, leadscrew, etc. - -Once you have found a speed at which the axis does not stall or lose steps -during this testing procedure, reduce it by 10% and use that as the axis -'Maximum Velocity'. - -==== Finding Maximum Acceleration[[finding-maximum-acceleration]](((Finding Maximum Acceleration))) - -With the Maximum Velocity you found in the previous step, -enter the acceleration value to test. -Using the same procedure as above, -adjust the Acceleration value up or down as necessary. -In this test, it is important that the combination of -Acceleration and Test Area allow the machine to reach the selected Velocity. -Once you have found a value at which the axis -does not stall or lose steps during this testing procedure, -reduce it by 10% and use that as the axis Maximum Acceleration. - -== Spindle Configuration[[sec:Spindle-Configuration]](((Spindle Configuration))) - -.Spindle Configuration Page[[cap:Spindle-Configuration-Page]] - -image::images/stepconf-spindle.png[align="center"] - -This page only appears when 'Spindle PWM' is chosen in the -'Parallel Port Pinout' page for one of the outputs. - -=== Spindle Speed Control[[spindle-speed-control]](((spindle speed control))) - -If 'Spindle PWM' appears on the pinout, -the following information should be entered: - -* 'PWM Rate' - The 'carrier frequency' of the PWM signal to the spindle. Enter -'0' for PDM mode, which is useful for generating an analog control voltage. -Refer to the documentation for your spindle controller for the appropriate value. - -* 'Speed 1 and 2, PWM 1 and 2' - The generated configuration file uses a simple -linear relationship to determine the PWM value for a given RPM value. If the -values are not known, they can be determined. For more information see -<>. - -=== Spindle-synchronized motion[[sub:Spindle-synchronized-motion-lathe]] -(((Spindle-synchronized motion)))(((Lathe Threading))) - -When the appropriate signals from a spindle encoder are connected to -LinuxCNC via HAL, LinuxCNC supports lathe threading. -These signals are: - -* 'Spindle Index' - Is a pulse that occurs once per revolution of the spindle. - -* 'Spindle Phase A' - This is a pulse that occurs in multiple equally-spaced -locations as the spindle turns. - -* 'Spindle Phase B (optional)' - This is a second pulse that occurs, but with -an offset from Spindle Phase A. The advantages to using both A and B are -direction sensing, increased noise immunity, and increased resolution. - -If 'Spindle Phase A' and 'Spindle Index' appear -on the pinout, the following information should be entered: - -* 'Cycles per revolution' - The number of cycles of the 'Spindle A' signal -during one revolution of the spindle. This option is only enabled when an -input has been set to 'Spindle Phase A' - -* 'Maximum speed in thread' - The maximum spindle speed used in threading. -For a high spindle RPM or a spindle encoder with high resolution, a low value -of 'BASE_PERIOD' is required. - -=== Determining Spindle Calibration[[determining-spindle-calibration]] -(((Determining Spindle Calibration))) - -Enter the following values in the Spindle Configuration page: - -[width="80%"] -|============================ -|Speed 1: | 0 | PWM 1: | 0 -|Speed 2: | 1000 | PWM 2: | 1 -|============================ - -Finish the remaining steps of the configuration process, -then launch LinuxCNC with your configuration. -Turn the machine on and select the MDI tab. -Start the spindle turning by entering: 'M3 S100'. -Change the spindle speed by entering a different S-number: 'S800'. -Valid numbers (at this point) range from 1 to 1000. - -For two different S-numbers, measure the actual spindle speed in RPM. -Record the S-numbers and actual spindle speeds. Run Stepconf again. -For 'Speed' enter the measured speed, and -for 'PWM' enter the S-number divided by 1000. - -Because most spindle drivers are somewhat nonlinear in their response -curves, it is best to: - -- Make sure the two calibration speeds are not too close together in RPM -- Make sure the two calibration speeds are in the range of speeds you -will typically use while milling - -For instance, if your spindle will go from 0 RPM to 8000 RPM, -but you generally use speeds from 400 RPM (10%) to 4000 RPM (100%), -then find the PWM values that give 1600 RPM (40%) and 2800 RPM (70%). - -== Advanced Configuration Options[[sec:Advanced-Configuration-Options]](((Advanced Configuration Options))) - -.Advanced Configuration[[cap:Advanced-Configuration]] - -image::images/stepconf-advanced.png[align="center"] - -* 'Include Halui' - This will add the Halui user interface component. See the -Integrator Manual for more information on Halui. - -* 'Include pyVCP' - This option adds the pyVCP panel base file or a sample file -to work on. See the Integrator Manual for more information on pyVCP. - -* 'Include ClassicLadder PLC' - This option will add the ClassicLadder PLC -(Programmable Logic Controller). See the Integrator Manual for more information -on ClassicLadder. - -== Machine Configuration Complete[[sub:Machine-Configuration-Complete]] - -Click 'Apply' to write the configuration files. -Later, you can re-run this program and tweak the settings you entered before. - -== Axis Travel, Home Location, and Home Switch Location[[sec:Axis-Travel-Home]] -(((Axis Travel)))(((Home Location)))(((Home Switch Location))) - -For each axis, there is a limited range of travel. -The physical end of travel is called the 'hard stop'. - -Before the 'hard stop' there is a 'limit switch'. -If the limit switch is encountered during normal operation, -LinuxCNC shuts down the motor amplifier. -The distance between the 'hard stop' and 'limit switch' -must be long enough to allow an unpowered motor to coast to a stop. - -Before the 'limit switch' there is a 'soft limit'. -This is a limit enforced in software after homing. -If a MDI command or g code program would pass the soft limit, it is not executed. -If a jog would pass the soft limit, it is terminated at the soft limit. - -The 'home switch' can be placed anywhere within the travel (between hard stops). -As long as external hardware does not deactivate the motor amplifiers -when the limit switch is reached, one of the limit switches -can be used as a home switch. - -The 'zero position' is the location on the axis that is 0 in -the machine coordinate system. -Usually the 'zero position' will be within the 'soft limits'. -On lathes, constant surface speed mode requires that machine 'X=0' -correspond to the center of spindle rotation when no tool offset is in effect. - -The 'home position' is the location within travel that the axis will -be moved to at the end of the homing sequence. -This value must be within the 'soft limits'. -In particular, the 'home position' -should never be exactly equal to a 'soft limit'. - -=== Operating without Limit Switches[[sub:Operating-without-Limit]] -(((Operating without Limit Switches))) - -A machine can be operated without limit switches. In this case, only -the soft limits stop the machine from reaching the hard stop. -Soft limits only operate after the machine has been homed. - -=== Operating without Home Switches[[sub:Operating-without-Home]] -(((Operating without Home Switches))) - -A machine can be operated without home switches. -If the machine has limit switches, but no home switches, -it is best to use a limit switch as the home switch -(e.g., choose 'Minimum Limit + Home X' in the pinout). -If the machine has no switches at all, or the limit -switches cannot be used as home switches for another reason, then the -machine must be homed 'by eye' or by using match marks. Homing by eye -is not as repeatable as homing to switches, but it still allows the -soft limits to be useful. - -=== Home and Limit Switch wiring options[[sub:Home-and-Limit]] -(((Home and Limit Switch wiring options))) - -The ideal wiring for external switches would be one input per switch. -However, the PC parallel port only offers a total of 5 inputs, -while there are as many as 9 switches on a 3-axis machine. -Instead, multiple switches are wired together in various -ways so that a smaller number of inputs are required. - -The figures below show the general idea of wiring multiple switches -to a single input pin. -In each case, when one switch is actuated, -the value seen on INPUT goes from logic HIGH to LOW. -However, LinuxCNC expects a TRUE value when a switch is closed, -so the corresponding 'Invert' box -must be checked on the pinout configuration page. -The pull up resistor show in the diagrams pulls the input high -until the connection to ground is made and then the input goes low. -Otherwise the input might float between on and off when the circuit is open. -Typically for a parallel port you might use 47k. - -.Normally Closed Switches[[cap:Normally-Closed-Switches]] - -Wiring N/C switches in series (simplified diagram) - -image::images/switch-nc-series.png[align="center"] - -.Normally Open Switches[[cap:Normally-Open-Switches]] - -Wiring N/O switches in parallel (simplified diagram) - -image::images/switch-no-parallel.png[align="center"] - -The following combinations of switches are permitted in Stepconf: - -* Combine home switches for all axes -* Combine limit switches for all axes -* Combine both limit switches for one axis -* Combine both limit switches and the home switch for one axis -* Combine one limit switch and the home switch for one axis - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/config/stepconf_es.txt b/docs/src/config/stepconf_es.txt deleted file mode 100755 index b8bbca62308..00000000000 --- a/docs/src/config/stepconf_es.txt +++ /dev/null @@ -1,653 +0,0 @@ -= Asistente de configuracion Stepconf - -[[cha:stepconf-wizard]] (((Stepconf Wizard))) - -LinuxCNC es capaz de controlar un vasto rango de diferentes tipos de maquinaria, - utilizando diferentes interfaces de Hardware. - -Stepconf es un programa que genera archivos de configuracion para LinuxCNC -para un tipo especifico de maquina CNC: -Aquellas que son controladas atravez de un 'Puerto paralelo estandar', y -que son controladas utilizando las senales 'Paso y Direccion' - -Stepconf se instala automaticamente cuando instala LinuxCNC y se encuentra en el menu CNC. - -Stepconf genera un archivo en el directorio emc2/config -en el cual guarda las selecciones de cada configuracion que usted genere. -Cuando se desea cambia algo, se necesita seleccionar el archivo -que tenga el mismo numaero que la configuracion que desea modificar. -La extencion del archivo es .stepconf. - -El asistente Stepconf necesita al menos una resolucion de pantalla de 800 x 600 -para que los botones de la parte baja de la pantalla sean visibles. - - -[float] -Instrucciones paso a paso -========================= - -== Pagina de entrada[[sec:Entry-Page]] - -.Pagina de entrada[[cap:Entry-Page]] - -image::images/stepconf-config.png[align="center"] - -Create New:: - Crea una configuracion nueva. - -Modify:: - Modifica una configuracion existente. - Despues de seleccionar esta opcion una pantalla de seleccion de archivo - aparecera y usted devera el archivo con extencion .stepconf que dese modificar. - Si usted relizo alguna modificacion previa a los archivos principales .hal o .ini estas modificaciones se perderan. - Modificaciones a los archivos custom.hal y custom_postgui.hal no seran canbiadas por el - asistente Stepconf.Create Desktop Shortcut:: - This will place a link on your desktop to the files. - -Create Desktop Shortcut:: - Se generara un acceso rapido en su a los archivos. - -Create Desktop Launcher:: - Se generara un acceso rapido pra iniciar la aplicacion. - - -== Informacion Basica[[sec:Basic-Information]] - -.Informacion Basica[[cap:Basic-Information-Page]] - -image::images/stepconf-basic.png[] - -Machine Name:: - (((Machine Name))) - Seleccione un nombre para su maquina - Utilise solo letras mayusculas, minusculas, digitos, '-' y '_'. - -Axis Configuration:: - (((Axis Configuration))) - Seleccione XYZ (Fresadora), XYZA (Fresadora de 4 ejes) o XZ (Torno). - -Machine Units:: - (((Machine Units))) - Seleccione entre pulgadas y milimetros. Todas las preguntas posteriores - (Tales como el largo de los ejes, el paso de los tornillos, etc) - deveran ser contestadas utilizando las unidades seleccionadas - -Driver Type:: - (((Driver Type))) - Si usted tiene uno de los controladores de motor a pasos listados en el menu desplegable, seleccionelo directamente. - En cualquier otor caso, busque los 4 valores de tiempo necesarios - utilize los manuales de su controlador y rellene los campos. - Si sus manuales le dan los datos en microsegundos multipliquelos por 1000. - por ejemplo, si el manual marca 4.5us escriva 4500ns. - -Una lista de controladores populares, asi como sus tiempos -puede ser consultada en la pagina wiki de LinuxCNC.org en la siguiente direccion -http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Stepper_Drive_Timing[Stepper Drive Timing]. - -Acondicionamiento estra de senal o aislamiento electrico como el uso -de optoacopladores y filtros RC en targetas de aislamiento -pueden imponer diferentes valores de tiempo a los normales de su controlador. -Puede ser el caso que se requiera agregar tiempo extra a los valores de tiepo para compensar los filtros o aislamientos. -La seccionde seleccion de configuracion tiene las maquinas de marca Sherline ya configuradas para su uso en caso de que posea una de estas. - -Step Time:: - Cuanto tiempo el pulso de paso esta "Encendido" en nanosegundos. - -Step Space:: - Tiempo minimo entre dos pulsos de paso en nanosegundos. - -Direction Hold:: - Cuanto tiempo el pin de direccion deve ser mantenido despues de un cambio de direecion en nanosegundos. - -Direction Setup:: - Cuanto tiempo debe aver antes de un cambio de direccion despues del ultimo pulso de paso. - -First Parport:: - Usualmente la direcion en hexadecimal del primer puerto paralelo es 0x378. - -Second Parport:: - En caso de ser necesario especificar un puerto paralelo extra introduca la direccion - y el tipo. Para informacion de como encontrar la direccion de puertos paralelos PCI - vea la seccion Port Address en el manual de integrador. (Trate primero con 0x278 o 0x3BC) - - -Base Period Maximum Jitter:: - (((Base Period Maximum Jitter))) - Introduca el resultado de la prueba de latencia. - Para correr la prueba de latencia precione el boton "Test Base Period Jitter". - Vea la seccion de la prueba de latencia para mas detalles. - -Max Step Rate:: - (((Max Step Rate))) - Stepconf automaticamente calculara la taza maxima de pulsos de pasos - basandose en las caracteristicas del controlador de motor a pasos y el resultado de la prueba de latencia. - -Min Base Period:: - (((Min Base Period))) - Stepconf automaticamente calculara el periodo base minimo - basandose en las caracteristicas del controlador de motor a pasos y el resultado de la prueba de latencia. - -Onscreen Prompt For Tool Change:: - (((Onscreen Prompt For Tool Change))) - Si esta casilla es seleccionada, LinuxCNC pausara la ejecucion de un programa y le preguntara - por el cambio de herramienta cuando el comando *M6* sea encontrado en el codigo G. - Deje esta casilla sin checar amenos que usted planie agregar soporte - para una torreta automatica de cambio de herramientas en un archivo HAL personalizado. - -== Prueba de latencia[[sub:latency-test]](((Latency Test))) - -Mientras se ejecute la prueba, usted devera de 'abusar' de la computadora. Mueva -ventanas alrededor de la pantalla. Navegue en internet. Copie algunos archivos de gran tamano -en diferentes partes del disco duro. Reproduca musica. Corra algun programa OpenGl como glxgears. -La idea es poner a la computadora en apuros mientras se ejecuta la prueba para poder tener una idea de -cuales seran los peores casos de demanda a la computadora y sus tiempo de respuesta. -Ejecute la prueba almenos unos cuantos minutos. Entre mas tiempo la ejecute mas probable es que detecte -casos especiales que solo suceden en intervalos poco frecuentes. Esta prueba es solo para -la computadora, no se requiere que conecte los controladores de motores o la maquina herramienta. - -[WARNING] -No ejecute LinuxCNC mientras realiza la prueba de latencia. - -.Prueba de Latencia[[cap:Latency-Test]] - -image::images/latency.png[align="center"] - -Latencia es cuanto le tomara a la PC detenerse en lo que esta haciendo -y responder a una solicitud externa. En este caso, la solicitud -el el 'latido periodico' que sirve como referencia de tiempo -para la genracion de los pulsos de paso. -Entre menor sea la latencia, mas rapido se generaran los latidos, -y mas rapidos y suabes seran los pulsos de paso. - -La latencia es mucho mas importante que la velocidad del CPU. La velocidad -del CPU no es el unico factor determinate en la latencia. Tahgetas madre, targetas de video, puertos -USB, Problemas con SMI, y otra cantidad de coasas pueden afectar la latencia. - - -.Troubleshooting SMI Issues (LinuxCNC.org Wiki) -************************************************************ - -Encuentre soluciones a algunos problemas de SMI comunes en Ubuntu - -http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?FixingSMIIssues -************************************************************ - -Los numeros importantes son el "max jitter". en el ejemplo de abajo 9075 -nanosegundos, o 9.075 microsegundos, es el maximo retraso. -Guarde este numero, y escrivalo en la caja Base Period Maximum Jitter. - -Si el maximo retrazo es menor o se encuentra entre 15-20 microsegundos -(15000-20000 nanosegundos), la computadora deveria de dar muy buenos resultados -con la generacion de pulsos de pasos. Si la latencia maxima esta entre 30-50 -microsegundos, se pueden seguir obteniendo buenos resultados, pero la tasa -maxima de generacion de pulsos puede ser un poco desepcionante, especialmente si se usan -micropasos o un tornillo con un paso muy fino. si los numeros son -100us o mas (100 000 nanosegundos), la PC no es una buena candidata para la generacion -de pulsos de paso por software. Numeros arriva de 1 milisegundo (1 000 000 nanosegundos) -significan que la PC no es una buena candidata para ejecutar LinuxCNC, sin importar si se -usa generacion de pulsos de paso por software o no. - - -== Ajustes del puerto Paralelo[[sec:Parallel-Port-Setup]](((Parallel Port Setup))) - -.Pagina de ajuste del Puerto Paralelo[[cap:Parallel-Port-Setup]] - -image::images/stepconf-pinout.png[align="center"] - -Para cada pin se devera seleccionar la señal de control -que concuerde con la configuracion del puerto. - -Active la casilla "invert" si la señal de control requiere -ser invertida (0V para activo/Verdadero, 5V para inactivo/Falso) - -Esquemas de pines predefinidos:: - Se configuraran automaticamente los pines del 2 al 9 deacuerdo al estandar - de las maquinas Sherline (Direccion en los pines 2, 4, 6, 8) o Xylotex (Direccion en los - pines 3, 5, 7, 9). - -Entradas y Salidas:: - Si el pin no sera utilizado como entrada o salida seleccionarlo como "Unused". - -Señal de Paro Externo (E stop):: - Esta señal pude ser tipicamente seleccionado en la casilla desplegable. - Una cadena de señal de paro tipica utiliza solo contactos normalmnete cerrados en serie. - -Posicion de inicio y limites de seguridad (Homing & Limit Switches):: - Estos pines pueden ser seleccionados para la mayoria de las configuraciones - utilizando la casilla desplegable. - -Bomba de Carga (Charge Pump):: - Si el controlador de motores requiere de una se;al de bomba de carga - simplemente seleccione esta opcion de lalista desplegable y conecte la señal - al pin seleccionado. - La salida de la bomba de carga sera conectada a la tarea base por el programa Stepconf. - La salida de bomba de carga sera aproximadamente 1/2 de la maxima tasa de generacion - de pulsos de paso mostrados en la pagina de configuracion basica. - -== Configuracion de los Ejes[[sec:Axis-Configuration]](((Axis Configuration))) - -.Pagina de configuracion de eje[[cap:Axis-Configuration-Page]] - -image::images/stepconf-axis.png[align="center"] - -Pasos del motor por revolucion (Motor Steps Per Revolution):: - (((Motor Steps Per Revolution))) - El numero de pasos completos por revolucion del motor. - Si solo se tiene el dato de los grados por paso del motor (ejemplo 1.8 grados), - se deve dividir 360 por el numero de grados por paso - para encontrar el numero de pasos por revolucion. - -Micro pasos (Driver Microstepping):: - (((Driver Microstepping))) - El numero de micropasos producidos por el controlador por cada paso fisico completo del motor. - entre "2" para medio paso. - (ejemplo, si el controlador produce 1/10 de giro de un paso completo - en la flecha del motor por cada pulso de paso que recive, escriva 10 en la casilla. - -Relacion de Poleas (Pulley Ratio):: - (((Pulley Ratio))) - Si su maquina tiene poleas o engranes entre el motor y el tornillo, - escriva la relacion aqui. Si no, escriva "1:1". - -Paso del tornillo (Leadscrew Pitch):: - (((Leadscrew Pitch))) - Entre el paso del tornillo aqui. - Si se selecciono unidades en "Inch", entre el numero de - cuerdas por pulgada (ejemplo, entre 8 para 8 TPI). - Si se tiene un tornillo con multiples cuerdas se requiere saber - cuantas vueltas por pulgada se requieren para mover la "nues". - Si se selecciono 'mm' como unidades, entre el numero de milimetros que la "nues" - se movera por revolucion (ejemplo, entre 2 para 2 mm/rev). - Si la maquina se mueve en la direccion opuesta a la esperada, - entre un valor negativo, o invierta la direccion del pin para el eje. - -Velocidad Maxima (Maximum Velocity):: - (((Maximum Velocity))) - Entre la velocidad maxima del eje en unidades por segundo. - -Aceleracion Maxima (Maximum Acceleration):: - (((Maximum Acceleration))) - El valor correcto de esta casilla solo puede ser determinado - por experimentacion. Vea - <> para ajustar la velocidad - <> para ajustar la aceleracion. - -Posicion de Inicio (Home Location):: - (((Home Location))) - La posicion a la que la maquina se movera despues de completar - el procedimiento de inicio del eje. - Para maquinas sin interruptores de posicion de inicio, - esta es la posicion a la cual el operador devera mover la maquina - antes de precionar el boton de inicializanon del eje (Home). - Si se combinan los interruptores de inicio y de limite - se devera mover la maquina fuera del interruptor para inicializar el eje - o se recivira un error de limite en el eje. - -Area de la bancada (Table Travel):: - (((Table Travel))) - El rango de viaje que el codigo g no podra sobrepasar. - La posicion de inicializacion del eje deve estar dentro del area de bancada. - En particular, tener la posicion de inicializacion (Home) de un eje exactamente - en un limite del area de bancada producira una configuracion invalida. - -Localizacionde los interruptores de inializacion(Home Switch Location):: - (((Home Switch Location))) - La posicion en la cual el interruptor de inializacion se activa o desactiva - durante un proceso de inicializacion. Este apartado y los dos siguientes - solo apareceran cuando se seleccione la existencia de interruptores de limite - en la configuracion del los pines del puerto paralelo. Si se combinan los - interruptores de limite y de inicializacion la posicion del interruptor de inicializacion - no puede ser la misma que la posicoin de inicializacion o se producira un error de limite en el eje. - -Velocidad de inicializacion (Home Search Velocity):: - (((Home Search Velocity))) - La velocidad usada en la busqueda de los interruptores. - Si el interruptor se encuentra cercano al limite de viaje del eje, - esta velocidad deve ser seleccionada de tal forma que el eje tenga - suficiente tiempo para desacelerar hasta detenerse antes de llegar al - limite fisico de la bancada. - Si el interuptor se encuentra cercano por un rango de viaje corto - (En lugar de estar cercano desde el punto de inicio al final del viaje), - la velocidad devera ser seleccionada de tal forma que el eje pueda desacelerar - hasta detenerse antes de que el interruptor se habra otra vez, el procedimiento - de inicializacion devera ser comenzarse siempre del mismo lado del interruptor. - Si la maquina se mueve en la direccion contraria al inicio de la inicializacion, - cambie el signo a negativo del parametro *Home Search Velocity*. - - -Direccion de busqueda de posicion de inicio (Home Latch Direction):: - (((Home Latch Direction))) - Seleccione "Igual (Same)" para que el interruptor sea liberado - y posteriormente la maquina se acerque a el a muy baja velocidad. - La segunda vez que el interruptor se cierre, se definira la posiocn de inializacion. - Seleccione "Opuesto (Opposite)" para realizar la inializacion moviendose despacio fuera del interruptor, - cuando el interruptor se habra la posiocion de inializacion sera marcada. - -Tiempo para acelerar a maxima velocidad (Time to accelerate to max speed):: - (((Time to accelerate to max speed))) - Tiempo calculado. - -Distancia para acelerar a maxima velocidad (Distance to accelerate to max speed):: - (((Distance to accelerate to max speed))) - Distancia calculada. - -Taza de generacion de pulsos a maxima velocidad (Pulse rate at max speed):: - (((Pulse rate at max speed))) - Este dato se calcula en base a los valores anteriores. - El valor maximo de la *Taza de generacion de pulsos a maxima velocidad* determina el *Periodo base*. - Valores por encima de 20000Hz pueden producir tiempos de respuesta muy bajos o incluso bloqueos - (La taza de generacion maxima de pulsos varia entre computadoras) - -Escala del Eje (Axis SCALE):: - El numero que sera usado en el archivo ini en la seccion [SCALE]. - Representa cuantos pasos se deven dar por unidad de usuario. - -Probar este Eje (Test this axis):: - (((Test this axis))) - Esta opcion abre una ventana para permitir probar cada eje. - Esta opcion puede ser utilizada despues de llenar toda la informacion referente al eje. - -=== Probar este Eje - -.Probar este Eje[[cap:Test-This-Axis]] - -image::images/stepconf-test.png[align="center"] - -Con Stepconf es sencillo probar diferentes valores de aceleracion y velocidad. - -[[sec:finding-maximum-velocity]] -==== Busqueda de Velocidad Maxima -(((Finding Maximum Velocity))) - -Comiense con una aceleracion baja -// comment out latexmath until a fix is found for the html docs -//(ejemplo, latexmath:[ 2 in/s^2 ] o latexmath:[ 50 mm/s^2 ]) y -(por ejemplo, *+2 pulgadas/s^2^+* or *+50 mm/s^2^+*) -la velocidad que se desea obtener. -Utilizando los botones disponibles, mueva el eje cerca al centro de su carrera. -Tenga cuidado porque con un valor de aceleracion bajo, -puede tomarle al eje una sorpendente distancia para desacelerar hasta detenerse. - -Despues de medir la cantidad de espacio de movimiento disponible para el eje, -introduca una distancia segura en el area de prueba, mantenga en mente que -despues de un atoramiento, el motor puede acontinuacion comenzar a moverse en una direccion inesperada. -Entonses haga click en la opcion Correr (Run). - -La maquina comenzara a moverse hacia adelante y atras a lo largo del eje. -En esta prueba, es importante que la combinacion de aceleracion y -area de prueba permita a la maquina alcanzar la velocidad seleccionada y que la bancada viaje -por almenos una distancia corta a esta velocidad -- entre mas distancia mejor sera la prueba. -La formula *+d = 0.5 * v * v/a+* -//latexmath:[ d = 0.5 * v * v/a ] -proporciona la minima distancia requerida para alcanzar -la velocidad especificada con la aceleracion seleccionada. -Si es conveniente y seguro de hacer, -precione la bancada contra la direcion del movimiento para simular las fuerzas de corte. -si la maquina se detiene, redusca la velocidad y comiense la prueba de nuevo. - -Si la maquina no se detiene de manera evidente, precione el boton 'Run' de nuevo, para detener la prueba. -La maquina regresara a la posicion donde comenso la prueba. -Si la posicion es incorrecta, la maquina perdio pasos o se detubo durante la prueba. -Redusca la velocidad y comienze la prueba de nuevo. - -Si la maquina no se mueve, se detiene, o pierde pasos, sin importar cuan baja -sea la velocidad seleccionada, verifique lo siguiente: - - - Valores correctos de la forma de pulsos de pasos - - Seleccion correcta de los pines de salida del puerto, incluyendo si es necesario la opcion de 'Invertido' - - Cableado blindado para reducir interferencia - - Problemas fisicos con el motor, acoplamientos, tornillos embalados o de bolas, etc. - -Una ves que se encuentre una velocidad a la cual el eje -no se detenga o pierda pasos durante la prueba, -redusca la velocidad un 10% y utilize esta nueva velocidad como velocidad Maxima. - -[[sec:finding-maximum-acceleration]] -==== Encontrando la maxima aceleracion -(((Finding Maximum Acceleration))) - -Con la velocidad maxima que se encontro en el paso anterior, -introduca un valor de aceleracion a probar. -Utilizando el mismo procedimiento antes descrito, -redusca la aceleracion si en necesario. -En esta prueba, es importante que la combinacion de -Aceleracion y area de prueba permita a la maquina alcanzar la velocidad seleccionada. -Una ves que se encuentre un valor de aceleracion en el cual la maquina no pierda pasos o se detenga -durante la prueba, redusca el valor encontrado un 10% y utilice este nuevo valor como el valor de Aceleracion Maxima. - -== Configuracion del Husillo[[sec:Spindle-Configuration]](((Spindle Configuration))) - -.Pagina configuracion del Husillo[[cap:Spindle-Configuration-Page]] - -image::images/stepconf-spindle.png[align="center"] - -Esta pagina solo aparece cuando la opcion 'Spindle PWM' es seleccionada en la -pagina de seleccion de las salidad 'Parallel Port Pinout - -=== Control de la velocidad del Husillo[[spindle-speed-control]](((spindle speed control))) - -Si la opcion 'Spindle PWM' fue seleccionada en el mapeo de salidas, -la siguiente informacion deve ser proporcionada: - -Taza de PWM (PWM Rate):: - (((PWM Rate))) - La frecuencia portadora de la señal PWM que controlara la velocidad del Husillo. - Introdusca un '0' para modo PDM, - El cual es util para generar un voltage de control. - Revisese la documentacion del controlador del husillo para el valor adecuado. - -Velocidad 1 y 2, PWM 1 y 2:: - (((Speed 1 and 2)))(((PWM 1 and 2))) - Los archivos de configuracion generados usan una relacion lineal simple - para determinar el valor de PWM para un valor de RPM dado. - Si los valores son desconocidos, puedn ser determinados. - Para mas informacion vease la seccion: (<>) - -===Sincronizacion de movimientos del Husillo (Cuerdas automaticas y uso de machuelo)[[sub:Spindle-synchronized-motion-lathe]] -(((Spindle-synchronized motion)))(((Lathe Threading))) - -Cuando son proporcionadas las señales correctas desde un encoder conectado -a LinuxCNC utilizando los componentes del HAL (Capa de abstraccionde Hardware), -LinuxCNC soportara el roscado en torno. -Las señales requeridas son: - - -Indice del Husillo:: - (((Spindle Index))) - Es un pulso que ocurre una vez por revolucion del Husillo. - -Fase A del Husillo:: - (((Spindle A))) - Es un pulso que ocurre en varias ocaciones igualmente espaciadas - conforme el husillo gira. - -Fase B del Husillo (Opcional):: - (((Spindle B))) - Este es un pulso secundario que ocurre en - desface con respecto al pulso de Fase A. - La ventaja de usar ambos pulsos A y B son - la capacidad de determinar la direccion del giro, - ahumento de la inmunidad al ruido y el aumento de la resolucion. - - -Si las opciones de 'Fase A' e 'Indice del Husillo' fueron seleccionadas -en la configuracion del puerto, la siguiente informacion devera ser introducida: - -Ciclos por revolucion:: - (((Cycles per revolution))) - El numero de ciclos de la señal fase A que se producen durante una vuelta completa del husillo. - Esta opcion solo se encontrara disponible Si alguna de las entradas de configuracion - del puerto fue seleccionada como 'Spindle Phase A' - -Velocidad Maxima al momento de hacer una cuerda:: - Seleccionar la maxima velocidad permitida al momento de hacer una cuerda. - Para un husillo de altas RPM o un encoder con alta resolucion, - un valor bajo de 'BASE_PERIOD' es requerido. - -=== Determinacion de la Calibracion del Husillo[[determining-spindle-calibration]] -(((Determining Spindle Calibration))) - -Introdusca los siguientes valores en la pagina de configuracion del husillo: - -[width="100%"] -|======================================== -|Speed 1: | 0 | PWM 1: | 0 -|Speed 2: | 1000 | PWM 2: | 1 -|======================================== - -Termine los pasos restantes del proceso de configuracion, -posteriormente inicie LinuxCNC con la configuracion recien creada. -Encienda la maquina y seleccione la pestaña MDI. -Encienda el husillo entrando el comando: 'M3 S100'. -Cambie la velocidad del husillo entrando un valor diferente de parametro S: 'S800'. -Valores validos en este momento van desde 1 hasta 1000. - -Para dos valores de parametro S diferentes, mida las RPM que el husillo este proporcionando. -Guarde los valores S utilizados en la prueba y los valores reales de RPM proporcionados por el husillo. -Ejecute el programa Stepconf de nuevo. -Para el parametro 'Speed' introdusca la velocidad en RPM medida, y -para 'PWM' introdusca el valor del parametro S dividido entre 1000. -Recuerde que deve tener dos valores del parametro S y sus correspondientes -RPM proporcionadas por el husillo para generar un ajuste de velocidad lineal. - - -Devido a que la mayoria de los controladores de husillo precentan nolinealidades en su respuesta -es mejor hacer lo siguiente: - - - Asegurese que las dos calibraciones utilizadas no se encuentren cerca en los valores de RPM proporcionados. - - Asegurese que las dos calibraciones se encuentren en los rangos de RPM que usted normalmente - utilizara al maquinar. - -Por lo tanto si el husillo deve de ir de las 0 RPM a las 8000 RPM, -pero usted generalmente utiliza velocidades de las 400 RPM (10%) a las 4000 RPM (100%), -vusque los valores de PWM que proporcionen 1600 RPM (40%) y 2800 RPM (70%). - -== Opciones de configuracion avanzada[[sec:Advanced-Configuration-Options]](((Advanced Configuration Options))) - -.Configuracion avanzada[[cap:Advanced-Configuration]] - -image::images/stepconf-advanced.png[align="center"] - -Incluir Halui:: - Esta opcion incluira la interface de usuario Halui. - (Control remoto de los parametros de pantalla de la GUI) - Vea el manual del integrador para mas detalles. - -Incluir pyVCP:: - Esta opcion agrega el pnel base de pyVCP y un archivo simple para comenzar a trabajar en el. - Vea el manual del integrador para mas detalles. - -Incluir ClassicLadder PLC:: - Esta opcion agregara el ClassicLadder PLC (Programmable Logic Controller). - Vea el manual del integrador para mas detalles. - -== Terminando de configurar la Maquina[[sub:Machine-Configuration-Complete]] - -Seleccione 'Apply' para escrivir los archivos de configuracion. -Mas tarde puede correrse el programa de configuracion Stepconf de nuevo -y recuperar los valores que se introdugeron anteriormente. - -== Carrera de Eje, Localizacion de los interruptores de inicio y la pocicion inicial[[sec:Axis-Travel-Home]] -(((Axis Travel)))(((Home Location)))(((Home Switch Location))) - -Para cada eje, existe un rango limitado de carrera. -El limite fisico de la carrera se conoce como 'hard stop'. - - -ANtes de alcanzar el limite fisico 'hard stop' existe un interruptor de limite 'limit switch'. -Si se encuentra el interruptor de limite durante la operacion normal, -EMC apagara el controlador del eje. -La distancia entre el limite fisico y el interruptor de limite -Deve ser suficiente para permitir al eje sin energia detenerse. - -Antes del interruptor de limite existe un limite suabe 'soft limit'. -Este es un limite determinado por programa despues de la rutina de inicializacion. -Si un comando MDI o G exede el limite suabe, el comando no se ejecutara. -Si un movimiento manual del eje exede el limite suabe, el movimiento es terminado en el -limite suabe. - -El interruptor de inicializacion 'home switch' puede ser colocado en cualquier lugar de la -carrera del eje entre los dos limites fisicos del eje. -Mientras algun dispositivo externo no desactive los controladores de motor -cuando el interruptor de limite es activado, uno de los interruptores de limite -puede ser utilizado para la posicion de inicializacion. - -La posicion cero 'zero position' es la posicion en el eje que tienen el valor de 0 -en el sistema coordenado de la maquina. -Usualmente la posicion cero se encontrara dentro de los limites suabes. -En los tornos, la opcion de velocidad de superficie constante -requiere que la posicion 'X=0' corresponda al centro de rotacion del husillo -cuando no exista alguna compensacion en la herramienta. - -La posicion de inizializacion es la posicion a la que el eje sera desplazado -al final de la secuencia de inizializacion. -Este valor deve de encontrarse dentro de los limites suabes. -En particular la posicion de inizializacion -nunca deve ser igual a un limite suabe. - -=== Operacion sin interruptores de limite[[sub:Operating-without-Limit]] -(((Operating without Limit Switches))) - -Una maquina puede ser operada sin interruptores de limite. En ese caso, solo -los limites suabes detendran al eje de alcanzar el limite fisico. -Los limites suabes solo operan despues de que se a ejecutado la rutina de inizializacion. - -=== Operacion sin limites de inizializacion[[sub:Operating-without-Home]] -(((Operating without Home Switches))) - -Una maquina puede ser operada sin interruptores de inicializacion. -Si la maquina tiene interruptores de limite pero no de inicializacion, -es mejor utilizar un interruptor de limite como interruptor de inizializacion -(ejemplo, seleccione la opcion 'Minimum Limit + Home X' cuando configure el puerto en Stepconf). -Si la maquina no tiene interruptores de ningun tipo, o si los interruptores -no pueden ser utilizados como interruptores de inizializacion por cualquier otra razon, -entonces la maquina devera ser inicializada a mano, o utilizando marcas en la bancada. -la inicializacion a mano no es tan confiable como la inicializacion con interruptores, -pero permite seguir utilizando los limites suabes. - -=== Opciones de cableado de los interruptores de inicializacion y limite[[sub:Home-and-Limit]] -(((Home and Limit Switch wiring options))) - -El cableado ideal deve de incluir un interruptor por señal. -Sin embargo, el puerto paralelo del computador solo ofrece un total de 5 entradas, -mientras que se necesitan 9 en una maquina de 3 ejes. -Por lo tanto, Varios interruptores pueden ser cableados en conjunto -en diversas formas para permitir utilizar menos entradas. - -La siguiente figura muestra la idea general de cablear varios interruptores -a una unica entrada. -En el caso ilustrado, cuando un interruptor es precionado, -El valor mandado atraves de la entrada va de un valor logico ALTO a BAJO. -Sin embargo LinuxCNC espera un valor logico ALTO cuando un interruptor es precionado, -Por lo tanto se devera seleccionar la opcion de invercion 'Invert' cuando se configure la entrada -del puerto paralelo en el Stepconf. - -La resistencia de polarizacion mostrada en el diagrama fija la señal de entrada a ALTO -Amenos que una conexion a tierra sea realizada, en tal caso la señal ira a BAJO. -Sin la resistencia la entrada quedaria flotando y la entrada podria variar entre ALTO y BAJO -cuando el circuito este abierto. -Un balor tipoco de resistencia de polarizacion es de 47K. - -.Interruptores normalmente cerrados[[cap:Normally-Closed-Switches]] - -Cableado de Interruptores Normalmente Cerrados en serie (diagrama simplificado) - -image::images/switch-nc-series.png[] - -.Interruptores normalmente abiertos[[cap:Normally-Open-Switches]] - -Cableado de interruptores normalmente abiertos en paralelo (diagrama simplificado) - -image::images/switch-no-parallel.png[] - -Las siguientes configuraciones de interruptores estan permitidas en Stepconf: - -* Interruptores de inizializacion combinados para todos los ejes -* Interruptores de limite combinados para todos los ejes -* Combinar ambos interruptores de limite para un eje -* Combinar ambos interruptores de limite y el interruptor de inizializacion para un eje -* Combinar un interruptor de limite y el interruptor de inicializacion de un eje - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/config/stepconf_fr.txt b/docs/src/config/stepconf_fr.txt deleted file mode 100644 index 252bcdd2be5..00000000000 --- a/docs/src/config/stepconf_fr.txt +++ /dev/null @@ -1,675 +0,0 @@ -:lang: fr -:toc: - -= Assistant graphique de configuration StepConf - -[[cha:Assistant-graphique-StepConf]] (((Assistant stepconf))) - -[[sec:Introduction]] -== Introduction -(((Introduction))) - -LinuxCNC est capable de contrôler un large éventail de machines -utilisant de nombreuses interfaces matérielles différentes. - -Stepconf est un programme qui génère des fichiers de configuration LinuxCNC -pour une classe spécifique de machine CNC: celles qui sont pilotées -via un, ou plusieurs ports parallèles standards et contrôlées par des signaux -de type pas/direction (step/dir). - -Stepconf est installé en même temps que LinuxCNC et un lanceur se trouve -dans le menu _Application → CNC → LinuxCNC StepConf_. - -Stepconf place les fichiers qu'il crée dans le répertoire _~/linuxcnc/config_ -pour y stocker les paramètres de chaque configuration. -Lorsque quelque chose doit être modifié, il faut choisir le fichier -correspondant au nom de la configuration et portant l'extension .stepconf. - -L'Assistant Stepconf a besoin, au minimum, d'une résolution de 800 x 600 -pour que les boutons sur le bas des pages soient apparents. - -== Page d'accueil - -.La page d'accueil de stepconf - -image::images/stepconf-config_fr.png[] - -* _Créer une nouvelle configuration_ - -Créera une configuration nouvelle. - -* _Modifier une configuration déjà créée_ - -Modifiera une configuration existante, déjà créée avec Stepconf. -Après la sélection de celle-ci un sélecteur de fichier s'ouvre pour y -choisir le fichier .stepconf à modifier. Si des modifications sont -faites aux fichiers .hal et .ini avec un autre éditeur, ils ne seront -plus utilisables par Stepconf. Les modifications de custom.hal et de -custom_postgui.hal, par contre, sont conservées par Stepconf. - -* _Créer un lien_ - -Placera un lien sur le bureau, pointant sur le dossier des fichiers -de configuration. - -* _Créer un lanceur_ - -Placera un lanceur sur le bureau pour démarrer l'application avec sa -configuration. - -[[sub:Informations-base]] -== Informations machine - -.Page d'informations sur la machine - -image::images/stepconf-basic_fr.png[] - -* _Nom de la machine_ - -(((Nom de la machine))) -Choisir un nom pour la machine. -Utiliser uniquement des lettres majuscules, minuscules, des chiffres -ou "-" et "_". - -* _Configuration des axes_ - -(((Configuration des axes))) -Choisir les axes correspondants à la machine: -XYZ (fraiseuse 3 axes), XYZA (fraiseuse 4 axes) ou XZ (tour). - -* _Unité machine_ - -(((Unité machine))) -Choisir entre le pouce et le millimètre. Toutes les questions suivantes -(telles que la longueur des courses, le pas de la vis, etc) -devront obtenir des réponses dans l'unité choisie ici. - -* _Caractéristiques du pilote_ - -(((Caractéristiques du pilote))) -Si un des pilotes énumérés dans la liste déroulante peut être utilisé, -cliquer sur son nom. Sinon, trouver les 4 valeurs de timing dans la fiche -de caractéristiques fournie par le fabricant du pilote et les saisir. -Si la fiche donne des valeurs en microsecondes, les multiplier par 1000. -pour les convertir en nanosecondes. -Par exemple, pour 4.5µs saisir 4500ns. - -Une liste de certains des pilotes pas à pas les plus populaires, avec leurs -valeurs caractéristiques de timing, se trouve sur le wiki de LinuxCNC.org à la page -http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Stepper_Drive_Timing[Timming des pilotes]. - -D'éventuels traitements des signaux, une opto-isolation ou des filtres RC, -peuvent imposer des contraintes de temps supplémentaires aux signaux, -il convient de les ajouter à celles du pilote. -La Configuration LinuxCNC pour Sherline est déjà réglée. - -* _Step Time_ - -Durée de la largeur de l'impulsion de pas à l'état _on_, en nanosecondes. - -* _Valeur Space d'un pas_ - -Temps entre deux impulsions de pas, en nanosecondes. - -* _Direction Hold_ - -Durée de maintien du signal après un changement de direction, en -nanosecondes. - -* _Réglage direction_ - -Délai avant le changement de direction après la dernière impulsion de pas, -en nanosecondes. - -* _Adresse de base du premier port parallèle_ - -Généralement l'adresse 0x378 est correcte pour le premier port. -Le premier port a toujours ses broches 2 à 9 configurées en sortie. - -* _Adresse du second port parallèle_ - -Si un second port parallèle est nécessaire, entrer son adresse ici. -Si ce port est intégré à la carte mère il est possible de vérifier leur -ordre dans le BIOS, habituellement 0x378 0x278 0x3bc. Attention les cartes -additionnelles ont d'autres adresses. -Dans ce cas, la commande lspci -v dans un terminal peux aider, si le nom -du chipset de la carte est connu. -Plus de détails à ce sujet sont disponibles dans le manuel de l'intégrateur. -Le bouton situé à droite du champs d'adresse du port, permet de choisir le -sens des broches 2 à 9, soit comme étant des entrée, soit comme étant des -sorties. - -* _Adresse du troisième port parallèle_ - -Si un troisième port parallèle est nécessaire, entrer son adresse ici. -Si ce port est intégré à la carte mère il est possible de vérifier leur -ordre dans le BIOS, habituellement 0x378 0x278 0x3bc. Attention les cartes -additionnelles ont d'autres adresses. -Dans ce cas, la commande lspci -v dans un terminal peux aider, si le nom -du chipset de la carte est connu. -Plus de détails à ce sujet sont disponibles dans le manuel de l'intégrateur. -Le bouton situé à droite du champs d'adresse du port, permet de choisir le -sens des broches 2 à 9, soit comme étant des entrée, soit comme étant des -sorties. - -* _Période de base minimale_ - -(((Période de base minimale))) -En se basant sur les caractéristiques du pilote et sur le résultat du -test de latence, Stepconf détermine automatiquement la période de base -(BASE_PERIOD) la plus petite utilisable et l'affiche ici. - -* _Fréquence maxi des pas_ - -(((Fréquence maximale de pas))) -Affiche la valeur calculée de la fréquence maximum des pas que la -machine devrait atteindre avec les paramètres de cette configuration. - -* _Base Period Maximum Jitter_ - -(((Période de base maximale))) -Après un test de latence, entrer ici la valeur retournée -dans la colonne "Max Jitter" et à la ligne "Base thread". Cette valeur -correspond à la latence maximale du PC testé. -Pour exécuter directement un test de latence cliquer sur le bouton -_Test de latence_. Lire le <> pour tous les détails concernant ce test. - -* _Dialogue à l'écran pour le changement d'outil_ - -(((Dialogue d'appel d'outil))) -Si cette case est cochée, LinuxCNC va faire une pause et ouvrir un dialogue -pour charger l'outil lorsque qu'un G-Code M6 T sera rencontré. -Laisser cette case cochée sauf si le support d'un changeur d'outils -automatique est prévu dans un fichier personnalisé HAL. - -[[sec:Options-de-configuration-avancee]] -== Options de configuration avancée -(((Options de configuration avancée))) - -[[cap:Configuration-avancee]] - -.Configuration avancée - -image::images/stepconf-advanced_fr.png[] - - -* _Inclure l'interface Halui_ - -Ajoutera l'interface utilisateur Halui. -Voir le manuel de l'intégrateur pour plus d'informations sur Halui. - -* _Inclure un panneau pyVCP_ - -Ceci ajoutera un panneau pyVCP de base, avec son fichier de configuration -sur lequel il sera possible de travailler. Quelques options sont disponibles -pour enrichir le panneau grâce à des cases à cocher. -Voir le manuel de l'intégrateur pour plus d'information sur pyVCP. - -* _Inclure l'API ClassicLadder_ - -Cette option ajoutera l'automate programmable en logique à contacts -ClassicLadder. Un certain nombre d'options sont disponibles pour enrichir -l'API grâce à des cases à cocher. L'éditeur de programme ladder est -accessible par le bouton _Editer prog. ladder_ -Voir le manuel de l'intégrateur pour plus d'information sur ClassicLadder. - -[[sec:Reglage-du-port-parallele]] -== Réglage du port parallèle - -[[cap:Reglage-du-port-parallele]] - -.Page de réglage du port parallèle - -image::images/stepconf-pinout_fr.png[] - -* _Sorties (PC vers machine)_ - -Pour chacune des broches, choisir le signal correspondant au brochage entre -le port parallèle et l'interface matérielle. Cocher la case inverser -si le signal est inversé (0V pour vrai/actif, 5V pour faux/inactif). - -* _Sorties présélectionnées_ - -(((Sorties présélectionnées))) -Réglage automatique des pins 2 à 9 -Direction sur les pins 2, 4, 6, 8, selon le _type Sherline_ -Direction sur les pins 3, 5, 7, 9, selon le _type Xylotex_ - -* _Entrées et sorties_ - -Les entrées ou les sorties non utilisées doivent être placées sur -Inutilisé. - -* _Sortie arrêt d'urgence_ - -Sélectionnable dans la liste déroulante des sorties. -La sortie d'arrêt d'urgence est utilisée pour actionner l'organe de coupure -du circuit de puissance de la machine. Le contact de cet organe est câblé -en série avec les contacts des boutons d'arrêt d'urgence extérieurs ainsi -qu'avec tous les contacts compris dans la boucle d'arrêt d'urgence. - -* _Entrées (machine vers PC)_ - -Ces choix se font dans la liste déroulante des entrées. - -* _Pompe de charge_ - -Si la carte de contrôle accepte un signal pompe de charge, dans la liste -déroulante des sorties, sélectionner _Pompe de charge_ sur la sortie -correspondant à l'entrée Pompe de charge de la carte de contrôle. -La sortie pompe de charge sera connectée en interne par Stepconf. -Le signal de pompe de charge sera d'environ la moitié de la fréquence -maxi des pas affichée sur la page des informations machine. - -[[sec:Configuration-des-axes]] -== Configuration des axes -(((Configuration des axes))) - -[[cap:Configuration-des-axes]] - -.Page de configuration des axes - -image::images/stepconf-axis_fr.png[] - -* _Nombre de pas moteur par tour_ - -(((Nombre de pas par tour))) -Nombre de pas entiers par tour de moteur. Si l'angle d'un pas en degrés est -connu (par exemple, 1.8 degrés), diviser 360 par cet angle -pour obtenir le nombre de pas par tour du moteur. - -* _Micropas du pilote_ - -(((Micropas du pilote))) -Le nombre de micropas produits par le pilote. Entrer par exemple 2 -pour le demi pas ou une des valeurs permise par le pilote du moteur. - -* _Dents des poulies_ - -(((Dents des poulies))) -Si entre le moteur et la vis un réducteur poulie/courroie est présent, -entrer ici le nombre de dents de chacune des poulies. -Pour un entrainement direct, entrer 1:1. - -* _Pas de la vis_ - -(((Pas de la vis))) -Entrer ici le pas de la vis. Si le pouce a été choisi comme -unité, entrer ici le nombre de filets par pouce. -Si le mm a été choisi, entrer ici le pas du filet en millimètres. -Si la vis est à plusieurs filets, déterminer de combien se -déplace le mobile par tour de vis et entrer cette valeur ici. -Si la machine se déplace dans la mauvaise direction, -entrer une valeur négative au lieu d'une positive, et vice-versa. - -* _Vitesse maximale_ - -(((Vitesse maximale))) -Entrer ici la vitesse de déplacement maximale de l'axe, en unités par -seconde. - -* _Accélération maximale_ - -(((Accélération maximale))) -Les valeurs correctes pour ces deux entrées ne peuvent être -déterminées que par l'expérimentation. Consulter -<> pour trouver la -vitesse et <> -pour trouver l'accélération maximale. - -* _Emplacement de l'origine machine_ - -(((Emplacement de l'origine machine))) -Position sur laquelle la machine se place après avoir terminé la -procédure de prise d'origine de cet axe. -Pour les machines sans contact placé au point d'origine, -c'est la position à laquelle l'opérateur place la machine en manuel, -avant de presser le bouton de _POM des axes_. -Si des capteurs de fin de course sont utilisés pour la prise d'origine, -le point d'origine ne doit pas se trouver au même coordonnées que le -capteur. Une erreur de limite simultanée à l'origine surviendrait. - -* _Course de la table_ - -(((Course de la table))) -Étendue de la course que le programme en G-code ne doit jamais dépasser. -L'origine machine doit être située à l'intérieur de cette course. -En particulier, avoir un point d'origine exactement égal à cette course est -une configuration incorrecte. - -* _Position du contact d'origine machine_ - -(((Position du contact d'origine machine))) -Position à laquelle le contact d'origine machine est activé ou relâché -pendant la procédure de prise d'origine machine. Ces entrées et les -deux suivantes, n'apparaissent que si les contacts d'origine ont été -sélectionnés dans le réglage des broches du port parallèle. - -* _Vitesse de recherche de l'origine_ - -(((Vitesse de recherche de l'origine))) -Vitesse utilisée pendant le déplacement vers le contact d'origine machine. -Si le contact est proche d'une limite physique de déplacement de la table, -cette vitesse doit être suffisamment basse pour permettre de décélérer et de -s'arrêter avant d'atteindre la butée mécanique et cela, malgré l'inertie du -mobile. Si le contact est fermé par la came sur une faible longueur de -déplacement (au lieu d'être fermé depuis son point de fermeture jusqu'au -bout de le course), cette vitesse doit être réglée pour permettre la -décélération et l'arrêt, avant que le contact ne soit dépassé et ne s'ouvre -à nouveau. La prise d'origine machine doit toujours commencer du même côté -du contact. Si la machine se déplace dans la mauvaise direction au début de -la procédure de prise d'origine machine, rendre négative la valeur de -_Vitesse de recherche de l'origine_. - -* _Dégagement du contact d'origine_ - -(((Dégagement du contact d'origine))) -Choisir _Identique_ pour que la machine reparte d'abord en arrière pour -dégager le contact, puis revienne de nouveau vers lui à très petite -vitesse. La seconde fois que le contact se ferme, la position de l'origine -machine est acquise. Choisir _Opposition_ pour que la machine -reparte en arrière à très petite vitesse jusqu'au dégagement du contact. -Quand le contact s'ouvre, la position de l'origine machine est acquise. - -* _Temps pour accélérer à la vitesse maxi_ - -(((Temps pour accélérer à la vitesse maxi))) -Temps en secondes, calculé en fonction des paramètres renseignés -précédemment. - -* _Distance pour accélérer à la vitesse maxi_ - -(((Distance pour accélérer à la vitesse maxi))) -Distance en mm, calculée en fonction des paramètres renseignés précédemment. - -* _Fréquence des impulsions à la vitesse maxi_ - -(((Fréquence des impulsions à la vitesse maxi))) -Informations calculées sur la base des informations entrées précédemment. -Il faut rechercher la plus haute fréquence des impulsions à la vitesse maxi -possible, elle détermine la période de base: BASE_PERIOD. -Des valeurs supérieures à 20000Hz peuvent toutefois provoquer des -ralentissements importants de l'ordinateur, voir même son blocage -(La plus grande fréquence utilisable variera d'un ordinateur à un autre) - -* _Échelle de l'axe_ - -Le nombre qui sera utilisé dans le fichier ini [SCALE]. -C'est le nombre de pas moteur par unité utilisateur. - -* _Test de cet axe_ - -(((Test de cet axe))) -Ouvre une fenêtre permettant de tester les paramètres pour chaque axe. -Il est possible de modifier par expérimentation certaines données et de -les reporter dans la configuration. - -* _Adresse du second port parallèle_ - -Si un second port parallèle est nécessaire, entrer son adresse ici. -Si les ports sont intégrés à la carte mère il est possible de vérifier -dans le BIOS, habituellement 0x378 0x278 0x3bc. Attention les cartes -additionnelles ont d'autres adresses. -Dans ce cas, la commande lspci -v dans un terminal peux aider, si le nom -du chipset de la carte est connu. -Plus de détails à ce sujet sont disponibles dans le manuel de l'intégrateur. - -[[cap:Tester-Cet-Axe]] -== Tester cet axe - -.Tester cet axe - -image::images/stepconf-test_fr.png[] - -Tester cet axe et un test simple pour définir les signaux de directions et de -pas, ainsi que les valeurs d'accélération et de vitesse. - -[IMPORTANT] -Pour pouvoir utiliser ce test d'axe, il sera peut-être nécessaire de valider -manuellement l'axe à tester. Si le driver utilise une pompe de charge, il faudra -la bi-passer pour essayer les différentes valeurs de vitesse et d'accélération. - -[[sec:Trouver-Vitesse-Maximale]] -== Trouver la vitesse maximale -(((Trouver Vitesse Maximale))) - -Commencer avec une faible valeur d'accélération -(par exemple, *+2 pouces/s^2^+* ou *+50 mm/s^2^+*) -et la vitesse que espérée. En utilisant les boutons de jog, positionner -l'axe vers son centre. -Il faut être prudent, car avec peu d'accélération, la distance d'arrêt -peut être très surprenante. Après avoir évalué le déplacement possible dans -chaque direction en toute sécurité, entrer une distance dans le champs -_Zone de test_ garder à l'esprit qu'après un décrochage, le moteur peut -repartir dans la direction inattendue. Puis cliquer sur _Lancer_. -La machine commencera à aller et venir le long de cet axe. -Dans cet essai, il est important que la combinaison entre l'accélération et -la zone de test, permette à la machine d'atteindre la vitesse sélectionnée -et de s'y déplacer au moins, sur une courte distance. -La formule *+d = 0.5 * v * v/a+*, donne la distance minimale requise pour -atteindre la vitesse de _croisière_. Si la sécurité est garantie, pousser sur -la table dans la direction inverse du mouvement pour simuler les efforts de -coupe. Si la table décroche, réduire la vitesse et recommencer le test. -Si la machine ne présente aucun décrochage, cliquer sur le bouton _Lancer_. -L'axe revient alors à sa position de départ. Si cette position est incorrecte, -c'est que l'axe a calé ou a perdu des pas au cours de l'essai. -Réduire la vitesse et relancer le test. Si la machine ne se déplace pas, -cale, vibre ou perd des pas, même à faible vitesse, vérifier les éléments -suivants: - -- Corriger les paramètres de temps des impulsions de commande. -- Le brochage du port et la polarité des impulsions. Les cases _Inverser_. -- La qualité des connexions et le blindage des câbles. -- Les problèmes mécaniques avec le moteur, l'accouplement moteur, vis, -raideurs etc. - -Quand la vitesse à laquelle l'axe ne perd plus de pas et à laquelle les mesures -sont exactes pendant le test a été déterminée, réduire cette vitesse de 10% et -l'utiliser comme vitesse maximale pour cet axe. - -[[sec:Trouver-Acceleration-Maximale]] -== Trouver l'accélération maximale -(((Trouver Accélération Maximale))) - -Avec la vitesse maximale déterminée à l'étape précédente, entrer -une valeur d'accélération approximative. Procéder comme pour la vitesse, -en ajustant la valeur d'accélération en plus ou en moins selon le -résultat. Dans cet essai, il est important que la combinaison de -l'accélération et de la zone de test permette à la machine d'atteindre -la vitesse sélectionnée. Une fois que la valeur à laquelle l'axe ne perd plus -de pas pendant le test a été déterminée, la réduire de 10% et l'utiliser comme -accélération maximale pour cet axe. - -[[sec:Page-configuration-de-la-broche]] -== Configuration de la broche - -.Page configuration de la broche[[cap:Page-Configuration-de-la-broche]] - -image::images/stepconf-spindle_fr.png[] - -Ces options ne sont accessibles que quand _PWM broche_, -_Phase A codeur broche_ ou _index broche_ sont configurés dans le -réglage du port parallèle. - -[[sec:Controle-de-la-vitesse-de-broche]] -== Contrôle de la vitesse de broche(((Contrôle de la vitesse de broche))) - -Si _PWM broche_ apparaît dans le réglage du port parallèle, les -informations suivantes doivent être renseignées: - -* _Fréquence PWM_ - -(((Fréquence PWM))) -La fréquence porteuse du signal PWM (modulation de largeur d'impulsions) -du moteur de broche. Entrer 0 pour le mode PDM (modulation de -densité d'impulsions), qui est très utile pour générer une tension de -consigne analogique. Se reporter à la documentation du variateur de broche -pour connaître la valeur appropriée. - -* _Vitesse 1 et 2, PWM 1 et 2_ - -(((Vitesse 1 et 2)))(((PWM 1 et 2))) -Le fichier de configuration généré utilise une simple relation linéaire -pour déterminer la valeur PWM correspondant à une vitesse de rotation. -Si les valeurs ne sont pas connues, elles peuvent être déterminées. -Voir la section sur <>. - -[[sec:Mouvement-avec-broche-synchronisee]] -== Mouvement avec broche synchronisée (filetage sur tour, taraudage rigide) -(((Mouvement avec broche synchronisée))) - -Lorsque les signaux appropriés, provenant d'un codeur de broche, sont -connectés au port parallèle, LinuxCNC peut être utilisé pour les usinages -avec broche synchronisée comme le filetage ou le taraudage rigide. -Ces signaux son: - -* _Index broche_ - -(((Index codeur broche))) -Également appelé PPR broche, c'est une impulsion produite à chaque -tour de broche. - -* _Phase A broche_ - -(((Phase A codeur broche))) -C'est une suite d'impulsions carrées générées sur la voie A du codeur -pendant la rotation de la broche. Le nombre d'impulsions pour un -tour correspond à la résolution du codeur. - -* _Phase B broche_ (optionnelle) - -(((Phase B codeur broche))) -C'est une seconde suite d'impulsions, générées sur la voie B du codeur -et décalées par rapport à celle de la voie A. L'utilisation de ces -deux signaux permet d’accroitre l'immunité au bruit et la résolution -d'un facteur 4. - -Si _Phase A broche_ et _Index broche_ apparaissent dans le -réglage des broches du port, l'information suivante doit être renseignée sur -la page de configuration broche: - -* _Cycles par tour_ - -(((Cycles par tour))) -Le nombre d'impulsions par tour sur la broche Phase A broche. - -* _La vitesse maximale en filetage_ - -La vitesse de broche maximale utilisée en filetage. -Pour exploiter un moteur de broche rapide ou un codeur ayant une résolution -élevée, une valeur basse de BASE_PERIOD est requise. - -[[sub:Determiner-broche-Etalonnage-broche]] -== Calibrer la broche -(((Calibrer la broche))) - -Entrer les valeurs suivantes dans la page de configuration de la broche: - -[width="80%",options="header", cols="^,^,^,^"] -|=============================== -| Vitesse 1: | 0 | PWM 1: | 0 -| Vitesse 2: | 1000 | PWM 2: | 1 -|=============================== - -Finir les étapes suivantes de la configuration, puis lancer LinuxCNC avec -cette configuration. Mettre la machine en marche et aller dans l'onglet Données -manuelles, démarrer le moteur de broche en entrant: M3 S100. -Modifier la vitesse de broche avec différentes valeurs comme: S800. -Les valeurs permises vont de 1 à 1000. - -Pour deux différentes valeurs de Sxxx, mesurer la vitesse de rotation -réelle de la broche en tours/mn. Enregistrer ces vitesses réelles de la -broche. Relancer Stepconf. Pour les Vitesses, entrer les valeurs -réelles mesurées et pour les PWM, entrer la valeur Sxxx divisée par 1000. - -Parce que la plupart des interfaces ne sont pas linéaires dans leur -courbe de réponse, il est préférable de: - - - S'assurer que les deux points de mesure des vitesses en tr/mn ne soient - pas trop rapprochés - - S'assurer que les deux vitesses utilisées sont dans la gamme des - vitesses utilisées généralement par la machine. - -Par exemple, si la broche tourne entre 0tr/mn et 8000tr/mn, mais qu'elle est -utilisée généralement entre 400tr/mn et 4000tr/mn, prendre alors -des valeurs qui donneront 1600tr/mn et 2800tr/mn. - -[[sec:Terminer-configuration]] -== Terminer la configuration -(((Terminer la configuration))) - -Cliquer _Appliquer_ pour enregistrer les fichiers de configuration. -Ensuite, il sera possible de relancer ce programme et ajuster les réglages -entrés précédemment. - -[[sec:Position-Origine-Position-Contacts]] -== Position des fins de course sur les axes -(((Position origine machine)))(((Emplacements des contacts))) - -image::images/HomeAxisTravel.png[] - -La course de chaque axe est bien délimitée. Les extrémités physiques d'une -course sont appelées les _butées mécaniques_, position *[red]#(a)#*. - -WARNING: [red]#Si une butée mécanique venait à être dépassée, -la vis ou le bâti machine seraient détériorés!# - -Avant la butée mécanique se trouve un contact de fin de course *[green]#(b)#*. -Si ce contact est rencontré pendant les opérations normales, LinuxCNC coupe -la puissance du moteur. La distance entre le fin de course et la butée -mécanique doit être suffisante pour permettre au moteur, dont la puissance -a été coupée, de s'arrêter malgré l'inertie du mobile. Ces fins de course -doivent détecter le mobile sur toutes la distance d'arrêt et ne pas se -réactiver à cause d'un dépassement dû à l'inertie. - -Avant le contact de fin de course se trouve une limite logicielle *[blue]#(d)#*. -Cette limite logicielle est introduite après la prise d'origine machine. -Si une commande manuelle ou un programme G-code dépasse cette limite, -ils ne seront pas exécutés. Si un mouvement en jog ou en manuel cherche -à dépasser la limite logicielle, il sera interrompu sur cette limite. - -Le contact d'origine machine *[purple]#(c)#* peut être positionné n'importe où, -le long d'une course entre les butées mécaniques. -Si aucun mécanisme externe ne désactive la puissance moteur quand un -contact de limite est enfoncé, un des contacts de fin de course peut -être utilisé comme contact d'origine machine. - -La position zéro *[orange]#(e)#* correspond au 0 de l'axe dans le -système de coordonnées pièce, après que la prise d'origine pièce -de cette axe ait été faite. La position zéro doit se trouver entre -les deux limites logicielles pour que l'usinage soit possible. Sur les tours, -le mode vitesse à surface constante requiert que la coordonnée *X=0* -corresponde au centre de rotation de la broche quand aucun correcteur -d'outil n'est actif. - -La position de l'origine est la position, située le long de l'axe, sur -laquelle le mobile sera déplacé à la fin de la séquence de prise d'origine. -Cette position doit se situer entre les limites logicielles. En particulier, -la position de l'origine ne doit jamais être égale à une limite logicielle. -On place habituellement cette position au point le plus facile pour -réaliser le changement d'outil. - -[[sec:exploitation-sans-limite]] -== Exploitation sans fin de course(((exploitation sans limite sans fin de course))) - -Une machine peut être utilisée sans contact de fin de course. Dans ce cas, -seules les limites logicielles empêcheront la machine d'atteindre les butées -mécaniques. Les limites logicielles n’opèrent qu'après que la POM -(prise d'origine machine) soit faite sur la machine. Puisqu'il n'y a pas -de contact, la machine doit être déplacée à la main et à l’œil, -à sa position d'origine avant de presser le bouton _POM des axes_ ou le -sous-menu _Machine → Prises d'origines machine → POM de l'axe_. -L'opérateur devra cocher chacun des axes individuellement pour faire la -POM de chacun d'eux. - -[[sec:exploitation-sans-origine]] -== Exploitation sans contact d'origine(((Exploitation sans contact d'origine))) - -Une machine peut être utilisée sans contact d'origine machine. Si la machine -dispose de contacts de fin de course, mais pas de contact d'origine -machine, il est préférable d'utiliser le contact de fin de course comme -contact d'origine machine (exemple, choisir _Limite mini + origine X_ -dans le réglage du port). Si la machine ne dispose d'aucun contact, ou -que le contact de fin de course n'est pas utilisable pour une autre -raison, alors la prise d'origine machine peut toujours être réalisée à la main. -Faire la prise d'origine à la main n'est certes pas aussi reproductible -que sur des contacts, mais elle permet tout de même aux limites logicielles -d'être utilisables. - -[[sec:Contacts-Origine-et-Limites]] -== Câblage des contacts de fin de course et d'origine machine -(((Câblage des contacts d'origine machine et des limites))) - -Le câblage idéal des contacts externes serait une entrée par contact. -Toutefois, un seul port parallèle d'ordinateur offre un total de 5 entrées, -alors qu'il n'y a pas moins de 9 contacts sur une machine 3 axes. Au lieu -de cela, plusieurs contacts seront câblés ensembles, selon diverse combinaisons, -afin de nécessiter un plus petit nombre d'entrées. - -Les figures ci-dessous montrent l'idée générale du câblage de plusieurs -contacts à une seule broche d'entrée. Dans chaque cas, lorsqu'un contact -est actionné, la valeur vue sur l'entrée va passer d'une logique haute à -une logique basse. Cependant, LinuxCNC s'attend à une valeur VRAIE quand un -contact est fermé, de sorte que les cases Inverser correspondantes devront -être cochées sur la page de réglage du port parallèle. -Une résistance de rappel est nécessaire dans le circuit pour tirer l'entrée au -nivaux haut. La valeur typique pour un port parallèle est de 47K. -Une bonne sécurité utilise des contacts normalement fermés sans pièce -de commande souple. - -.Contacts normalement fermés[[cap:Contacts-Normalement-Fermes]] - -image::images/switch-nc-series_fr.png[] - -Câblage de contacts NC en série (schéma simplifié) - -.Contacts normalement ouverts[[cap:Contacts-Normalement-Ouverts]] - -image::images/switch-no-parallel_fr.png[] - -Câblage de contacts NO en parallèle (schéma simplifié) - -Les combinaisons suivantes sont permises dans Stepconf: - -- Les contacts d'origine machine de tous les axes combinés. -- Les contacts de fin de course de tous les axes combinés. -- Les contacts de fin de course d'un seul axe combinés. -- Les contacts de fin de course et le contact d'origine machine d'un seul axe -combinés. -- Un seul contact de fin de course et le contact d'origine machine d'un seul axe -combinés. - -Les deux dernières combinaisons sont également appropriées quand le type -contact + origine est utilisé. - -// vim: set syntax=asciidoc: diff --git a/docs/src/config/stepper.txt b/docs/src/config/stepper.txt deleted file mode 100644 index 134a1a784be..00000000000 --- a/docs/src/config/stepper.txt +++ /dev/null @@ -1,279 +0,0 @@ -= Stepper Configuration - -[[stepper-config]] (((Stepper Configuration))) - -== Introduction[[sec:Introduction]] - -The preferred way to set up a standard stepper machine is with the -Step Configuration Wizard. See the Getting Started Guide. - -This chapter describes some of the more common settings for manually -setting up a stepper based system. Because of the various possibilities -of configuring LinuxCNC, it is very hard to document them all, and keep -this document relatively short. - -The most common LinuxCNC usage is for stepper based systems. These systems -are using stepper motors with drives that accept step & direction -signals. - -It is one of the simpler setups, because the motors run open-loop (no -feedback comes back from the motors), yet the system needs to be -configured properly so the motors don't stall or lose steps. - -Most of this chapter is based on the sample config released along with -LinuxCNC. The config is called stepper(((stepper))), and usually it is -found in '/etc/emc2/sample-configs/stepper'. - -== Maximum step rate[[sec:Maximum-step-rate]](((step rate))) - -With software step generation, the maximum step rate is one step per -two BASE_PERIODs for step-and-direction output. The maximum requested -step rate is the product of an axis' MAX_VELOCITY and its INPUT_SCALE. -If the requested step rate is not attainable, following errors will -occur, particularly during fast jogs and G0 moves. - -If your stepper driver can accept quadrature input, use this mode. -With a quadrature signal, one step is possible for each BASE_PERIOD, -doubling the maximum step rate. - -The other remedies are to decrease one or more of: the BASE_PERIOD -(setting this too low will cause the machine to become unresponsive or -even lock up), the INPUT_SCALE (if you can select different step sizes -on your stepper driver, change pulley ratios, or leadscrew pitch), or -the MAX_VELOCITY and STEPGEN_MAXVEL. - -If no valid combination of BASE_PERIOD, INPUT_SCALE, and MAX_VELOCITY -is acceptable, then consider using hardware step generation (such as -with the LinuxCNC-supported Universal Stepper Controller, Mesa cards, and -others.) - -== Pinout[[sec:Pinout]](((pinout))) - -One of the major flaws in LinuxCNC was that you couldn't specify the pinout -without recompiling the source code. LinuxCNC is far more flexible, and now -(thanks to the Hardware Abstraction Layer) you can easily specify which -signal goes where. See the HAL manual for more detailed information on -HAL. - -As it is described in the HAL Introduction and tutorial, we have -signals, pins and parameters inside the HAL. - -NOTE: We are presenting one axis to keep it short, all others are similar. - -The ones relevant for our pinout are: - ----- -signals: Xstep, Xdir & Xen -pins: parport.0.pin-XX-out & parport.0.pin-XX-in ----- - -Depending on what you have chosen in your .ini file you are using -either standard_pinout.hal or xylotex_pinout.hal. These are two files -that instruct the HAL how to link the various signals & pins. Further -on we'll investigate the standard_pinout.hal. - -=== standard_pinout.hal[[sub:standard_pinout.hal]](((standard pinout))) - -This file contains several HAL commands, and usually looks like this: - ----- -# standard pinout config file for 3-axis steppers -# using a parport for I/O -# -# first load the parport driver -loadrt hal_parport cfg="0x0378" -# -# next connect the parport functions to threads -# read inputs first -addf parport.0.read base-thread 1 -# write outputs last -addf parport.0.write base-thread -1 -# -# finally connect physical pins to the signals -net Xstep => parport.0.pin-03-out -net Xdir => parport.0.pin-02-out -net Ystep => parport.0.pin-05-out -net Ydir => parport.0.pin-04-out -net Zstep => parport.0.pin-07-out -net Zdir => parport.0.pin-06-out - -# create a signal for the estop loopback -net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in - -# create signals for tool loading loopback -net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared -net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed - -# connect "spindle on" motion controller pin to a physical pin -net spindle-on motion.spindle-on => parport.0.pin-09-out - -### -### You might use something like this to enable chopper drives when machine ON -### the Xen signal is defined in core_stepper.hal -### - -# net Xen => parport.0.pin-01-out - -### -### If you want active low for this pin, invert it like this: -### - -# setp parport.0.pin-01-out-invert 1 - -### -### A sample home switch on the X axis (axis 0). make a signal, -### link the incoming parport pin to the signal, then link the signal -### to LinuxCNC's axis 0 home switch input pin -### - -# net Xhome parport.0.pin-10-in => axis.0.home-sw-in - -### -### Shared home switches all on one parallel port pin? -### that's ok, hook the same signal to all the axes, but be sure to -### set HOME_IS_SHARED and HOME_SEQUENCE in the ini file. See the -### user manual! -### - -# net homeswitches <= parport.0.pin-10-in -# net homeswitches => axis.0.home-sw-in -# net homeswitches => axis.1.home-sw-in -# net homeswitches => axis.2.home-sw-in - -### -### Sample separate limit switches on the X axis (axis 0) -### - -# net X-neg-limit parport.0.pin-11-in => axis.0.neg-lim-sw-in -# net X-pos-limit parport.0.pin-12-in => axis.0.pos-lim-sw-in - -### -### Just like the shared home switches example, you can wire together -### limit switches. Beware if you hit one, LinuxCNC will stop but can't tell -### you which switch/axis has faulted. Use caution when recovering from this. -### - -# net Xlimits parport.0.pin-13-in => axis.0.neg-lim-sw-in axis.0.pos-lim-sw-in - ----- - -The lines starting with '#' are comments, and their only purpose is to -guide the reader through the file. - -=== Overview[[sub:Overview-standard_pinout.hal]] - -There are a couple of operations that get executed when the -standard_pinout.hal gets executed/interpreted: - -* The Parport driver gets loaded (see the Parport section of - the HAL Manual for details) -* The read & write functions of the parport driver get assigned to the - base thread footnote:[the fastest thread in the LinuxCNC setup, usually the - code gets executed every few tens of microseconds] -* The step & direction signals for axes X,Y,Z get linked to pins on the - parport -* Further I/O signals get connected (estop loopback, toolchanger loopback) -* A spindle-on signal gets defined and linked to a parport pin - -=== Changing the standard_pinout.hal[[sub:Changing-standard_pinout.hal]] - -If you want to change the standard_pinout.hal file, all you need is a -text editor. Open the file and locate the parts you want to change. - -If you want for example to change the pin for the X-axis Step & -Directions signals, all you need to do is to change the number in the -'parport.0.pin-XX-out' name: - ----- -net Xstep parport.0.pin-03-out -net Xdir parport.0.pin-02-out ----- - -can be changed to: - ----- -net Xstep parport.0.pin-02-out -net Xdir parport.0.pin-03-out ----- - -or basically any other 'out' pin you like. - -Hint: make sure you don't have more than one signal connected to the -same pin. - -=== Changing polarity of a signal[[sub:Changing-the-polarity]](((signal polarity))) - -If external hardware expects an “active low†signal, set the -corresponding '-invert' parameter. For instance, to invert the spindle -control signal: - ----- -setp parport.0.pin-09-invert TRUE ----- - -=== Adding PWM Spindle Speed Control[[sub:PWM-Spindle-Speed]](((spindle speed control))) - -If your spindle can be controlled by a PWM signal, use the 'pwmgen' -component to create the signal: - ----- -loadrt pwmgen output_type=0 -addf pwmgen.update servo-thread -addf pwmgen.make-pulses base-thread -net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value -net spindle-on motion.spindle-on => pwmgen.0.enable -net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out -setp pwmgen.0.scale 1800 # Change to your spindle’s top speed in RPM ----- - -This assumes that the spindle controller's response to PWM is simple: -0% PWM gives 0 RPM, 10% PWM gives 180 RPM, etc. If there is a minimum -PWM required to get the spindle to turn, follow the example in the -'nist-lathe' sample configuration to use a 'scale' component. - -=== Adding an enable signal[[sub:Adding-enable-signal]](((enable signal))) - -Some amplifiers (drives) require an enable signal before they accept -and command movement of the motors. For this reason there are already -defined signals called 'Xen', 'Yen', 'Zen'. - -To connect them use the following example: - ----- -net Xen parport.0.pin-08-out ----- - -You can either have one single pin that enables all drives; or -several, depending on the setup you have. Note, however, that usually -when one axis faults, all the other drives will be disabled as well, so -having only one enable signal / pin for all drives is a common -practice. - -=== External ESTOP button(((ESTOP))) - -As you can see in the <> file -by default the stepper configuration assumes no external ESTOP button. -footnote:[An extensive explanation of hooking up ESTOP circuitry is explained -in the wiki.linuxcnc.org and elsewhere in the Integrator Manual] - -To add a simple external button you need to replace the line: - ----- -net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in ----- - -with - ----- -net estop-loop parport.0.pin-01-in iocontrol.0.emc-enable-in ----- - -This assumes an ESTOP switch connected to pin 01 on the parport. As -long as the switch will stay pushedfootnote:[make sure you use a -maintained switch for ESTOP.], LinuxCNC will be in the ESTOP state. -When the external button gets -released LinuxCNC will immediately switch to the ESTOP-RESET state, and all -you need to do is switch to Machine On(((machine on))) and you'll be -able to continue your work with LinuxCNC. - - diff --git a/docs/src/config/stepper_es.txt b/docs/src/config/stepper_es.txt deleted file mode 100644 index e9878853454..00000000000 --- a/docs/src/config/stepper_es.txt +++ /dev/null @@ -1,292 +0,0 @@ -= Stepper Configuration - -[[stepper-config]] (((Stepper Configuration))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Introduction[[sec:Introduction]] - -The preferred way to set up a standard stepper machine is with the -Step Configuration Wizard. See the Getting Started Guide. - -This chapter describes some of the more common settings for manually -setting up a stepper based system. Because of the various possibilities -of configuring LinuxCNC, it is very hard to document them all, and keep -this document relatively short. - -The most common LinuxCNC usage is for stepper based systems. These systems -are using stepper motors with drives that accept step & direction -signals. - -It is one of the simpler setups, because the motors run open-loop (no -feedback comes back from the motors), yet the system needs to be -configured properly so the motors don't stall or lose steps. - -Most of this chapter is based on the sample config released along with -LinuxCNC. The config is called stepper(((stepper))), and usually it is -found in '/etc/emc2/sample-configs/stepper'. - -== Maximum step rate[[sec:Maximum-step-rate]](((step rate))) - -With software step generation, the maximum step rate is one step per -two BASE_PERIODs for step-and-direction output. The maximum requested -step rate is the product of an axis' MAX_VELOCITY and its INPUT_SCALE. -If the requested step rate is not attainable, following errors will -occur, particularly during fast jogs and G0 moves. - -If your stepper driver can accept quadrature input, use this mode. -With a quadrature signal, one step is possible for each BASE_PERIOD, -doubling the maximum step rate. - -The other remedies are to decrease one or more of: the BASE_PERIOD -(setting this too low will cause the machine to become unresponsive or -even lock up), the INPUT_SCALE (if you can select different step sizes -on your stepper driver, change pulley ratios, or leadscrew pitch), or -the MAX_VELOCITY and STEPGEN_MAXVEL. - -If no valid combination of BASE_PERIOD, INPUT_SCALE, and MAX_VELOCITY -is acceptable, then consider using hardware step generation (such as -with the LinuxCNC-supported Universal Stepper Controller, Mesa cards, and -others.) - -== Pinout[[sec:Pinout]](((pinout))) - -One of the major flaws in LinuxCNC was that you couldn't specify the pinout -without recompiling the source code. LinuxCNC is far more flexible, and now -(thanks to the Hardware Abstraction Layer) you can easily specify which -signal goes where. See the HAL manual for more detailed information on -HAL. - -As it is described in the HAL Introduction and tutorial, we have -signals, pins and parameters inside the HAL. - -NOTE: We are presenting one axis to keep it short, all others are similar. - -The ones relevant for our pinout are: - ----- -signals: Xstep, Xdir & Xen -pins: parport.0.pin-XX-out & parport.0.pin-XX-in ----- - -Depending on what you have chosen in your .ini file you are using -either standard_pinout.hal or xylotex_pinout.hal. These are two files -that instruct the HAL how to link the various signals & pins. Further -on we'll investigate the standard_pinout.hal. - -=== standard_pinout.hal[[sub:standard_pinout.hal]](((standard pinout))) - -This file contains several HAL commands, and usually looks like this: - ----- -# standard pinout config file for 3-axis steppers -# using a parport for I/O -# -# first load the parport driver -loadrt hal_parport cfg="0x0378" -# -# next connect the parport functions to threads -# read inputs first -addf parport.0.read base-thread 1 -# write outputs last -addf parport.0.write base-thread -1 -# -# finally connect physical pins to the signals -net Xstep => parport.0.pin-03-out -net Xdir => parport.0.pin-02-out -net Ystep => parport.0.pin-05-out -net Ydir => parport.0.pin-04-out -net Zstep => parport.0.pin-07-out -net Zdir => parport.0.pin-06-out - -# create a signal for the estop loopback -net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in - -# create signals for tool loading loopback -net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared -net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed - -# connect "spindle on" motion controller pin to a physical pin -net spindle-on motion.spindle-on => parport.0.pin-09-out - -### -### You might use something like this to enable chopper drives when machine ON -### the Xen signal is defined in core_stepper.hal -### - -# net Xen => parport.0.pin-01-out - -### -### If you want active low for this pin, invert it like this: -### - -# setp parport.0.pin-01-out-invert 1 - -### -### A sample home switch on the X axis (axis 0). make a signal, -### link the incoming parport pin to the signal, then link the signal -### to LinuxCNC's axis 0 home switch input pin -### - -# net Xhome parport.0.pin-10-in => axis.0.home-sw-in - -### -### Shared home switches all on one parallel port pin? -### that's ok, hook the same signal to all the axes, but be sure to -### set HOME_IS_SHARED and HOME_SEQUENCE in the ini file. See the -### user manual! -### - -# net homeswitches <= parport.0.pin-10-in -# net homeswitches => axis.0.home-sw-in -# net homeswitches => axis.1.home-sw-in -# net homeswitches => axis.2.home-sw-in - -### -### Sample separate limit switches on the X axis (axis 0) -### - -# net X-neg-limit parport.0.pin-11-in => axis.0.neg-lim-sw-in -# net X-pos-limit parport.0.pin-12-in => axis.0.pos-lim-sw-in - -### -### Just like the shared home switches example, you can wire together -### limit switches. Beware if you hit one, LinuxCNC will stop but can't tell -### you which switch/axis has faulted. Use caution when recovering from this. -### - -# net Xlimits parport.0.pin-13-in => axis.0.neg-lim-sw-in axis.0.pos-lim-sw-in - ----- - -The lines starting with '#' are comments, and their only purpose is to -guide the reader through the file. - -=== Overview[[sub:Overview-standard_pinout.hal]] - -There are a couple of operations that get executed when the -standard_pinout.hal gets executed/interpreted: - -* The Parport driver gets loaded (see the Parport section of - the HAL Manual for details) -* The read & write functions of the parport driver get assigned to the - base thread footnote:[the fastest thread in the LinuxCNC setup, usually the - code gets executed every few tens of microseconds] -* The step & direction signals for axes X,Y,Z get linked to pins on the - parport -* Further I/O signals get connected (estop loopback, toolchanger loopback) -* A spindle-on signal gets defined and linked to a parport pin - -=== Changing the standard_pinout.hal[[sub:Changing-standard_pinout.hal]] - -If you want to change the standard_pinout.hal file, all you need is a -text editor. Open the file and locate the parts you want to change. - -If you want for example to change the pin for the X-axis Step & -Directions signals, all you need to do is to change the number in the -'parport.0.pin-XX-out' name: - ----- -net Xstep parport.0.pin-03-out -net Xdir parport.0.pin-02-out ----- - -can be changed to: - ----- -net Xstep parport.0.pin-02-out -net Xdir parport.0.pin-03-out ----- - -or basically any other 'out' pin you like. - -Hint: make sure you don't have more than one signal connected to the -same pin. - -=== Changing polarity of a signal[[sub:Changing-the-polarity]](((signal polarity))) - -If external hardware expects an “active low†signal, set the -corresponding '-invert' parameter. For instance, to invert the spindle -control signal: - ----- -setp parport.0.pin-09-invert TRUE ----- - -=== Adding PWM Spindle Speed Control[[sub:PWM-Spindle-Speed]](((spindle speed control))) - -If your spindle can be controlled by a PWM signal, use the 'pwmgen' -component to create the signal: - ----- -loadrt pwmgen output_type=0 -addf pwmgen.update servo-thread -addf pwmgen.make-pulses base-thread -net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value -net spindle-on motion.spindle-on => pwmgen.0.enable -net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out -setp pwmgen.0.scale 1800 # Change to your spindle’s top speed in RPM ----- - -This assumes that the spindle controller's response to PWM is simple: -0% PWM gives 0 RPM, 10% PWM gives 180 RPM, etc. If there is a minimum -PWM required to get the spindle to turn, follow the example in the -'nist-lathe' sample configuration to use a 'scale' component. - -=== Adding an enable signal[[sub:Adding-enable-signal]](((enable signal))) - -Some amplifiers (drives) require an enable signal before they accept -and command movement of the motors. For this reason there are already -defined signals called 'Xen', 'Yen', 'Zen'. - -To connect them use the following example: - ----- -net Xen parport.0.pin-08-out ----- - -You can either have one single pin that enables all drives; or -several, depending on the setup you have. Note, however, that usually -when one axis faults, all the other drives will be disabled as well, so -having only one enable signal / pin for all drives is a common -practice. - -=== External ESTOP button(((ESTOP))) - -As you can see in the <> file -by default the stepper configuration assumes no external ESTOP button. -footnote:[An extensive explanation of hooking up ESTOP circuitry is explained -in the wiki.linuxcnc.org and elsewhere in the Integrator Manual] - -To add a simple external button you need to replace the line: - ----- -net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in ----- - -with - ----- -net estop-loop parport.0.pin-01-in iocontrol.0.emc-enable-in ----- - -This assumes an ESTOP switch connected to pin 01 on the parport. As -long as the switch will stay pushedfootnote:[make sure you use a -maintained switch for ESTOP.], LinuxCNC will be in the ESTOP state. -When the external button gets -released LinuxCNC will immediately switch to the ESTOP-RESET state, and all -you need to do is switch to Machine On(((machine on))) and you'll be -able to continue your work with LinuxCNC. - - diff --git a/docs/src/config/stepper_fr.txt b/docs/src/config/stepper_fr.txt deleted file mode 100644 index 53d99066654..00000000000 --- a/docs/src/config/stepper_fr.txt +++ /dev/null @@ -1,303 +0,0 @@ -:lang: fr -:toc: - -= Configuration d'un système pas/direction (dir/step) - -[[cha:config-steppers]] (((Configuration pas/direction))) - - -[[sec:Introduction]] -== Introduction - -Ce chapitre décrit quelques uns des réglages les plus fréquents, sur -lesquels l'utilisateur aura à agir lors de la mise au point de LinuxCNC. En -raison de l'adaptabilité de LinuxCNC, il serait très difficile de les -documenter tous en gardant ce document relativement concis. - -Le système rencontré le plus fréquemment chez les utilisateurs de LinuxCNC -est un système à moteurs pas à pas. Les interfaces de pilotage de ces -moteurs recoivent de LinuxCNC des signaux de pas et de direction. - -C'est le système le plus simple à mettre en oeuvre parce que les -moteurs fonctionnent en boucle ouverte (pas d'information de retour des -moteurs), le système nécessite donc d'être configuré correctement pour -que les moteurs ne perdent pas de pas et ne calent pas. - -Ce chapitre s'appuie sur la configuration fournie d'origine avec LinuxCNC -appelée _stepper_(((stepper))) et qui se trouve habituellement dans -_/etc/linuxcnc/sample-configs/stepper_. - -[[sec:Maximum-step-rate]] -== Fréquence de pas maximale(((Frequence de pas maximale))) - -Avec la génération logicielle des pas la fréquence maximale en sortie, -pour les impulsions de pas et de direction, est de une impulsion pour -deux BASE_PERIOD. La fréquence de pas maximale accessible pour un axe -est le produit de MAX_VELOCITY et de INPUT_SCALE. Si la fréquence -demandée est excessive, une erreur de suivi se produira (following -error), particulièrement pendant les jog rapides et les mouvements en -G0. - -Si votre interface de pilotage des moteurs accepte des signaux -d'entrée en quadrature, utilisez ce mode. Avec un signal en quadrature, -un pas est possible pour chaque BASE_PERIOD, ce qui double la fréquence -maximum admissible. - -Les autres remèdes consistent à diminuer une ou plusieurs variables: -BASE_PERIOD (une valeur trop faible peux causer un bloquage du PC), -INPUT_SCALE (s'il est possible sur l'interface de pilotage de -sélectionner une taille de pas différente, de changer le rapport des -poulies ou le pas de la vis mère), ou enfin MAX_VELOCITY et -STEPGEN_MAXVEL. - -Si aucune combinaison entre BASE_PERIOD, INPUT_SCALE et MAX_VELOCITY -n'est fonctionnelle, il faut alors envisager un générateur de pas -externe (parmis les contrôleurs de moteurs pas à pas universels -supportés par LinuxCNC) - -[[sec:Brochage]] -== Brochage -(((brochage))) - -LinuxCNC est très flexible et grâce à la couche d'abstraction de HAL -(Hardware Abstraction Layer) il est facile de spécifier que tel signal -ira sur telle broche. - -Voir le tutoriel de HAL pour plus d'informations(((HAL)))). - -Comme décrit dans l'introduction et la manuel de HAL, il comporte des -composants dont il fourni les signaux, les pins et les paramètres. - -Les premiers signaux et pins relatifs au brochage sont:footnote:[Note: -pour rester concis, nous ne présenterons qu'un seul axe, tous -les autres sont similaires.] ----- -signaux: Xstep, Xdir et Xen -pins: parport.0.pin-XX-out & parport.0.pin-XX-in ----- - -Pour configurer le fichier ini, il est possible de choisir entre les -deux brochages les plus fréquents, devenus des standards de fait, le -brochage standard_pinout.hal ou le brochage xylotex_pinout.hal. Ces -deux fichiers indiquent à HAL comment raccorder les différents signaux -aux différentes pins. Dans la suite, nous nous concentrerons sur le -brochage _standard_pinout.hal_. - - -== Le fichier standard_pinout.hal[[sec:standard-pinout.hal]] - -(((standard pinout))) - -Ce fichier contient certaines commandes de HAL et habituellement -ressemble à celà: - ----- -# standard pinout config file for 3-axis steppers -# using a parport for I/O -# - -# first load the parport driver -loadrt hal_parport cfg="0x0378" - -# -# next connect the parport functions to threads -# read inputs first -addf parport.0.read base-thread 1 - -# write outputs last -addf parport.0.write base-thread -1 - -# -# finally connect physical pins to the signals -net Xstep => parport.0.pin-03-out -net Xdir => parport.0.pin-02-out -net Ystep => parport.0.pin-05-out -net Ydir => parport.0.pin-04-out -net Zstep => parport.0.pin-07-out -net Zdir => parport.0.pin-06-out - -# create a signal for the estop loopback -net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in - -# create signals for tool loading loopback -net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared -net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed - -# connect "spindle on" motion controller pin to a physical pin -net spindle-on motion.spindle-on => parport.0.pin-09-out - -### -### You might use something like this to enable chopper drives when machine ON -### the Xen signal is defined in core_stepper.hal -### -# net Xen => parport.0.pin-01-out - -### -### If you want active low for this pin, invert it like this: -### -# setp parport.0.pin-01-out-invert 1 - -### -### A sample home switch on the X axis (axis 0). make a signal, -### link the incoming parport pin to the signal, then link the signal -### to LinuxCNC's axis 0 home switch input pin -### -# net Xhome parport.0.pin-10-in => axis.0.home-sw-in - -### -### Shared home switches all on one parallel port pin? -### that's ok, hook the same signal to all the axes, but be sure to -### set HOME_IS_SHARED and HOME_SEQUENCE in the ini file. See the -### user manual! -### -# net homeswitches <= parport.0.pin-10-in -# net homeswitches => axis.0.home-sw-in -# net homeswitches => axis.1.home-sw-in -# net homeswitches => axis.2.home-sw-in - -### -### Sample separate limit switches on the X axis (axis 0) -### -# net X-neg-limit parport.0.pin-11-in => axis.0.neg-lim-sw-in -# net X-pos-limit parport.0.pin-12-in => axis.0.pos-lim-sw-in - -### -### Just like the shared home switches example, you can wire together -### limit switches. Beware if you hit one, LinuxCNC will stop but can't tell -### you which switch/axis has faulted. Use caution when recovering from this. -### -# net Xlimits parport.0.pin-13-in => axis.0.neg-lim-sw-in axis.0.pos-lim-sw-in - ----- - -Les lignes commençant par *#* sont des commentaires, aident à la -lecture du fichier. - -[[sec:Vue-d-ensemble-standard-pinout-hal]] -== Vue d'ensemble du fichier standard_pinout.hal - -Voici les opérations qui sont exécutées quand le fichier -standard_pinout.hal est lu par l'interpréteur: - - . Le pilote du port parallèle est chargé (voir le Parport section de - le Manuel de HAL pour plus de détails) - . Les fonctions de lecture/écriture du pilote sont assignée au thread - «Base thread» footnote:[Le thread le plus rapide parmis les réglages - de LinuxCNC, habituellement il - n'y a que quelques microsecondes entre les exécutions de ce code.] - . Les signaux du générateur de pas et de direction des axes X,Y,Z... - sont raccordés aux broches du port parallèle - . D'autres signaux d'entrées/sorties sont connectés (boucle d'arrêt - d'urgence, boucle du changeur d'outil...) - . Un signal de marche broche est défini et raccordé à une broche du port - parallèle - -[[sec:Modifier-standard-pinout-hal]] -== Modifier le fichier standard_pinout.hal - -Pour modifier le fichier standard_pinout.hal, il suffit de l'ouvrir -dans un éditeur de texte puis d'y localiser les parties à modifier. - -Si vous voulez par exemple, modifier les broches de pas et de -direction de l'axe X, il vous suffit de modifier le numéro de la -variable nommée _parport.0.pin-XX-out_: ----- -net Xstep parport.0.pin-03-out -net Xdir parport.0.pin-02-out ----- - -peut être modifiée pour devenir: ----- -net Xstep parport.0.pin-02-out -net Xdir parport.0.pin-03-out ----- - -ou de manière générale n'importe quel numéro que vous souhaiteriez. - -Attention: il faut être certain de n'avoir qu'un seul signal connecté -à une broche. - -[[sec:Modifier-la-polarite]] -== Modifier la polarité d'un signal -(((signal polarite))) - -Si une interface attends un signal _actif bas_, ajouter une ligne avec -le paramètre d'inversion de la sortie, _-invert_. Par exemple, pour -inverser le signal de rotation de la broche: ----- -setp parport.0.pin-09-invert TRUE ----- - -[[sec:PWM-Vitesse-broche]] -== Ajouter le contrôle de vitesse broche en PWM -(((Vitesse broche PWM))) - -Si votre vitesse de broche peut être contrôlée par un signal de PWM, -utilisez le composant _pwmgen_ pour créer ce signal: ----- -loadrt pwmgen output_type=0 -addf pwmgen.update servo-thread -addf pwmgen.make-pulses base-thread -net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value -net spindle-on motion.spindle-on => pwmgen.0.enable -net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out -setp pwmgen.0.scale 1800 # Change to your spindle’s top speed in RPM ----- - -Ce qui donnera le fonctionnement suivant, pour un signal PWM à: 0% -donnera une vitesse de 0tr/mn, 10% une vitesse de 180tr/mn, etc. Si un -signal PWM supérieur à 0% est requis pour que la broche commence à -tourner, suivez l'exemple du fichier de configuration _nist-lathe_ qui -utilise un composant d'échelle (_scale_). - -[[sec:Ajouter-signal-enable]] -== Ajouter un signal de validation *enable* -(((signal enable))) - -Certains pilotes de moteurs requiert un signal de validation _enable_ -avant d'autoriser tout mouvement du moteur. Pour celà des signaux sont -déjà définis et appelés _Xen_, _Yen_, _Zen_. - -Pour les connecter vous pouvez utilisez l'exemple suivant: ----- -net Xen parport.0.pin-08-out ----- - -Il est possible d'avoir une seule pin de validation pour l'ensemble -des pilotes, ou plusieurs selon la configuration que vous voulez. Notez -toutefois qu'habituellement quand un axe est en défaut, tous les autres -sont invalidés aussi de sorte que, n'avoir qu'un seul signal/pin de -validation pour l'ensemble est parfaitement sécurisé. - -== Ajouter un bouton d'Arrêt d'Urgence externe -(((A/U))) - -Comme vous pouvez <>, -par défaut la configuration standard n'utilise pas de bouton d'Arrêt -d'Urgence externe. footnote:[Une explication complète sur la manière de -gérer les circuiteries d'Arrêt d'Urgence se trouve sur le -http://wiki.linuxcnc.org/[ wiki(en)] et dans le Manuel de l'intégrateur. - -Pour ajouter un simple bouton d'AU externe (ou plusieurs en série) vous -devez remplacer la ligne suivante: - ----- -net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in ----- - -par - ----- -net estop-loop parport.0.pin-01-in iocontrol.0.emc-enable-in ----- - - -Ce qui implique qu'un bouton d'Arrêt d'Urgence soit connecté sur la -broche 01 du port parallèle. Tant que le bouton est enfoncé (le contact -ouvert)footnote:[Utiliser exclusivement des contacts normalement fermés -pour les A/U.], -LinuxCNC restera dans l'état _Arrêt d'Urgence_ (ESTOP). Quand le bouton -externe sera relâché, LinuxCNC passera immédiatement dans l'état -_Arrêt d'Urgence Relâché_ (ESTOP-RESET) vous pourrez ensuite mettre -la machine en marche en pressant le bouton _Marche machine_ (((marche machine))) -et vous êtes alors prêt à continuer votre travail avec LinuxCNC. diff --git a/docs/src/docbook-image.conf b/docs/src/docbook-image.conf deleted file mode 100644 index 555284940b1..00000000000 --- a/docs/src/docbook-image.conf +++ /dev/null @@ -1,24 +0,0 @@ -# Allow wildcards in image names -[image-inlinemacro] - - - - - {alt={target}} - - -[image-blockmacro] -{title} -{title%}{pgwide-option?} -# DocBook XSL Stylesheets custom processing instructions. - - - - - - - {alt={target}} - -{title#} -{title%} - diff --git a/docs/src/docbook.conf b/docs/src/docbook.conf deleted file mode 100644 index dfab8247bb5..00000000000 --- a/docs/src/docbook.conf +++ /dev/null @@ -1,2 +0,0 @@ -include::attribute-colon.conf[] -include::docbook-image.conf[] diff --git a/docs/src/docs.xml b/docs/src/docs.xml deleted file mode 100644 index c506712c203..00000000000 --- a/docs/src/docs.xml +++ /dev/null @@ -1,283 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/src/drivers/AX5214H.txt b/docs/src/drivers/AX5214H.txt deleted file mode 100644 index f9acc149a56..00000000000 --- a/docs/src/drivers/AX5214H.txt +++ /dev/null @@ -1,66 +0,0 @@ -= AX5214H Driver - -[[cha:ax5214-driver]] (((AX5214H Driver))) - -The Axiom Measurement & Control AX5214H is a 48 channel digital I/O -board. It plugs into an ISA bus, and resembles a pair of 8255 chips. In -fact it may be a pair of 8255 chips, but I'm not sure. If/when someone -starts a driver for an 8255 they should look at the ax5214 code, much -of the work is already done. - -== Installing - ----- -loadrt hal_ax5214h cfg="" ----- - -The config string consists of a hex port address, followed by an 8 -character string of "I" and "O" which sets groups of pins as inputs and -outputs. The first two character set the direction of the first two 8 -bit blocks of pins (0-7 and 8-15). The next two set blocks of 4 pins -(16-19 and 20-23). The pattern then repeats, two more blocks of 8 bits -(24-31 and 32-39) and two blocks of 4 bits (40-43 and 44-47). If more -than one board is installed, the data for the second board follows the -first. As an example, the string '"0x220 IIIOIIOO 0x300 OIOOIOIO"' -installs drivers for two boards. The first board is at address 0x220, -and has 36 inputs (0-19 and 24-39) and 12 outputs (20-23 and 40-47). -The second board is at address 0x300, and has 20 inputs (8-15, 24-31, -and 40-43) and 28 outputs (0-7. 16-23, 32-39, and 44-47). Up to 8 -boards may be used in one system. - -== Pins - -* '(bit) ax5214..out-' -- Drives a physical output pin. -* '(bit) ax5214..in-' -- Tracks a physical input pin. -* '(bit) ax5214..in--not' -- Tracks a physical input pin, inverted. - -For each pin, is the board number (starts at zero), and - is the I/O channel number (0 to 47). - -Note that the driver assumes active LOW signals. This is so that -modules such as OPTO-22 will work correctly (TRUE means output ON, or -input energized). If the signals are being used directly without -buffering or isolation the inversion needs to be accounted for. The in- -HAL pin is TRUE if the physical pin is low (OPTO-22 module energized), -and FALSE if the physical pin is high (OPTO-22 module off). The -in--not HAL pin is inverted -- it is FALSE if the physical pin -is low (OPTO-22 module energized). By connecting a signal to one or the -other, the user can determine the state of the input. - -== Parameters - -* '(bit) ax5214..out--invert' -- Inverts an output pin. - -The -invert parameter determines whether an output pin is active high -or active low. If -invert is FALSE, setting the HAL out- pin TRUE -drives the physical pin low, turning ON an attached OPTO-22 module, and -FALSE drives it high, turning OFF the OPTO-22 module. If -invert is -TRUE, then setting the HAL out- pin TRUE will drive the physical pin -high and turn the module OFF. - -== Functions - -* '(funct) ax5214..read' -- Reads all digital inputs on one board. -* '(funct) ax5214..write' -- Writes all digital outputs on one board. - - diff --git a/docs/src/drivers/AX5214H_es.txt b/docs/src/drivers/AX5214H_es.txt deleted file mode 100644 index 3ae7dbcc081..00000000000 --- a/docs/src/drivers/AX5214H_es.txt +++ /dev/null @@ -1,79 +0,0 @@ -= AX5214H Driver - -[[cha:ax5214-driver]] (((AX5214H Driver))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -The Axiom Measurement & Control AX5214H is a 48 channel digital I/O -board. It plugs into an ISA bus, and resembles a pair of 8255 chips. In -fact it may be a pair of 8255 chips, but I'm not sure. If/when someone -starts a driver for an 8255 they should look at the ax5214 code, much -of the work is already done. - -== Installing - ----- -loadrt hal_ax5214h cfg="" ----- - -The config string consists of a hex port address, followed by an 8 -character string of "I" and "O" which sets groups of pins as inputs and -outputs. The first two character set the direction of the first two 8 -bit blocks of pins (0-7 and 8-15). The next two set blocks of 4 pins -(16-19 and 20-23). The pattern then repeats, two more blocks of 8 bits -(24-31 and 32-39) and two blocks of 4 bits (40-43 and 44-47). If more -than one board is installed, the data for the second board follows the -first. As an example, the string '"0x220 IIIOIIOO 0x300 OIOOIOIO"' -installs drivers for two boards. The first board is at address 0x220, -and has 36 inputs (0-19 and 24-39) and 12 outputs (20-23 and 40-47). -The second board is at address 0x300, and has 20 inputs (8-15, 24-31, -and 40-43) and 28 outputs (0-7. 16-23, 32-39, and 44-47). Up to 8 -boards may be used in one system. - -== Pins - -* '(bit) ax5214..out-' -- Drives a physical output pin. -* '(bit) ax5214..in-' -- Tracks a physical input pin. -* '(bit) ax5214..in--not' -- Tracks a physical input pin, inverted. - -For each pin, is the board number (starts at zero), and - is the I/O channel number (0 to 47). - -Note that the driver assumes active LOW signals. This is so that -modules such as OPTO-22 will work correctly (TRUE means output ON, or -input energized). If the signals are being used directly without -buffering or isolation the inversion needs to be accounted for. The in- -HAL pin is TRUE if the physical pin is low (OPTO-22 module energized), -and FALSE if the physical pin is high (OPTO-22 module off). The -in--not HAL pin is inverted -- it is FALSE if the physical pin -is low (OPTO-22 module energized). By connecting a signal to one or the -other, the user can determine the state of the input. - -== Parameters - -* '(bit) ax5214..out--invert' -- Inverts an output pin. - -The -invert parameter determines whether an output pin is active high -or active low. If -invert is FALSE, setting the HAL out- pin TRUE -drives the physical pin low, turning ON an attached OPTO-22 module, and -FALSE drives it high, turning OFF the OPTO-22 module. If -invert is -TRUE, then setting the HAL out- pin TRUE will drive the physical pin -high and turn the module OFF. - -== Functions - -* '(funct) ax5214..read' -- Reads all digital inputs on one board. -* '(funct) ax5214..write' -- Writes all digital outputs on one board. - - diff --git a/docs/src/drivers/AX5214H_fr.txt b/docs/src/drivers/AX5214H_fr.txt deleted file mode 100644 index 09d995b7e95..00000000000 --- a/docs/src/drivers/AX5214H_fr.txt +++ /dev/null @@ -1,62 +0,0 @@ -= AX5214H - -The Axiom Measurement & Control AX5214H is a 48 channel digital I/O -board. It plugs into an ISA bus, and resembles a pair of 8255 chips. In -fact it may be a pair of 8255 chips, but I'm not sure. If/when someone -starts a driver for an 8255 they should look at the ax5214 code, much -of the work is already done. - -== Installing - - loadrt hal_ax5214h cfg="" - -The config string consists of a hex port address, followed by an 8 -character string of "I" and "O" which sets groups of pins as inputs and -outputs. The first two character set the direction of the first two 8 -bit blocks of pins (0-7 and 8-15). The next two set blocks of 4 pins -(16-19 and 20-23). The pattern then repeats, two more blocks of 8 bits -(24-31 and 32-39) and two blocks of 4 bits (40-43 and 44-47). If more -than one board is installed, the data for the second board follows the -first. As an example, the string `"0x220 IIIOIIOO 0x300 OIOOIOIO"` -installs drivers for two boards. The first board is at address 0x220, -and has 36 inputs (0-19 and 24-39) and 12 outputs (20-23 and 40-47). -The second board is at address 0x300, and has 20 inputs (8-15, 24-31, -and 40-43) and 28 outputs (0-7. 16-23, 32-39, and 44-47). Up to 8 -boards may be used in one system. - -== Pins - - - `(bit) ax5214..out-` -- Drives a physical output pin. - - `(bit) ax5214..in-` -- Tracks a physical input pin. - - `(bit) ax5214..in--not` -- Tracks a physical input pin, inverted. - -For each pin, is the board number (starts at zero), and - is the I/O channel number (0 to 47). - -Note that the driver assumes active LOW signals. This is so that -modules such as OPTO-22 will work correctly (TRUE means output ON, or -input energized). If the signals are being used directly without -buffering or isolation the inversion needs to be accounted for. The in- -HAL pin is TRUE if the physical pin is low (OPTO-22 module energized), -and FALSE if the physical pin is high (OPTO-22 module off). The -in--not HAL pin is inverted -- it is FALSE if the physical pin -is low (OPTO-22 module energized). By connecting a signal to one or the -other, the user can determine the state of the input. - -== Parameters - - - `(bit) ax5214..out--invert` -- Inverts an output pin. - -The -invert parameter determines whether an output pin is active high -or active low. If -invert is FALSE, setting the HAL out- pin TRUE -drives the physical pin low, turning ON an attached OPTO-22 module, and -FALSE drives it high, turning OFF the OPTO-22 module. If -invert is -TRUE, then setting the HAL out- pin TRUE will drive the physical pin -high and turn the module OFF. - -== Functions - - - `(funct) ax5214..read` -- Reads all digital inputs on one board. - - `(funct) ax5214..write` -- Writes all digital outputs on one board. - - diff --git a/docs/src/drivers/GM.txt b/docs/src/drivers/GM.txt deleted file mode 100644 index d819c41249a..00000000000 --- a/docs/src/drivers/GM.txt +++ /dev/null @@ -1,943 +0,0 @@ -= General Mechatronics Driver - -[[cha:gm-driver]] (((General Mechatronics Driver))) - -General Mechatronics GM6-PCI card based motion control system - -For detailed description, please refer to the http://www.generalmechatronics.com/data/products/robot_controller/PCI_UserManual_eng.pdf[System integration manual]. - -The GM6-PCI motion control card is based on an FPGA and a PCI bridge -interface ASIC. A small automated manufacturing cell can be controlled, -with a short time system integration procedure. The following figure -demonstrating the typical connection of devices related to the control -system: - -* It can control up to six axis, each can be stepper or CAN bus - interface or analogue servo. - -* GPIO: Four time eight I/O pins are placed on standard flat cable headers. - -* RS485 I/O expander modules: RS485 bus was designed for interfacing - with compact DIN-rail mounted expander modules. An 8-channel digital input, - an 8-channel relay output and an analogue I/O (4x +/-10 Volts output and 8x - +/-5 Volts input) modules are available now. Up to 16 modules can be - connected to the bus altogether. - -* 20 optically isolated input pins: Six times three for the direct - connection of two end switch and one homing sensor for each axis. And - additionally, two optically isolated E-stop inputs. - -image::images/GMsystem.png[align="center", scaledwidth="70%",alt="GM servo control system"] - -Installing: ----- -loadrt hal_gm ----- - -During loading (or attempted loading) the driver prints some useful -debugging messages to the kernel log, which can be viewed with dmesg. - -Up to 3 boards may be used in one system. - -The following connectors can be found on the GM6-PCI card: - -.GM6-PCI card connectors and LEDs(((pci-card connectors)))[[fig:PCI-card-connectors]] - -image::images/GM_PCIpinout.png[align="center",scaledwidth="70%"] - - -== I/O connectors - -.Pin numbering of GPIO connectors(((pin-numbering-gpio)))[[fig:pin-numbering-gpio]] - -image::images/GM_IOpinout.png[align="center"] - -.Pinout of GPIO connectors[[table:gpio-pinout]](((gpio-pinout))) - -[width="40%", options="header", cols="5*^"] -|======================================== -| 9 | 7 | 5 | 3 | 1 -| IOx/7 | IOx/5 | IOx/3 | IOx/1 | VCC -|======================================== - -[width="40%", options="header", cols="5*^"] -|======================================== -| 10 | 8 | 6 | 4 | 2 -| GND | IOx/6 | IOx/4 | IOx/2 | IOx/0 -|======================================== - -Each pin can be configured as digital input or output. -GM6-PCI motion control card has 4 general purpose I/O -(GPIO) connectors, with eight configurable I/O on each. -Every GPIO pin and parameter name begins as follows: - ----- -gm..gpio. ----- - -,where is form 0 to 3. For example: - ----- -gm.0.gpio.0.in-0 ----- - -indicates the state of the first pin of the first GPIO -connector on the GM6-PCI card. Hal pins are updated by function - ----- -gm..read ----- - -=== Pins - -.GPIO pins[[table:gpio-pins]](((gpio-pins))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Pins | Type and direction | Pin description -| .in-<0-7> | (bit, Out) | Input pin -| .in-not-<0-7> | (bit, Out) | Negated input pin -| .out-<0-7> | (bit, In) | Output pin. Used only when GPIO is set to output. -|======================================== - -=== Parameters - -.GPIO parameters[[table:gpio-parameters]](((gpio-parameters))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Pins | Type and direction | Parameter description -| .is-out-<0-7> | (bit, R/W) | When True, the corresponding GPIO is set to totem-pole output, other wise set to high impedance input. -| .invert-out-<0-7> | (bit, R/W) | When True, pin value will be inverted. Used when pin is configured as output. -|======================================== - -== Axis connectors - -.Pin numbering of axis connectors(((pin-numbering-axis)))[[fig:pin-numbering-axis]] - -image::images/GM_AXISpinout.png[align="center"] - -.Pinout of axis connectors[[table:axis-pinout]](((axis-pinout))) - -[width="40%", cols="^1,<4"] -|======================================== -| 1 | Encoder A -| 2 | +5 Volt (PC) -| 3 | Encoder B -| 4 | Encoder Index -| 5 | Fault -| 6 | Power Enabled -| 7 | Step/CCW/B -| 8 | Direction/CW/A -| 9 | Ground (PC) -| 10 | DAC serial line -|======================================== - -=== Axis interface modules - -Small sized DIN rail mounted interface modules gives easy way of connecting -different types of servo modules to the axis connectors. -Seven different system configurations are presented in the -http://www.generalmechatronics.com/data/products/robot_controller/PCI_UserManual_eng.pdf[System integration manual] -for evaluating typical applications. Also the detailed description of the -Axis modules can be found in the System integration manual. - -For evaluating the appropriate servo-drive structure the modules -have to be connected as the following block diagram shows: - -.Servo axis interfaces(((axis-iterface)))[[fig:axis-iterface]] - -image::images/GM_AxisInterface.png[align="center", scaledwidth="100%"] - - -=== Encoder - -The GM6-PCI motion control card has six encoder modules. -Each encoder module has three channels: - -* Channel-A -* Channel-B -* Channel-I (index) - -It is able to count quadrature encoder signals or step/dir signals. -Each encoder module is connected to the inputs of the corresponding -RJ50 axis connector. - -Every encoder pin and parameter name begins as follows: - ----- -gm..encoder. ----- - -,where is form 0 to 5. For example: - ----- -gm.0.encoder.0.position ----- - -refers to the position of encoder module of axis 0. - -The GM6-PCI card counts the encoder signal independently from LinuxCNC. -Hal pins are updated by function: - ----- -gm..read ----- - -==== Pins - -.Encoder pins[[table:encoder-pins]](((encoder-pins))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Pins | Type and direction | Pin description -| .reset | (bit, In) | When True, resets counts and position to zero. -| .rawcounts | (s32, Out) | The raw count is the counts, but unaffected by reset or the index pulse. -| .counts | (s32, Out) | Position in encoder counts. -| .position | (float, Out) | Position in scaled units (=.counts/.position-scale). -| .index-enabled | (bit, IO) | When True, counts and position are rounded or reset - (depends on index-mode) on next rising edge of channel-I. - Every time position is reset because of Index, index-enabled - pin is set to 0 and remain 0 until connected hal pin does - not set it. -| .velocity | (float, Out) | Velocity in scaled units per second. GM encoder uses high - frequency hardware timer to measure time between encoder - pulses in order to calculate velocity. It greatly reduces - quantization noise as compared to simply differentiating - the position output. When the measured velocity is below - min-velocity-estimate, the velocity output is 0. -|======================================== - -==== Parameters - -.Encoder parameters[[table:encoder-parameters]](((encoder-parameters))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Parameters | Type and Read/Write | Parameter description -| .counter-mode | (bit, R/W) | When True, the counter counts each rising edge of the - channel-A input to the direction determined by channel-B. - This is useful for counting the output of a single channel - (non-quadrature) or step/dir signal sensor. When false, it - counts in quadrature mode. -| .index-mode | (bit, R/W) | When True and .index-enabled is also true, .counts and - .position are rounded (based on .counts-per-rev) at rising - edge of channel-I. This is useful to correct few pulses - error caused by noise. In round mode, it is essential to - set .counts-per-rev parameter correctly. When .index-mode - is False and .index-enabled is true, .counts and .position - are reset at channel-I pulse. -| .counts-per-rev | (s32, R/V) | Determine how many counts are between two index pulses. It - is used only in round mode, so when both .index-enabled and - .index-mode parameters are True. GM encoder process encoder signal - in 4x mode, so for example in case of a 500 CPR encoder it should - be set to 2000. This parameter can be easily measured by setting - .index-enabled True and .index-mode False (so that .counts resets - at channel-I pulse), than move axis by hand and see the maximum - magnitude of .counts pin in halmeter. -| .index-invert | (bit, R/W) | When True, channel-I event (reset or round) occur on falling - edge of channel-I signal, otherwise on rising edge. -| .min-speed-estimate | (float, R/W) | Determine the minimum measured velocity magnitude at which - .velocity will be set as nonzero. Setting this parameter too - low will cause it to take a long time for velocity to go to zero - after encoder pulses have stopped arriving. -| .position-scale | (float, R/W) | Scale in counts per length unit. .position=.counts/.position-scale. - For example, if position-scale is 2000, then 1000 counts of the - encoder will produce a position of 0.5 units. -|======================================== - -==== HAL example - -Setting encoder module of axis 0 to receive 500 CPR quadrature encoder signal and use reset to round position. - ----- -setp gm.0.encoder.0.counter-mode 0 # 0: quad, 1: stepDir -setp gm.0.encoder.0.index-mode 1 # 0: reset pos at index, 1:round pos at index -setp gm.0.encoder.0.counts-per-rev 2000 # GM process encoder in 4x mode, 4x500=2000 -setp gm.0.encoder.0.index-invert 0 -setp gm.0.encoder.0.min-speed-estimate 0.1 # in position unit/s -setp gm.0.encoder.0.position-scale 20000 # 10 encoder rev cause the machine to - move one position unit (10x2000) ----- - -Connect encoder position to LinuxCNC position feedback: - ----- -net Xpos-fb gm.0.encoder.0.position => axis.0.motor-pos-fb ----- - -=== Stepgen module - -The GM6-PCI motion control card has six stepgen modules, one for each axis. -Each module has two output signals. It can produce Step/Direction, -Up/Down or Quadrature (A/B) pulses. Each stepgen module is connected -to the pins of the corresponding RJ50 axis connector. - -Every stepgen pin and parameter name begins as follows: - ----- -gm..stepgen. ----- - -,where nr of axis is form 0 to 5. For example: - ----- -gm.0.stepgen.0.position-cmd ----- - -refers to the position command of stepgen module of axis 0 on card 0. - -The GM6-PCI card generates step pulses independently from LinuxCNC. -Hal pins are updated by function - ----- -gm..write ----- - -<<< - -==== Pins - -.Stepgen module pins[[table:stepgen-pins]](((stepgen-pins))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Pins | Type and direction | Pin description -| .enable | (bit, In) | Stepgen produces pulses only when this pin is true. -| .count-fb | (s32, Out) | Position feedback in counts unit. -| .position-fb | (float, Out) | Position feedback in position unit. -| .position-cmd | (float, In) | Commanded position in position units. Used in position mode only. -| .velocity-cmd | (float, In) | Commanded velocity in position units per second. Used in velocity mode only. -|======================================== - -==== Parameters - -.Stepgen module parameters[[table:stepgen-parameters]](((stepgen-parameters))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Parameters | Type and Read/Write | Parameter description -| .step-type | (u32, R/W) | When 0, module produces Step/Dir signal. When 1, it - produces Up/Down step signals. And when it is 2, it - produces quadrature output signals. -| .control-type | (bit, R/W) | When True, .velocity-cmd is used as reference and velocity - control calculate pulse rate output. When False, .position-cmd - is used as reference and position control calculate pulse rate output. -| .invert-step1 | (bit, R/W) | Invert the output of channel 1 (Step signal in StepDir mode) -| .invert-step2 | (bit, R/W) | Invert the output of channel 2 (Dir signal in StepDir mode) -| .maxvel | (float, R/W) | Maximum velocity in position units per second. If it is set to 0.0, - .maxvel parameter is ignored. -| .maxaccel | (float, R/W) | Maximum acceleration in position units per second squared. If - it is set to 0.0, .maxaccel parameter is ignored. -| .position-scale | (float, R/W) | Scale in steps per length unit. -| .steplen | (u32, R/W) | Length of step pulse in nano-seconds. -| .stepspace | (u32, R/W) | Minimum time between two step pulses in nano-seconds. -| .dirdelay | (u32, R/W) | Minimum time between step pulse and direction change in nano-seconds. -|======================================== - -<<< - -For evaluating the appropriate values see the timing diagrams below: - -.Reference signal timing diagrams(((refsig-timing-diagram)))[[fig:refsig-timing-diagram]] - -image::images/GM_RefSignals.png[align="center", scaledwidth="70%"] - -==== HAL example - -Setting stepgen module of axis 0 to generate 1000 step pulse per position unit: - ----- -setp gm.0.stepgen.0.step-type 0 # 0:stepDir, 1:UpDown, 2:Quad -setp gm.0.stepgen.0.control-type 0 # 0:Pos. control, 1:Vel. Control -setp gm.0.stepgen.0.invert-step1 0 -setp gm.0.stepgen.0.invert-step2 0 -setp gm.0.stepgen.0.maxvel 0 # do not set maxvel for step - # generator, let interpolator control it. -setp gm.0.stepgen.0.maxaccel 0 # do not set max acceleration for - # step generator, let interpolator control it. -setp gm.0.stepgen.0.position-scale 1000 # 1000 step/position unit -setp gm.0.stepgen.0.steplen 1000 # 1000 ns = 1 us -setp gm.0.stepgen.0.stepspace1000 # 1000 ns = 1 us -setp gm.0.stepgen.0.dirdelay 2000 # 2000 ns = 2 us ----- - -Connect stepgen to axis 0 position reference and enable pins: - ----- -net Xpos-cmd axis.0.motor-pos-cmd => gm.0.stepgen.0.position-cmd -net Xen axis.0.amp-enable-out => gm.0.stepgen.0.enable ----- - -=== Enable and Fault signals - -The GM6-PCI motion control card has one enable output and one fault -input HAL pins, both are connected to each RJ50 axis connector -and to the CAN connector. - -Hal pins are updated by function: - ----- -gm..read ----- - -==== Pins - -.Enable and Fault signal pins[[table:enable-pins]](((enable-pins))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Pins | Type and direction | Pin description -| gm..power-enable | (bit, In) | If this pin is True, - - * and Watch Dog Timer is not expired - * and there is no power fault - Then power enable pins of axis- and CAN connectors - are set to high, otherwise set to low. -| gm..power-fault | (bit, Out) | Power fault input. -|======================================== - -=== Axis DAC - -The GM6-PCI motion control card has six serial axis DAC driver modules, -one for each axis. Each module is connected to the pin of the -corresponding RJ50 axis connector. -Every axis DAC pin and parameter name begins as follows: - ----- -gm..dac. ----- - -,where nr of axis is form 0 to 5. For example: - ----- -gm.0.dac.0.value ----- - -refers to the output voltage of DAC module of axis 0. -Hal pins are updated by function: - ----- -gm..write ----- - -<<< - -==== Pins - -.Axis DAC pins[[table:dac-pins]](((dac-pins))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Pins | Type and direction | Pin description -| .enable | (bit, In) | Enable DAC output. When enable is - false, DAC output is 0.0 V. -| .value | (float, In) | Value of DAC output in Volts. -|======================================== - -==== Parameters - -.Axis DAC parameters[[table:dac-parameters]](((dac-parameters))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Parameters | Type and direction | Parameter description -| .offset | (float, R/W) | Offset is added to the value before - the hardware is updated -| .high-limit | (float, R/W) | Maximum output voltage of the - hardware in volts. -| .low-limit | (float, R/W) | Minimum output voltage of the - hardware in volts. -| .invert-serial | (float, R/W) | GM6-PCI card is communicating with DAC - hardware via fast serial communication - to highly reduce time delay compared to - PWM. DAC module is recommended to be - isolated which is negating serial - communication line. In case of isolation, - leave this parameter to default (0), - while in case of none-isolation, set - this parameter to 1. -|======================================== - -== CAN-bus servo amplifiers - -The GM6-PCI motion control card has CAN module to drive CAN -servo amplifiers. Implementation of higher level protocols -like CANopen is further development. Currently GM produced -power amplifiers has upper level driver which export pins -and parameters to HAL. They receive position reference and -provide encoder feedback via CAN bus. - -The frames are standard (11 bit) ID frames, with 4 byte data length. -Tha baud rate is 1 Mbit. -The position commad IDs for axis 0..5 are 0x10..0x15. -The position feedback IDs for axis 0..5 are 0x20..0x25. - -These configuration can be changed with the modifivation -of hal_gm.c and recompiling LinuxCNC. - -Every CAN pin and parameter name begins as follows: - ----- -gm..can-gm. ----- - -,where is form 0 to 5. For example: - ----- -gm.0.can-gm.0.position ----- - -refers to the output position of axis 0 in position units. - -Hal pins are updated by function: - ----- -gm..write ----- - -<<< - -=== Pins - -.CAN module pins[[table:can-pins]](((can-pins))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Pins | Type and direction | Pin description -| .enable | (bit, In) | Enable sending position references. -| .position-cmd | (float, In) | Commanded position in position units. -| .position-fb | (float, In) | Feed back position in position units. -|======================================== - -=== Parameters - -.CAN module parameters[[table:can-parameters]](((can-parameters))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Parameters | Type and direction | Parameter description -| .position-scale | (float, R/W) | Scale in per length unit. -|======================================== - -== Watchdog timer - -Watchdog timer resets at function: - ----- -gm..read ----- - -=== Pins - -.Watchdog pins[[table:watchdog-pins]](((watchdog-pins))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Pins | Type and direction | Pin description -| gm..watchdog-expired | (bit, Out) | Indicates that watchdog timer is expired. -|======================================== - -Watchdog timer overrun causes the set of power-enable to low in hardware. - -=== Parameters - -.Watchdog parameters[[table:watchdog-parameters]](((watchdog-parameters))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Parameters | Type and direction | Parameter description -| gm..watchdog-enable | (bit, R/W) | Enable watchdog timer. - It is strongly recommended to - enable watchdog timer, because - it can disables all the servo - amplifiers by pulling down all - enable signal in case of PC error. -| gm..watchdog-timeout-ns | (float, R/W) | Time interval in within the - gm..read function - must be executed. The gm..read - is typically added to servo-thread, so - watch timeout is typically set to 3 times - of the servo period. -|======================================== - -== End-, homing- and E-stop switches - -.Pin numbering of homing & end switch connector(((pin-numbering-endsw)))[[fig:pin-numbering-endsw]] - -image::images/GM_ENDSWpinout.png[align="center"] - -.End- and homing switch connector pinout[[table:end-and-homing-switch-connector-pinout]](((end-and-homing-switch-connector-pinout))) - -[width="100%", options="header", cols="2*^.^1,11*^.^2"] -|======================================== -| *25* | *23* | *21* | *19* | *17* | *15* | *13* | *11* | *9* | *7* | *5* | *3* | *1* -2+| GND | 1/End- | 2/End+ | 2/Hom-ing | 3/End- | 4/End+ | 4/Hom-ing | 5/End- | 6/End+ | 6/Hom-ing | E-Stop 2 | V+ (Ext.) -|======================================== - -[width="100%", options="header", cols="2*^.^1,11*^.^2"] -|======================================== -| *26* | *24* | *22* | *20* | *18* | *16* | *14* | *12* | *10* | *8* | *6* | *4* | *2* -2+| GND | 1/End+ | 1/Hom-ing | 2/End- | 3/End+ | 3/Hom-ing | 4/End- | 5/End+ | 5/Hom-ing | 6/End- | E-Stop 1 | V+ (Ext.) -|======================================== - -The GM6-PCI motion control card has two limit- and one homing switch input for each axis. All the names of these pins begin as follows: - ----- -gm..axis. ----- - -,where nr of axis is form 0 to 5. For example: - ----- -gm.0.axis.0.home-sw-in ----- - -indicates the state of the axis 0 home switch. - -Hal pins are updated by function: - ----- -gm..read ----- - -=== Pins - -.End- and homing switch pins[[table:end-and-homing-switch-pins]](((end-and-homing-switch-pins))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Pins | Type and direction | Pin description -| .home-sw-in | (bit, Out) | Home switch input -| .home-sw-in-not | (bit, Out) | Negated home switch input -| .neg-lim-sw-in | (bit, Out) | Negative limit switch input -| .neg-lim-sw-in-not | (bit, Out) | Negated negative limit switch input -| .pos-lim-sw-in | (bit, Out) | Positive limit switch input -| .pos-lim-sw-in-not | (bit, Out) | Negated positive limit switch input -|======================================== - -=== Parameters - -.E-stop switch parameters[[table:e-stop-switch-parameters]](((e-stop-switch-parameters))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Parameters | Type and direction | Parameter description -| gm.0.estop.0.in | (bit, Out) | Estop 0 input -| gm.0.estop.0.in-not | (bit, Out) | Negated Estop 0 input -| gm.0.estop.1.in | (bit, Out) | Estop 1 input -| gm.0.estop.1.in-not | (bit, Out) | Negated Estop 1 input -|======================================== - -== Status LEDs - -=== CAN -Color: Orange - -* Blink, during data communication. -* On, when any of the buffers are full - communication error. -* Off, when no data communication. - -=== RS485 -Color: Orange - -* Blink, during initialization of modules on the bus -* On, when the data communication is up between all initialized modules. -* Off, when any of the initialized modules dropped off because of an error. - -=== EMC -Color: White - -* Blink, when LinuxCNC is running. -* Otherwise off. - -=== Boot -Color: Green - -* On, when system booted successfully. -* Otherwise off. - -=== Error -Color: Red - -* Off, when there is no fault in the system. -* Blink, when PCI communication error. -* On, when watchdog timer overflowed. - -== RS485 I/O expander modules - -These modules were developed for expanding the I/O and function -capability along an RS485 line of the GM6-PCI motion control card. - -Available module types: - -* 8-channel relay output module - gives eight NO-NC relay output - on a three pole terminal connector for each channel. -* 8-channel digital input module - gives eight optical - isolated digital input pins. -* 8 channel ADC and 4-channel DAC module - gives four digital-to-analogue - converter outputs and eight analogue-to-digital inputs. - This module is also optically isolated from the GM6-PCI card. - -*Automatic node recognizing:* - -Each node connected to the bus was recognized by the GM6-PCI card automatically. -During starting LinuxCNC, the driver export pins and parameters of all -available modules automatically. - -*Fault handling:* - -If a module does not answer regularly the GM6-PCI card drops down the module. -If a module with output do not gets data with correct CRC regularly, the -module switch to error sate (green LED blinking), and turns all outputs -to error sate. - -*Connecting the nodes:* - -The modules on the bus have to be connected in serial topology, with -termination resistors on the end. The start of the topology is the PCI -card, and the end is the last module. - -.Connecting the RS485 nodes to the GM6-PCI card(((connecting-rs485)))[[fig:connecting-rs485]] - -image::images/GM_RS485topology.png[align="center", scaledwidth="60%"] - -*Adressing:* - -Each node on the bus has a 4 bit unique address that can be set with a red DIP switch. - -*Status LED:* - -A green LED indicates the status of the module: - -* Blink, when the module is only powered, but not jet identified, or when module is dropped down. -* Off, during identification (computer is on, but LinuxCNC not started) -* On, when it communicates continuously. - - -=== Relay output module - -For pinout, connection and electrical charasteristics of the module, please refer to the -http://www.generalmechatronics.com/data/products/robot_controller/PCI_UserManual_eng.pdf[System integration manual]. - -All the pins and parameters are updated by the following function: - ----- -gm..rs485 ----- - -It should be added to servo thread or other thread with -larger period to avoid CPU overload. -Every RS485 module pin and parameter name begins as follows: - ----- -gm..rs485. ----- - -,where is form 00 to 15. - -==== Pins - -.Relay output module pins[[table:rs485-relay-pins]](((rs485-relay-pins))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Pins | Type and direction | Pin description -| .relay-<0-7> | (bit, Out) | Output pin for relay -|======================================== - -==== Parameters - -.Relay output module parameters[[table:rs485-relay-parameters]](((rs485-relay-parameters))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Parameters | Type and direction | Parameter description -| .invert-relay-<0-7> | (bit, R/W) | Negate relay output pin -|======================================== - -==== HAL example - ----- -gm.0.rs485.0.relay-0 # First relay of the node. -gm.0 # Means the first GM6-PCI motion control card (PCI card address = 0) -.rs485.0 # Select node with address 0 on the RS485 bus -.relay-0 # Select the first relay ----- - -=== Digital input module - -For pinout, connection and electrical charasteristics of the module, please refer to the -http://www.generalmechatronics.com/data/products/robot_controller/PCI_UserManual_eng.pdf[System integration manual]. - -All the pins and parameters are updated by the following function: - ----- -gm..rs485 ----- - -It should be added to servo thread or other thread with larger period to avoid CPU overload. -Every RS485 module pin and parameter name begins as follows: - ----- -gm..rs485. ----- - -,where is form 00 to 15. - -==== Pins - -.Digital input output module pins[[table:rs485-input-pins]](((rs485-input-pins))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Pins | Type and direction | Pin description -| .in-<0-7> | (bit, Out) | Input pin -| .in-not-<0-7> | (bit, Out) | Negated input pin -|======================================== - -==== HAL example - ----- -gm.0.rs485.0.in-0 # First input of the node. -# gm.0 - Means the first GM6-PCI motion control card (PCI card address = 0) -# .rs485.0 - Select node with address 0 on the RS485 bus -# .in-0 - Select the first digital input module ----- - -=== DAC & ADC module - -For pinout, connection and electrical charasteristics of the module, please refer to the -http://www.generalmechatronics.com/data/products/robot_controller/PCI_UserManual_eng.pdf[System integration manual]. - -All the pins and parameters are updated by the following function: - ----- -gm..rs485 ----- - -It should be added to servo thread or other thread with larger period to avoid CPU overload. -Every RS485 module pin and parameter name begins as follows: - ----- -gm..rs485. ----- - -,where is form 00 to 15. - -==== Pins - -.DAC & ADC module pins[[table:rs485-dacadc-pins]](((rs485-dacadc-pins))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Pins | Type and direction | Pin description -| .adc-<0-7> | (float, Out) | Value of ADC input in Volts. -| .dac-enable-<0-3> | (bit, In) | Enable DAC output. When enable is - false DAC output is set to 0.0 V. -| .dac-<0-3> | (float, In) | Value of DAC output in Volts. -|======================================== - -==== Parameters - -.DAC & ADC module parameters[[table:rs485-dacadc-parameters]](((rs485-dacadc-parameters))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Parameters | Type and direction | Parameter description -| .adc-scale-<0-7> | (float, R/W) | The input voltage will be multiplied by - scale before being output to .adc- pin. -| .adc-offset-<0-7> | (float, R/W) | Offset is subtracted from the hardware input - voltage after the scale multiplier has been applied. -| .dac-offset-<0-3> | (float, R/W) | Offset is added to the value before the hardware is updated. -| .dac-high-limit-<0-3> | (float, R/W) | Maximum output voltage of the hardware in volts. -| .dac-low-limit-<0-3> | (float, R/W) | Minimum output voltage of the hardware in volts. -|======================================== - -==== HAL example - ----- -gm.0.rs485.0.adc-0 # First analogue channel of the node. -# gm.0 - Means the first GM6-PCI motion control card (PCI card address = 0) -# .rs485.0 - Select node with address 0 on the RS485 bus -# .adc-0 - Select the first analogue input of the module ----- - -=== Teach Pendant module - -For pinout, connection and electrical charasteristics of the module, please refer to the -http://www.generalmechatronics.com/data/products/robot_controller/PCI_UserManual_eng.pdf[System integration manual]. - -All the pins and parameters are updated by the following function: - ----- -gm..rs485 ----- - -It should be added to servo thread or other thread with larger period to avoid CPU overload. -Every RS485 module pin and parameter name begins as follows: - ----- -gm..rs485. ----- - -,where is form 00 to 15. Note that on the Teach Pendant module it cannot be changed, and pre-programmed as zero. Upon request it can be delivered with firmware pre-programmed different ID. - -==== Pins - -.Teach Pendant module pins[[table:rs485-teachpendant-pins]](((rs485-teachpendant-pins))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Pins | Type and direction | Pin description -| .adc-<0-5> | (float, Out) | Value of ADC input in Volts. -| .enc-reset | (bit, In) | When True, resets counts and position to zero. -| .enc-counts | (s32, Out) | Position in encoder counts. -| .enc-rawcounts | (s32, Out) | The raw count is the counts, but unaffected by reset. -| .enc-position | (float, Out) | Position in scaled units (=.enc-counts/.enc-position-scale). -| .in-<0-7> | (bit, Out) | Input pin -| .in-not-<0-7> | (bit, Out) | Negated input pin -|======================================== - -==== Parameters - -.Teach Pendant module parameters[[table:rs485-teachpendant-parameters]](((rs485-teachpendant-parameters))) - -[width="80%", options="header", cols="<3,^2,<6"] -|======================================== -| Parameters | Type and direction | Parameter description -| .adc-scale-<0-5> | (float, R/W) | The input voltage will be multiplied by - scale before being output to .adc- pin. -| .adc-offset-<0-5> | (float, R/W) | Offset is subtracted from the hardware input - voltage after the scale multiplier has been applied. -| .enc-position-scale | (float, R/W) | Scale in per length unit. -|======================================== - -==== HAL example - ----- -gm.0.rs485.0.adc-0 # First analogue channel of the node. -# gm.0 - Means the first GM6-PCI motion control card (PCI card address = 0) -# .rs485.0 - Select node with address 0 on the RS485 bus -# .adc-0 - Select the first analogue input of the module ----- - - -== Errata - -=== GM6-PCI card Errata - -The revision number in this section refers to the revision of the GM6-PCI card device. - -==== Rev. 1.2 - -* Error: -The PCI card do not boot, when Axis 1. END B switch is active (low). -Found on November 16, 2013. - -* Reason: -This switch is connected to a boot setting pin of FPGA - -* Problem fix/workaround: -Use other switch pin, or connect only normally open switch to this switch input pin. - diff --git a/docs/src/drivers/GS2.txt b/docs/src/drivers/GS2.txt deleted file mode 100644 index a5eeda7886c..00000000000 --- a/docs/src/drivers/GS2.txt +++ /dev/null @@ -1,87 +0,0 @@ -= GS2 VFD Driver - -[[cha:gs2-vfd-driver]] (((GS2 VFD Driver))) - -This is a userspace HAL program for the GS2 series of VFD's at -Automation Direct. - -This component is loaded using the halcmd "loadusr" command: ----- -loadusr -Wn spindle-vfd gs2_vfd -n spindle-vfd ----- - -The above command says: loadusr, wait for named to load, -component gs2_vfd, named spindle-vfd - -== Command Line Options - -* '-b or --bits ' (default 8) Set number of data bits to , where n - must be from 5 to 8 inclusive -* '-d or --device ' (default /dev/ttyS0) Set the name of the serial - device node to use -* '-g or --debug' Turn on debugging messages. This will also set the - verbose flag. Debug mode will cause all modbus messages to be printed - in hex on the terminal. -* '-n or --name ' (default gs2_vfd) Set the name of the HAL - module. The HAL comp name will be set to , and all pin and - parameter names will begin with . -* '-p or --parity {even,odd,none}' (default odd) Set serial parity to - even, odd, or none. -* '-r or --rate ' (default 38400) Set baud rate to . It is an error - if the rate is not one of the following: 110, 300, 600, 1200, 2400, - 4800, 9600, 19200, 38400, 57600, 115200 -* '-s or --stopbits {1,2}' (default 1) Set serial stop bits to 1 or 2 -* '-t or --target ' (default 1) Set MODBUS target (slave) number. This - must match the device number you set on the GS2. -* '-v or --verbose' Turn on debug messages. - -[NOTE] -That if there are serial configuration errors, turning on verbose -may result in a flood of timeout errors. - -== Pins - -Where is gs2_vfd or the name given during loading with the -n option. - -* '.DC-bus-volts' (float, out) The DC bus voltage of the VFD -* '.at-speed' (bit, out) when drive is at commanded speed -* '.err-reset' (bit, in) reset errors sent to VFD -* '.firmware-revision' (s32, out) from the VFD -* '.frequency-command' (float, out) from the VFD -* '.frequency-out' (float, out) from the VFD -* '.is-stopped' (bit, out) when the VFD reports 0 Hz output -* '.load-percentage' (float, out) from the VFD -* '.motor-RPM' (float, out) from the VFD -* '.output-current' (float, out) from the VFD -* '.output-voltage' (float, out) from the VFD -* '.power-factor' (float, out) from the VFD -* '.scale-frequency' (float, out) from the VFD -* '.speed-command' (float, in) speed sent to VFD in RPM - It is an error to send a speed faster than the Motor Max RPM as set in - the VFD -* '.spindle-fwd' (bit, in) 1 for FWD and 0 for REV sent to VFD -* '.spindle-rev' (bit, in) 1 for REV and 0 if off -* '.spindle-on' (bit, in) 1 for ON and 0 for OFF sent to VFD -* '.status-1' (s32, out) Drive Status of the VFD (see the GS2 manual) -* '.status-2' (s32, out) Drive Status of the VFD (see the GS2 - manual) - -[NOTE] -The status value is a sum of all the bits that are on. So a 163 -which means the drive is in the run mode is the sum of 3 (run) + 32 -(freq set by serial) + 128 (operation set by serial). - -== Parameters - -Where is gs2_vfd or the name given during loading with the -n option. - -* '.error-count' (s32, RW) -* '.loop-time' (float, RW) how often the modbus is polled (default 0.1) -* '.nameplate-HZ' (float, RW) Nameplate Hz of motor (default 60) -* '.nameplate-RPM' (float, RW) Nameplate RPM of motor (default 1730) -* '.retval' (s32, RW) the return value of an error in HAL -* '.tolerance' (s32, RW) speed tolerance (default 0.01) - -For an example of using this component to drive a spindle see the -<> example. - diff --git a/docs/src/drivers/GS2_es.txt b/docs/src/drivers/GS2_es.txt deleted file mode 100644 index 243ffe8ec77..00000000000 --- a/docs/src/drivers/GS2_es.txt +++ /dev/null @@ -1,100 +0,0 @@ -= GS2 VFD Driver - -[[cha:gs2-vfd-driver]] (((GS2 VFD Driver))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -This is a userspace HAL program for the GS2 series of VFD's at -Automation Direct. - -This component is loaded using the halcmd "loadusr" command: ----- -loadusr -Wn spindle-vfd gs2_vfd -n spindle-vfd ----- - -The above command says: loadusr, wait for named to load, -component gs2_vfd, named spindle-vfd - -== Command Line Options - -* '-b or --bits ' (default 8) Set number of data bits to , where n - must be from 5 to 8 inclusive -* '-d or --device ' (default /dev/ttyS0) Set the name of the serial - device node to use -* '-g or --debug' Turn on debugging messages. This will also set the - verbose flag. Debug mode will cause all modbus messages to be printed - in hex on the terminal. -* '-n or --name ' (default gs2_vfd) Set the name of the HAL - module. The HAL comp name will be set to , and all pin and - parameter names will begin with . -* '-p or --parity {even,odd,none}' (default odd) Set serial parity to - even, odd, or none. -* '-r or --rate ' (default 38400) Set baud rate to . It is an error - if the rate is not one of the following: 110, 300, 600, 1200, 2400, - 4800, 9600, 19200, 38400, 57600, 115200 -* '-s or --stopbits {1,2}' (default 1) Set serial stop bits to 1 or 2 -* '-t or --target ' (default 1) Set MODBUS target (slave) number. This - must match the device number you set on the GS2. -* '-v or --verbose' Turn on debug messages. - -[NOTE] -That if there are serial configuration errors, turning on verbose -may result in a flood of timeout errors. - -== Pins - -Where is gs2_vfd or the name given during loading with the -n option. - -* '.DC-bus-volts' (float, out) The DC bus voltage of the VFD -* '.at-speed' (bit, out) when drive is at commanded speed -* '.err-reset' (bit, in) reset errors sent to VFD -* '.firmware-revision' (s32, out) from the VFD -* '.frequency-command' (float, out) from the VFD -* '.frequency-out' (float, out) from the VFD -* '.is-stopped' (bit, out) when the VFD reports 0 Hz output -* '.load-percentage' (float, out) from the VFD -* '.motor-RPM' (float, out) from the VFD -* '.output-current' (float, out) from the VFD -* '.output-voltage' (float, out) from the VFD -* '.power-factor' (float, out) from the VFD -* '.scale-frequency' (float, out) from the VFD -* '.speed-command' (float, in) speed sent to VFD in RPM - It is an error to send a speed faster than the Motor Max RPM as set in - the VFD -* '.spindle-fwd' (bit, in) 1 for FWD and 0 for REV sent to VFD -* '.spindle-rev' (bit, in) 1 for REV and 0 if off -* '.spindle-on' (bit, in) 1 for ON and 0 for OFF sent to VFD -* '.status-1' (s32, out) Drive Status of the VFD (see the GS2 manual) -* '.status-2' (s32, out) Drive Status of the VFD (see the GS2 - manual) - -[NOTE] -The status value is a sum of all the bits that are on. So a 163 -which means the drive is in the run mode is the sum of 3 (run) + 32 -(freq set by serial) + 128 (operation set by serial). - -== Parameters - -Where is gs2_vfd or the name given during loading with the -n option. - -* '.error-count' (s32, RW) -* '.loop-time' (float, RW) how often the modbus is polled (default 0.1) -* '.nameplate-HZ' (float, RW) Nameplate Hz of motor (default 60) -* '.nameplate-RPM' (float, RW) Nameplate RPM of motor (default 1730) -* '.retval' (s32, RW) the return value of an error in HAL -* '.tolerance' (s32, RW) speed tolerance (default 0.01) - -For an example of using this component to drive a spindle see the -<> example. - diff --git a/docs/src/drivers/GS2_fr.txt b/docs/src/drivers/GS2_fr.txt deleted file mode 100644 index 98986fdd09d..00000000000 --- a/docs/src/drivers/GS2_fr.txt +++ /dev/null @@ -1,98 +0,0 @@ -:lang: fr -:toc: - -= Variateur de fréquence GS2 - -[[cha:Variateur-GS2]] (((Variateur de fréquence GS2))) - - -Composant de HAL pour la série de variateurs de fréquence GS2 fournie par -la société Automation Direct. -footnote:[ En Europe on trouve l'équivalent sous la marque Omron.] - - -== Chargement du composant - -* Ce composant est chargé en utilisant la commande suivante: ----- -loadusr -Wn spindle-vfd gs2_vfd -n spindle-vfd ----- - -La commande de HAL _loadusr_ est détaillée au chapitre: <>. - -== Options spécifiques au chargement - -Les options spécifiques au chargement du composant gs2_vfd: - -* _-b_ ou _--bits _ (défaut 8) Fixe le nombre de bits de donnée à __, dans - lequel __ doit être compris entre 5 et 8 inclus. -* _-d_ ou _--device _ (défaut /dev/ttyS0) Fixe le nom de la liaison série - à utiliser. -* _-g_ ou _--debug_ Active les messages de débogage. - Le drapeau du mode verbeux pourra être activé. Le débogage affichera tous - les messages modbus en hexadécimal sur terminal. -* _-n_ ou _--name _ (défaut gs2_vfd) Fixe le nom du composant de HAL à - __, les noms de toutes ses pins et paramètres commenceront également - par __. -* _-p_ ou _--parity {even, odd, none}_ (défaut odd) Fixe la parité de la liaison - série à parité paire, parité impaire ou sans parité. -* _-r_ ou _--rate _ (défaut 38400) Fixe le débit de la liaisons à __. - C'est une erreur si le débit n'est pas une des valeurs suivantes: 110, 300, - 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200. -* _-s_ ou _--stopbits {1,2}_ (défaut 1) Fixe le nombre de bits de stop de la - liaison série à 1 ou 2. -* _-t_ ou _--target _ (défaut 1) Fixe le nombre de cibles MODBUS (esclaves). - Doit correspondre au nombre de périphériques réglé dans le GS2. -* _-v_ ou _--verbose_ Active les messages de débogage. Noter qu'en cas d'erreurs - série, cela ne fera pas beaucoup de différence ce qui peut être gênant. - -== Consignes de dialogue avec le variateur - -Les valeurs __ sont les noms donnés par l'option _-n_ durant la phase - de chargement du composant. - -* _.DC-bus-volts_ (float, out) La tension du bus DC sur le variateur. -* _.at-speed_ (bit, out) Quand la consigne vitesse est atteinte. -* _.err-reset_ (bit, in) Envoi d'un _reset errors_ au variateur. -* _.firmware-revision_ (s32, out) envoyé par le variateur. -* _.frequency-command_ (float, out) envoyé par le variateur. -* _.frequency-out_ (float, out) envoyé par le variateur. -* _.is-stopped_ (bit, out) when the VFD reports 0 Hz output. -* _.load-percentage_ (float, out) envoyé par le variateur. -* _.motor-RPM_ (float, out) envoyé par le variateur. -* _.output-current_ (float, out) envoyé par le variateur. -* _.output-voltage_ (float, out) envoyé par le variateur. -* _.power-factor_ (float, out) envoyé par le variateur. -* _.scale-frequency_ (float, out) envoyé par le variateur. -* _.speed-command_ (float, in) Consigne vitesse envoyée. - au variateur en tr.mn^-1^. C'est une erreur d'envoyer une consigne de - vitesse supérieure à la valeur maximum réglée dans le variateur. -* _.spindle-fwd_ (bit, in) Sens de rotation envoyé au variateur, 1 pour - le sens horaire et 0 pour le sens anti-horaire. -* _.spindle-rev_ (bit, in) 1 pour marche en sens anti-horaire et 0 pour - ARRÊT. -* _.spindle-on_ (bit, in) 1 pour MARCHE et 0 pour ARRÊT du variateur. -* _.status-1_ (s32, out) Drive Status du VFD (voir le manuel du GS2). -* _.status-2_ (s32, out) Drive Status du VFD (voir le manuel du GS2). - Note: la valeur est la somme de tous les bits à 1. Ainsi, 163 signifie - que le pilote est dans le mode de marche qui est la somme de: -** 3 (marche) -** + 32 (fréquence fixée par liaison série) -** +128 (opération fixée par liaison série). - -== Paramètres de réglage du variateur - -Les valeurs __ sont les noms donnés par l'option _-n_ durant la - phase de chargement du composant. - -* _.error-count_ (s32, RW) -* _.loop-time_ (float, RW) Nombre d'interrogation d modbus (défaut 0.1). -* _.nameplate-HZ_ (float, RW) Vitesse plaquée du moteur en Hz (défaut 50). -* _.nameplate-RPM_ (float, RW) Vitesse plaquée du moteur en tr.mn^-1^ (défaut 1500). -* _.retval_ (s32, RW) la valeur de retour d'une erreur dans HAL. -* _.tolerance_ (s32, RW) Tolérance en vitesse (défaut 0.01). - -Un exemple d'utilisation d'un variateur de fréquence pour piloter une broche -est donné dans le manuel de l'intégrateur au chapitre Exemples: utiliser un GS2. - - diff --git a/docs/src/drivers/VFS11.txt b/docs/src/drivers/VFS11.txt deleted file mode 100644 index c43816103cd..00000000000 --- a/docs/src/drivers/VFS11.txt +++ /dev/null @@ -1,376 +0,0 @@ - -= VFS11 VFD Driver - - -:ini: {basebackend@docbook:'':ini} -:hal: {basebackend@docbook:'':hal} -:ngc: {basebackend@docbook:'':ngc} - -[[cha:vfs11-vfd-driver]] (((VFS11 VFD Driver))) - -This is a userspace HAL program to control the S11 series of VFD's from -Toshiba. - -vfs11_vfd supports serial and TCP connections. Serial connections may -be RS232 or RS485. RS485 is supported in full- and half-duplex -mode. TCP connections may be passive (wait for incoming connection), -or active outgoing connections, which may be useful to connect to -TCP-based devices or through a terminal server. - -Regardless of the connection type, vfs11_vfd operates as a Modbus master. - -This component is loaded using the halcmd "loadusr" command: ----- -loadusr -Wn spindle-vfd vfs11_vfd -n spindle-vfd ----- - -The above command says: loadusr, wait for named to load, -component vfs11_vfd, named spindle-vfd - -== Command Line Options - -'vfs11_vfd' is mostly configured through inifile options. The command -line options are: - -* '-n or --name ' : set the HAL component name -* '-I or --ini ' : take configuration from this ini -file. Defaults to environment variable INI_FILE_NAME. -* '-S or --section
    ' : take configuration from this -section in the ini file. Defaults to 'VFS11'. -* '-d or --debug' enable debug messages on console output. -* '-m or --modbus-debug' enable modbus messages on console output -* '-r or --report-device' report device properties on console at startup - -Debugging can be toggled by sending a USR1 signal to the vfs11_vfd process. Modbus -debugging can be toggled by sending a USR2 signal to vfs11_vfd process -(example: +kill -USR1 \`pidof vfs11_vfd`+). - -[NOTE] -That if there are serial configuration errors, turning on verbose -may result in a flood of timeout errors. - -== Pins - -Where is +vfs11_vfd+ or the name given during loading with the -n option. - -* '.acceleration-pattern' (bit, in) when true, set acceleration and - deceleration times as defined in registers F500 and F501 - respecitvely. Used in PID loops to choose shorter ramp - times to avoid oscillation. - -* '.alarm-code' (s32, out) non-zero if drive is in alarmed - state. Bitmap describing alarm information (see register - FC91 description). Use err-reset (see below) to clear the - alarm. - -* '.at-speed' (bit, out) - when drive is at commanded speed (see speed-tolerance below) - -* '.current-load-percentage' (float, out) - reported from the VFD - -* '.dc-brake' (bit, in) - engage the DC brake. Also turns off spindle-on. - -* '.enable' (bit, in) - enable the VFD. If false, all operating parameters are still read but control is released and panel control - is enabled (subject to VFD setup). - -* '.err-reset' (bit, in) - reset errors (alarms a.k.a Trip and e-stop status). Resetting the VFD may cause a 2-second delay until it's - rebooted and Modbus is up again. - -* '.estop' (bit, in) - put the VFD into emergency-stopped status. No operation possible until cleared with err-reset or powercycling. - -* '.frequency-command' (float, out) - current target frequency in HZ as set through speed-command (which is in RPM), from the VFD - -* '.frequency-out' (float, out) - current output frequency of the VFD - -* '.inverter-load-percentage' (float, out) - current load report from VFD - -* '.is-e-stopped' (bit, out) - the VFD is in emergency stop status (blinking "E" on panel). Use err-reset to reboot the VFD and clear the e- - stop status. - -* '.is-stopped' (bit, out) - true when the VFD reports 0 Hz output - -* '.max-rpm' (float, R) - actual RPM limit based on maximum frequency the VFD may generate, and the motors nameplate values. For - instance, if nameplate-HZ is 50, and nameplate-RPM_ is 1410, but the VFD may generate up to 80Hz, then max- - rpm would read as 2256 (80*1410/50). The frequency limit is read from the VFD at startup. To increase the - upper frequency limit, the UL and FH parameters must be changed on the panel. See the VF-S11 manual for - instructions how to set the maximum frequency. - -* '.modbus-ok' (bit, out) - true when the Modbus session is successfully established and the last 10 transactions returned without error. - -* '.motor-RPM' (float, out) - estimated current RPM value, from the VFD - -* '.output-current-percentage' (float, out) - from the VFD - -* '.output-voltage-percentage' (float, out) - from the VFD - -* '.output-voltage' (float, out) - from the VFD - -* '.speed-command' (float, in) - speed sent to VFD in RPM. It is an error to send a speed faster than the Motor Max RPM as set in the VFD - -* '.spindle-fwd' (bit, in) - 1 for FWD and 0 for REV, sent to VFD - -* '.spindle-on' (bit, in) - 1 for ON and 0 for OFF sent to VFD, only on when running - -* '.spindle-rev' (bit, in) - 1 for ON and 0 for OFF, only on when running - -* '.jog-mode' (bit, in) - 1 for ON and 0 for OFF, enables the VF-S11 'jog mode'. Speed control is disabled, and the output frequency is - determined by register F262 (preset to 5Hz). This might - be useful for spindle orientation. In normal mode, the - VFD shuts off if the frequency drops below 12Hz. - -* '.status' (s32, out) - Drive Status of the VFD (see the TOSVERT VF-S11 Communications Function Instruction Manual, register FD01). A - bitmap. - -* '.trip-code' (s32, out) - trip code if VF-S11 is in tripped state. - -* '.error-count' (s32, out) - number of Modbus transactions which returned an error - -* '.max-speed' (bit, in) - ignore the loop-time paramater and run Modbus at maximum - speed, at the expense of higher CPU usage. Suggested use - during spindle positioning. - -== Parameters - -Where is +vfs11_vfd+ or the name given during loading with the -n option. - -* '.frequency-limit' (float, RO) - upper limit read from VFD setup. - -* '.loop-time' (float, RW) - how often the Modbus is polled (default interval 0.1 seconds) - -* '.nameplate-HZ' (float, RW) - Nameplate Hz of motor (default 50). Used to calculate target frequency (together with nameplate-RPM ) for a - target RPM value as given by speed-command. - -* '.nameplate-RPM' (float, RW) - Nameplate RPM of motor (default 1410) - -* '.rpm-limit' (float, RW) - do-not-exceed soft limit for motor RPM (defaults to nameplate-RPM ). - -* '.tolerance' (float, RW) - speed tolerance (default 0.01) for determining wether spindle is at speed (0.01 meaning: output frequency is - within 1% of target frequency) - -== INI file configuration - -This lists all options understood by vfs11_vfd. Typical setups for -RS232, RS485 and TCP can be found in 'src/hal/user_comps/vfs11_vfd/*.ini'. - -[source,{ini}] ---------------------------------------------------------------------- -[VFS11] -# serial connection -TYPE=rtu - -# serial port -DEVICE=/dev/ttyS0 - -# TCP server - wait for incoming connection -TYPE=tcpserver - -# tcp portnumber for TYPE=tcpserver or tcpclient -PORT=1502 - -# TCP client - active outgoing connection -TYPE=tcpclient - -# destination to connect to if TYPE=tcpclient -TCPDEST=192.168.1.1 - -#---------- meaningful only if TYPE=rtu ------- -# serial device detail -# 5 6 7 8 -BITS= 5 - -# even odd none -PARITY=none - -# 110, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 -BAUD=19200 - -# 1 2 -STOPBITS=1 - -#rs232 rs485 -SERIAL_MODE=rs485 - -# up down none -# this feature might not work with a stock Ubuntu -# libmodbus5/libmodbus-dev package, and generate a warning -# execution will continue as if RTS_MODE=up were given. -RTS_MODE=up -#--------------------- - -# modbus timers in seconds -# inter-character timer -BYTE_TIMEOUT=0.5 -# packet timer -RESPONSE_TIMEOUT=0.5 - -# target modbus ID -TARGET=1 - -# on I/O failure, try to reconnect after sleeping -# for RECONNECT_DELAY seconds -RECONNECT_DELAY=1 - -# misc flags -DEBUG=10 -MODBUS_DEBUG=0 -POLLCYCLES=10 ---------------------------------------------------------------------- - -== HAL example - -[source,{hal}] ---------------------------------------------------------------------- -# -# example usage of the VF-S11 VFD driver -# -# -loadusr -Wn spindle-vfd vfs11_vfd -n spindle-vfd - -# connect the spindle direction pins to the VFD -net vfs11-fwd spindle-vfd.spindle-fwd <= motion.spindle-forward -net vfs11-rev spindle-vfd.spindle-rev <= motion.spindle-reverse - -# connect the spindle on pin to the VF-S11 -net vfs11-run spindle-vfd.spindle-on <= motion.spindle-on - -# connect the VF-S11 at speed to the motion at speed -net vfs11-at-speed motion.spindle-at-speed <= spindle-vfd.at-speed - -# connect the spindle RPM to the VF-S11 -net vfs11-RPM spindle-vfd.speed-command <= motion.spindle-speed-out - -# connect the VF-S11 DC brake -# since this draws power during spindle off, the dc-brake pin would -# better be driven by a monoflop which triggers on spindle-on falling edge -#net vfs11-spindle-brake motion.spindle-brake => spindle-vfd.dc-brake - -# to use the VFS11 jog mode for spindle orient -# see orient.9 and motion.9 -net spindle-orient motion.spindle-orient spindle-vfd.max-speed spindle-vfd.jog-mode - -# take precedence over control panel -setp spindle-vfd.enable 1 ---------------------------------------------------------------------- - -== Panel operation - -The vfs11_vfd driver takes precedence over panel control while it is -enabled (see 'enable' pin), effectively disabling the panel. Clearing -the 'enable' pin re-enables the panel. Pins and parameters can still -be set, but will not be written to the VFD untile the 'enable' pin is -set. Operating parameters are still read while bus control is -disabled. Exiting the vfs11_vfd driver in a controlled way will release -the VFD from the bus and restore panel control. - -See the EMC2 Integrators Manual for more information. For a detailed -register description of the Toshiba VFD's, see the "TOSVERT VF-S11 -Communications Function Instruction Manual" (Toshiba document number -E6581222) and the "TOSVERT VF-S11 Instruction manual" (Toshiba -document number E6581158). - -== Error Recovery - -+vfs11_vfd+ recovers from I/O errors as follows: First, all HAL pins -are set to default values, and the driver will sleep for -+RECONNECT_DELAY+ seconds (default 1 second). - -* Serial (+TYPE=rtu+) mode: on error, close and reopen the serial port. - -* TCP server (+TYPE=tcpserver+) mode: on losing the TCP connection, the - driver will go back to listen for incoming connections. - -* TCP client (+TYPE=tcpclient+) mode: on losing the TCP connection, the - driver will reconnect to 'TCPDEST:PORTNO'. - -== Configuring the VFS11 VFD for Modbus usage - -=== Connecting the Serial Port - -The VF-S11 has an RJ-45 jack for serial communication. Unfortunately, -it does not have a standard RS-232 plug and logic levels. The -Toshiba-recommended way is: connect the USB001Z USB-to-serial -conversion unit to the drive, and plug the USB port into the PC. A -cheaper alternative is a homebrew interface ( -http://git.mah.priv.at/gitweb/vfs11-vfd.git/blob_plain/refs/heads/f12-prod:/VFS11-RJ45_e.pdf[hints -from Toshiba support], -http://git.mah.priv.at/gitweb/vfs11-vfd.git/blob_plain/refs/heads/f12-prod:/vfs11-rs232.pdf[circuit diagram]). - -Note: the 24V output from the VFD has no short-circuit protection. - -Serial port factory defaults are 9600/8/1/even, the protocol defaults -to the proprietary "Toshiba Inverter Protocol". - -=== Modbus setup - -Several parameters need setting before the VF-S11 will talk to -this module. This can either be done manually with the control panel, -or over the serial link - Toshiba supplies a Windows application -called 'PCM001Z' which can read/set parameters in the VFD. Note - -PCM001Z only talks the Toshiba inverter protocol. So the last -parameter which you'd want to change is the protocol - set from -Toshiba Inverter Protocol to Modbus; thereafter, the Windows app is -useless. - -To increase the upper frequency limit, the UL and FH parameters must -be changed on the panel. I increased them from 50 to 80. - -See dump-params.mio for a description of non-standard VF-S11 -parameters of my setup. This file is for the -http://git.mah.priv.at/gitweb/modio.git[modio Modbus interactive utility]. - -== Programming Note - -The vfs11_vfd driver uses the http://www.libmodbus.org[libmodbus -version 3] library which is more recent than the version 2 code used -in +gs2_vfd+. - -The Ubuntu +libmodbus5+ and +libmodbus-dev+ packages are -only available starting from Ubuntu 12 ('Precise Pengolin'). Moreover, -these packages lack support for the MODBUS_RTS_MODE_* -flags. Therefore, building vfs11_vfd using this library might generate -a warning if RTS_MODE= is specified in the ini file. - -To use the full functionality on lucid and precise: -* remove the libmodbus packages: `sudo apt-get remove libmodbus5 -libmodbus-dev` -* build and install libmodbus version 3 from source as outlined -https://github.com/stephane/libmodbus/blob/master/README.rst[here]. - -Libmodbus does not build on Ubuntu Hardy, hence vfs11_vfd is not -available on hardy. - -// Michael Haberler; loosely based on gs2_vfd by Steve Padnos and John Thornton. - - - diff --git a/docs/src/drivers/hostmot2.txt b/docs/src/drivers/hostmot2.txt deleted file mode 100644 index 94f7c1ed8a4..00000000000 --- a/docs/src/drivers/hostmot2.txt +++ /dev/null @@ -1,836 +0,0 @@ -= Mesa HostMot2 Driver - -[[cha:mesa-hostmot2-driver]] (((Mesa HostMot2 Driver))) - -== Introduction - -HostMot2 is an FPGA configuration developed by Mesa Electronics for -their line of 'Anything I/O' motion control cards. The firmware is open -source, portable and flexible. It can be configured (at compile-time) -with zero or more instances (an object created at runtime) of each of -several Modules: encoders (quadrature counters), PWM generators, and -step/dir generators. The firmware can be configured (at run-time) to -connect each of these instances to pins on the I/O headers. I/O pins -not driven by a Module instance revert to general-purpose -bi-directional digital I/O. - -== Firmware Binaries - -.50 Pin Header FPGA cards - -Several pre-compiled HostMot2 firmware binaries are available for the -different Anything I/O boards. (This list is incomplete, check the -hostmot2-firmware distribution for up-to-date firmware lists.) - -* 3x20 (144 I/O pins): using hm2_pci module -** 24-channel servo -** 16-channel servo plus 24 step/dir generators - -* 5i22 (96 I/O pins): using hm2_pci module -** 16-channel servo -** 8-channel servo plus 24 step/dir generators - -* 5i20, 5i23, 4i65, 4i68 (72 I/O pins): using hm2_pci module -** 12-channel servo -** 8-channel servo plus 4 step/dir generators -** 4-channel servo plus 8 step/dir generators - -* 7i43 (48 I/O pins): using hm2_7i43 module -** 8-channel servo (8 PWM generators & 8 encoders) -** 4-channel servo plus 4 step/dir generators - -.DB25 FPGA cards - -The 5i25 Superport FPGA card is preprogrammed when purchased and does not -need a firmware binary. - -== Installing Firmware - -Depending on how you installed LinuxCNC you may have to open the Synaptic -Package Manager from the System menu and install the package for your -Mesa card. The quickest way to find them is to do a search for -'hostmot2' in the Synaptic Package Manager. Mark the firmware for -installation, then apply. - -== Loading HostMot2 - -The LinuxCNC support for the HostMot2 firmware is split into a generic -driver called 'hostmot2' and two low-level I/O drivers for the Anything -I/O boards. The low-level I/O drivers are 'hm2_7i43' and 'hm2_pci' (for -all the PCI- and PC-104/Plus-based Anything I/O boards). The hostmot2 driver -must be loaded first, using a HAL command like this: - ----- -loadrt hostmot2 ----- - -See the hostmot2(9) man page for details. - -The hostmot2 driver by itself does nothing, it needs access to actual -boards running the HostMot2 firmware. The low-level I/O drivers provide -this access. The low-level I/O drivers are loaded with commands like -this: - ----- -loadrt hm2_pci config="firmware=hm2/5i20/SVST8_4.BIT - num_encoders=3 num_pwmgens=3 num_stepgens=1" ----- - -The config parameters are described in the hostmot2 man page. - -== Watchdog - -The HostMot2 firmware may include a watchdog Module; if it does, the -hostmot2 driver will use it. - -The watchdog must be petted by LinuxCNC periodically or it will bite. - -When the watchdog bites, all the board's I/O pins are disconnected -from their Module instances and become high-impedance inputs (pulled -high), and all communication with the board stops. The state of the -HostMot2 firmware modules is not disturbed (except for the -configuration of the I/O Pins). Encoder instances keep counting -quadrature pulses, and pwm- and step-generators keep generating signals -(which are not relayed to the motors, because the I/O Pins have become -inputs). - -Resetting the watchdog resumes communication and resets the I/O pins -to the configuration chosen at load-time. - -If the firmware includes a watchdog, the following HAL objects will be -exported: - -=== Pins: - -* 'has_bit' - - (bit i/o) True if the watchdog has bit, False if the watchdog has not - bit. If the watchdog has bit and the has_bit bit is True, the user can - reset it to False to resume operation. - -=== Parameters: - -* 'timeout_ns' - - (u32 read/write) Watchdog timeout, in nanoseconds. This is initialized - to 1,000,000,000 (1 second) at module load time. If more than this - amount of time passes between calls to the pet_watchdog() function, the - watchdog will bite. - -=== Functions: - -* 'pet_watchdog()' - - Calling this function resets the watchdog timer and postpones the - watchdog biting until timeout_ns nanoseconds later. This function - should be added to the servo thread. - -== HostMot2 Functions - -* 'hm2_..read' - - Read all inputs, update input HAL pins. - -* 'hm2_..write' - - Write all outputs. - -* 'hm2_..pet-watchdog' - - Pet the watchdog to keep it from biting us for a while. - -* 'hm2_..read_gpio' - - Read the GPIO input pins only. (This function - is not available on the 7i43 due to limitations of the EPP bus.) - -* 'hm2_..write_gpio' - - Write the GPIO control registers and output pins only. (This function - is not available on the 7i43 due to limitations of the EPP bus.) - -[NOTE] -===================================================================== -The above 'read_gpio' and 'write_gpio' functions should not -normally be needed, since the GPIO bits are read and written along -with everything else in the standard 'read' and 'write' -functions above, which are normally run in the servo thread. - -The 'read_gpio' and 'write_gpio' functions were provided in -case some very fast (frequently updated) I/O is needed. These -functions should be run in the base thread. If you have need for -this, please send an email and tell us about it, and what your -application is. -===================================================================== - -== Pinouts - -The hostmot2 driver does not have a particular pinout. The pinout -comes from the firmware that the hostmot2 driver sends to the Anything I/O -board. Each firmware has different pinout, and the pinout depends on -how many of the available encoders, pwmgens, and stepgens are used. To -get a pinout list for your configuration after loading LinuxCNC in the -terminal window type: - ----- -dmesg > hm2.txt ----- - -The resulting text file will contain lots of information as well as -the pinout for the HostMot2 and any error and warning messages. - -To reduce the clutter by clearing the message buffer before loading -LinuxCNC type the following in the terminal window: - ----- -sudo dmesg -c ----- - -Now when you run LinuxCNC and then do a 'dmesg > hm2.txt' in the terminal -only the info from the time you loaded LinuxCNC will be in your file along -with your pinout. The file will be in the current directory of the -terminal window. Each line will contain the card name, the card number, -the I/O Pin number, the connector and pin, and the usage. From this -printout you will know the physical connections to your card based on -your configuration. - -An example of a 5i20 configuration: - ----- -[HOSTMOT2] -DRIVER=hm2_pci -BOARD=5i20 -CONFIG="firmware=hm2/5i20/SVST8_4.BIT num_encoders=1 num_pwmgens=1 num_stepgens=3" ----- - -The above configuration produced this printout. - ----- -[ 1141.053386] hm2/hm2_5i20.0: 72 I/O Pins used: -[ 1141.053394] hm2/hm2_5i20.0: IO Pin 000 (P2-01): IOPort -[ 1141.053397] hm2/hm2_5i20.0: IO Pin 001 (P2-03): IOPort -[ 1141.053401] hm2/hm2_5i20.0: IO Pin 002 (P2-05): Encoder #0, pin B (Input) -[ 1141.053405] hm2/hm2_5i20.0: IO Pin 003 (P2-07): Encoder #0, pin A (Input) -[ 1141.053408] hm2/hm2_5i20.0: IO Pin 004 (P2-09): IOPort -[ 1141.053411] hm2/hm2_5i20.0: IO Pin 005 (P2-11): Encoder #0, pin Index (Input) -[ 1141.053415] hm2/hm2_5i20.0: IO Pin 006 (P2-13): IOPort -[ 1141.053418] hm2/hm2_5i20.0: IO Pin 007 (P2-15): PWMGen #0, pin Out0 (PWM or Up) (Output) -[ 1141.053422] hm2/hm2_5i20.0: IO Pin 008 (P2-17): IOPort -[ 1141.053425] hm2/hm2_5i20.0: IO Pin 009 (P2-19): PWMGen #0, pin Out1 (Dir or Down) (Output) -[ 1141.053429] hm2/hm2_5i20.0: IO Pin 010 (P2-21): IOPort -[ 1141.053432] hm2/hm2_5i20.0: IO Pin 011 (P2-23): PWMGen #0, pin Not-Enable (Output) -... -[ 1141.053589] hm2/hm2_5i20.0: IO Pin 060 (P4-25): StepGen #2, pin Step (Output) -[ 1141.053593] hm2/hm2_5i20.0: IO Pin 061 (P4-27): StepGen #2, pin Direction (Output) -[ 1141.053597] hm2/hm2_5i20.0: IO Pin 062 (P4-29): StepGen #2, pin (unused) (Output) -[ 1141.053601] hm2/hm2_5i20.0: IO Pin 063 (P4-31): StepGen #2, pin (unused) (Output) -[ 1141.053605] hm2/hm2_5i20.0: IO Pin 064 (P4-33): StepGen #2, pin (unused) (Output) -[ 1141.053609] hm2/hm2_5i20.0: IO Pin 065 (P4-35): StepGen #2, pin (unused) (Output) -[ 1141.053613] hm2/hm2_5i20.0: IO Pin 066 (P4-37): IOPort -[ 1141.053616] hm2/hm2_5i20.0: IO Pin 067 (P4-39): IOPort -[ 1141.053619] hm2/hm2_5i20.0: IO Pin 068 (P4-41): IOPort -[ 1141.053621] hm2/hm2_5i20.0: IO Pin 069 (P4-43): IOPort -[ 1141.053624] hm2/hm2_5i20.0: IO Pin 070 (P4-45): IOPort -[ 1141.053627] hm2/hm2_5i20.0: IO Pin 071 (P4-47): IOPort -[ 1141.053811] hm2/hm2_5i20.0: registered -[ 1141.053815] hm2_5i20.0: initialized AnyIO board at 0000:02:02.0 ----- - -[NOTE] -That the I/O Pin nnn will correspond to the pin number shown on -the HAL Configuration screen for GPIOs. Some of the Stepgen, Encoder -and PWMGen will also show up as GPIOs in the HAL Configuration screen. - -== PIN Files - -The default pinout is described in a .PIN file (human-readable text). -When you install a firmware package the .PIN files are installed in - ----- -/usr/share/doc/hostmot2-firmware-/ ----- - -== Firmware - -The selected firmware (.BIT file) and configuration is uploaded from -the PC motherboard to the Mesa mothercard on LinuxCNC startup. -If you are using Run In Place, you must still install a -hostmot2-firmware- package. There is more information about -firmware and configuration in the 'Configurations' section. - -== HAL Pins - -The HAL pins for each configuration can be seen by opening up 'Show -HAL Configuration' from the Machine menu. All the HAL pins and -parameters can be found there. The following figure is of the 5i20 -configuration used above. - -.5i20 HAL Pins[[cap:5i20-HAL-Pins]] - -image::images/5i20-halpins.png[] - -== Configurations - -The Hostmot2 firmware is available in several versions, depending on -what you are trying to accomplish. You can get a reminder of what a -particular firmware is for by looking at the name. Let's look at a -couple of examples. - -In the 7i43 (two ports), SV8 ('Servo 8') would be for having 8 servos -or fewer, using the 'classic' 7i33 4-axis (per port) servo board. -So 8 servos would use up all 48 signals in the two ports. But if -you only needed 3 servos, you could say 'num_encoders=3' and 'num_pwmgens=3' -and recover 5 servos at 6 signals each, thus gaining 30 bits of GPIO. - -Or, in the 5i22 (four ports), SVST8_24 ('Servo 8, Stepper 24') would be -for having 8 servos or fewer (7i33 x2 again), and 24 steppers or fewer -(7i47 x2). This would use up all four ports. -If you only needed 4 servos you could say 'num_encoders=4' and -'num_pwmgens=4' and recover 1 port (and save a 7i33). -And if you only needed 12 steppers you could say 'num_stepgens=12' and -free up one port (and save a 7i47). -So in this way we can save two ports (48 bits) for GPIO. - -Here are tables of the firmwares available in the official packages. -There may be additional firmwares available at the Mesanet.com website -that have not yet made it into the LinuxCNC official firmware packages, so -check there too. - -3x20 (6-port various) Default Configurations (The 3x20 comes in 1M, 1.5M, and 2M gate versions. -So far, all firmware is available in all gate sizes.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWMGen | StepGen | GPIO -|SV24 | 24 | 24 | 0 | 0 -|SVST16_24 | 16 | 16 | 24 | 0 -|==================================================================== - -5i22 (4-port PCI) Default Configurations (The 5i22 comes in 1M and 1.5M gate versions. -So far, all firmware is available in all gate sizes.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV16 | 16 | 16 | 0 | 0 -|SVST2_4_7I47 | 4 | 2 | 4 | 72 -|SVST8_8 | 8 | 8 | 8 | 0 -|SVST8_24 | 8 | 8 | 24 | 0 -|==================================================================== - -5i23 (3-port PCI) Default Configurations (The 5i23 has 400k gates.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV12 | 12 | 12 | 0 | 0 -|SVST2_8 | 2 | 2 | 8 (tbl5) | 12 -|SVST2_4_7I47 | 4 | 2 | 4 | 48 -|SV12_2X7I48_72 | 12 | 12 | 0 | 24 -|SV12IM_2X7I48_72 | 12 (+IM) | 12 | 0 | 12 -|SVST4_8 | 4 | 4 | 8 (tbl5) | 0 -|SVST8_4 | 8 | 8 | 4 (tbl5) | 0 -|SVST8_4IM2 | 8 (+IM) | 8 | 4 | 8 -|SVST8_8IM2 | 8 (+IM) | 8 | 8 | 0 -|SVTP6_7I39 | 6 | 0 (6 BLDC) | 0 | 0 -|==================================================================== - -5i20 (3-port PCI) Default Configurations (The 5i20 has 200k gates.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV12 | 12 | 12 | 0 | 0 -|SVST2_8 | 2 | 2 | 8 (tbl5) | 12 -|SVST2_4_7I47 | 4 | 2 | 4 | 48 -|SV12_2X7I48_72 | 12 | 12 | 0 | 24 -|SV12IM_2X7I48_72 | 12 (+IM) | 12 | 0 | 12 -|SVST8_4 | 8 | 8 | 4 (tbl5) | 0 -|SVST8_4IM2 | 8 (+IM) | 8 | 4 | 8 -|==================================================================== - -4i68 (3-port PC/104) Default Configurations (The 4i68 has 400k gates.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV12 | 12 | 12 | 0 | 0 -|SVST2_4_7I47 | 4 | 2 | 4 | 48 -|SVST4_8 | 4 | 4 | 8 | 0 -|SVST8_4 | 8 | 8 | 4 | 0 -|SVST8_4IM2 | 8 (+IM) | 8 | 4 | 8 -|SVST8_8IM2 | 8 (+IM) | 8 | 8 | 0 -|==================================================================== - - -4i65 (3-port PC/104) Default Configurations (The 4i65 has 200k gates.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV12 | 12 | 12 | 0 | 0 -|SVST8_4 | 8 | 8 | 4 | 0 -|SVST8_4IM2 | 8 (+IM) | 8 | 4 | 8 -|==================================================================== - -7i43 (2-port parallel) 400k gate versions, Default Configurations -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV8 | 8 | 8 | 0 | 0 -|SVST4_4 | 4 | 4 | 4 (tbl5) | 0 -|SVST4_6 | 4 | 4 | 6 (tbl3) | 0 -|SVST4_12 | 4 | 4 | 12 | 0 -|SVST2_4_7I47 | 4 | 2 | 4 | 24 -|==================================================================== - -7i43 (2-port parallel) 200k gate versions, Default Configurations -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV8 | 8 | 8 | 0 | 0 -|SVST4_4 | 4 | 4 | 4 (tbl5) | 0 -|SVST4_6 | 4 | 4 | 6 (tbl3) | 0 -|SVST2_4_7I47 | 4 | 2 | 4 | 24 -|==================================================================== - -Even though several cards may have the same named .BIT file you cannot use -a .BIT file that is not for that card. Different cards have different -clock frequencies so make sure you load the proper .BIT file for your -card. Custom hm2 firmwares can be created for special applications and -you may see some custom hm2 firmwares in the directories with the -default ones. - -When you load the board-driver (hm2_pci or hm2_7i43), you can tell it -to disable instances of the three primary modules (pwmgen, stepgen, and -encoder) by setting the count lower. Any I/O pins belonging to disabled -module instances become GPIOs. - -== GPIO - -General Purpose I/O pins on the board which are not used by a module -instance are exported to HAL as 'full' GPIO pins. Full GPIO pins can be -configured at run-time to be inputs, outputs, or open drains, and have -a HAL interface that exposes this flexibility. I/O pins that are owned -by an active module instance are constrained by the requirements of the -owning module, and have a restricted HAL interface. - -GPIOs have names like 'hm2_..gpio..' -IONum. is a three-digit number. The mapping from IONum to connector and -pin-on-that-connector is written to the syslog when the driver loads, -and it's documented in Mesa's manual for the Anything I/O boards. - -The hm2 GPIO representation is modeled after the Digital Inputs and -Digital Outputs described in the Canonical Device Interface (part of -the HAL General Reference document). - -GPIO pins default to input. - -=== Pins - -* 'in' - - (Bit, Out) Normal state of the hardware input pin. Both full GPIO pins - and I/O pins used as inputs by active module instances have this pin. - -* 'in_not' - - (Bit, Out) Inverted state of the hardware input pin. Both full GPIO - pins and I/O pins used as inputs by active module instances have this - pin. - -* 'out' - - (Bit, In) Value to be written (possibly inverted) to the hardware - output pin. Only full GPIO pins have this pin. - -=== Parameters - -* 'invert_output' - - (Bit, RW) This parameter only has an effect if the 'is_output' - parameter is true. If this parameter is true, the output value of the - GPIO will be the inverse of the value on the 'out' HAL pin. Only full - GPIO pins and I/O pins used as outputs by active module instances have - this parameter. To invert an active module pin you have to invert the - GPIO pin not the module pin. - -* 'is_opendrain' - - (Bit, RW) This parameter only has an effect if the 'is_output' - parameter is true. If this parameter is false, the GPIO behaves as a - normal output pin: the I/O pin on the connector is driven to the value - specified by the 'out' HAL pin (possibly inverted), and the value of - the 'in' and 'in_not' HAL pins is undefined. If this parameter is true, - the GPIO behaves as an open-drain pin. Writing 0 to the 'out' HAL pin - drives the I/O pin low, writing 1 to the 'out' HAL pin puts the I/O pin - in a high-impedance state. In this high-impedance state the I/O pin - floats (weakly pulled high), and other devices can drive the value; the - resulting value on the I/O pin is available on the 'in' and 'in_not' - pins. Only full GPIO pins and I/O pins used as outputs by active module - instances have this parameter. - -* 'is_output' - - (Bit, RW) If set to 0, the GPIO is an input. The I/O pin is put in a - high-impedance state (weakly pulled high), to be driven by other - devices. The logic value on the I/O pin is available in the 'in' and - 'in_not' HAL pins. Writes to the 'out' HAL pin have no effect. If this - parameter is set to 1, the GPIO is an output; its behavior then depends - on the 'is_opendrain' parameter. Only full GPIO pins have this - parameter. - -== StepGen - -Stepgens have names like -'hm2_..stepgen..'. 'Instance' is a -two-digit number that corresponds to the HostMot2 stepgen instance -number. There are 'num_stepgens' instances, starting with 00. - -Each stepgen allocates 2-6 I/O pins (selected at firmware compile -time), but currently only uses two: Step and Direction outputs.footnote:[At -present, the firmware supports multi-phase stepper outputs, but -the driver doesn't. Interested volunteers are solicited.] - -The stepgen representation is modeled on the stepgen software -component. Stepgen default is active high step output (high during step -time low during step space). To invert a StepGen output pin you invert -the corresponding GPIO pin that is being used by StepGen. To find the -GPIO pin being used for the StepGen output run dmesg as shown above. - -Each stepgen instance has the following pins and parameters: - -=== Pins - -* 'control-type' - - (Bit, In) Switches between position control mode (0) and velocity - control mode (1). Defaults to position control (0). - -* 'counts' - - (s32, Out) Feedback position in counts (number of steps). - -* 'enable' - - (Bit, In) Enables output steps. When false, no steps are generated. - -* 'position-cmd' - - (Float, In) Target position of stepper motion, in user-defined - position units. - -* 'position-fb' - - (Float, Out) Feedback position in user-defined position units (counts - / position_scale). - -* 'velocity-cmd' - - (Float, In) Target velocity of stepper motion, in user-defined - position units per second. This pin is only used when the stepgen is in - velocity control mode (control-type=1). - -* 'velocity-fb' - - (Float, Out) Feedback velocity in user-defined position units per - second. - -=== Parameters - -* 'dirhold' - - (u32, RW) Minimum duration of stable Direction signal after a step - ends, in nanoseconds. - -* 'dirsetup' - - (u32, RW) Minimum duration of stable Direction signal before a step - begins, in nanoseconds. - -* 'maxaccel' - - (Float, RW) Maximum acceleration, in position units per second per - second. If set to 0, the driver will not limit its acceleration. - -* 'maxvel' - - (Float, RW) Maximum speed, in position units per second. If set to 0, - the driver will choose the maximum velocity based on the values of - steplen and stepspace (at the time that maxvel was set to 0). - -* 'position-scale' - - (Float, RW) Converts from counts to position units. position = counts - / position_scale - -* 'step_type' - - (u32, RW) Output format, like the step_type modparam to the software - stegen(9) component. 0 = Step/Dir, 1 = Up/Down, 2 = Quadrature. In - Quadrature mode (step_type=2), the stepgen outputs one complete Gray - cycle (00 \-> 01 \-> 11 \-> 10 \-> 00) for each 'step' it takes. - -* 'steplen' - - (u32, RW) Duration of the step signal, in nanoseconds. - -* 'stepspace' - - (u32, RW) Minimum interval between step signals, in nanoseconds. - -=== Output Parameters - -The Step and Direction pins of each StepGen have two additional -parameters. To find which I/O pin belongs to which step and direction -output run dmesg as described above. - -* 'invert_output' - - (Bit, RW) This parameter only has an effect if the 'is_output' - parameter is true. If this parameter is true, the output value of the - GPIO will be the inverse of the value on the 'out' HAL pin. - -* 'is_opendrain' - - (Bit, RW) If this parameter is false, the GPIO behaves as a normal - output pin: the I/O pin on the connector is driven to the value - specified by the 'out' HAL pin (possibly inverted). If this parameter - is true, the GPIO behaves as an open-drain pin. Writing 0 to the 'out' - HAL pin drives the I/O pin low, writing 1 to the 'out' HAL pin puts the - I/O pin in a high-impedance state. In this high-impedance state the I/O - pin floats (weakly pulled high), and other devices can drive the value; - the resulting value on the I/O pin is available on the 'in' and 'in_not' - pins. Only full GPIO pins and I/O pins used as outputs by active module - instances have this parameter. - -== PWMGen - -PWMgens have names like -'hm2_..pwmgen..'. 'Instance' is a -two-digit number that corresponds to the HostMot2 pwmgen instance -number. There are 'num_pwmgens' instances, starting with 00. - -In HM2, each pwmgen uses three output I/O pins: Not-Enable, Out0, and -Out1. To invert a PWMGen output pin you invert the corresponding GPIO -pin that is being used by PWMGen. To find the GPIO pin being used for -the PWMGen output run dmesg as shown above. - -The function of the Out0 and Out1 I/O pins varies with output-type -parameter (see below). - -The hm2 pwmgen representation is similar to the software pwmgen -component. Each pwmgen instance has the following pins and parameters: - -=== Pins - -* 'enable' - - (Bit, In) If true, the pwmgen will set its Not-Enable pin false and - output its pulses. If 'enable' is false, pwmgen will set its Not-Enable - pin true and not output any signals. - -* 'value' - - (Float, In) The current pwmgen command value, in arbitrary units. - -=== Parameters - -* 'output-type' - - (s32, RW) This emulates the output_type load-time argument to the - software pwmgen component. This parameter may be changed at runtime, - but most of the time you probably want to set it at startup and then - leave it alone. Accepted values are 1 (PWM on Out0 and Direction on - Out1), 2 (Up on Out0 and Down on Out1), 3 (PDM mode, PDM on Out0 and - Dir on Out1), and 4 (Direction on Out0 and PWM on Out1, 'for locked - antiphase'). - -* 'scale' - - (Float, RW) Scaling factor to convert 'value' from arbitrary units to - duty cycle: dc = value / scale. Duty cycle has an effective range of - -1.0 to +1.0 inclusive, anything outside that range gets clipped. - -* 'pdm_frequency' - - (u32, RW) This specifies the PDM frequency, in Hz, of all the pwmgen - instances running in PDM mode (mode 3). This is the 'pulse slot - frequency'; the frequency at which the pdm generator in the Anything I/O board - chooses whether to emit a pulse or a space. Each pulse (and space) in - the PDM pulse train has a duration of 1/pdm_frequency seconds. For - example, setting the pdm_frequency to 2e6 (2 MHz) and the duty cycle to - 50% results in a 1 MHz square wave, identical to a 1 MHz PWM signal - with 50% duty cycle. The effective range of this parameter is from - about 1525 Hz up to just under 100 MHz. Note that the max frequency is - determined by the ClockHigh frequency of the Anything I/O board; the - 5i20 and 7i43 both have a 100 MHz clock, resulting in a 100 Mhz max PDM - frequency. Other boards may have different clocks, resulting in - different max PDM frequencies. If the user attempts to set the - frequency too high, it will be clipped to the max supported frequency - of the board. - -* 'pwm_frequency' - - (u32, RW) This specifies the PWM frequency, in Hz, of all the pwmgen - instances running in the PWM modes (modes 1 and 2). This is the - frequency of the variable-duty-cycle wave. Its effective range is from - 1 Hz up to 193 KHz. Note that the max frequency is determined by the - ClockHigh frequency of the Anything I/O board; the 5i20 and 7i43 both - have a 100 MHz clock, resulting in a 193 KHz max PWM frequency. Other - boards may have different clocks, resulting in different max PWM - frequencies. If the user attempts to set the frequency too high, it - will be clipped to the max supported frequency of the board. - Frequencies below about 5 Hz are not terribly accurate, but above 5 Hz - they're pretty close. - -=== Output Parameters - -The output pins of each PWMGen have two additional parameters. To find -which I/O pin belongs to which output run dmesg as described above. - -* 'invert_output' - - (Bit, RW) This parameter only has an effect if the 'is_output' - parameter is true. If this parameter is true, the output value of the - GPIO will be the inverse of the value on the 'out' HAL pin. - -* 'is_opendrain' - - (Bit, RW) If this parameter is false, the GPIO behaves as a normal - output pin: the I/O pin on the connector is driven to the value - specified by the 'out' HAL pin (possibly inverted). If this parameter - is true, the GPIO behaves as an open-drain pin. Writing 0 to the 'out' - HAL pin drives the I/O pin low, writing 1 to the 'out' HAL pin puts the - I/O pin in a high-impedance state. In this high-impedance state the I/O - pin floats (weakly pulled high), and other devices can drive the value; - the resulting value on the I/O pin is available on the 'in' and 'in_not' - pins. Only full GPIO pins and I/O pins used as outputs by active module - instances have this parameter. - -== Encoder - -Encoders have names like -'hm2_..encoder..'. 'Instance' is a -two-digit number that corresponds to the HostMot2 encoder instance -number. There are 'num_encoders' instances, starting with 00. - -Each encoder uses three or four input I/O pins, depending on how the -firmware was compiled. Three-pin encoders use A, B, and Index -(sometimes also known as Z). Four-pin encoders use A, B, Index, and -Index-mask. - -The hm2 encoder representation is similar to the one described by the -Canonical Device Interface (in the HAL General Reference document), and -to the software encoder component. Each encoder instance has the -following pins and parameters: - -=== Pins - -* 'count' - - (s32, Out) Number of encoder counts since the previous reset. - -* 'index-enable' - - (Bit, I/O) When this pin is set to True, the count (and therefore also - position) are reset to zero on the next Index (Phase-Z) pulse. At the - same time, index-enable is reset to zero to indicate that the pulse has - occurred. - -* 'position' - - (Float, Out) Encoder position in position units (count / scale). - -* 'rawcounts' - - (s32, Out) Total number of encoder counts since the start, not - adjusted for index or reset. - -* 'reset' - - (Bit, In) When this pin is TRUE, the count and position pins are set - to 0. (The value of the velocity pin is not affected by this.) The - driver does not reset this pin to FALSE after resetting the count to 0, - that is the user's job. - -* 'velocity' - - (Float, Out) Estimated encoder velocity in position units per second. - -=== Parameters - -* 'counter-mode' - - (Bit, RW) Set to False (the default) for Quadrature. Set to True for - Up/Down or for single input on Phase A. Can be used for a frequency to - velocity converter with a single input on Phase A when set to true. - -* 'filter' - - (Bit, RW) If set to True (the default), the quadrature counter needs - 15 clocks to register a change on any of the three input lines (any - pulse shorter than this is rejected as noise). If set to False, the - quadrature counter needs only 3 clocks to register a change. The - encoder sample clock runs at 33 MHz on the PCI Anything I/O cards and 50 MHz - on the 7i43. - -* 'index-invert' - - (Bit, RW) If set to True, the rising edge of the Index input pin - triggers the Index event (if index-enable is True). If set to False, - the falling edge triggers. - -* 'index-mask' - - (Bit, RW) If set to True, the Index input pin only has an effect if - the Index-Mask input pin is True (or False, depending on the - index-mask-invert pin below). - -* 'index-mask-invert' - - (Bit, RW) If set to True, Index-Mask must be False for Index to have - an effect. If set to False, the Index-Mask pin must be True. - -* 'scale' - - (Float, RW) Converts from 'count' units to 'position' units. A - quadrature encoder will normally have 4 counts per pulse so a 100 PPR - encoder would be 400 counts per revolution. In '.counter-mode' a 100 - PPR encoder would have 100 counts per revelution as it only uses the - rising edge of A and direction is B. - -* 'vel-timeout' - - (Float, RW) When the encoder is moving slower than one pulse for each - time that the driver reads the count from the FPGA (in the hm2_read() - function), the velocity is harder to estimate. The driver can wait - several iterations for the next pulse to arrive, all the while - reporting the upper bound of the encoder velocity, which can be - accurately guessed. This parameter specifies how long to wait for the - next pulse, before reporting the encoder stopped. This parameter is in - seconds. - -== 5i25 Configuration - -=== Firmware - -The 5i25 firmware comes preloaded for the daughter card it is purchased with. -So the 'firmware=xxx.BIT' is not part of the hm2_pci configuration string when -using a 5i25. - -=== Configuration - -Example configurations of the 5i25/7i76 and 5i25/7i77 cards are included in -the <>. - -If you like to roll your own configuration the following examples show how -to load the drivers in the HAL file. - -.5i25 + 7i76 Card ----- -# load the generic driver -loadrt hostmot2 - -# load the PCI driver and configure -loadrt hm2_pci config="num_encoders=1 num_stepgens=5 sserial_port_0=0XXX" ----- - -.5i25 + 7i77 Card ----- -# load the generic driver -loadrt hostmot2 - -# load the PCI driver and configure -loadrt hm2_pci config="num_encoders=6 num_pwmgens=6 sserial_port_0=0XXX" ----- - -=== SSERIAL Configuration - -The 'sserial_port_0=0XXX' configuration string sets some options for the smart -serial daughter card. These options are specific for each daughter card. See -the Mesa manual for more information on the exact usuage. - -=== 7i77 Limits - -The minlimit and maxlimit are bounds on the pin value (in this case the analog -out value) fullscalemax is the scale factor. - -These are by default set to the analog in or analog range (most likely in -volts). - -So for example on the 7I77 +-10V analog outputs, the default values are: - -minlimit -10 -maxlimit +10 -maxfullscale 10 - -If you wanted to say scale the analog out of a channel to IPS for a velocity -mode servo (say 24 IPS max) you could set the limits like this: - -minlimit -24 -maxlimit +24 -maxfullscale 24 - -If you wanted to scale the analog out of a channel to RPM for a 0 to 6000 RPM -spindle with 0-10V control you could set the limits like this: - -minlimit 0 -maxlimit 6000 -maxfullscale 6000 -(this would prevent unwanted negative output voltages from being set) - -== Example Configurations - -Several example configurations for Mesa hardware are included with LinuxCNC. -The configurations are located in the hm2-servo and hm2-stepper sections of -the <>. Typically you -will need the board installed for the configuration you pick to -load. The examples are a good place to start and will save you time. -Just pick the proper example from the LinuxCNC Configuration Selector and -save a copy to your computer so you can edit it. To see the exact pins -and parameters that your configuration gave you, open the Show HAL -Configuration window from the Machine menu, or do dmesg as outlined -above. diff --git a/docs/src/drivers/hostmot2_es.txt b/docs/src/drivers/hostmot2_es.txt deleted file mode 100644 index 085cccf96be..00000000000 --- a/docs/src/drivers/hostmot2_es.txt +++ /dev/null @@ -1,775 +0,0 @@ -= Mesa HostMot2 Driver - -[[cha:mesa-hostmot2-driver]] (((Mesa HostMot2 Driver))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Introduction - -HostMot2 is an FPGA configuration developed by Mesa Electronics for -their line of 'Anything I/O' motion control cards. The firmware is open -source, portable and flexible. It can be configured (at compile-time) -with zero or more instances (an object created at runtime) of each of -several Modules: encoders (quadrature counters), PWM generators, and -step/dir generators. The firmware can be configured (at run-time) to -connect each of these instances to pins on the I/O headers. I/O pins -not driven by a Module instance revert to general-purpose -bi-directional digital I/O. - -== Firmware Binaries - -Several pre-compiled HostMot2 firmware binaries are available for the -different Anything I/O boards. (This list is incomplete, check the -hostmot2-firmware distribution for up-to-date firmware lists.) - -* 3x20 (144 I/O pins): using hm2_pci module -** 24-channel servo -** 16-channel servo plus 24 step/dir generators - -* 5i22 (96 I/O pins): using hm2_pci module -** 16-channel servo -** 8-channel servo plus 24 step/dir generators - -* 5i20, 5i23, 4i65, 4i68 (72 I/O pins): using hm2_pci module -** 12-channel servo -** 8-channel servo plus 4 step/dir generators -** 4-channel servo plus 8 step/dir generators - -* 7i43 (48 I/O pins): using hm2_7i43 module -** 8-channel servo (8 PWM generators & 8 encoders) -** 4-channel servo plus 4 step/dir generators - -== Installing Firmware - -Depending on how you installed LinuxCNC you may have to open the Synaptic -Package Manager from the System menu and install the package for your -Mesa card. The quickest way to find them is to do a search for -'hostmot2' in the Synaptic Package Manager. Mark the firmware for -installation, then apply. - -== Loading HostMot2 - -The LinuxCNC support for the HostMot2 firmware is split into a generic -driver called 'hostmot2' and two low-level I/O drivers for the Anything -I/O boards. The low-level I/O drivers are 'hm2_7i43' and 'hm2_pci' (for -all the PCI- and PC-104/Plus-based Anything I/O boards). The hostmot2 driver -must be loaded first, using a HAL command like this: - ----- -loadrt hostmot2 ----- - -See the hostmot2(9) man page for details. - -The hostmot2 driver by itself does nothing, it needs access to actual -boards running the HostMot2 firmware. The low-level I/O drivers provide -this access. The low-level I/O drivers are loaded with commands like -this: - ----- -loadrt hm2_pci config="firmware=hm2/5i20/SVST8_4.BIT - num_encoders=3 num_pwmgens=3 num_stepgens=1" ----- - -The config parameters are described in the hostmot2 man page. - -== Watchdog - -The HostMot2 firmware may include a watchdog Module; if it does, the -hostmot2 driver will use it. - -The watchdog must be petted by LinuxCNC periodically or it will bite. - -When the watchdog bites, all the board's I/O pins are disconnected -from their Module instances and become high-impedance inputs (pulled -high), and all communication with the board stops. The state of the -HostMot2 firmware modules is not disturbed (except for the -configuration of the I/O Pins). Encoder instances keep counting -quadrature pulses, and pwm- and step-generators keep generating signals -(which are not relayed to the motors, because the I/O Pins have become -inputs). - -Resetting the watchdog resumes communication and resets the I/O pins -to the configuration chosen at load-time. - -If the firmware includes a watchdog, the following HAL objects will be -exported: - -=== Pins: - -* 'has_bit' - - (bit i/o) True if the watchdog has bit, False if the watchdog has not - bit. If the watchdog has bit and the has_bit bit is True, the user can - reset it to False to resume operation. - -=== Parameters: - -* 'timeout_ns' - - (u32 read/write) Watchdog timeout, in nanoseconds. This is initialized - to 1,000,000,000 (1 second) at module load time. If more than this - amount of time passes between calls to the pet_watchdog() function, the - watchdog will bite. - -=== Functions: - -* 'pet_watchdog()' - - Calling this function resets the watchdog timer and postpones the - watchdog biting until timeout_ns nanoseconds later. This function - should be added to the servo thread. - -== HostMot2 Functions - -* 'hm2_..read' - - Read all inputs, update input HAL pins. - -* 'hm2_..write' - - Write all outputs. - -* 'hm2_..pet-watchdog' - - Pet the watchdog to keep it from biting us for a while. - -* 'hm2_..read_gpio' - - Read the GPIO input pins only. (This function - is not available on the 7i43 due to limitations of the EPP bus.) - -* 'hm2_..write_gpio' - - Write the GPIO control registers and output pins only. (This function - is not available on the 7i43 due to limitations of the EPP bus.) - -[NOTE] -===================================================================== -The above 'read_gpio' and 'write_gpio' functions should not -normally be needed, since the GPIO bits are read and written along -with everything else in the standard 'read' and 'write' -functions above, which are normally run in the servo thread. - -The 'read_gpio' and 'write_gpio' functions were provided in -case some very fast (frequently updated) I/O is needed. These -functions should be run in the base thread. If you have need for -this, please send an email and tell us about it, and what your -application is. -===================================================================== - -== Pinouts - -The hostmot2 driver does not have a particular pinout. The pinout -comes from the firmware that the hostmot2 driver sends to the Anything I/O -board. Each firmware has different pinout, and the pinout depends on -how many of the available encoders, pwmgens, and stepgens are used. To -get a pinout list for your configuration after loading LinuxCNC in the -terminal window type: - ----- -dmesg > hm2.txt ----- - -The resulting text file will contain lots of information as well as -the pinout for the HostMot2 and any error and warning messages. - -To reduce the clutter by clearing the message buffer before loading -LinuxCNC type the following in the terminal window: - ----- -sudo dmesg -c ----- - -Now when you run LinuxCNC and then do a 'dmesg > hm2.txt' in the terminal -only the info from the time you loaded LinuxCNC will be in your file along -with your pinout. The file will be in the current directory of the -terminal window. Each line will contain the card name, the card number, -the I/O Pin number, the connector and pin, and the usage. From this -printout you will know the physical connections to your card based on -your configuration. - -An example of a 5i20 configuration: - ----- -[HOSTMOT2] -DRIVER=hm2_pci -BOARD=5i20 -CONFIG="firmware=hm2/5i20/SVST8_4.BIT num_encoders=1 num_pwmgens=1 num_stepgens=3" ----- - -The above configuration produced this printout. - ----- -[ 1141.053386] hm2/hm2_5i20.0: 72 I/O Pins used: -[ 1141.053394] hm2/hm2_5i20.0: IO Pin 000 (P2-01): IOPort -[ 1141.053397] hm2/hm2_5i20.0: IO Pin 001 (P2-03): IOPort -[ 1141.053401] hm2/hm2_5i20.0: IO Pin 002 (P2-05): Encoder #0, pin B (Input) -[ 1141.053405] hm2/hm2_5i20.0: IO Pin 003 (P2-07): Encoder #0, pin A (Input) -[ 1141.053408] hm2/hm2_5i20.0: IO Pin 004 (P2-09): IOPort -[ 1141.053411] hm2/hm2_5i20.0: IO Pin 005 (P2-11): Encoder #0, pin Index (Input) -[ 1141.053415] hm2/hm2_5i20.0: IO Pin 006 (P2-13): IOPort -[ 1141.053418] hm2/hm2_5i20.0: IO Pin 007 (P2-15): PWMGen #0, pin Out0 (PWM or Up) (Output) -[ 1141.053422] hm2/hm2_5i20.0: IO Pin 008 (P2-17): IOPort -[ 1141.053425] hm2/hm2_5i20.0: IO Pin 009 (P2-19): PWMGen #0, pin Out1 (Dir or Down) (Output) -[ 1141.053429] hm2/hm2_5i20.0: IO Pin 010 (P2-21): IOPort -[ 1141.053432] hm2/hm2_5i20.0: IO Pin 011 (P2-23): PWMGen #0, pin Not-Enable (Output) -... -[ 1141.053589] hm2/hm2_5i20.0: IO Pin 060 (P4-25): StepGen #2, pin Step (Output) -[ 1141.053593] hm2/hm2_5i20.0: IO Pin 061 (P4-27): StepGen #2, pin Direction (Output) -[ 1141.053597] hm2/hm2_5i20.0: IO Pin 062 (P4-29): StepGen #2, pin (unused) (Output) -[ 1141.053601] hm2/hm2_5i20.0: IO Pin 063 (P4-31): StepGen #2, pin (unused) (Output) -[ 1141.053605] hm2/hm2_5i20.0: IO Pin 064 (P4-33): StepGen #2, pin (unused) (Output) -[ 1141.053609] hm2/hm2_5i20.0: IO Pin 065 (P4-35): StepGen #2, pin (unused) (Output) -[ 1141.053613] hm2/hm2_5i20.0: IO Pin 066 (P4-37): IOPort -[ 1141.053616] hm2/hm2_5i20.0: IO Pin 067 (P4-39): IOPort -[ 1141.053619] hm2/hm2_5i20.0: IO Pin 068 (P4-41): IOPort -[ 1141.053621] hm2/hm2_5i20.0: IO Pin 069 (P4-43): IOPort -[ 1141.053624] hm2/hm2_5i20.0: IO Pin 070 (P4-45): IOPort -[ 1141.053627] hm2/hm2_5i20.0: IO Pin 071 (P4-47): IOPort -[ 1141.053811] hm2/hm2_5i20.0: registered -[ 1141.053815] hm2_5i20.0: initialized AnyIO board at 0000:02:02.0 ----- - -[NOTE] -That the I/O Pin nnn will correspond to the pin number shown on -the HAL Configuration screen for GPIOs. Some of the Stepgen, Encoder -and PWMGen will also show up as GPIOs in the HAL Configuration screen. - -== PIN Files - -The default pinout is described in a .PIN file (human-readable text). -When you install a firmware package the .PIN files are installed in - ----- -/usr/share/doc/hostmot2-firmware-/ ----- - -== Firmware - -The selected firmware (.BIT file) and configuration is uploaded from -the PC motherboard to the Mesa mothercard on LinuxCNC startup. -If you are using Run In Place, you must still install a -hostmot2-firmware- package. There is more information about -firmware and configuration in the 'Configurations' section. - -== HAL Pins - -The HAL pins for each configuration can be seen by opening up 'Show -HAL Configuration' from the Machine menu. All the HAL pins and -parameters can be found there. The following figure is of the 5i20 -configuration used above. - -.5i20 HAL Pins[[cap:5i20-HAL-Pins]] - -image::images/5i20-halpins.png[] - -== Configurations - -The Hostmot2 firmware is available in several versions, depending on -what you are trying to accomplish. You can get a reminder of what a -particular firmware is for by looking at the name. Let's look at a -couple of examples. - -In the 7i43 (two ports), SV8 ('Servo 8') would be for having 8 servos -or fewer, using the 'classic' 7i33 4-axis (per port) servo board. -So 8 servos would use up all 48 signals in the two ports. But if -you only needed 3 servos, you could say 'num_encoders=3' and 'num_pwmgens=3' -and recover 5 servos at 6 signals each, thus gaining 30 bits of GPIO. - -Or, in the 5i22 (four ports), SVST8_24 ('Servo 8, Stepper 24') would be -for having 8 servos or fewer (7i33 x2 again), and 24 steppers or fewer -(7i47 x2). This would use up all four ports. -If you only needed 4 servos you could say 'num_encoders=4' and -'num_pwmgens=4' and recover 1 port (and save a 7i33). -And if you only needed 12 steppers you could say 'num_stepgens=12' and -free up one port (and save a 7i47). -So in this way we can save two ports (48 bits) for GPIO. - -Here are tables of the firmwares available in the official packages. -There may be additional firmwares available at the Mesanet.com website -that have not yet made it into the LinuxCNC official firmware packages, so -check there too. - -3x20 (6-port various) Default Configurations (The 3x20 comes in 1M, 1.5M, and 2M gate versions. -So far, all firmware is available in all gate sizes.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWMGen | StepGen | GPIO -|SV24 | 24 | 24 | 0 | 0 -|SVST16_24 | 16 | 16 | 24 | 0 -|==================================================================== - -5i22 (4-port PCI) Default Configurations (The 5i22 comes in 1M and 1.5M gate versions. -So far, all firmware is available in all gate sizes.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV16 | 16 | 16 | 0 | 0 -|SVST2_4_7I47 | 4 | 2 | 4 | 72 -|SVST8_8 | 8 | 8 | 8 | 0 -|SVST8_24 | 8 | 8 | 24 | 0 -|==================================================================== - -5i23 (3-port PCI) Default Configurations (The 5i23 has 400k gates.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV12 | 12 | 12 | 0 | 0 -|SVST2_8 | 2 | 2 | 8 (tbl5) | 12 -|SVST2_4_7I47 | 4 | 2 | 4 | 48 -|SV12_2X7I48_72 | 12 | 12 | 0 | 24 -|SV12IM_2X7I48_72 | 12 (+IM) | 12 | 0 | 12 -|SVST4_8 | 4 | 4 | 8 (tbl5) | 0 -|SVST8_4 | 8 | 8 | 4 (tbl5) | 0 -|SVST8_4IM2 | 8 (+IM) | 8 | 4 | 8 -|SVST8_8IM2 | 8 (+IM) | 8 | 8 | 0 -|SVTP6_7I39 | 6 | 0 (6 BLDC) | 0 | 0 -|==================================================================== - -5i20 (3-port PCI) Default Configurations (The 5i20 has 200k gates.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV12 | 12 | 12 | 0 | 0 -|SVST2_8 | 2 | 2 | 8 (tbl5) | 12 -|SVST2_4_7I47 | 4 | 2 | 4 | 48 -|SV12_2X7I48_72 | 12 | 12 | 0 | 24 -|SV12IM_2X7I48_72 | 12 (+IM) | 12 | 0 | 12 -|SVST8_4 | 8 | 8 | 4 (tbl5) | 0 -|SVST8_4IM2 | 8 (+IM) | 8 | 4 | 8 -|==================================================================== - -4i68 (3-port PC/104) Default Configurations (The 4i68 has 400k gates.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV12 | 12 | 12 | 0 | 0 -|SVST2_4_7I47 | 4 | 2 | 4 | 48 -|SVST4_8 | 4 | 4 | 8 | 0 -|SVST8_4 | 8 | 8 | 4 | 0 -|SVST8_4IM2 | 8 (+IM) | 8 | 4 | 8 -|SVST8_8IM2 | 8 (+IM) | 8 | 8 | 0 -|==================================================================== - - -4i65 (3-port PC/104) Default Configurations (The 4i65 has 200k gates.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV12 | 12 | 12 | 0 | 0 -|SVST8_4 | 8 | 8 | 4 | 0 -|SVST8_4IM2 | 8 (+IM) | 8 | 4 | 8 -|==================================================================== - -7i43 (2-port parallel) 400k gate versions, Default Configurations -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV8 | 8 | 8 | 0 | 0 -|SVST4_4 | 4 | 4 | 4 (tbl5) | 0 -|SVST4_6 | 4 | 4 | 6 (tbl3) | 0 -|SVST4_12 | 4 | 4 | 12 | 0 -|SVST2_4_7I47 | 4 | 2 | 4 | 24 -|==================================================================== - -7i43 (2-port parallel) 200k gate versions, Default Configurations -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV8 | 8 | 8 | 0 | 0 -|SVST4_4 | 4 | 4 | 4 (tbl5) | 0 -|SVST4_6 | 4 | 4 | 6 (tbl3) | 0 -|SVST2_4_7I47 | 4 | 2 | 4 | 24 -|==================================================================== - -Even though several cards may have the same named .BIT file you cannot use -a .BIT file that is not for that card. Different cards have different -clock frequencies so make sure you load the proper .BIT file for your -card. Custom hm2 firmwares can be created for special applications and -you may see some custom hm2 firmwares in the directories with the -default ones. - -When you load the board-driver (hm2_pci or hm2_7i43), you can tell it -to disable instances of the three primary modules (pwmgen, stepgen, and -encoder) by setting the count lower. Any I/O pins belonging to disabled -module instances become GPIOs. - -== GPIO - -General Purpose I/O pins on the board which are not used by a module -instance are exported to HAL as 'full' GPIO pins. Full GPIO pins can be -configured at run-time to be inputs, outputs, or open drains, and have -a HAL interface that exposes this flexibility. I/O pins that are owned -by an active module instance are constrained by the requirements of the -owning module, and have a restricted HAL interface. - -GPIOs have names like 'hm2_..gpio..' -IONum. is a three-digit number. The mapping from IONum to connector and -pin-on-that-connector is written to the syslog when the driver loads, -and it's documented in Mesa's manual for the Anything I/O boards. - -The hm2 GPIO representation is modeled after the Digital Inputs and -Digital Outputs described in the Canonical Device Interface (part of -the HAL General Reference document). - -GPIO pins default to input. - -=== Pins - -* 'in' - - (Bit, Out) Normal state of the hardware input pin. Both full GPIO pins - and I/O pins used as inputs by active module instances have this pin. - -* 'in_not' - - (Bit, Out) Inverted state of the hardware input pin. Both full GPIO - pins and I/O pins used as inputs by active module instances have this - pin. - -* 'out' - - (Bit, In) Value to be written (possibly inverted) to the hardware - output pin. Only full GPIO pins have this pin. - -=== Parameters - -* 'invert_output' - - (Bit, RW) This parameter only has an effect if the 'is_output' - parameter is true. If this parameter is true, the output value of the - GPIO will be the inverse of the value on the 'out' HAL pin. Only full - GPIO pins and I/O pins used as outputs by active module instances have - this parameter. To invert an active module pin you have to invert the - GPIO pin not the module pin. - -* 'is_opendrain' - - (Bit, RW) This parameter only has an effect if the 'is_output' - parameter is true. If this parameter is false, the GPIO behaves as a - normal output pin: the I/O pin on the connector is driven to the value - specified by the 'out' HAL pin (possibly inverted), and the value of - the 'in' and 'in_not' HAL pins is undefined. If this parameter is true, - the GPIO behaves as an open-drain pin. Writing 0 to the 'out' HAL pin - drives the I/O pin low, writing 1 to the 'out' HAL pin puts the I/O pin - in a high-impedance state. In this high-impedance state the I/O pin - floats (weakly pulled high), and other devices can drive the value; the - resulting value on the I/O pin is available on the 'in' and 'in_not' - pins. Only full GPIO pins and I/O pins used as outputs by active module - instances have this parameter. - -* 'is_output' - - (Bit, RW) If set to 0, the GPIO is an input. The I/O pin is put in a - high-impedance state (weakly pulled high), to be driven by other - devices. The logic value on the I/O pin is available in the 'in' and - 'in_not' HAL pins. Writes to the 'out' HAL pin have no effect. If this - parameter is set to 1, the GPIO is an output; its behavior then depends - on the 'is_opendrain' parameter. Only full GPIO pins have this - parameter. - -== StepGen - -Stepgens have names like -'hm2_..stepgen..'. 'Instance' is a -two-digit number that corresponds to the HostMot2 stepgen instance -number. There are 'num_stepgens' instances, starting with 00. - -Each stepgen allocates 2-6 I/O pins (selected at firmware compile -time), but currently only uses two: Step and Direction outputs.footnote:[At -present, the firmware supports multi-phase stepper outputs, but -the driver doesn't. Interested volunteers are solicited.] - -The stepgen representation is modeled on the stepgen software -component. Stepgen default is active high step output (high during step -time low during step space). To invert a StepGen output pin you invert -the corresponding GPIO pin that is being used by StepGen. To find the -GPIO pin being used for the StepGen output run dmesg as shown above. - -Each stepgen instance has the following pins and parameters: - -=== Pins - -* 'control-type' - - (Bit, In) Switches between position control mode (0) and velocity - control mode (1). Defaults to position control (0). - -* 'counts' - - (s32, Out) Feedback position in counts (number of steps). - -* 'enable' - - (Bit, In) Enables output steps. When false, no steps are generated. - -* 'position-cmd' - - (Float, In) Target position of stepper motion, in user-defined - position units. - -* 'position-fb' - - (Float, Out) Feedback position in user-defined position units (counts - / position_scale). - -* 'velocity-cmd' - - (Float, In) Target velocity of stepper motion, in user-defined - position units per second. This pin is only used when the stepgen is in - velocity control mode (control-type=1). - -* 'velocity-fb' - - (Float, Out) Feedback velocity in user-defined position units per - second. - -=== Parameters - -* 'dirhold' - - (u32, RW) Minimum duration of stable Direction signal after a step - ends, in nanoseconds. - -* 'dirsetup' - - (u32, RW) Minimum duration of stable Direction signal before a step - begins, in nanoseconds. - -* 'maxaccel' - - (Float, RW) Maximum acceleration, in position units per second per - second. If set to 0, the driver will not limit its acceleration. - -* 'maxvel' - - (Float, RW) Maximum speed, in position units per second. If set to 0, - the driver will choose the maximum velocity based on the values of - steplen and stepspace (at the time that maxvel was set to 0). - -* 'position-scale' - - (Float, RW) Converts from counts to position units. position = counts - / position_scale - -* 'step_type' - - (u32, RW) Output format, like the step_type modparam to the software - stegen(9) component. 0 = Step/Dir, 1 = Up/Down, 2 = Quadrature. In - Quadrature mode (step_type=2), the stepgen outputs one complete Gray - cycle (00 \-> 01 \-> 11 \-> 10 \-> 00) for each 'step' it takes. - -* 'steplen' - - (u32, RW) Duration of the step signal, in nanoseconds. - -* 'stepspace' - - (u32, RW) Minimum interval between step signals, in nanoseconds. - -=== Output Parameters - -The Step and Direction pins of each StepGen have two additional -parameters. To find which I/O pin belongs to which step and direction -output run dmesg as described above. - -* 'invert_output' - - (Bit, RW) This parameter only has an effect if the 'is_output' - parameter is true. If this parameter is true, the output value of the - GPIO will be the inverse of the value on the 'out' HAL pin. - -* 'is_opendrain' - - (Bit, RW) If this parameter is false, the GPIO behaves as a normal - output pin: the I/O pin on the connector is driven to the value - specified by the 'out' HAL pin (possibly inverted). If this parameter - is true, the GPIO behaves as an open-drain pin. Writing 0 to the 'out' - HAL pin drives the I/O pin low, writing 1 to the 'out' HAL pin puts the - I/O pin in a high-impedance state. In this high-impedance state the I/O - pin floats (weakly pulled high), and other devices can drive the value; - the resulting value on the I/O pin is available on the 'in' and 'in_not' - pins. Only full GPIO pins and I/O pins used as outputs by active module - instances have this parameter. - -== PWMGen - -PWMgens have names like -'hm2_..pwmgen..'. 'Instance' is a -two-digit number that corresponds to the HostMot2 pwmgen instance -number. There are 'num_pwmgens' instances, starting with 00. - -In HM2, each pwmgen uses three output I/O pins: Not-Enable, Out0, and -Out1. To invert a PWMGen output pin you invert the corresponding GPIO -pin that is being used by PWMGen. To find the GPIO pin being used for -the PWMGen output run dmesg as shown above. - -The function of the Out0 and Out1 I/O pins varies with output-type -parameter (see below). - -The hm2 pwmgen representation is similar to the software pwmgen -component. Each pwmgen instance has the following pins and parameters: - -=== Pins - -* 'enable' - - (Bit, In) If true, the pwmgen will set its Not-Enable pin false and - output its pulses. If 'enable' is false, pwmgen will set its Not-Enable - pin true and not output any signals. - -* 'value' - - (Float, In) The current pwmgen command value, in arbitrary units. - -=== Parameters - -* 'output-type' - - (s32, RW) This emulates the output_type load-time argument to the - software pwmgen component. This parameter may be changed at runtime, - but most of the time you probably want to set it at startup and then - leave it alone. Accepted values are 1 (PWM on Out0 and Direction on - Out1), 2 (Up on Out0 and Down on Out1), 3 (PDM mode, PDM on Out0 and - Dir on Out1), and 4 (Direction on Out0 and PWM on Out1, 'for locked - antiphase'). - -* 'scale' - - (Float, RW) Scaling factor to convert 'value' from arbitrary units to - duty cycle: dc = value / scale. Duty cycle has an effective range of - -1.0 to +1.0 inclusive, anything outside that range gets clipped. - -* 'pdm_frequency' - - (u32, RW) This specifies the PDM frequency, in Hz, of all the pwmgen - instances running in PDM mode (mode 3). This is the 'pulse slot - frequency'; the frequency at which the pdm generator in the Anything I/O board - chooses whether to emit a pulse or a space. Each pulse (and space) in - the PDM pulse train has a duration of 1/pdm_frequency seconds. For - example, setting the pdm_frequency to 2e6 (2 MHz) and the duty cycle to - 50% results in a 1 MHz square wave, identical to a 1 MHz PWM signal - with 50% duty cycle. The effective range of this parameter is from - about 1525 Hz up to just under 100 MHz. Note that the max frequency is - determined by the ClockHigh frequency of the Anything I/O board; the - 5i20 and 7i43 both have a 100 MHz clock, resulting in a 100 Mhz max PDM - frequency. Other boards may have different clocks, resulting in - different max PDM frequencies. If the user attempts to set the - frequency too high, it will be clipped to the max supported frequency - of the board. - -* 'pwm_frequency' - - (u32, RW) This specifies the PWM frequency, in Hz, of all the pwmgen - instances running in the PWM modes (modes 1 and 2). This is the - frequency of the variable-duty-cycle wave. Its effective range is from - 1 Hz up to 193 KHz. Note that the max frequency is determined by the - ClockHigh frequency of the Anything I/O board; the 5i20 and 7i43 both - have a 100 MHz clock, resulting in a 193 KHz max PWM frequency. Other - boards may have different clocks, resulting in different max PWM - frequencies. If the user attempts to set the frequency too high, it - will be clipped to the max supported frequency of the board. - Frequencies below about 5 Hz are not terribly accurate, but above 5 Hz - they're pretty close. - -=== Output Parameters - -The output pins of each PWMGen have two additional parameters. To find -which I/O pin belongs to which output run dmesg as described above. - -* 'invert_output' - - (Bit, RW) This parameter only has an effect if the 'is_output' - parameter is true. If this parameter is true, the output value of the - GPIO will be the inverse of the value on the 'out' HAL pin. - -* 'is_opendrain' - - (Bit, RW) If this parameter is false, the GPIO behaves as a normal - output pin: the I/O pin on the connector is driven to the value - specified by the 'out' HAL pin (possibly inverted). If this parameter - is true, the GPIO behaves as an open-drain pin. Writing 0 to the 'out' - HAL pin drives the I/O pin low, writing 1 to the 'out' HAL pin puts the - I/O pin in a high-impedance state. In this high-impedance state the I/O - pin floats (weakly pulled high), and other devices can drive the value; - the resulting value on the I/O pin is available on the 'in' and 'in_not' - pins. Only full GPIO pins and I/O pins used as outputs by active module - instances have this parameter. - -== Encoder - -Encoders have names like -'hm2_..encoder..'. 'Instance' is a -two-digit number that corresponds to the HostMot2 encoder instance -number. There are 'num_encoders' instances, starting with 00. - -Each encoder uses three or four input I/O pins, depending on how the -firmware was compiled. Three-pin encoders use A, B, and Index -(sometimes also known as Z). Four-pin encoders use A, B, Index, and -Index-mask. - -The hm2 encoder representation is similar to the one described by the -Canonical Device Interface (in the HAL General Reference document), and -to the software encoder component. Each encoder instance has the -following pins and parameters: - -=== Pins - -* 'count' - - (s32, Out) Number of encoder counts since the previous reset. - -* 'index-enable' - - (Bit, I/O) When this pin is set to True, the count (and therefore also - position) are reset to zero on the next Index (Phase-Z) pulse. At the - same time, index-enable is reset to zero to indicate that the pulse has - occurred. - -* 'position' - - (Float, Out) Encoder position in position units (count / scale). - -* 'rawcounts' - - (s32, Out) Total number of encoder counts since the start, not - adjusted for index or reset. - -* 'reset' - - (Bit, In) When this pin is TRUE, the count and position pins are set - to 0. (The value of the velocity pin is not affected by this.) The - driver does not reset this pin to FALSE after resetting the count to 0, - that is the user's job. - -* 'velocity' - - (Float, Out) Estimated encoder velocity in position units per second. - -=== Parameters - -* 'counter-mode' - - (Bit, RW) Set to False (the default) for Quadrature. Set to True for - Up/Down or for single input on Phase A. Can be used for a frequency to - velocity converter with a single input on Phase A when set to true. - -* 'filter' - - (Bit, RW) If set to True (the default), the quadrature counter needs - 15 clocks to register a change on any of the three input lines (any - pulse shorter than this is rejected as noise). If set to False, the - quadrature counter needs only 3 clocks to register a change. The - encoder sample clock runs at 33 MHz on the PCI Anything I/O cards and 50 MHz - on the 7i43. - -* 'index-invert' - - (Bit, RW) If set to True, the rising edge of the Index input pin - triggers the Index event (if index-enable is True). If set to False, - the falling edge triggers. - -* 'index-mask' - - (Bit, RW) If set to True, the Index input pin only has an effect if - the Index-Mask input pin is True (or False, depending on the - index-mask-invert pin below). - -* 'index-mask-invert' - - (Bit, RW) If set to True, Index-Mask must be False for Index to have - an effect. If set to False, the Index-Mask pin must be True. - -* 'scale' - - (Float, RW) Converts from 'count' units to 'position' units. A - quadrature encoder will normally have 4 counts per pulse so a 100 PPR - encoder would be 400 counts per revolution. In '.counter-mode' a 100 - PPR encoder would have 100 counts per revelution as it only uses the - rising edge of A and direction is B. - -* 'vel-timeout' - - (Float, RW) When the encoder is moving slower than one pulse for each - time that the driver reads the count from the FPGA (in the hm2_read() - function), the velocity is harder to estimate. The driver can wait - several iterations for the next pulse to arrive, all the while - reporting the upper bound of the encoder velocity, which can be - accurately guessed. This parameter specifies how long to wait for the - next pulse, before reporting the encoder stopped. This parameter is in - seconds. - -== Examples - -Several example configurations are included with LinuxCNC for both stepper -and servo applications. The configurations are located in the hm2-servo -and hm2-stepper sections of the LinuxCNC Configuration Selector window. You -will need the same board installed for the configuration you pick to -load. The examples are a good place to start and will save you time. -Just pick the proper example from the LinuxCNC Configuration Selector and -save a copy to your computer so you can edit it. To see the exact pins -and parameters that your configuration gave you, open the Show HAL -Configuration window from the Machine menu, or do dmesg as outlined -above. - - diff --git a/docs/src/drivers/hostmot2_fr.txt b/docs/src/drivers/hostmot2_fr.txt deleted file mode 100644 index 519ffb2e102..00000000000 --- a/docs/src/drivers/hostmot2_fr.txt +++ /dev/null @@ -1,751 +0,0 @@ -= Mesa HostMot2 (((Mesa HostMot2))) - -== Introduction - -HostMot2 is an FPGA configuration developed by Mesa Electronics for -their line of "Anything I/O" motion control cards. The firmware is open -source, portable and flexible. It can be configured (at compile-time) -with zero or more instances (an object created at runtime) of each of -several Modules: encoders (quadrature counters), PWM generators, and -step/dir generators. The firmware can be configured (at run-time) to -connect each of these instances to pins on the I/O headers. I/O pins -not driven by a Module instance revert to general-purpose -bi-directional digital I/O. - -== Firmware Binaries - -Several pre-compiled HostMot2 firmware binaries are available for the -different Anything I/O boards. (This list is incomplete, check the -hostmot2-firmware distribution for up-to-date firmware lists.) - - * 3x20 (144 I/O pins): using hm2_pci module - - 24-channel servo - - 16-channel servo plus 24 step/dir generators - - * 5i22 (96 I/O pins): using hm2_pci module - - 16-channel servo - - 8-channel servo plus 24 step/dir generators - - * 5i20, 5i23, 4i65, 4i68 (72 I/O pins): using hm2_pci module - - 12-channel servo - - 8-channel servo plus 4 step/dir generators - - 4-channel servo plus 8 step/dir generators - - * 7i43 (48 I/O pins): using hm2_7i43 module - - 8-channel servo (8 PWM generators & 8 encoders) - - 4-channel servo plus 4 step/dir generators - -== Installing Firmware - -Depending on how you installed LinuxCNC you may have to open the Synaptic -Package Manager from the System menu and install the package for your -Mesa card. The quickest way to find them is to do a search for -"hostmot2" in the Synaptic Package Manager. Mark the firmware for -installation, then apply. - -== Loading HostMot2 - -The LinuxCNC support for the HostMot2 firmware is split into a generic -driver called "hostmot2" and two low-level I/O drivers for the Anything -I/O boards. The low-level I/O drivers are "hm2_7i43" and "hm2_pci" (for -all the PCI- and PC-104/Plus-based Anything I/O boards). The hostmot2 driver -must be loaded first, using a HAL command like this: - - loadrt hostmot2 - -See the hostmot2(9) man page for details. - -The hostmot2 driver by itself does nothing, it needs access to actual -boards running the HostMot2 firmware. The low-level I/O drivers provide -this access. The low-level I/O drivers are loaded with commands like -this: - - loadrt hm2_pci config="firmware=hm2/5i20/SVST8_4.BIT num_encoders=3 - num_pwmgens=3 num_stepgens=1" - -The config parameters are described in the hostmot2 man page. - -== Watchdog - -The HostMot2 firmware may include a watchdog Module; if it does, the -hostmot2 driver will use it. - -The watchdog must be petted by LinuxCNC periodically or it will bite. - -When the watchdog bites, all the board's I/O pins are disconnected -from their Module instances and become high-impedance inputs (pulled -high), and all communication with the board stops. The state of the -HostMot2 firmware modules is not disturbed (except for the -configuration of the I/O Pins). Encoder instances keep counting -quadrature pulses, and pwm- and step-generators keep generating signals -(which are not relayed to the motors, because the I/O Pins have become -inputs). - -Resetting the watchdog resumes communication and resets the I/O pins -to the configuration chosen at load-time. - -If the firmware includes a watchdog, the following HAL objects will be -exported: - -=== Pins: - -has_bit:: - (bit i/o) True if the watchdog has bit, False if the watchdog has not - bit. If the watchdog has bit and the has_bit bit is True, the user can - reset it to False to resume operation. - -=== Parameters: - -timeout_ns:: - (u32 read/write) Watchdog timeout, in nanoseconds. This is initialized - to 1,000,000,000 (1 second) at module load time. If more than this - amount of time passes between calls to the pet_watchdog() function, the - watchdog will bite. - -=== Functions: - -pet_watchdog():: - Calling this function resets the watchdog timer and postpones the - watchdog biting until timeout_ns nanoseconds later. This function - should be added to the servo thread. - -== HostMot2 Functions - -hm2_..read:: - Read all inputs, update input HAL pins. - -hm2_..write:: - Write all outputs. - -hm2_..pet-watchdog:: - Pet the watchdog to keep it from biting us for a while. - -hm2_..read_gpio:: - Read the GPIO input pins only. (This function - is not available on the 7i43 due to limitations of the EPP bus.) - -hm2_..write_gpio:: - Write the GPIO control registers and output pins only. (This function - is not available on the 7i43 due to limitations of the EPP bus.) - -[NOTE] -===================================================================== -The above *read_gpio* and *write_gpio* functions should not -normally be needed, since the GPIO bits are read and written along -with everything else in the standard *read* and *write* -functions above, which are normally run in the servo thread. - -The *read_gpio* and *write_gpio* functions were provided in -case some very fast (frequently updated) I/O is needed. These -functions should be run in the base thread. If you have need for -this, please send an email and tell us about it, and what your -application is. -===================================================================== - -== Pinouts - -The hostmot2 driver does not have a particular pinout. The pinout -comes from the firmware that the hostmot2 driver sends to the Anything I/O -board. Each firmware has different pinout, and the pinout depends on -how many of the available encoders, pwmgens, and stepgens are used. To -get a pinout list for your configuration after loading LinuxCNC in the -terminal window type: - - dmesg > hm2.txt - -The resulting text file will contain lots of information as well as -the pinout for the HostMot2 and any error and warning messages. - -To reduce the clutter by clearing the message buffer before loading -LinuxCNC type the following in the terminal window: - - sudo dmesg -c - -Now when you run LinuxCNC and then do a "dmesg > hm2.txt" in the terminal -only the info from the time you loaded LinuxCNC will be in your file along -with your pinout. The file will be in the current directory of the -terminal window. Each line will contain the card name, the card number, -the I/O Pin number, the connector and pin, and the usage. From this -printout you will know the physical connections to your card based on -your configuration. - -An example of a 5i20 configuration: - - [HOSTMOT2] - DRIVER=hm2_pci - BOARD=5i20 - CONFIG="firmware=hm2/5i20/SVST8_4.BIT num_encoders=1 num_pwmgens=1 num_stepgens=3" - -The above configuration produced this printout. - - [ 1141.053386] hm2/hm2_5i20.0: 72 I/O Pins used: - [ 1141.053394] hm2/hm2_5i20.0: IO Pin 000 (P2-01): IOPort - [ 1141.053397] hm2/hm2_5i20.0: IO Pin 001 (P2-03): IOPort - [ 1141.053401] hm2/hm2_5i20.0: IO Pin 002 (P2-05): Encoder #0, pin B (Input) - [ 1141.053405] hm2/hm2_5i20.0: IO Pin 003 (P2-07): Encoder #0, pin A (Input) - [ 1141.053408] hm2/hm2_5i20.0: IO Pin 004 (P2-09): IOPort - [ 1141.053411] hm2/hm2_5i20.0: IO Pin 005 (P2-11): Encoder #0, pin Index (Input) - [ 1141.053415] hm2/hm2_5i20.0: IO Pin 006 (P2-13): IOPort - [ 1141.053418] hm2/hm2_5i20.0: IO Pin 007 (P2-15): PWMGen #0, pin Out0 - (PWM or Up) (Output) - [ 1141.053422] hm2/hm2_5i20.0: IO Pin 008 (P2-17): IOPort - [ 1141.053425] hm2/hm2_5i20.0: IO Pin 009 (P2-19): PWMGen #0, pin Out1 - (Dir or Down) (Output) - [ 1141.053429] hm2/hm2_5i20.0: IO Pin 010 (P2-21): IOPort - [ 1141.053432] hm2/hm2_5i20.0: IO Pin 011 (P2-23): PWMGen #0, pin - Not-Enable (Output) - ... - [ 1141.053589] hm2/hm2_5i20.0: IO Pin 060 (P4-25): StepGen #2, pin Step (Output) - [ 1141.053593] hm2/hm2_5i20.0: IO Pin 061 (P4-27): StepGen #2, pin Direction (Output) - [ 1141.053597] hm2/hm2_5i20.0: IO Pin 062 (P4-29): StepGen #2, pin (unused) (Output) - [ 1141.053601] hm2/hm2_5i20.0: IO Pin 063 (P4-31): StepGen #2, pin (unused) (Output) - [ 1141.053605] hm2/hm2_5i20.0: IO Pin 064 (P4-33): StepGen #2, pin (unused) (Output) - [ 1141.053609] hm2/hm2_5i20.0: IO Pin 065 (P4-35): StepGen #2, pin (unused) (Output) - [ 1141.053613] hm2/hm2_5i20.0: IO Pin 066 (P4-37): IOPort - [ 1141.053616] hm2/hm2_5i20.0: IO Pin 067 (P4-39): IOPort - [ 1141.053619] hm2/hm2_5i20.0: IO Pin 068 (P4-41): IOPort - [ 1141.053621] hm2/hm2_5i20.0: IO Pin 069 (P4-43): IOPort - [ 1141.053624] hm2/hm2_5i20.0: IO Pin 070 (P4-45): IOPort - [ 1141.053627] hm2/hm2_5i20.0: IO Pin 071 (P4-47): IOPort - [ 1141.053811] hm2/hm2_5i20.0: registered - [ 1141.053815] hm2_5i20.0: initialized AnyIO board at 0000:02:02.0 - -Note that the I/O Pin nnn will correspond to the pin number shown on -the HAL Configuration screen for GPIOs. Some of the Stepgen, Encoder -and PWMGen will also show up as GPIOs in the HAL Configuration screen. - -== PIN Files - -The default pinout is described in a .PIN file (human-readable text). -When you install a firmware package .deb, the .PIN files are installed in - - /usr/share/doc/hostmot2-firmware-/ - -== Firmware - -The selected firmware (.BIT file) and configuration is uploaded from -the PC motherboard to the Mesa mothercard on LinuxCNC startup. -If you are using Run In Place, you must still install a -hostmot2-firmware- package. There is more information about -firmware and configuration in the "Configurations" section. - -== HAL Pins - -The HAL pins for each configuration can be seen by opening up "Show -HAL Configuration" from the Machine menu. All the HAL pins and -parameters can be found there. The following figure is of the 5i20 -configuration used above. - -.5i20 HAL Pins[[cap:5i20-HAL-Pins]] - -image::images/5i20-halpins.png[] - -== Configurations - -The Hostmot2 firmware is available in several versions, depending on -what you are trying to accomplish. You can get a reminder of what a -particular firmware is for by looking at the name. Let's look at a -couple of examples. - -In the 7i43 (two ports), SV8 ("Servo 8") would be for having 8 servos -or fewer, using the "classic" 7i33 4-axis (per port) servo board. -So 8 servos would use up all 48 signals in the two ports. But if -you only needed 3 servos, you could say `num_encoders=3` and `num_pwmgens=3` -and recover 5 servos at 6 signals each, thus gaining 30 bits of GPIO. - -Or, in the 5i22 (four ports), SVST8_24 ("Servo 8, Stepper 24") would be -for having 8 servos or fewer (7i33 x2 again), and 24 steppers or fewer -(7i47 x2). This would use up all four ports. -If you only needed 4 servos you could say `num_encoders=4` and -`num_pwmgens=4` and recover 1 port (and save a 7i33). -And if you only needed 12 steppers you could say `num_stepgens=12` and -free up one port (and save a 7i47). -So in this way we can save two ports (48 bits) for GPIO. - -Here are tables of the firmwares available in the official packages. -There may be additional firmwares available at the Mesanet.com website -that have not yet made it into the LinuxCNC official firmware packages, so -check there too. - -3x20 (6-port various) Default Configurations (The 3x20 comes in 1M, 1.5M, and 2M gate versions. -So far, all firmware is available in all gate sizes.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWMGen | StepGen | GPIO -|SV24 | 24 | 24 | 0 | 0 -|SVST16_24 | 16 | 16 | 24 | 0 -|==================================================================== - -5i22 (4-port PCI) Default Configurations (The 5i22 comes in 1M and 1.5M gate versions. -So far, all firmware is available in all gate sizes.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV16 | 16 | 16 | 0 | 0 -|SVST2_4_7I47 | 4 | 2 | 4 | 72 -|SVST8_8 | 8 | 8 | 8 | 0 -|SVST8_24 | 8 | 8 | 24 | 0 -|==================================================================== - -5i23 (3-port PCI) Default Configurations (The 5i23 has 400k gates.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV12 | 12 | 12 | 0 | 0 -|SVST2_8 | 2 | 2 | 8 (tbl5) | 12 -|SVST2_4_7I47 | 4 | 2 | 4 | 48 -|SV12_2X7I48_72 | 12 | 12 | 0 | 24 -|SV12IM_2X7I48_72 | 12 (+IM) | 12 | 0 | 12 -|SVST4_8 | 4 | 4 | 8 (tbl5) | 0 -|SVST8_4 | 8 | 8 | 4 (tbl5) | 0 -|SVST8_4IM2 | 8 (+IM) | 8 | 4 | 8 -|SVST8_8IM2 | 8 (+IM) | 8 | 8 | 0 -|SVTP6_7I39 | 6 | 0 (6 BLDC) | 0 | 0 -|==================================================================== - -5i20 (3-port PCI) Default Configurations (The 5i20 has 200k gates.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV12 | 12 | 12 | 0 | 0 -|SVST2_8 | 2 | 2 | 8 (tbl5) | 12 -|SVST2_4_7I47 | 4 | 2 | 4 | 48 -|SV12_2X7I48_72 | 12 | 12 | 0 | 24 -|SV12IM_2X7I48_72 | 12 (+IM) | 12 | 0 | 12 -|SVST8_4 | 8 | 8 | 4 (tbl5) | 0 -|SVST8_4IM2 | 8 (+IM) | 8 | 4 | 8 -|==================================================================== - -4i68 (3-port PC/104) Default Configurations (The 4i68 has 400k gates.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV12 | 12 | 12 | 0 | 0 -|SVST2_4_7I47 | 4 | 2 | 4 | 48 -|SVST4_8 | 4 | 4 | 8 | 0 -|SVST8_4 | 8 | 8 | 4 | 0 -|SVST8_4IM2 | 8 (+IM) | 8 | 4 | 8 -|SVST8_8IM2 | 8 (+IM) | 8 | 8 | 0 -|==================================================================== - -. - -. - -4i65 (3-port PC/104) Default Configurations (The 4i65 has 200k gates.) -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV12 | 12 | 12 | 0 | 0 -|SVST8_4 | 8 | 8 | 4 | 0 -|SVST8_4IM2 | 8 (+IM) | 8 | 4 | 8 -|==================================================================== - -7i43 (2-port parallel) 400k gate versions, Default Configurations -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV8 | 8 | 8 | 0 | 0 -|SVST4_4 | 4 | 4 | 4 (tbl5) | 0 -|SVST4_6 | 4 | 4 | 6 (tbl3) | 0 -|SVST4_12 | 4 | 4 | 12 | 0 -|SVST2_4_7I47 | 4 | 2 | 4 | 24 -|==================================================================== - -7i43 (2-port parallel) 200k gate versions, Default Configurations -[width="90%", options="header"] -|==================================================================== -|Firmware | Encoder | PWM | StepGen | GPIO -|SV8 | 8 | 8 | 0 | 0 -|SVST4_4 | 4 | 4 | 4 (tbl5) | 0 -|SVST4_6 | 4 | 4 | 6 (tbl3) | 0 -|SVST2_4_7I47 | 4 | 2 | 4 | 24 -|==================================================================== - -Even though several cards may have the same named .BIT file you cannot use -a .BIT file that is not for that card. Different cards have different -clock frequencies so make sure you load the proper .BIT file for your -card. Custom hm2 firmwares can be created for special applications and -you may see some custom hm2 firmwares in the directories with the -default ones. - -When you load the board-driver (hm2_pci or hm2_7i43), you can tell it -to disable instances of the three primary modules (pwmgen, stepgen, and -encoder) by setting the count lower. Any I/O pins belonging to disabled -module instances become GPIOs. - -== GPIO - -General Purpose I/O pins on the board which are not used by a module -instance are exported to HAL as "full" GPIO pins. Full GPIO pins can be -configured at run-time to be inputs, outputs, or open drains, and have -a HAL interface that exposes this flexibility. I/O pins that are owned -by an active module instance are constrained by the requirements of the -owning module, and have a restricted HAL interface. - -GPIOs have names like "hm2_..gpio.." -IONum. is a three-digit number. The mapping from IONum to connector and -pin-on-that-connector is written to the syslog when the driver loads, -and it's documented in Mesa's manual for the Anything I/O boards. - -The hm2 GPIO representation is modeled after the Digital Inputs and -Digital Outputs described in the Canonical Device Interface (part of -the HAL General Reference document). - -GPIO pins default to input. - -=== Pins - -in:: - (Bit, Out) Normal state of the hardware input pin. Both full GPIO pins - and I/O pins used as inputs by active module instances have this pin. - -in_not:: - (Bit, Out) Inverted state of the hardware input pin. Both full GPIO - pins and I/O pins used as inputs by active module instances have this - pin. - -out:: - (Bit, In) Value to be written (possibly inverted) to the hardware - output pin. Only full GPIO pins have this pin. - -=== Parameters - -invert_output:: - (Bit, RW) This parameter only has an effect if the "is_output" - parameter is true. If this parameter is true, the output value of the - GPIO will be the inverse of the value on the "out" HAL pin. Only full - GPIO pins and I/O pins used as outputs by active module instances have - this parameter. To invert an active module pin you have to invert the - GPIO pin not the module pin. - -is_opendrain:: - (Bit, RW) This parameter only has an effect if the "is_output" - parameter is true. If this parameter is false, the GPIO behaves as a - normal output pin: the I/O pin on the connector is driven to the value - specified by the "out" HAL pin (possibly inverted), and the value of - the "in" and "in_not" HAL pins is undefined. If this parameter is true, - the GPIO behaves as an open-drain pin. Writing 0 to the "out" HAL pin - drives the I/O pin low, writing 1 to the "out" HAL pin puts the I/O pin - in a high-impedance state. In this high-impedance state the I/O pin - floats (weakly pulled high), and other devices can drive the value; the - resulting value on the I/O pin is available on the "in" and "in_not" - pins. Only full GPIO pins and I/O pins used as outputs by active module - instances have this parameter. - -is_output:: - (Bit, RW) If set to 0, the GPIO is an input. The I/O pin is put in a - high-impedance state (weakly pulled high), to be driven by other - devices. The logic value on the I/O pin is available in the "in" and - "in_not" HAL pins. Writes to the "out" HAL pin have no effect. If this - parameter is set to 1, the GPIO is an output; its behavior then depends - on the "is_opendrain" parameter. Only full GPIO pins have this - parameter. - -== StepGen - -Stepgens have names like -"hm2_..stepgen..". "Instance" is a -two-digit number that corresponds to the HostMot2 stepgen instance -number. There are "num_stepgens" instances, starting with 00. - -Each stepgen allocates 2-6 I/O pins (selected at firmware compile -time), but currently only uses two: Step and Direction outputs.footnote:[At -present, the firmware supports multi-phase stepper outputs, but -the driver doesn't. Interested volunteers are solicited.] - -The stepgen representation is modeled on the stepgen software -component. Stepgen default is active high step output (high during step -time low during step space). To invert a StepGen output pin you invert -the corresponding GPIO pin that is being used by StepGen. To find the -GPIO pin being used for the StepGen output run dmesg as shown above. - -Each stepgen instance has the following pins and parameters: - -=== Pins - -control-type:: - (Bit, In) Switches between position control mode (0) and velocity - control mode (1). Defaults to position control (0). - -counts:: - (s32, Out) Feedback position in counts (number of steps). - -enable:: - (Bit, In) Enables output steps. When false, no steps are generated. - -position-cmd:: - (Float, In) Target position of stepper motion, in user-defined - position units. - -position-fb:: - (Float, Out) Feedback position in user-defined position units (counts - / position_scale). - -velocity-cmd:: - (Float, In) Target velocity of stepper motion, in user-defined - position units per second. This pin is only used when the stepgen is in - velocity control mode (control-type=1). - -velocity-fb:: - (Float, Out) Feedback velocity in user-defined position units per - second. - -=== Parameters - -dirhold:: - (u32, RW) Minimum duration of stable Direction signal after a step - ends, in nanoseconds. - -dirsetup:: - (u32, RW) Minimum duration of stable Direction signal before a step - begins, in nanoseconds. - -maxaccel:: - (Float, RW) Maximum acceleration, in position units per second per - second. If set to 0, the driver will not limit its acceleration. - -maxvel:: - (Float, RW) Maximum speed, in position units per second. If set to 0, - the driver will choose the maximum velocity based on the values of - steplen and stepspace (at the time that maxvel was set to 0). - -position-scale:: - (Float, RW) Converts from counts to position units. position = counts - / position_scale - -step_type:: - (u32, RW) Output format, like the step_type modparam to the software - stegen(9) component. 0 = Step/Dir, 1 = Up/Down, 2 = Quadrature. In - Quadrature mode (step_type=2), the stepgen outputs one complete Gray - cycle (00 -> 01 -> 11 -> 10 -> 00) for each "step" it takes. - -steplen:: - (u32, RW) Duration of the step signal, in nanoseconds. - -stepspace:: - (u32, RW) Minimum interval between step signals, in nanoseconds. - -=== Output Parameters - -The Step and Direction pins of each StepGen have two additional -parameters. To find which I/O pin belongs to which step and direction -output run dmesg as described above. - -invert_output:: - (Bit, RW) This parameter only has an effect if the "is_output" - parameter is true. If this parameter is true, the output value of the - GPIO will be the inverse of the value on the "out" HAL pin. - -is_opendrain:: - (Bit, RW) If this parameter is false, the GPIO behaves as a normal - output pin: the I/O pin on the connector is driven to the value - specified by the "out" HAL pin (possibly inverted). If this parameter - is true, the GPIO behaves as an open-drain pin. Writing 0 to the "out" - HAL pin drives the I/O pin low, writing 1 to the "out" HAL pin puts the - I/O pin in a high-impedance state. In this high-impedance state the I/O - pin floats (weakly pulled high), and other devices can drive the value; - the resulting value on the I/O pin is available on the "in" and "in_not" - pins. Only full GPIO pins and I/O pins used as outputs by active module - instances have this parameter. - -== PWMGen - -PWMgens have names like -"hm2_..pwmgen..". "Instance" is a -two-digit number that corresponds to the HostMot2 pwmgen instance -number. There are "num_pwmgens" instances, starting with 00. - -In HM2, each pwmgen uses three output I/O pins: Not-Enable, Out0, and -Out1. To invert a PWMGen output pin you invert the corresponding GPIO -pin that is being used by PWMGen. To find the GPIO pin being used for -the PWMGen output run dmesg as shown above. - -The function of the Out0 and Out1 I/O pins varies with output-type -parameter (see below). - -The hm2 pwmgen representation is similar to the software pwmgen -component. Each pwmgen instance has the following pins and parameters: - -=== Pins - -enable:: - (Bit, In) If true, the pwmgen will set its Not-Enable pin false and - output its pulses. If "enable" is false, pwmgen will set its Not-Enable - pin true and not output any signals. - -value:: - (Float, In) The current pwmgen command value, in arbitrary units. - -=== Parameters - -output-type:: - (s32, RW) This emulates the output_type load-time argument to the - software pwmgen component. This parameter may be changed at runtime, - but most of the time you probably want to set it at startup and then - leave it alone. Accepted values are 1 (PWM on Out0 and Direction on - Out1), 2 (Up on Out0 and Down on Out1), 3 (PDM mode, PDM on Out0 and - Dir on Out1), and 4 (Direction on Out0 and PWM on Out1, "for locked - antiphase"). - -scale:: - (Float, RW) Scaling factor to convert "value" from arbitrary units to - duty cycle: dc = value / scale. Duty cycle has an effective range of - -1.0 to +1.0 inclusive, anything outside that range gets clipped. - -pdm_frequency:: - (u32, RW) This specifies the PDM frequency, in Hz, of all the pwmgen - instances running in PDM mode (mode 3). This is the "pulse slot - frequency"; the frequency at which the pdm generator in the Anything I/O board - chooses whether to emit a pulse or a space. Each pulse (and space) in - the PDM pulse train has a duration of 1/pdm_frequency seconds. For - example, setting the pdm_frequency to 2e6 (2 MHz) and the duty cycle to - 50% results in a 1 MHz square wave, identical to a 1 MHz PWM signal - with 50% duty cycle. The effective range of this parameter is from - about 1525 Hz up to just under 100 MHz. Note that the max frequency is - determined by the ClockHigh frequency of the Anything I/O board; the - 5i20 and 7i43 both have a 100 MHz clock, resulting in a 100 Mhz max PDM - frequency. Other boards may have different clocks, resulting in - different max PDM frequencies. If the user attempts to set the - frequency too high, it will be clipped to the max supported frequency - of the board. - -pwm_frequency:: - (u32, RW) This specifies the PWM frequency, in Hz, of all the pwmgen - instances running in the PWM modes (modes 1 and 2). This is the - frequency of the variable-duty-cycle wave. Its effective range is from - 1 Hz up to 193 KHz. Note that the max frequency is determined by the - ClockHigh frequency of the Anything I/O board; the 5i20 and 7i43 both - have a 100 MHz clock, resulting in a 193 KHz max PWM frequency. Other - boards may have different clocks, resulting in different max PWM - frequencies. If the user attempts to set the frequency too high, it - will be clipped to the max supported frequency of the board. - Frequencies below about 5 Hz are not terribly accurate, but above 5 Hz - they're pretty close. - -=== Output Parameters - -The output pins of each PWMGen have two additional parameters. To find -which I/O pin belongs to which output run dmesg as described above. - -invert_output:: - (Bit, RW) This parameter only has an effect if the "is_output" - parameter is true. If this parameter is true, the output value of the - GPIO will be the inverse of the value on the "out" HAL pin. - -is_opendrain:: - (Bit, RW) If this parameter is false, the GPIO behaves as a normal - output pin: the I/O pin on the connector is driven to the value - specified by the "out" HAL pin (possibly inverted). If this parameter - is true, the GPIO behaves as an open-drain pin. Writing 0 to the "out" - HAL pin drives the I/O pin low, writing 1 to the "out" HAL pin puts the - I/O pin in a high-impedance state. In this high-impedance state the I/O - pin floats (weakly pulled high), and other devices can drive the value; - the resulting value on the I/O pin is available on the "in" and "in_not" - pins. Only full GPIO pins and I/O pins used as outputs by active module - instances have this parameter. - -== Encoder - -Encoders have names like -"hm2_..encoder..". "Instance" is a -two-digit number that corresponds to the HostMot2 encoder instance -number. There are "num_encoders" instances, starting with 00. - -Each encoder uses three or four input I/O pins, depending on how the -firmware was compiled. Three-pin encoders use A, B, and Index -(sometimes also known as Z). Four-pin encoders use A, B, Index, and -Index-mask. - -The hm2 encoder representation is similar to the one described by the -Canonical Device Interface (in the HAL General Reference document), and -to the software encoder component. Each encoder instance has the -following pins and parameters: - -=== Pins - -count:: - (s32, Out) Number of encoder counts since the previous reset. - -index-enable:: - (Bit, I/O) When this pin is set to True, the count (and therefore also - position) are reset to zero on the next Index (Phase-Z) pulse. At the - same time, index-enable is reset to zero to indicate that the pulse has - occurred. - -position:: - (Float, Out) Encoder position in position units (count / scale). - -rawcounts:: - (s32, Out) Total number of encoder counts since the start, not - adjusted for index or reset. - -reset:: - (Bit, In) When this pin is TRUE, the count and position pins are set - to 0. (The value of the velocity pin is not affected by this.) The - driver does not reset this pin to FALSE after resetting the count to 0, - that is the user's job. - -velocity:: - (Float, Out) Estimated encoder velocity in position units per second. - -=== Parameters - -counter-mode:: - (Bit, RW) Set to False (the default) for Quadrature. Set to True for - Up/Down or for single input on Phase A. Can be used for a frequency to - velocity converter with a single input on Phase A when set to true. - -filter:: - (Bit, RW) If set to True (the default), the quadrature counter needs - 15 clocks to register a change on any of the three input lines (any - pulse shorter than this is rejected as noise). If set to False, the - quadrature counter needs only 3 clocks to register a change. The - encoder sample clock runs at 33 MHz on the PCI Anything I/O cards and 50 MHz - on the 7i43. - -index-invert:: - (Bit, RW) If set to True, the rising edge of the Index input pin - triggers the Index event (if index-enable is True). If set to False, - the falling edge triggers. - -index-mask:: - (Bit, RW) If set to True, the Index input pin only has an effect if - the Index-Mask input pin is True (or False, depending on the - index-mask-invert pin below). - -index-mask-invert:: - (Bit, RW) If set to True, Index-Mask must be False for Index to have - an effect. If set to False, the Index-Mask pin must be True. - -scale:: - (Float, RW) Converts from "count" units to "position" units. A - quadrature encoder will normally have 4 counts per pulse so a 100 PPR - encoder would be 400 counts per revolution. In ".counter-mode" a 100 - PPR encoder would have 100 counts per revelution as it only uses the - rising edge of A and direction is B. - -vel-timeout:: - (Float, RW) When the encoder is moving slower than one pulse for each - time that the driver reads the count from the FPGA (in the hm2_read() - function), the velocity is harder to estimate. The driver can wait - several iterations for the next pulse to arrive, all the while - reporting the upper bound of the encoder velocity, which can be - accurately guessed. This parameter specifies how long to wait for the - next pulse, before reporting the encoder stopped. This parameter is in - seconds. - -== Examples - -Several example configurations are included with LinuxCNC for both stepper -and servo applications. The configurations are located in the hm2-servo -and hm2-stepper sections of the LinuxCNC Configuration Selector window. You -will need the same board installed for the configuration you pick to -load. The examples are a good place to start and will save you time. -Just pick the proper example from the LinuxCNC Configuration Selector and -save a copy to your computer so you can edit it. To see the exact pins -and parameters that your configuration gave you, open the Show HAL -Configuration window from the Machine menu, or do dmesg as outlined -above. - - diff --git a/docs/src/drivers/images/5i20-halpins.png b/docs/src/drivers/images/5i20-halpins.png deleted file mode 100644 index 0365d0225cb..00000000000 Binary files a/docs/src/drivers/images/5i20-halpins.png and /dev/null differ diff --git a/docs/src/drivers/images/GM_AXISpinout.png b/docs/src/drivers/images/GM_AXISpinout.png deleted file mode 100644 index 20c56fe8ecf..00000000000 Binary files a/docs/src/drivers/images/GM_AXISpinout.png and /dev/null differ diff --git a/docs/src/drivers/images/GM_AxisInterface.png b/docs/src/drivers/images/GM_AxisInterface.png deleted file mode 100644 index 73e992ef123..00000000000 Binary files a/docs/src/drivers/images/GM_AxisInterface.png and /dev/null differ diff --git a/docs/src/drivers/images/GM_ENDSWpinout.png b/docs/src/drivers/images/GM_ENDSWpinout.png deleted file mode 100644 index f94b379f36a..00000000000 Binary files a/docs/src/drivers/images/GM_ENDSWpinout.png and /dev/null differ diff --git a/docs/src/drivers/images/GM_IOpinout.png b/docs/src/drivers/images/GM_IOpinout.png deleted file mode 100644 index 6f2d0e192d3..00000000000 Binary files a/docs/src/drivers/images/GM_IOpinout.png and /dev/null differ diff --git a/docs/src/drivers/images/GM_PCIpinout.png b/docs/src/drivers/images/GM_PCIpinout.png deleted file mode 100644 index ebdf2fa2abd..00000000000 Binary files a/docs/src/drivers/images/GM_PCIpinout.png and /dev/null differ diff --git a/docs/src/drivers/images/GM_RS485topology.png b/docs/src/drivers/images/GM_RS485topology.png deleted file mode 100644 index 29b2491cfe5..00000000000 Binary files a/docs/src/drivers/images/GM_RS485topology.png and /dev/null differ diff --git a/docs/src/drivers/images/GM_RefSignals.png b/docs/src/drivers/images/GM_RefSignals.png deleted file mode 100644 index ca4787eac6e..00000000000 Binary files a/docs/src/drivers/images/GM_RefSignals.png and /dev/null differ diff --git a/docs/src/drivers/images/GMsystem.png b/docs/src/drivers/images/GMsystem.png deleted file mode 100644 index 6555589ea17..00000000000 Binary files a/docs/src/drivers/images/GMsystem.png and /dev/null differ diff --git a/docs/src/drivers/images/pico-ppmc-math.png b/docs/src/drivers/images/pico-ppmc-math.png deleted file mode 100644 index 0877b0f7434..00000000000 Binary files a/docs/src/drivers/images/pico-ppmc-math.png and /dev/null differ diff --git a/docs/src/drivers/images/pluto-pinout.dxf b/docs/src/drivers/images/pluto-pinout.dxf deleted file mode 100644 index 43d609f8520..00000000000 --- a/docs/src/drivers/images/pluto-pinout.dxf +++ /dev/null @@ -1,4636 +0,0 @@ -999 -dxflib 2.0.4.0 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMADEC - 70 -2 - 9 -$GRIDUNIT - 10 -5.0 - 20 -5.0 - 9 -$DIMASZ - 40 -2.5 - 9 -$DIMGAP - 40 -0.625 - 9 -$LUNITS - 70 -2 - 9 -$AUPREC - 70 -2 - 9 -$SPLINESEGS - 70 -8 - 9 -$INSUNITS - 70 -4 - 9 -$DIMEXO - 40 -0.625 - 9 -$DIMLUNIT - 70 -2 - 9 -$GRIDMODE - 70 -1 - 9 -$DIMTXT - 40 -2.5 - 9 -$LUPREC - 70 -4 - 9 -$DIMSTYLE - 2 -Standard - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$PLIMMAX - 10 -210.0 - 20 -297.0 - 9 -$DIMEXE - 40 -1.25 - 9 -$DIMAUNIT - 70 -0 - 9 -$AUNITS - 70 -0 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -5 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -inputs - 70 -0 - 62 -5 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -outputs - 70 -0 - 62 -3 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -gnd - 70 -0 - 62 -8 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -vcc - 70 -0 - 62 -8 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -2.5 - 42 -0.625 - 43 -3.75 - 44 -1.25 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -2.5 -141 -2.5 -143 -0.03937007874016 -147 -0.625 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -47 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -0.0 - 30 -0.0 - 11 -130.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -48 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -130.0 - 20 -0.0 - 30 -0.0 - 11 -130.0 - 21 -20.0 - 31 -0.0 - 0 -LINE - 5 -49 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -130.0 - 20 -20.0 - 30 -0.0 - 11 -0.0 - 21 -20.0 - 31 -0.0 - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -20.0 - 30 -0.0 - 11 -0.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -4B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -140.0 - 20 -0.0 - 30 -0.0 - 11 -160.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -4C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -0.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -140.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -4E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -140.0 - 20 -60.0 - 30 -0.0 - 11 -140.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -4F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -50 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -51 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -52 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -53 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -130.0 - 20 -0.0 - 30 -0.0 - 11 -140.0 - 21 -0.0 - 31 -0.0 - 0 -MTEXT - 5 -54 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -55 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -65.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QA0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -56 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -65.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QB0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -57 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -85.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QZ0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -58 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -95.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QB1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -59 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -95.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QA1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5A -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -105.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QA2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5B -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -105.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QZ1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5C -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -115.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QB2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5D -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -125.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QZ2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5E -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QB3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5F -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QA3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -60 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QZ3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -61 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -DN0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -62 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -UP0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -63 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -25.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -UP1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -64 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -25.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -DN1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -65 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -35.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -DN2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -66 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -45.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -UP2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -67 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -45.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -DN3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -68 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -55.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -UP3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -69 -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6A -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -35.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6B -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -55.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6C -100 -AcDbEntity -100 -AcDbMText - 8 -vcc - 62 -256 -370 --1 - 6 -ByLayer - 10 -75.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -VCC - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6D -100 -AcDbEntity -100 -AcDbMText - 8 -vcc - 62 -256 -370 --1 - 6 -ByLayer - 10 -75.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -VCC - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6E -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -85.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6F -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -115.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -70 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -1 -370 --1 - 6 -ByLayer - 10 -124.5 - 20 -24.4999999999998934 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -LED - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -71 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -130.0 - 20 -20.0 - 30 -0.0 - 11 -160.0 - 21 -20.0 - 31 -0.0 - 0 -LINE - 5 -72 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -120.0 - 20 -70.0 - 30 -0.0 - 11 -120.0 - 21 -30.0 - 31 -0.0 - 0 -LINE - 5 -73 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -20.0 - 20 -35.0 - 30 -0.0 - 11 -0.0 - 21 -35.0 - 31 -0.0 - 0 -LINE - 5 -74 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -85.0 - 30 -0.0 - 11 -20.0 - 21 -85.0 - 31 -0.0 - 0 -LINE - 5 -75 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -20.0 - 20 -85.0 - 30 -0.0 - 11 -20.0 - 21 -35.0 - 31 -0.0 - 0 -LINE - 5 -76 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -85.0 - 30 -0.0 - 11 -0.0 - 21 -65.0 - 31 -0.0 - 0 -LINE - 5 -77 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -55.0 - 30 -0.0 - 11 -0.0 - 21 -35.0 - 31 -0.0 - 0 -MTEXT - 5 -78 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -80.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -79 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -70.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7A -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -60.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7B -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -60.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN4 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7C -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -50.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN5 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7D -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -50.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN6 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7E -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -40.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN7 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7F -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -80.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -80 -100 -AcDbEntity -100 -AcDbMText - 8 -vcc - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -70.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -VCC - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -81 -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -40.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -82 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -30.0 - 20 -70.0 - 30 -0.0 - 11 -120.0 - 21 -70.0 - 31 -0.0 - 0 -LINE - 5 -83 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -30.0 - 20 -30.0 - 30 -0.0 - 11 -30.0 - 21 -70.0 - 31 -0.0 - 0 -LINE - 5 -84 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -120.0 - 20 -30.0 - 30 -0.0 - 11 -30.0 - 21 -30.0 - 31 -0.0 - 0 -MTEXT - 5 -85 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -55.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT8 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -86 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -55.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT9 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -87 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -45.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT6 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -88 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -45.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT7 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -89 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -35.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT4 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8A -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -35.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT5 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8B -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -25.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8C -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -25.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8D -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -15.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8E -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -125.0 - 20 -15.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8F -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -75.0 - 20 -50.0 - 30 -0.0 - 40 -5.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -ACEX\~FPGA - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -90 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -80.0 - 20 -85.0 - 30 -0.0 - 40 -5.0 - 41 -100.0 - 71 -2 - 72 -2 - 1 -^^\~Parallel\~Port\~Connector\~^^ - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -91 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -75.0 - 30 -0.0 - 40 -5.0 - 41 -100.0 - 71 -6 - 72 -2 - 1 -Power\PJack\~> - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -92 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -92 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -94 - 3 -HIDETEXT -350 -93 - 0 -DICTIONARYVAR - 5 -93 -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -94 -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/drivers/images/pluto-pinout.eps b/docs/src/drivers/images/pluto-pinout.eps deleted file mode 100644 index 551c5a2e7d7..00000000000 --- a/docs/src/drivers/images/pluto-pinout.eps +++ /dev/null @@ -1,9736 +0,0 @@ -%!PS-Adobe-2.0 EPSF-1.2 -%%Title: -%%Creator: Qt 3.3.4 -%%CreationDate: Mon Jan 29 15:22:04 2007 -%%For:jepler jepler -%%Pages: 1 -%%DocumentFonts: -%%BoundingBox: 0 0 454 242 -%%BeginPreview: 454 242 8 2904 -% 50444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 444444444444444444444444444444445d000000000000000000000000000000000000003f000000 -% 0000000000000000000000113f0000000000000000000000000000000000000020504444445d0000 -% 00000000000000000000000000000000000000000000000000000000000000000000000011110000 -% 000000220000000000000000000000000000000022000000000000000000000000000000003f4444 -% 44443f00000000000000000000000000000000000000000000000000000000002200000000000000 -% 00000000000000000000000000305044441100000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000011110000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 003f0000000000000000000000000000202000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 76444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444a800000000000000000000000000000000000088bb330000 -% 000000000000000000000088c9110000000000000000000000000000000000005076444444768899 -% 11000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000088000000000000000000000000000000008800000000000000000000000000000000984444 -% 444489aa770000000000000000000000000000000000000000000000000000008800000000000000 -% 000000000000000000000055aa905044441100000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88bb3300000000000000000000000000c0c411000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000668811bb2200 -% 00000000000000000000886611bb1100000000000000000000000000000000004444000000000033 -% 88000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000088000000000000000000000000000000008800000000000000000000000000000000880000 -% 00000000775500000000000000000000000000000000000000000000000000008800000000000000 -% 00000000000000000000229900000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000066 -% 8811bb220000000000000000000000993333aa000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000088000000000000000000000000000000004499000011aa11 -% 00000000000000000066770000339900000000000000000000000000000000004444000000000000 -% 88000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000088000000000000000000000000000000008800000000000000000000000000000000880000 -% 00000000009900000000000000000000000000000000000000000000000000008800000000000000 -% 00000000000000000000773300000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000004499 -% 000011aa110000000000000000007766000044990000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000008800000000000000000000000000000033aa0000000033aa -% 00000000000000005599000000005599000000000000000000000000000000004444000000000000 -% a8000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000088000000000000000000000000000000008800000000000000000000000000000000880000 -% 0000000000a800000000000000000000000000000000000000000000000000008800000000000000 -% 00000000000000000000a80000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000033aa00 -% 00000033aa0000000000000000668800000000667700000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000088000000000000000000000000000011bb11000000000044 -% 99000000000000339900000000000066770000000000000000000000000000004444000000000000 -% a80000000000888888a34400000000008f8888a84400000000002288889898110000000044440000 -% 00000088000000000000003388772200000000008800000000000000000000000000000000880000 -% 0000000000a8000000000011668855000000000000a88888a322000000004488c888886600000000 -% 000000000000000000008800000000000000000000000033887722000000000076888888a8660000 -% 00000076888888a87700000000000000228877220000000000001166a888660000000088a8a88888 -% 22000000000033887722000000000076888898660000000000000000000000000000000011bb1100 -% 00000000449900000000000033880000000000008866000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000011bb1100000000000000 -% 66880000000011bb1100000000000000886600000000000000000000000000004444000000000000 -% 88000000000000000000778800000000880000008866000000000000000033bb2200000044440000 -% 0000008800000000000099881133aa33000000008800000000000000000000000000000000880000 -% 0000000000990000000033bb55116699000000000088000022bb1100000000008800000000000000 -% 0000000000000000000088000000000000000000000077882222aa6600000000880000000044bb00 -% 000000880000000055bb00000000006699222299660000000000bb44000000000000000044440000 -% 000000000088882222aa6600000000880000005588000000000000000000000000000011bb110000 -% 000000000066880000000022bb110000000000000099330000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000066330000000000000000 -% 00660000000055110000000000000000008800000000000000000000000000004444000000000022 -% 99000000000000000000009911000000880000000066000000000000000000228800000044440000 -% 000000880000000000447700000000aa000000008800000000000000000000000000000000880000 -% 00000000776600000000aa1100000044880000000088000000443300000000008800000000000000 -% 000000000000000000008800000000000000000000338800000000aa220000008800000000006655 -% 00000088000000000066440000002299000000009933000000555500000000000000000044440000 -% 00000000338800000000aa1100000088000000006600000000000000000000000000006633000000 -% 00000000000066000000005511000000000000000000770000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000050764444445d88aa -% 1100000000000000000000695d00000088000000000000000000000000000000a800000044440000 -% 00000088000000000098000000000060500000008800000000000000000000000000000000984444 -% 44446caa880000000000980000000000a70000000088000000000000000000008800000000000000 -% 00000000000000000000880000000000000000000098220000000050500000008800000000005d5d -% 00000088000000000022a800000089330000000050500000005d5d00000000000000000044440000 -% 00000000982200000000605000000088000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000050764444445d2200 -% 00000000000000000000004444000000880000000000000000000000000000008800000044440000 -% 00000088000000000098000000000050500000008800000000000000000000000000000000984444 -% 44445d11000000000000980000000000980000000088000000000000000000008800000000000000 -% 00000000000000000000880000000000000000000098000000000050500000008800000000004444 -% 00000088000000000000880000009800000000005050000000444400000000000000000044440000 -% 00000000980000000000505000000088000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000000f0f001d1d0000001e0000000038000000000000000000000000112d2222110000 -% 1f0000000808001f22222d0800000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 00000000000055b6988888a844000000880000000000000000001199ae888888a800000044440000 -% 000000880000000000a88888888888a04e0000008800000000000000000000000000000000880000 -% 00000000000000000000880000000000880000000088000000000000000000008800000000000000 -% 00000000000000000000880000000000000000000088000000000044440000008800000000004444 -% 0000008800000000000088000000a88888888888a04e000000444400000000000000000044440000 -% 00000000880000000000444400000088000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000020 -% 504444445d3300000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c00529500000079000000889c0000000000000000000000194d342222110000 -% 700000002222004c22222d4d22000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 0000000000558800000000444400000088000000000000000000bb22000000008800000044440000 -% 00000088000000000088000000000000000000008800000000000000000000000000000000880000 -% 00000000000000000000980000000000980000000088000000000000000000008800000000000000 -% 00000000000000000000980000000000000000000098000000000050500000008800000000004444 -% 00000088000000000000880000008800000000000000000000444400000000000000000044440000 -% 00000000980000000000505000000088000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000050 -% 764444445d88aa110000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c003ca01e0000790000795b7900000000000000000000004c08000000000000 -% 5c330000222200440000000053000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 00000000008800000000004444000000880000000000000000336600000000008800000044440000 -% 00000088000000000098000000000000000000008800000000000000000000000000000000880000 -% 00000000000000000000980000000000980000000088000000000000000000008800000000000000 -% 00000000000000000000981100000000000000000098110000000050500000008800000000004444 -% 00000088000000000000880000009800000000000000000000505000000000000000000044440000 -% 00000000980000000000605000000088000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000033990000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c003c527900007900001e007900000000000000000000004c00000000000000 -% 4455080022220044000000004c000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 0000000000aa0000000000444400000088000000000000000033770000000000880000005d5d0000 -% 000000b000000000009811000000000000000000a800000000000000000000000000000000880000 -% 00000000000000000000aa1100000044770000000088000000000000000000008800000000000000 -% 00000000000000000000557700000000000000000033770000000099220000008800000000004444 -% 00000088000000000000880000008944000000000000000000506000000000000000000044440000 -% 00000000447700000000991100000088000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000880000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c003c3c793c00790000000079000000000000000000000044000011443b0000 -% 44224400222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 000000000033aa11000000444400000088000000000000000000aa44000000008800000022aa1100 -% 000000aa220000000033bb2200000000000000007755000000000000000000000000000000880000 -% 0000000000000000000033bb220055aa110000000088000000000000000000008800000000000000 -% 00000000000000000000009988110000000000000000998811229966000000008800000000004444 -% 000000880000000000008800000011aa330000000000000000119933000000000000000044440000 -% 00000000009988002299660000000088000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000980000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c003c3c0f970079000000007900000000000000000000004400000000440000 -% 44005508222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000002222000000000000 -% 00000000000022989088889822000000440000000000000000000077a38888887600000000448800 -% 00000022881100000000229898888888220000000077440000000000000000000000000000440000 -% 00000000000000000000001177886600000000000044000000000000000000004400000000000000 -% 00000000000000000000000044989888882200000000004488882200000000004400000000002222 -% 0000004400000000000044000000001177a888888822000000001177a08866000000000022220000 -% 00000000000044888822000000000044000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000a80000000000006688882200000000004400000000000000003322000000000044 -% 8888220000000000768888988911 -% 440000000000003c3c003c3c006a4b79000000007900000000000000000000004400000000440000 -% 4400114d222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000880000000011bb660022bb33000000008822000000000000008822000000008888 -% 0011996600000000880000004488 -% 440000000000003c3c003c3c0000a779000000007900000000000000000000005200000000440000 -% 4400004d2e2200440000000057000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 440000000000339900000000884400000011aa000000005555000000000000009900000000448800 -% 000000aa11000000880000000055 -% 440000000000003c3c003c3c00005ba4000000007900000000000000000000004422000000440000 -% 440000085a2200440000001944000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000050 -% 764444446988aa1100000000980000000000980000000011880000003f0000009900000000981100 -% 0000007050000000880000000000 -% 440000000000002d2d002d2d0000009b000000005b0000000000000000000000084d574444470000 -% 33000000492000474444574d08000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000050 -% 764444445d1100000000000098000000000098000000000099000055d70000446600000000980000 -% 0000005050000000880000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000000000000088000000000088000000000088110088804400882200000000a88888 -% 888888a04e000000880000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000000000000098000000000098000000000055551199119900990000000000880000 -% 0000000000000000880000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000000000000098000000000098000000000011887744009911990000000000980000 -% 0000000000000000880000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000000000000077440000001199000000000000aaaa0000558f770000000000882200 -% 0000000000000000880000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000000000000011aa661144bb33000000000000ae80000000d833000000000022bb44 -% 0000000000000000880000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000022 -% 220000000000000000000000000055886611000000000000005c2000000069000000000000001189 -% 9888888822000000440000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000440000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000880000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000880000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000880000000000000000000000000000 -% 0000000000000055000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000880000000000000000000000000000 -% 0000000000000099660000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 880000000044888898a77700000000003399a3888800000000880000000044990000000000000000 -% 0000000000000000669900000000 -% 4400000000003c3c005d8a0000007900001e97978800000000000000000000000844000000004d00 -% 0008555744220000335b4c4411000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000885500000000aa1100000000000000880000118888110000000000000000 -% 0000000000000000006699110000 -% 4400000000003c3c003cac0f0000790000970f003c8a000000000000000000000055000000004d00 -% 00441900000000005500000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 8800000000000000000000a80000005d7a000000000000000088006cbb3300000000000000000000 -% 0000000000000000000033bb1100 -% 4400000000003c3c003c68790000790000000000457f0000000000000000000000441100002a3300 -% 00580000000000005400000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 880000000000000000000088000000444400000000000000009899c0440000000000000000000000 -% 000000000000000000000022aa33 -% 4400000000003c3c003c3c791e00790000000000970f0000000000000000000000193b00004d0800 -% 00440000000000004400000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000008800000044440000000000000000b82211bb0000000000000000000000 -% 00000000000000000000000050b8 -% 4400000000003c3c003c3c1e880079000000005b5b000000000000000000000000005500004d0000 -% 00440000000000004400000000000000880000000000000000000000000000000000000000000000 -% 000000003f9888888888884400008888888888884400006688888888886600006688888888888800 -% 00448888888888882200228888888888882200008888888888884400008888888888886600006688 -% 88888888880000448888888888880000228888888888882200228888888888882200008888888888 -% 88440000888888888888660000668888888888880000448888888888880000228888888888882200 -% 22888888888888440000888888888888660000668888888888660000448888888888880000448888 -% 88888888220022888888888888440000888888888888660000668888888888660000448888888888 -% 880000448888888888880000228888888888883f2200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 880000000066aaa3888888a800000044440000000000000000880000448800000000000000000000 -% 0000000000000000000000669900 -% 4400000000003c3c003c3c00792d790000000f97000000000000000000000000000044112a330000 -% 00440000000000004400000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% a800000011aa00000000008800000044440000000000000000880000009922000000000000000000 -% 0000000000000000000088770000 -% 4400000000003c3c003c3c000f9779000000793c0000000000000000000000000000193b4d080000 -% 004c0000000000004c00000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000022 -% 8800000044770000000000880000005c6900000000000000008800000022aa000000000000000000 -% 0000000000000000009966000000 -% 4400000000003c3c003c3c0000799500001e88000000000000000000000000000000005855000000 -% 004c0000000000005300000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000099 -% 2200000022aa00000000008800000000aa0000000000000000880000000077550000000000000000 -% 0000000000000011bb3300000000 -% 4400000000003c3c003c3c000000c00000ad8779793c000000000000000000000000005c36000000 -% 00195e52442200003b4c4c4411000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000004488a89944 -% 00000000006688a3888888a80000000066aaa3888800000000880000000000aa0000000000000000 -% 0000000000000099330000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000222200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000111100000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000001e1e0045450000003c00005b79953c000000000000000000000000001e1e00741e00 -% 00003c000000004b0000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000003c3c0047a0000000790000000000793c0000000000000000000000003c3c00878800 -% 0000790000004b5b0000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000111100000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000003c3c003c7f5b00007900000000000f790000000000000000000000003c3c0079792d -% 000079000000790f0000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000003c3c003c3ca700007900000000006a4b0000000000000000000000003c3c00790f97 -% 00007900000097000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000003c3c003c3c3c7900790000005bc4b2000000000000000000000000003c3c00790079 -% 3c007900001e79000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000003f444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 444444444444444444444444449b -% 0000000000003c3c003c3c00970f7900000000006a5b0000000000000000000000003c3c00790000 -% a7007900006a2d005b00000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000098444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444ca -% 0000000000003c3c003c3c002d7979000000000000910000000000000000000000003c3c00790000 -% 5b5b7900008800007900000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 0000000000003c3c003c3c0000888700000000001e950000000000000000000000003c3c00790000 -% 0088800000ab7979b2791e0000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 0000000000003c3c003c3c00001eb9000000000f883c0000000000000000000000003c3c00790000 -% 003cb200000000007900000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 0000000000001e1e001e1e0000006800005b79951e000000000000000000000000001e1e003c0000 -% 00007300000000003c00000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000222200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000006 -% 3e4d3706002900000029000d37374a37370000143e37000000000000374a4e140000290000141400 -% 29374a37371b0006373714000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000008800003e -% 1400143e00370000003700000000370000000049002231000000001b3000004500003700001b1b00 -% 000037000000003e140053000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000044 -% 000000440037000000370000000037000000004d000d4400000000252500004400003700001b1b00 -% 0000370000000049000044000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000037 -% 000000370037000000370000000037000000003154590d000000001b1b00003700003700001b1b00 -% 0000370000000043060042000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000333300000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000037 -% 000000370037000000370000000037000000004c062937000000001b1b00003700003700001b1b00 -% 0000370000000014374453000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000008800003d -% 0000003d0044000000440000000037000000004800004b00000000202000003d0000440000252500 -% 0000370000000000000d3e000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000049 -% 0600064300293000003e0000000037000000004300064300000000202600003d0000450000371400 -% 000037000000000000450d000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000333300000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000014 -% 454d45140000373e451b000000003700000000304c3e1400000000063e4a44290000294545370000 -% 00003700000000004c1400000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000a87a00000000000000000077aaa388888800000000b8888888888888000000009922000000 -% 00000000aa000000000000000000000000000000c888888888886600000000c88888889898993300 -% 0000000033aa98988888888800000000000000006cb0000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000aa9900000000000000006666000000000000000000880000000000000000000022aa000000 -% 0000007755000000000000000000000000000000880000000000000000000088000000000011aa00 -% 00000011bb11000000000000000000000000000099b0000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000000f0f001d1d0000001e0000453c3c3c1e000000000000000000000000001e00003800 -% 00000f0f000000001e00000000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00003377991100000000000000aa0000000000000000000088000000000000000000000077770000 -% 000022aa000000000000000000000000000000008800000000000000000000880000000000005555 -% 00000055550000000000000000000000000000009977330000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000333300000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c0052950000007900008e3c3c3c1e00000000000000000000000000790000c700 -% 00003c3c000000796a00000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00008822556600000000000000a80000000000000000000088000000000000000000000000aa2200 -% 0000aa220000000000000000000000000000000088000000000000000000008800000000000011a8 -% 000000a8000000000000000000000000000000556622880000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003ca01e00007900007900000000000000000000000000000000007900009c6a -% 00003c3c00005b6a0000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000bb0000990000000000000088000000000000000000008800000000000000000000000022aa00 -% 00777700000000000000000000000000000000008800000000000000000000880000000000000098 -% 00000088000000000000000000000000000000991100aa0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c528800007900007900000000000000000000000000000000007900007997 -% 0f003c3c000f88000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00338800009911000000000000880000000000000000000088000000000000000000000000007766 -% 22aa0000000000000000000000000000000000008800000000000000000000880000000000004477 -% 00000088000000000000000000000000000000990000775500000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000222200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c793c00790000a479951e0000000000000000000000000000790000793c -% 79003c3c00609c953c00000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 007733000055660000000000008800000000000000000000b88888888822000000000000000000aa -% b022000000000000000000000000000000000000c888888888886600000000880000000000009911 -% 0000008800000000008888b800000000000055660000119900000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c0f970079000000001e972d000000000000000000000000007900007900 -% 791e3c3c00870f006a79000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00aa000000009900000000000088000000000000000000008800000000000000000000000000007a -% c9000000000000000000000000000000000000008800000000000000000000a84444445060996600 -% 00000088000000000000008800000000000099110000009900000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c006a4b7900000000000f95000000000000000000000000007900007900 -% 1e883c3c008700000095000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 228800000000991100000000008800000000000000000000880000000000000000000000000011aa -% 77550000000000000000000000000000000000008800000000000000000000a84444445050110000 -% 00000088000000000000008800000000000099000000006655000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c0000a77900000000000095000000000000000000000000007900007900 -% 00795d3c009500000095000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 77330000000055660000000000880000000000000000000088000000000000000000000000009922 -% 00aa1100000000000000000000000000000000008800000000000000000000880000000000000000 -% 00000088000000000000008800000000005566000000001199000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c00005ba400000000005b4b000000000000000000000000007900007900 -% 000fab3c004b6a000f79000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% cc888888888888cc0000000000880000000000000000000088000000000000000000000000557700 -% 00229900000000000000000000000000000000008800000000000000000000880000000000000000 -% 0000008800000000000000880000000000b4908888888888c2000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000002d2d002d2d000000a400005b79957900000000000000000000000000005b00005b00 -% 0000824500007979881e000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000022 -% 88000000000000992200000000a80000000000000000000088000000000000000000000011aa0000 -% 00007755000000000000000000000000000000008800000000000000000000880000000000000000 -% 000000a8220000000000008800000000009900000000000066550000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000077 -% 33000000000000337700000000991100000000000000000088000000000000000000000099220000 -% 000000aa110000000000000000000000000000008800000000000000000000880000000000000000 -% 00000033880000000000008800000000556600000000000011990000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000000000aa -% 0000000000000000aa0000000022bb22000000000000000088000000000000000000005577000000 -% 00000022990000000000000000000000000000008800000000000000000000880000000000000000 -% 00000000887700000000008800000000991100000000000000990000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000066 -% 00000000000000005500000000002288a3888888000000008f888888888888000000005500000000 -% 00000000550000000000000000000000000000004400000000000000000000440000000000000000 -% 0000000000669898888888a800000000550000000000000000442200000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000222200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 14291b00000d0000000d00061b1b251b1b00000000140000000000000d24250600000d0000060600 -% 141b251b1b0d00141b1b25000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000037 -% 3029303700370000003700061b1b441b1b000000372200000000000d3e242b4c00003700001b1b00 -% 141b441b1b0d00141b1b49000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000042 -% 000000460037000000370000000037000000003029000000000000242400004200003700001b1b00 -% 000037000000000000063e000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000037 -% 000000370037000000370000000037000000004e250d00000000001b1b00003700003700001b1b00 -% 000037000000000000343a000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000111100000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000037 -% 000000370037000000370000000037000000004925451b000000001b1b00003700003700001b1b00 -% 0000370000000000004420000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000037 -% 00000037003d0000003d0000000037000000003d000044000000001b1b00003700003d0000202000 -% 0000370000000000003e00000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000111100000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000008800004a -% 0000004600371b0000430000000037000000004600004600000000242400004200003d0000262600 -% 00003700000000000d3700000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000030 -% 3729372900063e22303700000000370000000045223e22000000000d4c24314c00003e30224c0000 -% 0000370000000000292200000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 142914000000061b1400000000000d00000000001b140000000000000d242500000000141b060000 -% 00000d00000000000d0000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000222200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000002d2d00516a0000005b00005b7979877f00000000000000000000084d524444220000 -% 5c000000191900474444524d08000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003cac0f00007900000000005b3c000000000000000000004411000000000000 -% 64190000222200440000001944000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c687900007900000000008800000000000000000000005400000000000000 -% 48550000222200440000000058000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c970f0079000000003ca01e000000000000000000004400000822110000 -% 44442200222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c1e88007900000000688a1e0000000000000000000044000008224c0000 -% 44005500222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c00881e7900000000791e00000000000000000000004400000000440000 -% 44003333222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c001e887900000000970000000000000000000000004c00000000440000 -% 4400005528220044000000004c000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c000079950000000f790000000000000000000000004c08000000440000 -% 44000022542200440000000853000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c00000fc00000005b4b00000000000000000000000019553b22224c0000 -% 440000006028004c2222345e19000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000222200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000000f0f000f0f0000002b0000000f0000000000000000000000000000001f22221f0000 -% 110000001008001f22222d0000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000333300000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000008800003e -% 44464506003700000037001b374444372900000637000000000000064c42493700003700001b1b00 -% 29375137371b004a373737000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000008800193d -% 00002b250037000000370000001b1b000000002229000000000000252b00004400003700001b1b00 -% 0000370000000037000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000333300000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088001b1b -% 00001b1b0037000000370000001b1b000000003e060000000000001b1b00003700003700001b1b00 -% 0000370000000037000000000088 -% a8888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888c80000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088001b1b -% 00001b1b0037000000370000001b1b0000000045000000000000001b1b00003700003700001b1b00 -% 0000370000000042374422000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088001b1b -% 00001b1b0037000000370000001b1b0000001437003700000000001b1b00003700003700001b1b00 -% 0000370000000000000049000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000333300000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000008800252a -% 000025250044000000440000001b1b0000003f413751370000000025250000440000440000252b00 -% 0000370000000000000048000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000645 -% 060037140037220029290000001b1b000000000000370000000000143000004c0000450d063e0d00 -% 000037000000000000064c000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000014 -% 444622000000303729000000000d0d0000000000001b000000000000294244140000063737140000 -% 00001b0000000029374414000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000222200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000445044444444444422000044444444444433000033444444444433000022444444444444 -% 00002244444444444400001144444444444411000044444444444422000044444444444433000033 -% 44444444443300002244444444444400002244444444444411001144444444444422000044444444 -% 44442200003344444444443300003344444444444400002244444444444411001144444444444411 -% 00004444444444442200004444444444443300003344444444444400002244444444444400001144 -% 44444444441100004444444444442200004444444444442200003344444444443300003344444444 -% 44440000224444444444441100114444444444765000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000112044444444444422000044444444444433000033444444444433000022444444444444 -% 00002244444444444400001144444444444411000044444444444422000044444444444433000033 -% 44444444443300002244444444444400002244444444444411001144444444444422000044444444 -% 44442200003344444444443300003344444444444400002244444444444411001144444444444411 -% 00004444444444442200004444444444443300003344444444444400002244444444444400001144 -% 44444444441100004444444444442200004444444444442200003344444444443300003344444444 -% 44440000224444444444441100114444444444502000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000006 -% 37493e06002900000029000d37374a37370000143e37060000000000304a44140000290000141400 -% 29374a37371b0029374914000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f0000000000815f5f5f2f002f755f6a -% 6b470000000000000000000000000000000000000000000000000000000000000000000088000037 -% 1400143e00370000003700000000370000000045061447000000001b3000064500003700001b1b00 -% 000037000000000000063e000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f00000000002f2f0000 -% 00770000000000000000000000000000000000000000000000000000000000000000000088000041 -% 000000440037000000370000000037000000000000144a00000000252500004400003700001b1b00 -% 0000370000000000000045000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f00000000002f2f0000 -% 00750000000000000000000000000000000000000000000000000000000000000000000088000037 -% 0000003700370000003700000000370000000000004506000000001b1b00003700003700001b1b00 -% 0000370000000000375937000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f0000000000702f2f1700002f2f0000 -% 005f0000000000000000000000000000000000000000000000000000000000000000000088000037 -% 0000003700370000003700000000370000000000223000000000001b1b00003700003700001b1b00 -% 0000370000000000000d4c000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f0000000000702f2f1700002f2f0000 -% 005f000000000000000000000000000000000000000000000000000000000000000000008800003a -% 0000003700440000004400000000370000000006450000000000001b1b0000370000440000252500 -% 0000370000000000000044000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f00000000002f2f0000 -% 005f000000000000000000000000000000000000000000000000000000000000000000008800003d -% 06000043002930000045000000003700000000371b000000000000202600003d0000450000301b00 -% 0000370000000000000049000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f00000000002f2f0000 -% 006a0000000000000000000000000000000000000000000000000000000000000000000088000014 -% 4c4845140000373e451b000000003700000000543737290000000006454649300000223e3e370000 -% 0000370000000029374e29000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f00000000002f2f0000 -% 00750000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000040755f5f5f0000815f5f5f2f002f755f6a -% 6b470000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% a8888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 8888888888888888d5888888888866000044888888888888000044888888888888000022c8888888 -% 88882200008888888888884400008888888888886600006688888888886600004488888888888800 -% 00228888888888882200228888b8 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c005d95000000790000009c798800000000000000000000001b1b000000370000 -% 44373742450d00000d53491400000000000000000000370000001b1b00254437444c1b000000294a -% 000000000000000000334d54444411005c330000004400005c444454440000000000000000254437 -% 3d492900005114000000370000373743370000000000000000003700000000370025443744452900 -% 00293742450600000000000000004b88959479000000957979957900000000b6a15d000000000000 -% 0000004d000000004d0000115e5244330000335b4c441100000000000000008887a0973c0000005b -% 797979a47f000045a1b71e0000000000000000005b8895a079000000957987878800000000889c00 -% 000000000000005ba1939479000000000000bf00000000005b978879000000000000000088879597 -% 5b000000a47987975b0000007988885b000000000000000d24250000000d0000060600141b251b1b -% 0600000d140000008800000000000000000000000000000000000000000000000000000088000000 -% 00798793a15b000000a47995975b0000007987946a00000000000000000d29200000060600000d00 -% 001b1b251b1b0600001306000088 -% 4400000000003c3c003cac0f00007900005b5b00970f000000000000000000001b1b000000370000 -% 370000000d3700003e0d063e00000000000000000000370000001b1b001b1b0000003e0000293e37 -% 000000000000000000550000000000004455080000440000440000003322000000000000001b1b00 -% 00003e00003a4500000037000000000037140000000000000000370000000037001b1b0000003e00 -% 0000000014370000000000000000880000006a3c0000790000006a2d00005b4b0097000000000000 -% 0000005e000000004d0000441100000000005500000000000000000000002d790000009700000000 -% 000000a7000000790f0f8800000000000000000097000000792d000079000000793c0000795b7900 -% 0000000000000097000000791e000000002d9b4b0000000079000087380000000000002d79000000 -% 880000007900000097000000790000950f00000000000d45242b4c00003700001b1b00141b441b1b -% 06000d4a422200008800000000000000000000000000000000000000000000000000000088000000 -% 2d790000009700000079000000a70000000000007900000000000000223e292d37001b1b00003700 -% 001b1b441b1b060014531b000088 -% 4400000000003c3c003c52880000790000910f005145000000000000000000001b1b000000370000 -% 37000000004200004a00004700000000000000000000370000001b1b001b1b000000420000140037 -% 0000000000000000004c0000000000004422440000440000440000002828000000000000001b1b00 -% 00003d000037371b0000370000000000291b0000000000000000370000000037001b1b0000004600 -% 00000000063700000000000000008700000047470000790000004b3c00009b00006a450000000000 -% 0000003b1900002a3300004c0000000000004c000000000000000000000047470000008700000000 -% 00006a4b0000009b0000a40000000000000000008700000047470000790000005b3c00001e007900 -% 0000000000000087000000474700000000792b8800000000000000a41e0000000000004747000000 -% 870000007900000088000000000000a40f0000000000420d00004200003700001b1b000000370000 -% 0000370d004300008800000000000000000000000000000000000000000000000000000088000000 -% 474700000087000000790000007900000000000079000000000000004600000046001b1b00003700 -% 00000037000000003e201b000088 -% 4400000000003c3c003c3c881e007900007900001e6a000000000000000000001b1b000000370000 -% 370000000d3d00003700002914000000000000000000370000001b1b001b1b000000490000000037 -% 000000000000000000440000112810004400550800440000440000002222000000000000001b1b00 -% 00003700003700450000370000001b374c000000000000000000370000000037001b1b0000004900 -% 000014314e140000000000000000790000003c3c0000873c3c83a70000007900003c5b0000000000 -% 000000114400004d080000440000000000004400000000000000000000003c3c0000007900000000 -% 000f970000003c5b000079000000000000000000790000003c3c0000873c4783a700000000007900 -% 00000000000000790000003c3c000000009700880000000000002d79000000000000003c3c000000 -% 790000008e3c51897900000000003c79000000000000370000003700003700001b1b000000370000 -% 00004300004300008800000000000000000000000000000000000000000000000000000088000000 -% 3c3c000000790000008e3c5c89880000000f518679000000000000003700000037001b1b00003700 -% 0000003700000000001b1b000088 -% 4400000000003c3c003c3c0f88007900009100000091000000000000000000001b1b000000370000 -% 3d1b1b2a450d00004200002424000000000000000000370000001b1b00202f1b253e290000000037 -% 000000000000000000440000113b28004400114400440000440000002222000000000000001b1b00 -% 00003700003700292900370000001b3d4c00000000000000000037000000003700202f1b25373700 -% 0000143150140000000000000000790000003c3c0000873c3c8cab2d00009b000000910000000000 -% 000000005500004d000000440000000000004400000000000000000000003c3c0000007900000000 -% 00793c0000005151000091000000000000000000790000003c3c0000873c4782a72d000000007900 -% 00000000000000790000003c3c0000002d6a005b4b0000000000970f000000000000003c3c000000 -% 790000008e3c5190a70f00000000970f000000000000370000003700003700001b1b000000370000 -% 00004200004200008800000000000000000000000000000000000000000000000000000088000000 -% 3c3c000000790000008e3c5c7da70f00000f518579000000000000003700000037001b1b00003700 -% 0000003700000000001b1b000088 -% 4400000000003c3c003c3c00793c7900007900000f79000000000000000000001b1b000000370000 -% 3d1b1b240d0000003700002914000000000000000000370000001b1b00202f1b2514000000000037 -% 000000000000000000440000002222004400004d11440000440000002222000000000000001b1b00 -% 000037000037000045063700000000002d19000000000000000037000000003700202f1b25140000 -% 00000000063d0000000000000000790000003c3c0000790000000f8800007900003c5b0000000000 -% 000000003b192a33000000440000000000004400000000000000000000003c3c0000007900000000 -% 1e88000000003c5b000079000000000000000000790000003c3c0000790000000f79000000007900 -% 00000000000000790000003c3c000000791e000f88000000004b6a00000000000000003c3c000000 -% 79000000790000003c6a0000006a4b00000000000000370000003700003d00002020000000370000 -% 00004100003d00008800000000000000000000000000000000000000000000000000000088000000 -% 3c3c00000079000000790000003c5b00000000008700000000000000370000003700202000003d00 -% 0000003700000000001b1b000088 -% 4400000000003c3c003c3c000f977900009c0f005f5d00000000000000000000252b000000440000 -% 37000000000000004700004400000000000000000000440000002525001b1b000000000000000037 -% 00000000000000000054000000222200440000114d440000440000002e2e000000000000001b1b00 -% 00004400003700001b3737000000000029290000000000000000440000000d44001b1b0000000000 -% 00000000004800000000000000009c000f4b525200007900000000a70000a000006d450000000000 -% 0000000011444d08000000580000000000005400000000000000000000005252003c1e9500000000 -% 881e0000000000950000a00000000000000000009500004b525200007900000000a7000000007900 -% 0000000000000095001e3c5d52000000b6797979ad00000000a70000000000000000005252003c2d -% 950000007900000000a700000f970000000000000000420d00004200003d00002620000000370000 -% 00003d0d003d00008800000000000000000000000000000000000000000000000000000088000000 -% 5252001e2d950000007900000000a70000000000a000000000000000420000004600202d00003d00 -% 0000003700000000001b1b000088 -% 4400000000003c3c003c3c00005ba400004b5b00880f000000000000000000000645000006450000 -% 37000000000000003e0d003e000000000000000000003e060000450d001b1b000000000000000037 -% 000000000000000000550000002222004400000044540000440000003322000000000000001b1b00 -% 000045000037000000453a0000000000371400000000000000003e0d00003714001b1b0000000000 -% 00000000143000000000000000009700006ab9390000790000002d8800006a3c0097000000000000 -% 0000000000585500000000441900000000005500000000000000000000002d79000f88bb0000002d -% 79000000000000880f1e790000000000000000009700006ab9390000790000002d79000000007900 -% 0000000000000097000079b91d00002d6a0000005b4b0000793c0000000000000000001e79000f97 -% c0000000790000006a4b0000881e00000000000000000d372a2b4500003e30224c06000000370000 -% 00000d474a1b00008800000000000000000000000000000000000000000000000000000088000000 -% 2d79000f79c0000000790000006a4b000000000088000000000000001b45292d3700004c29293700 -% 0000003700000000001b1b000088 -% 4400000000003c3c003c3c000000c00000009c887e0000000000000000000000001445374c140000 -% 37000000000000000d4e4c1f000000000000000000000645374c2900001b1b000000000000000037 -% 000000000000000000334d5444542e0044000000086800005c444454440000000000000000254437 -% 3d4329000037000000144e000037374337000000000000000000063e373e3000001b1b0000000000 -% 00293742450600000000000000004ba7959487971e0095797995970f000000b6a16a000000000000 -% 00000000004d3b00000000085e574433000033534c441100000000000000007987a09788880000ad -% 807979793c000045afb71e0000000000000000005b8895a08ea71e0095797995880f000000007900 -% 000000000000005ba1939482971e00791e0000001e790000c07979791e0000000000000079949597 -% 73a70000a479879479000045b2797979000000000000000d242506000000141b00000000000d0000 -% 0000000d140000008800000000000000000000000000000000000000000000000000000088000000 -% 00799493a188a70000a4798787790000007987a15b0000000000000000142920000000001b140000 -% 0000000d00000000000606000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 440000003a373746300000004a00000014140000193e3100000000000000000000445c4444220000 -% 5c000000191900474444573b080000000000000000004237374e1b00002430000000290000001442 -% 0000000000000000003a37374a300600004a00000014140000223e3e060000000000000000141400 -% 00002900003a37374a37000000143e451b0000000000000000002a5444444400005c000000003300 -% 2750444c531100000000000000004bac9c790f00000000002b88000000000038886d000000000000 -% 00000833000000003b000000445c44330000114c4c44110000000000000000225b4c444400005708 -% 00000033001950444c55190000000000000000004bac9c6a0f0000000000516a00000000000fa400 -% 00000000000000000079a4a4790000000079797979b20000000fa400000000000000000019534844 -% 4400005c0000000033002750444c531900000000000000000f889cac3c0000003c797979799b0000 -% 0f79975b000000008800000000000000000000000000000000000000000000000000000088000000 -% 0079a49b5b000000000000882b000000005b79a46a00000000000000000f889cac4b0000001e7979 -% 79799b00005b79956a0000000088 -% 44000000370000001b370000511400001b1b0000470c3d1b0000000000000000442a000000000000 -% 68110000222200440000002a44000000000000000000370000003e0d001b53000000370000144c3a -% 0000000000000000003700000022370000511b00001b1b00143e000d4300000000000000001b1b00 -% 000037000037000000292900004c0606470c0000000000000011550000000000005c330000004400 -% 222200000855000000000000003c7900002d79000000000079a100000000009c1d873c0000000000 -% 00000055000000005500003b2a00000000005e080000000000000000000011550000000000005444 -% 000000440022220000085e00000000000000004b6a00002d79000000000079940000000000888e00 -% 00000000000000006a5b00006a5b0000000000001e8800000fa78e0000000000000000084d000000 -% 000000543b000000440022220000085e0000000000000000971e0000881e0000000000004b6a0000 -% 882d0080450000008800000000000000000000000000000000000000000000000000000088000000 -% 792d00006a4b0000000000a179000000000000005b6a00000000000000972d0000971e0000000000 -% 005b5b00000000006a5b00000088 -% 4400000037000000004600003a4500001b1b00133300063d00000000000000005200000000000000 -% 4c4d0000222200440000000057000000000000000000370000002424001b34290000370000370637 -% 00000000000000000037000000004200003a4500001b1b00060600004b00000000000000001b1b00 -% 000037000037000000004200000d00003d19000000000000002d2d00000000000044550800004400 -% 22220000005200000000000000515100000091000000000097791e0000002b72000f870000000000 -% 00000044110000193b00005c0000000000005200000000000000000000002d340000000000004455 -% 08000044002222000000520000000000000000910f00000091000000000097881e0000004b2d7900 -% 00000000000000009b0000000091000000000000881e00005b2d7900000000000000002d2d000000 -% 000000445508000044002222000000342d00000000000000910000005151000000000000a7000000 -% 1e00004f8d0000008800000000000000000000000000000000000000000000000000000088000000 -% 9b0000000091000000001e7997000000000000000079000000000000009b00000051510000000000 -% 00a7000000000000007900000088 -% 44000000370000000037000037371b001b1b00202000003d00000000000000004400000000000000 -% 44442200222200440000000044000000000000000000370000001b1b001b1b450600370000000037 -% 0000000000000000003700000000370000372922001b1b000000001b3700000000000000001b1b00 -% 00003700003700000000420000000006450000000000000000222200000000000044224400004400 -% 222200000044000000000000003c3c00000079000000002d6a2d7900000056470000870000000000 -% 000000193b0000441100004400000000000044000000000000000000000022220000000000004419 -% 44000044002222000000440000000000000000790000000079000000002d6a3c6a00000000007900 -% 000000000000000079000000007900000000003c7900000000007900000000000000002222000000 -% 000000441944000044002222000000222200000000000000790000003c3c0000000000793c000000 -% 000000970f0000008800000000000000000000000000000000000000000000000000000088000000 -% 790000000079000000006a2d6a2d0000000000005b5b00000000000000790000003c3c0000000000 -% 793c000000000000793c00000088 -% 44000000370000000037000037004c001b1b00440d00004400000000000000004400001144540000 -% 44085500222200440000000044000000000000000000370000001b1b001b1b1b3700370000000037 -% 000000000000000000370000000037000037004c001b1b000000004c0000000000000000001b1b00 -% 00003700003700000037290000000037140000000000000000222200004464000044004d11004400 -% 222200000044000000000000003c3c0000007900000000791e0097000000950f0000950000000000 -% 00000000550000550000004400000000000044000000000000000000000022220000446400004400 -% 4d11004400222200000044000000000000000079000000007900000000791e009700000000007900 -% 00000000000000007900000000790000000000970f00000000007900000000000000002222000044 -% 64000044004d110044002222000000222200000000000000790000003c3c000000000f9700000000 -% 00004b6a000000008800000000000000000000000000000000000000000000000000000088000000 -% 7900000000790000000097001e79000000005bbdad0f00000000000000790000003c3c000000000f -% 9700000000005bbf9c0000000088 -% 440000003700000000370000370022301b1b00301400003700000000000000004400000000440000 -% 44003b22222200440000000044000000000000000000370000001b1b001b1b003e0d370000000037 -% 0000000000000000003700000000370000370022301b1b000000371b0000000000000000001b1b00 -% 00003700004437374229000000000d3e00000000000000000022220000004400004400114d004400 -% 222200000044000000000000003c3c00000079000000009700006a2d0000791e0000790000000000 -% 000000004411193b0000004400000000000044000000000000000000000022220000004400004400 -% 1144004400222200000044000000000000000079000000007900000000970000791e000000007900 -% 0000000000000000790000000079000000003c6a0000000000007900000000000000002222000000 -% 440000440008550044002222000000222200000000000000790000003c3c00000000792d00000000 -% 000fa700000000008800000000000000000000000000000000000000000000000000000088000000 -% 7900000000790000001e790000970000000000003c6a00000000000000790000003c3c0000000079 -% 3c000000000000005b5b00000088 -% 44000000370000000037000037000045201b00252500004700000000000000004400000000440000 -% 4400005e222200440000000044000000000000000000370000001b1b001b1b000d3e370000000037 -% 000000000000000000370000000037000037000045201b0000064500000000000000000000252500 -% 00004400003700000000000000004506000000000000000000222200000044000044000044224400 -% 222200000044000000000000003c3c000000790000002dab797987950000525200009c0000000000 -% 00000000193b44110000004400000000000044000000000000000000000022220000004400004400 -% 0044224400222200000044000000000000000079000000007900000045ab79798e8a000000007900 -% 000000000000000079000000007900000000a7000000000000007900000000000000002222000000 -% 440000440000442244002222000000222200000000000000790000003c3c0000001e880000000000 -% 00793c00000000008800000000000000000000000000000000000000000000000000000088000000 -% 7900000000790000008a8e7979ab450000000000009500000000000000790000003c3c0000001e88 -% 0000000000000000009500000088 -% 4400000037000000004e00003700001b441b000d3e000d3700000000000000005408000000440000 -% 44000033472200440000000054000000000000000000370000002525001b1b0000373d0000000037 -% 00000000000000000037000000004400003700001b441b00003e0d000000000000000000000d3e00 -% 000037000037000000000000001b37000000000000000000002e3600000044000044000008554400 -% 222200000054000000000000005260005b799a000000791e0000009700001e88002d790000000000 -% 0000000000555500000000540000000000005a00000000000000000000002e360000004400004400 -% 00085544002222000000540000000000000000951e004b799a000000791e00000097000000007900 -% 0000000000000000a000007980950000005b5b000000000000007900000000000000002e3d000000 -% 4400004400000855440022220000004c1800000000000000950000978352000000970f0000000000 -% 1e970000000000008800000000000000000000000000000000000000000000000000000088000000 -% 950000798095000000970000001e790000000000009500000000000000a00000a78c52000000881e -% 00000000000000001e9500000088 -% 440000003d1b1b243e1b0000370000004925000044224e0d0000000000000000224d2d22224c0000 -% 440000006028004c22222d552a000000000000000000411b1b2b4506001b1b000006580000000037 -% 0000000000000000003d1b1b25452200003700000044250019441b1b140000000000000000003737 -% 1b372900003700000000000000531b1b1b0600000000000000084d36222254000044000000335c00 -% 283b22283844000000000000000fa752528eb64b000097000000006a2d0000954bab0f0000000000 -% 000000000057400000000019552d22190000443828220800000000000000005e3028225400004400 -% 00003b5800223b2228334400000000000000001ea752529abf4b00009700000000791e0000007900 -% 00000000000000003c885151b1ab2d000fab3c3c3c3c00000000790000000000000000005e302222 -% 54000044000000335c00283b222838440000000000000000796a5260c08e0f0052953c3c3c2d0000 -% a0523c3c1e0000008800000000000000000000000000000000000000000000000000000088000000 -% 4b885151a6b32d000f88000000009700002d3c51882d00000000000000796a5260c38e0f0047953c -% 3c3c2d00002d3c52a71e00000088 -% 44000000191b1b240d0000000d0000000c0c0000001b0d00000000000000000000112d22221f0000 -% 110000001808001f22222d11000000000000000000001f1b1b25060000060600000019000000000d -% 000000000000000000191b1b250d0000000d0000000c0c000c201b1b140000000000000000000014 -% 1b140000000d00000000000000251b1b1b060000000000000000082e22222e000011000000001f00 -% 10282228280000000000000000000f52522d002d00001e000000000f0f0000003c1e000000000000 -% 000000000018100000000000112d2219000000282822080000000000000000082828222e00001100 -% 0000001f000828222822000000000000000000001e52521e002d00002d000000000f0f0000001e00 -% 0000000000000000001e51511e0f1e0000523c3c3c3c000000001e00000000000000000008282222 -% 2e000011000000001f001028222828000000000000000000002d52520f1e0f00383c3c3c3c2d0000 -% 523c3c3c1e0000008800000000000000000000000000000000000000000000000000000088000000 -% 002d51510f0f1e000f1e000000001e00002d3c511e0000000000000000002d52520f1e0f001d473c -% 3c3c2d00002d3c520f0000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 76444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 4444444444444444b3444444444433000022444444444444000022444444444444000011b4444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444a0 -%%EndImage -%%EndPreview -save countdictstack mark newpath /showpage {} def /setpagedevice {pop} def -%%EndProlog -%%Page 1 1 - -% Prolog copyright 1994-2003 Trolltech. You may copy this prolog in any way -% that is directly related to this document. For other use of this prolog, -% see your licensing agreement for Qt. -/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D -/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D -/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D -/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read -pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end -d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi -false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88 -0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{ -LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{ -gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get -SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7 -bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL -0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB -exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL -ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1 -eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if -64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3 -i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll -putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3 -1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D -/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3 -colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1 -QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray -QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2 -add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq -{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC -imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel -where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d -/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7 -DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d -/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height -h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4 -DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{ -pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC -WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{ -1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie} -if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4 -2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg -RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0 -exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if -BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h -add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0 -6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT -}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h -D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div -add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1 -ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT -0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy -MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R -{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h -ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry -D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y -w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul -200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90 -x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0 --90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h -ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale -NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS} -D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT -x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP -ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255 -div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0 -B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25 -/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true -exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3 --1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch -/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup -maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding -fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length -dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end -definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d} -D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty -MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch -stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT -1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0 -exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore -showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop -pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D -/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt -ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP} -D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D - -/LArr[ [] [] [ 83.333 25.000 ] [ 25.000 83.333 ] [ 25.000 25.000 ] [ 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 25.000 25.000 ] ] d -/pageinit { -% 210*297mm (portrait) -0 842.04 translate 0.12 -0.12 scale/defM matrix CM d } d -QI -[1 0 0 1 0 0]ST -1 4 B 1 1 PE -NB -W BC -3070 7017 0 HL -3070 6545 7017 VL -0 6545 3070 HL -0 7017 6545 VL -3779 7017 3307 HL -3779 5600 7017 VL -3307 5600 3779 HL -3307 7017 5600 VL -3779 5600 3779 HL -3779 5600 3779 HL -3779 5600 3779 HL -3779 5600 3779 HL -1 4 B 1 1 PE -3121 7017 3070 HL -3198 7017 3147 HL -3274 7017 3223 HL -3307 7017 3300 HL -1 4 0 0 255 1 1 PE -59 6698 6627 VL -83 6627 6698 VL -122 6698 83 6627 DL -122 6627 6698 VL -NP -169 6631 MT -167 6630 LT -166 6628 LT -164 6628 LT -162 6627 LT -160 6627 LT -158 6628 LT -156 6629 LT -155 6630 LT -154 6631 LT -QS -NP -154 6631 MT -153 6633 LT -152 6635 LT -151 6636 LT -150 6638 LT -149 6640 LT -149 6642 LT -148 6644 LT -148 6646 LT -147 6647 LT -QS -NP -147 6678 MT -148 6680 LT -148 6682 LT -149 6684 LT -150 6686 LT -150 6688 LT -151 6690 LT -152 6691 LT -153 6693 LT -154 6694 LT -QS -NP -154 6694 MT -155 6696 LT -157 6697 LT -159 6698 LT -161 6698 LT -163 6698 LT -165 6697 LT -167 6696 LT -168 6695 LT -169 6694 LT -QS -NP -169 6694 MT -170 6693 LT -171 6691 LT -172 6689 LT -173 6687 LT -173 6686 LT -174 6684 LT -175 6682 LT -175 6680 LT -175 6678 LT -QS -NP -175 6678 MT -176 6677 LT -176 6675 LT -177 6673 LT -177 6671 LT -177 6669 LT -177 6667 LT -177 6665 LT -177 6663 LT -QS -NP -177 6663 MT -177 6661 LT -177 6659 LT -177 6657 LT -177 6655 LT -176 6653 LT -176 6651 LT -176 6649 LT -175 6647 LT -QS -NP -175 6647 MT -175 6645 LT -175 6643 LT -174 6641 LT -173 6639 LT -172 6638 LT -171 6636 LT -170 6634 LT -169 6632 LT -169 6631 LT -QS -NP -146 6663 MT -146 6665 LT -146 6667 LT -146 6669 LT -146 6671 LT -146 6673 LT -147 6675 LT -147 6677 LT -147 6678 LT -QS -NP -147 6647 MT -147 6649 LT -147 6651 LT -146 6653 LT -146 6655 LT -146 6657 LT -146 6659 LT -146 6661 LT -146 6663 LT -QS -1449 6879 6919 VL -1472 6863 1464 HL -1488 6919 6879 VL -1464 6934 1472 HL -1472 6919 1496 6934 DL -NP -1464 6863 MT -1462 6864 LT -1460 6864 LT -1458 6865 LT -1457 6865 LT -1455 6867 LT -1453 6868 LT -1452 6869 LT -1451 6871 LT -1450 6873 LT -1449 6875 LT -1449 6877 LT -1449 6879 LT -1449 6879 LT -QS -NP -1488 6879 MT -1488 6877 LT -1487 6875 LT -1487 6873 LT -1486 6872 LT -1485 6870 LT -1484 6868 LT -1482 6867 LT -1480 6866 LT -1479 6865 LT -1477 6864 LT -1475 6864 LT -1473 6863 LT -1472 6863 LT -QS -NP -1472 6934 MT -1474 6934 LT -1476 6934 LT -1478 6933 LT -1480 6932 LT -1482 6931 LT -1483 6930 LT -1484 6928 LT -1486 6927 LT -1487 6925 LT -1487 6923 LT -1488 6921 LT -1488 6919 LT -1488 6919 LT -QS -NP -1449 6919 MT -1449 6921 LT -1449 6923 LT -1450 6924 LT -1451 6926 LT -1452 6928 LT -1453 6929 LT -1454 6931 LT -1456 6932 LT -1458 6933 LT -1460 6934 LT -1462 6934 LT -1464 6934 LT -1464 6934 LT -QS -1543 6863 1519 6934 DL -1567 6934 1543 6863 DL -1560 6915 1526 HL -NP -1613 6867 MT -1612 6866 LT -1610 6865 LT -1608 6864 LT -1607 6863 LT -1605 6864 LT -1603 6864 LT -1601 6865 LT -1599 6867 LT -1599 6867 LT -QS -NP -1599 6867 MT -1598 6869 LT -1597 6871 LT -1596 6872 LT -1595 6874 LT -1594 6876 LT -1593 6878 LT -1593 6880 LT -1592 6882 LT -1592 6883 LT -QS -NP -1592 6915 MT -1592 6917 LT -1593 6919 LT -1593 6920 LT -1594 6922 LT -1595 6924 LT -1596 6926 LT -1597 6928 LT -1598 6929 LT -1599 6930 LT -QS -NP -1599 6930 MT -1600 6932 LT -1602 6933 LT -1604 6934 LT -1606 6934 LT -1608 6934 LT -1609 6934 LT -1611 6933 LT -1613 6931 LT -1613 6930 LT -QS -NP -1613 6930 MT -1614 6929 LT -1615 6927 LT -1616 6925 LT -1617 6924 LT -1618 6922 LT -1619 6920 LT -1619 6918 LT -1620 6916 LT -1620 6915 LT -QS -NP -1620 6915 MT -1621 6913 LT -1621 6911 LT -1621 6909 LT -1621 6907 LT -1622 6905 LT -1622 6903 LT -1622 6901 LT -1622 6899 LT -QS -NP -1622 6899 MT -1622 6897 LT -1622 6895 LT -1622 6893 LT -1621 6891 LT -1621 6889 LT -1621 6887 LT -1620 6885 LT -1620 6883 LT -QS -NP -1620 6883 MT -1620 6881 LT -1619 6879 LT -1619 6877 LT -1618 6876 LT -1617 6874 LT -1616 6872 LT -1615 6870 LT -1614 6869 LT -1613 6867 LT -QS -NP -1590 6899 MT -1590 6901 LT -1590 6903 LT -1590 6905 LT -1591 6907 LT -1591 6909 LT -1591 6911 LT -1592 6913 LT -1592 6915 LT -QS -NP -1592 6883 MT -1592 6885 LT -1591 6887 LT -1591 6889 LT -1591 6891 LT -1590 6893 LT -1590 6895 LT -1590 6897 LT -1590 6899 LT -QS -1452 6643 6682 VL -1476 6627 1468 HL -1492 6682 6643 VL -1468 6698 1476 HL -1476 6682 1500 6698 DL -NP -1468 6627 MT -1466 6627 LT -1464 6628 LT -1462 6628 LT -1461 6629 LT -1459 6630 LT -1457 6632 LT -1456 6633 LT -1455 6635 LT -1454 6637 LT -1453 6638 LT -1453 6640 LT -1453 6642 LT -1452 6643 LT -QS -NP -1492 6643 MT -1492 6641 LT -1491 6639 LT -1491 6637 LT -1490 6635 LT -1489 6634 LT -1487 6632 LT -1486 6631 LT -1484 6630 LT -1483 6629 LT -1481 6628 LT -1479 6628 LT -1477 6627 LT -1476 6627 LT -QS -NP -1476 6698 MT -1478 6698 LT -1480 6698 LT -1482 6697 LT -1484 6696 LT -1485 6695 LT -1487 6694 LT -1488 6692 LT -1490 6691 LT -1490 6689 LT -1491 6687 LT -1492 6685 LT -1492 6683 LT -1492 6682 LT -QS -NP -1452 6682 MT -1453 6684 LT -1453 6686 LT -1454 6688 LT -1454 6690 LT -1456 6692 LT -1457 6693 LT -1458 6695 LT -1460 6696 LT -1462 6697 LT -1464 6697 LT -1466 6698 LT -1468 6698 LT -1468 6698 LT -QS -1523 6627 6698 VL -1543 6627 1523 HL -1544 6659 1523 HL -1563 6679 6678 VL -1523 6698 1544 HL -NP -1543 6659 MT -1545 6659 LT -1547 6658 LT -1549 6658 LT -1551 6657 LT -1552 6656 LT -1554 6654 LT -1555 6653 LT -1556 6651 LT -1557 6650 LT -1558 6648 LT -1559 6646 LT -1559 6644 LT -1559 6642 LT -1558 6640 LT -1558 6638 LT -1557 6636 LT -1556 6634 LT -1555 6633 LT -1553 6631 LT -1552 6630 LT -1550 6629 LT -1548 6628 LT -1546 6628 LT -1544 6627 LT -1543 6627 LT -QS -NP -1563 6678 MT -1563 6676 LT -1562 6674 LT -1562 6672 LT -1561 6670 LT -1560 6668 LT -1559 6666 LT -1558 6665 LT -1556 6664 LT -1555 6662 LT -1553 6661 LT -1551 6660 LT -1549 6660 LT -1547 6659 LT -1545 6659 LT -1544 6659 LT -QS -NP -1544 6698 MT -1546 6698 LT -1548 6698 LT -1550 6697 LT -1552 6696 LT -1553 6696 LT -1555 6694 LT -1557 6693 LT -1558 6692 LT -1559 6690 LT -1560 6688 LT -1561 6687 LT -1562 6685 LT -1562 6683 LT -1563 6681 LT -1563 6679 LT -QS -NP -1609 6631 MT -1608 6630 LT -1606 6628 LT -1605 6628 LT -1603 6627 LT -1601 6627 LT -1599 6628 LT -1597 6629 LT -1595 6630 LT -1595 6631 LT -QS -NP -1595 6631 MT -1594 6633 LT -1593 6635 LT -1592 6636 LT -1591 6638 LT -1590 6640 LT -1589 6642 LT -1589 6644 LT -1588 6646 LT -1588 6647 LT -QS -NP -1588 6678 MT -1588 6680 LT -1589 6682 LT -1590 6684 LT -1590 6686 LT -1591 6688 LT -1592 6690 LT -1593 6691 LT -1594 6693 LT -1595 6694 LT -QS -NP -1595 6694 MT -1596 6696 LT -1598 6697 LT -1600 6698 LT -1602 6698 LT -1604 6698 LT -1606 6697 LT -1607 6696 LT -1609 6695 LT -1609 6694 LT -QS -NP -1609 6694 MT -1610 6693 LT -1612 6691 LT -1612 6689 LT -1613 6687 LT -1614 6686 LT -1615 6684 LT -1615 6682 LT -1616 6680 LT -1616 6678 LT -QS -NP -1616 6678 MT -1617 6677 LT -1617 6675 LT -1617 6673 LT -1617 6671 LT -1618 6669 LT -1618 6667 LT -1618 6665 LT -1618 6663 LT -QS -NP -1618 6663 MT -1618 6661 LT -1618 6659 LT -1618 6657 LT -1617 6655 LT -1617 6653 LT -1617 6651 LT -1617 6649 LT -1616 6647 LT -QS -NP -1616 6647 MT -1616 6645 LT -1615 6643 LT -1615 6641 LT -1614 6639 LT -1613 6638 LT -1612 6636 LT -1611 6634 LT -1610 6632 LT -1609 6631 LT -QS -NP -1586 6663 MT -1586 6665 LT -1586 6667 LT -1587 6669 LT -1587 6671 LT -1587 6673 LT -1587 6675 LT -1588 6677 LT -1588 6678 LT -QS -NP -1588 6647 MT -1588 6649 LT -1587 6651 LT -1587 6653 LT -1587 6655 LT -1587 6657 LT -1586 6659 LT -1586 6661 LT -1586 6663 LT -QS -1925 6643 6682 VL -1948 6627 1941 HL -1964 6682 6643 VL -1941 6698 1948 HL -1948 6682 1972 6698 DL -NP -1941 6627 MT -1939 6627 LT -1937 6628 LT -1935 6628 LT -1933 6629 LT -1931 6630 LT -1930 6632 LT -1928 6633 LT -1927 6635 LT -1926 6637 LT -1926 6638 LT -1925 6640 LT -1925 6642 LT -1925 6643 LT -QS -NP -1964 6643 MT -1964 6641 LT -1964 6639 LT -1963 6637 LT -1962 6635 LT -1961 6634 LT -1960 6632 LT -1958 6631 LT -1957 6630 LT -1955 6629 LT -1953 6628 LT -1951 6628 LT -1949 6627 LT -1948 6627 LT -QS -NP -1948 6698 MT -1950 6698 LT -1952 6698 LT -1954 6697 LT -1956 6696 LT -1958 6695 LT -1959 6694 LT -1961 6692 LT -1962 6691 LT -1963 6689 LT -1964 6687 LT -1964 6685 LT -1964 6683 LT -1964 6682 LT -QS -NP -1925 6682 MT -1925 6684 LT -1925 6686 LT -1926 6688 LT -1927 6690 LT -1928 6692 LT -1929 6693 LT -1931 6695 LT -1932 6696 LT -1934 6697 LT -1936 6697 LT -1938 6698 LT -1940 6698 LT -1941 6698 LT -QS -2035 6627 1996 HL -1996 6698 2035 6627 DL -2035 6698 1996 HL -NP -2082 6631 MT -2080 6630 LT -2079 6628 LT -2077 6628 LT -2075 6627 LT -2073 6627 LT -2071 6628 LT -2069 6629 LT -2068 6630 LT -2067 6631 LT -QS -NP -2067 6631 MT -2066 6633 LT -2065 6635 LT -2064 6636 LT -2063 6638 LT -2062 6640 LT -2062 6642 LT -2061 6644 LT -2061 6646 LT -2060 6647 LT -QS -NP -2060 6678 MT -2061 6680 LT -2061 6682 LT -2062 6684 LT -2063 6686 LT -2063 6688 LT -2064 6690 LT -2065 6691 LT -2066 6693 LT -2067 6694 LT -QS -NP -2067 6694 MT -2069 6696 LT -2070 6697 LT -2072 6698 LT -2074 6698 LT -2076 6698 LT -2078 6697 LT -2080 6696 LT -2081 6695 LT -2082 6694 LT -QS -NP -2082 6694 MT -2083 6693 LT -2084 6691 LT -2085 6689 LT -2086 6687 LT -2087 6686 LT -2087 6684 LT -2088 6682 LT -2088 6680 LT -2089 6678 LT -QS -NP -2089 6678 MT -2089 6677 LT -2089 6675 LT -2090 6673 LT -2090 6671 LT -2090 6669 LT -2090 6667 LT -2090 6665 LT -2090 6663 LT -QS -NP -2090 6663 MT -2090 6661 LT -2090 6659 LT -2090 6657 LT -2090 6655 LT -2090 6653 LT -2089 6651 LT -2089 6649 LT -2089 6647 LT -QS -NP -2089 6647 MT -2088 6645 LT -2088 6643 LT -2087 6641 LT -2086 6639 LT -2085 6638 LT -2085 6636 LT -2084 6634 LT -2082 6632 LT -2082 6631 LT -QS -NP -2059 6663 MT -2059 6665 LT -2059 6667 LT -2059 6669 LT -2059 6671 LT -2059 6673 LT -2060 6675 LT -2060 6677 LT -2060 6678 LT -QS -NP -2060 6647 MT -2060 6649 LT -2060 6651 LT -2059 6653 LT -2059 6655 LT -2059 6657 LT -2059 6659 LT -2059 6661 LT -2059 6663 LT -QS -2169 6643 6682 VL -2193 6627 2185 HL -2208 6682 6643 VL -2185 6698 2193 HL -2193 6682 2216 6698 DL -NP -2185 6627 MT -2183 6627 LT -2181 6628 LT -2179 6628 LT -2177 6629 LT -2175 6630 LT -2174 6632 LT -2172 6633 LT -2171 6635 LT -2170 6637 LT -2170 6638 LT -2169 6640 LT -2169 6642 LT -2169 6643 LT -QS -NP -2208 6643 MT -2208 6641 LT -2208 6639 LT -2207 6637 LT -2206 6635 LT -2205 6634 LT -2204 6632 LT -2202 6631 LT -2201 6630 LT -2199 6629 LT -2197 6628 LT -2195 6628 LT -2193 6627 LT -2193 6627 LT -QS -NP -2193 6698 MT -2195 6698 LT -2196 6698 LT -2198 6697 LT -2200 6696 LT -2202 6695 LT -2203 6694 LT -2205 6692 LT -2206 6691 LT -2207 6689 LT -2208 6687 LT -2208 6685 LT -2208 6683 LT -2208 6682 LT -QS -NP -2169 6682 MT -2169 6684 LT -2169 6686 LT -2170 6688 LT -2171 6690 LT -2172 6692 LT -2173 6693 LT -2175 6695 LT -2176 6696 LT -2178 6697 LT -2180 6697 LT -2182 6698 LT -2184 6698 LT -2185 6698 LT -QS -2240 6627 6698 VL -2259 6627 2240 HL -2260 6659 2240 HL -2279 6679 6678 VL -2240 6698 2260 HL -NP -2259 6659 MT -2261 6659 LT -2263 6658 LT -2265 6658 LT -2267 6657 LT -2269 6656 LT -2270 6654 LT -2272 6653 LT -2273 6651 LT -2274 6650 LT -2274 6648 LT -2275 6646 LT -2275 6644 LT -2275 6642 LT -2275 6640 LT -2274 6638 LT -2274 6636 LT -2272 6634 LT -2271 6633 LT -2270 6631 LT -2268 6630 LT -2267 6629 LT -2265 6628 LT -2263 6628 LT -2261 6627 LT -2259 6627 LT -QS -NP -2279 6678 MT -2279 6676 LT -2279 6674 LT -2278 6672 LT -2277 6670 LT -2277 6668 LT -2275 6666 LT -2274 6665 LT -2273 6664 LT -2271 6662 LT -2269 6661 LT -2268 6660 LT -2266 6660 LT -2264 6659 LT -2262 6659 LT -2260 6659 LT -QS -NP -2260 6698 MT -2262 6698 LT -2264 6698 LT -2266 6697 LT -2268 6696 LT -2270 6696 LT -2271 6694 LT -2273 6693 LT -2274 6692 LT -2276 6690 LT -2277 6688 LT -2278 6687 LT -2278 6685 LT -2279 6683 LT -2279 6681 LT -2279 6679 LT -QS -2318 6627 2303 6643 DL -2318 6698 6627 VL -2165 6879 6919 VL -2189 6863 2181 HL -2204 6919 6879 VL -2181 6934 2189 HL -2189 6919 2212 6934 DL -NP -2181 6863 MT -2179 6864 LT -2177 6864 LT -2175 6865 LT -2173 6865 LT -2171 6867 LT -2170 6868 LT -2168 6869 LT -2167 6871 LT -2166 6873 LT -2166 6875 LT -2165 6877 LT -2165 6879 LT -2165 6879 LT -QS -NP -2204 6879 MT -2204 6877 LT -2204 6875 LT -2203 6873 LT -2202 6872 LT -2201 6870 LT -2200 6868 LT -2198 6867 LT -2197 6866 LT -2195 6865 LT -2193 6864 LT -2191 6864 LT -2189 6863 LT -2189 6863 LT -QS -NP -2189 6934 MT -2191 6934 LT -2193 6934 LT -2194 6933 LT -2196 6932 LT -2198 6931 LT -2199 6930 LT -2201 6928 LT -2202 6927 LT -2203 6925 LT -2204 6923 LT -2204 6921 LT -2204 6919 LT -2204 6919 LT -QS -NP -2165 6919 MT -2165 6921 LT -2165 6923 LT -2166 6924 LT -2167 6926 LT -2168 6928 LT -2169 6929 LT -2171 6931 LT -2172 6932 LT -2174 6933 LT -2176 6934 LT -2178 6934 LT -2180 6934 LT -2181 6934 LT -QS -2259 6863 2236 6934 DL -2283 6934 2259 6863 DL -2277 6915 2242 HL -2322 6863 2307 6879 DL -2322 6934 6863 VL -2393 6643 6682 VL -2417 6627 2409 HL -2433 6682 6643 VL -2409 6698 2417 HL -2417 6682 2441 6698 DL -NP -2409 6627 MT -2407 6627 LT -2405 6628 LT -2403 6628 LT -2401 6629 LT -2400 6630 LT -2398 6632 LT -2397 6633 LT -2396 6635 LT -2395 6637 LT -2394 6638 LT -2394 6640 LT -2393 6642 LT -2393 6643 LT -QS -NP -2433 6643 MT -2433 6641 LT -2432 6639 LT -2432 6637 LT -2431 6635 LT -2430 6634 LT -2428 6632 LT -2427 6631 LT -2425 6630 LT -2423 6629 LT -2422 6628 LT -2420 6628 LT -2418 6627 LT -2417 6627 LT -QS -NP -2417 6698 MT -2419 6698 LT -2421 6698 LT -2423 6697 LT -2425 6696 LT -2426 6695 LT -2428 6694 LT -2429 6692 LT -2430 6691 LT -2431 6689 LT -2432 6687 LT -2432 6685 LT -2433 6683 LT -2433 6682 LT -QS -NP -2393 6682 MT -2393 6684 LT -2394 6686 LT -2394 6688 LT -2395 6690 LT -2396 6692 LT -2398 6693 LT -2399 6695 LT -2401 6696 LT -2403 6697 LT -2404 6697 LT -2406 6698 LT -2408 6698 LT -2409 6698 LT -QS -2488 6627 2464 6698 DL -2511 6698 2488 6627 DL -2505 6678 2471 HL -2535 6698 2566 HL -2565 6646 2535 6698 DL -NP -2565 6646 MT -2566 6644 LT -2566 6642 LT -2566 6640 LT -2566 6639 LT -QS -NP -2566 6639 MT -2565 6637 LT -2564 6635 LT -2563 6634 LT -2562 6632 LT -2561 6631 LT -2559 6630 LT -2557 6629 LT -2555 6628 LT -2553 6628 LT -2551 6627 LT -2549 6627 LT -2547 6628 LT -2546 6628 LT -2544 6629 LT -2542 6630 LT -2540 6631 LT -2539 6633 LT -2538 6634 LT -2537 6636 LT -2536 6638 LT -2535 6639 LT -QS -2405 6879 6919 VL -2429 6863 2421 HL -2444 6919 6879 VL -2421 6934 2429 HL -2429 6919 2452 6934 DL -NP -2421 6863 MT -2419 6864 LT -2417 6864 LT -2415 6865 LT -2413 6865 LT -2411 6867 LT -2410 6868 LT -2409 6869 LT -2407 6871 LT -2406 6873 LT -2406 6875 LT -2405 6877 LT -2405 6879 LT -2405 6879 LT -QS -NP -2444 6879 MT -2444 6877 LT -2444 6875 LT -2443 6873 LT -2442 6872 LT -2441 6870 LT -2440 6868 LT -2439 6867 LT -2437 6866 LT -2435 6865 LT -2433 6864 LT -2431 6864 LT -2429 6863 LT -2429 6863 LT -QS -NP -2429 6934 MT -2431 6934 LT -2433 6934 LT -2435 6933 LT -2436 6932 LT -2438 6931 LT -2440 6930 LT -2441 6928 LT -2442 6927 LT -2443 6925 LT -2444 6923 LT -2444 6921 LT -2444 6919 LT -2444 6919 LT -QS -NP -2405 6919 MT -2405 6921 LT -2406 6923 LT -2406 6924 LT -2407 6926 LT -2408 6928 LT -2409 6929 LT -2411 6931 LT -2413 6932 LT -2414 6933 LT -2416 6934 LT -2418 6934 LT -2420 6934 LT -2421 6934 LT -QS -2515 6863 2476 HL -2476 6934 2515 6863 DL -2515 6934 2476 HL -2555 6863 2539 6879 DL -2555 6934 6863 VL -2633 6643 6682 VL -2657 6627 2649 HL -2673 6682 6643 VL -2649 6698 2657 HL -2657 6682 2681 6698 DL -NP -2649 6627 MT -2647 6627 LT -2645 6628 LT -2643 6628 LT -2641 6629 LT -2640 6630 LT -2638 6632 LT -2637 6633 LT -2636 6635 LT -2635 6637 LT -2634 6638 LT -2634 6640 LT -2633 6642 LT -2633 6643 LT -QS -NP -2673 6643 MT -2673 6641 LT -2672 6639 LT -2672 6637 LT -2671 6635 LT -2670 6634 LT -2668 6632 LT -2667 6631 LT -2665 6630 LT -2663 6629 LT -2662 6628 LT -2660 6628 LT -2658 6627 LT -2657 6627 LT -QS -NP -2657 6698 MT -2659 6698 LT -2661 6698 LT -2663 6697 LT -2665 6696 LT -2666 6695 LT -2668 6694 LT -2669 6692 LT -2670 6691 LT -2671 6689 LT -2672 6687 LT -2673 6685 LT -2673 6683 LT -2673 6682 LT -QS -NP -2633 6682 MT -2634 6684 LT -2634 6686 LT -2635 6688 LT -2635 6690 LT -2636 6692 LT -2638 6693 LT -2639 6695 LT -2641 6696 LT -2643 6697 LT -2645 6697 LT -2646 6698 LT -2648 6698 LT -2649 6698 LT -QS -2704 6627 6698 VL -2724 6627 2704 HL -2725 6659 2704 HL -2744 6679 6678 VL -2704 6698 2725 HL -NP -2724 6659 MT -2726 6659 LT -2728 6658 LT -2730 6658 LT -2732 6657 LT -2733 6656 LT -2735 6654 LT -2736 6653 LT -2737 6651 LT -2738 6650 LT -2739 6648 LT -2739 6646 LT -2740 6644 LT -2740 6642 LT -2739 6640 LT -2739 6638 LT -2738 6636 LT -2737 6634 LT -2736 6633 LT -2734 6631 LT -2733 6630 LT -2731 6629 LT -2729 6628 LT -2727 6628 LT -2725 6627 LT -2724 6627 LT -QS -NP -2744 6678 MT -2744 6676 LT -2743 6674 LT -2743 6672 LT -2742 6670 LT -2741 6668 LT -2740 6666 LT -2739 6665 LT -2737 6664 LT -2736 6662 LT -2734 6661 LT -2732 6660 LT -2730 6660 LT -2728 6659 LT -2726 6659 LT -2725 6659 LT -QS -NP -2725 6698 MT -2727 6698 LT -2729 6698 LT -2731 6697 LT -2732 6696 LT -2734 6696 LT -2736 6694 LT -2737 6693 LT -2739 6692 LT -2740 6690 LT -2741 6688 LT -2742 6687 LT -2743 6685 LT -2743 6683 LT -2744 6681 LT -2744 6679 LT -QS -2767 6698 2799 HL -2798 6646 2767 6698 DL -NP -2798 6646 MT -2798 6644 LT -2799 6642 LT -2798 6640 LT -2798 6639 LT -QS -NP -2798 6639 MT -2798 6637 LT -2797 6635 LT -2796 6634 LT -2794 6632 LT -2793 6631 LT -2791 6630 LT -2789 6629 LT -2788 6628 LT -2786 6628 LT -2784 6627 LT -2782 6627 LT -2780 6628 LT -2778 6628 LT -2776 6629 LT -2774 6630 LT -2773 6631 LT -2771 6633 LT -2770 6634 LT -2769 6636 LT -2768 6638 LT -2768 6639 LT -QS -2870 6879 6919 VL -2893 6863 2885 HL -2909 6919 6879 VL -2885 6934 2893 HL -2893 6919 2917 6934 DL -NP -2885 6863 MT -2883 6864 LT -2881 6864 LT -2879 6865 LT -2878 6865 LT -2876 6867 LT -2874 6868 LT -2873 6869 LT -2872 6871 LT -2871 6873 LT -2870 6875 LT -2870 6877 LT -2870 6879 LT -2870 6879 LT -QS -NP -2909 6879 MT -2909 6877 LT -2908 6875 LT -2908 6873 LT -2907 6872 LT -2906 6870 LT -2905 6868 LT -2903 6867 LT -2901 6866 LT -2900 6865 LT -2898 6864 LT -2896 6864 LT -2894 6863 LT -2893 6863 LT -QS -NP -2893 6934 MT -2895 6934 LT -2897 6934 LT -2899 6933 LT -2901 6932 LT -2903 6931 LT -2904 6930 LT -2905 6928 LT -2907 6927 LT -2908 6925 LT -2908 6923 LT -2909 6921 LT -2909 6919 LT -2909 6919 LT -QS -NP -2870 6919 MT -2870 6921 LT -2870 6923 LT -2871 6924 LT -2872 6926 LT -2873 6928 LT -2874 6929 LT -2875 6931 LT -2877 6932 LT -2879 6933 LT -2881 6934 LT -2883 6934 LT -2885 6934 LT -2885 6934 LT -QS -2980 6863 2940 HL -2940 6934 2980 6863 DL -2980 6934 2940 HL -3003 6934 3035 HL -3034 6882 3003 6934 DL -NP -3034 6882 MT -3035 6880 LT -3035 6878 LT -3035 6876 LT -3034 6875 LT -QS -NP -3034 6875 MT -3034 6873 LT -3033 6872 LT -3032 6870 LT -3031 6868 LT -3029 6867 LT -3027 6866 LT -3026 6865 LT -3024 6864 LT -3022 6864 LT -3020 6863 LT -3018 6864 LT -3016 6864 LT -3014 6864 LT -3012 6865 LT -3010 6866 LT -3009 6867 LT -3007 6869 LT -3006 6870 LT -3005 6872 LT -3004 6874 LT -3004 6875 LT -QS -3342 6643 6682 VL -3366 6627 3358 HL -3381 6682 6643 VL -3358 6698 3366 HL -3366 6682 3389 6698 DL -NP -3358 6627 MT -3356 6627 LT -3354 6628 LT -3352 6628 LT -3350 6629 LT -3348 6630 LT -3347 6632 LT -3345 6633 LT -3344 6635 LT -3343 6637 LT -3343 6638 LT -3342 6640 LT -3342 6642 LT -3342 6643 LT -QS -NP -3381 6643 MT -3381 6641 LT -3381 6639 LT -3380 6637 LT -3379 6635 LT -3378 6634 LT -3377 6632 LT -3375 6631 LT -3374 6630 LT -3372 6629 LT -3370 6628 LT -3368 6628 LT -3366 6627 LT -3366 6627 LT -QS -NP -3366 6698 MT -3368 6698 LT -3370 6698 LT -3371 6697 LT -3373 6696 LT -3375 6695 LT -3376 6694 LT -3378 6692 LT -3379 6691 LT -3380 6689 LT -3381 6687 LT -3381 6685 LT -3381 6683 LT -3381 6682 LT -QS -NP -3342 6682 MT -3342 6684 LT -3342 6686 LT -3343 6688 LT -3344 6690 LT -3345 6692 LT -3346 6693 LT -3348 6695 LT -3349 6696 LT -3351 6697 LT -3353 6697 LT -3355 6698 LT -3357 6698 LT -3358 6698 LT -QS -3413 6627 6698 VL -3432 6627 3413 HL -3433 6659 3413 HL -3452 6679 6678 VL -3413 6698 3433 HL -NP -3432 6659 MT -3434 6659 LT -3436 6658 LT -3438 6658 LT -3440 6657 LT -3442 6656 LT -3443 6654 LT -3445 6653 LT -3446 6651 LT -3447 6650 LT -3448 6648 LT -3448 6646 LT -3448 6644 LT -3448 6642 LT -3448 6640 LT -3447 6638 LT -3447 6636 LT -3446 6634 LT -3444 6633 LT -3443 6631 LT -3441 6630 LT -3440 6629 LT -3438 6628 LT -3436 6628 LT -3434 6627 LT -3432 6627 LT -QS -NP -3452 6678 MT -3452 6676 LT -3452 6674 LT -3451 6672 LT -3450 6670 LT -3450 6668 LT -3448 6666 LT -3447 6665 LT -3446 6664 LT -3444 6662 LT -3442 6661 LT -3441 6660 LT -3439 6660 LT -3437 6659 LT -3435 6659 LT -3433 6659 LT -QS -NP -3433 6698 MT -3435 6698 LT -3437 6698 LT -3439 6697 LT -3441 6696 LT -3443 6696 LT -3444 6694 LT -3446 6693 LT -3447 6692 LT -3449 6690 LT -3450 6688 LT -3451 6687 LT -3451 6685 LT -3452 6683 LT -3452 6681 LT -3452 6679 LT -QS -3492 6627 3476 HL -3484 6659 3492 HL -3507 6682 6675 VL -3476 6698 3492 HL -NP -3492 6659 MT -3494 6659 LT -3495 6658 LT -3497 6658 LT -3499 6657 LT -3501 6656 LT -3502 6654 LT -3504 6653 LT -3505 6651 LT -3506 6650 LT -3507 6648 LT -3507 6646 LT -3507 6644 LT -3507 6642 LT -3507 6640 LT -3506 6638 LT -3506 6636 LT -3505 6634 LT -3503 6633 LT -3502 6631 LT -3500 6630 LT -3499 6629 LT -3497 6628 LT -3495 6628 LT -3493 6627 LT -3492 6627 LT -QS -NP -3507 6675 MT -3507 6673 LT -3507 6671 LT -3506 6669 LT -3505 6667 LT -3504 6665 LT -3503 6664 LT -3501 6662 LT -3500 6661 LT -3498 6660 LT -3496 6659 LT -3494 6659 LT -3492 6659 LT -3492 6659 LT -QS -NP -3492 6698 MT -3494 6698 LT -3495 6698 LT -3497 6697 LT -3499 6696 LT -3501 6695 LT -3502 6694 LT -3504 6692 LT -3505 6691 LT -3506 6689 LT -3507 6687 LT -3507 6685 LT -3507 6683 LT -3507 6682 LT -QS -3338 6879 6919 VL -3362 6863 3354 HL -3377 6919 6879 VL -3354 6934 3362 HL -3362 6919 3385 6934 DL -NP -3354 6863 MT -3352 6864 LT -3350 6864 LT -3348 6865 LT -3346 6865 LT -3344 6867 LT -3343 6868 LT -3341 6869 LT -3340 6871 LT -3339 6873 LT -3339 6875 LT -3338 6877 LT -3338 6879 LT -3338 6879 LT -QS -NP -3377 6879 MT -3377 6877 LT -3377 6875 LT -3376 6873 LT -3375 6872 LT -3374 6870 LT -3373 6868 LT -3372 6867 LT -3370 6866 LT -3368 6865 LT -3366 6864 LT -3364 6864 LT -3362 6863 LT -3362 6863 LT -QS -NP -3362 6934 MT -3364 6934 LT -3366 6934 LT -3367 6933 LT -3369 6932 LT -3371 6931 LT -3373 6930 LT -3374 6928 LT -3375 6927 LT -3376 6925 LT -3377 6923 LT -3377 6921 LT -3377 6919 LT -3377 6919 LT -QS -NP -3338 6919 MT -3338 6921 LT -3339 6923 LT -3339 6924 LT -3340 6926 LT -3341 6928 LT -3342 6929 LT -3344 6931 LT -3345 6932 LT -3347 6933 LT -3349 6934 LT -3351 6934 LT -3353 6934 LT -3354 6934 LT -QS -3432 6863 3409 6934 DL -3456 6934 3432 6863 DL -3450 6915 3415 HL -3495 6863 3480 HL -3488 6895 3495 HL -3511 6919 6911 VL -3480 6934 3495 HL -NP -3495 6895 MT -3497 6895 LT -3499 6894 LT -3501 6894 LT -3503 6893 LT -3505 6892 LT -3506 6891 LT -3508 6889 LT -3509 6887 LT -3510 6886 LT -3511 6884 LT -3511 6882 LT -3511 6880 LT -3511 6878 LT -3511 6876 LT -3510 6874 LT -3510 6872 LT -3508 6870 LT -3507 6869 LT -3506 6867 LT -3504 6866 LT -3503 6865 LT -3501 6864 LT -3499 6864 LT -3497 6864 LT -3495 6863 LT -QS -NP -3511 6911 MT -3511 6909 LT -3511 6907 LT -3510 6905 LT -3509 6903 LT -3508 6901 LT -3507 6900 LT -3505 6898 LT -3504 6897 LT -3502 6896 LT -3500 6896 LT -3498 6895 LT -3496 6895 LT -3495 6895 LT -QS -NP -3495 6934 MT -3497 6934 LT -3499 6934 LT -3501 6933 LT -3503 6932 LT -3505 6931 LT -3506 6930 LT -3508 6928 LT -3509 6927 LT -3510 6925 LT -3511 6923 LT -3511 6921 LT -3511 6919 LT -3511 6919 LT -QS -3578 6879 6919 VL -3602 6863 3594 HL -3617 6919 6879 VL -3594 6934 3602 HL -3602 6919 3625 6934 DL -NP -3594 6863 MT -3592 6864 LT -3590 6864 LT -3588 6865 LT -3586 6865 LT -3584 6867 LT -3583 6868 LT -3582 6869 LT -3580 6871 LT -3580 6873 LT -3579 6875 LT -3578 6877 LT -3578 6879 LT -3578 6879 LT -QS -NP -3617 6879 MT -3617 6877 LT -3617 6875 LT -3616 6873 LT -3615 6872 LT -3614 6870 LT -3613 6868 LT -3612 6867 LT -3610 6866 LT -3608 6865 LT -3606 6864 LT -3604 6864 LT -3602 6863 LT -3602 6863 LT -QS -NP -3602 6934 MT -3604 6934 LT -3606 6934 LT -3608 6933 LT -3609 6932 LT -3611 6931 LT -3613 6930 LT -3614 6928 LT -3615 6927 LT -3616 6925 LT -3617 6923 LT -3617 6921 LT -3617 6919 LT -3617 6919 LT -QS -NP -3578 6919 MT -3578 6921 LT -3579 6923 LT -3579 6924 LT -3580 6926 LT -3581 6928 LT -3582 6929 LT -3584 6931 LT -3586 6932 LT -3587 6933 LT -3589 6934 LT -3591 6934 LT -3593 6934 LT -3594 6934 LT -QS -3688 6863 3649 HL -3649 6934 3688 6863 DL -3688 6934 3649 HL -3728 6863 3712 HL -3720 6895 3728 HL -3743 6919 6911 VL -3712 6934 3728 HL -NP -3728 6895 MT -3730 6895 LT -3732 6894 LT -3734 6894 LT -3735 6893 LT -3737 6892 LT -3739 6891 LT -3740 6889 LT -3741 6887 LT -3742 6886 LT -3743 6884 LT -3743 6882 LT -3743 6880 LT -3743 6878 LT -3743 6876 LT -3743 6874 LT -3742 6872 LT -3741 6870 LT -3740 6869 LT -3738 6867 LT -3737 6866 LT -3735 6865 LT -3733 6864 LT -3731 6864 LT -3729 6864 LT -3728 6863 LT -QS -NP -3743 6911 MT -3743 6909 LT -3743 6907 LT -3742 6905 LT -3741 6903 LT -3740 6901 LT -3739 6900 LT -3738 6898 LT -3736 6897 LT -3734 6896 LT -3732 6896 LT -3730 6895 LT -3728 6895 LT -3728 6895 LT -QS -NP -3728 6934 MT -3730 6934 LT -3732 6934 LT -3734 6933 LT -3735 6932 LT -3737 6931 LT -3739 6930 LT -3740 6928 LT -3741 6927 LT -3742 6925 LT -3743 6923 LT -3743 6921 LT -3743 6919 LT -3743 6919 LT -QS -1 4 0 255 0 1 1 PE -63 6934 39 HL -79 6879 6919 VL -39 6863 63 HL -39 6934 6863 VL -NP -63 6934 MT -65 6934 LT -67 6934 LT -69 6933 LT -71 6932 LT -72 6931 LT -74 6930 LT -75 6928 LT -76 6927 LT -77 6925 LT -78 6923 LT -78 6921 LT -79 6919 LT -79 6919 LT -QS -NP -79 6879 MT -79 6877 LT -78 6875 LT -78 6873 LT -77 6872 LT -76 6870 LT -74 6868 LT -73 6867 LT -71 6866 LT -69 6865 LT -68 6864 LT -66 6864 LT -64 6863 LT -63 6863 LT -QS -102 6863 6934 VL -142 6934 102 6863 DL -142 6863 6934 VL -NP -188 6867 MT -187 6866 LT -185 6865 LT -184 6864 LT -182 6863 LT -180 6864 LT -178 6864 LT -176 6865 LT -174 6867 LT -174 6867 LT -QS -NP -174 6867 MT -173 6869 LT -172 6871 LT -171 6872 LT -170 6874 LT -169 6876 LT -168 6878 LT -168 6880 LT -167 6882 LT -167 6883 LT -QS -NP -167 6915 MT -167 6917 LT -168 6919 LT -169 6920 LT -169 6922 LT -170 6924 LT -171 6926 LT -172 6928 LT -173 6929 LT -174 6930 LT -QS -NP -174 6930 MT -175 6932 LT -177 6933 LT -179 6934 LT -181 6934 LT -183 6934 LT -185 6934 LT -186 6933 LT -188 6931 LT -188 6930 LT -QS -NP -188 6930 MT -189 6929 LT -191 6927 LT -191 6925 LT -192 6924 LT -193 6922 LT -194 6920 LT -194 6918 LT -195 6916 LT -195 6915 LT -QS -NP -195 6915 MT -196 6913 LT -196 6911 LT -196 6909 LT -196 6907 LT -197 6905 LT -197 6903 LT -197 6901 LT -197 6899 LT -QS -NP -197 6899 MT -197 6897 LT -197 6895 LT -197 6893 LT -196 6891 LT -196 6889 LT -196 6887 LT -196 6885 LT -195 6883 LT -QS -NP -195 6883 MT -195 6881 LT -194 6879 LT -194 6877 LT -193 6876 LT -192 6874 LT -191 6872 LT -190 6870 LT -189 6869 LT -188 6867 LT -QS -NP -165 6899 MT -165 6901 LT -165 6903 LT -166 6905 LT -166 6907 LT -166 6909 LT -166 6911 LT -167 6913 LT -167 6915 LT -QS -NP -167 6883 MT -167 6885 LT -166 6887 LT -166 6889 LT -166 6891 LT -166 6893 LT -165 6895 LT -165 6897 LT -165 6899 LT -QS -276 6678 6627 VL -315 6627 6678 VL -NP -276 6678 MT -276 6680 LT -276 6682 LT -276 6684 LT -277 6686 LT -278 6688 LT -279 6690 LT -280 6691 LT -282 6693 LT -283 6694 LT -285 6695 LT -287 6696 LT -288 6697 LT -290 6698 LT -292 6698 LT -294 6698 LT -296 6698 LT -298 6698 LT -300 6697 LT -302 6697 LT -304 6696 LT -306 6695 LT -307 6694 LT -309 6693 LT -310 6691 LT -312 6690 LT -313 6688 LT -313 6686 LT -314 6684 LT -315 6682 LT -315 6680 LT -315 6678 LT -QS -339 6627 6698 VL -362 6627 339 HL -378 6651 6643 VL -339 6667 362 HL -NP -378 6643 MT -378 6641 LT -377 6639 LT -377 6637 LT -376 6635 LT -375 6634 LT -374 6632 LT -372 6631 LT -370 6630 LT -369 6629 LT -367 6628 LT -365 6628 LT -363 6627 LT -362 6627 LT -QS -NP -362 6667 MT -364 6667 LT -366 6666 LT -368 6666 LT -370 6665 LT -372 6664 LT -373 6662 LT -374 6661 LT -376 6659 LT -376 6657 LT -377 6656 LT -378 6654 LT -378 6652 LT -378 6651 LT -QS -NP -424 6631 MT -423 6630 LT -422 6628 LT -420 6628 LT -418 6627 LT -416 6627 LT -414 6628 LT -412 6629 LT -411 6630 LT -410 6631 LT -QS -NP -410 6631 MT -409 6633 LT -408 6635 LT -407 6636 LT -406 6638 LT -405 6640 LT -404 6642 LT -404 6644 LT -403 6646 LT -403 6647 LT -QS -NP -403 6678 MT -404 6680 LT -404 6682 LT -405 6684 LT -405 6686 LT -406 6688 LT -407 6690 LT -408 6691 LT -409 6693 LT -410 6694 LT -QS -NP -410 6694 MT -411 6696 LT -413 6697 LT -415 6698 LT -417 6698 LT -419 6698 LT -421 6697 LT -422 6696 LT -424 6695 LT -424 6694 LT -QS -NP -424 6694 MT -426 6693 LT -427 6691 LT -428 6689 LT -429 6687 LT -429 6686 LT -430 6684 LT -431 6682 LT -431 6680 LT -431 6678 LT -QS -NP -431 6678 MT -432 6677 LT -432 6675 LT -432 6673 LT -433 6671 LT -433 6669 LT -433 6667 LT -433 6665 LT -433 6663 LT -QS -NP -433 6663 MT -433 6661 LT -433 6659 LT -433 6657 LT -433 6655 LT -432 6653 LT -432 6651 LT -432 6649 LT -431 6647 LT -QS -NP -431 6647 MT -431 6645 LT -430 6643 LT -430 6641 LT -429 6639 LT -428 6638 LT -427 6636 LT -426 6634 LT -425 6632 LT -424 6631 LT -QS -NP -402 6663 MT -402 6665 LT -402 6667 LT -402 6669 LT -402 6671 LT -402 6673 LT -402 6675 LT -403 6677 LT -403 6678 LT -QS -NP -403 6647 MT -403 6649 LT -402 6651 LT -402 6653 LT -402 6655 LT -402 6657 LT -402 6659 LT -402 6661 LT -402 6663 LT -QS -520 6678 6627 VL -559 6627 6678 VL -NP -520 6678 MT -520 6680 LT -520 6682 LT -521 6684 LT -521 6686 LT -522 6688 LT -523 6690 LT -524 6691 LT -526 6693 LT -527 6694 LT -529 6695 LT -531 6696 LT -533 6697 LT -534 6698 LT -536 6698 LT -538 6698 LT -540 6698 LT -542 6698 LT -544 6697 LT -546 6697 LT -548 6696 LT -550 6695 LT -551 6694 LT -553 6693 LT -554 6691 LT -556 6690 LT -557 6688 LT -557 6686 LT -558 6684 LT -559 6682 LT -559 6680 LT -559 6678 LT -QS -583 6627 6698 VL -606 6627 583 HL -622 6651 6643 VL -583 6667 606 HL -NP -622 6643 MT -622 6641 LT -621 6639 LT -621 6637 LT -620 6635 LT -619 6634 LT -618 6632 LT -616 6631 LT -614 6630 LT -613 6629 LT -611 6628 LT -609 6628 LT -607 6627 LT -606 6627 LT -QS -NP -606 6667 MT -608 6667 LT -610 6666 LT -612 6666 LT -614 6665 LT -616 6664 LT -617 6662 LT -618 6661 LT -620 6659 LT -621 6657 LT -621 6656 LT -622 6654 LT -622 6652 LT -622 6651 LT -QS -661 6627 646 6643 DL -661 6698 6627 VL -543 6934 520 HL -559 6879 6919 VL -520 6863 543 HL -520 6934 6863 VL -NP -543 6934 MT -545 6934 LT -547 6934 LT -549 6933 LT -551 6932 LT -553 6931 LT -554 6930 LT -555 6928 LT -557 6927 LT -558 6925 LT -558 6923 LT -559 6921 LT -559 6919 LT -559 6919 LT -QS -NP -559 6879 MT -559 6877 LT -558 6875 LT -558 6873 LT -557 6872 LT -556 6870 LT -555 6868 LT -553 6867 LT -551 6866 LT -550 6865 LT -548 6864 LT -546 6864 LT -544 6863 LT -543 6863 LT -QS -583 6863 6934 VL -622 6934 583 6863 DL -622 6863 6934 VL -661 6863 646 6879 DL -661 6934 6863 VL -772 6934 748 HL -787 6879 6919 VL -748 6863 772 HL -748 6934 6863 VL -NP -772 6934 MT -774 6934 LT -775 6934 LT -777 6933 LT -779 6932 LT -781 6931 LT -782 6930 LT -784 6928 LT -785 6927 LT -786 6925 LT -787 6923 LT -787 6921 LT -787 6919 LT -787 6919 LT -QS -NP -787 6879 MT -787 6877 LT -787 6875 LT -786 6873 LT -785 6872 LT -784 6870 LT -783 6868 LT -781 6867 LT -780 6866 LT -778 6865 LT -776 6864 LT -774 6864 LT -772 6863 LT -772 6863 LT -QS -811 6863 6934 VL -850 6934 811 6863 DL -850 6863 6934 VL -874 6934 905 HL -904 6882 874 6934 DL -NP -904 6882 MT -905 6880 LT -905 6878 LT -905 6876 LT -905 6875 LT -QS -NP -905 6875 MT -904 6873 LT -903 6872 LT -902 6870 LT -901 6868 LT -900 6867 LT -898 6866 LT -896 6865 LT -894 6864 LT -892 6864 LT -890 6863 LT -888 6864 LT -886 6864 LT -884 6864 LT -883 6865 LT -881 6866 LT -879 6867 LT -878 6869 LT -877 6870 LT -876 6872 LT -875 6874 LT -874 6875 LT -QS -984 6915 6863 VL -1023 6863 6915 VL -NP -984 6915 MT -984 6917 LT -984 6919 LT -985 6921 LT -986 6922 LT -987 6924 LT -988 6926 LT -989 6928 LT -990 6929 LT -992 6930 LT -993 6931 LT -995 6932 LT -997 6933 LT -999 6934 LT -1001 6934 LT -1003 6934 LT -1005 6934 LT -1007 6934 LT -1009 6934 LT -1011 6933 LT -1013 6932 LT -1014 6931 LT -1016 6930 LT -1017 6929 LT -1019 6927 LT -1020 6926 LT -1021 6924 LT -1022 6922 LT -1023 6920 LT -1023 6918 LT -1023 6916 LT -1023 6915 LT -QS -1047 6863 6934 VL -1071 6863 1047 HL -1086 6887 6879 VL -1047 6903 1071 HL -NP -1086 6879 MT -1086 6877 LT -1086 6875 LT -1085 6873 LT -1084 6872 LT -1083 6870 LT -1082 6868 LT -1081 6867 LT -1079 6866 LT -1077 6865 LT -1075 6864 LT -1073 6864 LT -1071 6863 LT -1071 6863 LT -QS -NP -1071 6903 MT -1073 6903 LT -1075 6902 LT -1077 6902 LT -1078 6901 LT -1080 6900 LT -1082 6898 LT -1083 6897 LT -1084 6895 LT -1085 6894 LT -1086 6892 LT -1086 6890 LT -1086 6888 LT -1086 6887 LT -QS -1110 6934 1142 HL -1140 6882 1110 6934 DL -NP -1140 6882 MT -1141 6880 LT -1142 6878 LT -1141 6876 LT -1141 6875 LT -QS -NP -1141 6875 MT -1140 6873 LT -1140 6872 LT -1138 6870 LT -1137 6868 LT -1136 6867 LT -1134 6866 LT -1132 6865 LT -1130 6864 LT -1128 6864 LT -1126 6863 LT -1124 6864 LT -1122 6864 LT -1121 6864 LT -1119 6865 LT -1117 6866 LT -1115 6867 LT -1114 6869 LT -1113 6870 LT -1112 6872 LT -1111 6874 LT -1111 6875 LT -QS -1008 6698 984 HL -1023 6643 6682 VL -984 6627 1008 HL -984 6698 6627 VL -NP -1008 6698 MT -1010 6698 LT -1012 6698 LT -1014 6697 LT -1015 6696 LT -1017 6695 LT -1019 6694 LT -1020 6692 LT -1021 6691 LT -1022 6689 LT -1023 6687 LT -1023 6685 LT -1023 6683 LT -1023 6682 LT -QS -NP -1023 6643 MT -1023 6641 LT -1023 6639 LT -1022 6637 LT -1021 6635 LT -1020 6634 LT -1019 6632 LT -1018 6631 LT -1016 6630 LT -1014 6629 LT -1012 6628 LT -1010 6628 LT -1008 6627 LT -1008 6627 LT -QS -1047 6627 6698 VL -1086 6698 1047 6627 DL -1086 6627 6698 VL -1126 6627 1110 HL -1118 6659 1126 HL -1142 6682 6675 VL -1110 6698 1126 HL -NP -1126 6659 MT -1128 6659 LT -1130 6658 LT -1132 6658 LT -1133 6657 LT -1135 6656 LT -1137 6654 LT -1138 6653 LT -1139 6651 LT -1140 6650 LT -1141 6648 LT -1141 6646 LT -1142 6644 LT -1141 6642 LT -1141 6640 LT -1141 6638 LT -1140 6636 LT -1139 6634 LT -1138 6633 LT -1136 6631 LT -1135 6630 LT -1133 6629 LT -1131 6628 LT -1129 6628 LT -1127 6627 LT -1126 6627 LT -QS -NP -1142 6675 MT -1141 6673 LT -1141 6671 LT -1140 6669 LT -1140 6667 LT -1138 6665 LT -1137 6664 LT -1136 6662 LT -1134 6661 LT -1132 6660 LT -1130 6659 LT -1128 6659 LT -1126 6659 LT -1126 6659 LT -QS -NP -1126 6698 MT -1128 6698 LT -1130 6698 LT -1132 6697 LT -1133 6696 LT -1135 6695 LT -1137 6694 LT -1138 6692 LT -1139 6691 LT -1140 6689 LT -1141 6687 LT -1141 6685 LT -1142 6683 LT -1142 6682 LT -QS -1220 6678 6627 VL -1260 6627 6678 VL -NP -1220 6678 MT -1220 6680 LT -1221 6682 LT -1221 6684 LT -1222 6686 LT -1223 6688 LT -1224 6690 LT -1225 6691 LT -1226 6693 LT -1228 6694 LT -1230 6695 LT -1231 6696 LT -1233 6697 LT -1235 6698 LT -1237 6698 LT -1239 6698 LT -1241 6698 LT -1243 6698 LT -1245 6697 LT -1247 6697 LT -1249 6696 LT -1251 6695 LT -1252 6694 LT -1254 6693 LT -1255 6691 LT -1256 6690 LT -1257 6688 LT -1258 6686 LT -1259 6684 LT -1259 6682 LT -1260 6680 LT -1260 6678 LT -QS -1283 6627 6698 VL -1307 6627 1283 HL -1323 6651 6643 VL -1283 6667 1307 HL -NP -1323 6643 MT -1322 6641 LT -1322 6639 LT -1321 6637 LT -1321 6635 LT -1320 6634 LT -1318 6632 LT -1317 6631 LT -1315 6630 LT -1313 6629 LT -1311 6628 LT -1310 6628 LT -1308 6627 LT -1307 6627 LT -QS -NP -1307 6667 MT -1309 6667 LT -1311 6666 LT -1313 6666 LT -1315 6665 LT -1316 6664 LT -1318 6662 LT -1319 6661 LT -1320 6659 LT -1321 6657 LT -1322 6656 LT -1322 6654 LT -1323 6652 LT -1323 6651 LT -QS -1362 6627 1346 HL -1354 6659 1362 HL -1378 6682 6675 VL -1346 6698 1362 HL -NP -1362 6659 MT -1364 6659 LT -1366 6658 LT -1368 6658 LT -1370 6657 LT -1371 6656 LT -1373 6654 LT -1374 6653 LT -1375 6651 LT -1376 6650 LT -1377 6648 LT -1377 6646 LT -1378 6644 LT -1378 6642 LT -1377 6640 LT -1377 6638 LT -1376 6636 LT -1375 6634 LT -1374 6633 LT -1372 6631 LT -1371 6630 LT -1369 6629 LT -1367 6628 LT -1365 6628 LT -1363 6627 LT -1362 6627 LT -QS -NP -1378 6675 MT -1378 6673 LT -1377 6671 LT -1377 6669 LT -1376 6667 LT -1375 6665 LT -1373 6664 LT -1372 6662 LT -1370 6661 LT -1368 6660 LT -1367 6659 LT -1365 6659 LT -1363 6659 LT -1362 6659 LT -QS -NP -1362 6698 MT -1364 6698 LT -1366 6698 LT -1368 6697 LT -1370 6696 LT -1371 6695 LT -1373 6694 LT -1374 6692 LT -1375 6691 LT -1376 6689 LT -1377 6687 LT -1377 6685 LT -1378 6683 LT -1378 6682 LT -QS -1 4 127 d2 1 1 PE -287 6863 311 HL -272 6919 6879 VL -311 6934 287 HL -311 6895 6934 VL -299 6895 311 HL -NP -287 6863 MT -285 6864 LT -283 6864 LT -281 6865 LT -280 6865 LT -278 6867 LT -276 6868 LT -275 6869 LT -274 6871 LT -273 6873 LT -272 6875 LT -272 6877 LT -272 6879 LT -272 6879 LT -QS -NP -272 6919 MT -272 6921 LT -272 6923 LT -273 6924 LT -274 6926 LT -275 6928 LT -276 6929 LT -277 6931 LT -279 6932 LT -281 6933 LT -283 6934 LT -285 6934 LT -287 6934 LT -287 6934 LT -QS -335 6863 6934 VL -374 6934 335 6863 DL -374 6863 6934 VL -421 6934 398 HL -437 6879 6919 VL -398 6863 421 HL -398 6934 6863 VL -NP -421 6934 MT -423 6934 LT -425 6934 LT -427 6933 LT -429 6932 LT -431 6931 LT -432 6930 LT -433 6928 LT -435 6927 LT -436 6925 LT -436 6923 LT -437 6921 LT -437 6919 LT -437 6919 LT -QS -NP -437 6879 MT -437 6877 LT -436 6875 LT -436 6873 LT -435 6872 LT -434 6870 LT -433 6868 LT -431 6867 LT -429 6866 LT -428 6865 LT -426 6864 LT -424 6864 LT -422 6863 LT -421 6863 LT -QS -760 6627 783 HL -744 6682 6643 VL -783 6698 760 HL -783 6659 6698 VL -772 6659 783 HL -NP -760 6627 MT -758 6627 LT -756 6628 LT -754 6628 LT -752 6629 LT -750 6630 LT -749 6632 LT -747 6633 LT -746 6635 LT -745 6637 LT -745 6638 LT -744 6640 LT -744 6642 LT -744 6643 LT -QS -NP -744 6682 MT -744 6684 LT -744 6686 LT -745 6688 LT -746 6690 LT -747 6692 LT -748 6693 LT -750 6695 LT -751 6696 LT -753 6697 LT -755 6697 LT -757 6698 LT -759 6698 LT -760 6698 LT -QS -807 6627 6698 VL -846 6698 807 6627 DL -846 6627 6698 VL -894 6698 870 HL -909 6643 6682 VL -870 6627 894 HL -870 6698 6627 VL -NP -894 6698 MT -896 6698 LT -898 6698 LT -899 6697 LT -901 6696 LT -903 6695 LT -904 6694 LT -906 6692 LT -907 6691 LT -908 6689 LT -909 6687 LT -909 6685 LT -909 6683 LT -909 6682 LT -QS -NP -909 6643 MT -909 6641 LT -909 6639 LT -908 6637 LT -907 6635 LT -906 6634 LT -905 6632 LT -903 6631 LT -902 6630 LT -900 6629 LT -898 6628 LT -896 6628 LT -894 6627 LT -894 6627 LT -QS -1232 6863 1256 HL -1216 6919 6879 VL -1256 6934 1232 HL -1256 6895 6934 VL -1244 6895 1256 HL -NP -1232 6863 MT -1230 6864 LT -1228 6864 LT -1226 6865 LT -1224 6865 LT -1223 6867 LT -1221 6868 LT -1220 6869 LT -1219 6871 LT -1218 6873 LT -1217 6875 LT -1217 6877 LT -1216 6879 LT -1216 6879 LT -QS -NP -1216 6919 MT -1216 6921 LT -1217 6923 LT -1217 6924 LT -1218 6926 LT -1219 6928 LT -1221 6929 LT -1222 6931 LT -1224 6932 LT -1226 6933 LT -1227 6934 LT -1229 6934 LT -1231 6934 LT -1232 6934 LT -QS -1279 6863 6934 VL -1319 6934 1279 6863 DL -1319 6863 6934 VL -1366 6934 1342 HL -1382 6879 6919 VL -1342 6863 1366 HL -1342 6934 6863 VL -NP -1366 6934 MT -1368 6934 LT -1370 6934 LT -1372 6933 LT -1374 6932 LT -1375 6931 LT -1377 6930 LT -1378 6928 LT -1379 6927 LT -1380 6925 LT -1381 6923 LT -1381 6921 LT -1382 6919 LT -1382 6919 LT -QS -NP -1382 6879 MT -1382 6877 LT -1381 6875 LT -1381 6873 LT -1380 6872 LT -1379 6870 LT -1377 6868 LT -1376 6867 LT -1374 6866 LT -1372 6865 LT -1371 6864 LT -1369 6864 LT -1367 6863 LT -1366 6863 LT -QS -1716 6698 1693 6627 DL -1740 6627 1716 6698 DL -1779 6627 1795 HL -1763 6682 6643 VL -1795 6698 1779 HL -NP -1779 6627 MT -1777 6627 LT -1775 6628 LT -1773 6628 LT -1772 6629 LT -1770 6630 LT -1768 6632 LT -1767 6633 LT -1766 6635 LT -1765 6637 LT -1764 6638 LT -1764 6640 LT -1763 6642 LT -1763 6643 LT -QS -NP -1763 6682 MT -1764 6684 LT -1764 6686 LT -1765 6688 LT -1765 6690 LT -1767 6692 LT -1768 6693 LT -1769 6695 LT -1771 6696 LT -1773 6697 LT -1775 6697 LT -1777 6698 LT -1779 6698 LT -1779 6698 LT -QS -1834 6627 1850 HL -1819 6682 6643 VL -1850 6698 1834 HL -NP -1834 6627 MT -1832 6627 LT -1830 6628 LT -1828 6628 LT -1827 6629 LT -1825 6630 LT -1823 6632 LT -1822 6633 LT -1821 6635 LT -1820 6637 LT -1819 6638 LT -1819 6640 LT -1819 6642 LT -1819 6643 LT -QS -NP -1819 6682 MT -1819 6684 LT -1819 6686 LT -1820 6688 LT -1821 6690 LT -1822 6692 LT -1823 6693 LT -1824 6695 LT -1826 6696 LT -1828 6697 LT -1830 6697 LT -1832 6698 LT -1834 6698 LT -1834 6698 LT -QS -1716 6934 1693 6863 DL -1740 6863 1716 6934 DL -1779 6863 1795 HL -1763 6919 6879 VL -1795 6934 1779 HL -NP -1779 6863 MT -1777 6864 LT -1775 6864 LT -1773 6865 LT -1772 6865 LT -1770 6867 LT -1768 6868 LT -1767 6869 LT -1766 6871 LT -1765 6873 LT -1764 6875 LT -1764 6877 LT -1763 6879 LT -1763 6879 LT -QS -NP -1763 6919 MT -1764 6921 LT -1764 6923 LT -1765 6924 LT -1765 6926 LT -1767 6928 LT -1768 6929 LT -1769 6931 LT -1771 6932 LT -1773 6933 LT -1775 6934 LT -1777 6934 LT -1779 6934 LT -1779 6934 LT -QS -1834 6863 1850 HL -1819 6919 6879 VL -1850 6934 1834 HL -NP -1834 6863 MT -1832 6864 LT -1830 6864 LT -1828 6865 LT -1827 6865 LT -1825 6867 LT -1823 6868 LT -1822 6869 LT -1821 6871 LT -1820 6873 LT -1819 6875 LT -1819 6877 LT -1819 6879 LT -1819 6879 LT -QS -NP -1819 6919 MT -1819 6921 LT -1819 6923 LT -1820 6924 LT -1821 6926 LT -1822 6928 LT -1823 6929 LT -1824 6931 LT -1826 6932 LT -1828 6933 LT -1830 6934 LT -1832 6934 LT -1834 6934 LT -1834 6934 LT -QS -1941 6863 1964 HL -1925 6919 6879 VL -1964 6934 1941 HL -1964 6895 6934 VL -1952 6895 1964 HL -NP -1941 6863 MT -1939 6864 LT -1937 6864 LT -1935 6865 LT -1933 6865 LT -1931 6867 LT -1930 6868 LT -1928 6869 LT -1927 6871 LT -1926 6873 LT -1926 6875 LT -1925 6877 LT -1925 6879 LT -1925 6879 LT -QS -NP -1925 6919 MT -1925 6921 LT -1925 6923 LT -1926 6924 LT -1927 6926 LT -1928 6928 LT -1929 6929 LT -1931 6931 LT -1932 6932 LT -1934 6933 LT -1936 6934 LT -1938 6934 LT -1940 6934 LT -1941 6934 LT -QS -1988 6863 6934 VL -2027 6934 1988 6863 DL -2027 6863 6934 VL -2074 6934 2051 HL -2090 6879 6919 VL -2051 6863 2074 HL -2051 6934 6863 VL -NP -2074 6934 MT -2076 6934 LT -2078 6934 LT -2080 6933 LT -2082 6932 LT -2084 6931 LT -2085 6930 LT -2087 6928 LT -2088 6927 LT -2089 6925 LT -2089 6923 LT -2090 6921 LT -2090 6919 LT -2090 6919 LT -QS -NP -2090 6879 MT -2090 6877 LT -2090 6875 LT -2089 6873 LT -2088 6872 LT -2087 6870 LT -2086 6868 LT -2084 6867 LT -2083 6866 LT -2081 6865 LT -2079 6864 LT -2077 6864 LT -2075 6863 LT -2074 6863 LT -QS -2649 6863 2673 HL -2633 6919 6879 VL -2673 6934 2649 HL -2673 6895 6934 VL -2661 6895 2673 HL -NP -2649 6863 MT -2647 6864 LT -2645 6864 LT -2643 6865 LT -2641 6865 LT -2640 6867 LT -2638 6868 LT -2637 6869 LT -2636 6871 LT -2635 6873 LT -2634 6875 LT -2634 6877 LT -2633 6879 LT -2633 6879 LT -QS -NP -2633 6919 MT -2634 6921 LT -2634 6923 LT -2635 6924 LT -2635 6926 LT -2636 6928 LT -2638 6929 LT -2639 6931 LT -2641 6932 LT -2643 6933 LT -2645 6934 LT -2646 6934 LT -2648 6934 LT -2649 6934 LT -QS -2696 6863 6934 VL -2736 6934 2696 6863 DL -2736 6863 6934 VL -2783 6934 2759 HL -2799 6879 6919 VL -2759 6863 2783 HL -2759 6934 6863 VL -NP -2783 6934 MT -2785 6934 LT -2787 6934 LT -2789 6933 LT -2791 6932 LT -2792 6931 LT -2794 6930 LT -2795 6928 LT -2796 6927 LT -2797 6925 LT -2798 6923 LT -2798 6921 LT -2799 6919 LT -2799 6919 LT -QS -NP -2799 6879 MT -2799 6877 LT -2798 6875 LT -2798 6873 LT -2797 6872 LT -2796 6870 LT -2794 6868 LT -2793 6867 LT -2791 6866 LT -2789 6865 LT -2788 6864 LT -2786 6864 LT -2784 6863 LT -2783 6863 LT -QS -1 4 255 0 0 1 1 PE -2866 6474 6403 VL -2897 6474 2866 HL -2921 6403 2952 HL -2921 6474 6403 VL -2952 6474 2921 HL -2944 6434 2921 HL -2999 6474 2976 HL -3015 6419 6458 VL -2976 6403 2999 HL -2976 6474 6403 VL -NP -2999 6474 MT -3001 6474 LT -3003 6473 LT -3005 6473 LT -3007 6472 LT -3009 6471 LT -3010 6469 LT -3012 6468 LT -3013 6466 LT -3014 6465 LT -3015 6463 LT -3015 6461 LT -3015 6459 LT -3015 6458 LT -QS -NP -3015 6419 MT -3015 6417 LT -3015 6415 LT -3014 6413 LT -3013 6411 LT -3012 6409 LT -3011 6408 LT -3009 6406 LT -3008 6405 LT -3006 6404 LT -3004 6404 LT -3002 6403 LT -3000 6403 LT -2999 6403 LT -QS -1 4 B 1 1 PE -3121 6545 3070 HL -3198 6545 3147 HL -3274 6545 3223 HL -3351 6545 3300 HL -3427 6545 3376 HL -3504 6545 3453 HL -3580 6545 3529 HL -3657 6545 3606 HL -3734 6545 3683 HL -3779 6545 3759 HL -1 4 B 1 1 PE -2834 5415 5364 VL -2834 5491 5440 VL -2834 5568 5517 VL -2834 5644 5593 VL -2834 5721 5670 VL -2834 5797 5746 VL -2834 5874 5823 VL -2834 5950 5899 VL -2834 6027 5976 VL -2834 6103 6052 VL -2834 6180 6129 VL -2834 6257 6205 VL -2834 6308 6282 VL -0 6190 472 HL -472 5009 0 HL -472 6190 5009 VL -0 5482 5009 VL -0 6190 5718 VL -1 4 0 0 255 1 1 PE -67 5163 5092 VL -91 5092 5163 VL -130 5163 91 5092 DL -130 5092 5163 VL -169 5092 154 5108 DL -169 5163 5092 VL -59 5399 5328 VL -83 5328 5399 VL -122 5399 83 5328 DL -122 5328 5399 VL -146 5399 177 HL -176 5347 146 5399 DL -NP -176 5347 MT -177 5345 LT -177 5343 LT -177 5341 LT -177 5340 LT -QS -NP -177 5340 MT -176 5338 LT -175 5336 LT -174 5335 LT -173 5333 LT -171 5332 LT -170 5331 LT -168 5330 LT -166 5329 LT -164 5329 LT -162 5328 LT -160 5328 LT -158 5329 LT -156 5329 LT -154 5330 LT -153 5331 LT -151 5332 LT -150 5334 LT -148 5335 LT -147 5337 LT -147 5339 LT -146 5340 LT -QS -59 5635 5564 VL -83 5564 5635 VL -122 5635 83 5564 DL -122 5564 5635 VL -161 5564 146 HL -154 5596 161 HL -177 5620 5612 VL -146 5635 161 HL -NP -161 5596 MT -163 5596 LT -165 5595 LT -167 5595 LT -169 5594 LT -171 5593 LT -172 5592 LT -174 5590 LT -175 5588 LT -176 5587 LT -176 5585 LT -177 5583 LT -177 5581 LT -177 5579 LT -177 5577 LT -176 5575 LT -175 5573 LT -174 5571 LT -173 5570 LT -172 5568 LT -170 5567 LT -168 5566 LT -167 5565 LT -165 5565 LT -163 5565 LT -161 5564 LT -QS -NP -177 5612 MT -177 5610 LT -177 5608 LT -176 5606 LT -175 5604 LT -174 5602 LT -173 5601 LT -171 5599 LT -170 5598 LT -168 5597 LT -166 5597 LT -164 5596 LT -162 5596 LT -161 5596 LT -QS -NP -161 5635 MT -163 5635 LT -165 5635 LT -167 5634 LT -169 5633 LT -171 5632 LT -172 5631 LT -174 5629 LT -175 5628 LT -176 5626 LT -176 5624 LT -177 5622 LT -177 5620 LT -177 5620 LT -QS -291 5635 5564 VL -315 5564 5635 VL -354 5635 315 5564 DL -354 5564 5635 VL -405 5604 5635 VL -378 5620 417 HL -394 5564 378 5620 DL -59 5872 5801 VL -83 5801 5872 VL -122 5872 83 5801 DL -122 5801 5872 VL -146 5801 177 HL -146 5832 5801 VL -161 5832 146 HL -177 5856 5848 VL -146 5872 161 HL -NP -177 5848 MT -177 5846 LT -177 5844 LT -176 5842 LT -175 5840 LT -174 5839 LT -173 5837 LT -171 5836 LT -170 5835 LT -168 5834 LT -166 5833 LT -164 5832 LT -162 5832 LT -161 5832 LT -QS -NP -161 5872 MT -163 5871 LT -165 5871 LT -167 5870 LT -169 5870 LT -171 5868 LT -172 5867 LT -174 5866 LT -175 5864 LT -176 5862 LT -176 5860 LT -177 5858 LT -177 5856 LT -177 5856 LT -QS -295 5872 5801 VL -319 5801 5872 VL -358 5872 319 5801 DL -358 5801 5872 VL -382 5856 5842 VL -413 5848 5856 VL -383 5832 398 HL -NP -405 5801 MT -404 5802 LT -402 5803 LT -400 5804 LT -399 5805 LT -397 5807 LT -396 5808 LT -395 5809 LT -393 5811 LT -392 5812 LT -391 5814 LT -390 5816 LT -389 5817 LT -388 5819 LT -387 5821 LT -386 5823 LT -385 5825 LT -384 5826 LT -384 5828 LT -383 5830 LT -383 5832 LT -382 5834 LT -382 5836 LT -382 5838 LT -382 5840 LT -382 5842 LT -QS -NP -382 5856 MT -382 5858 LT -382 5860 LT -383 5862 LT -384 5863 LT -385 5865 LT -386 5867 LT -388 5868 LT -389 5869 LT -391 5870 LT -393 5871 LT -395 5871 LT -397 5872 LT -399 5871 LT -401 5871 LT -403 5871 LT -405 5870 LT -406 5869 LT -408 5868 LT -409 5866 LT -411 5865 LT -412 5863 LT -412 5861 LT -413 5859 LT -413 5857 LT -413 5856 LT -QS -NP -413 5848 MT -413 5846 LT -413 5844 LT -412 5842 LT -411 5840 LT -410 5839 LT -409 5837 LT -407 5836 LT -406 5835 LT -404 5834 LT -402 5833 LT -400 5832 LT -398 5832 LT -398 5832 LT -QS -59 6108 6037 VL -83 6037 6108 VL -122 6108 83 6037 DL -122 6037 6108 VL -177 6037 146 HL -157 6108 177 6037 DL -177 6068 161 HL -1 4 127 d2 1 1 PE -287 5092 311 HL -272 5147 5108 VL -311 5163 287 HL -311 5124 5163 VL -299 5124 311 HL -NP -287 5092 MT -285 5092 LT -283 5093 LT -281 5093 LT -280 5094 LT -278 5095 LT -276 5097 LT -275 5098 LT -274 5100 LT -273 5101 LT -272 5103 LT -272 5105 LT -272 5107 LT -272 5108 LT -QS -NP -272 5147 MT -272 5149 LT -272 5151 LT -273 5153 LT -274 5155 LT -275 5157 LT -276 5158 LT -277 5160 LT -279 5161 LT -281 5162 LT -283 5162 LT -285 5163 LT -287 5163 LT -287 5163 LT -QS -335 5092 5163 VL -374 5163 335 5092 DL -374 5092 5163 VL -421 5163 398 HL -437 5108 5147 VL -398 5092 421 HL -398 5163 5092 VL -NP -421 5163 MT -423 5163 LT -425 5162 LT -427 5162 LT -429 5161 LT -431 5160 LT -432 5159 LT -433 5157 LT -435 5156 LT -436 5154 LT -436 5152 LT -437 5150 LT -437 5148 LT -437 5147 LT -QS -NP -437 5108 MT -437 5106 LT -436 5104 LT -436 5102 LT -435 5100 LT -434 5099 LT -433 5097 LT -431 5096 LT -429 5094 LT -428 5094 LT -426 5093 LT -424 5092 LT -422 5092 LT -421 5092 LT -QS -299 5399 276 5328 DL -323 5328 299 5399 DL -362 5328 378 HL -346 5383 5344 VL -378 5399 362 HL -NP -362 5328 MT -360 5328 LT -358 5329 LT -356 5329 LT -354 5330 LT -353 5331 LT -351 5333 LT -350 5334 LT -349 5336 LT -348 5338 LT -347 5339 LT -347 5341 LT -346 5343 LT -346 5344 LT -QS -NP -346 5383 MT -347 5385 LT -347 5387 LT -348 5389 LT -348 5391 LT -349 5393 LT -351 5394 LT -352 5396 LT -354 5397 LT -356 5398 LT -358 5398 LT -359 5399 LT -361 5399 LT -362 5399 LT -QS -417 5328 433 HL -402 5383 5344 VL -433 5399 417 HL -NP -417 5328 MT -415 5328 LT -413 5329 LT -411 5329 LT -410 5330 LT -408 5331 LT -406 5333 LT -405 5334 LT -404 5336 LT -403 5338 LT -402 5339 LT -402 5341 LT -402 5343 LT -402 5344 LT -QS -NP -402 5383 MT -402 5385 LT -402 5387 LT -403 5389 LT -404 5391 LT -405 5393 LT -406 5394 LT -407 5396 LT -409 5397 LT -411 5398 LT -413 5398 LT -415 5399 LT -417 5399 LT -417 5399 LT -QS -287 6037 311 HL -272 6092 6053 VL -311 6108 287 HL -311 6068 6108 VL -299 6068 311 HL -NP -287 6037 MT -285 6037 LT -283 6037 LT -281 6038 LT -280 6039 LT -278 6040 LT -276 6041 LT -275 6043 LT -274 6044 LT -273 6046 LT -272 6048 LT -272 6050 LT -272 6052 LT -272 6053 LT -QS -NP -272 6092 MT -272 6094 LT -272 6096 LT -273 6098 LT -274 6100 LT -275 6101 LT -276 6103 LT -277 6104 LT -279 6105 LT -281 6106 LT -283 6107 LT -285 6107 LT -287 6108 LT -287 6108 LT -QS -335 6037 6108 VL -374 6108 335 6037 DL -374 6037 6108 VL -421 6108 398 HL -437 6053 6092 VL -398 6037 421 HL -398 6108 6037 VL -NP -421 6108 MT -423 6108 LT -425 6107 LT -427 6107 LT -429 6106 LT -431 6105 LT -432 6103 LT -433 6102 LT -435 6100 LT -436 6098 LT -436 6097 LT -437 6095 LT -437 6093 LT -437 6092 LT -QS -NP -437 6053 MT -437 6051 LT -436 6049 LT -436 6047 LT -435 6045 LT -434 6043 LT -433 6042 LT -431 6040 LT -429 6039 LT -428 6038 LT -426 6038 LT -424 6037 LT -422 6037 LT -421 6037 LT -QS -1 4 B 1 1 PE -760 5364 709 HL -836 5364 785 HL -913 5364 862 HL -989 5364 938 HL -1066 5364 1015 HL -1142 5364 1091 HL -1219 5364 1168 HL -1295 5364 1244 HL -1372 5364 1321 HL -1448 5364 1397 HL -1525 5364 1474 HL -1601 5364 1550 HL -1678 5364 1627 HL -1754 5364 1703 HL -1831 5364 1780 HL -1907 5364 1856 HL -1984 5364 1933 HL -2060 5364 2009 HL -2137 5364 2086 HL -2213 5364 2162 HL -2290 5364 2239 HL -2367 5364 2315 HL -2443 5364 2392 HL -2520 5364 2469 HL -2596 5364 2545 HL -2673 5364 2622 HL -2749 5364 2698 HL -2826 5364 2775 HL -1 4 B 1 1 PE -709 6257 6308 VL -709 6181 6232 VL -709 6104 6155 VL -709 6028 6079 VL -709 5951 6002 VL -709 5875 5926 VL -709 5798 5849 VL -709 5722 5773 VL -709 5645 5696 VL -709 5569 5620 VL -709 5492 5543 VL -709 5416 5467 VL -709 5364 5390 VL -1 4 B 1 1 PE -2783 6308 2834 HL -2707 6308 2758 HL -2630 6308 2681 HL -2554 6308 2605 HL -2477 6308 2528 HL -2401 6308 2452 HL -2324 6308 2375 HL -2247 6308 2298 HL -2171 6308 2222 HL -2094 6308 2145 HL -2018 6308 2069 HL -1941 6308 1992 HL -1865 6308 1916 HL -1788 6308 1839 HL -1712 6308 1763 HL -1635 6308 1686 HL -1559 6308 1610 HL -1482 6308 1533 HL -1406 6308 1457 HL -1329 6308 1380 HL -1253 6308 1304 HL -1176 6308 1227 HL -1100 6308 1151 HL -1023 6308 1074 HL -947 6308 998 HL -870 6308 921 HL -794 6308 845 HL -717 6308 768 HL -1 4 0 255 0 1 1 PE -3329 5702 5734 VL -3349 5688 3343 HL -3362 5734 5702 VL -3343 5748 3349 HL -NP -3343 5688 MT -3341 5689 LT -3339 5689 LT -3337 5690 LT -3335 5691 LT -3333 5692 LT -3332 5694 LT -3331 5695 LT -3330 5697 LT -3330 5699 LT -3329 5701 LT -3329 5702 LT -QS -NP -3362 5702 MT -3362 5700 LT -3362 5698 LT -3361 5696 LT -3360 5694 LT -3359 5693 LT -3357 5691 LT -3355 5690 LT -3354 5689 LT -3352 5689 LT -3350 5689 LT -3349 5688 LT -QS -NP -3349 5748 MT -3351 5747 LT -3353 5747 LT -3355 5746 LT -3357 5745 LT -3358 5744 LT -3360 5742 LT -3361 5741 LT -3361 5739 LT -3362 5737 LT -3362 5735 LT -3362 5734 LT -QS -NP -3329 5734 MT -3330 5736 LT -3330 5738 LT -3331 5740 LT -3332 5742 LT -3333 5744 LT -3335 5745 LT -3336 5746 LT -3338 5747 LT -3340 5747 LT -3342 5748 LT -3343 5748 LT -QS -3382 5731 5688 VL -3415 5688 5731 VL -NP -3382 5731 MT -3382 5733 LT -3382 5735 LT -3383 5737 LT -3384 5739 LT -3385 5741 LT -3386 5742 LT -3388 5744 LT -3389 5745 LT -3391 5746 LT -3393 5747 LT -3395 5747 LT -3397 5747 LT -3399 5748 LT -3401 5747 LT -3403 5747 LT -3405 5746 LT -3406 5745 LT -3408 5744 LT -3410 5743 LT -3411 5742 LT -3412 5740 LT -3413 5738 LT -3414 5736 LT -3414 5735 LT -3415 5733 LT -3415 5731 LT -QS -3474 5688 3434 HL -3454 5748 5688 VL -3493 5734 5728 VL -3520 5728 5734 VL -3495 5703 5700 VL -3518 5700 5703 VL -NP -3493 5734 MT -3494 5736 LT -3494 5738 LT -3495 5740 LT -3496 5742 LT -3497 5744 LT -3499 5745 LT -3500 5746 LT -3502 5747 LT -3504 5747 LT -3506 5748 LT -3508 5747 LT -3510 5747 LT -3512 5746 LT -3514 5745 LT -3515 5744 LT -3517 5743 LT -3518 5741 LT -3519 5739 LT -3519 5737 LT -3520 5735 LT -3520 5734 LT -QS -NP -3520 5728 MT -3520 5726 LT -3519 5724 LT -3518 5722 LT -3517 5720 LT -3516 5719 LT -3515 5717 LT -3513 5716 LT -3511 5716 LT -3509 5715 LT -3507 5715 LT -3505 5715 LT -3503 5715 LT -3501 5716 LT -3500 5717 LT -3498 5718 LT -3497 5719 LT -3495 5721 LT -3494 5723 LT -3494 5725 LT -3494 5727 LT -3493 5728 LT -QS -NP -3495 5703 MT -3495 5705 LT -3496 5707 LT -3497 5709 LT -3498 5711 LT -3499 5712 LT -3501 5713 LT -3503 5714 LT -3505 5715 LT -3507 5715 LT -3509 5715 LT -3511 5714 LT -3512 5713 LT -3514 5712 LT -3515 5711 LT -3517 5709 LT -3517 5707 LT -3518 5705 LT -3518 5703 LT -QS -NP -3518 5700 MT -3518 5698 LT -3517 5696 LT -3517 5694 LT -3515 5693 LT -3514 5691 LT -3512 5690 LT -3510 5689 LT -3509 5689 LT -3507 5688 LT -3505 5689 LT -3503 5689 LT -3501 5690 LT -3499 5691 LT -3498 5693 LT -3497 5694 LT -3496 5696 LT -3495 5698 LT -3495 5700 LT -QS -3566 5702 5734 VL -3585 5688 3579 HL -3598 5734 5702 VL -3579 5748 3585 HL -NP -3579 5688 MT -3577 5689 LT -3575 5689 LT -3573 5690 LT -3571 5691 LT -3570 5692 LT -3568 5694 LT -3567 5695 LT -3566 5697 LT -3566 5699 LT -3566 5701 LT -3566 5702 LT -QS -NP -3598 5702 MT -3598 5700 LT -3598 5698 LT -3597 5696 LT -3596 5694 LT -3595 5693 LT -3593 5691 LT -3592 5690 LT -3590 5689 LT -3588 5689 LT -3586 5689 LT -3585 5688 LT -QS -NP -3585 5748 MT -3587 5747 LT -3589 5747 LT -3591 5746 LT -3593 5745 LT -3594 5744 LT -3596 5742 LT -3597 5741 LT -3598 5739 LT -3598 5737 LT -3598 5735 LT -3598 5734 LT -QS -NP -3566 5734 MT -3566 5736 LT -3566 5738 LT -3567 5740 LT -3568 5742 LT -3569 5744 LT -3571 5745 LT -3572 5746 LT -3574 5747 LT -3576 5747 LT -3578 5748 LT -3579 5748 LT -QS -3618 5731 5688 VL -3651 5688 5731 VL -NP -3618 5731 MT -3618 5733 LT -3619 5735 LT -3619 5737 LT -3620 5739 LT -3621 5741 LT -3622 5742 LT -3624 5744 LT -3625 5745 LT -3627 5746 LT -3629 5747 LT -3631 5747 LT -3633 5747 LT -3635 5748 LT -3637 5747 LT -3639 5747 LT -3641 5746 LT -3642 5745 LT -3644 5744 LT -3646 5743 LT -3647 5742 LT -3648 5740 LT -3649 5738 LT -3650 5736 LT -3651 5735 LT -3651 5733 LT -3651 5731 LT -QS -3710 5688 3671 HL -3690 5748 5688 VL -3756 5702 5713 VL -3730 5708 5702 VL -3755 5721 3743 HL -NP -3736 5748 MT -3738 5746 LT -3740 5745 LT -3741 5744 LT -3743 5743 LT -3744 5741 LT -3746 5740 LT -3747 5739 LT -3748 5737 LT -3749 5735 LT -3750 5734 LT -3751 5732 LT -3752 5730 LT -3753 5728 LT -3754 5726 LT -3754 5725 LT -3755 5723 LT -3755 5721 LT -3756 5719 LT -3756 5717 LT -3756 5715 LT -3756 5713 LT -QS -NP -3756 5702 MT -3756 5700 LT -3755 5698 LT -3755 5696 LT -3754 5694 LT -3752 5693 LT -3751 5691 LT -3749 5690 LT -3747 5689 LT -3745 5689 LT -3743 5689 LT -3741 5689 LT -3739 5689 LT -3737 5690 LT -3736 5691 LT -3734 5692 LT -3733 5693 LT -3732 5695 LT -3731 5697 LT -3730 5699 LT -3730 5701 LT -3730 5702 LT -QS -NP -3730 5708 MT -3730 5710 LT -3730 5712 LT -3731 5714 LT -3732 5716 LT -3733 5717 LT -3735 5719 LT -3736 5720 LT -3738 5721 LT -3740 5721 LT -3742 5721 LT -3743 5721 LT -QS -3329 5938 5971 VL -3349 5925 3343 HL -3362 5971 5938 VL -3343 5984 3349 HL -NP -3343 5925 MT -3341 5925 LT -3339 5925 LT -3337 5926 LT -3335 5927 LT -3334 5928 LT -3332 5930 LT -3331 5932 LT -3330 5933 LT -3330 5935 LT -3329 5937 LT -3329 5938 LT -QS -NP -3362 5938 MT -3362 5936 LT -3362 5934 LT -3361 5932 LT -3360 5930 LT -3359 5929 LT -3357 5927 LT -3355 5926 LT -3354 5925 LT -3352 5925 LT -3350 5925 LT -3349 5925 LT -QS -NP -3349 5984 MT -3351 5984 LT -3353 5983 LT -3355 5982 LT -3357 5981 LT -3358 5980 LT -3360 5979 LT -3361 5977 LT -3361 5975 LT -3362 5973 LT -3362 5971 LT -3362 5971 LT -QS -NP -3329 5971 MT -3330 5973 LT -3330 5975 LT -3331 5976 LT -3332 5978 LT -3333 5980 LT -3335 5981 LT -3336 5982 LT -3338 5983 LT -3340 5983 LT -3342 5984 LT -3343 5984 LT -QS -3382 5967 5925 VL -3415 5925 5967 VL -NP -3382 5967 MT -3382 5969 LT -3382 5971 LT -3383 5973 LT -3384 5975 LT -3385 5977 LT -3386 5978 LT -3388 5980 LT -3389 5981 LT -3391 5982 LT -3393 5983 LT -3395 5983 LT -3397 5984 LT -3399 5984 LT -3401 5984 LT -3403 5983 LT -3405 5983 LT -3406 5982 LT -3408 5981 LT -3410 5979 LT -3411 5978 LT -3412 5976 LT -3413 5974 LT -3414 5973 LT -3414 5971 LT -3415 5969 LT -3415 5967 LT -QS -3474 5925 3434 HL -3454 5984 5925 VL -3493 5971 5959 VL -3520 5964 5971 VL -3494 5951 3507 HL -NP -3513 5925 MT -3511 5926 LT -3510 5927 LT -3508 5928 LT -3507 5929 LT -3505 5931 LT -3504 5932 LT -3503 5934 LT -3501 5935 LT -3500 5937 LT -3499 5939 LT -3498 5940 LT -3497 5942 LT -3496 5944 LT -3496 5946 LT -3495 5948 LT -3495 5950 LT -3494 5952 LT -3494 5954 LT -3494 5956 LT -3493 5958 LT -3493 5959 LT -QS -NP -3493 5971 MT -3494 5973 LT -3494 5975 LT -3495 5976 LT -3496 5978 LT -3497 5980 LT -3499 5981 LT -3500 5982 LT -3502 5983 LT -3504 5983 LT -3506 5984 LT -3508 5984 LT -3510 5983 LT -3512 5983 LT -3514 5982 LT -3515 5980 LT -3517 5979 LT -3518 5977 LT -3519 5976 LT -3519 5974 LT -3520 5972 LT -3520 5971 LT -QS -NP -3520 5964 MT -3520 5962 LT -3519 5960 LT -3518 5958 LT -3517 5956 LT -3516 5955 LT -3515 5954 LT -3513 5953 LT -3511 5952 LT -3509 5951 LT -3507 5951 LT -3507 5951 LT -QS -3566 5938 5971 VL -3585 5925 3579 HL -3598 5971 5938 VL -3579 5984 3585 HL -NP -3579 5925 MT -3577 5925 LT -3575 5925 LT -3573 5926 LT -3571 5927 LT -3570 5928 LT -3568 5930 LT -3567 5932 LT -3566 5933 LT -3566 5935 LT -3566 5937 LT -3566 5938 LT -QS -NP -3598 5938 MT -3598 5936 LT -3598 5934 LT -3597 5932 LT -3596 5930 LT -3595 5929 LT -3593 5927 LT -3592 5926 LT -3590 5925 LT -3588 5925 LT -3586 5925 LT -3585 5925 LT -QS -NP -3585 5984 MT -3587 5984 LT -3589 5983 LT -3591 5982 LT -3593 5981 LT -3594 5980 LT -3596 5979 LT -3597 5977 LT -3598 5975 LT -3598 5973 LT -3598 5971 LT -3598 5971 LT -QS -NP -3566 5971 MT -3566 5973 LT -3566 5975 LT -3567 5976 LT -3568 5978 LT -3569 5980 LT -3571 5981 LT -3572 5982 LT -3574 5983 LT -3576 5983 LT -3578 5984 LT -3579 5984 LT -QS -3618 5967 5925 VL -3651 5925 5967 VL -NP -3618 5967 MT -3618 5969 LT -3619 5971 LT -3619 5973 LT -3620 5975 LT -3621 5977 LT -3622 5978 LT -3624 5980 LT -3625 5981 LT -3627 5982 LT -3629 5983 LT -3631 5983 LT -3633 5984 LT -3635 5984 LT -3637 5984 LT -3639 5983 LT -3641 5983 LT -3642 5982 LT -3644 5981 LT -3646 5979 LT -3647 5978 LT -3648 5976 LT -3649 5974 LT -3650 5973 LT -3651 5971 LT -3651 5969 LT -3651 5967 LT -QS -3710 5925 3671 HL -3690 5984 5925 VL -3756 5925 3730 HL -3740 5984 3756 5925 DL -3756 5951 3743 HL -3326 6174 6207 VL -3346 6161 3339 HL -3359 6207 6174 VL -3339 6220 3346 HL -NP -3339 6161 MT -3337 6161 LT -3335 6161 LT -3333 6162 LT -3332 6163 LT -3330 6165 LT -3329 6166 LT -3328 6168 LT -3327 6170 LT -3326 6171 LT -3326 6173 LT -3326 6174 LT -QS -NP -3359 6174 MT -3359 6172 LT -3358 6170 LT -3358 6168 LT -3357 6166 LT -3355 6165 LT -3354 6164 LT -3352 6162 LT -3350 6162 LT -3348 6161 LT -3346 6161 LT -3346 6161 LT -QS -NP -3346 6220 MT -3348 6220 LT -3350 6219 LT -3352 6219 LT -3353 6218 LT -3355 6216 LT -3356 6215 LT -3357 6213 LT -3358 6211 LT -3359 6209 LT -3359 6207 LT -3359 6207 LT -QS -NP -3326 6207 MT -3326 6209 LT -3327 6211 LT -3328 6213 LT -3329 6214 LT -3330 6216 LT -3331 6217 LT -3333 6218 LT -3335 6219 LT -3337 6220 LT -3339 6220 LT -3339 6220 LT -QS -3379 6203 6161 VL -3411 6161 6203 VL -NP -3379 6203 MT -3379 6205 LT -3379 6207 LT -3380 6209 LT -3381 6211 LT -3382 6213 LT -3383 6214 LT -3384 6216 LT -3386 6217 LT -3388 6218 LT -3389 6219 LT -3391 6219 LT -3393 6220 LT -3395 6220 LT -3397 6220 LT -3399 6219 LT -3401 6219 LT -3403 6218 LT -3405 6217 LT -3406 6215 LT -3408 6214 LT -3409 6212 LT -3410 6211 LT -3411 6209 LT -3411 6207 LT -3411 6205 LT -3411 6203 LT -QS -3471 6161 3431 HL -3451 6220 6161 VL -3513 6194 6220 VL -3490 6207 3523 HL -3503 6161 3490 6207 DL -3566 6174 6207 VL -3585 6161 3579 HL -3598 6207 6174 VL -3579 6220 3585 HL -NP -3579 6161 MT -3577 6161 LT -3575 6161 LT -3573 6162 LT -3571 6163 LT -3570 6165 LT -3568 6166 LT -3567 6168 LT -3566 6170 LT -3566 6171 LT -3566 6173 LT -3566 6174 LT -QS -NP -3598 6174 MT -3598 6172 LT -3598 6170 LT -3597 6168 LT -3596 6166 LT -3595 6165 LT -3593 6164 LT -3592 6162 LT -3590 6162 LT -3588 6161 LT -3586 6161 LT -3585 6161 LT -QS -NP -3585 6220 MT -3587 6220 LT -3589 6219 LT -3591 6219 LT -3593 6218 LT -3594 6216 LT -3596 6215 LT -3597 6213 LT -3598 6211 LT -3598 6209 LT -3598 6207 LT -3598 6207 LT -QS -NP -3566 6207 MT -3566 6209 LT -3566 6211 LT -3567 6213 LT -3568 6214 LT -3569 6216 LT -3571 6217 LT -3572 6218 LT -3574 6219 LT -3576 6220 LT -3578 6220 LT -3579 6220 LT -QS -3618 6203 6161 VL -3651 6161 6203 VL -NP -3618 6203 MT -3618 6205 LT -3619 6207 LT -3619 6209 LT -3620 6211 LT -3621 6213 LT -3622 6214 LT -3624 6216 LT -3625 6217 LT -3627 6218 LT -3629 6219 LT -3631 6219 LT -3633 6220 LT -3635 6220 LT -3637 6220 LT -3639 6219 LT -3641 6219 LT -3642 6218 LT -3644 6217 LT -3646 6215 LT -3647 6214 LT -3648 6212 LT -3649 6211 LT -3650 6209 LT -3651 6207 LT -3651 6205 LT -3651 6203 LT -QS -3710 6161 3671 HL -3690 6220 6161 VL -3730 6161 3756 HL -3730 6187 6161 VL -3743 6187 3730 HL -3756 6207 6200 VL -3730 6220 3743 HL -NP -3756 6200 MT -3756 6198 LT -3755 6196 LT -3755 6194 LT -3754 6193 LT -3752 6191 LT -3751 6190 LT -3749 6189 LT -3747 6188 LT -3745 6187 LT -3743 6187 LT -3743 6187 LT -QS -NP -3743 6220 MT -3745 6220 LT -3747 6219 LT -3749 6219 LT -3750 6218 LT -3752 6216 LT -3753 6215 LT -3754 6213 LT -3755 6211 LT -3756 6209 LT -3756 6207 LT -3756 6207 LT -QS -3329 6410 6443 VL -3349 6397 3343 HL -3362 6443 6410 VL -3343 6456 3349 HL -NP -3343 6397 MT -3341 6397 LT -3339 6398 LT -3337 6398 LT -3335 6399 LT -3334 6401 LT -3332 6402 LT -3331 6404 LT -3330 6406 LT -3330 6408 LT -3329 6410 LT -3329 6410 LT -QS -NP -3362 6410 MT -3362 6408 LT -3362 6406 LT -3361 6404 LT -3360 6403 LT -3359 6401 LT -3357 6400 LT -3355 6399 LT -3354 6398 LT -3352 6397 LT -3350 6397 LT -3349 6397 LT -QS -NP -3349 6456 MT -3351 6456 LT -3353 6455 LT -3355 6455 LT -3357 6454 LT -3358 6452 LT -3360 6451 LT -3361 6449 LT -3361 6447 LT -3362 6445 LT -3362 6443 LT -3362 6443 LT -QS -NP -3329 6443 MT -3330 6445 LT -3330 6447 LT -3331 6449 LT -3332 6450 LT -3333 6452 LT -3335 6453 LT -3336 6454 LT -3338 6455 LT -3340 6456 LT -3342 6456 LT -3343 6456 LT -QS -3382 6440 6397 VL -3415 6397 6440 VL -NP -3382 6440 MT -3382 6442 LT -3382 6444 LT -3383 6446 LT -3384 6447 LT -3385 6449 LT -3386 6451 LT -3388 6452 LT -3389 6453 LT -3391 6454 LT -3393 6455 LT -3395 6456 LT -3397 6456 LT -3399 6456 LT -3401 6456 LT -3403 6456 LT -3405 6455 LT -3406 6454 LT -3408 6453 LT -3410 6452 LT -3411 6450 LT -3412 6449 LT -3413 6447 LT -3414 6445 LT -3414 6443 LT -3415 6441 LT -3415 6440 LT -QS -3474 6397 3434 HL -3454 6456 6397 VL -3493 6456 3520 HL -3519 6412 3493 6456 DL -NP -3519 6412 MT -3520 6411 LT -3520 6409 LT -3519 6407 LT -QS -NP -3519 6407 MT -3519 6405 LT -3518 6403 LT -3517 6402 LT -3515 6400 LT -3513 6399 LT -3512 6398 LT -3510 6397 LT -3508 6397 LT -3506 6397 LT -3504 6397 LT -3502 6398 LT -3500 6399 LT -3498 6400 LT -3497 6401 LT -3496 6403 LT -3495 6405 LT -3494 6406 LT -3494 6407 LT -QS -3566 6410 6443 VL -3585 6397 3579 HL -3598 6443 6410 VL -3579 6456 3585 HL -NP -3579 6397 MT -3577 6397 LT -3575 6398 LT -3573 6398 LT -3571 6399 LT -3570 6401 LT -3568 6402 LT -3567 6404 LT -3566 6406 LT -3566 6408 LT -3566 6410 LT -3566 6410 LT -QS -NP -3598 6410 MT -3598 6408 LT -3598 6406 LT -3597 6404 LT -3596 6403 LT -3595 6401 LT -3593 6400 LT -3592 6399 LT -3590 6398 LT -3588 6397 LT -3586 6397 LT -3585 6397 LT -QS -NP -3585 6456 MT -3587 6456 LT -3589 6455 LT -3591 6455 LT -3593 6454 LT -3594 6452 LT -3596 6451 LT -3597 6449 LT -3598 6447 LT -3598 6445 LT -3598 6443 LT -3598 6443 LT -QS -NP -3566 6443 MT -3566 6445 LT -3566 6447 LT -3567 6449 LT -3568 6450 LT -3569 6452 LT -3571 6453 LT -3572 6454 LT -3574 6455 LT -3576 6456 LT -3578 6456 LT -3579 6456 LT -QS -3618 6440 6397 VL -3651 6397 6440 VL -NP -3618 6440 MT -3618 6442 LT -3619 6444 LT -3619 6446 LT -3620 6447 LT -3621 6449 LT -3622 6451 LT -3624 6452 LT -3625 6453 LT -3627 6454 LT -3629 6455 LT -3631 6456 LT -3633 6456 LT -3635 6456 LT -3637 6456 LT -3639 6456 LT -3641 6455 LT -3642 6454 LT -3644 6453 LT -3646 6452 LT -3647 6450 LT -3648 6449 LT -3649 6447 LT -3650 6445 LT -3651 6443 LT -3651 6441 LT -3651 6440 LT -QS -3710 6397 3671 HL -3690 6456 6397 VL -3743 6397 3730 HL -3736 6423 3743 HL -3756 6443 6436 VL -3730 6456 3743 HL -NP -3743 6423 MT -3745 6423 LT -3747 6423 LT -3749 6422 LT -3750 6421 LT -3752 6420 LT -3753 6418 LT -3754 6416 LT -3755 6415 LT -3756 6413 LT -3756 6411 LT -3756 6409 LT -3755 6407 LT -3755 6405 LT -3754 6403 LT -3753 6401 LT -3751 6400 LT -3750 6399 LT -3748 6398 LT -3746 6397 LT -3744 6397 LT -3743 6397 LT -QS -NP -3756 6436 MT -3756 6434 LT -3755 6432 LT -3755 6431 LT -3754 6429 LT -3752 6427 LT -3751 6426 LT -3749 6425 LT -3747 6424 LT -3745 6424 LT -3743 6423 LT -3743 6423 LT -QS -NP -3743 6456 MT -3745 6456 LT -3747 6455 LT -3749 6455 LT -3750 6454 LT -3752 6452 LT -3753 6451 LT -3754 6449 LT -3755 6447 LT -3756 6445 LT -3756 6443 LT -3756 6443 LT -QS -3572 6646 6679 VL -3592 6633 3585 HL -3605 6679 6646 VL -3585 6692 3592 HL -NP -3585 6633 MT -3583 6633 LT -3581 6634 LT -3580 6635 LT -3578 6636 LT -3576 6637 LT -3575 6638 LT -3574 6640 LT -3573 6642 LT -3572 6644 LT -3572 6646 LT -3572 6646 LT -QS -NP -3605 6646 MT -3605 6644 LT -3604 6642 LT -3604 6641 LT -3603 6639 LT -3601 6637 LT -3600 6636 LT -3598 6635 LT -3596 6634 LT -3594 6633 LT -3592 6633 LT -3592 6633 LT -QS -NP -3592 6692 MT -3594 6692 LT -3596 6692 LT -3598 6691 LT -3599 6690 LT -3601 6689 LT -3602 6687 LT -3603 6685 LT -3604 6684 LT -3605 6682 LT -3605 6680 LT -3605 6679 LT -QS -NP -3572 6679 MT -3572 6681 LT -3573 6683 LT -3574 6685 LT -3575 6687 LT -3576 6688 LT -3577 6690 LT -3579 6691 LT -3581 6691 LT -3583 6692 LT -3585 6692 LT -3585 6692 LT -QS -3625 6676 6633 VL -3657 6633 6676 VL -NP -3625 6676 MT -3625 6678 LT -3625 6680 LT -3626 6682 LT -3627 6684 LT -3628 6685 LT -3629 6687 LT -3630 6688 LT -3632 6689 LT -3634 6690 LT -3635 6691 LT -3637 6692 LT -3639 6692 LT -3641 6692 LT -3643 6692 LT -3645 6692 LT -3647 6691 LT -3649 6690 LT -3651 6689 LT -3652 6688 LT -3654 6686 LT -3655 6685 LT -3656 6683 LT -3657 6681 LT -3657 6679 LT -3657 6677 LT -3657 6676 LT -QS -3717 6633 3677 HL -3697 6692 6633 VL -3749 6633 3736 6646 DL -3749 6692 6633 VL -2857 6646 6679 VL -2877 6633 2870 HL -2890 6679 6646 VL -2870 6692 2877 HL -NP -2870 6633 MT -2868 6633 LT -2866 6634 LT -2864 6635 LT -2863 6636 LT -2861 6637 LT -2860 6638 LT -2859 6640 LT -2858 6642 LT -2857 6644 LT -2857 6646 LT -2857 6646 LT -QS -NP -2890 6646 MT -2890 6644 LT -2889 6642 LT -2889 6641 LT -2888 6639 LT -2886 6637 LT -2885 6636 LT -2883 6635 LT -2881 6634 LT -2879 6633 LT -2877 6633 LT -2877 6633 LT -QS -NP -2877 6692 MT -2879 6692 LT -2881 6692 LT -2883 6691 LT -2884 6690 LT -2886 6689 LT -2887 6687 LT -2888 6685 LT -2889 6684 LT -2890 6682 LT -2890 6680 LT -2890 6679 LT -QS -NP -2857 6679 MT -2857 6681 LT -2858 6683 LT -2858 6685 LT -2859 6687 LT -2861 6688 LT -2862 6690 LT -2864 6691 LT -2866 6691 LT -2868 6692 LT -2870 6692 LT -2870 6692 LT -QS -2910 6676 6633 VL -2942 6633 6676 VL -NP -2910 6676 MT -2910 6678 LT -2910 6680 LT -2911 6682 LT -2912 6684 LT -2913 6685 LT -2914 6687 LT -2915 6688 LT -2917 6689 LT -2919 6690 LT -2920 6691 LT -2922 6692 LT -2924 6692 LT -2926 6692 LT -2928 6692 LT -2930 6692 LT -2932 6691 LT -2934 6690 LT -2936 6689 LT -2937 6688 LT -2939 6686 LT -2940 6685 LT -2941 6683 LT -2942 6681 LT -2942 6679 LT -2942 6677 LT -2942 6676 LT -QS -3001 6633 2962 HL -2982 6692 6633 VL -NP -3040 6636 MT -3039 6635 LT -3037 6634 LT -3035 6633 LT -3033 6633 LT -3031 6634 LT -3030 6635 LT -3028 6636 LT -3028 6636 LT -QS -NP -3028 6636 MT -3027 6638 LT -3026 6640 LT -3025 6642 LT -3024 6643 LT -3024 6645 LT -3023 6647 LT -3023 6649 LT -3022 6650 LT -QS -NP -3022 6676 MT -3023 6678 LT -3023 6680 LT -3024 6682 LT -3025 6683 LT -3026 6685 LT -3027 6687 LT -3028 6689 LT -3028 6689 LT -QS -NP -3028 6689 MT -3030 6691 LT -3031 6692 LT -3033 6692 LT -3035 6692 LT -3037 6692 LT -3039 6691 LT -3040 6689 LT -3040 6689 LT -QS -NP -3040 6689 MT -3041 6687 LT -3042 6686 LT -3043 6684 LT -3044 6682 LT -3045 6680 LT -3045 6678 LT -3046 6676 LT -3046 6676 LT -QS -NP -3046 6676 MT -3046 6674 LT -3047 6672 LT -3047 6670 LT -3047 6668 LT -3047 6666 LT -3047 6664 LT -3047 6663 LT -QS -NP -3047 6663 MT -3047 6661 LT -3047 6659 LT -3047 6657 LT -3047 6655 LT -3047 6653 LT -3046 6651 LT -3046 6650 LT -QS -NP -3046 6650 MT -3046 6648 LT -3045 6646 LT -3044 6644 LT -3044 6642 LT -3043 6640 LT -3042 6638 LT -3041 6637 LT -3040 6636 LT -QS -NP -3021 6663 MT -3021 6665 LT -3021 6667 LT -3021 6669 LT -3022 6671 LT -3022 6673 LT -3022 6675 LT -3022 6676 LT -QS -NP -3022 6650 MT -3022 6652 LT -3022 6654 LT -3022 6656 LT -3021 6658 LT -3021 6660 LT -3021 6662 LT -3021 6663 LT -QS -1 4 B 1 1 PE -1366 5777 1327 5895 DL -1406 5895 1366 5777 DL -1395 5862 1338 HL -1471 5777 1497 HL -1445 5869 5803 VL -1497 5895 1471 HL -NP -1471 5777 MT -1469 5777 LT -1467 5777 LT -1465 5778 LT -1463 5778 LT -1461 5779 LT -1460 5780 LT -1458 5781 LT -1456 5782 LT -1455 5783 LT -1453 5784 LT -1452 5786 LT -1450 5787 LT -1449 5789 LT -1448 5791 LT -1447 5792 LT -1447 5794 LT -1446 5796 LT -1445 5798 LT -1445 5800 LT -1445 5802 LT -1445 5803 LT -QS -NP -1445 5869 MT -1445 5871 LT -1445 5873 LT -1446 5875 LT -1446 5877 LT -1447 5879 LT -1448 5881 LT -1449 5882 LT -1450 5884 LT -1451 5886 LT -1452 5887 LT -1454 5888 LT -1455 5890 LT -1457 5891 LT -1459 5892 LT -1460 5893 LT -1462 5894 LT -1464 5894 LT -1466 5895 LT -1468 5895 LT -1470 5895 LT -1471 5895 LT -QS -1537 5777 1589 HL -1537 5895 5777 VL -1589 5895 1537 HL -1576 5830 1537 HL -1707 5895 1629 5777 DL -1707 5777 1629 5895 DL -1835 5777 1888 HL -1835 5895 5777 VL -1888 5830 1835 HL -1927 5777 5895 VL -1967 5777 1927 HL -1993 5816 5803 VL -1927 5843 1967 HL -NP -1993 5803 MT -1993 5801 LT -1992 5799 LT -1992 5797 LT -1992 5795 LT -1991 5794 LT -1990 5792 LT -1989 5790 LT -1988 5788 LT -1987 5787 LT -1985 5785 LT -1984 5784 LT -1983 5782 LT -1981 5781 LT -1979 5780 LT -1977 5779 LT -1976 5779 LT -1974 5778 LT -1972 5778 LT -1970 5777 LT -1968 5777 LT -1967 5777 LT -QS -NP -1967 5843 MT -1969 5843 LT -1971 5842 LT -1972 5842 LT -1974 5841 LT -1976 5841 LT -1978 5840 LT -1980 5839 LT -1982 5838 LT -1983 5837 LT -1985 5835 LT -1986 5834 LT -1987 5832 LT -1988 5831 LT -1990 5829 LT -1990 5827 LT -1991 5825 LT -1992 5824 LT -1992 5822 LT -1993 5820 LT -1993 5818 LT -1993 5816 LT -QS -2058 5777 2098 HL -2032 5869 5803 VL -2098 5895 2058 HL -2098 5830 5895 VL -2078 5830 2098 HL -NP -2058 5777 MT -2056 5777 LT -2054 5777 LT -2052 5778 LT -2050 5778 LT -2049 5779 LT -2047 5780 LT -2045 5781 LT -2043 5782 LT -2042 5783 LT -2040 5784 LT -2039 5786 LT -2038 5787 LT -2036 5789 LT -2035 5791 LT -2034 5792 LT -2034 5794 LT -2033 5796 LT -2033 5798 LT -2032 5800 LT -2032 5802 LT -2032 5803 LT -QS -NP -2032 5869 MT -2032 5871 LT -2032 5873 LT -2033 5875 LT -2033 5877 LT -2034 5879 LT -2035 5881 LT -2036 5882 LT -2037 5884 LT -2038 5886 LT -2039 5887 LT -2041 5888 LT -2042 5890 LT -2044 5891 LT -2046 5892 LT -2048 5893 LT -2049 5894 LT -2051 5894 LT -2053 5895 LT -2055 5895 LT -2057 5895 LT -2058 5895 LT -QS -2176 5777 2137 5895 DL -2216 5895 2176 5777 DL -2205 5862 2148 HL -636 5009 682 5062 DL -590 5062 636 5009 DL -768 5009 814 5062 DL -722 5062 768 5009 DL -941 5009 5128 VL -981 5009 941 HL -1007 5049 5036 VL -941 5075 981 HL -NP -1007 5036 MT -1007 5034 LT -1007 5032 LT -1006 5030 LT -1006 5028 LT -1005 5026 LT -1004 5024 LT -1003 5022 LT -1002 5021 LT -1001 5019 LT -1000 5018 LT -998 5016 LT -997 5015 LT -995 5014 LT -993 5013 LT -992 5012 LT -990 5011 LT -988 5010 LT -986 5010 LT -984 5010 LT -982 5010 LT -981 5009 LT -QS -NP -981 5075 MT -983 5075 LT -985 5075 LT -987 5074 LT -989 5074 LT -991 5073 LT -992 5072 LT -994 5071 LT -996 5070 LT -997 5069 LT -999 5068 LT -1000 5066 LT -1002 5065 LT -1003 5063 LT -1004 5061 LT -1005 5060 LT -1005 5058 LT -1006 5056 LT -1007 5054 LT -1007 5052 LT -1007 5050 LT -1007 5049 LT -QS -1079 5049 1053 HL -1099 5128 5069 VL -1066 5128 1099 HL -1099 5088 1066 HL -NP -1099 5069 MT -1099 5067 LT -1098 5065 LT -1098 5063 LT -1097 5061 LT -1096 5059 LT -1095 5057 LT -1094 5056 LT -1093 5054 LT -1091 5053 LT -1090 5052 LT -1088 5051 LT -1086 5050 LT -1084 5049 LT -1082 5049 LT -1080 5049 LT -1079 5049 LT -QS -NP -1066 5088 MT -1064 5088 LT -1062 5089 LT -1060 5089 LT -1058 5090 LT -1056 5091 LT -1055 5092 LT -1053 5093 LT -1052 5094 LT -1050 5096 LT -1049 5098 LT -1048 5099 LT -1048 5101 LT -1047 5103 LT -1047 5105 LT -1046 5107 LT -1046 5109 LT -1047 5111 LT -1047 5113 LT -1048 5115 LT -1048 5117 LT -1049 5118 LT -1051 5120 LT -1052 5122 LT -1053 5123 LT -1055 5124 LT -1057 5125 LT -1059 5126 LT -1060 5127 LT -1062 5127 LT -1064 5127 LT -1066 5128 LT -QS -1138 5049 5128 VL -1164 5049 1138 HL -NP -1178 5062 MT -1177 5060 LT -1177 5058 LT -1176 5056 LT -1175 5054 LT -1174 5053 LT -1172 5052 LT -1171 5050 LT -1169 5050 LT -1167 5049 LT -1165 5049 LT -1164 5049 LT -QS -1250 5049 1224 HL -1269 5128 5069 VL -1237 5128 1269 HL -1269 5088 1237 HL -NP -1269 5069 MT -1269 5067 LT -1269 5065 LT -1269 5063 LT -1268 5061 LT -1267 5059 LT -1266 5057 LT -1265 5056 LT -1263 5054 LT -1262 5053 LT -1260 5052 LT -1258 5051 LT -1257 5050 LT -1255 5049 LT -1253 5049 LT -1251 5049 LT -1250 5049 LT -QS -NP -1237 5088 MT -1235 5088 LT -1233 5089 LT -1231 5089 LT -1229 5090 LT -1227 5091 LT -1225 5092 LT -1224 5093 LT -1222 5094 LT -1221 5096 LT -1220 5098 LT -1219 5099 LT -1218 5101 LT -1218 5103 LT -1217 5105 LT -1217 5107 LT -1217 5109 LT -1217 5111 LT -1218 5113 LT -1218 5115 LT -1219 5117 LT -1220 5118 LT -1221 5120 LT -1223 5122 LT -1224 5123 LT -1226 5124 LT -1227 5125 LT -1229 5126 LT -1231 5127 LT -1233 5127 LT -1235 5127 LT -1237 5128 LT -QS -1309 5114 5009 VL -NP -1309 5114 MT -1309 5116 LT -1309 5118 LT -1310 5120 LT -1311 5122 LT -1312 5124 LT -1314 5125 LT -1316 5126 LT -1317 5127 LT -1319 5127 LT -1321 5128 LT -1322 5128 LT -QS -1361 5114 5009 VL -NP -1361 5114 MT -1361 5116 LT -1362 5118 LT -1363 5120 LT -1364 5122 LT -1365 5124 LT -1366 5125 LT -1368 5126 LT -1370 5127 LT -1372 5127 LT -1374 5128 LT -1374 5128 LT -QS -1466 5088 1414 HL -1466 5075 5088 VL -1414 5108 5075 VL -1466 5128 1433 HL -NP -1466 5075 MT -1466 5073 LT -1466 5071 LT -1466 5069 LT -1465 5067 LT -1464 5065 LT -1464 5063 LT -1463 5062 LT -1462 5060 LT -1460 5058 LT -1459 5057 LT -1458 5056 LT -1456 5054 LT -1454 5053 LT -1453 5052 LT -1451 5051 LT -1449 5050 LT -1447 5050 LT -1445 5049 LT -1443 5049 LT -1441 5049 LT -1439 5049 LT -1437 5049 LT -1435 5049 LT -1433 5050 LT -1431 5050 LT -1430 5051 LT -1428 5052 LT -1426 5053 LT -1424 5054 LT -1423 5055 LT -1421 5057 LT -1420 5058 LT -1419 5060 LT -1418 5061 LT -1417 5063 LT -1416 5065 LT -1415 5067 LT -1415 5069 LT -1414 5071 LT -1414 5073 LT -1414 5075 LT -1414 5075 LT -QS -NP -1414 5108 MT -1414 5110 LT -1414 5112 LT -1415 5114 LT -1415 5116 LT -1416 5117 LT -1417 5119 LT -1419 5121 LT -1420 5122 LT -1421 5123 LT -1423 5125 LT -1425 5126 LT -1427 5126 LT -1429 5127 LT -1431 5127 LT -1433 5128 LT -1433 5128 LT -QS -1506 5114 5009 VL -NP -1506 5114 MT -1506 5116 LT -1506 5118 LT -1507 5120 LT -1508 5122 LT -1509 5124 LT -1511 5125 LT -1512 5126 LT -1514 5127 LT -1516 5127 LT -1518 5128 LT -1519 5128 LT -QS -1647 5009 5128 VL -1686 5009 1647 HL -1712 5049 5036 VL -1647 5075 1686 HL -NP -1712 5036 MT -1712 5034 LT -1712 5032 LT -1712 5030 LT -1711 5028 LT -1710 5026 LT -1710 5024 LT -1709 5022 LT -1708 5021 LT -1706 5019 LT -1705 5018 LT -1704 5016 LT -1702 5015 LT -1700 5014 LT -1699 5013 LT -1697 5012 LT -1695 5011 LT -1693 5010 LT -1691 5010 LT -1689 5010 LT -1687 5010 LT -1686 5009 LT -QS -NP -1686 5075 MT -1688 5075 LT -1690 5075 LT -1692 5074 LT -1694 5074 LT -1696 5073 LT -1698 5072 LT -1699 5071 LT -1701 5070 LT -1703 5069 LT -1704 5068 LT -1706 5066 LT -1707 5065 LT -1708 5063 LT -1709 5061 LT -1710 5060 LT -1711 5058 LT -1711 5056 LT -1712 5054 LT -1712 5052 LT -1712 5050 LT -1712 5049 LT -QS -1752 5101 5075 VL -1804 5075 5101 VL -NP -1752 5101 MT -1752 5103 LT -1752 5105 LT -1752 5107 LT -1753 5109 LT -1754 5111 LT -1754 5113 LT -1755 5115 LT -1756 5116 LT -1758 5118 LT -1759 5119 LT -1760 5121 LT -1762 5122 LT -1764 5123 LT -1765 5124 LT -1767 5125 LT -1769 5126 LT -1771 5127 LT -1773 5127 LT -1775 5127 LT -1777 5128 LT -1779 5128 LT -1781 5127 LT -1783 5127 LT -1785 5127 LT -1787 5126 LT -1788 5125 LT -1790 5124 LT -1792 5123 LT -1794 5122 LT -1795 5121 LT -1797 5120 LT -1798 5118 LT -1799 5117 LT -1800 5115 LT -1801 5113 LT -1802 5111 LT -1803 5110 LT -1803 5108 LT -1804 5106 LT -1804 5104 LT -1804 5102 LT -1804 5101 LT -QS -NP -1804 5075 MT -1804 5073 LT -1804 5071 LT -1803 5069 LT -1803 5067 LT -1802 5065 LT -1801 5063 LT -1800 5062 LT -1799 5060 LT -1798 5058 LT -1797 5057 LT -1795 5056 LT -1794 5054 LT -1792 5053 LT -1791 5052 LT -1789 5051 LT -1787 5050 LT -1785 5050 LT -1783 5049 LT -1781 5049 LT -1779 5049 LT -1777 5049 LT -1775 5049 LT -1773 5049 LT -1771 5050 LT -1769 5050 LT -1767 5051 LT -1766 5052 LT -1764 5053 LT -1762 5054 LT -1761 5055 LT -1759 5057 LT -1758 5058 LT -1757 5060 LT -1755 5061 LT -1755 5063 LT -1754 5065 LT -1753 5067 LT -1752 5069 LT -1752 5071 LT -1752 5073 LT -1752 5075 LT -1752 5075 LT -QS -1844 5049 5128 VL -1870 5049 1844 HL -NP -1883 5062 MT -1883 5060 LT -1882 5058 LT -1882 5056 LT -1880 5054 LT -1879 5053 LT -1878 5052 LT -1876 5050 LT -1874 5050 LT -1872 5049 LT -1870 5049 LT -1870 5049 LT -QS -1962 5049 1922 HL -1935 5128 5009 VL -2116 5009 2142 HL -2090 5101 5036 VL -2142 5128 2116 HL -NP -2116 5009 MT -2114 5010 LT -2112 5010 LT -2110 5010 LT -2108 5011 LT -2106 5011 LT -2104 5012 LT -2102 5013 LT -2101 5014 LT -2099 5015 LT -2098 5017 LT -2096 5018 LT -2095 5020 LT -2094 5021 LT -2093 5023 LT -2092 5025 LT -2091 5027 LT -2091 5029 LT -2090 5031 LT -2090 5033 LT -2090 5035 LT -2090 5036 LT -QS -NP -2090 5101 MT -2090 5103 LT -2090 5105 LT -2090 5107 LT -2091 5109 LT -2091 5111 LT -2092 5113 LT -2093 5115 LT -2094 5116 LT -2095 5118 LT -2097 5119 LT -2098 5121 LT -2100 5122 LT -2101 5123 LT -2103 5124 LT -2105 5125 LT -2107 5126 LT -2109 5127 LT -2111 5127 LT -2113 5127 LT -2115 5128 LT -2116 5128 LT -QS -2181 5101 5075 VL -2234 5075 5101 VL -NP -2181 5101 MT -2181 5103 LT -2182 5105 LT -2182 5107 LT -2183 5109 LT -2183 5111 LT -2184 5113 LT -2185 5115 LT -2186 5116 LT -2187 5118 LT -2189 5119 LT -2190 5121 LT -2192 5122 LT -2193 5123 LT -2195 5124 LT -2197 5125 LT -2199 5126 LT -2201 5127 LT -2202 5127 LT -2204 5127 LT -2206 5128 LT -2208 5128 LT -2210 5127 LT -2212 5127 LT -2214 5127 LT -2216 5126 LT -2218 5125 LT -2220 5124 LT -2222 5123 LT -2223 5122 LT -2225 5121 LT -2226 5120 LT -2228 5118 LT -2229 5117 LT -2230 5115 LT -2231 5113 LT -2232 5111 LT -2233 5110 LT -2233 5108 LT -2233 5106 LT -2234 5104 LT -2234 5102 LT -2234 5101 LT -QS -NP -2234 5075 MT -2234 5073 LT -2234 5071 LT -2233 5069 LT -2233 5067 LT -2232 5065 LT -2231 5063 LT -2230 5062 LT -2229 5060 LT -2228 5058 LT -2227 5057 LT -2225 5056 LT -2224 5054 LT -2222 5053 LT -2220 5052 LT -2218 5051 LT -2217 5050 LT -2215 5050 LT -2213 5049 LT -2211 5049 LT -2209 5049 LT -2207 5049 LT -2205 5049 LT -2203 5049 LT -2201 5050 LT -2199 5050 LT -2197 5051 LT -2195 5052 LT -2194 5053 LT -2192 5054 LT -2190 5055 LT -2189 5057 LT -2188 5058 LT -2186 5060 LT -2185 5061 LT -2184 5063 LT -2183 5065 LT -2183 5067 LT -2182 5069 LT -2182 5071 LT -2181 5073 LT -2181 5075 LT -2181 5075 LT -QS -2273 5049 5128 VL -2306 5049 2273 HL -2326 5128 5069 VL -NP -2326 5069 MT -2326 5067 LT -2325 5065 LT -2325 5063 LT -2324 5061 LT -2323 5059 LT -2322 5057 LT -2321 5056 LT -2320 5054 LT -2318 5053 LT -2316 5052 LT -2315 5051 LT -2313 5050 LT -2311 5049 LT -2309 5049 LT -2307 5049 LT -2306 5049 LT -QS -2365 5049 5128 VL -2398 5049 2365 HL -2418 5128 5069 VL -NP -2418 5069 MT -2417 5067 LT -2417 5065 LT -2417 5063 LT -2416 5061 LT -2415 5059 LT -2414 5057 LT -2413 5056 LT -2411 5054 LT -2410 5053 LT -2408 5052 LT -2406 5051 LT -2405 5050 LT -2403 5049 LT -2401 5049 LT -2399 5049 LT -2398 5049 LT -QS -2509 5088 2457 HL -2509 5075 5088 VL -2457 5108 5075 VL -2509 5128 2477 HL -NP -2509 5075 MT -2509 5073 LT -2509 5071 LT -2509 5069 LT -2508 5067 LT -2508 5065 LT -2507 5063 LT -2506 5062 LT -2505 5060 LT -2503 5058 LT -2502 5057 LT -2501 5056 LT -2499 5054 LT -2498 5053 LT -2496 5052 LT -2494 5051 LT -2492 5050 LT -2490 5050 LT -2488 5049 LT -2486 5049 LT -2484 5049 LT -2482 5049 LT -2480 5049 LT -2478 5049 LT -2476 5050 LT -2474 5050 LT -2473 5051 LT -2471 5052 LT -2469 5053 LT -2467 5054 LT -2466 5055 LT -2464 5057 LT -2463 5058 LT -2462 5060 LT -2461 5061 LT -2460 5063 LT -2459 5065 LT -2458 5067 LT -2458 5069 LT -2457 5071 LT -2457 5073 LT -2457 5075 LT -2457 5075 LT -QS -NP -2457 5108 MT -2457 5110 LT -2457 5112 LT -2458 5114 LT -2459 5116 LT -2459 5117 LT -2460 5119 LT -2462 5121 LT -2463 5122 LT -2465 5123 LT -2466 5125 LT -2468 5126 LT -2470 5126 LT -2472 5127 LT -2474 5127 LT -2476 5128 LT -2477 5128 LT -QS -2568 5049 2588 HL -2549 5108 5069 VL -2588 5128 2568 HL -NP -2568 5049 MT -2566 5049 LT -2564 5049 LT -2563 5050 LT -2561 5050 LT -2559 5051 LT -2557 5052 LT -2556 5054 LT -2554 5055 LT -2553 5057 LT -2552 5058 LT -2551 5060 LT -2550 5062 LT -2549 5064 LT -2549 5066 LT -2549 5068 LT -2549 5069 LT -QS -NP -2549 5108 MT -2549 5110 LT -2549 5112 LT -2550 5114 LT -2550 5116 LT -2551 5117 LT -2552 5119 LT -2554 5121 LT -2555 5122 LT -2556 5123 LT -2558 5125 LT -2560 5126 LT -2562 5126 LT -2564 5127 LT -2566 5127 LT -2568 5128 LT -2568 5128 LT -QS -2667 5049 2627 HL -2641 5128 5009 VL -2706 5101 5075 VL -2759 5075 5101 VL -NP -2706 5101 MT -2706 5103 LT -2707 5105 LT -2707 5107 LT -2707 5109 LT -2708 5111 LT -2709 5113 LT -2710 5115 LT -2711 5116 LT -2712 5118 LT -2713 5119 LT -2715 5121 LT -2716 5122 LT -2718 5123 LT -2720 5124 LT -2722 5125 LT -2723 5126 LT -2725 5127 LT -2727 5127 LT -2729 5127 LT -2731 5128 LT -2733 5128 LT -2735 5127 LT -2737 5127 LT -2739 5127 LT -2741 5126 LT -2743 5125 LT -2745 5124 LT -2747 5123 LT -2748 5122 LT -2750 5121 LT -2751 5120 LT -2753 5118 LT -2754 5117 LT -2755 5115 LT -2756 5113 LT -2757 5111 LT -2757 5110 LT -2758 5108 LT -2758 5106 LT -2759 5104 LT -2759 5102 LT -2759 5101 LT -QS -NP -2759 5075 MT -2759 5073 LT -2758 5071 LT -2758 5069 LT -2757 5067 LT -2757 5065 LT -2756 5063 LT -2755 5062 LT -2754 5060 LT -2753 5058 LT -2751 5057 LT -2750 5056 LT -2748 5054 LT -2747 5053 LT -2745 5052 LT -2743 5051 LT -2741 5050 LT -2740 5050 LT -2738 5049 LT -2736 5049 LT -2734 5049 LT -2732 5049 LT -2730 5049 LT -2728 5049 LT -2726 5050 LT -2724 5050 LT -2722 5051 LT -2720 5052 LT -2718 5053 LT -2717 5054 LT -2715 5055 LT -2714 5057 LT -2712 5058 LT -2711 5060 LT -2710 5061 LT -2709 5063 LT -2708 5065 LT -2708 5067 LT -2707 5069 LT -2707 5071 LT -2706 5073 LT -2706 5075 LT -2706 5075 LT -QS -2798 5049 5128 VL -2824 5049 2798 HL -NP -2837 5062 MT -2837 5060 LT -2837 5058 LT -2836 5056 LT -2835 5054 LT -2834 5053 LT -2832 5052 LT -2831 5050 LT -2829 5050 LT -2827 5049 LT -2825 5049 LT -2824 5049 LT -QS -3011 5009 3057 5062 DL -2965 5062 3011 5009 DL -3142 5009 3188 5062 DL -3097 5062 3142 5009 DL -3333 5092 5210 VL -3372 5092 3333 HL -3398 5132 5118 VL -3333 5158 3372 HL -NP -3398 5118 MT -3398 5116 LT -3398 5114 LT -3398 5112 LT -3397 5110 LT -3396 5109 LT -3396 5107 LT -3395 5105 LT -3394 5103 LT -3392 5102 LT -3391 5100 LT -3390 5099 LT -3388 5098 LT -3386 5096 LT -3385 5095 LT -3383 5094 LT -3381 5094 LT -3379 5093 LT -3377 5093 LT -3375 5092 LT -3373 5092 LT -3372 5092 LT -QS -NP -3372 5158 MT -3374 5158 LT -3376 5157 LT -3378 5157 LT -3380 5157 LT -3382 5156 LT -3384 5155 LT -3385 5154 LT -3387 5153 LT -3389 5152 LT -3390 5150 LT -3392 5149 LT -3393 5147 LT -3394 5146 LT -3395 5144 LT -3396 5142 LT -3397 5141 LT -3397 5139 LT -3398 5137 LT -3398 5135 LT -3398 5133 LT -3398 5132 LT -QS -3438 5184 5158 VL -3490 5158 5184 VL -NP -3438 5184 MT -3438 5186 LT -3438 5188 LT -3438 5190 LT -3439 5192 LT -3440 5194 LT -3440 5196 LT -3441 5197 LT -3442 5199 LT -3444 5201 LT -3445 5202 LT -3446 5204 LT -3448 5205 LT -3450 5206 LT -3451 5207 LT -3453 5208 LT -3455 5209 LT -3457 5209 LT -3459 5210 LT -3461 5210 LT -3463 5210 LT -3465 5210 LT -3467 5210 LT -3469 5210 LT -3471 5209 LT -3473 5209 LT -3474 5208 LT -3476 5207 LT -3478 5206 LT -3480 5205 LT -3481 5204 LT -3483 5202 LT -3484 5201 LT -3485 5199 LT -3486 5198 LT -3487 5196 LT -3488 5194 LT -3489 5192 LT -3489 5190 LT -3490 5188 LT -3490 5186 LT -3490 5184 LT -3490 5184 LT -QS -NP -3490 5158 MT -3490 5156 LT -3490 5154 LT -3490 5152 LT -3489 5150 LT -3488 5148 LT -3487 5146 LT -3487 5144 LT -3485 5143 LT -3484 5141 LT -3483 5140 LT -3481 5138 LT -3480 5137 LT -3478 5136 LT -3477 5135 LT -3475 5134 LT -3473 5133 LT -3471 5132 LT -3469 5132 LT -3467 5132 LT -3465 5132 LT -3463 5132 LT -3461 5132 LT -3459 5132 LT -3457 5132 LT -3455 5133 LT -3453 5134 LT -3452 5135 LT -3450 5136 LT -3448 5137 LT -3447 5138 LT -3445 5139 LT -3444 5141 LT -3443 5142 LT -3442 5144 LT -3441 5146 LT -3440 5148 LT -3439 5150 LT -3438 5151 LT -3438 5153 LT -3438 5155 LT -3438 5157 LT -3438 5158 LT -QS -3549 5210 3530 5132 DL -3569 5158 3549 5210 DL -3589 5210 3569 5158 DL -3608 5132 3589 5210 DL -3700 5171 3648 HL -3700 5158 5171 VL -3648 5191 5158 VL -3700 5210 3667 HL -NP -3700 5158 MT -3700 5156 LT -3700 5154 LT -3699 5152 LT -3699 5150 LT -3698 5148 LT -3697 5146 LT -3696 5144 LT -3695 5143 LT -3694 5141 LT -3693 5140 LT -3691 5138 LT -3690 5137 LT -3688 5136 LT -3687 5135 LT -3685 5134 LT -3683 5133 LT -3681 5132 LT -3679 5132 LT -3677 5132 LT -3675 5132 LT -3673 5132 LT -3671 5132 LT -3669 5132 LT -3667 5132 LT -3665 5133 LT -3663 5134 LT -3662 5135 LT -3660 5136 LT -3658 5137 LT -3657 5138 LT -3655 5139 LT -3654 5141 LT -3653 5142 LT -3651 5144 LT -3651 5146 LT -3650 5148 LT -3649 5150 LT -3648 5151 LT -3648 5153 LT -3648 5155 LT -3648 5157 LT -3648 5158 LT -QS -NP -3648 5191 MT -3648 5193 LT -3648 5195 LT -3649 5196 LT -3649 5198 LT -3650 5200 LT -3651 5202 LT -3652 5203 LT -3654 5205 LT -3655 5206 LT -3657 5207 LT -3659 5208 LT -3661 5209 LT -3663 5210 LT -3664 5210 LT -3666 5210 LT -3667 5210 LT -QS -3739 5132 5210 VL -3766 5132 3739 HL -NP -3779 5145 MT -3779 5143 LT -3778 5141 LT -3778 5139 LT -3776 5137 LT -3775 5136 LT -3774 5134 LT -3772 5133 LT -3770 5132 LT -3768 5132 LT -3766 5132 LT -3766 5132 LT -QS -3336 5373 5281 VL -3297 5399 3310 HL -NP -3310 5399 MT -3312 5399 LT -3314 5399 LT -3316 5398 LT -3318 5398 LT -3320 5397 LT -3321 5396 LT -3323 5396 LT -3325 5394 LT -3326 5393 LT -3328 5392 LT -3329 5390 LT -3331 5389 LT -3332 5387 LT -3333 5386 LT -3334 5384 LT -3334 5382 LT -3335 5380 LT -3336 5378 LT -3336 5376 LT -3336 5374 LT -3336 5373 LT -QS -3408 5320 3382 HL -3428 5399 5340 VL -3395 5399 3428 HL -3428 5360 3395 HL -NP -3428 5340 MT -3428 5338 LT -3427 5336 LT -3427 5334 LT -3426 5332 LT -3425 5331 LT -3424 5329 LT -3423 5327 LT -3422 5326 LT -3420 5325 LT -3419 5323 LT -3417 5322 LT -3415 5322 LT -3413 5321 LT -3411 5321 LT -3409 5320 LT -3408 5320 LT -QS -NP -3395 5360 MT -3393 5360 LT -3391 5360 LT -3389 5361 LT -3387 5361 LT -3385 5362 LT -3384 5363 LT -3382 5365 LT -3381 5366 LT -3379 5368 LT -3378 5369 LT -3377 5371 LT -3377 5373 LT -3376 5375 LT -3376 5377 LT -3375 5379 LT -3375 5381 LT -3376 5383 LT -3376 5385 LT -3377 5386 LT -3377 5388 LT -3378 5390 LT -3380 5392 LT -3381 5393 LT -3382 5395 LT -3384 5396 LT -3386 5397 LT -3388 5398 LT -3389 5398 LT -3391 5399 LT -3393 5399 LT -3395 5399 LT -QS -3487 5320 3507 HL -3467 5379 5340 VL -3507 5399 3487 HL -NP -3487 5320 MT -3485 5321 LT -3483 5321 LT -3481 5321 LT -3479 5322 LT -3477 5323 LT -3476 5324 LT -3474 5325 LT -3473 5327 LT -3471 5328 LT -3470 5330 LT -3469 5332 LT -3468 5333 LT -3468 5335 LT -3467 5337 LT -3467 5339 LT -3467 5340 LT -QS -NP -3467 5379 MT -3467 5381 LT -3468 5383 LT -3468 5385 LT -3469 5387 LT -3470 5389 LT -3471 5391 LT -3472 5392 LT -3473 5394 LT -3475 5395 LT -3477 5396 LT -3478 5397 LT -3480 5398 LT -3482 5399 LT -3484 5399 LT -3486 5399 LT -3487 5399 LT -QS -3546 5399 5281 VL -3598 5320 3546 5353 DL -3598 5399 3563 5342 DL -3779 5353 3726 5307 DL -3726 5399 3779 5353 DL - -QP -%%Trailer -cleartomark countdictstack exch sub { end } repeat restore -%%EOF diff --git a/docs/src/drivers/images/pluto-pinout.png b/docs/src/drivers/images/pluto-pinout.png deleted file mode 100644 index d4d5696763a..00000000000 Binary files a/docs/src/drivers/images/pluto-pinout.png and /dev/null differ diff --git a/docs/src/drivers/images/pluto-step-pinout.dxf b/docs/src/drivers/images/pluto-step-pinout.dxf deleted file mode 100644 index 0e3faf75aca..00000000000 --- a/docs/src/drivers/images/pluto-step-pinout.dxf +++ /dev/null @@ -1,4636 +0,0 @@ -999 -dxflib 2.0.4.0 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMADEC - 70 -2 - 9 -$GRIDUNIT - 10 -5.0 - 20 -5.0 - 9 -$DIMASZ - 40 -2.5 - 9 -$DIMGAP - 40 -0.625 - 9 -$LUNITS - 70 -2 - 9 -$AUPREC - 70 -2 - 9 -$SPLINESEGS - 70 -8 - 9 -$INSUNITS - 70 -4 - 9 -$DIMEXO - 40 -0.625 - 9 -$DIMLUNIT - 70 -2 - 9 -$GRIDMODE - 70 -1 - 9 -$DIMTXT - 40 -2.5 - 9 -$LUPREC - 70 -4 - 9 -$DIMSTYLE - 2 -Standard - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$PLIMMAX - 10 -210.0 - 20 -297.0 - 9 -$DIMEXE - 40 -1.25 - 9 -$DIMAUNIT - 70 -0 - 9 -$AUNITS - 70 -0 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -5 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -inputs - 70 -0 - 62 -5 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -outputs - 70 -0 - 62 -3 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -gnd - 70 -0 - 62 -8 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -vcc - 70 -0 - 62 -8 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -2.5 - 42 -0.625 - 43 -3.75 - 44 -1.25 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -2.5 -141 -2.5 -143 -0.03937007874016 -147 -0.625 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -47 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -0.0 - 30 -0.0 - 11 -130.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -48 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -130.0 - 20 -0.0 - 30 -0.0 - 11 -130.0 - 21 -20.0 - 31 -0.0 - 0 -LINE - 5 -49 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -130.0 - 20 -20.0 - 30 -0.0 - 11 -0.0 - 21 -20.0 - 31 -0.0 - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -20.0 - 30 -0.0 - 11 -0.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -4B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -140.0 - 20 -0.0 - 30 -0.0 - 11 -160.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -4C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -0.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -140.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -4E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -140.0 - 20 -60.0 - 30 -0.0 - 11 -140.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -4F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -50 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -51 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -52 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -53 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -130.0 - 20 -0.0 - 30 -0.0 - 11 -140.0 - 21 -0.0 - 31 -0.0 - 0 -MTEXT - 5 -54 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -55 -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -56 -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -35.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -57 -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -55.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -58 -100 -AcDbEntity -100 -AcDbMText - 8 -vcc - 62 -256 -370 --1 - 6 -ByLayer - 10 -75.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -VCC - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -59 -100 -AcDbEntity -100 -AcDbMText - 8 -vcc - 62 -256 -370 --1 - 6 -ByLayer - 10 -75.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -VCC - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5A -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -85.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5B -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -115.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5C -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -1 -370 --1 - 6 -ByLayer - 10 -124.5 - 20 -24.4999999999998934 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -LED - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -5D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -130.0 - 20 -20.0 - 30 -0.0 - 11 -160.0 - 21 -20.0 - 31 -0.0 - 0 -LINE - 5 -5E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -120.0 - 20 -70.0 - 30 -0.0 - 11 -120.0 - 21 -30.0 - 31 -0.0 - 0 -LINE - 5 -5F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -20.0 - 20 -35.0 - 30 -0.0 - 11 -0.0 - 21 -35.0 - 31 -0.0 - 0 -LINE - 5 -60 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -85.0 - 30 -0.0 - 11 -20.0 - 21 -85.0 - 31 -0.0 - 0 -LINE - 5 -61 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -20.0 - 20 -85.0 - 30 -0.0 - 11 -20.0 - 21 -35.0 - 31 -0.0 - 0 -LINE - 5 -62 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -85.0 - 30 -0.0 - 11 -0.0 - 21 -65.0 - 31 -0.0 - 0 -LINE - 5 -63 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -55.0 - 30 -0.0 - 11 -0.0 - 21 -35.0 - 31 -0.0 - 0 -MTEXT - 5 -64 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -80.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -65 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -70.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -66 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -60.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -67 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -60.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN4 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -68 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -50.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN5 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -69 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -50.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN6 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6A -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -40.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN7 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6B -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -80.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6C -100 -AcDbEntity -100 -AcDbMText - 8 -vcc - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -70.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -VCC - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6D -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -40.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -6E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -30.0 - 20 -70.0 - 30 -0.0 - 11 -120.0 - 21 -70.0 - 31 -0.0 - 0 -LINE - 5 -6F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -30.0 - 20 -30.0 - 30 -0.0 - 11 -30.0 - 21 -70.0 - 31 -0.0 - 0 -LINE - 5 -70 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -120.0 - 20 -30.0 - 30 -0.0 - 11 -30.0 - 21 -30.0 - 31 -0.0 - 0 -MTEXT - 5 -71 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -55.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT8 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -72 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -55.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT9 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -73 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -45.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT6 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -74 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -45.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT7 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -75 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -35.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT4 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -76 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -35.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT5 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -77 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -25.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -78 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -25.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -79 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -15.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7A -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -125.0 - 20 -15.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7B -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -75.0 - 20 -50.0 - 30 -0.0 - 40 -5.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -ACEX\~FPGA - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7C -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -80.0 - 20 -85.0 - 30 -0.0 - 40 -5.0 - 41 -100.0 - 71 -2 - 72 -2 - 1 -^^\~Parallel\~Port\~Connector\~^^ - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7D -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -75.0 - 30 -0.0 - 40 -5.0 - 41 -100.0 - 71 -6 - 72 -2 - 1 -Power\PJack\~> - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7E -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -DIR0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7F -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -ST0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -80 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -25.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -ST1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -81 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -25.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -DIR1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -82 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -35.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -DIR2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -83 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -45.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -ST2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -84 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -45.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -DIR3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -85 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -55.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -ST3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -86 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -65.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN8 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -87 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -65.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN9 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -88 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -85.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN10 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -89 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -95.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN11 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8A -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -95.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN12 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8B -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -105.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN13 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8C -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -105.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN14 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8D -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -115.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN15 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8E -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -3 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -15.0 - 30 -0.0 - 40 -2.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT12 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8F -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -3 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -5.0 - 30 -0.0 - 40 -2.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT13 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -90 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -3 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -5.0 - 30 -0.0 - 40 -2.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT11 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -91 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -3 -370 --1 - 6 -ByLayer - 10 -125.0 - 20 -5.0 - 30 -0.0 - 40 -2.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT10 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -92 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -92 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -94 - 3 -HIDETEXT -350 -93 - 0 -DICTIONARYVAR - 5 -93 -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -94 -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/drivers/images/pluto-step-pinout.eps b/docs/src/drivers/images/pluto-step-pinout.eps deleted file mode 100644 index 3eab4e680a5..00000000000 --- a/docs/src/drivers/images/pluto-step-pinout.eps +++ /dev/null @@ -1,9128 +0,0 @@ -%!PS-Adobe-2.0 EPSF-1.2 -%%Title: -%%Creator: Qt 3.3.4 -%%CreationDate: Tue Jul 24 13:10:02 2007 -%%For:jepler jepler -%%Pages: 1 -%%DocumentFonts: -%%BoundingBox: 0 0 454 242 -%%BeginPreview: 454 242 8 2904 -% 50444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 444444444444444444444444444444445d000000000000000000000000000000000000003f000000 -% 0000000000000000000000113f0000000000000000000000000000000000000020504444445d3300 -% 00000000000000000000000000000000000000000000000000000000000000000000000011110000 -% 000000220000000000000000000000000000000022000000000000000000000000000000003f4444 -% 44445c22000000000000000000000000000000000000000000000000000000002200000000000000 -% 00000000000000000000000000505044442200000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000011110000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 003f0000000000000000000000000000003f00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 76444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444a800000000000000000000000000000000000066c0550000 -% 000000000000000000000088c91100000000000000000000000000000000000050764444445d77aa -% 33000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000088000000000000000000000000000000008800000000000000000000000000000000984444 -% 44445c88880000000000000000000000000000000000000000000000000000008800000000000000 -% 000000000000000000000044aa605044442200000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 55c0660000000000000000000000000099c733000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000559900883300 -% 00000000000000000000996611bb1100000000000000000000000000000000004444000000000011 -% aa000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000088000000000000000000000000000000008800000000000000000000000000000000880000 -% 00000000558800000000000000000000000000000000000000000000000000008800000000000000 -% 0000000000000000000011aa00000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000033 -% 880099550000000000000000000000666611bb110000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000088000000000000000000000000000000003388000011bb33 -% 0000000000000000006666000033bb00000000000000000000000000000000004444000000000000 -% 88000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000088000000000000000000000000000000008800000000000000000000000000000000880000 -% 00000000008800000000000000000000000000000000000000000000000000008800000000000000 -% 00000000000000000000555500000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 000000000000000000000000000000000000000000000000000000000000000000000000000033bb -% 11000088330000000000000000006688000011aa1100000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000008800000000000000000000000000000033bb110000001199 -% 11000000000000006688000000003399000000000000000000000000000000004444000000000000 -% a8000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000088000000000000000000000000000000008800000000000000000000000000000000880000 -% 0000000000a800000000000000000000000000000000000000000000000000008800000000000000 -% 00000000000000000000a80000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000119911 -% 00000011bb330000000000000033990000000033bb00000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000119911000000000033 -% bb110000000000339900000000000066990000000000000000000000000000004444000000000000 -% a80000000000888888a3660000000000768888a86600000000002288889898330000000044440000 -% 00000088000000000000006688883300000000008800000000000000000000000000000000880000 -% 0000000000a8000000000011888866110000000000a88888a344000000004488c888886600000000 -% 00000000000000000000880000000000000000000000004488884400000000003f988888a8881100 -% 0000003f988888988822000000000000448888550000000000001166a388880000000066a8a88888 -% 4400000000004488884400000000003f988888981100000000000000000000000000000011bb3300 -% 00000000119911000000000033bb0000000000003399000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000011bb3300000000000000 -% 33990000000033bb0000000000000000666600000000000000000000000000004444000000000000 -% 8800000000000000000044aa00000000880000006688000000000000000011993300000044440000 -% 00000088000000000000886600228866000000008800000000000000000000000000000000880000 -% 0000000000990000000033bb22004499110000000088000011992200000000008800000000000000 -% 0000000000000000000088000000000000000000000088881111779900000000444400000022bb11 -% 000000444400000022bb22000000006688111177990000000000aa44000000000000000044440000 -% 0000000000888811117799000000004444000022aa00000000000000000000000000000099330000 -% 000000000033bb1100000011bb110000000000000066990000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000022330000000000000000 -% 00442200000044110000000000000000007700000000000000000000000000004444000000000033 -% 99000000000000000000007722000000880000000044000000000000000000009900000044440000 -% 000000880000000000557700000000aa220000008800000000000000000000000000000000880000 -% 00000000666600000000991100000022990000000088000000222200000000008800000000000000 -% 00000000000000000000880000000000000000000033880000000088330000004444000000004466 -% 00000044440000000022880000002299000000007744000000447700000000000000000044440000 -% 00000000338800000000883300000044440000005500000000000000000000000000002244000000 -% 00000000000033220000004411000000000000000000550000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000005da8888888a88899 -% 11000000000000000000005050000000880000000000000000000000000000009800000044440000 -% 000000880000000000a811000000005d5d0000008800000000000000000000000000000000a88888 -% 8888a3aa770000000000a80000000000a80000000088000000000000000000008800000000000000 -% 0000000000000000000088000000000000000000009b330000000022a80000004444000000000098 -% 00000044440000000000980000005d5d0000000011a8000000505000000000000000000044440000 -% 000000008f440000000022a800000044440000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 00000000000000000000004444000000880000000000000000000000000000008800000044440000 -% 00000088000000000088000000000044440000008800000000000000000000000000000000880000 -% 00000000000000000000880000000000880000000088000000000000000000008800000000000000 -% 00000000000000000000880000000000000000000088000000000000880000004444000000000088 -% 00000044440000000000880000004444000000000088000000444400000000000000000044440000 -% 00000000880000000000008800000044440000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000000f0f002b1d0000001e0000000f38000000000000000000000000192d2222110000 -% 270000000808001f2222341100000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 0000000000005598988888a844000000880000000000000000002299ae888888b800000044440000 -% 000000880000000000a88888888888a04e0000008800000000000000000000000000000000880000 -% 00000000000000000000880000000000880000000088000000000000000000008800000000000000 -% 00000000000000000000880000000000000000000088000000000000880000004444000000000088 -% 00000044440000000000880000005da888888888888f000000444400000000000000000044440000 -% 00000000880000000000008800000044440000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000020 -% 50444444505511000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c0052a000000079000000978e0000000000000000000000224d2d2222110000 -% 6c0000002222004c22222d4d2a000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 00000000005577000000004444000000880000000000000000009911000000008800000044440000 -% 00000088000000000088000000000000000000008800000000000000000000000000000000880000 -% 00000000000000000000980000000000980000000088000000000000000000008800000000000000 -% 00000000000000000000980000000000000000000098000000000000980000004444000000000088 -% 00000044440000000000880000004444000000000000000000444400000000000000000044440000 -% 00000000981100000000009800000044440000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000050 -% 764444445055aa330000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c003c952d0000790000792d7900000000000000000000005400000000000000 -% 5444000022220044000000005a000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 00000000008800000000004444000000880000000000000000008800000000008800000044440000 -% 000000880000000000a8000000000000000000008800000000000000000000000000000000880000 -% 00000000000000000000b60000000000980000000088000000000000000000008800000000000000 -% 000000000000000000006c440000000000000000007a440000000022980000004444000000000088 -% 00000044440000000000880000005d5d0000000000000000005d5d00000000000000000044440000 -% 000000006c4400000000229800000044440000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000aa0000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c003c4797000079000000007900000000000000000000004400000000000000 -% 44550800222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 0000000000881100000000444400000088000000000000000000990000000000880000005d760000 -% 000000a800000000008833000000000000000000a800000000000000000000000000000000880000 -% 00000000000000000000992200000033880000000088000000000000000000008800000000000000 -% 00000000000000000000229900000000000000000022aa0000000088220000004444000000000088 -% 00000044440000000000880000003377000000000000000000337700000000000000000044440000 -% 0000000022aa00000000882200000044440000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000554400000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c003c3c793c00790000000079000000000000000000000044000011443b0000 -% 44194400222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 000000000022bb440000004444000000880000000000000000008888110000008800000000aa3300 -% 00000088550000000011bb4400000000000000004488110000000000000000000000000000880000 -% 0000000000000000000022aa662255bb110000000088000000000000000000008800000000000000 -% 000000000000000000000066aa33000000000000000066aa33338866000000004444000000000088 -% 000000444400000000008800000000aa550000000000000000008855000000000000000044440000 -% 000000000066aa333388660000000044440000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000505000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c003c3c00970079000000007900000000000000000000004400000000440000 -% 44004d11222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000002222000000000000 -% 000000000000117a9888889822000000440000000000000000000044a38888888f00000000227700 -% 00000000552200000000118998888888220000000033440000000000000000000000000000440000 -% 00000000000000000000000055885500000000000044000000000000000000004400000000000000 -% 00000000000000000000000022899888884400000000002277773300000000002222000000000044 -% 0000002222000000000044000000000055a888888844000000000055a38888000000000022220000 -% 00000000000022777733000000000022220000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 440000000000005d5d00000000006688884400000000004400000000000000001144000000000044 -% 88886600000000003f9888989833 -% 440000000000003c3c003c3c005b5b79000000007900000000000000000000004400000000440000 -% 4400114d222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000883300000000bb6600118888000000006644000000000000005555000000008888 -% 00006688000000004444000011bb -% 440000000000003c3c003c3c00009780000000007900000000000000000000005200000000440000 -% 440000443b2200440000000057000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000033aa0000000055660000000099220000002288000000000000009911000000338800 -% 0000007733000000444400000055 -% 440000000000003c3c003c3c00003cb2000000007900000000000000000000004433000000440000 -% 44000008602200440000002244000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000000005d -% a88888889888991100000000a811000000005d5d000000009900000082000000aa000000006c5d00 -% 00000011a8000000444400000000 -% 440000000000002d2d002d2d00000091000000005b0000000000000000000000003b574444470000 -% 33000000422000474444574400000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000000000000088000000000044440000000099000022d02200228800000000444400 -% 0000000088000000444400000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 440000000000000000000000880000000000444400000000665500775c77006655000000005da888 -% 8888888876000000444400000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 440000000000000000000000980000000000505000000000228800aa00bb00991100000000444400 -% 0000000000000000444400000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000000000000098110000000070500000000000aa44770077339900000000005d5d00 -% 0000000000000000444400000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 440000000000000000000000448800000000aa00000000000099a011002298880000000000556600 -% 0000000000000000444400000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 4400000000000000000000000077994455aa3300000000000070b0000000cc440000000000009977 -% 5d44444422000000444400000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000011 -% 1100000000000000000000000000224444110000000000000011300000003f000000000000000033 -% 5d44444422000000111100000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 66000000000000000000000000000000000000000000000000660000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000880000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000880000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000880000000000000000000000000000 -% 0000000000000066000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000880000000000000000000000000000 -% 0000000000000066991100000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 880000000022888888a89911000000003399a8888822000000880000000022aa2200000000000000 -% 000000000000000033bb11000000 -% 4400000000003c3c005d8a0000007900002d9779970f000000000000000000000844000000004d00 -% 0011555244220000335b4c4411000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000338800000000aa1100000000000000880000008899220000000000000000 -% 00000000000000000022aa330000 -% 4400000000003c3c003cac0f0000790000790f003c7f000000000000000000000055000000004d00 -% 00441100000000004d00000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 8800000000000000000000a800000000a8000000000000000088005dbb4400000000000000000000 -% 0000000000000000000011aa4400 -% 4400000000003c3c003c68790000790000000000477f0000000000000000000000441900002a3300 -% 004c0000000000004c00000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 880000000000000000000088000000008800000000000000009099a8900000000000000000000000 -% 0000000000000000000000009966 -% 4400000000003c3c003c3c881e00790000000000a700000000000000000000000019440000550800 -% 00440000000000004400000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 880000000000115d444444a000000000880000000000000000a82200aa2200000000000000000000 -% 00000000000000000000000033d7 -% 4400000000003c3c003c3c1e790079000000006a4b000000000000000000000000005500084d0000 -% 00440000000000004400000000000000880000000000000000000000000000000000000000000000 -% 000000004ea088888888884400008888888888884400006688888888886600004488888888888800 -% 00448888888888882200228888888888884400008888888888884400006688888888886600006688 -% 88888888880000448888888888880000228888888888882200008888888888884400008888888888 -% 88660000668888888888660000448888888888880000448888888888882200228888888888884400 -% 00888888888888440000668888888888660000668888888888880000448888888888882200228888 -% 88888888440000888888888888440000668888888888660000668888888888880000448888888888 -% 88000022888888888888220000888888888888446600000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 880000000044aa6c444444a00000000088000000000000000088000011aa00000000000000000000 -% 0000000000000000000000668811 -% 4400000000003c3c003c3c00793c790000000f9700000000000000000000000000004411332a0000 -% 00440000000000004400000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% a300000000aa00000000008800000000880000000000000000880000007766000000000000000000 -% 0000000000000000000066990000 -% 4400000000003c3c003c3c000f9779000000792d0000000000000000000000000000193b4d000000 -% 004c0000000000004c00000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000011 -% 99000000008800000000008800000000a300000000000000008800000000aa110000000000000000 -% 0000000000000000009966000000 -% 4400000000003c3c003c3c00005b9c00001e8800000000000000000000000000000000584d000000 -% 004c1100000000005300000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000099 -% 4400000000bb11000000008800000000aa1100000000000000880000000033990000000000000000 -% 0000000000000011995500000000 -% 4400000000003c3c003c3c000000c00000ad8079793c000000000000000000000000005830000000 -% 00115e524422000033534c4411000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000004488a8bb66 -% 000000000033bba8888888b80000000033aaa8888822000000880000000000883300000000000000 -% 00000000000000aa330000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000004400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000002200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000001e1e0045450000003c00005b79954b000000000000000000000000001e1e00741e00 -% 00003c000000004b0000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000003c3c0047a0000000790000000000794b0000000000000000000000003c3c00878800 -% 0000790000004b5b0000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000002200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000003c3c003c7f5b000079000000000000790000000000000000000000003c3c0079792d -% 000079000000880f0000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000003c3c003c3ca70000790000000000794b0000000000000000000000003c3c00790f97 -% 00007900000097000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000003c3c003c3c3c7900790000005bc49c000000000000000000000000003c3c00790079 -% 3c007900002d79000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000003f988888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888e6 -% 0000000000003c3c003c3c00970f7900000000004b6a0000000000000000000000003c3c00790000 -% a7007900006a2d007900000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 0000000000003c3c003c3c002d7979000000000000950000000000000000000000003c3c00790000 -% 5b5b7900008800007900000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 0000000000003c3c003c3c0000888700000000000f950000000000000000000000003c3c00790000 -% 00888000009c7979b2791e0000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 0000000000003c3c003c3c00001eb9000000001e792d0000000000000000000000003c3c00790000 -% 003cb200000000007900000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 0000000000001e1e001e1e0000006800005b798a1e000000000000000000000000001e1e003c0000 -% 00007300000000003c00000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000004400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440006 -% 37444314001414000014140037374a37370d000d3e370d0000000000294646290000290000002900 -% 1b374141372900063e3722000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 1b000650001b1b00001b1b000000370000000044060d4900000000134100003a2000370000003700 -% 00001b1b000000371b00470c0088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000004444003d -% 0000003d001b1b00001b1b0000003700000000440006440000000020200000202000370000003700 -% 00001b1b00000042000025200088 -% 11000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 00000037001b1b00001b1b0000003700000000195b5b19000000001b1b00001b1b00370000003700 -% 00001b1b000000371b0030240088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000004400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 00000037001b1b00001b1b00000037000000003e060d3e000000001b1b00001b1b00370000003700 -% 00001b1b00000000374751000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000004444003d -% 0000003d002525000025250000003700000000480000480000000020200000202000440000004700 -% 00001b1b0000000000004c000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000004444003d -% 14000043000d450000450600000037000000004300064300000000193a00003a19003e06001b3000 -% 00001b1b00000000003e1b000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000006600000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440006 -% 3e443d22000029373e29000000002900000000143e37140000000000304642370000143e37370000 -% 0000141400000000302200000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000112000000000000000000000003f444444000000004e444444444444000000002200000000 -% 00000000111100000000000000000000000000005d444444444444000000005d4444445020000000 -% 0000000000002050444444440000000000000000003f000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000089a000000000000000000077aa8944444400000000a0444444444444000000009933000000 -% 00000000aa220000000000000000000000000000a844444444444400000000a84444445090bb3300 -% 000000003399905d44444444000000000000000033c9000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000aaaa00000000000000005577000000000000000000880000000000000000000011bb000000 -% 0000006677000000000000000000000000000000880000000000000000000088000000000000aa22 -% 00000000aa11000000000000000000000000000088a7110000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000000f0f001d1d0000001e0000453c3c3c1e000000000000000000000000001e00003800 -% 00000f0f000000002d00000000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00002288883300000000000000aa0000000000000000000088000000000000000000000055880000 -% 000011aa000000000000000000000000000000008800000000000000000000880000000000003377 -% 0000003366000000000000000000000000000000aa55660000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000006600000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c0052a00000007900008e3c3c3c1e00000000000000000000000000790000c00f -% 00003c3c000000886a00000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00007733337700000000000000a80000000000000000000088000000000000000000000000aa3300 -% 000099220000000000000000000000000000000088000000000000000000008800000000000000a8 -% 0000005d5d0000000000000000000000000000337700990000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c952d00007900007900000000000000000000000000000000007900009579 -% 00003c3c00005b5b0000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000aa0000aa0000000000000088000000000000000000008800000000000000000000000011bb00 -% 00557700000000000000000000000000000000008800000000000000000000880000000000000098 -% 00000044440000000000000000000000000000882200991100000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c479700007900007900000000000000000000000000000000007900007997 -% 0f003c3c000097000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00228800008822000000000000880000000000000000000088000000000000000000000000005588 -% 11aa0000000000000000000000000000000000008800000000000000000000880000000000002288 -% 00000044440000000000000000000000000000aa0000556600000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000006600000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c793c00790000a479953c0000000000000000000000000000790000791e -% 88003c3c0052a4955b00000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 007733000033770000000000008800000000000000000000b88888888844000000000000000000aa -% ae22000000000000000000000000000000000000c88888888888880000000088000000000000aa22 -% 0000004444000000006688a033000000000033770000009900000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c00970079000000000f883c000000000000000000000000007900007900 -% 881e3c3c00871e003c79000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00aa00000000aa000000000000880000000000000000000088000000000000000000000000000060 -% db000000000000000000000000000000000000008800000000000000000000a84444445070aa5500 -% 00000044440000000000004444000000000088220000009911000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c005b5b7900000000000f91000000000000000000000000007900007900 -% 0f883c3c0079000000a4000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 228800000000882200000000008800000000000000000000880000000000000000000000000011aa -% 55880000000000000000000000000000000000008800000000000000000000a84444445050110000 -% 000000444400000000000044440000000000aa000000005566000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c0000978000000000000091000000000000000000000000007900007900 -% 0079683c00910f0000a4000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 77330000000033770000000000880000000000000000000088000000000000000000000000009922 -% 00aa2200000000000000000000000000000000008800000000000000000000880000000000000000 -% 00000044440000000000004444000000003377000000000099000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c00003cb200000000005b5b000000000000000000000000007900007900 -% 000fab3c002d6a001e88000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% cc888888888888cc0000000000880000000000000000000088000000000000000000000000557700 -% 0011aa00000000000000000000000000000000008800000000000000000000880000000000000000 -% 000000444400000000000044440000000098988888888888d0110000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000002d2d002d2d000000a400005b79957900000000000000000000000000005b00005b00 -% 0000695100007988881e000000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000022 -% 88000000000000882200000000980000000000000000000088000000000000000000000011aa0000 -% 00005577000000000000000000000000000000008800000000000000000000880000000000000000 -% 0000005050000000000000444400000000aa00000000000055660000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000077 -% 33000000000000337700000000993300000000000000000088000000000000000000000099220000 -% 00000099220000000000000000000000000000008800000000000000000000880000000000000000 -% 00000022aa0000000000004444000000338800000000000000bb0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000000000aa -% 0000000000000000aa0000000011aa44000000000000000088000000000000000000005577000000 -% 00000011aa0000000000000000000000000000008800000000000000000000880000000000000000 -% 00000000668811000000004444000000773300000000000000992200000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000066 -% 00000000000000005500000000001177a8888888000000008f888888888888000000005500000000 -% 00000000442200000000000000000000000000004400000000000000000000440000000000000000 -% 00000000003398988888889822000000660000000000000000333300000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000004400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 1b443706000d0d00000d0d0037374437370d000000220000000000000642420d00001b0000001b00 -% 1b373d3d3729001b373741190088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000004444001b -% 37061b3e001b1b00001b1b00000037000000000037300000000000004c140d4c0d00370000003700 -% 00001b1b000000000000370d0088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440042 -% 00000046001b1b00001b1b00000037000000001b37000000000000243000002a2400370000003700 -% 00001b1b00000000000045000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 00000037001b1b00001b1b000000370000000041241900000000001b1b00001b1b00370000003700 -% 00001b1b00000000002544060088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000002200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 00000037001b1b00001b1b000000370000000046203337000000001b1b00001b1b00370000003700 -% 00001b1b00000000003f2f060088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 000000370020200000202000000037000000003d000044000000001b1b00001b1b003d0000003d00 -% 00001b1b00000000003e00000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000002200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440044 -% 0000004900193300003a1900000037000000004400004400000000253100002b25004300000d3d00 -% 00001b1b00000000003e00000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000004444001b -% 452a333700003737373e00000000370000000037373737000000000045302a3e0600293e22450d00 -% 00001b1b000000001b2900000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 06251900000000141400000000000d00000000000d14000000000000002424060000000d1b000000 -% 0000060600000000060000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000002200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c005d950000007900005b797987950000000000000000000008445c4444220000 -% 680000002222005444445c4d11000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003cac0f00007900000000006a3c000000000000000000004419000000000000 -% 6422000022220044000000114d000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c5d7900007900000000008800000000000000000000005400000000000000 -% 48550000222200440000000054000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c881e0079000000003ca01e000000000000000000004400000822110000 -% 44333300222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c1e880079000000005d8a1e0000000000000000000044000008224c0000 -% 44005e00222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c00793c7900000000792d00000000000000000000004400000000440000 -% 4400223b222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c000f977900000000880000000000000000000000004c00000000440000 -% 4400005528220044000000004c000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c0000799500000000880000000000000000000000004c11000000440000 -% 4400002254220044000000084c000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c000000c70000003c5b0000000000000000000000001155524444540000 -% 440000005a2800544444525519000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000004400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000006600000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000600000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440029 -% 43464c0d003700000037000d373751373700000037000000000000003e4642450000370000003700 -% 1b374444372900443737370d0088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440049 -% 00000d440037000000370000000037000000000d370000000000001f370000312500370000003700 -% 00001b1b00000037000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000006600000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 00000037003700000037000000003700000000291b0000000000001b1b00001b1b00370000003700 -% 00001b1b00000037000000000088 -% a8888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888c80000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 0000003700370000003700000000370000000045000000000000001b1b00001b1b00370000003700 -% 00001b1b0000003a374437000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 000000370037000000370000000037000000003e003700000000001b1b00001b1b00370000003700 -% 00001b1b0000000000003a130088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000006600000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440044 -% 000000440044000000440000000037000000254e3751370d000000252a0000252500440000004400 -% 00001b1b0000000000002e290088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000004444004c -% 0d002930002930002937000000003700000000000037000000000006450000450d00371b06371b00 -% 00001b1b0000000000063e060088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000004444000d -% 3d4b2900000029372900000000001b0000000000001b0000000000001b42461b00000630371b0000 -% 00000d0d0000001b37441b000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000004400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000445044444444444422000044444444444433000033444444444444000022444444444444 -% 00001144444444444411001144444444444411000044444444444422000044444444444433000033 -% 44444444444400002244444444444400001144444444444411001144444444444422000044444444 -% 44443300003344444444444400002244444444444400001144444444444411001144444444444422 -% 00004444444444443300003344444444443300002244444444444400002244444444444411001144 -% 44444444441100004444444444442200004444444444443300003344444444444400002244444444 -% 44440000114444444444441100114444444444449800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000112044444444444422000044444444444433000033444444444444000022444444444444 -% 00001144444444444411001144444444444411000044444444444422000044444444444433000033 -% 44444444444400002244444444444400001144444444444411001144444444444422000044444444 -% 44443300003344444444444400002244444444444400001144444444444411001144444444444422 -% 00004444444444443300003344444444443300002244444444444400002244444444444411001144 -% 44444444441100004444444444442200004444444444443300003344444444444400002244444444 -% 44440000114444444444441100114444444444443f00000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 37444314001414000014140037374a37370d00143e370d000000000022464a220000290000002900 -% 1b3741413729001b374922000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f0000000000755f5f5f4700008c5f5f -% 755f0000000000000000000000000000000000000000000000000000000000000000000044440030 -% 1b00064c001b1b00001b1b00000037000000003e0606490000000006450000371400370000003700 -% 00001b1b000000000000450d0088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f0000000000005f0000 -% 005f1700000000000000000000000000000000000000000000000000000000000000000044440044 -% 00000044001b1b00001b1b0000003700000000000006470000000025250000252500370000003700 -% 00001b1b000000000000370d0088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f0000000000005f0000 -% 00384000000000000000000000000000000000000000000000000000000000000000000044440037 -% 00000037001b1b00001b1b000000370000000000003e0d000000001b1b00001b1b00370000003700 -% 00001b1b00000000295941000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000006a2f2f230000005f0000 -% 002f2f00000000000000000000000000000000000000000000000000000000000000000044440037 -% 00000037001b1b00001b1b000000370000000000143700000000001b1b00001b1b00370000003700 -% 00001b1b0000000000064c000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000006a2f2f230000005f0000 -% 002f2f00000000000000000000000000000000000000000000000000000000000000000044440037 -% 00000037002a2500002525000000370000000000450600000000001b1b00001b1b00440000004400 -% 00001b1b0000000000002a290088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f0000000000005f0000 -% 002f2f0000000000000000000000000000000000000000000000000000000000000000004444003d -% 06000049000d3e0000450d00000037000000001b30000000000000193a00002d19003e06001b3000 -% 00001b1b0000000000003a130088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f0000000000005f0000 -% 00383800000000000000000000000000000000000000000000000000000000000000000044440006 -% 454749220000293e3e290000000037000000004a3737290000000000374a4a370000143e45370600 -% 00001b1b0000001b374437000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f0000000000005f0000 -% 00642c00000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000040755f5f5f0000755f5f5f4700008c5f64 -% 755f0000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% a8888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 8888888888888888d7888888888888000044888888888888000022888888888888220000a8a88888 -% 88884400008888888888886600006688888888888800004488888888888800002288888888888822 -% 00228888888888884400008888c8 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c005d95000000790000009c798800000000000000000000000d4542373e1b0000 -% 37374444373700000046374700000000000000000000374437373000002937375137370d00000653 -% 2500000000000000002a4d54444411005c330000004400005c444454550800000000000044373742 -% 4c14000037002544373d3d2900001b37424c1400000000000000373d3d3e3700002937375137371b -% 0000373d4337000000000000000000000079005d950000007900001ea779971e0000000000000000 -% 0000004d00000000441100085e52443300002a4d5444110000000000000000790000c70000000079 -% 00000fc70000009b799c0000000000000000003c3c00a45b00000079000000889c00007988885b00 -% 00000000000000790000b22d00000079000000a05d000000880000000000000000000000790000b9 -% 0f0000007900000fb75200957979795b000000000000000d25250600000d0000000d00141b20201b -% 0d00000d1b0000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000001424250600060600000606 -% 00141b20201b0d00000c0c000088 -% 4400000000003c3c003cac0f00007900005b5b00880f0000000000000000000037060000000d0000 -% 00001b1b000000000d3e00371b00000000000000001b290000000d00000000003700000000064c2a -% 1b00000000000000005e000000000000444d080000440000440000002a3300000000000037000000 -% 063e000037001b1b000000370600000000063e00000000000014370000000d000000000037000000 -% 000000000037000000000000000000000079003ca01e0000790000790f000f880000000000000000 -% 0000004d000000005500003b1900000000005e000000000000000000000000790000957900000079 -% 000fa78e00001e8800793c00000000000000003c3c0079a7000000790000795b79001e6a00009500 -% 000000000000007900008097000000790000887f3c00000088000000000000000000000079000095 -% 7900000079000fa75d3c007900000000000000000000064c252b4c0600370000003700141b2f2f1b -% 0d00064f353d00008800000000000000000000000000000000000000000000000000000044440000 -% 14444414001b00001b00293744371b00063a001b37220000000000000d37242b4c001b1b00001b1b -% 00141b2f2f1b0d00065325000088 -% 4400000000003c3c003c52880000790000910f005151000000000000000000003700000000000000 -% 00001b1b000000003e1400063e00000000000000001b220000000000000000003700000000060d1b -% 1b00000000000000004c000000000000442244000044000044000000004c00000000000037000000 -% 003d000037001b1b000000242400000000003e000000000000142900000000000000000037000000 -% 000000000037000000000000000000000079003c5288000079000093000000870000000000000000 -% 000000332a0000193b00004c0000000000004c00000000000000000000000079000079970f000079 -% 000f1e790000882d000f9100000000000000003c3c00794b6a00007900001e00790000000000ab00 -% 0000000000000079000079793c00007900002d3c3c00002d6a000000000000000000000079000079 -% 881e000079000f1e3c3c007900000000000000000000242a00002a240037000000370000001b1b00 -% 00002a20004e00008800000000000000000000000000000000000000000000000000000044440000 -% 4906064400370000370000003700000045410030004e0000000000002a24000042001b1b00001b1b -% 0000001b1b000000372a1b000088 -% 4400000000003c3c003c3c881e007900007900000f79000000000000000000001b4a0d0000000000 -% 00001b1b00000000370000003e000000000000000000491b0000000000000000370000000000001b -% 1b00000000000000004400001128100044004d110044000044000000004400000000000037000000 -% 0037000037001b1b0000003a13000014314922000000000000004931000000000000000037000000 -% 000006244137000000000000000000000079003c3c793c00790000940f0000950000000000000000 -% 000000084d0000441100004400000000000044000000000000000000000000790000791e88000079 -% 000000790000790000008800000000000000003c3c007900970f00790000000079000000004b6a00 -% 000000000000007900007900970000790000003c3c0000792d000000000000000000000079000079 -% 1e880000790000003c3c00873c511e000000000000001b1b00001b1b0037000000370000001b1b00 -% 00003700003706008800000000000000000000000000000000000000000000000000000044440000 -% 370000370037000037000000370000000037000000490000000000001b1b000037001b1b00001b1b -% 0000001b1b000000001b1b000088 -% 4400000000003c3c003c3c0f8800790000910000009100000000000000000000000d3e3e0d000000 -% 00001b1b00000000420000004200000000000000000006373e1b000000000000370000000000001b -% 1b0000000000000000440000113b28004400114d0044000044000000004400000000000037000000 -% 003700003700202f1b243d37000000143147220000000000000000294c2900000000000037000000 -% 00000624383e000000000000000000000079003c3c0f97007900002da75d3c940000000000000000 -% 000000004d00005500000044000000000000440000000000000000000000007900007900881e0079 -% 000000790000910000009100000000000000003c3c0079003c790079000000007900000000a70000 -% 0000000000000079000079005b5b00790000003c3c00009700001e00000000000000000079000079 -% 00793c00790000003c3c00383c51884b0000000000001b1b00001b1b0037000000370000001b1b00 -% 00004a00002a24008800000000000000000000000000000000000000000000000000000044440000 -% 370000370037000037000000370000000037000030220000000000001b1b000037001b1b00001b1b -% 0000001b1b000000001b1b000088 -% 4400000000003c3c003c3c00793c7900007900001e79000000000000000000000000000d44140000 -% 00001b1b00000000370000003e00000000000000000000000039370000000000370000000000001b -% 1b000000000000000044000000222200440000442244000044000000004400000000000037000000 -% 003700003700202f1b2949000000000000004900000000000000000000343e000000000037000000 -% 000000000044000000000000000000000079003c3c005b5b790000000f515d7a0000000000000000 -% 00000000332a193b000000440000000000004400000000000000000000000079000079000f970079 -% 000000790000790000008800000000000000003c3c00790000881e790000000079000000793c0000 -% 00000000000000790000790000970f790000003c3c000f7900007900000000000000000079000079 -% 000f9700790000003c3c0000000000a00000000000001b1b00001b1b003d0000003d0000001b1b00 -% 00003a0c003d06008800000000000000000000000000000000000000000000000000000044440000 -% 3d00003d0044000044000000370000000037000645000000000000001b1b00003700202000002020 -% 0000001b1b000000001b1b000088 -% 4400000000003c3c003c3c000f977900009c0f00455f000000000000000000000000000006370000 -% 00001b1b00000000341400064400000000000000000000000000370000000000370000000000001b -% 1b000000000000000054000000222200440000085544000044000000085400000000000037000000 -% 0044000037001b1b00003e0d0000000000004400000000000000000000003e000000000037000000 -% 000000000044000000000000000000000079003c3c000097800000000000881e0000000000000000 -% 00000000084d44110000005400000000000058000000000000000000000000790000790000793c79 -% 000000790000732d000f9500000000000000003c3c007900001e8879000000007900001e88000000 -% 000000000000007900007900003c79790000003c3c00609c7979b279000000000000000079000079 -% 00005b5b790000003c3c000000000095000000000000242a00002a24004900000d3d0000001b1b00 -% 00002b26004300008800000000000000000000000000000000000000000000000000000044440000 -% 3d060643003e140d45000000370000000037003e0d00000000000000242400004200133a00002620 -% 0000001b1b000000001b1b000088 -% 4400000000003c3c003c3c00005ba400004b5b00971e000000000000000000001400000014370000 -% 00001b1b00000000063e0037140000000000000000060d000000370000000000370000000000001b -% 1b00000000000000005e000000222200440000003b58000044000000332a00000000000037000000 -% 063e000037001b1b00000d3e00000000000637000000000000060d00000045000000000037000000 -% 00000000003e000000000000000000000079003c3c00003cb2000000005b6a000000000000000000 -% 00000000004d5500000000441900000000005500000000000000000000000079000079000000a779 -% 0000007900000f8800792d00000000000000003c3c0079000000798e00000000790000881e000000 -% 000000000000007900007900000097800000003c3c00000000007900000000000000000079000079 -% 00000097800000003c3c000000000f8800000000000006452b253e00002937224c0d0000001b1b00 -% 00000646413700008800000000000000000000000000000000000000000000000000000044440000 -% 1444441400063737060000001b000000001b004737370000000000001445242b4500003e37224c00 -% 0000001b1b000000001b1b000088 -% 4400000000003c3c003c3c000000c00000009c887e0000000000000000000000144c3e4645060000 -% 00001b1b0000000000463e47000000000000000000063e45443e140000000000370000000000001b -% 1b00000000000000002a555444542e0044000000006c00005c4444544d0000000000000044373742 -% 4c14000037001b1b0000003e06001b3742451400000000000006373e3d4929000000000037000000 -% 0000373d4929000000000000000000000079003c3c000000c0000000796a00000000000000000000 -% 0000000000424e00000000085557443300002a5e5444110000000000000000790000790000005b9c -% 000000790000009b889c0000000000000000003c3c00790000000fb900000000790045b279797900 -% 00000000000000790000790000002dab0000003c3c00000000007900000000000000000079000079 -% 0000003cab0000003c3c003c7991a72d00000000000000062525060000000d1b0600000000060600 -% 00000006140000008800000000000000000000000000000000000000000000000000000044440000 -% 000000000000000000000000000000000000000000000000000000000006242500000000141b0000 -% 0000000606000000000606000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400004a3737491b00001414003a37374637000000003d410c00000000000000003b5c4444220000 -% 5c000000191900474444573b08000000000000001f4137473e0d00002900004237374e2200000000 -% 4a000000000000004a37374e1b00001414003a37374a300600000d374c220000000000000000374e -% 3e300d00003737414137370d0000374537060000000000000000225b4c4444000057080000003300 -% 005c444c5b1900000000000000000000005b00516a0000005b00000079a779000000000000000000 -% 00000833000000002a1900003b5c44330000084d5844110000000000000000195b4c444400005208 -% 0000003300005c444c5b190000000000000000002d2d009b0f0000005b00000076510000008e4500 -% 00000000000000005b0039820000005b0000000fa400007979954b000000000000000000195b4c44 -% 44000052110000003300005c444c4c22000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 440000370000003e0d001b1b00370000001b37000022350c4100000000000000442a000000000000 -% 68110000222200440000002244000000000000001b1b00000d450000370000370000003e1400003e -% 4a00000000000000370000003e14001b1b00370000001b3700003e0d004119000000000000292900 -% 001422000000001b1b00000000293000144300000000000000085500000000000054440000004400 -% 004400000855000000000000000000000079003cac0f00007900004b6a006a4b0000000000000000 -% 0000005500000000550000333b0000000000550800000000000000000000085e0000000000004c4d -% 00000044000044000008550800000000000000003c3c008e790000007900005ba03c0000887f3c00 -% 000000000000000079003cac0f00007900000fa78e0000000000792d000000000000000055080000 -% 0000004c440000004400004400000055110000000000000019280d000d000006060d1b251b140000 -% 1f0000140d0000008800000000000000000000000000000000000000000000000000000044440000 -% 000d291900060600000d001b20201b06000c0c0006190000000000000019290d000d000006060d1b -% 251b1b000019000d201900000088 -% 440000370000002424001b1b0037000000004a00004900003d000000000000005200000000000000 -% 4c4d0000222200440000000052000000000000001b1b000000460000370000370000002424001429 -% 370000000000000037000000242a001b1b0037000000004200000d00002e34000000000000370000 -% 000000000000001b1b000000000d0000004b000000000000002d34000000000000444d1100004400 -% 004400000052000000000000000000000079003c68790000790000aa2b0000aa0000000000000000 -% 00000044110000114d0000520000000000005700000000000000000000002d34000000000000444d -% 110000440000440000002d2d00000000000000003c3c0079881e0000790000793c3c002d5b3c3c00 -% 000000000000000079003c527900007900005b2d7900000000002d79000000000000000052000000 -% 000000444422000044000044000000342d000000000000223a234c003700001b1b0d1b441b140014 -% 5100144a4f0600008800000000000000000000000000000000000000000000000000000044440000 -% 0d45293a221b1b000037001b2f2f1b06065325003e41000000000000223a294c0d3700001b1b0d1b -% 441b1b001451000d203a22000088 -% 440000370000001b1b001b1b0037000000004a00003d0000311b0000000000004400000000000000 -% 44442200222200440000000044000000000000001b1b000000370000370000370000002424000000 -% 3700000000000000370000001b1b001b1b0037000000004200000000004506000000000000293300 -% 000000000000001b1b00000000000000292900000000000000222200000000000044114d00004400 -% 004400000044000000000000000000000079003c3c880f007900002d7900793c0000000000000000 -% 000000194400003b2200004400000000000044000000000000000000000022220000000000004408 -% 4d000044000044000000222200000000000000003c3c00790f880000790000003c3c0000003c3c00 -% 000000000000000079003c3c881e007900000000790000000000882d000000000000000044000000 -% 00000044085500004400004400000022220000000000004400002f253700001b1b00003700000029 -% 3700460d2a2400008800000000000000000000000000000000000000000000000000000044440000 -% 25250000441b1b00003700001b1b00001b2a1b0d143700000000000044000025253700001b1b0000 -% 3700000022370000001b37000088 -% 440000370000001b1b001b1b00370000002930000044000025250000000000004400001144540000 -% 44085500222200440000000044000000000000001b1b00000037000037000037000006450d000000 -% 3700000000000000370000001b1b001b1b0037000000293700000000293000000000000000002a3e -% 1b0000000000001b1b00000000000006450000000000000000222200004464000044004d11004400 -% 004400000044000000000000000000000079003c3c1e88007900000fb6b9a60f0000000000000000 -% 00000000550000550000004400000000000044000000000000000000000022220000446400004400 -% 44220044000044000000222200000000000000003c3c007900793c00790000003c3c0000003c3c00 -% 000000000000000079003c3c1e880079000000007900000079c49c00000000000000000044000033 -% 54220044003b2a004400004400000022220000000000003700001b1b3700001b1b00003700000000 -% 370044000d4400008800000000000000000000000000000000000000000000000000000044440000 -% 1b1b0000371b1b00003700001b1b0000001b1b0000370000000000003700001b1b3700001b1b0000 -% 3700000000370000425a0c000088 -% 440000370000001b1b001b1b0044373759330000003700001b1b0000000000004400000000440000 -% 44003b22222200440000000044000000000000001b1b0000003700003700004a3737571b00000000 -% 3700000000000000370000001b1b001b1b0044373757370000000006450000000000000000000006 -% 374c06000000001b1b00000000000037140000000000000000222200000044000044000855004400 -% 004400000044000000000000000000000079003c3c00792d790000792d002d790000000000000000 -% 000000003b1911440000004400000000000044000000000000000000000022220000004400004400 -% 08550044000044000000222200000000000000003c3c0079000f9700790000003c3c0000003c3c00 -% 000000000000000079003c3c00793c79000000007900000000005b4b000000000000000044000000 -% 2222004400005e004400004400000022220000000000003700001b1b3d0000202000003700000000 -% 37003d00192d00008800000000000000000000000000000000000000000000000000000044440000 -% 1b1b000037202000003d00001b1b0000001b1b0000370000000000003700001b1b3d000020200000 -% 3700000000370000000d44000088 -% 440000370000001b1b001b1b003700001b370000004900003f140000000000004400000000440000 -% 4400005e222200440000000044000000000000001b1b0000003700003700003700003e0d00000000 -% 3700000000000000370000001b1b001b1b003700000d3e00000000371b0000000000000000000000 -% 000d3e000000001b1b00000000001437000000000000000000222200000044000044000044224400 -% 004400000044000000000000000000000079003c3c000f977900009c0000009c0000000000000000 -% 0000000011443b190000004400000000000044000000000000000000000022220000004400004400 -% 00333344000044000000222200000000000000003c3c007900005b5b790000003c3c0000003c3c00 -% 000000000000000079003c3c000f9779000000007900000000000095000000000000000044000000 -% 2222004400002a33440000440000002222000000000000420600351f371b003a1300003700000000 -% 3700371b331900008800000000000000000000000000000000000000000000000000000044440000 -% 2430000d42133a001b3700001b1b0000001b1b0000370000000000004206002a24371b003a190000 -% 3700000000370000000d42000088 -% 440000370000002b25001b1b0037000000370600003e060045000000000000005408000000440000 -% 44000033472200440000000054000000000000001b1b0000004900003700003700000d3e00000000 -% 3700000000000000370000002b2b001b1b0037000000370600000d3e000000000000000000000000 -% 00003e000000001b1b000000000045060000000000000000002e3d000000440000440000084d4400 -% 004400000054000000000000000000000079003c3c00006a9c000095000000950000000000000000 -% 0000000000555500000000540800000000005a00000000000000000000002e3d0000004400004400 -% 00005e44000044000000452700000000000000003c3c007900000097800000003c3c0000003c3c00 -% 000000000000000079003c3c00005b9c000000007900000000001e8a000000000000000054000000 -% 2222004400000055480000440000003d2e0000000000001443473e00063737370000002900000000 -% 2900063f420000008800000000000000000000000000000000000000000000000000000044440000 -% 003e48430d0037373e060000141400000014140000290000000000000d43493e00063e3737000000 -% 290000000029001b3d430d000088 -% 440000441b1b264506001b1b00370000000d3700001447373500000000000000224d2d22224c0000 -% 440000006028004c22222d552a00000000000000202f1b253037000037000037000000370d000000 -% 3700000000000000441b1b2b3e06001b1b00370000000d3700004e201b1b0d0000000000001b3e22 -% 24451b000000001b1b00000000313a1b1b1400000000000000005e30282254000044000000335c00 -% 005422283855000000000000000000000079003c3c000000c700002d973c883c0000000000000000 -% 0000000000445000000000194d2d22190000443b2e22080000000000000000553028225400004400 -% 00002a600000542228385e0000000000000000003c3c00790000003cb20000003c3c0000003c3c00 -% 000000000000000079003c3c000000c7000000007900003c3c60a70f00000000000000004d382822 -% 3b22004400000022640000542228305e080000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 440000251b1b200600000606000d000000000d000000141b000000000000000000112d22221f0000 -% 110000001808001f22222d1100000000000000000c201b25140000000d00000d0000000606000000 -% 0d00000000000000251b1b250600000606000d000000001400002a1b1b1b0d00000000000000061b -% 240d0000000000060600000000191b1b1b140000000000000000082828222e000011000000001f00 -% 002e2228280000000000000000000000001e000f0f000000380000001e3c2d000000000000000000 -% 000000000010100000000000112d2219000000192e22080000000000000000002828222e00001100 -% 0000001f00002e222828000000000000000000000f0f001e00000000450000000f0f0000000f0f00 -% 00000000000000001e000f0f00000038000000001e00003c3c520f00000000000000000000282822 -% 28080011000000002600002e22282800000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 76444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 4444444444444444b44444444444440000224444444444440000114444444444441100007f7f4444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444a8 -%%EndImage -%%EndPreview -save countdictstack mark newpath /showpage {} def /setpagedevice {pop} def -%%EndProlog -%%Page 1 1 -%%DocumentFonts: - -% Prolog copyright 1994-2003 Trolltech. You may copy this prolog in any way -% that is directly related to this document. For other use of this prolog, -% see your licensing agreement for Qt. -/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D -/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D -/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D -/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read -pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end -d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi -false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88 -0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{ -LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{ -gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get -SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7 -bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL -0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB -exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL -ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1 -eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if -64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3 -i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll -putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3 -1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D -/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3 -colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1 -QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray -QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2 -add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq -{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC -imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel -where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d -/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7 -DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d -/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height -h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4 -DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{ -pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC -WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{ -1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie} -if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4 -2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg -RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0 -exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if -BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h -add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0 -6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT -}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h -D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div -add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1 -ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT -0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy -MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R -{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h -ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry -D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y -w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul -200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90 -x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0 --90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h -ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale -NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS} -D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT -x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP -ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255 -div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0 -B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25 -/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true -exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3 --1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch -/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup -maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding -fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length -dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end -definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d} -D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty -MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch -stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT -1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0 -exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore -showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop -pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D -/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt -ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP} -D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D - -/LArr[ [] [] [ 83.333 25.000 ] [ 25.000 83.333 ] [ 25.000 25.000 ] [ 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 25.000 25.000 ] ] d -/pageinit { -% 297*420mm (portrait) -0 1191 translate 0.12 -0.12 scale/defM matrix CM d } d -QI -[1 0 0 1 0 0]ST -1 4 B 1 1 PE -NB -W BC -3072 9925 0 HL -3072 9452 9925 VL -0 9452 3072 HL -0 9925 9452 VL -3781 9925 3308 HL -3781 8507 9925 VL -3308 8507 3781 HL -3308 9925 8507 VL -3781 8507 3781 HL -3781 8507 3781 HL -3781 8507 3781 HL -3781 8507 3781 HL -1 4 B 1 1 PE -3123 9925 3072 HL -3199 9925 3148 HL -3276 9925 3225 HL -3308 9925 3301 HL -1 4 0 0 255 1 1 PE -59 9606 9535 VL -83 9535 9606 VL -122 9606 83 9535 DL -122 9535 9606 VL -NP -169 9539 MT -167 9538 LT -166 9536 LT -164 9535 LT -162 9535 LT -160 9535 LT -158 9536 LT -156 9537 LT -155 9538 LT -154 9539 LT -QS -NP -154 9539 MT -153 9541 LT -152 9542 LT -151 9544 LT -150 9546 LT -149 9548 LT -149 9550 LT -148 9552 LT -148 9554 LT -147 9555 LT -QS -NP -147 9586 MT -148 9588 LT -148 9590 LT -149 9592 LT -150 9594 LT -150 9596 LT -151 9598 LT -152 9599 LT -153 9601 LT -154 9602 LT -QS -NP -154 9602 MT -156 9604 LT -157 9605 LT -159 9606 LT -161 9606 LT -163 9606 LT -165 9605 LT -167 9604 LT -168 9603 LT -169 9602 LT -QS -NP -169 9602 MT -170 9600 LT -171 9599 LT -172 9597 LT -173 9595 LT -174 9593 LT -174 9591 LT -175 9590 LT -175 9588 LT -176 9586 LT -QS -NP -176 9586 MT -176 9584 LT -176 9582 LT -177 9580 LT -177 9578 LT -177 9576 LT -177 9574 LT -177 9572 LT -177 9571 LT -QS -NP -177 9571 MT -177 9569 LT -177 9567 LT -177 9565 LT -177 9563 LT -177 9561 LT -176 9559 LT -176 9557 LT -176 9555 LT -QS -NP -176 9555 MT -175 9553 LT -175 9551 LT -174 9549 LT -173 9547 LT -172 9545 LT -172 9544 LT -171 9542 LT -169 9540 LT -169 9539 LT -QS -NP -146 9571 MT -146 9573 LT -146 9575 LT -146 9577 LT -146 9579 LT -146 9581 LT -147 9583 LT -147 9584 LT -147 9586 LT -QS -NP -147 9555 MT -147 9557 LT -147 9559 LT -146 9561 LT -146 9563 LT -146 9565 LT -146 9567 LT -146 9569 LT -146 9571 LT -QS -1 4 127 d2 1 1 PE -287 9771 311 HL -272 9827 9787 VL -311 9842 287 HL -311 9803 9842 VL -299 9803 311 HL -NP -287 9771 MT -285 9772 LT -284 9772 LT -282 9773 LT -280 9773 LT -278 9774 LT -277 9776 LT -275 9777 LT -274 9779 LT -273 9781 LT -272 9783 LT -272 9784 LT -272 9786 LT -272 9787 LT -QS -NP -272 9827 MT -272 9829 LT -272 9831 LT -273 9832 LT -274 9834 LT -275 9836 LT -276 9837 LT -278 9839 LT -279 9840 LT -281 9841 LT -283 9842 LT -285 9842 LT -287 9842 LT -287 9842 LT -QS -335 9771 9842 VL -374 9842 335 9771 DL -374 9771 9842 VL -421 9842 398 HL -437 9787 9827 VL -398 9771 421 HL -398 9842 9771 VL -NP -421 9842 MT -423 9842 LT -425 9842 LT -427 9841 LT -429 9840 LT -431 9839 LT -432 9838 LT -434 9836 LT -435 9835 LT -436 9833 LT -436 9831 LT -437 9829 LT -437 9827 LT -437 9827 LT -QS -NP -437 9787 MT -437 9785 LT -437 9783 LT -436 9781 LT -435 9779 LT -434 9778 LT -433 9776 LT -431 9775 LT -430 9774 LT -428 9773 LT -426 9772 LT -424 9772 LT -422 9771 LT -421 9771 LT -QS -760 9535 784 HL -744 9590 9551 VL -784 9606 760 HL -784 9567 9606 VL -772 9567 784 HL -NP -760 9535 MT -758 9535 LT -756 9536 LT -754 9536 LT -752 9537 LT -751 9538 LT -749 9540 LT -748 9541 LT -747 9543 LT -746 9544 LT -745 9546 LT -745 9548 LT -744 9550 LT -744 9551 LT -QS -NP -744 9590 MT -744 9592 LT -745 9594 LT -745 9596 LT -746 9598 LT -747 9600 LT -749 9601 LT -750 9603 LT -752 9604 LT -754 9605 LT -755 9605 LT -757 9606 LT -759 9606 LT -760 9606 LT -QS -807 9535 9606 VL -847 9606 807 9535 DL -847 9535 9606 VL -894 9606 870 HL -910 9551 9590 VL -870 9535 894 HL -870 9606 9535 VL -NP -894 9606 MT -896 9606 LT -898 9606 LT -900 9605 LT -902 9604 LT -903 9603 LT -905 9602 LT -906 9600 LT -907 9599 LT -908 9597 LT -909 9595 LT -909 9593 LT -910 9591 LT -910 9590 LT -QS -NP -910 9551 MT -910 9549 LT -909 9547 LT -909 9545 LT -908 9543 LT -907 9542 LT -905 9540 LT -904 9539 LT -902 9537 LT -900 9537 LT -899 9536 LT -897 9535 LT -895 9535 LT -894 9535 LT -QS -1233 9771 1256 HL -1217 9827 9787 VL -1256 9842 1233 HL -1256 9803 9842 VL -1244 9803 1256 HL -NP -1233 9771 MT -1231 9772 LT -1229 9772 LT -1227 9773 LT -1225 9773 LT -1223 9774 LT -1222 9776 LT -1220 9777 LT -1219 9779 LT -1218 9781 LT -1218 9783 LT -1217 9784 LT -1217 9786 LT -1217 9787 LT -QS -NP -1217 9827 MT -1217 9829 LT -1217 9831 LT -1218 9832 LT -1219 9834 LT -1220 9836 LT -1221 9837 LT -1223 9839 LT -1224 9840 LT -1226 9841 LT -1228 9842 LT -1230 9842 LT -1232 9842 LT -1233 9842 LT -QS -1280 9771 9842 VL -1319 9842 1280 9771 DL -1319 9771 9842 VL -1367 9842 1343 HL -1382 9787 9827 VL -1343 9771 1367 HL -1343 9842 9771 VL -NP -1367 9842 MT -1369 9842 LT -1370 9842 LT -1372 9841 LT -1374 9840 LT -1376 9839 LT -1377 9838 LT -1379 9836 LT -1380 9835 LT -1381 9833 LT -1382 9831 LT -1382 9829 LT -1382 9827 LT -1382 9827 LT -QS -NP -1382 9787 MT -1382 9785 LT -1382 9783 LT -1381 9781 LT -1380 9779 LT -1379 9778 LT -1378 9776 LT -1376 9775 LT -1375 9774 LT -1373 9773 LT -1371 9772 LT -1369 9772 LT -1367 9771 LT -1367 9771 LT -QS -1717 9606 1693 9535 DL -1741 9535 1717 9606 DL -1780 9535 1796 HL -1764 9590 9551 VL -1796 9606 1780 HL -NP -1780 9535 MT -1778 9535 LT -1776 9536 LT -1774 9536 LT -1772 9537 LT -1771 9538 LT -1769 9540 LT -1768 9541 LT -1767 9543 LT -1766 9544 LT -1765 9546 LT -1764 9548 LT -1764 9550 LT -1764 9551 LT -QS -NP -1764 9590 MT -1764 9592 LT -1765 9594 LT -1765 9596 LT -1766 9598 LT -1767 9600 LT -1769 9601 LT -1770 9603 LT -1772 9604 LT -1774 9605 LT -1775 9605 LT -1777 9606 LT -1779 9606 LT -1780 9606 LT -QS -1835 9535 1851 HL -1819 9590 9551 VL -1851 9606 1835 HL -NP -1835 9535 MT -1833 9535 LT -1831 9536 LT -1829 9536 LT -1827 9537 LT -1826 9538 LT -1824 9540 LT -1823 9541 LT -1822 9543 LT -1821 9544 LT -1820 9546 LT -1820 9548 LT -1819 9550 LT -1819 9551 LT -QS -NP -1819 9590 MT -1820 9592 LT -1820 9594 LT -1821 9596 LT -1821 9598 LT -1822 9600 LT -1824 9601 LT -1825 9603 LT -1827 9604 LT -1829 9605 LT -1831 9605 LT -1832 9606 LT -1834 9606 LT -1835 9606 LT -QS -1717 9842 1693 9771 DL -1741 9771 1717 9842 DL -1780 9771 1796 HL -1764 9827 9787 VL -1796 9842 1780 HL -NP -1780 9771 MT -1778 9772 LT -1776 9772 LT -1774 9773 LT -1772 9773 LT -1771 9774 LT -1769 9776 LT -1768 9777 LT -1767 9779 LT -1766 9781 LT -1765 9783 LT -1764 9784 LT -1764 9786 LT -1764 9787 LT -QS -NP -1764 9827 MT -1764 9829 LT -1765 9831 LT -1765 9832 LT -1766 9834 LT -1767 9836 LT -1769 9837 LT -1770 9839 LT -1772 9840 LT -1774 9841 LT -1775 9842 LT -1777 9842 LT -1779 9842 LT -1780 9842 LT -QS -1835 9771 1851 HL -1819 9827 9787 VL -1851 9842 1835 HL -NP -1835 9771 MT -1833 9772 LT -1831 9772 LT -1829 9773 LT -1827 9773 LT -1826 9774 LT -1824 9776 LT -1823 9777 LT -1822 9779 LT -1821 9781 LT -1820 9783 LT -1820 9784 LT -1819 9786 LT -1819 9787 LT -QS -NP -1819 9827 MT -1820 9829 LT -1820 9831 LT -1821 9832 LT -1821 9834 LT -1822 9836 LT -1824 9837 LT -1825 9839 LT -1827 9840 LT -1829 9841 LT -1831 9842 LT -1832 9842 LT -1834 9842 LT -1835 9842 LT -QS -1941 9771 1965 HL -1926 9827 9787 VL -1965 9842 1941 HL -1965 9803 9842 VL -1953 9803 1965 HL -NP -1941 9771 MT -1939 9772 LT -1938 9772 LT -1936 9773 LT -1934 9773 LT -1932 9774 LT -1931 9776 LT -1929 9777 LT -1928 9779 LT -1927 9781 LT -1926 9783 LT -1926 9784 LT -1926 9786 LT -1926 9787 LT -QS -NP -1926 9827 MT -1926 9829 LT -1926 9831 LT -1927 9832 LT -1928 9834 LT -1929 9836 LT -1930 9837 LT -1932 9839 LT -1933 9840 LT -1935 9841 LT -1937 9842 LT -1939 9842 LT -1941 9842 LT -1941 9842 LT -QS -1989 9771 9842 VL -2028 9842 1989 9771 DL -2028 9771 9842 VL -2075 9842 2052 HL -2091 9787 9827 VL -2052 9771 2075 HL -2052 9842 9771 VL -NP -2075 9842 MT -2077 9842 LT -2079 9842 LT -2081 9841 LT -2083 9840 LT -2085 9839 LT -2086 9838 LT -2088 9836 LT -2089 9835 LT -2090 9833 LT -2090 9831 LT -2091 9829 LT -2091 9827 LT -2091 9827 LT -QS -NP -2091 9787 MT -2091 9785 LT -2091 9783 LT -2090 9781 LT -2089 9779 LT -2088 9778 LT -2087 9776 LT -2085 9775 LT -2084 9774 LT -2082 9773 LT -2080 9772 LT -2078 9772 LT -2076 9771 LT -2075 9771 LT -QS -2650 9771 2674 HL -2635 9827 9787 VL -2674 9842 2650 HL -2674 9803 9842 VL -2662 9803 2674 HL -NP -2650 9771 MT -2648 9772 LT -2646 9772 LT -2644 9773 LT -2643 9773 LT -2641 9774 LT -2639 9776 LT -2638 9777 LT -2637 9779 LT -2636 9781 LT -2635 9783 LT -2635 9784 LT -2635 9786 LT -2635 9787 LT -QS -NP -2635 9827 MT -2635 9829 LT -2635 9831 LT -2636 9832 LT -2637 9834 LT -2638 9836 LT -2639 9837 LT -2640 9839 LT -2642 9840 LT -2644 9841 LT -2646 9842 LT -2648 9842 LT -2650 9842 LT -2650 9842 LT -QS -2698 9771 9842 VL -2737 9842 2698 9771 DL -2737 9771 9842 VL -2784 9842 2761 HL -2800 9787 9827 VL -2761 9771 2784 HL -2761 9842 9771 VL -NP -2784 9842 MT -2786 9842 LT -2788 9842 LT -2790 9841 LT -2792 9840 LT -2794 9839 LT -2795 9838 LT -2796 9836 LT -2798 9835 LT -2799 9833 LT -2799 9831 LT -2800 9829 LT -2800 9827 LT -2800 9827 LT -QS -NP -2800 9787 MT -2800 9785 LT -2799 9783 LT -2799 9781 LT -2798 9779 LT -2797 9778 LT -2796 9776 LT -2794 9775 LT -2793 9774 LT -2791 9773 LT -2789 9772 LT -2787 9772 LT -2785 9771 LT -2784 9771 LT -QS -1 4 255 0 0 1 1 PE -2867 9382 9311 VL -2898 9382 2867 HL -2922 9311 2954 HL -2922 9382 9311 VL -2954 9382 2922 HL -2946 9342 2922 HL -3001 9382 2977 HL -3017 9326 9366 VL -2977 9311 3001 HL -2977 9382 9311 VL -NP -3001 9382 MT -3003 9381 LT -3005 9381 LT -3007 9380 LT -3009 9380 LT -3010 9378 LT -3012 9377 LT -3013 9376 LT -3014 9374 LT -3015 9372 LT -3016 9370 LT -3016 9368 LT -3017 9366 LT -3017 9366 LT -QS -NP -3017 9326 MT -3016 9324 LT -3016 9322 LT -3015 9321 LT -3015 9319 LT -3013 9317 LT -3012 9316 LT -3011 9314 LT -3009 9313 LT -3007 9312 LT -3005 9311 LT -3004 9311 LT -3002 9311 LT -3001 9311 LT -QS -1 4 B 1 1 PE -3123 9452 3072 HL -3199 9452 3148 HL -3276 9452 3225 HL -3352 9452 3301 HL -3429 9452 3378 HL -3506 9452 3455 HL -3582 9452 3531 HL -3659 9452 3608 HL -3735 9452 3684 HL -3781 9452 3761 HL -1 4 B 1 1 PE -2835 8322 8271 VL -2835 8399 8348 VL -2835 8475 8424 VL -2835 8552 8501 VL -2835 8628 8577 VL -2835 8705 8654 VL -2835 8781 8730 VL -2835 8858 8807 VL -2835 8934 8883 VL -2835 9011 8960 VL -2835 9088 9037 VL -2835 9164 9113 VL -2835 9216 9190 VL -0 9098 473 HL -473 7917 0 HL -473 9098 7917 VL -0 8389 7917 VL -0 9098 8625 VL -1 4 0 0 255 1 1 PE -67 8070 7999 VL -91 7999 8070 VL -130 8070 91 7999 DL -130 7999 8070 VL -169 7999 154 8015 DL -169 8070 7999 VL -59 8306 8236 VL -83 8236 8306 VL -122 8306 83 8236 DL -122 8236 8306 VL -146 8306 177 HL -176 8254 146 8306 DL -NP -176 8254 MT -177 8252 LT -177 8250 LT -177 8248 LT -177 8247 LT -QS -NP -177 8247 MT -176 8245 LT -175 8244 LT -174 8242 LT -173 8240 LT -171 8239 LT -170 8238 LT -168 8237 LT -166 8236 LT -164 8236 LT -162 8236 LT -160 8236 LT -158 8236 LT -156 8236 LT -154 8237 LT -153 8238 LT -151 8239 LT -150 8241 LT -148 8242 LT -147 8244 LT -147 8246 LT -146 8247 LT -QS -59 8543 8472 VL -83 8472 8543 VL -122 8543 83 8472 DL -122 8472 8543 VL -161 8472 146 HL -154 8503 161 HL -177 8527 8519 VL -146 8543 161 HL -NP -161 8503 MT -163 8503 LT -165 8503 LT -167 8502 LT -169 8501 LT -171 8500 LT -172 8499 LT -174 8497 LT -175 8496 LT -176 8494 LT -177 8492 LT -177 8490 LT -177 8488 LT -177 8486 LT -177 8484 LT -176 8482 LT -176 8481 LT -175 8479 LT -173 8477 LT -172 8476 LT -170 8475 LT -169 8474 LT -167 8473 LT -165 8472 LT -163 8472 LT -161 8472 LT -QS -NP -177 8519 MT -177 8517 LT -177 8515 LT -176 8513 LT -175 8511 LT -174 8510 LT -173 8508 LT -171 8507 LT -170 8506 LT -168 8505 LT -166 8504 LT -164 8504 LT -162 8503 LT -161 8503 LT -QS -NP -161 8543 MT -163 8543 LT -165 8542 LT -167 8542 LT -169 8541 LT -171 8540 LT -172 8538 LT -174 8537 LT -175 8535 LT -176 8533 LT -177 8532 LT -177 8530 LT -177 8528 LT -177 8527 LT -QS -291 8543 8472 VL -315 8472 8543 VL -354 8543 315 8472 DL -354 8472 8543 VL -406 8511 8543 VL -378 8527 417 HL -394 8472 378 8527 DL -59 8779 8708 VL -83 8708 8779 VL -122 8779 83 8708 DL -122 8708 8779 VL -146 8708 177 HL -146 8740 8708 VL -161 8740 146 HL -177 8763 8755 VL -146 8779 161 HL -NP -177 8755 MT -177 8753 LT -177 8751 LT -176 8750 LT -175 8748 LT -174 8746 LT -173 8744 LT -171 8743 LT -170 8742 LT -168 8741 LT -166 8740 LT -164 8740 LT -162 8740 LT -161 8740 LT -QS -NP -161 8779 MT -163 8779 LT -165 8779 LT -167 8778 LT -169 8777 LT -171 8776 LT -172 8775 LT -174 8773 LT -175 8772 LT -176 8770 LT -177 8768 LT -177 8766 LT -177 8764 LT -177 8763 LT -QS -295 8779 8708 VL -319 8708 8779 VL -358 8779 319 8708 DL -358 8708 8779 VL -382 8763 8749 VL -414 8755 8763 VL -383 8740 398 HL -NP -406 8708 MT -404 8709 LT -402 8710 LT -401 8711 LT -399 8713 LT -398 8714 LT -396 8715 LT -395 8717 LT -393 8718 LT -392 8720 LT -391 8721 LT -390 8723 LT -389 8725 LT -388 8727 LT -387 8728 LT -386 8730 LT -385 8732 LT -385 8734 LT -384 8736 LT -383 8738 LT -383 8740 LT -383 8742 LT -382 8744 LT -382 8746 LT -382 8748 LT -382 8749 LT -QS -NP -382 8763 MT -382 8765 LT -383 8767 LT -383 8769 LT -384 8771 LT -385 8773 LT -386 8774 LT -388 8776 LT -389 8777 LT -391 8778 LT -393 8778 LT -395 8779 LT -397 8779 LT -399 8779 LT -401 8779 LT -403 8778 LT -405 8777 LT -407 8776 LT -408 8775 LT -410 8774 LT -411 8772 LT -412 8770 LT -413 8769 LT -413 8767 LT -413 8765 LT -414 8763 LT -QS -NP -414 8755 MT -413 8753 LT -413 8751 LT -412 8750 LT -412 8748 LT -410 8746 LT -409 8744 LT -408 8743 LT -406 8742 LT -404 8741 LT -402 8740 LT -400 8740 LT -398 8740 LT -398 8740 LT -QS -59 9015 8944 VL -83 8944 9015 VL -122 9015 83 8944 DL -122 8944 9015 VL -177 8944 146 HL -158 9015 177 8944 DL -177 8976 161 HL -1 4 127 d2 1 1 PE -287 7999 311 HL -272 8054 8015 VL -311 8070 287 HL -311 8031 8070 VL -299 8031 311 HL -NP -287 7999 MT -285 7999 LT -284 8000 LT -282 8000 LT -280 8001 LT -278 8002 LT -277 8004 LT -275 8005 LT -274 8007 LT -273 8009 LT -272 8010 LT -272 8012 LT -272 8014 LT -272 8015 LT -QS -NP -272 8054 MT -272 8056 LT -272 8058 LT -273 8060 LT -274 8062 LT -275 8064 LT -276 8065 LT -278 8067 LT -279 8068 LT -281 8069 LT -283 8069 LT -285 8070 LT -287 8070 LT -287 8070 LT -QS -335 7999 8070 VL -374 8070 335 7999 DL -374 7999 8070 VL -421 8070 398 HL -437 8015 8054 VL -398 7999 421 HL -398 8070 7999 VL -NP -421 8070 MT -423 8070 LT -425 8070 LT -427 8069 LT -429 8068 LT -431 8067 LT -432 8066 LT -434 8064 LT -435 8063 LT -436 8061 LT -436 8059 LT -437 8057 LT -437 8055 LT -437 8054 LT -QS -NP -437 8015 MT -437 8013 LT -437 8011 LT -436 8009 LT -435 8007 LT -434 8006 LT -433 8004 LT -431 8003 LT -430 8002 LT -428 8001 LT -426 8000 LT -424 7999 LT -422 7999 LT -421 7999 LT -QS -299 8306 276 8236 DL -323 8236 299 8306 DL -362 8236 378 HL -347 8291 8251 VL -378 8306 362 HL -NP -362 8236 MT -360 8236 LT -358 8236 LT -356 8237 LT -355 8238 LT -353 8239 LT -351 8240 LT -350 8241 LT -349 8243 LT -348 8245 LT -347 8247 LT -347 8249 LT -347 8251 LT -347 8251 LT -QS -NP -347 8291 MT -347 8293 LT -347 8295 LT -348 8297 LT -349 8298 LT -350 8300 LT -351 8302 LT -352 8303 LT -354 8304 LT -356 8305 LT -358 8306 LT -360 8306 LT -362 8306 LT -362 8306 LT -QS -417 8236 433 HL -402 8291 8251 VL -433 8306 417 HL -NP -417 8236 MT -415 8236 LT -413 8236 LT -412 8237 LT -410 8238 LT -408 8239 LT -407 8240 LT -405 8241 LT -404 8243 LT -403 8245 LT -402 8247 LT -402 8249 LT -402 8251 LT -402 8251 LT -QS -NP -402 8291 MT -402 8293 LT -402 8295 LT -403 8297 LT -404 8298 LT -405 8300 LT -406 8302 LT -408 8303 LT -409 8304 LT -411 8305 LT -413 8306 LT -415 8306 LT -417 8306 LT -417 8306 LT -QS -287 8944 311 HL -272 9000 8960 VL -311 9015 287 HL -311 8976 9015 VL -299 8976 311 HL -NP -287 8944 MT -285 8945 LT -284 8945 LT -282 8946 LT -280 8946 LT -278 8947 LT -277 8949 LT -275 8950 LT -274 8952 LT -273 8954 LT -272 8956 LT -272 8957 LT -272 8959 LT -272 8960 LT -QS -NP -272 9000 MT -272 9002 LT -272 9004 LT -273 9005 LT -274 9007 LT -275 9009 LT -276 9010 LT -278 9012 LT -279 9013 LT -281 9014 LT -283 9015 LT -285 9015 LT -287 9015 LT -287 9015 LT -QS -335 8944 9015 VL -374 9015 335 8944 DL -374 8944 9015 VL -421 9015 398 HL -437 8960 9000 VL -398 8944 421 HL -398 9015 8944 VL -NP -421 9015 MT -423 9015 LT -425 9015 LT -427 9014 LT -429 9013 LT -431 9012 LT -432 9011 LT -434 9009 LT -435 9008 LT -436 9006 LT -436 9004 LT -437 9002 LT -437 9000 LT -437 9000 LT -QS -NP -437 8960 MT -437 8958 LT -437 8956 LT -436 8954 LT -435 8952 LT -434 8951 LT -433 8949 LT -431 8948 LT -430 8947 LT -428 8946 LT -426 8945 LT -424 8945 LT -422 8944 LT -421 8944 LT -QS -1 4 B 1 1 PE -760 8271 709 HL -836 8271 785 HL -913 8271 862 HL -990 8271 939 HL -1066 8271 1015 HL -1143 8271 1092 HL -1219 8271 1168 HL -1296 8271 1245 HL -1372 8271 1321 HL -1449 8271 1398 HL -1525 8271 1474 HL -1602 8271 1551 HL -1679 8271 1628 HL -1755 8271 1704 HL -1832 8271 1781 HL -1908 8271 1857 HL -1985 8271 1934 HL -2061 8271 2010 HL -2138 8271 2087 HL -2214 8271 2163 HL -2291 8271 2240 HL -2368 8271 2317 HL -2444 8271 2393 HL -2521 8271 2470 HL -2597 8271 2546 HL -2674 8271 2623 HL -2750 8271 2699 HL -2827 8271 2776 HL -1 4 B 1 1 PE -709 9165 9216 VL -709 9089 9140 VL -709 9012 9063 VL -709 8935 8986 VL -709 8859 8910 VL -709 8782 8833 VL -709 8706 8757 VL -709 8629 8680 VL -709 8553 8604 VL -709 8476 8527 VL -709 8400 8451 VL -709 8323 8374 VL -709 8271 8297 VL -1 4 B 1 1 PE -2784 9216 2835 HL -2708 9216 2759 HL -2631 9216 2682 HL -2555 9216 2606 HL -2478 9216 2529 HL -2402 9216 2453 HL -2325 9216 2376 HL -2248 9216 2300 HL -2172 9216 2223 HL -2095 9216 2146 HL -2019 9216 2070 HL -1942 9216 1993 HL -1866 9216 1917 HL -1789 9216 1840 HL -1713 9216 1764 HL -1636 9216 1687 HL -1559 9216 1611 HL -1483 9216 1534 HL -1406 9216 1457 HL -1330 9216 1381 HL -1253 9216 1304 HL -1177 9216 1228 HL -1100 9216 1151 HL -1024 9216 1075 HL -947 9216 998 HL -870 9216 922 HL -794 9216 845 HL -717 9216 768 HL -1 4 0 255 0 1 1 PE -3331 8609 8642 VL -3351 8596 3344 HL -3364 8642 8609 VL -3344 8655 3351 HL -NP -3344 8596 MT -3342 8596 LT -3340 8597 LT -3338 8597 LT -3337 8598 LT -3335 8600 LT -3334 8601 LT -3333 8603 LT -3332 8605 LT -3331 8606 LT -3331 8608 LT -3331 8609 LT -QS -NP -3364 8609 MT -3364 8607 LT -3363 8605 LT -3362 8603 LT -3361 8601 LT -3360 8600 LT -3359 8599 LT -3357 8597 LT -3355 8597 LT -3353 8596 LT -3351 8596 LT -3351 8596 LT -QS -NP -3351 8655 MT -3353 8655 LT -3355 8654 LT -3356 8654 LT -3358 8653 LT -3360 8651 LT -3361 8650 LT -3362 8648 LT -3363 8646 LT -3364 8644 LT -3364 8642 LT -3364 8642 LT -QS -NP -3331 8642 MT -3331 8644 LT -3332 8646 LT -3332 8648 LT -3333 8649 LT -3335 8651 LT -3336 8652 LT -3338 8653 LT -3340 8654 LT -3342 8655 LT -3344 8655 LT -3344 8655 LT -QS -3383 8639 8596 VL -3416 8596 8639 VL -NP -3383 8639 MT -3384 8641 LT -3384 8643 LT -3385 8644 LT -3385 8646 LT -3386 8648 LT -3388 8650 LT -3389 8651 LT -3391 8652 LT -3392 8653 LT -3394 8654 LT -3396 8655 LT -3398 8655 LT -3400 8655 LT -3402 8655 LT -3404 8654 LT -3406 8654 LT -3408 8653 LT -3410 8652 LT -3411 8651 LT -3412 8649 LT -3414 8647 LT -3415 8646 LT -3415 8644 LT -3416 8642 LT -3416 8640 LT -3416 8639 LT -QS -3475 8596 3436 HL -3456 8655 8596 VL -3495 8642 8635 VL -3521 8635 8642 VL -3497 8611 8607 VL -3520 8607 8611 VL -NP -3495 8642 MT -3495 8644 LT -3496 8646 LT -3496 8648 LT -3497 8649 LT -3499 8651 LT -3500 8652 LT -3502 8653 LT -3504 8654 LT -3506 8655 LT -3508 8655 LT -3510 8655 LT -3512 8655 LT -3514 8654 LT -3515 8653 LT -3517 8652 LT -3518 8650 LT -3519 8649 LT -3520 8647 LT -3521 8645 LT -3521 8643 LT -3521 8642 LT -QS -NP -3521 8635 MT -3521 8633 LT -3521 8631 LT -3520 8629 LT -3519 8628 LT -3518 8626 LT -3516 8625 LT -3514 8624 LT -3513 8623 LT -3511 8622 LT -3509 8622 LT -3507 8622 LT -3505 8623 LT -3503 8623 LT -3501 8624 LT -3500 8625 LT -3498 8627 LT -3497 8629 LT -3496 8630 LT -3495 8632 LT -3495 8634 LT -3495 8635 LT -QS -NP -3497 8611 MT -3497 8613 LT -3497 8615 LT -3498 8616 LT -3499 8618 LT -3501 8619 LT -3502 8621 LT -3504 8621 LT -3506 8622 LT -3508 8622 LT -3510 8622 LT -3512 8621 LT -3514 8621 LT -3516 8619 LT -3517 8618 LT -3518 8616 LT -3519 8615 LT -3520 8613 LT -3520 8611 LT -QS -NP -3520 8607 MT -3520 8605 LT -3519 8603 LT -3518 8602 LT -3517 8600 LT -3516 8599 LT -3514 8597 LT -3512 8597 LT -3510 8596 LT -3508 8596 LT -3506 8596 LT -3504 8597 LT -3502 8597 LT -3501 8599 LT -3499 8600 LT -3498 8602 LT -3497 8604 LT -3497 8605 LT -3497 8607 LT -QS -3567 8609 8642 VL -3587 8596 3580 HL -3600 8642 8609 VL -3580 8655 3587 HL -NP -3580 8596 MT -3578 8596 LT -3576 8597 LT -3575 8597 LT -3573 8598 LT -3571 8600 LT -3570 8601 LT -3569 8603 LT -3568 8605 LT -3568 8606 LT -3567 8608 LT -3567 8609 LT -QS -NP -3600 8609 MT -3600 8607 LT -3599 8605 LT -3599 8603 LT -3598 8601 LT -3596 8600 LT -3595 8599 LT -3593 8597 LT -3591 8597 LT -3589 8596 LT -3587 8596 LT -3587 8596 LT -QS -NP -3587 8655 MT -3589 8655 LT -3591 8654 LT -3593 8654 LT -3594 8653 LT -3596 8651 LT -3597 8650 LT -3598 8648 LT -3599 8646 LT -3600 8644 LT -3600 8642 LT -3600 8642 LT -QS -NP -3567 8642 MT -3567 8644 LT -3568 8646 LT -3569 8648 LT -3570 8649 LT -3571 8651 LT -3572 8652 LT -3574 8653 LT -3576 8654 LT -3578 8655 LT -3580 8655 LT -3580 8655 LT -QS -3620 8639 8596 VL -3653 8596 8639 VL -NP -3620 8639 MT -3620 8641 LT -3620 8643 LT -3621 8644 LT -3622 8646 LT -3623 8648 LT -3624 8650 LT -3625 8651 LT -3627 8652 LT -3629 8653 LT -3631 8654 LT -3632 8655 LT -3634 8655 LT -3636 8655 LT -3638 8655 LT -3640 8654 LT -3642 8654 LT -3644 8653 LT -3646 8652 LT -3647 8651 LT -3649 8649 LT -3650 8647 LT -3651 8646 LT -3652 8644 LT -3652 8642 LT -3653 8640 LT -3653 8639 LT -QS -3712 8596 3672 HL -3692 8655 8596 VL -3758 8609 8621 VL -3731 8616 8609 VL -3757 8629 3744 HL -NP -3738 8655 MT -3740 8654 LT -3741 8653 LT -3743 8652 LT -3744 8650 LT -3746 8649 LT -3747 8647 LT -3749 8646 LT -3750 8644 LT -3751 8643 LT -3752 8641 LT -3753 8639 LT -3754 8638 LT -3755 8636 LT -3755 8634 LT -3756 8632 LT -3757 8630 LT -3757 8628 LT -3757 8626 LT -3757 8624 LT -3758 8622 LT -3758 8621 LT -QS -NP -3758 8609 MT -3757 8607 LT -3757 8605 LT -3756 8603 LT -3755 8601 LT -3754 8600 LT -3752 8599 LT -3751 8597 LT -3749 8597 LT -3747 8596 LT -3745 8596 LT -3743 8596 LT -3741 8596 LT -3739 8597 LT -3737 8598 LT -3736 8599 LT -3734 8601 LT -3733 8602 LT -3732 8604 LT -3732 8606 LT -3731 8608 LT -3731 8609 LT -QS -NP -3731 8616 MT -3732 8618 LT -3732 8620 LT -3733 8621 LT -3734 8623 LT -3735 8625 LT -3737 8626 LT -3738 8627 LT -3740 8628 LT -3742 8628 LT -3744 8629 LT -3744 8629 LT -QS -3331 8845 8878 VL -3351 8832 3344 HL -3364 8878 8845 VL -3344 8891 3351 HL -NP -3344 8832 MT -3342 8832 LT -3340 8833 LT -3338 8834 LT -3337 8835 LT -3335 8836 LT -3334 8837 LT -3333 8839 LT -3332 8841 LT -3331 8843 LT -3331 8845 LT -3331 8845 LT -QS -NP -3364 8845 MT -3364 8843 LT -3363 8841 LT -3362 8839 LT -3361 8838 LT -3360 8836 LT -3359 8835 LT -3357 8834 LT -3355 8833 LT -3353 8832 LT -3351 8832 LT -3351 8832 LT -QS -NP -3351 8891 MT -3353 8891 LT -3355 8891 LT -3356 8890 LT -3358 8889 LT -3360 8888 LT -3361 8886 LT -3362 8884 LT -3363 8883 LT -3364 8881 LT -3364 8879 LT -3364 8878 LT -QS -NP -3331 8878 MT -3331 8880 LT -3332 8882 LT -3332 8884 LT -3333 8886 LT -3335 8887 LT -3336 8889 LT -3338 8890 LT -3340 8890 LT -3342 8891 LT -3344 8891 LT -3344 8891 LT -QS -3383 8875 8832 VL -3416 8832 8875 VL -NP -3383 8875 MT -3384 8877 LT -3384 8879 LT -3385 8881 LT -3385 8883 LT -3386 8884 LT -3388 8886 LT -3389 8887 LT -3391 8888 LT -3392 8889 LT -3394 8890 LT -3396 8891 LT -3398 8891 LT -3400 8891 LT -3402 8891 LT -3404 8891 LT -3406 8890 LT -3408 8889 LT -3410 8888 LT -3411 8887 LT -3412 8885 LT -3414 8884 LT -3415 8882 LT -3415 8880 LT -3416 8878 LT -3416 8876 LT -3416 8875 LT -QS -3475 8832 3436 HL -3456 8891 8832 VL -3495 8878 8866 VL -3521 8872 8878 VL -3496 8858 3508 HL -NP -3515 8832 MT -3513 8833 LT -3511 8834 LT -3510 8836 LT -3508 8837 LT -3507 8838 LT -3505 8840 LT -3504 8841 LT -3503 8843 LT -3502 8844 LT -3501 8846 LT -3500 8848 LT -3499 8850 LT -3498 8851 LT -3497 8853 LT -3497 8855 LT -3496 8857 LT -3496 8859 LT -3495 8861 LT -3495 8863 LT -3495 8865 LT -3495 8866 LT -QS -NP -3495 8878 MT -3495 8880 LT -3496 8882 LT -3496 8884 LT -3497 8886 LT -3499 8887 LT -3500 8889 LT -3502 8890 LT -3504 8890 LT -3506 8891 LT -3508 8891 LT -3510 8891 LT -3512 8891 LT -3514 8890 LT -3515 8889 LT -3517 8888 LT -3518 8887 LT -3519 8885 LT -3520 8883 LT -3521 8881 LT -3521 8879 LT -3521 8878 LT -QS -NP -3521 8872 MT -3521 8870 LT -3521 8868 LT -3520 8866 LT -3519 8864 LT -3518 8862 LT -3516 8861 LT -3514 8860 LT -3513 8859 LT -3511 8859 LT -3509 8858 LT -3508 8858 LT -QS -3567 8845 8878 VL -3587 8832 3580 HL -3600 8878 8845 VL -3580 8891 3587 HL -NP -3580 8832 MT -3578 8832 LT -3576 8833 LT -3575 8834 LT -3573 8835 LT -3571 8836 LT -3570 8837 LT -3569 8839 LT -3568 8841 LT -3568 8843 LT -3567 8845 LT -3567 8845 LT -QS -NP -3600 8845 MT -3600 8843 LT -3599 8841 LT -3599 8839 LT -3598 8838 LT -3596 8836 LT -3595 8835 LT -3593 8834 LT -3591 8833 LT -3589 8832 LT -3587 8832 LT -3587 8832 LT -QS -NP -3587 8891 MT -3589 8891 LT -3591 8891 LT -3593 8890 LT -3594 8889 LT -3596 8888 LT -3597 8886 LT -3598 8884 LT -3599 8883 LT -3600 8881 LT -3600 8879 LT -3600 8878 LT -QS -NP -3567 8878 MT -3567 8880 LT -3568 8882 LT -3569 8884 LT -3570 8886 LT -3571 8887 LT -3572 8889 LT -3574 8890 LT -3576 8890 LT -3578 8891 LT -3580 8891 LT -3580 8891 LT -QS -3620 8875 8832 VL -3653 8832 8875 VL -NP -3620 8875 MT -3620 8877 LT -3620 8879 LT -3621 8881 LT -3622 8883 LT -3623 8884 LT -3624 8886 LT -3625 8887 LT -3627 8888 LT -3629 8889 LT -3631 8890 LT -3632 8891 LT -3634 8891 LT -3636 8891 LT -3638 8891 LT -3640 8891 LT -3642 8890 LT -3644 8889 LT -3646 8888 LT -3647 8887 LT -3649 8885 LT -3650 8884 LT -3651 8882 LT -3652 8880 LT -3652 8878 LT -3653 8876 LT -3653 8875 LT -QS -3712 8832 3672 HL -3692 8891 8832 VL -3758 8832 3731 HL -3741 8891 3758 8832 DL -3758 8858 3744 HL -3328 9082 9114 VL -3347 9068 3341 HL -3361 9114 9082 VL -3341 9128 3347 HL -NP -3341 9068 MT -3339 9069 LT -3337 9069 LT -3335 9070 LT -3333 9071 LT -3332 9072 LT -3330 9074 LT -3329 9075 LT -3328 9077 LT -3328 9079 LT -3328 9081 LT -3328 9082 LT -QS -NP -3361 9082 MT -3360 9080 LT -3360 9078 LT -3359 9076 LT -3358 9074 LT -3357 9073 LT -3355 9071 LT -3354 9070 LT -3352 9069 LT -3350 9069 LT -3348 9068 LT -3347 9068 LT -QS -NP -3347 9128 MT -3349 9127 LT -3351 9127 LT -3353 9126 LT -3355 9125 LT -3356 9124 LT -3358 9122 LT -3359 9121 LT -3360 9119 LT -3360 9117 LT -3361 9115 LT -3361 9114 LT -QS -NP -3328 9114 MT -3328 9116 LT -3328 9118 LT -3329 9120 LT -3330 9122 LT -3331 9123 LT -3333 9125 LT -3335 9126 LT -3336 9127 LT -3338 9127 LT -3340 9128 LT -3341 9128 LT -QS -3380 9111 9068 VL -3413 9068 9111 VL -NP -3380 9111 MT -3380 9113 LT -3381 9115 LT -3381 9117 LT -3382 9119 LT -3383 9121 LT -3384 9122 LT -3386 9124 LT -3387 9125 LT -3389 9126 LT -3391 9127 LT -3393 9127 LT -3395 9127 LT -3397 9128 LT -3399 9127 LT -3401 9127 LT -3403 9126 LT -3405 9125 LT -3406 9124 LT -3408 9123 LT -3409 9122 LT -3410 9120 LT -3411 9118 LT -3412 9116 LT -3413 9115 LT -3413 9113 LT -3413 9111 LT -QS -3472 9068 3433 HL -3452 9128 9068 VL -3515 9101 9128 VL -3492 9114 3525 HL -3505 9068 3492 9114 DL -3567 9082 9114 VL -3587 9068 3580 HL -3600 9114 9082 VL -3580 9128 3587 HL -NP -3580 9068 MT -3578 9069 LT -3576 9069 LT -3575 9070 LT -3573 9071 LT -3571 9072 LT -3570 9074 LT -3569 9075 LT -3568 9077 LT -3568 9079 LT -3567 9081 LT -3567 9082 LT -QS -NP -3600 9082 MT -3600 9080 LT -3599 9078 LT -3599 9076 LT -3598 9074 LT -3596 9073 LT -3595 9071 LT -3593 9070 LT -3591 9069 LT -3589 9069 LT -3587 9068 LT -3587 9068 LT -QS -NP -3587 9128 MT -3589 9127 LT -3591 9127 LT -3593 9126 LT -3594 9125 LT -3596 9124 LT -3597 9122 LT -3598 9121 LT -3599 9119 LT -3600 9117 LT -3600 9115 LT -3600 9114 LT -QS -NP -3567 9114 MT -3567 9116 LT -3568 9118 LT -3569 9120 LT -3570 9122 LT -3571 9123 LT -3572 9125 LT -3574 9126 LT -3576 9127 LT -3578 9127 LT -3580 9128 LT -3580 9128 LT -QS -3620 9111 9068 VL -3653 9068 9111 VL -NP -3620 9111 MT -3620 9113 LT -3620 9115 LT -3621 9117 LT -3622 9119 LT -3623 9121 LT -3624 9122 LT -3625 9124 LT -3627 9125 LT -3629 9126 LT -3631 9127 LT -3632 9127 LT -3634 9127 LT -3636 9128 LT -3638 9127 LT -3640 9127 LT -3642 9126 LT -3644 9125 LT -3646 9124 LT -3647 9123 LT -3649 9122 LT -3650 9120 LT -3651 9118 LT -3652 9116 LT -3652 9115 LT -3653 9113 LT -3653 9111 LT -QS -3712 9068 3672 HL -3692 9128 9068 VL -3731 9068 3758 HL -3731 9095 9068 VL -3744 9095 3731 HL -3758 9114 9108 VL -3731 9128 3744 HL -NP -3758 9108 MT -3757 9106 LT -3757 9104 LT -3756 9102 LT -3755 9100 LT -3754 9099 LT -3752 9097 LT -3751 9096 LT -3749 9096 LT -3747 9095 LT -3745 9095 LT -3744 9095 LT -QS -NP -3744 9128 MT -3746 9127 LT -3748 9127 LT -3750 9126 LT -3752 9125 LT -3754 9124 LT -3755 9122 LT -3756 9121 LT -3757 9119 LT -3757 9117 LT -3758 9115 LT -3758 9114 LT -QS -3331 9318 9351 VL -3351 9305 3344 HL -3364 9351 9318 VL -3344 9364 3351 HL -NP -3344 9305 MT -3342 9305 LT -3340 9305 LT -3338 9306 LT -3337 9307 LT -3335 9308 LT -3334 9310 LT -3333 9312 LT -3332 9313 LT -3331 9315 LT -3331 9317 LT -3331 9318 LT -QS -NP -3364 9318 MT -3364 9316 LT -3363 9314 LT -3362 9312 LT -3361 9310 LT -3360 9309 LT -3359 9307 LT -3357 9306 LT -3355 9306 LT -3353 9305 LT -3351 9305 LT -3351 9305 LT -QS -NP -3351 9364 MT -3353 9364 LT -3355 9363 LT -3356 9362 LT -3358 9361 LT -3360 9360 LT -3361 9359 LT -3362 9357 LT -3363 9355 LT -3364 9353 LT -3364 9351 LT -3364 9351 LT -QS -NP -3331 9351 MT -3331 9353 LT -3332 9355 LT -3332 9357 LT -3333 9358 LT -3335 9360 LT -3336 9361 LT -3338 9362 LT -3340 9363 LT -3342 9364 LT -3344 9364 LT -3344 9364 LT -QS -3383 9347 9305 VL -3416 9305 9347 VL -NP -3383 9347 MT -3384 9349 LT -3384 9351 LT -3385 9353 LT -3385 9355 LT -3386 9357 LT -3388 9358 LT -3389 9360 LT -3391 9361 LT -3392 9362 LT -3394 9363 LT -3396 9363 LT -3398 9364 LT -3400 9364 LT -3402 9364 LT -3404 9363 LT -3406 9363 LT -3408 9362 LT -3410 9361 LT -3411 9359 LT -3412 9358 LT -3414 9356 LT -3415 9355 LT -3415 9353 LT -3416 9351 LT -3416 9349 LT -3416 9347 LT -QS -3475 9305 3436 HL -3456 9364 9305 VL -3495 9364 3521 HL -3520 9320 3495 9364 DL -NP -3520 9320 MT -3521 9318 LT -3521 9316 LT -3521 9315 LT -QS -NP -3521 9315 MT -3520 9313 LT -3519 9311 LT -3518 9309 LT -3517 9308 LT -3515 9307 LT -3513 9306 LT -3511 9305 LT -3509 9305 LT -3507 9305 LT -3505 9305 LT -3504 9306 LT -3502 9306 LT -3500 9308 LT -3499 9309 LT -3497 9311 LT -3496 9312 LT -3496 9314 LT -3495 9315 LT -QS -3567 9318 9351 VL -3587 9305 3580 HL -3600 9351 9318 VL -3580 9364 3587 HL -NP -3580 9305 MT -3578 9305 LT -3576 9305 LT -3575 9306 LT -3573 9307 LT -3571 9308 LT -3570 9310 LT -3569 9312 LT -3568 9313 LT -3568 9315 LT -3567 9317 LT -3567 9318 LT -QS -NP -3600 9318 MT -3600 9316 LT -3599 9314 LT -3599 9312 LT -3598 9310 LT -3596 9309 LT -3595 9307 LT -3593 9306 LT -3591 9306 LT -3589 9305 LT -3587 9305 LT -3587 9305 LT -QS -NP -3587 9364 MT -3589 9364 LT -3591 9363 LT -3593 9362 LT -3594 9361 LT -3596 9360 LT -3597 9359 LT -3598 9357 LT -3599 9355 LT -3600 9353 LT -3600 9351 LT -3600 9351 LT -QS -NP -3567 9351 MT -3567 9353 LT -3568 9355 LT -3569 9357 LT -3570 9358 LT -3571 9360 LT -3572 9361 LT -3574 9362 LT -3576 9363 LT -3578 9364 LT -3580 9364 LT -3580 9364 LT -QS -3620 9347 9305 VL -3653 9305 9347 VL -NP -3620 9347 MT -3620 9349 LT -3620 9351 LT -3621 9353 LT -3622 9355 LT -3623 9357 LT -3624 9358 LT -3625 9360 LT -3627 9361 LT -3629 9362 LT -3631 9363 LT -3632 9363 LT -3634 9364 LT -3636 9364 LT -3638 9364 LT -3640 9363 LT -3642 9363 LT -3644 9362 LT -3646 9361 LT -3647 9359 LT -3649 9358 LT -3650 9356 LT -3651 9355 LT -3652 9353 LT -3652 9351 LT -3653 9349 LT -3653 9347 LT -QS -3712 9305 3672 HL -3692 9364 9305 VL -3744 9305 3731 HL -3738 9331 3744 HL -3758 9351 9344 VL -3731 9364 3744 HL -NP -3744 9331 MT -3746 9331 LT -3748 9330 LT -3750 9330 LT -3752 9329 LT -3754 9327 LT -3755 9326 LT -3756 9324 LT -3757 9322 LT -3757 9320 LT -3758 9318 LT -3758 9316 LT -3757 9314 LT -3756 9313 LT -3756 9311 LT -3754 9309 LT -3753 9308 LT -3751 9307 LT -3749 9306 LT -3748 9305 LT -3746 9305 LT -3744 9305 LT -QS -NP -3758 9344 MT -3757 9342 LT -3757 9340 LT -3756 9338 LT -3755 9337 LT -3754 9335 LT -3752 9334 LT -3751 9333 LT -3749 9332 LT -3747 9331 LT -3745 9331 LT -3744 9331 LT -QS -NP -3744 9364 MT -3746 9364 LT -3748 9363 LT -3750 9362 LT -3752 9361 LT -3754 9360 LT -3755 9359 LT -3756 9357 LT -3757 9355 LT -3757 9353 LT -3758 9351 LT -3758 9351 LT -QS -3574 9554 9587 VL -3594 9541 3587 HL -3607 9587 9554 VL -3587 9600 3594 HL -NP -3587 9541 MT -3585 9541 LT -3583 9542 LT -3581 9542 LT -3579 9543 LT -3578 9545 LT -3577 9546 LT -3575 9548 LT -3575 9550 LT -3574 9552 LT -3574 9554 LT -3574 9554 LT -QS -NP -3607 9554 MT -3606 9552 LT -3606 9550 LT -3605 9548 LT -3604 9547 LT -3603 9545 LT -3601 9544 LT -3600 9543 LT -3598 9542 LT -3596 9541 LT -3594 9541 LT -3594 9541 LT -QS -NP -3594 9600 MT -3596 9600 LT -3597 9599 LT -3599 9599 LT -3601 9598 LT -3603 9596 LT -3604 9595 LT -3605 9593 LT -3606 9591 LT -3606 9590 LT -3607 9588 LT -3607 9587 LT -QS -NP -3574 9587 MT -3574 9589 LT -3574 9591 LT -3575 9593 LT -3576 9595 LT -3577 9596 LT -3579 9597 LT -3581 9598 LT -3582 9599 LT -3584 9600 LT -3586 9600 LT -3587 9600 LT -QS -3626 9584 9541 VL -3659 9541 9584 VL -NP -3626 9584 MT -3626 9586 LT -3627 9588 LT -3627 9590 LT -3628 9591 LT -3629 9593 LT -3631 9595 LT -3632 9596 LT -3634 9597 LT -3635 9598 LT -3637 9599 LT -3639 9600 LT -3641 9600 LT -3643 9600 LT -3645 9600 LT -3647 9600 LT -3649 9599 LT -3651 9598 LT -3652 9597 LT -3654 9596 LT -3655 9594 LT -3657 9593 LT -3657 9591 LT -3658 9589 LT -3659 9587 LT -3659 9585 LT -3659 9584 LT -QS -3718 9541 3679 HL -3699 9600 9541 VL -3751 9541 3738 9554 DL -3751 9600 9541 VL -2858 9554 9587 VL -2878 9541 2872 HL -2891 9587 9554 VL -2872 9600 2878 HL -NP -2872 9541 MT -2870 9541 LT -2868 9542 LT -2866 9542 LT -2864 9543 LT -2862 9545 LT -2861 9546 LT -2860 9548 LT -2859 9550 LT -2859 9552 LT -2858 9554 LT -2858 9554 LT -QS -NP -2891 9554 MT -2891 9552 LT -2891 9550 LT -2890 9548 LT -2889 9547 LT -2888 9545 LT -2886 9544 LT -2884 9543 LT -2883 9542 LT -2881 9541 LT -2879 9541 LT -2878 9541 LT -QS -NP -2878 9600 MT -2880 9600 LT -2882 9599 LT -2884 9599 LT -2886 9598 LT -2887 9596 LT -2889 9595 LT -2890 9593 LT -2890 9591 LT -2891 9590 LT -2891 9588 LT -2891 9587 LT -QS -NP -2858 9587 MT -2859 9589 LT -2859 9591 LT -2860 9593 LT -2861 9595 LT -2862 9596 LT -2864 9597 LT -2865 9598 LT -2867 9599 LT -2869 9600 LT -2871 9600 LT -2872 9600 LT -QS -2911 9584 9541 VL -2944 9541 9584 VL -NP -2911 9584 MT -2911 9586 LT -2911 9588 LT -2912 9590 LT -2913 9591 LT -2914 9593 LT -2915 9595 LT -2917 9596 LT -2918 9597 LT -2920 9598 LT -2922 9599 LT -2924 9600 LT -2926 9600 LT -2928 9600 LT -2930 9600 LT -2932 9600 LT -2933 9599 LT -2935 9598 LT -2937 9597 LT -2939 9596 LT -2940 9594 LT -2941 9593 LT -2942 9591 LT -2943 9589 LT -2943 9587 LT -2944 9585 LT -2944 9584 LT -QS -3003 9541 2963 HL -2983 9600 9541 VL -NP -3042 9544 MT -3040 9543 LT -3039 9542 LT -3037 9541 LT -3035 9541 LT -3033 9542 LT -3031 9543 LT -3030 9544 LT -3030 9544 LT -QS -NP -3030 9544 MT -3028 9546 LT -3027 9548 LT -3026 9549 LT -3026 9551 LT -3025 9553 LT -3024 9555 LT -3024 9557 LT -3024 9557 LT -QS -NP -3024 9584 MT -3024 9586 LT -3025 9588 LT -3026 9589 LT -3026 9591 LT -3027 9593 LT -3028 9595 LT -3029 9596 LT -3030 9597 LT -QS -NP -3030 9597 MT -3031 9598 LT -3033 9599 LT -3035 9600 LT -3037 9600 LT -3039 9599 LT -3040 9598 LT -3042 9597 LT -3042 9597 LT -QS -NP -3042 9597 MT -3043 9595 LT -3044 9593 LT -3045 9592 LT -3046 9590 LT -3046 9588 LT -3047 9586 LT -3047 9584 LT -3047 9584 LT -QS -NP -3047 9584 MT -3048 9582 LT -3048 9580 LT -3048 9578 LT -3049 9576 LT -3049 9574 LT -3049 9572 LT -3049 9571 LT -QS -NP -3049 9571 MT -3049 9569 LT -3049 9567 LT -3048 9565 LT -3048 9563 LT -3048 9561 LT -3048 9559 LT -3047 9557 LT -QS -NP -3047 9557 MT -3047 9555 LT -3046 9554 LT -3046 9552 LT -3045 9550 LT -3044 9548 LT -3043 9546 LT -3042 9545 LT -3042 9544 LT -QS -NP -3022 9571 MT -3023 9573 LT -3023 9575 LT -3023 9577 LT -3023 9579 LT -3023 9581 LT -3024 9583 LT -3024 9584 LT -QS -NP -3024 9557 MT -3023 9559 LT -3023 9561 LT -3023 9563 LT -3023 9565 LT -3023 9567 LT -3023 9569 LT -3022 9571 LT -QS -1 4 B 1 1 PE -1367 8684 1327 8803 DL -1406 8803 1367 8684 DL -1395 8770 1338 HL -1472 8684 1498 HL -1446 8776 8711 VL -1498 8803 1472 HL -NP -1472 8684 MT -1470 8685 LT -1468 8685 LT -1466 8685 LT -1464 8686 LT -1462 8686 LT -1460 8687 LT -1459 8688 LT -1457 8689 LT -1455 8690 LT -1454 8692 LT -1452 8693 LT -1451 8695 LT -1450 8696 LT -1449 8698 LT -1448 8700 LT -1447 8702 LT -1447 8704 LT -1446 8706 LT -1446 8708 LT -1446 8710 LT -1446 8711 LT -QS -NP -1446 8776 MT -1446 8778 LT -1446 8780 LT -1446 8782 LT -1447 8784 LT -1447 8786 LT -1448 8788 LT -1449 8790 LT -1450 8791 LT -1452 8793 LT -1453 8795 LT -1454 8796 LT -1456 8797 LT -1457 8798 LT -1459 8799 LT -1461 8800 LT -1463 8801 LT -1465 8802 LT -1467 8802 LT -1469 8802 LT -1471 8803 LT -1472 8803 LT -QS -1538 8684 1590 HL -1538 8803 8684 VL -1590 8803 1538 HL -1577 8737 1538 HL -1708 8803 1629 8684 DL -1708 8684 1629 8803 DL -1836 8684 1889 HL -1836 8803 8684 VL -1889 8737 1836 HL -1928 8684 8803 VL -1967 8684 1928 HL -1994 8724 8711 VL -1928 8750 1967 HL -NP -1994 8711 MT -1994 8709 LT -1993 8707 LT -1993 8705 LT -1992 8703 LT -1992 8701 LT -1991 8699 LT -1990 8697 LT -1989 8696 LT -1988 8694 LT -1986 8693 LT -1985 8691 LT -1983 8690 LT -1982 8689 LT -1980 8688 LT -1978 8687 LT -1976 8686 LT -1975 8685 LT -1973 8685 LT -1971 8685 LT -1969 8685 LT -1967 8684 LT -QS -NP -1967 8750 MT -1969 8750 LT -1971 8750 LT -1973 8749 LT -1975 8749 LT -1977 8748 LT -1979 8747 LT -1981 8746 LT -1982 8745 LT -1984 8744 LT -1986 8743 LT -1987 8741 LT -1988 8740 LT -1989 8738 LT -1990 8737 LT -1991 8735 LT -1992 8733 LT -1993 8731 LT -1993 8729 LT -1993 8727 LT -1994 8725 LT -1994 8724 LT -QS -2059 8684 2099 HL -2033 8776 8711 VL -2099 8803 2059 HL -2099 8737 8803 VL -2079 8737 2099 HL -NP -2059 8684 MT -2057 8685 LT -2055 8685 LT -2053 8685 LT -2051 8686 LT -2050 8686 LT -2048 8687 LT -2046 8688 LT -2044 8689 LT -2043 8690 LT -2041 8692 LT -2040 8693 LT -2038 8695 LT -2037 8696 LT -2036 8698 LT -2035 8700 LT -2035 8702 LT -2034 8704 LT -2034 8706 LT -2033 8708 LT -2033 8710 LT -2033 8711 LT -QS -NP -2033 8776 MT -2033 8778 LT -2033 8780 LT -2034 8782 LT -2034 8784 LT -2035 8786 LT -2036 8788 LT -2037 8790 LT -2038 8791 LT -2039 8793 LT -2040 8795 LT -2042 8796 LT -2043 8797 LT -2045 8798 LT -2047 8799 LT -2048 8800 LT -2050 8801 LT -2052 8802 LT -2054 8802 LT -2056 8802 LT -2058 8803 LT -2059 8803 LT -QS -2177 8684 2138 8803 DL -2217 8803 2177 8684 DL -2206 8770 2149 HL -637 7917 683 7969 DL -591 7969 637 7917 DL -768 7917 814 7969 DL -722 7969 768 7917 DL -942 7917 8035 VL -981 7917 942 HL -1007 7956 7943 VL -942 7982 981 HL -NP -1007 7943 MT -1007 7941 LT -1007 7939 LT -1007 7937 LT -1006 7935 LT -1006 7933 LT -1005 7931 LT -1004 7929 LT -1003 7928 LT -1002 7926 LT -1000 7925 LT -999 7923 LT -997 7922 LT -996 7921 LT -994 7920 LT -992 7919 LT -990 7918 LT -988 7918 LT -986 7917 LT -984 7917 LT -982 7917 LT -981 7917 LT -QS -NP -981 7982 MT -983 7982 LT -985 7982 LT -987 7982 LT -989 7981 LT -991 7980 LT -993 7980 LT -995 7979 LT -996 7977 LT -998 7976 LT -999 7975 LT -1001 7973 LT -1002 7972 LT -1003 7970 LT -1004 7969 LT -1005 7967 LT -1006 7965 LT -1007 7963 LT -1007 7961 LT -1007 7959 LT -1007 7957 LT -1007 7956 LT -QS -1080 7956 1053 HL -1099 8035 7976 VL -1067 8035 1099 HL -1099 7995 1067 HL -NP -1099 7976 MT -1099 7974 LT -1099 7972 LT -1098 7970 LT -1098 7968 LT -1097 7966 LT -1096 7964 LT -1095 7963 LT -1093 7961 LT -1092 7960 LT -1090 7959 LT -1088 7958 LT -1086 7957 LT -1085 7957 LT -1083 7956 LT -1081 7956 LT -1080 7956 LT -QS -NP -1067 7995 MT -1065 7995 LT -1063 7996 LT -1061 7996 LT -1059 7997 LT -1057 7998 LT -1055 7999 LT -1054 8000 LT -1052 8002 LT -1051 8003 LT -1050 8005 LT -1049 8006 LT -1048 8008 LT -1047 8010 LT -1047 8012 LT -1047 8014 LT -1047 8016 LT -1047 8018 LT -1048 8020 LT -1048 8022 LT -1049 8024 LT -1050 8026 LT -1051 8027 LT -1052 8029 LT -1054 8030 LT -1055 8031 LT -1057 8032 LT -1059 8033 LT -1061 8034 LT -1063 8034 LT -1065 8035 LT -1067 8035 LT -QS -1139 7956 8035 VL -1165 7956 1139 HL -NP -1178 7969 MT -1178 7967 LT -1178 7965 LT -1177 7963 LT -1176 7962 LT -1174 7960 LT -1173 7959 LT -1171 7958 LT -1169 7957 LT -1168 7956 LT -1166 7956 LT -1165 7956 LT -QS -1250 7956 1224 HL -1270 8035 7976 VL -1237 8035 1270 HL -1270 7995 1237 HL -NP -1270 7976 MT -1270 7974 LT -1270 7972 LT -1269 7970 LT -1268 7968 LT -1268 7966 LT -1266 7964 LT -1265 7963 LT -1264 7961 LT -1262 7960 LT -1261 7959 LT -1259 7958 LT -1257 7957 LT -1255 7957 LT -1253 7956 LT -1251 7956 LT -1250 7956 LT -QS -NP -1237 7995 MT -1235 7995 LT -1233 7996 LT -1231 7996 LT -1229 7997 LT -1228 7998 LT -1226 7999 LT -1224 8000 LT -1223 8002 LT -1222 8003 LT -1220 8005 LT -1219 8006 LT -1219 8008 LT -1218 8010 LT -1218 8012 LT -1218 8014 LT -1218 8016 LT -1218 8018 LT -1218 8020 LT -1219 8022 LT -1220 8024 LT -1221 8026 LT -1222 8027 LT -1223 8029 LT -1225 8030 LT -1226 8031 LT -1228 8032 LT -1230 8033 LT -1232 8034 LT -1233 8034 LT -1235 8035 LT -1237 8035 LT -QS -1309 8022 7917 VL -NP -1309 8022 MT -1310 8024 LT -1310 8026 LT -1311 8027 LT -1312 8029 LT -1313 8031 LT -1315 8032 LT -1316 8033 LT -1318 8034 LT -1320 8034 LT -1322 8035 LT -1323 8035 LT -QS -1362 8022 7917 VL -NP -1362 8022 MT -1362 8024 LT -1363 8026 LT -1363 8027 LT -1364 8029 LT -1366 8031 LT -1367 8032 LT -1369 8033 LT -1371 8034 LT -1373 8034 LT -1375 8035 LT -1375 8035 LT -QS -1467 7995 1414 HL -1467 7982 7995 VL -1414 8015 7982 VL -1467 8035 1434 HL -NP -1467 7982 MT -1467 7980 LT -1467 7978 LT -1466 7976 LT -1466 7974 LT -1465 7972 LT -1464 7971 LT -1463 7969 LT -1462 7967 LT -1461 7966 LT -1460 7964 LT -1458 7963 LT -1457 7961 LT -1455 7960 LT -1453 7959 LT -1452 7958 LT -1450 7958 LT -1448 7957 LT -1446 7956 LT -1444 7956 LT -1442 7956 LT -1440 7956 LT -1438 7956 LT -1436 7956 LT -1434 7957 LT -1432 7957 LT -1430 7958 LT -1428 7959 LT -1427 7960 LT -1425 7961 LT -1423 7962 LT -1422 7964 LT -1421 7965 LT -1419 7967 LT -1418 7969 LT -1417 7970 LT -1416 7972 LT -1416 7974 LT -1415 7976 LT -1415 7978 LT -1415 7980 LT -1414 7982 LT -1414 7982 LT -QS -NP -1414 8015 MT -1415 8017 LT -1415 8019 LT -1415 8021 LT -1416 8023 LT -1417 8025 LT -1418 8026 LT -1419 8028 LT -1421 8029 LT -1422 8031 LT -1424 8032 LT -1426 8033 LT -1427 8034 LT -1429 8034 LT -1431 8035 LT -1433 8035 LT -1434 8035 LT -QS -1506 8022 7917 VL -NP -1506 8022 MT -1506 8024 LT -1507 8026 LT -1508 8027 LT -1509 8029 LT -1510 8031 LT -1511 8032 LT -1513 8033 LT -1515 8034 LT -1517 8034 LT -1519 8035 LT -1519 8035 LT -QS -1647 7917 8035 VL -1687 7917 1647 HL -1713 7956 7943 VL -1647 7982 1687 HL -NP -1713 7943 MT -1713 7941 LT -1713 7939 LT -1712 7937 LT -1712 7935 LT -1711 7933 LT -1710 7931 LT -1709 7929 LT -1708 7928 LT -1707 7926 LT -1706 7925 LT -1704 7923 LT -1703 7922 LT -1701 7921 LT -1699 7920 LT -1698 7919 LT -1696 7918 LT -1694 7918 LT -1692 7917 LT -1690 7917 LT -1688 7917 LT -1687 7917 LT -QS -NP -1687 7982 MT -1689 7982 LT -1691 7982 LT -1693 7982 LT -1695 7981 LT -1697 7980 LT -1698 7980 LT -1700 7979 LT -1702 7977 LT -1703 7976 LT -1705 7975 LT -1706 7973 LT -1708 7972 LT -1709 7970 LT -1710 7969 LT -1711 7967 LT -1711 7965 LT -1712 7963 LT -1713 7961 LT -1713 7959 LT -1713 7957 LT -1713 7956 LT -QS -1752 8008 7982 VL -1805 7982 8008 VL -NP -1752 8008 MT -1753 8010 LT -1753 8012 LT -1753 8014 LT -1754 8016 LT -1754 8018 LT -1755 8020 LT -1756 8022 LT -1757 8023 LT -1758 8025 LT -1760 8027 LT -1761 8028 LT -1763 8029 LT -1764 8030 LT -1766 8031 LT -1768 8032 LT -1770 8033 LT -1772 8034 LT -1774 8034 LT -1776 8035 LT -1778 8035 LT -1780 8035 LT -1782 8035 LT -1783 8034 LT -1785 8034 LT -1787 8033 LT -1789 8033 LT -1791 8032 LT -1793 8031 LT -1794 8030 LT -1796 8028 LT -1797 8027 LT -1799 8025 LT -1800 8024 LT -1801 8022 LT -1802 8020 LT -1803 8019 LT -1804 8017 LT -1804 8015 LT -1805 8013 LT -1805 8011 LT -1805 8009 LT -1805 8008 LT -QS -NP -1805 7982 MT -1805 7980 LT -1805 7978 LT -1804 7976 LT -1804 7974 LT -1803 7972 LT -1802 7971 LT -1801 7969 LT -1800 7967 LT -1799 7966 LT -1798 7964 LT -1796 7963 LT -1795 7961 LT -1793 7960 LT -1791 7959 LT -1790 7958 LT -1788 7958 LT -1786 7957 LT -1784 7956 LT -1782 7956 LT -1780 7956 LT -1778 7956 LT -1776 7956 LT -1774 7956 LT -1772 7957 LT -1770 7957 LT -1768 7958 LT -1766 7959 LT -1765 7960 LT -1763 7961 LT -1761 7962 LT -1760 7964 LT -1759 7965 LT -1757 7967 LT -1756 7969 LT -1755 7970 LT -1754 7972 LT -1754 7974 LT -1753 7976 LT -1753 7978 LT -1753 7980 LT -1752 7982 LT -1752 7982 LT -QS -1844 7956 8035 VL -1871 7956 1844 HL -NP -1884 7969 MT -1884 7967 LT -1883 7965 LT -1882 7963 LT -1881 7962 LT -1880 7960 LT -1879 7959 LT -1877 7958 LT -1875 7957 LT -1873 7956 LT -1871 7956 LT -1871 7956 LT -QS -1962 7956 1923 HL -1936 8035 7917 VL -2117 7917 2143 HL -2090 8008 7943 VL -2143 8035 2117 HL -NP -2117 7917 MT -2115 7917 LT -2113 7917 LT -2111 7917 LT -2109 7918 LT -2107 7918 LT -2105 7919 LT -2103 7920 LT -2102 7921 LT -2100 7923 LT -2099 7924 LT -2097 7925 LT -2096 7927 LT -2095 7928 LT -2094 7930 LT -2093 7932 LT -2092 7934 LT -2091 7936 LT -2091 7938 LT -2091 7940 LT -2090 7942 LT -2090 7943 LT -QS -NP -2090 8008 MT -2091 8010 LT -2091 8012 LT -2091 8014 LT -2092 8016 LT -2092 8018 LT -2093 8020 LT -2094 8022 LT -2095 8023 LT -2096 8025 LT -2098 8027 LT -2099 8028 LT -2101 8029 LT -2102 8030 LT -2104 8031 LT -2106 8032 LT -2108 8033 LT -2110 8034 LT -2112 8034 LT -2114 8035 LT -2116 8035 LT -2117 8035 LT -QS -2182 8008 7982 VL -2235 7982 8008 VL -NP -2182 8008 MT -2182 8010 LT -2183 8012 LT -2183 8014 LT -2184 8016 LT -2184 8018 LT -2185 8020 LT -2186 8022 LT -2187 8023 LT -2188 8025 LT -2190 8027 LT -2191 8028 LT -2193 8029 LT -2194 8030 LT -2196 8031 LT -2198 8032 LT -2200 8033 LT -2202 8034 LT -2203 8034 LT -2205 8035 LT -2207 8035 LT -2209 8035 LT -2211 8035 LT -2213 8034 LT -2215 8034 LT -2217 8033 LT -2219 8033 LT -2221 8032 LT -2223 8031 LT -2224 8030 LT -2226 8028 LT -2227 8027 LT -2229 8025 LT -2230 8024 LT -2231 8022 LT -2232 8020 LT -2233 8019 LT -2234 8017 LT -2234 8015 LT -2235 8013 LT -2235 8011 LT -2235 8009 LT -2235 8008 LT -QS -NP -2235 7982 MT -2235 7980 LT -2235 7978 LT -2234 7976 LT -2234 7974 LT -2233 7972 LT -2232 7971 LT -2231 7969 LT -2230 7967 LT -2229 7966 LT -2228 7964 LT -2226 7963 LT -2225 7961 LT -2223 7960 LT -2221 7959 LT -2219 7958 LT -2218 7958 LT -2216 7957 LT -2214 7956 LT -2212 7956 LT -2210 7956 LT -2208 7956 LT -2206 7956 LT -2204 7956 LT -2202 7957 LT -2200 7957 LT -2198 7958 LT -2196 7959 LT -2195 7960 LT -2193 7961 LT -2191 7962 LT -2190 7964 LT -2189 7965 LT -2187 7967 LT -2186 7969 LT -2185 7970 LT -2184 7972 LT -2184 7974 LT -2183 7976 LT -2183 7978 LT -2182 7980 LT -2182 7982 LT -2182 7982 LT -QS -2274 7956 8035 VL -2307 7956 2274 HL -2327 8035 7976 VL -NP -2327 7976 MT -2327 7974 LT -2326 7972 LT -2326 7970 LT -2325 7968 LT -2324 7966 LT -2323 7964 LT -2322 7963 LT -2321 7961 LT -2319 7960 LT -2317 7959 LT -2316 7958 LT -2314 7957 LT -2312 7957 LT -2310 7956 LT -2308 7956 LT -2307 7956 LT -QS -2366 7956 8035 VL -2399 7956 2366 HL -2419 8035 7976 VL -NP -2419 7976 MT -2419 7974 LT -2418 7972 LT -2418 7970 LT -2417 7968 LT -2416 7966 LT -2415 7964 LT -2414 7963 LT -2412 7961 LT -2411 7960 LT -2409 7959 LT -2408 7958 LT -2406 7957 LT -2404 7957 LT -2402 7956 LT -2400 7956 LT -2399 7956 LT -QS -2511 7995 2458 HL -2511 7982 7995 VL -2458 8015 7982 VL -2511 8035 2478 HL -NP -2511 7982 MT -2510 7980 LT -2510 7978 LT -2510 7976 LT -2509 7974 LT -2509 7972 LT -2508 7971 LT -2507 7969 LT -2506 7967 LT -2505 7966 LT -2503 7964 LT -2502 7963 LT -2500 7961 LT -2499 7960 LT -2497 7959 LT -2495 7958 LT -2493 7958 LT -2491 7957 LT -2489 7956 LT -2487 7956 LT -2485 7956 LT -2483 7956 LT -2481 7956 LT -2480 7956 LT -2478 7957 LT -2476 7957 LT -2474 7958 LT -2472 7959 LT -2470 7960 LT -2469 7961 LT -2467 7962 LT -2466 7964 LT -2464 7965 LT -2463 7967 LT -2462 7969 LT -2461 7970 LT -2460 7972 LT -2459 7974 LT -2459 7976 LT -2458 7978 LT -2458 7980 LT -2458 7982 LT -2458 7982 LT -QS -NP -2458 8015 MT -2458 8017 LT -2458 8019 LT -2459 8021 LT -2460 8023 LT -2461 8025 LT -2462 8026 LT -2463 8028 LT -2464 8029 LT -2466 8031 LT -2467 8032 LT -2469 8033 LT -2471 8034 LT -2473 8034 LT -2475 8035 LT -2477 8035 LT -2478 8035 LT -QS -2570 7956 2589 HL -2550 8015 7976 VL -2589 8035 2570 HL -NP -2570 7956 MT -2568 7956 LT -2566 7956 LT -2564 7957 LT -2562 7958 LT -2560 7958 LT -2558 7960 LT -2557 7961 LT -2555 7962 LT -2554 7964 LT -2553 7965 LT -2552 7967 LT -2551 7969 LT -2551 7971 LT -2550 7973 LT -2550 7975 LT -2550 7976 LT -QS -NP -2550 8015 MT -2550 8017 LT -2550 8019 LT -2551 8021 LT -2552 8023 LT -2552 8025 LT -2553 8026 LT -2555 8028 LT -2556 8029 LT -2558 8031 LT -2559 8032 LT -2561 8033 LT -2563 8034 LT -2565 8034 LT -2567 8035 LT -2569 8035 LT -2570 8035 LT -QS -2668 7956 2629 HL -2642 8035 7917 VL -2707 8008 7982 VL -2760 7982 8008 VL -NP -2707 8008 MT -2708 8010 LT -2708 8012 LT -2708 8014 LT -2709 8016 LT -2709 8018 LT -2710 8020 LT -2711 8022 LT -2712 8023 LT -2713 8025 LT -2715 8027 LT -2716 8028 LT -2718 8029 LT -2719 8030 LT -2721 8031 LT -2723 8032 LT -2725 8033 LT -2727 8034 LT -2729 8034 LT -2731 8035 LT -2733 8035 LT -2735 8035 LT -2736 8035 LT -2738 8034 LT -2740 8034 LT -2742 8033 LT -2744 8033 LT -2746 8032 LT -2748 8031 LT -2749 8030 LT -2751 8028 LT -2752 8027 LT -2754 8025 LT -2755 8024 LT -2756 8022 LT -2757 8020 LT -2758 8019 LT -2759 8017 LT -2759 8015 LT -2760 8013 LT -2760 8011 LT -2760 8009 LT -2760 8008 LT -QS -NP -2760 7982 MT -2760 7980 LT -2760 7978 LT -2759 7976 LT -2759 7974 LT -2758 7972 LT -2757 7971 LT -2756 7969 LT -2755 7967 LT -2754 7966 LT -2753 7964 LT -2751 7963 LT -2750 7961 LT -2748 7960 LT -2746 7959 LT -2745 7958 LT -2743 7958 LT -2741 7957 LT -2739 7956 LT -2737 7956 LT -2735 7956 LT -2733 7956 LT -2731 7956 LT -2729 7956 LT -2727 7957 LT -2725 7957 LT -2723 7958 LT -2721 7959 LT -2720 7960 LT -2718 7961 LT -2716 7962 LT -2715 7964 LT -2714 7965 LT -2712 7967 LT -2711 7969 LT -2710 7970 LT -2709 7972 LT -2709 7974 LT -2708 7976 LT -2708 7978 LT -2708 7980 LT -2707 7982 LT -2707 7982 LT -QS -2799 7956 8035 VL -2826 7956 2799 HL -NP -2839 7969 MT -2839 7967 LT -2838 7965 LT -2837 7963 LT -2836 7962 LT -2835 7960 LT -2834 7959 LT -2832 7958 LT -2830 7957 LT -2828 7956 LT -2826 7956 LT -2826 7956 LT -QS -3013 7917 3059 7969 DL -2967 7969 3013 7917 DL -3144 7917 3190 7969 DL -3098 7969 3144 7917 DL -3334 7999 8117 VL -3374 7999 3334 HL -3400 8039 8026 VL -3334 8065 3374 HL -NP -3400 8026 MT -3400 8024 LT -3400 8022 LT -3399 8020 LT -3399 8018 LT -3398 8016 LT -3397 8014 LT -3396 8012 LT -3395 8010 LT -3394 8009 LT -3393 8007 LT -3391 8006 LT -3390 8005 LT -3388 8004 LT -3386 8003 LT -3385 8002 LT -3383 8001 LT -3381 8000 LT -3379 8000 LT -3377 7999 LT -3375 7999 LT -3374 7999 LT -QS -NP -3374 8065 MT -3376 8065 LT -3378 8065 LT -3380 8064 LT -3382 8064 LT -3383 8063 LT -3385 8062 LT -3387 8061 LT -3389 8060 LT -3390 8059 LT -3392 8058 LT -3393 8056 LT -3394 8055 LT -3396 8053 LT -3397 8051 LT -3398 8050 LT -3398 8048 LT -3399 8046 LT -3399 8044 LT -3400 8042 LT -3400 8040 LT -3400 8039 LT -QS -3439 8091 8065 VL -3492 8065 8091 VL -NP -3439 8091 MT -3439 8093 LT -3440 8095 LT -3440 8097 LT -3440 8099 LT -3441 8101 LT -3442 8103 LT -3443 8105 LT -3444 8106 LT -3445 8108 LT -3447 8109 LT -3448 8111 LT -3450 8112 LT -3451 8113 LT -3453 8114 LT -3455 8115 LT -3457 8116 LT -3458 8116 LT -3460 8117 LT -3462 8117 LT -3464 8117 LT -3466 8117 LT -3468 8117 LT -3470 8117 LT -3472 8117 LT -3474 8116 LT -3476 8115 LT -3478 8114 LT -3480 8113 LT -3481 8112 LT -3483 8111 LT -3484 8110 LT -3486 8108 LT -3487 8107 LT -3488 8105 LT -3489 8103 LT -3490 8101 LT -3490 8099 LT -3491 8097 LT -3491 8096 LT -3492 8094 LT -3492 8092 LT -3492 8091 LT -QS -NP -3492 8065 MT -3492 8063 LT -3491 8061 LT -3491 8059 LT -3491 8057 LT -3490 8055 LT -3489 8053 LT -3488 8052 LT -3487 8050 LT -3486 8048 LT -3485 8047 LT -3483 8045 LT -3482 8044 LT -3480 8043 LT -3478 8042 LT -3476 8041 LT -3475 8040 LT -3473 8040 LT -3471 8039 LT -3469 8039 LT -3467 8039 LT -3465 8039 LT -3463 8039 LT -3461 8039 LT -3459 8040 LT -3457 8040 LT -3455 8041 LT -3453 8042 LT -3451 8043 LT -3450 8044 LT -3448 8045 LT -3447 8046 LT -3445 8048 LT -3444 8050 LT -3443 8051 LT -3442 8053 LT -3441 8055 LT -3441 8057 LT -3440 8059 LT -3440 8061 LT -3439 8063 LT -3439 8065 LT -3439 8065 LT -QS -3551 8117 3531 8039 DL -3571 8065 3551 8117 DL -3590 8117 3571 8065 DL -3610 8039 3590 8117 DL -3702 8078 3649 HL -3702 8065 8078 VL -3649 8098 8065 VL -3702 8117 3669 HL -NP -3702 8065 MT -3702 8063 LT -3702 8061 LT -3701 8059 LT -3701 8057 LT -3700 8055 LT -3699 8053 LT -3698 8052 LT -3697 8050 LT -3696 8048 LT -3695 8047 LT -3693 8045 LT -3692 8044 LT -3690 8043 LT -3688 8042 LT -3686 8041 LT -3685 8040 LT -3683 8040 LT -3681 8039 LT -3679 8039 LT -3677 8039 LT -3675 8039 LT -3673 8039 LT -3671 8039 LT -3669 8040 LT -3667 8040 LT -3665 8041 LT -3663 8042 LT -3662 8043 LT -3660 8044 LT -3658 8045 LT -3657 8046 LT -3656 8048 LT -3654 8050 LT -3653 8051 LT -3652 8053 LT -3651 8055 LT -3651 8057 LT -3650 8059 LT -3650 8061 LT -3649 8063 LT -3649 8065 LT -3649 8065 LT -QS -NP -3649 8098 MT -3649 8100 LT -3650 8102 LT -3650 8104 LT -3651 8106 LT -3652 8107 LT -3653 8109 LT -3654 8111 LT -3655 8112 LT -3657 8113 LT -3659 8114 LT -3660 8115 LT -3662 8116 LT -3664 8117 LT -3666 8117 LT -3668 8117 LT -3669 8117 LT -QS -3741 8039 8117 VL -3767 8039 3741 HL -NP -3781 8052 MT -3780 8050 LT -3780 8048 LT -3779 8046 LT -3778 8044 LT -3777 8043 LT -3775 8041 LT -3774 8040 LT -3772 8039 LT -3770 8039 LT -3768 8039 LT -3767 8039 LT -QS -3338 8280 8188 VL -3298 8306 3311 HL -NP -3311 8306 MT -3313 8306 LT -3315 8306 LT -3317 8306 LT -3319 8305 LT -3321 8305 LT -3323 8304 LT -3325 8303 LT -3326 8302 LT -3328 8300 LT -3329 8299 LT -3331 8298 LT -3332 8296 LT -3333 8295 LT -3334 8293 LT -3335 8291 LT -3336 8289 LT -3337 8287 LT -3337 8285 LT -3337 8283 LT -3338 8281 LT -3338 8280 LT -QS -3410 8228 3383 HL -3429 8306 8247 VL -3397 8306 3429 HL -3429 8267 3397 HL -NP -3429 8247 MT -3429 8245 LT -3429 8243 LT -3429 8241 LT -3428 8240 LT -3427 8238 LT -3426 8236 LT -3425 8235 LT -3423 8233 LT -3422 8232 LT -3420 8231 LT -3418 8230 LT -3416 8229 LT -3415 8228 LT -3413 8228 LT -3411 8228 LT -3410 8228 LT -QS -NP -3397 8267 MT -3395 8267 LT -3393 8267 LT -3391 8268 LT -3389 8269 LT -3387 8270 LT -3385 8271 LT -3384 8272 LT -3382 8273 LT -3381 8275 LT -3380 8276 LT -3379 8278 LT -3378 8280 LT -3378 8282 LT -3377 8284 LT -3377 8286 LT -3377 8288 LT -3377 8290 LT -3378 8292 LT -3378 8294 LT -3379 8296 LT -3380 8297 LT -3381 8299 LT -3382 8300 LT -3384 8302 LT -3386 8303 LT -3387 8304 LT -3389 8305 LT -3391 8306 LT -3393 8306 LT -3395 8306 LT -3397 8306 LT -QS -3489 8228 3508 HL -3469 8287 8247 VL -3508 8306 3489 HL -NP -3489 8228 MT -3487 8228 LT -3485 8228 LT -3483 8229 LT -3481 8229 LT -3479 8230 LT -3477 8231 LT -3476 8232 LT -3474 8234 LT -3473 8235 LT -3472 8237 LT -3471 8239 LT -3470 8241 LT -3469 8243 LT -3469 8244 LT -3469 8246 LT -3469 8247 LT -QS -NP -3469 8287 MT -3469 8289 LT -3469 8291 LT -3470 8293 LT -3470 8295 LT -3471 8296 LT -3472 8298 LT -3474 8300 LT -3475 8301 LT -3477 8302 LT -3478 8304 LT -3480 8304 LT -3482 8305 LT -3484 8306 LT -3486 8306 LT -3488 8306 LT -3489 8306 LT -QS -3548 8306 8188 VL -3600 8228 3548 8260 DL -3600 8306 3565 8250 DL -3781 8260 3728 8215 DL -3728 8306 3781 8260 DL -1 4 0 255 0 1 1 PE -51 9842 28 HL -67 9787 9827 VL -28 9771 51 HL -28 9842 9771 VL -NP -51 9842 MT -53 9842 LT -55 9842 LT -57 9841 LT -59 9840 LT -61 9839 LT -62 9838 LT -63 9836 LT -65 9835 LT -66 9833 LT -66 9831 LT -67 9829 LT -67 9827 LT -67 9827 LT -QS -NP -67 9787 MT -67 9785 LT -66 9783 LT -66 9781 LT -65 9779 LT -64 9778 LT -63 9776 LT -61 9775 LT -59 9774 LT -58 9773 LT -56 9772 LT -54 9772 LT -52 9771 LT -51 9771 LT -QS -91 9842 9771 VL -114 9771 9842 VL -138 9771 114 HL -154 9795 9787 VL -114 9811 138 HL -154 9842 138 9811 DL -NP -154 9787 MT -153 9785 LT -153 9783 LT -152 9781 LT -152 9779 LT -151 9778 LT -149 9776 LT -148 9775 LT -146 9774 LT -144 9773 LT -142 9772 LT -141 9772 LT -139 9771 LT -138 9771 LT -QS -NP -138 9811 MT -140 9811 LT -142 9810 LT -144 9810 LT -146 9809 LT -147 9808 LT -149 9806 LT -150 9805 LT -151 9803 LT -152 9802 LT -153 9800 LT -153 9798 LT -154 9796 LT -154 9795 LT -QS -NP -200 9775 MT -199 9774 LT -197 9773 LT -195 9772 LT -193 9771 LT -191 9772 LT -190 9772 LT -188 9773 LT -186 9775 LT -186 9775 LT -QS -NP -186 9775 MT -185 9777 LT -184 9779 LT -183 9780 LT -182 9782 LT -181 9784 LT -180 9786 LT -180 9788 LT -179 9790 LT -179 9791 LT -QS -NP -179 9823 MT -179 9825 LT -180 9826 LT -180 9828 LT -181 9830 LT -182 9832 LT -183 9834 LT -184 9836 LT -185 9837 LT -186 9838 LT -QS -NP -186 9838 MT -187 9840 LT -189 9841 LT -190 9842 LT -192 9842 LT -194 9842 LT -196 9842 LT -198 9841 LT -200 9839 LT -200 9838 LT -QS -NP -200 9838 MT -201 9837 LT -202 9835 LT -203 9833 LT -204 9831 LT -205 9830 LT -206 9828 LT -206 9826 LT -207 9824 LT -207 9823 LT -QS -NP -207 9823 MT -207 9821 LT -208 9819 LT -208 9817 LT -208 9815 LT -209 9813 LT -209 9811 LT -209 9809 LT -209 9807 LT -QS -NP -209 9807 MT -209 9805 LT -209 9803 LT -208 9801 LT -208 9799 LT -208 9797 LT -208 9795 LT -207 9793 LT -207 9791 LT -QS -NP -207 9791 MT -207 9789 LT -206 9787 LT -206 9785 LT -205 9783 LT -204 9782 LT -203 9780 LT -202 9778 LT -201 9776 LT -200 9775 LT -QS -NP -177 9807 MT -177 9809 LT -177 9811 LT -177 9813 LT -178 9815 LT -178 9817 LT -178 9819 LT -178 9821 LT -179 9823 LT -QS -NP -179 9791 MT -178 9793 LT -178 9795 LT -178 9797 LT -178 9799 LT -177 9801 LT -177 9803 LT -177 9805 LT -177 9807 LT -QS -303 9576 280 9565 DL -NP -311 9541 MT -309 9540 LT -307 9539 LT -306 9538 LT -304 9538 LT -302 9537 LT -300 9537 LT -298 9536 LT -296 9536 LT -294 9536 LT -292 9535 LT -290 9535 LT -288 9535 LT -287 9535 LT -QS -NP -287 9535 MT -285 9535 LT -284 9536 LT -282 9536 LT -280 9537 LT -278 9538 LT -277 9540 LT -275 9541 LT -274 9543 LT -273 9544 LT -272 9546 LT -272 9548 LT -272 9550 LT -272 9552 LT -272 9554 LT -273 9556 LT -273 9558 LT -274 9560 LT -276 9561 LT -277 9563 LT -279 9564 LT -280 9565 LT -QS -NP -295 9606 MT -297 9606 LT -299 9606 LT -301 9605 LT -303 9604 LT -305 9603 LT -306 9602 LT -308 9600 LT -309 9599 LT -310 9597 LT -310 9595 LT -311 9593 LT -311 9591 LT -311 9589 LT -311 9587 LT -310 9585 LT -309 9583 LT -308 9581 LT -307 9580 LT -306 9578 LT -304 9577 LT -303 9576 LT -QS -NP -272 9600 MT -274 9601 LT -275 9602 LT -277 9603 LT -279 9603 LT -281 9604 LT -283 9605 LT -285 9605 LT -287 9605 LT -289 9606 LT -291 9606 LT -293 9606 LT -295 9606 LT -295 9606 LT -QS -382 9535 335 HL -358 9606 9535 VL -NP -429 9539 MT -427 9538 LT -426 9536 LT -424 9535 LT -422 9535 LT -420 9535 LT -418 9536 LT -416 9537 LT -415 9538 LT -414 9539 LT -QS -NP -414 9539 MT -413 9541 LT -412 9542 LT -411 9544 LT -410 9546 LT -409 9548 LT -409 9550 LT -408 9552 LT -408 9554 LT -407 9555 LT -QS -NP -407 9586 MT -408 9588 LT -408 9590 LT -409 9592 LT -410 9594 LT -410 9596 LT -411 9598 LT -412 9599 LT -413 9601 LT -414 9602 LT -QS -NP -414 9602 MT -415 9604 LT -417 9605 LT -419 9606 LT -421 9606 LT -423 9606 LT -425 9605 LT -427 9604 LT -428 9603 LT -429 9602 LT -QS -NP -429 9602 MT -430 9600 LT -431 9599 LT -432 9597 LT -433 9595 LT -433 9593 LT -434 9591 LT -435 9590 LT -435 9588 LT -435 9586 LT -QS -NP -435 9586 MT -436 9584 LT -436 9582 LT -437 9580 LT -437 9578 LT -437 9576 LT -437 9574 LT -437 9572 LT -437 9571 LT -QS -NP -437 9571 MT -437 9569 LT -437 9567 LT -437 9565 LT -437 9563 LT -436 9561 LT -436 9559 LT -436 9557 LT -435 9555 LT -QS -NP -435 9555 MT -435 9553 LT -435 9551 LT -434 9549 LT -433 9547 LT -432 9545 LT -431 9544 LT -430 9542 LT -429 9540 LT -429 9539 LT -QS -NP -406 9571 MT -406 9573 LT -406 9575 LT -406 9577 LT -406 9579 LT -406 9581 LT -407 9583 LT -407 9584 LT -407 9586 LT -QS -NP -407 9555 MT -407 9557 LT -407 9559 LT -406 9561 LT -406 9563 LT -406 9565 LT -406 9567 LT -406 9569 LT -406 9571 LT -QS -547 9576 524 9565 DL -NP -555 9541 MT -553 9540 LT -552 9539 LT -550 9538 LT -548 9538 LT -546 9537 LT -544 9537 LT -542 9536 LT -540 9536 LT -538 9536 LT -536 9535 LT -534 9535 LT -532 9535 LT -532 9535 LT -QS -NP -532 9535 MT -530 9535 LT -528 9536 LT -526 9536 LT -524 9537 LT -522 9538 LT -521 9540 LT -519 9541 LT -518 9543 LT -517 9544 LT -517 9546 LT -516 9548 LT -516 9550 LT -516 9552 LT -516 9554 LT -517 9556 LT -518 9558 LT -519 9560 LT -520 9561 LT -521 9563 LT -523 9564 LT -524 9565 LT -QS -NP -540 9606 MT -542 9606 LT -543 9606 LT -545 9605 LT -547 9604 LT -549 9603 LT -550 9602 LT -552 9600 LT -553 9599 LT -554 9597 LT -555 9595 LT -555 9593 LT -555 9591 LT -555 9589 LT -555 9587 LT -554 9585 LT -554 9583 LT -553 9581 LT -551 9580 LT -550 9578 LT -548 9577 LT -547 9576 LT -QS -NP -516 9600 MT -518 9601 LT -520 9602 LT -521 9603 LT -523 9603 LT -525 9604 LT -527 9605 LT -529 9605 LT -531 9605 LT -533 9606 LT -535 9606 LT -537 9606 LT -539 9606 LT -540 9606 LT -QS -626 9535 579 HL -603 9606 9535 VL -666 9535 650 9551 DL -666 9606 9535 VL -532 9842 508 HL -547 9787 9827 VL -508 9771 532 HL -508 9842 9771 VL -NP -532 9842 MT -534 9842 LT -536 9842 LT -538 9841 LT -539 9840 LT -541 9839 LT -543 9838 LT -544 9836 LT -545 9835 LT -546 9833 LT -547 9831 LT -547 9829 LT -547 9827 LT -547 9827 LT -QS -NP -547 9787 MT -547 9785 LT -547 9783 LT -546 9781 LT -545 9779 LT -544 9778 LT -543 9776 LT -542 9775 LT -540 9774 LT -538 9773 LT -536 9772 LT -534 9772 LT -532 9771 LT -532 9771 LT -QS -571 9842 9771 VL -595 9771 9842 VL -618 9771 595 HL -634 9795 9787 VL -595 9811 618 HL -634 9842 618 9811 DL -NP -634 9787 MT -634 9785 LT -634 9783 LT -633 9781 LT -632 9779 LT -631 9778 LT -630 9776 LT -628 9775 LT -627 9774 LT -625 9773 LT -623 9772 LT -621 9772 LT -619 9771 LT -618 9771 LT -QS -NP -618 9811 MT -620 9811 LT -622 9810 LT -624 9810 LT -626 9809 LT -628 9808 LT -629 9806 LT -631 9805 LT -632 9803 LT -633 9802 LT -633 9800 LT -634 9798 LT -634 9796 LT -634 9795 LT -QS -673 9771 658 9787 DL -673 9842 9771 VL -760 9842 736 HL -776 9787 9827 VL -736 9771 760 HL -736 9842 9771 VL -NP -760 9842 MT -762 9842 LT -764 9842 LT -766 9841 LT -768 9840 LT -769 9839 LT -771 9838 LT -772 9836 LT -773 9835 LT -774 9833 LT -775 9831 LT -776 9829 LT -776 9827 LT -776 9827 LT -QS -NP -776 9787 MT -776 9785 LT -775 9783 LT -775 9781 LT -774 9779 LT -773 9778 LT -771 9776 LT -770 9775 LT -768 9774 LT -767 9773 LT -765 9772 LT -763 9772 LT -761 9771 LT -760 9771 LT -QS -799 9842 9771 VL -823 9771 9842 VL -847 9771 823 HL -862 9795 9787 VL -823 9811 847 HL -862 9842 847 9811 DL -NP -862 9787 MT -862 9785 LT -862 9783 LT -861 9781 LT -860 9779 LT -859 9778 LT -858 9776 LT -857 9775 LT -855 9774 LT -853 9773 LT -851 9772 LT -849 9772 LT -847 9771 LT -847 9771 LT -QS -NP -847 9811 MT -849 9811 LT -851 9810 LT -853 9810 LT -854 9809 LT -856 9808 LT -858 9806 LT -859 9805 LT -860 9803 LT -861 9802 LT -862 9800 LT -862 9798 LT -862 9796 LT -862 9795 LT -QS -886 9842 918 HL -917 9790 886 9842 DL -NP -917 9790 MT -917 9788 LT -918 9786 LT -917 9784 LT -917 9783 LT -QS -NP -917 9783 MT -916 9781 LT -916 9780 LT -915 9778 LT -913 9776 LT -912 9775 LT -910 9774 LT -908 9773 LT -906 9772 LT -905 9772 LT -903 9771 LT -901 9771 LT -899 9772 LT -897 9772 LT -895 9773 LT -893 9774 LT -891 9775 LT -890 9777 LT -889 9778 LT -888 9780 LT -887 9782 LT -887 9783 LT -QS -1011 9813 989 9801 DL -NP -1020 9777 MT -1018 9776 LT -1016 9775 LT -1014 9775 LT -1013 9774 LT -1011 9773 LT -1009 9773 LT -1007 9772 LT -1005 9772 LT -1003 9772 LT -1001 9772 LT -999 9771 LT -997 9771 LT -996 9771 LT -QS -NP -996 9771 MT -994 9772 LT -992 9772 LT -990 9773 LT -989 9773 LT -987 9774 LT -985 9776 LT -984 9777 LT -983 9779 LT -982 9781 LT -981 9783 LT -981 9784 LT -981 9786 LT -981 9788 LT -981 9790 LT -981 9792 LT -982 9794 LT -983 9796 LT -985 9798 LT -986 9799 LT -988 9800 LT -989 9801 LT -QS -NP -1004 9842 MT -1006 9842 LT -1008 9842 LT -1010 9841 LT -1012 9840 LT -1014 9839 LT -1015 9838 LT -1016 9836 LT -1018 9835 LT -1019 9833 LT -1019 9831 LT -1020 9829 LT -1020 9827 LT -1020 9825 LT -1020 9823 LT -1019 9821 LT -1018 9819 LT -1017 9818 LT -1016 9816 LT -1015 9815 LT -1013 9814 LT -1011 9813 LT -QS -NP -981 9837 MT -982 9838 LT -984 9838 LT -986 9839 LT -988 9840 LT -990 9840 LT -992 9841 LT -994 9841 LT -996 9842 LT -998 9842 LT -1000 9842 LT -1002 9842 LT -1004 9842 LT -1004 9842 LT -QS -1091 9771 1044 HL -1067 9842 9771 VL -1114 9842 1146 HL -1145 9790 1114 9842 DL -NP -1145 9790 MT -1146 9788 LT -1146 9786 LT -1146 9784 LT -1145 9783 LT -QS -NP -1145 9783 MT -1145 9781 LT -1144 9780 LT -1143 9778 LT -1142 9776 LT -1140 9775 LT -1139 9774 LT -1137 9773 LT -1135 9772 LT -1133 9772 LT -1131 9771 LT -1129 9771 LT -1127 9772 LT -1125 9772 LT -1123 9773 LT -1121 9774 LT -1120 9775 LT -1118 9777 LT -1117 9778 LT -1116 9780 LT -1115 9782 LT -1115 9783 LT -QS -996 9606 973 HL -1012 9551 9590 VL -973 9535 996 HL -973 9606 9535 VL -NP -996 9606 MT -998 9606 LT -1000 9606 LT -1002 9605 LT -1004 9604 LT -1006 9603 LT -1007 9602 LT -1009 9600 LT -1010 9599 LT -1011 9597 LT -1011 9595 LT -1012 9593 LT -1012 9591 LT -1012 9590 LT -QS -NP -1012 9551 MT -1012 9549 LT -1012 9547 LT -1011 9545 LT -1010 9543 LT -1009 9542 LT -1008 9540 LT -1006 9539 LT -1005 9537 LT -1003 9537 LT -1001 9536 LT -999 9535 LT -997 9535 LT -996 9535 LT -QS -1036 9606 9535 VL -1059 9535 9606 VL -1083 9535 1059 HL -1099 9559 9551 VL -1059 9575 1083 HL -1099 9606 1083 9575 DL -NP -1099 9551 MT -1099 9549 LT -1098 9547 LT -1098 9545 LT -1097 9543 LT -1096 9542 LT -1094 9540 LT -1093 9539 LT -1091 9537 LT -1089 9537 LT -1088 9536 LT -1086 9535 LT -1084 9535 LT -1083 9535 LT -QS -NP -1083 9575 MT -1085 9574 LT -1087 9574 LT -1089 9573 LT -1091 9573 LT -1092 9571 LT -1094 9570 LT -1095 9569 LT -1096 9567 LT -1097 9565 LT -1098 9563 LT -1099 9561 LT -1099 9559 LT -1099 9559 LT -QS -1138 9535 1122 HL -1130 9567 1138 HL -1154 9590 9582 VL -1122 9606 1138 HL -NP -1138 9567 MT -1140 9567 LT -1142 9566 LT -1144 9565 LT -1146 9565 LT -1147 9564 LT -1149 9562 LT -1150 9561 LT -1152 9559 LT -1152 9557 LT -1153 9556 LT -1154 9554 LT -1154 9552 LT -1154 9550 LT -1154 9548 LT -1153 9546 LT -1152 9544 LT -1151 9542 LT -1150 9540 LT -1149 9539 LT -1147 9538 LT -1145 9537 LT -1143 9536 LT -1141 9535 LT -1139 9535 LT -1138 9535 LT -QS -NP -1154 9582 MT -1154 9580 LT -1153 9578 LT -1153 9577 LT -1152 9575 LT -1151 9573 LT -1149 9571 LT -1148 9570 LT -1146 9569 LT -1145 9568 LT -1143 9567 LT -1141 9567 LT -1139 9567 LT -1138 9567 LT -QS -NP -1138 9606 MT -1140 9606 LT -1142 9606 LT -1144 9605 LT -1146 9604 LT -1147 9603 LT -1149 9602 LT -1150 9600 LT -1152 9599 LT -1152 9597 LT -1153 9595 LT -1154 9593 LT -1154 9591 LT -1154 9590 LT -QS -1248 9576 1225 9565 DL -NP -1256 9541 MT -1254 9540 LT -1253 9539 LT -1251 9538 LT -1249 9538 LT -1247 9537 LT -1245 9537 LT -1243 9536 LT -1241 9536 LT -1239 9536 LT -1237 9535 LT -1235 9535 LT -1233 9535 LT -1233 9535 LT -QS -NP -1233 9535 MT -1231 9535 LT -1229 9536 LT -1227 9536 LT -1225 9537 LT -1223 9538 LT -1222 9540 LT -1220 9541 LT -1219 9543 LT -1218 9544 LT -1218 9546 LT -1217 9548 LT -1217 9550 LT -1217 9552 LT -1217 9554 LT -1218 9556 LT -1219 9558 LT -1220 9560 LT -1221 9561 LT -1222 9563 LT -1224 9564 LT -1225 9565 LT -QS -NP -1241 9606 MT -1243 9606 LT -1244 9606 LT -1246 9605 LT -1248 9604 LT -1250 9603 LT -1251 9602 LT -1253 9600 LT -1254 9599 LT -1255 9597 LT -1256 9595 LT -1256 9593 LT -1256 9591 LT -1256 9589 LT -1256 9587 LT -1255 9585 LT -1255 9583 LT -1254 9581 LT -1252 9580 LT -1251 9578 LT -1249 9577 LT -1248 9576 LT -QS -NP -1217 9600 MT -1219 9601 LT -1221 9602 LT -1222 9603 LT -1224 9603 LT -1226 9604 LT -1228 9605 LT -1230 9605 LT -1232 9605 LT -1234 9606 LT -1236 9606 LT -1238 9606 LT -1240 9606 LT -1241 9606 LT -QS -1327 9535 1280 HL -1304 9606 9535 VL -1367 9535 1351 HL -1359 9567 1367 HL -1382 9590 9582 VL -1351 9606 1367 HL -NP -1367 9567 MT -1369 9567 LT -1370 9566 LT -1372 9565 LT -1374 9565 LT -1376 9564 LT -1377 9562 LT -1379 9561 LT -1380 9559 LT -1381 9557 LT -1382 9556 LT -1382 9554 LT -1382 9552 LT -1382 9550 LT -1382 9548 LT -1381 9546 LT -1381 9544 LT -1380 9542 LT -1378 9540 LT -1377 9539 LT -1375 9538 LT -1374 9537 LT -1372 9536 LT -1370 9535 LT -1368 9535 LT -1367 9535 LT -QS -NP -1382 9582 MT -1382 9580 LT -1382 9578 LT -1381 9577 LT -1380 9575 LT -1379 9573 LT -1378 9571 LT -1376 9570 LT -1375 9569 LT -1373 9568 LT -1371 9567 LT -1369 9567 LT -1367 9567 LT -1367 9567 LT -QS -NP -1367 9606 MT -1369 9606 LT -1370 9606 LT -1372 9605 LT -1374 9604 LT -1376 9603 LT -1377 9602 LT -1379 9600 LT -1380 9599 LT -1381 9597 LT -1382 9595 LT -1382 9593 LT -1382 9591 LT -1382 9590 LT -QS -1 4 0 0 255 1 1 PE -1477 9842 9771 VL -1500 9771 9842 VL -1540 9842 1500 9771 DL -1540 9771 9842 VL -1563 9827 9819 VL -1595 9819 9827 VL -1565 9789 9785 VL -1593 9785 9789 VL -NP -1563 9827 MT -1564 9829 LT -1564 9831 LT -1565 9832 LT -1565 9834 LT -1567 9836 LT -1568 9837 LT -1569 9839 LT -1571 9840 LT -1573 9841 LT -1575 9842 LT -1577 9842 LT -1578 9842 LT -1581 9842 LT -1582 9842 LT -1584 9841 LT -1586 9841 LT -1588 9840 LT -1590 9838 LT -1591 9837 LT -1592 9835 LT -1593 9834 LT -1594 9832 LT -1595 9830 LT -1595 9828 LT -1595 9827 LT -QS -NP -1595 9819 MT -1595 9817 LT -1594 9815 LT -1594 9813 LT -1593 9811 LT -1592 9809 LT -1591 9808 LT -1589 9806 LT -1587 9805 LT -1586 9804 LT -1584 9804 LT -1582 9803 LT -1580 9803 LT -1578 9803 LT -1576 9803 LT -1574 9804 LT -1572 9805 LT -1570 9806 LT -1569 9807 LT -1567 9808 LT -1566 9810 LT -1565 9812 LT -1564 9813 LT -1564 9815 LT -1563 9817 LT -1563 9819 LT -QS -NP -1565 9789 MT -1566 9791 LT -1566 9793 LT -1567 9795 LT -1568 9797 LT -1569 9798 LT -1570 9800 LT -1572 9801 LT -1574 9802 LT -1576 9802 LT -1578 9803 LT -1580 9803 LT -1582 9803 LT -1584 9802 LT -1585 9801 LT -1587 9800 LT -1589 9799 LT -1590 9798 LT -1591 9796 LT -1592 9794 LT -1593 9792 LT -1593 9790 LT -1593 9789 LT -QS -NP -1593 9785 MT -1593 9783 LT -1592 9781 LT -1592 9779 LT -1591 9778 LT -1589 9776 LT -1588 9775 LT -1586 9773 LT -1585 9773 LT -1583 9772 LT -1581 9772 LT -1579 9771 LT -1577 9772 LT -1575 9772 LT -1573 9773 LT -1571 9774 LT -1570 9775 LT -1568 9777 LT -1567 9778 LT -1566 9780 LT -1566 9782 LT -1565 9784 LT -1565 9785 LT -QS -1477 9606 9535 VL -1500 9535 9606 VL -1540 9606 1500 9535 DL -1540 9535 9606 VL -1595 9551 9565 VL -1563 9559 9551 VL -1594 9575 1579 HL -NP -1571 9606 MT -1573 9605 LT -1575 9604 LT -1576 9603 LT -1578 9601 LT -1579 9600 LT -1581 9599 LT -1582 9597 LT -1584 9596 LT -1585 9594 LT -1586 9593 LT -1587 9591 LT -1588 9589 LT -1589 9588 LT -1590 9586 LT -1591 9584 LT -1592 9582 LT -1592 9580 LT -1593 9578 LT -1594 9576 LT -1594 9575 LT -1594 9573 LT -1595 9571 LT -1595 9569 LT -1595 9567 LT -1595 9565 LT -QS -NP -1595 9551 MT -1595 9549 LT -1594 9547 LT -1594 9545 LT -1593 9543 LT -1592 9542 LT -1591 9540 LT -1589 9539 LT -1587 9537 LT -1586 9537 LT -1584 9536 LT -1582 9535 LT -1580 9535 LT -1578 9535 LT -1576 9535 LT -1574 9536 LT -1572 9537 LT -1570 9538 LT -1569 9539 LT -1567 9540 LT -1566 9542 LT -1565 9544 LT -1564 9546 LT -1564 9548 LT -1563 9550 LT -1563 9551 LT -QS -NP -1563 9559 MT -1564 9561 LT -1564 9563 LT -1565 9565 LT -1565 9566 LT -1567 9568 LT -1568 9570 LT -1569 9571 LT -1571 9572 LT -1573 9573 LT -1575 9574 LT -1577 9574 LT -1578 9574 LT -1579 9575 LT -QS -1930 9606 9535 VL -1953 9535 9606 VL -1993 9606 1953 9535 DL -1993 9535 9606 VL -2032 9535 2016 9551 DL -2032 9606 9535 VL -NP -2079 9539 MT -2077 9538 LT -2076 9536 LT -2074 9535 LT -2072 9535 LT -2070 9535 LT -2068 9536 LT -2066 9537 LT -2065 9538 LT -2064 9539 LT -QS -NP -2064 9539 MT -2063 9541 LT -2062 9542 LT -2061 9544 LT -2060 9546 LT -2059 9548 LT -2059 9550 LT -2058 9552 LT -2058 9554 LT -2057 9555 LT -QS -NP -2057 9586 MT -2058 9588 LT -2058 9590 LT -2059 9592 LT -2060 9594 LT -2060 9596 LT -2061 9598 LT -2062 9599 LT -2063 9601 LT -2064 9602 LT -QS -NP -2064 9602 MT -2066 9604 LT -2067 9605 LT -2069 9606 LT -2071 9606 LT -2073 9606 LT -2075 9605 LT -2077 9604 LT -2078 9603 LT -2079 9602 LT -QS -NP -2079 9602 MT -2080 9600 LT -2081 9599 LT -2082 9597 LT -2083 9595 LT -2084 9593 LT -2084 9591 LT -2085 9590 LT -2085 9588 LT -2086 9586 LT -QS -NP -2086 9586 MT -2086 9584 LT -2086 9582 LT -2087 9580 LT -2087 9578 LT -2087 9576 LT -2087 9574 LT -2087 9572 LT -2087 9571 LT -QS -NP -2087 9571 MT -2087 9569 LT -2087 9567 LT -2087 9565 LT -2087 9563 LT -2087 9561 LT -2086 9559 LT -2086 9557 LT -2086 9555 LT -QS -NP -2086 9555 MT -2085 9553 LT -2085 9551 LT -2084 9549 LT -2083 9547 LT -2082 9545 LT -2082 9544 LT -2081 9542 LT -2079 9540 LT -2079 9539 LT -QS -NP -2056 9571 MT -2056 9573 LT -2056 9575 LT -2056 9577 LT -2056 9579 LT -2056 9581 LT -2057 9583 LT -2057 9584 LT -2057 9586 LT -QS -NP -2057 9555 MT -2057 9557 LT -2057 9559 LT -2056 9561 LT -2056 9563 LT -2056 9565 LT -2056 9567 LT -2056 9569 LT -2056 9571 LT -QS -2174 9842 9771 VL -2197 9771 9842 VL -2237 9842 2197 9771 DL -2237 9771 9842 VL -2276 9771 2260 9787 DL -2276 9842 9771 VL -2316 9771 2300 9787 DL -2316 9842 9771 VL -2166 9606 9535 VL -2190 9535 9606 VL -2229 9606 2190 9535 DL -2229 9535 9606 VL -2268 9535 2253 9551 DL -2268 9606 9535 VL -2292 9606 2323 HL -2322 9554 2292 9606 DL -NP -2322 9554 MT -2323 9552 LT -2323 9550 LT -2323 9548 LT -2323 9547 LT -QS -NP -2323 9547 MT -2322 9545 LT -2321 9543 LT -2320 9542 LT -2319 9540 LT -2318 9539 LT -2316 9537 LT -2314 9537 LT -2312 9536 LT -2310 9535 LT -2308 9535 LT -2306 9535 LT -2304 9535 LT -2303 9536 LT -2301 9537 LT -2299 9538 LT -2297 9539 LT -2296 9540 LT -2295 9542 LT -2294 9544 LT -2293 9546 LT -2292 9547 LT -QS -2402 9842 9771 VL -2426 9771 9842 VL -2465 9842 2426 9771 DL -2465 9771 9842 VL -2505 9771 2489 9787 DL -2505 9842 9771 VL -2544 9771 2528 HL -2536 9803 2544 HL -2560 9827 9819 VL -2528 9842 2544 HL -NP -2544 9803 MT -2546 9803 LT -2548 9802 LT -2550 9802 LT -2552 9801 LT -2553 9800 LT -2555 9799 LT -2556 9797 LT -2557 9795 LT -2558 9794 LT -2559 9792 LT -2560 9790 LT -2560 9788 LT -2560 9786 LT -2559 9784 LT -2559 9782 LT -2558 9780 LT -2557 9778 LT -2556 9777 LT -2554 9775 LT -2553 9774 LT -2551 9773 LT -2549 9772 LT -2547 9772 LT -2545 9771 LT -2544 9771 LT -QS -NP -2560 9819 MT -2560 9817 LT -2559 9815 LT -2559 9813 LT -2558 9811 LT -2557 9809 LT -2555 9808 LT -2554 9806 LT -2552 9805 LT -2551 9804 LT -2549 9804 LT -2547 9803 LT -2545 9803 LT -2544 9803 LT -QS -NP -2544 9842 MT -2546 9842 LT -2548 9842 LT -2550 9841 LT -2552 9840 LT -2553 9839 LT -2555 9838 LT -2556 9836 LT -2557 9835 LT -2558 9833 LT -2559 9831 LT -2560 9829 LT -2560 9827 LT -2560 9827 LT -QS -2398 9606 9535 VL -2422 9535 9606 VL -2461 9606 2422 9535 DL -2461 9535 9606 VL -2501 9535 2485 9551 DL -2501 9606 9535 VL -2552 9575 9606 VL -2524 9590 2564 HL -2540 9535 2524 9590 DL -2639 9606 9535 VL -2662 9535 9606 VL -2702 9606 2662 9535 DL -2702 9535 9606 VL -2741 9535 2725 9551 DL -2741 9606 9535 VL -2765 9535 2796 HL -2765 9567 9535 VL -2780 9567 2765 HL -2796 9590 9582 VL -2765 9606 2780 HL -NP -2796 9582 MT -2796 9580 LT -2796 9578 LT -2795 9577 LT -2794 9575 LT -2793 9573 LT -2792 9571 LT -2790 9570 LT -2789 9569 LT -2787 9568 LT -2785 9567 LT -2783 9567 LT -2781 9567 LT -2780 9567 LT -QS -NP -2780 9606 MT -2782 9606 LT -2784 9606 LT -2786 9605 LT -2788 9604 LT -2790 9603 LT -2791 9602 LT -2793 9600 LT -2794 9599 LT -2795 9597 LT -2795 9595 LT -2796 9593 LT -2796 9591 LT -2796 9590 LT -QS -1 4 0 255 0 1 1 PE -3337 9557 9584 VL -3353 9547 3347 HL -3363 9584 9557 VL -3347 9594 3353 HL -NP -3347 9547 MT -3345 9547 LT -3343 9548 LT -3342 9549 LT -3340 9550 LT -3339 9551 LT -3338 9553 LT -3337 9555 LT -3337 9557 LT -3337 9557 LT -QS -NP -3363 9557 MT -3363 9555 LT -3362 9554 LT -3361 9552 LT -3360 9550 LT -3359 9549 LT -3357 9548 LT -3355 9547 LT -3353 9547 LT -3353 9547 LT -QS -NP -3353 9594 MT -3355 9594 LT -3357 9593 LT -3358 9593 LT -3360 9591 LT -3361 9590 LT -3362 9588 LT -3363 9586 LT -3363 9584 LT -3363 9584 LT -QS -NP -3337 9584 MT -3337 9586 LT -3338 9588 LT -3339 9589 LT -3340 9591 LT -3341 9592 LT -3343 9593 LT -3345 9594 LT -3347 9594 LT -3347 9594 LT -QS -3379 9581 9547 VL -3405 9547 9581 VL -NP -3379 9581 MT -3379 9583 LT -3379 9585 LT -3380 9587 LT -3381 9589 LT -3383 9590 LT -3384 9591 LT -3386 9593 LT -3388 9593 LT -3389 9594 LT -3391 9594 LT -3393 9594 LT -3395 9594 LT -3397 9593 LT -3399 9592 LT -3401 9591 LT -3402 9589 LT -3403 9588 LT -3404 9586 LT -3405 9584 LT -3405 9582 LT -3405 9581 LT -QS -3452 9547 3421 HL -3437 9594 9547 VL -3479 9547 3468 9557 DL -3479 9594 9547 VL -3494 9594 3515 HL -3515 9559 3494 9594 DL -NP -3515 9559 MT -3515 9557 LT -3515 9555 LT -3515 9555 LT -QS -NP -3515 9555 MT -3514 9553 LT -3513 9551 LT -3512 9550 LT -3510 9549 LT -3509 9548 LT -3507 9547 LT -3505 9547 LT -3503 9547 LT -3501 9548 LT -3499 9549 LT -3497 9550 LT -3496 9552 LT -3495 9553 LT -3495 9555 LT -QS -3573 9794 9820 VL -3589 9783 3584 HL -3599 9820 9794 VL -3584 9830 3589 HL -NP -3584 9783 MT -3582 9783 LT -3580 9784 LT -3578 9785 LT -3576 9786 LT -3575 9788 LT -3574 9789 LT -3573 9791 LT -3573 9793 LT -3573 9794 LT -QS -NP -3599 9794 MT -3599 9792 LT -3599 9790 LT -3598 9788 LT -3596 9786 LT -3595 9785 LT -3593 9784 LT -3591 9784 LT -3589 9783 LT -3589 9783 LT -QS -NP -3589 9830 MT -3591 9830 LT -3593 9830 LT -3595 9829 LT -3596 9828 LT -3598 9826 LT -3599 9824 LT -3599 9822 LT -3599 9820 LT -3599 9820 LT -QS -NP -3573 9820 MT -3573 9822 LT -3574 9824 LT -3575 9826 LT -3576 9827 LT -3578 9829 LT -3579 9830 LT -3581 9830 LT -3583 9830 LT -3584 9830 LT -QS -3615 9817 9783 VL -3641 9783 9817 VL -NP -3615 9817 MT -3615 9819 LT -3616 9821 LT -3617 9823 LT -3618 9825 LT -3619 9826 LT -3620 9828 LT -3622 9829 LT -3624 9830 LT -3626 9830 LT -3628 9830 LT -3630 9830 LT -3632 9830 LT -3634 9829 LT -3635 9828 LT -3637 9827 LT -3638 9826 LT -3640 9824 LT -3640 9822 LT -3641 9820 LT -3641 9818 LT -3641 9817 LT -QS -3689 9783 3657 HL -3673 9830 9783 VL -3715 9783 3704 9794 DL -3715 9830 9783 VL -3741 9783 3731 HL -3736 9804 3741 HL -3752 9820 9815 VL -3731 9830 3741 HL -NP -3741 9804 MT -3743 9804 LT -3745 9803 LT -3747 9803 LT -3748 9801 LT -3750 9800 LT -3751 9798 LT -3751 9796 LT -3752 9794 LT -3752 9792 LT -3751 9790 LT -3750 9788 LT -3749 9787 LT -3748 9785 LT -3746 9784 LT -3744 9784 LT -3742 9783 LT -3741 9783 LT -QS -NP -3752 9815 MT -3752 9813 LT -3751 9811 LT -3750 9809 LT -3749 9807 LT -3747 9806 LT -3745 9805 LT -3744 9805 LT -3742 9804 LT -3741 9804 LT -QS -NP -3741 9830 MT -3743 9830 LT -3745 9830 LT -3747 9829 LT -3748 9828 LT -3750 9826 LT -3751 9824 LT -3751 9822 LT -3752 9820 LT -3752 9820 LT -QS -3342 9794 9820 VL -3358 9783 3353 HL -3368 9820 9794 VL -3353 9830 3358 HL -NP -3353 9783 MT -3351 9783 LT -3349 9784 LT -3347 9785 LT -3345 9786 LT -3344 9788 LT -3343 9789 LT -3342 9791 LT -3342 9793 LT -3342 9794 LT -QS -NP -3368 9794 MT -3368 9792 LT -3368 9790 LT -3367 9788 LT -3365 9786 LT -3364 9785 LT -3362 9784 LT -3360 9784 LT -3358 9783 LT -3358 9783 LT -QS -NP -3358 9830 MT -3360 9830 LT -3362 9830 LT -3364 9829 LT -3365 9828 LT -3366 9826 LT -3367 9824 LT -3368 9822 LT -3368 9820 LT -3368 9820 LT -QS -NP -3342 9820 MT -3342 9822 LT -3343 9824 LT -3344 9826 LT -3345 9827 LT -3347 9829 LT -3348 9830 LT -3350 9830 LT -3352 9830 LT -3353 9830 LT -QS -3384 9817 9783 VL -3410 9783 9817 VL -NP -3384 9817 MT -3384 9819 LT -3385 9821 LT -3385 9823 LT -3387 9825 LT -3388 9826 LT -3389 9828 LT -3391 9829 LT -3393 9830 LT -3395 9830 LT -3397 9830 LT -3399 9830 LT -3401 9830 LT -3403 9829 LT -3404 9828 LT -3406 9827 LT -3407 9826 LT -3409 9824 LT -3409 9822 LT -3410 9820 LT -3410 9818 LT -3410 9817 LT -QS -3458 9783 3426 HL -3442 9830 9783 VL -3484 9783 3473 9794 DL -3484 9830 9783 VL -3510 9783 3500 9794 DL -3510 9830 9783 VL -2864 9794 9820 VL -2880 9783 2875 HL -2891 9820 9794 VL -2875 9830 2880 HL -NP -2875 9783 MT -2873 9783 LT -2871 9784 LT -2869 9785 LT -2868 9786 LT -2866 9788 LT -2865 9789 LT -2865 9791 LT -2864 9793 LT -2864 9794 LT -QS -NP -2891 9794 MT -2890 9792 LT -2890 9790 LT -2889 9788 LT -2888 9786 LT -2886 9785 LT -2884 9784 LT -2882 9784 LT -2880 9783 LT -2880 9783 LT -QS -NP -2880 9830 MT -2882 9830 LT -2884 9830 LT -2886 9829 LT -2887 9828 LT -2889 9826 LT -2890 9824 LT -2890 9822 LT -2891 9820 LT -2891 9820 LT -QS -NP -2864 9820 MT -2865 9822 LT -2865 9824 LT -2866 9826 LT -2867 9827 LT -2869 9829 LT -2871 9830 LT -2872 9830 LT -2874 9830 LT -2875 9830 LT -QS -2906 9817 9783 VL -2933 9783 9817 VL -NP -2906 9817 MT -2906 9819 LT -2907 9821 LT -2908 9823 LT -2909 9825 LT -2910 9826 LT -2911 9828 LT -2913 9829 LT -2915 9830 LT -2917 9830 LT -2919 9830 LT -2921 9830 LT -2923 9830 LT -2925 9829 LT -2927 9828 LT -2928 9827 LT -2930 9826 LT -2931 9824 LT -2932 9822 LT -2932 9820 LT -2933 9818 LT -2933 9817 LT -QS -2980 9783 2948 HL -2964 9830 9783 VL -3006 9783 2996 9794 DL -3006 9830 9783 VL -NP -3037 9786 MT -3036 9784 LT -3034 9783 LT -3032 9783 LT -3030 9784 LT -3028 9785 LT -3028 9786 LT -QS -NP -3028 9786 MT -3026 9788 LT -3025 9789 LT -3025 9791 LT -3024 9793 LT -3023 9795 LT -3023 9796 LT -QS -NP -3023 9817 MT -3023 9819 LT -3024 9821 LT -3025 9823 LT -3026 9825 LT -3027 9827 LT -3028 9828 LT -QS -NP -3028 9828 MT -3029 9829 LT -3031 9830 LT -3033 9830 LT -3035 9830 LT -3036 9829 LT -3037 9828 LT -QS -NP -3037 9828 MT -3038 9826 LT -3039 9824 LT -3040 9823 LT -3041 9821 LT -3041 9819 LT -3042 9817 LT -QS -NP -3042 9817 MT -3042 9815 LT -3042 9813 LT -3043 9811 LT -3043 9809 LT -3043 9807 LT -3043 9807 LT -QS -NP -3043 9807 MT -3043 9805 LT -3043 9803 LT -3042 9801 LT -3042 9799 LT -3042 9797 LT -3042 9796 LT -QS -NP -3042 9796 MT -3041 9794 LT -3041 9792 LT -3040 9791 LT -3039 9789 LT -3038 9787 LT -3037 9786 LT -QS -NP -3022 9807 MT -3022 9809 LT -3022 9811 LT -3022 9813 LT -3022 9815 LT -3023 9817 LT -3023 9817 LT -QS -NP -3023 9796 MT -3023 9798 LT -3022 9800 LT -3022 9802 LT -3022 9804 LT -3022 9806 LT -3022 9807 LT -QS - -QP -%%DocumentFonts: -%%Trailer -cleartomark countdictstack exch sub { end } repeat restore -%%EOF diff --git a/docs/src/drivers/images/pluto-step-pinout.png b/docs/src/drivers/images/pluto-step-pinout.png deleted file mode 100644 index c35f6904264..00000000000 Binary files a/docs/src/drivers/images/pluto-step-pinout.png and /dev/null differ diff --git a/docs/src/drivers/images/pluto_step_waveform.dxf b/docs/src/drivers/images/pluto_step_waveform.dxf deleted file mode 100644 index de31d013df4..00000000000 --- a/docs/src/drivers/images/pluto_step_waveform.dxf +++ /dev/null @@ -1,2812 +0,0 @@ -999 -dxflib 2.0.4.0 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMASZ - 40 -2.5 - 9 -$GRIDUNIT - 10 -0.0 - 20 -0.0 - 9 -$DIMADEC - 70 -2 - 9 -$DIMGAP - 40 -3.0 - 9 -$SPLINESEGS - 70 -8 - 9 -$AUPREC - 70 -2 - 9 -$LUNITS - 70 -2 - 9 -$DIMEXO - 40 -2.0 - 9 -$INSUNITS - 70 -4 - 9 -$DIMLUNIT - 70 -2 - 9 -$DIMTXT - 40 -3.0 - 9 -$GRIDMODE - 70 -1 - 9 -$LUPREC - 70 -4 - 9 -$PSVPSCALE - 40 -0.7751394482850703 - 9 -$DIMSTYLE - 2 -Standard - 9 -$PLIMMAX - 10 -210.0 - 20 -297.0 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$PINSBASE - 10 -3.7151379287324211 - 20 -85.5199195288551408 - 30 -0.0 - 9 -$DIMEXE - 40 -1.25 - 9 -$DIMAUNIT - 70 -0 - 9 -$AUNITS - 70 -0 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -2 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -50 -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -dims - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -13 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -2.5 - 42 -0.625 - 43 -3.75 - 44 -1.25 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -2.5 -141 -2.5 -143 -0.03937007874016 -147 -0.625 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -44 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -60.0 - 20 -60.0 - 30 -0.0 - 11 -70.0 - 21 -80.0 - 31 -0.0 - 0 -LINE - 5 -45 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -70.0 - 20 -80.0 - 30 -0.0 - 11 -80.0 - 21 -80.0 - 31 -0.0 - 0 -LINE - 5 -46 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -80.0 - 20 -80.0 - 30 -0.0 - 11 -90.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -47 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -110.0 - 20 -60.0 - 30 -0.0 - 11 -120.0 - 21 -80.0 - 31 -0.0 - 0 -LINE - 5 -48 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -130.0 - 20 -80.0 - 30 -0.0 - 11 -140.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -49 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -120.0 - 20 -80.0 - 30 -0.0 - 11 -130.0 - 21 -80.0 - 31 -0.0 - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -90.0 - 20 -60.0 - 30 -0.0 - 11 -110.0 - 21 -60.0 - 31 -0.0 - 0 -DIMENSION - 5 -4B -100 -AcDbEntity - 8 -dims - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -130.0 - 20 -130.0 - 30 -0.0 - 11 -120.0 - 21 -134.5 - 31 -0.0 - 70 -0 - 71 -5 - 72 -0 - 41 -1.0 - 42 -0.0 - 1 -steplen - 3 -Standard -100 -AcDbAlignedDimension - 13 -110.0 - 23 -60.0 - 33 -0.0 - 14 -130.0 - 24 -80.0 - 34 -0.0 - 50 -0.0 -100 -AcDbRotatedDimension - 0 -DIMENSION - 5 -4C -100 -AcDbEntity - 8 -dims - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -160.0 - 20 -130.0 - 30 -0.0 - 11 -145.0 - 21 -134.5 - 31 -0.0 - 70 -0 - 71 -5 - 72 -0 - 41 -1.0 - 42 -0.0 - 1 -stepspace - 3 -Standard -100 -AcDbAlignedDimension - 13 -130.0 - 23 -80.0 - 33 -0.0 - 14 -160.0 - 24 -60.0 - 34 -0.0 - 50 -0.0 -100 -AcDbRotatedDimension - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -50.0 - 20 -60.0 - 30 -0.0 - 11 -60.0 - 21 -60.0 - 31 -0.0 - 0 -MTEXT - 5 -4E -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -50.0 - 20 -70.0 - 30 -0.0 - 40 -6.0 - 41 -100.0 - 71 -6 - 72 -2 - 1 -STEP - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4F -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -50.0 - 20 -20.0 - 30 -0.0 - 40 -6.0 - 41 -100.0 - 71 -6 - 72 -2 - 1 -DIRECTION - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -DIMENSION - 5 -50 -100 -AcDbEntity - 8 -dims - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -130.0 - 20 -130.0 - 30 -0.0 - 11 -120.0 - 21 -134.5 - 31 -0.0 - 70 -0 - 71 -5 - 72 -0 - 41 -1.0 - 42 -0.0 - 1 -steplen - 3 -Standard -100 -AcDbAlignedDimension - 13 -110.0 - 23 -60.0 - 33 -0.0 - 14 -130.0 - 24 -80.0 - 34 -0.0 - 50 -0.0 -100 -AcDbRotatedDimension - 0 -DIMENSION - 5 -51 -100 -AcDbEntity - 8 -dims - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -160.0 - 20 -130.0 - 30 -0.0 - 11 -145.0 - 21 -134.5 - 31 -0.0 - 70 -0 - 71 -5 - 72 -0 - 41 -1.0 - 42 -0.0 - 1 -stepspace - 3 -Standard -100 -AcDbAlignedDimension - 13 -130.0 - 23 -80.0 - 33 -0.0 - 14 -160.0 - 24 -60.0 - 34 -0.0 - 50 -0.0 -100 -AcDbRotatedDimension - 0 -DIMENSION - 5 -52 -100 -AcDbEntity - 8 -dims - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -140.0 - 20 -130.0 - 30 -0.0 - 11 -95.0 - 21 -134.5 - 31 -0.0 - 70 -0 - 71 -5 - 72 -0 - 41 -1.0 - 42 -0.0 - 1 -stepspace - 3 -Standard -100 -AcDbAlignedDimension - 13 -80.0 - 23 -80.0 - 33 -0.0 - 14 -110.0 - 24 -60.0 - 34 -0.0 - 50 -0.0 -100 -AcDbRotatedDimension - 0 -LINE - 5 -53 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -210.0 - 20 -60.0 - 30 -0.0 - 11 -220.0 - 21 -80.0 - 31 -0.0 - 0 -LINE - 5 -54 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -220.0 - 20 -80.0 - 30 -0.0 - 11 -230.0 - 21 -80.0 - 31 -0.0 - 0 -LINE - 5 -55 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -230.0 - 20 -80.0 - 30 -0.0 - 11 -240.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -56 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -240.0 - 20 -60.0 - 30 -0.0 - 11 -250.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -57 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -180.0 - 20 -30.0 - 30 -0.0 - 11 -250.0 - 21 -30.0 - 31 -0.0 - 0 -LINE - 5 -58 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -170.0 - 20 -10.0 - 30 -0.0 - 11 -180.0 - 21 -30.0 - 31 -0.0 - 0 -LINE - 5 -59 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -50.0 - 20 -10.0 - 30 -0.0 - 11 -170.0 - 21 -10.0 - 31 -0.0 - 0 -DIMENSION - 5 -5A -100 -AcDbEntity - 8 -dims - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -190.0 - 20 -140.0 - 30 -0.0 - 11 -150.0 - 21 -144.5 - 31 -0.0 - 70 -0 - 71 -5 - 72 -0 - 41 -1.0 - 42 -0.0 - 1 -dirtime - 3 -Standard -100 -AcDbAlignedDimension - 13 -130.0 - 23 -80.0 - 33 -0.0 - 14 -170.0 - 24 -10.0 - 34 -0.0 - 50 -0.0 -100 -AcDbRotatedDimension - 0 -DIMENSION - 5 -5B -100 -AcDbEntity - 8 -dims - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -210.0 - 20 -140.0 - 30 -0.0 - 11 -190.0 - 21 -144.5 - 31 -0.0 - 70 -0 - 71 -5 - 72 -0 - 41 -1.0 - 42 -0.0 - 1 -dirtime - 3 -Standard -100 -AcDbAlignedDimension - 13 -170.0 - 23 -10.0 - 33 -0.0 - 14 -210.0 - 24 -60.0 - 34 -0.0 - 50 -0.0 -100 -AcDbRotatedDimension - 0 -LINE - 5 -5C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -140.0 - 20 -60.0 - 30 -0.0 - 11 -210.0 - 21 -60.0 - 31 -0.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -5D - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -5D -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -5F - 3 -HIDETEXT -350 -5E - 0 -DICTIONARYVAR - 5 -5E -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -5F -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/drivers/images/pluto_step_waveform.eps b/docs/src/drivers/images/pluto_step_waveform.eps deleted file mode 100644 index f4bd27bd91f..00000000000 --- a/docs/src/drivers/images/pluto_step_waveform.eps +++ /dev/null @@ -1,6297 +0,0 @@ -%!PS-Adobe-2.0 EPSF-1.2 -%%Title: -%%Creator: Qt 3.3.6 -%%CreationDate: Tue Jul 24 09:11:22 2007 -%%For:jeplerjepler jepler -%%Pages: 1 -%%DocumentFonts: -%%BoundingBox: 34 263 561 564 -%%EndComments - -%%BeginProlog -%%BeginPreview: 527 301 8 4214 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000022002200000000000022000000220000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000220000220000000000002200000022000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000044001100000000000044000000110000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000110000000000004400000011000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000225d445d00110040504000117644110011004044505d220000114422 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000335d761100110040502200117644110011004044 -% 505d2200002244110000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000a0110044004400440088000044000000440044004411a01100aa4488 -% 11000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000009000440000440044006600004400000044004400 -% 44229000009944991100000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000500000440044004400000000440000004400440044005000005c004e -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000005000440000440044000000004400000044004400 -% 44005000004e004e0000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000044000044004400440000000044000000440044004400440011764450 -% 11000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000004400440000440044000000004400000044004400 -% 44004400117644501100000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000098000044004400440000000044000000440044004400440000890000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008900440000440044000000004400000044004400 -% 44004400006c00000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000005569443f002200220000000022000000220022002200220000555d44 -% 11000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000555d5d1100220022000000002200000022002200 -% 2200220000665d441100000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000001144000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000022220000000076000000223300000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000003322000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000cacbd7e8f9e1444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 444444444444444444444444444444444444444444444444c5ffe8dcd1c4e0d1d7e8f8cb44444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 4444444444444444444444444444444444444444444444444444444444444444e1f9e8d7d1ca2000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000768fb0c8d8c8000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000a3e0c8b89b50a18fb8c8d8b800000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000c8d8c8b88f760000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000022000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000003f000000000000000000 -% 000000003f000000000000000000000000000000000044000000000000000000000000000000003f -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000044000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000760000000000000000000000000000000000440000000000000000000000000000000076 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000004433000076442200004444000030445c1100002044220030445d220000445d33000022 -% 5d2200004444000000000000000000000000000000000000003d763f0020b6763f0020765c000070 -% 769800007600000076760000587697200000000000004400000000000000000000003d763f0020b6 -% 763f0000765c00007076842000003f7620005776983f000076983f00005c883f0000765c00000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000022a02266000044000000885544880044002290005577226600440011a000000000a0110090 -% 1100007755447700000000000000000000000000000000005cc55ca3000076000000d776b7760076 -% 0076c000760000b77676a30076003fcf00000000000044000000000000000000005cd15cb7000076 -% 000000c876b78e0076005ccf00a3b63fa300760020cf00000020cf0020cf200000c876b78e000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000022b022000000440000005c00005c0044000050004499110000440000500000000050110050 -% 0000004e00005c000000000000000000000000000000000076df2000000076000000840000840076 -% 0000880076000097000084007600008700000000000044000000000000000000003fe73f00000076 -% 000000970000840076000088008ed7200000760000980000000087000087000000a7000097000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000001177a8000044000000694444400044000044000022908900440000440011a05076110044 -% 0000006944444000000000000000000000000000000000000020c8c9000076000000b67676570076 -% 00007600760000a7767670007600007600000000000044000000000000000000000020b7e2000076 -% 000000a7767657007600007600003fd6ba0076000076003fcf87b6000076000000a7767670000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000011220088000044000000891100000044000089002211009900440000980033660044000098 -% 0000007a1100000000000000000000000000000000000000202000d7000076000000d60000000076 -% 0020c900b70000c920000000760000760000000000004400000000000000000000202000d7000076 -% 000000d600000000760020d6003f0000b700760000d600767600760000c9000000d6000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000001177555c00002200000022774433005d4477220011667030005d446955000070505d110055 -% 692200117a4433000000000000000000000000000000000020b7a35700003f0000005ca7763f00a7 -% 76ba20005c5c003fb6765c003f00003f000000000000440000000000000000000020a3a38400003f -% 0000005cb6763f00a776ba20003fa3af57009876a7760000c0889800008e983f005cb6765c000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000044000000000000000000440000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000076 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000007600000000000000000076000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000022000000000000000000220000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000000003f -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000003f0000000000000000003f000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000022440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000002244000000009b0000003f7600000000000000000000000000000000 -% 000000000000000000000000000000003f5c00000000ca0000003f76000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00003f5c000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000c5d1d7e8f8e54444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 444444444444444444444444a4ffeee2d7c5faf8f9fefffc76767676767676767676767676767676 -% 76767676767676767676767676767676f3fffffcf9f0fff8f9fefffc767676767676767676767676 -% 76767676767676767676767676767676767676767676767676767676767676767676767676767676 -% 7676f3fffffbf9f09600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000006985b0c8e0d00000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000008fe0c8c09b50c3c5ecf4fcf400000000000000000000000000000000 -% 00000000000000000000000000000000e6fcf4f0d887e6c5ecf4fcf4000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000e6fcf4f0d8767600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000002200000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000810000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000099ffffffffffffffffffffffffffffffffffffffffffffee11000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000000000000000000000000a4 -% ffffffffffffffffffffffffffffffffffffffffffffee0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000d8ffffffffffffffffffffffffffffffffffffffff -% ffffc800000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000011f0f08888888888888888888888888888888888888888a8ff88000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000000000000000000000011f0 -% e08888888888888888888888888888888888888888b8ff6600000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000066ffc088888888888888888888888888888888888888 -% 88c8ff44000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000088ff66000000000000000000000000000000000000000000bbee110000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000000000000000000000088ff -% 44000000000000000000000000000000000000000000dddd00000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000000000000000000000000000ddee1100000000000000000000000000000000000000 -% 0011eebb000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000011eedd0000000000000000000000000000000000000000000044ff880000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000000000000000000000000000011eebb -% 0000000000000000000000000000000000000000000066ff66000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000000000000000000000000066ff880000000000000000000000000000000000000000 -% 000088ff440000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000088ff660000000000000000000000000000000000000000000000bbee1100000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000000000000000000000000000088ff44 -% 0000000000000000000000000000000000000000000000dddd000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000000000000000000000000000ddee110000000000000000000000000000000000000000 -% 000011eebb0000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000011eedd00000000000000000000000000000000000000000000000044ff8800000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000011eebb00 -% 000000000000000000000000000000000000000000000066ff660000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000000000000000000000000066ff88000000000000000000000000000000000000000000 -% 00000088ff4400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000088ff6600000000000000000000000000000000000000000000000000bbee11000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000088ff4400 -% 000000000000000000000000000000000000000000000000dddd0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000ddee11000000000000000000000000000000000000000000 -% 00000011eebb00000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000011eedd000000000000000000000000000000000000000000000000000044ff88000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000000000000000011eebb0000 -% 00000000000000000000000000000000000000000000000066ff6600000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000066ff8800000000000000000000000000000000000000000000 -% 0000000088ff44000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000088ff66000000000000000000000000000000000000000000000000000000bbee110000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000000000000000088ff440000 -% 00000000000000000000000000000000000000000000000000dddd00000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000000000000000000000ddee1100000000000000000000000000000000000000000000 -% 0000000011eebb000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000011eedd0000000000000000000000000000000000000000000000000000000044ff880000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000000000000000000000011eebb000000 -% 0000000000000000000000000000000000000000000000000066ff66000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000000000000000000066ff880000000000000000000000000000000000000000000000 -% 000000000088ff440000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000088ff660000000000000000000000000000000000000000000000000000000000bbee1100 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000000000000000000000088ff44000000 -% 0000000000000000000000000000000000000000000000000000dddd000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000000000000000000000ddee110000000000000000000000000000000000000000000000 -% 000000000011eebb0000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000011eedd00000000000000000000000000000000000000000000000000000000000044ff8800 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000011eebb00000000 -% 000000000000000000000000000000000000000000000000000066ff660000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000000000000000000066ff88000000000000000000000000000000000000000000000000 -% 00000000000088ff4400000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000088ff6600000000000000000000000000000000000000000000000000000000000000bbee11 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000088ff4400000000 -% 000000000000000000000000000000000000000000000000000000dddd0000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000ddee11000000000000000000000000000000000000000000000000 -% 00000000000011eebb00000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000011eedd000000000000000000000000000000000000000000000000000000000000000044ff88 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000000000011eebb0000000000 -% 00000000000000000000000000000000000000000000000000000066ff6600000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000066ff8800000000000000000000000000000000000000000000000000 -% 0000000000000088ff44000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000088ff66000000000000000000000000000000000000000000000000000000000000000000bbee -% 11000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000000000088ff440000000000 -% 00000000000000000000000000000000000000000000000000000000dddd00000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000000000000000ddee1100000000000000000000000000000000000000000000000000 -% 0000000000000011eebb000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000077b0908844000000000077888888a0a0888888550000008e9088888888770000005ca0 -% 888888a4661100000000000000000000000000000000000000000000000000000000000000000000 -% 0011eedd0000000000000000000000000000000000000000000000000000000000000000000044ff -% 88000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000000000000000011eebb000000000000 -% 0000000000000000000000000000000000000000000000000000000066ff66000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000000000000066ff880000000000000000000000000000000000000000000000000000 -% 000000000000000088ff440000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000011ccffffffffffee66000022eeffffffffffffffffcc000000ffffffffffffee220000e0ff -% fffffffcffee33000000000000000000000000000000000000000000000000000000000000000000 -% 0088ff660000000000000000000000000000000000000000000000000000000000000000000000bb -% ee110000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000000000000000088ff44000000000000 -% 0000000000000000000000000000000000000000000000000000000000dddd000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000000000000000ddee110000000000000000000000000000000000000000000000000000 -% 000000000000000011eebb0000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000088ff6600002266bbaa00000000000000bbbb00000000000000ff880000000000000000bbbb -% 0000000044eeaa000000000000000000000000000000000000000000000000000000000000000000 -% 11eedd00000000000000000000000000000000000000000000000000000000000000000000000044 -% ff880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000011eebb00000000000000 -% 000000000000000000000000000000000000000000000000000000000066ff660000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000000000000066ff88000000000000000000000000000000000000000000000000000000 -% 00000000000000000088ff4400000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000bbcc0000000000000000000000000000bbbb00000000000000ff880000000000000000bbbb -% 0000000000a0ff000000000000000000000000000000000000000000000000000000000000000000 -% 88ff6600000000000000000000000000000000000000000000000000000000000000000000000000 -% bbee1100000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000088ff4400000000000000 -% 000000000000000000000000000000000000000000000000000000000000dddd0000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000ddee11000000000000000000000000000000000000000000000000000000 -% 00000000000000000011eebb00000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000bbbb0000000000000000000000000000bbbb00000000000000ff880000000000000000bbbb -% 0000000000a0ff000000000000000000000000000000000000000000000000000000000000000011 -% eedd0000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44ff8800000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000011eebb0000000000000000 -% 00000000000000000000000000000000000000000000000000000000000066ff6600000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000066ff8800000000000000000000000000000000000000000000000000000000 -% 0000000000000000000088ff44000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000aaff3300000000000000000000000000bbbb00000000000000ff880000000000000000bbbb -% 0000000000a4fc000000000000000000000000000000000000000000000000000000000000000088 -% ff660000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00bbee11000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000088ff440000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000dddd00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000000000ddee1100000000000000000000000000000000000000000000000000000000 -% 0000000000000000000011eebb000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000033f1fea7220000000000000000000000bbbb00000000000000ffe0bbbbbb8800000000bbbb -% 0000000000bbf10000000000000000000000000000000000000000000000000000000000000011ee -% dd000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0044ff88000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000000000011eebb000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000066ff66000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000000066ff880000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000088ff440000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000011c2ffff9922000000000000000000bbbb00000000000000ffe0bbbbbb8800000000c0cd -% 4444444eaaff880000000000000000000000000000000000000000000000000000000000000088ff -% 66000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000bbee110000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000000000088ff44000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000dddd000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000000000ddee110000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000011eebb0000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000022aaffff900000000000000000bbbb00000000000000ff880000000000000000e4ff -% ffffffffff880000000000000000000000000000000000000000000000000000000000000011eedd -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000044ff880000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000011eebb00000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000066ff660000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000000066ff88000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000088ff4400000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000044c9ff7700000000000000bbbb00000000000000ff880000000000000000c0cd -% 4444444e11000000000000000000000000000000000000000000000000000000000000000088ff66 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000bbee1100000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000088ff4400000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000dddd0000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000ddee11000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000011eebb00000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000ddcc00000000000000bbbb00000000000000ff880000000000000000bbbb -% 00000000000000000000000000000000000000000000000000000000000000000000000011eedd00 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000044ff8800000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000011eebb0000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000066ff6600000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000066ff8800000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088ff44000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000aaee00000000000000bbbb00000000000000ff880000000000000000bbbb -% 00000000000000000000000000000000000000000000000000000000000000000000000088ff6600 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000bbee11000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000088ff440000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000dddd00000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000ddee1100000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000011eebb000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000033330000000011ddcc00000000000000bbbb00000000000000ff880000000000000000bbbb -% 000000000000000000000000000000000000000000000000000000000000000000000011eedd0000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000044ff88000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000011eebb000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000066ff66000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000066ff880000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000088ff440000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000bbffdd9990b0ddff5500000000000000bbbb00000000000000ffc88888888877000000bbbb -% 000000000000000000000000000000000000000000000000000000000000000000000088ff660000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000bbee110000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000088ff44000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000dddd000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000ddee110000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000011eebb0000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000001166aaffffffee660000000000000000888800000000000000f5ffffffffffee2200008888 -% 0000000000000000000000000000000000000000000000000000000000000000000011eedd000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000044ff880000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000011eebb00000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000066ff660000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000066ff88000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088ff4400000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000088ff66000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000bbee1100000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000088ff4400000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000dddd0000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000ddee11000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000011eebb00000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000011eedd00000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000044ff8800000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000011eebb0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000066ff6600 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000066ff8800000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000088ff44000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000088ff6600000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000bbee11000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000088ff440000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000dddd00 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000ddee1100000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000011eebb000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000011eedd0000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000044ff88000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000011eebb000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000066ff66 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000066ff880000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000088ff440000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000088ff660000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000bbee110000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000088ff44000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000000dddd -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000ddee110000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000011eebb0000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000011eedd000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000044ff880000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000011eebb00000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000000066ff -% 66000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0066ff88000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000088ff4400000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000088ff66000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000bbee1100000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000088ff4400000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000000000dd -% dd000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00ddee11000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000011eebb00000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000011eedd00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000044ff8800000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0011eebb0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000066 -% ff660000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 66ff8800000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000088ff44000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000088ff6600000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000bbee11000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0088ff440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% dddd0000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% ddee1100000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000011eebb000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000011eedd0000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000044ff88000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b11eebb000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 66ff6600000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440066 -% ff880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000088ff440000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000088ff660000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000bbee110000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000005888ff44000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00dddd00000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000003f00000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000002200dd -% ee110000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000011eebb0000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000011eedd000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000044ff880000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000011eebb00000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0066ff66000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000000066ff -% 88000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000088ff4400000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000088ff66000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000bbee1100000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000088ff4400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000dddd000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000000ddee -% 11000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000011eebb00000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000011eedd00000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000044ff8800000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000011eebb0000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000066ff660000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000066ff88 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000088ff44000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000022eeffffffffffffffffffffffffffffffffffffffffffff6600000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000d2ffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffff440000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000e9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000011f8ffffffffffffffffffffffffffffffff -% ffffffffffff88 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000778888888888888888888888888888888888888888908e0000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000030a888888888888888888888888888888888888888888888888888 -% 8888888888888888888888888888888888988e000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000030a08888888888888888888888888888888888888888888888888888888888888888888888 -% 888888888888888888888888888888888888888888888888888888888888bf888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888a04e00 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000005ca0888888888888888888888888888888 -% 88888888888833 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 0000000000000000000000d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffff88 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 0000000000000000000044ffd0888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888833 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000bbff22000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000044ff9900000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 000000000000000000bbff2200000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 000000000000000044ff990000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 0000000000000000bbff220000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 0000000000000044ff99000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000bbff22000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000044ff9900000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 000000000000bbff2200000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 000000000044ff990000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 0000000000bbff220000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 0000000044ff99000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000bbff22000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 20ddc0bbbbe0ae44000000006666000020ddc0bbbbd7c266000000005ce0bbbbbbbbbb6600000000 -% 44bbe0bbbb8800000088bbbbbbd7d7bbbbbbaa11000088330000000044bbe0e0a044000000008f99 -% 00000000003388000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000044ff9900000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 50ffcdbbbbe0f2ff77000000bbbb000050ffcdbbbbd7f5ff99000000a0ffbbbbbbbbbb6600000066 -% ffffe0bbbb8800000088bbbbbbededbbbbbbaa110000ff8800000088fff2e0e0ffff66000000e0ff -% 330000000088ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 000000bbff2200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff4400000011aaff220000bbbb000044ff440000001199ff55000088ff000000000000000022ee -% cc220000000000000000000000bbbb00000000000000ff88000033ff9911000011ccff220000c4ff -% bb0000000088ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 000044ff990000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000022ff920000bbbb000044ff440000000011ffa0000088ff000000000000000050ff -% 60000000000000000000000000bbbb00000000000000ff88000092ff220000000050ff500000bbe0 -% ff4400000088ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 0000bbff220000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000000ffa00000bbbb000044ff440000000000ffa0000088ff000000000000000050ff -% 50000000000000000000000000bbbb00000000000000ff880000a0ff000000000050ff500000bbc0 -% eedd00000088ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 0044ff99000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000000ff880000bbbb000044ff440000000000fca4000088ff000000000000000044ff -% 44000000000000000000000000bbbb00000000000000ff88000088ff000000000044ff440000bbbb -% 77ff66000088ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00bbff22000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000000ff880000bbbb000044ff440000000044ff660000a0ffbbbbbbaa1100000044ff -% 44000000000000000000000000bbbb00000000000000ff88000088ff000000000044ff440000bbbb -% 00ddee110088ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 44ff9900000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000000ff880000bbbb000044ff7644446897eeee110000a0ffbbbbbbaa1100000044ff -% 44000000000000000000000000bbbb00000000000000ff88000088ff000000000044ff440000bbbb -% 0055ff880088ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% bbff2200000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000000ff880000bbbb00005dffffffffffffbb3300000088ff000000000000000044ff -% 44000000000000000000000000bbbb00000000000000ff88000088ff000000000044ff440000bbbb -% 0000bbee2288ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000044 -% ff990000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000000ff880000bbbb000044ff764444a2ff660000000088ff000000000000000044ff -% 44000000000000000000000000bbbb00000000000000ff88000088ff000000000044ff440000bbbb -% 000044ff9988ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000760000000000000000bb -% ff220000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000000ff900000bbbb000044ff44000011eedd0000000088ff000000000000000044ff -% 44000000000000000000000000bbbb00000000000000ff88000090ff000000000044ff440000bbbb -% 00000099ffa0ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000760000000000000044ff -% 99000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000011ffb00000bbbb000044ff4400000088ff6600000088ff00000000000000005dff -% 5d000000000000000000000000bbbb00000000000000ff880000b0ff00000000005dff5d0000bbbb -% 00000022ffe0ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000007600000000000000bbff -% 22000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000088ff330000bbbb000044ff4400000011eedd00000088ff000000000000000033ff -% aa000000000000000000000000bbbb00000000000000ff88000055ff770000000088ff330000bbbb -% 0000000088ffff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000007600000000000044ff99 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ffa88888b0b0ffbb000000bbbb000044ff440000000088ff55000090ff88888888883300000088 -% ffc0b088885500000000000000bbbb00000000000000ff88000000bbffb0b0b0c0ff99000000bbbb -% 0000000011f8ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000bbff22 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 3ffdfffffffff499110000008888000022dd220000000011cc6600008effffffffffff8800000000 -% 88e9ffffffcc00000000000000888800000000000000cc550000001188f4fffff499000000008888 -% 000000000099f5000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000044ff9900 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000760000000000bbff2200 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000760000000044ff990000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000007600000000bbff220000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000007600000044ff99000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000bbff22000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000044ff9900000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000760000bbff2200000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000760044ff990000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000007600bbff220000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000007644ff99000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000003fbbff22000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000044ff9900000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000bbff2200000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000044ff990000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000022eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff220000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000077888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 8888888888888888888888888888888888888888888888888888888888904e000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -%%EndImage -%%EndPreview -save countdictstack mark newpath /showpage {} def /setpagedevice {pop} def -%%EndProlog -%%Page: 1 1 -%%BeginDocument: /net/filesrv1/sd3a/users/jepler/xfer.ps -%%DocumentFonts: - -% Prolog copyright 1994-2005 Trolltech. You may copy this prolog in any way -% that is directly related to this document. For other use of this prolog, -% see your licensing agreement for Qt. -/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D -/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D -/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D -/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read -pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end -d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi -false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88 -0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{ -LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{ -gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get -SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7 -bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL -0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB -exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL -ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1 -eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if -64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3 -i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll -putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3 -1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D -/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3 -colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1 -QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray -QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2 -add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq -{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC -imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel -where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d -/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7 -DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d -/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height -h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4 -DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{ -pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC -WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{ -1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie} -if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4 -2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg -RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0 -exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if -BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h -add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0 -6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT -}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h -D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div -add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1 -ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT -0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy -MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R -{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h -ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry -D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y -w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul -200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90 -x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0 --90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h -ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale -NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS} -D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT -x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP -ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255 -div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0 -B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25 -/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true -exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3 --1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch -/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup -maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding -fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length -dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end -definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d} -D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty -MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch -stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT -1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0 -exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore -showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop -pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D -/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt -ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP} -D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D - -/LArr[ [] [] [ 83.333 25.000 ] [ 25.000 83.333 ] [ 25.000 25.000 ] [ 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 25.000 25.000 ] ] d -/pageinit { -% 297*420mm (portrait) -0 1191 translate 0.12 -0.12 scale/defM matrix CM d } d -QI -[1 0 0 1 0 0]ST -1 12 B 1 1 PE -NB -W BC -1369 6440 1186 6806 DL -1552 6440 1369 HL -1735 6806 1552 6440 DL -2285 6440 2102 6806 DL -2651 6806 2468 6440 DL -2468 6440 2285 HL -2102 6806 1735 HL -1 3 B 1 1 PE -2468 5524 2102 HL -1 B BR -NP -2102 5524 MT -2147 5516 LT -2147 5532 LT -CP BF QS -NP -2468 5524 MT -2422 5532 LT -2422 5516 LT -CP BF QS -NP -2181 5436 MT -2179 5435 LT -2177 5434 LT -2175 5434 LT -2173 5433 LT -2171 5433 LT -2169 5433 LT -2167 5433 LT -2165 5434 LT -2164 5434 LT -2162 5434 LT -QS -NP -2162 5434 MT -2160 5435 LT -2159 5437 LT -2158 5438 LT -2157 5440 LT -2157 5442 LT -2158 5444 LT -2159 5446 LT -2160 5447 LT -2162 5448 LT -QS -2176 5454 2162 5448 DL -NP -2176 5468 MT -2177 5467 LT -2179 5466 LT -2180 5464 LT -2181 5462 LT -2181 5460 LT -2180 5458 LT -2179 5456 LT -2178 5455 LT -2176 5454 LT -QS -NP -2157 5466 MT -2158 5467 LT -2160 5468 LT -2162 5468 LT -2164 5469 LT -2166 5469 LT -2168 5469 LT -2170 5469 LT -2172 5469 LT -2174 5468 LT -2176 5468 LT -QS -2218 5432 2199 HL -2205 5469 5414 VL -2260 5451 2236 HL -2260 5445 5451 VL -NP -2260 5445 MT -2260 5443 LT -2260 5441 LT -2259 5439 LT -2258 5437 LT -2257 5436 LT -2255 5434 LT -2253 5433 LT -2251 5433 LT -2249 5432 LT -2247 5432 LT -2245 5433 LT -2243 5433 LT -2242 5434 LT -2240 5436 LT -2239 5437 LT -2238 5439 LT -2237 5440 LT -2236 5442 LT -2236 5444 LT -2236 5445 LT -QS -2236 5460 5445 VL -NP -2236 5460 MT -2236 5462 LT -2237 5464 LT -2238 5466 LT -2239 5467 LT -2241 5468 LT -2243 5469 LT -2245 5469 LT -2245 5469 LT -QS -2260 5469 2245 HL -2294 5469 2279 HL -NP -2294 5469 MT -2296 5469 LT -2298 5468 LT -2300 5467 LT -2301 5466 LT -2302 5464 LT -2303 5462 LT -2303 5460 LT -2303 5460 LT -QS -2303 5442 5460 VL -NP -2303 5442 MT -2303 5440 LT -2302 5438 LT -2301 5436 LT -2300 5435 LT -2298 5433 LT -2296 5433 LT -2294 5432 LT -2294 5432 LT -QS -2279 5432 2294 HL -2279 5487 5432 VL -2321 5463 5414 VL -NP -2321 5463 MT -2322 5465 LT -2323 5467 LT -2324 5468 LT -2326 5469 LT -2328 5469 LT -QS -2370 5451 2346 HL -2370 5445 5451 VL -NP -2370 5445 MT -2370 5443 LT -2370 5441 LT -2369 5439 LT -2368 5437 LT -2366 5436 LT -2365 5434 LT -2363 5433 LT -2361 5433 LT -2359 5432 LT -2357 5432 LT -2355 5433 LT -2353 5433 LT -2352 5434 LT -2350 5436 LT -2349 5437 LT -2347 5439 LT -2347 5440 LT -2346 5442 LT -2346 5444 LT -2346 5445 LT -QS -2346 5460 5445 VL -NP -2346 5460 MT -2346 5462 LT -2347 5464 LT -2348 5466 LT -2349 5467 LT -2351 5468 LT -2353 5469 LT -2355 5469 LT -2355 5469 LT -QS -2370 5469 2355 HL -2389 5432 5469 VL -2404 5432 2389 HL -NP -2413 5442 MT -2413 5440 LT -2412 5438 LT -2411 5436 LT -2410 5435 LT -2408 5433 LT -2406 5433 LT -2404 5432 LT -2404 5432 LT -QS -2413 5469 5442 VL -2102 5501 6769 VL -2468 5501 6403 VL -3017 5524 2468 HL -NP -2468 5524 MT -2514 5516 LT -2514 5532 LT -CP BF QS -NP -3017 5524 MT -2972 5532 LT -2972 5516 LT -CP BF QS -NP -2590 5436 MT -2588 5435 LT -2586 5434 LT -2584 5434 LT -2583 5433 LT -2581 5433 LT -2579 5433 LT -2577 5433 LT -2575 5434 LT -2573 5434 LT -2571 5434 LT -QS -NP -2571 5434 MT -2569 5435 LT -2568 5437 LT -2567 5438 LT -2566 5440 LT -2566 5442 LT -2567 5444 LT -2568 5446 LT -2569 5447 LT -2571 5448 LT -QS -2585 5454 2571 5448 DL -NP -2585 5468 MT -2586 5467 LT -2588 5466 LT -2589 5464 LT -2590 5462 LT -2590 5460 LT -2589 5458 LT -2588 5456 LT -2587 5455 LT -2585 5454 LT -QS -NP -2566 5466 MT -2568 5467 LT -2569 5468 LT -2571 5468 LT -2573 5469 LT -2575 5469 LT -2577 5469 LT -2579 5469 LT -2581 5469 LT -2583 5468 LT -2585 5468 LT -QS -2627 5432 2608 HL -2615 5469 5414 VL -2669 5451 2645 HL -2669 5445 5451 VL -NP -2669 5445 MT -2669 5443 LT -2669 5441 LT -2668 5439 LT -2667 5437 LT -2666 5436 LT -2664 5434 LT -2662 5433 LT -2660 5433 LT -2658 5432 LT -2656 5432 LT -2654 5433 LT -2652 5433 LT -2651 5434 LT -2649 5436 LT -2648 5437 LT -2647 5439 LT -2646 5440 LT -2645 5442 LT -2645 5444 LT -2645 5445 LT -QS -2645 5460 5445 VL -NP -2645 5460 MT -2645 5462 LT -2646 5464 LT -2647 5466 LT -2648 5467 LT -2650 5468 LT -2652 5469 LT -2654 5469 LT -2654 5469 LT -QS -2669 5469 2654 HL -2703 5469 2688 HL -NP -2703 5469 MT -2705 5469 LT -2707 5468 LT -2709 5467 LT -2710 5466 LT -2711 5464 LT -2712 5462 LT -2712 5460 LT -2712 5460 LT -QS -2712 5442 5460 VL -NP -2712 5442 MT -2712 5440 LT -2711 5438 LT -2710 5436 LT -2709 5435 LT -2707 5433 LT -2705 5433 LT -2703 5432 LT -2703 5432 LT -QS -2688 5432 2703 HL -2688 5487 5432 VL -NP -2755 5436 MT -2753 5435 LT -2751 5434 LT -2749 5434 LT -2747 5433 LT -2745 5433 LT -2743 5433 LT -2741 5433 LT -2739 5434 LT -2737 5434 LT -2736 5434 LT -QS -NP -2736 5434 MT -2734 5435 LT -2733 5437 LT -2732 5438 LT -2731 5440 LT -2731 5442 LT -2732 5444 LT -2733 5446 LT -2734 5447 LT -2736 5448 LT -QS -2750 5454 2736 5448 DL -NP -2750 5468 MT -2751 5467 LT -2753 5466 LT -2754 5464 LT -2754 5462 LT -2754 5460 LT -2754 5458 LT -2753 5456 LT -2751 5455 LT -2750 5454 LT -QS -NP -2731 5466 MT -2732 5467 LT -2734 5468 LT -2736 5468 LT -2738 5469 LT -2740 5469 LT -2742 5469 LT -2744 5469 LT -2746 5469 LT -2748 5468 LT -2750 5468 LT -QS -2789 5469 2773 HL -NP -2789 5469 MT -2791 5469 LT -2792 5468 LT -2794 5467 LT -2796 5466 LT -2797 5464 LT -2797 5462 LT -2798 5460 LT -2798 5460 LT -QS -2798 5442 5460 VL -NP -2798 5442 MT -2797 5440 LT -2797 5438 LT -2796 5436 LT -2794 5435 LT -2793 5433 LT -2791 5433 LT -2789 5432 LT -2789 5432 LT -QS -2773 5432 2789 HL -2773 5487 5432 VL -2831 5432 2819 HL -NP -2840 5442 MT -2840 5440 LT -2840 5438 LT -2838 5436 LT -2837 5435 LT -2835 5433 LT -2834 5433 LT -2832 5432 LT -2831 5432 LT -QS -2840 5469 5442 VL -2825 5469 2840 HL -NP -2825 5451 MT -2823 5451 LT -2821 5452 LT -2820 5453 LT -2818 5454 LT -2817 5456 LT -2816 5458 LT -2816 5460 LT -2816 5462 LT -2817 5464 LT -2818 5465 LT -2819 5467 LT -2821 5468 LT -2823 5469 LT -2825 5469 LT -2825 5469 LT -QS -2840 5451 2825 HL -2868 5432 2877 HL -NP -2868 5432 MT -2866 5433 LT -2864 5433 LT -2862 5434 LT -2861 5436 LT -2860 5437 LT -2859 5439 LT -2859 5441 LT -2859 5442 LT -QS -2859 5460 5442 VL -NP -2859 5460 MT -2859 5462 LT -2860 5464 LT -2861 5466 LT -2862 5467 LT -2864 5468 LT -2866 5469 LT -2868 5469 LT -2868 5469 LT -QS -2877 5469 2868 HL -2920 5451 2895 HL -2920 5445 5451 VL -NP -2920 5445 MT -2920 5443 LT -2919 5441 LT -2918 5439 LT -2917 5437 LT -2916 5436 LT -2914 5434 LT -2913 5433 LT -2911 5433 LT -2909 5432 LT -2907 5432 LT -2905 5433 LT -2903 5433 LT -2901 5434 LT -2899 5436 LT -2898 5437 LT -2897 5439 LT -2896 5440 LT -2896 5442 LT -2895 5444 LT -2895 5445 LT -QS -2895 5460 5445 VL -NP -2895 5460 MT -2896 5462 LT -2896 5464 LT -2897 5466 LT -2899 5467 LT -2900 5468 LT -2902 5469 LT -2904 5469 LT -2905 5469 LT -QS -2920 5469 2905 HL -2468 5501 6403 VL -3017 5501 6769 VL -1 12 B 1 1 PE -1186 6806 1003 HL -696 6632 662 6614 DL -NP -710 6577 MT -708 6576 LT -706 6575 LT -704 6574 LT -702 6573 LT -701 6573 LT -699 6572 LT -697 6572 LT -695 6571 LT -693 6570 LT -691 6570 LT -689 6570 LT -687 6569 LT -685 6569 LT -683 6569 LT -681 6568 LT -679 6568 LT -677 6568 LT -675 6568 LT -673 6568 LT -673 6568 LT -QS -NP -673 6568 MT -671 6568 LT -669 6568 LT -667 6569 LT -665 6569 LT -663 6570 LT -662 6571 LT -660 6572 LT -658 6573 LT -657 6574 LT -655 6576 LT -654 6577 LT -653 6579 LT -652 6581 LT -651 6582 LT -650 6584 LT -649 6586 LT -649 6588 LT -649 6590 LT -649 6592 LT -649 6594 LT -649 6596 LT -649 6598 LT -650 6600 LT -651 6602 LT -651 6604 LT -652 6605 LT -654 6607 LT -655 6609 LT -656 6610 LT -658 6611 LT -659 6613 LT -661 6614 LT -662 6614 LT -QS -NP -685 6678 MT -687 6678 LT -689 6678 LT -691 6677 LT -693 6677 LT -695 6676 LT -697 6675 LT -699 6674 LT -700 6673 LT -702 6672 LT -703 6670 LT -704 6669 LT -706 6667 LT -707 6665 LT -708 6663 LT -708 6662 LT -709 6660 LT -709 6658 LT -710 6656 LT -710 6654 LT -710 6652 LT -709 6650 LT -709 6648 LT -709 6646 LT -708 6644 LT -707 6642 LT -706 6640 LT -705 6639 LT -704 6637 LT -702 6636 LT -701 6634 LT -699 6633 LT -697 6632 LT -696 6632 LT -QS -NP -649 6669 MT -650 6670 LT -652 6671 LT -654 6672 LT -656 6672 LT -658 6673 LT -660 6674 LT -662 6674 LT -664 6675 LT -665 6675 LT -667 6676 LT -669 6676 LT -671 6677 LT -673 6677 LT -675 6677 LT -677 6677 LT -679 6678 LT -681 6678 LT -683 6678 LT -685 6678 LT -685 6678 LT -QS -820 6568 746 HL -783 6678 6568 VL -856 6568 905 HL -856 6678 6568 VL -905 6678 856 HL -893 6617 856 HL -942 6568 6678 VL -978 6568 942 HL -1003 6605 6592 VL -942 6629 978 HL -NP -1003 6592 MT -1003 6590 LT -1002 6588 LT -1002 6586 LT -1001 6585 LT -1001 6583 LT -1000 6581 LT -999 6579 LT -998 6577 LT -996 6576 LT -995 6575 LT -993 6573 LT -992 6572 LT -990 6571 LT -988 6570 LT -987 6569 LT -985 6569 LT -983 6568 LT -981 6568 LT -979 6568 LT -978 6568 LT -QS -NP -978 6629 MT -980 6629 LT -982 6629 LT -984 6628 LT -986 6628 LT -988 6627 LT -990 6626 LT -992 6625 LT -993 6624 LT -995 6623 LT -996 6621 LT -998 6620 LT -999 6618 LT -1000 6616 LT -1001 6615 LT -1001 6613 LT -1002 6611 LT -1002 6609 LT -1003 6607 LT -1003 6605 LT -1003 6605 LT -QS -331 7594 295 HL -356 7508 7569 VL -295 7484 331 HL -295 7594 7484 VL -NP -331 7594 MT -333 7594 LT -335 7593 LT -337 7593 LT -339 7592 LT -341 7592 LT -343 7591 LT -344 7590 LT -346 7589 LT -348 7587 LT -349 7586 LT -350 7584 LT -352 7583 LT -353 7581 LT -353 7579 LT -354 7577 LT -355 7575 LT -355 7574 LT -356 7572 LT -356 7570 LT -356 7569 LT -QS -NP -356 7508 MT -356 7506 LT -355 7504 LT -355 7502 LT -354 7500 LT -354 7498 LT -353 7497 LT -352 7495 LT -351 7493 LT -349 7492 LT -348 7490 LT -346 7489 LT -345 7488 LT -343 7487 LT -341 7486 LT -339 7485 LT -337 7485 LT -336 7484 LT -334 7484 LT -332 7484 LT -331 7484 LT -QS -392 7594 7484 VL -429 7484 7594 VL -466 7484 429 HL -490 7520 7508 VL -429 7545 466 HL -490 7594 466 7545 DL -NP -490 7508 MT -490 7506 LT -490 7504 LT -489 7502 LT -489 7500 LT -488 7498 LT -487 7497 LT -486 7495 LT -485 7493 LT -484 7492 LT -482 7490 LT -481 7489 LT -479 7488 LT -477 7487 LT -476 7486 LT -474 7485 LT -472 7485 LT -470 7484 LT -468 7484 LT -466 7484 LT -466 7484 LT -QS -NP -466 7545 MT -468 7545 LT -470 7544 LT -471 7544 LT -473 7543 LT -475 7543 LT -477 7542 LT -479 7541 LT -480 7540 LT -482 7538 LT -483 7537 LT -485 7536 LT -486 7534 LT -487 7532 LT -488 7530 LT -489 7529 LT -489 7527 LT -490 7525 LT -490 7523 LT -490 7521 LT -490 7520 LT -QS -527 7484 575 HL -527 7594 7484 VL -575 7594 527 HL -563 7533 527 HL -636 7484 661 HL -612 7569 7508 VL -661 7594 636 HL -NP -636 7484 MT -634 7484 LT -632 7484 LT -631 7484 LT -629 7485 LT -627 7486 LT -625 7487 LT -623 7488 LT -622 7489 LT -620 7490 LT -619 7492 LT -617 7493 LT -616 7495 LT -615 7496 LT -614 7498 LT -613 7500 LT -613 7502 LT -612 7504 LT -612 7506 LT -612 7508 LT -612 7508 LT -QS -NP -612 7569 MT -612 7571 LT -612 7573 LT -613 7575 LT -613 7577 LT -614 7579 LT -615 7581 LT -616 7582 LT -617 7584 LT -618 7586 LT -620 7587 LT -621 7588 LT -623 7590 LT -625 7591 LT -626 7591 LT -628 7592 LT -630 7593 LT -632 7593 LT -634 7594 LT -636 7594 LT -636 7594 LT -QS -771 7484 698 HL -734 7594 7484 VL -807 7594 7484 VL -844 7508 7569 VL -881 7484 868 HL -905 7569 7508 VL -868 7594 881 HL -NP -868 7484 MT -866 7484 LT -864 7484 LT -863 7484 LT -861 7485 LT -859 7486 LT -857 7487 LT -855 7488 LT -854 7489 LT -852 7490 LT -851 7492 LT -849 7493 LT -848 7495 LT -847 7496 LT -846 7498 LT -845 7500 LT -845 7502 LT -844 7504 LT -844 7506 LT -844 7508 LT -844 7508 LT -QS -NP -905 7508 MT -905 7506 LT -905 7504 LT -904 7502 LT -904 7500 LT -903 7498 LT -902 7497 LT -901 7495 LT -900 7493 LT -899 7492 LT -897 7490 LT -896 7489 LT -894 7488 LT -892 7487 LT -891 7486 LT -889 7485 LT -887 7485 LT -885 7484 LT -883 7484 LT -881 7484 LT -881 7484 LT -QS -NP -881 7594 MT -883 7594 LT -885 7593 LT -887 7593 LT -889 7592 LT -890 7592 LT -892 7591 LT -894 7590 LT -896 7589 LT -897 7587 LT -899 7586 LT -900 7584 LT -901 7583 LT -902 7581 LT -903 7579 LT -904 7577 LT -904 7575 LT -905 7574 LT -905 7572 LT -905 7570 LT -905 7569 LT -QS -NP -844 7569 MT -844 7571 LT -844 7573 LT -845 7575 LT -845 7577 LT -846 7579 LT -847 7581 LT -848 7582 LT -849 7584 LT -850 7586 LT -852 7587 LT -853 7588 LT -855 7590 LT -857 7591 LT -858 7591 LT -860 7592 LT -862 7593 LT -864 7593 LT -866 7594 LT -868 7594 LT -868 7594 LT -QS -942 7484 7594 VL -1003 7594 942 7484 DL -1003 7484 7594 VL -1 3 B 1 1 PE -2468 5524 2102 HL -NP -2102 5524 MT -2147 5516 LT -2147 5532 LT -CP BF QS -NP -2468 5524 MT -2422 5532 LT -2422 5516 LT -CP BF QS -NP -2181 5436 MT -2179 5435 LT -2177 5434 LT -2175 5434 LT -2173 5433 LT -2171 5433 LT -2169 5433 LT -2167 5433 LT -2165 5434 LT -2164 5434 LT -2162 5434 LT -QS -NP -2162 5434 MT -2160 5435 LT -2159 5437 LT -2158 5438 LT -2157 5440 LT -2157 5442 LT -2158 5444 LT -2159 5446 LT -2160 5447 LT -2162 5448 LT -QS -2176 5454 2162 5448 DL -NP -2176 5468 MT -2177 5467 LT -2179 5466 LT -2180 5464 LT -2181 5462 LT -2181 5460 LT -2180 5458 LT -2179 5456 LT -2178 5455 LT -2176 5454 LT -QS -NP -2157 5466 MT -2158 5467 LT -2160 5468 LT -2162 5468 LT -2164 5469 LT -2166 5469 LT -2168 5469 LT -2170 5469 LT -2172 5469 LT -2174 5468 LT -2176 5468 LT -QS -2218 5432 2199 HL -2205 5469 5414 VL -2260 5451 2236 HL -2260 5445 5451 VL -NP -2260 5445 MT -2260 5443 LT -2260 5441 LT -2259 5439 LT -2258 5437 LT -2257 5436 LT -2255 5434 LT -2253 5433 LT -2251 5433 LT -2249 5432 LT -2247 5432 LT -2245 5433 LT -2243 5433 LT -2242 5434 LT -2240 5436 LT -2239 5437 LT -2238 5439 LT -2237 5440 LT -2236 5442 LT -2236 5444 LT -2236 5445 LT -QS -2236 5460 5445 VL -NP -2236 5460 MT -2236 5462 LT -2237 5464 LT -2238 5466 LT -2239 5467 LT -2241 5468 LT -2243 5469 LT -2245 5469 LT -2245 5469 LT -QS -2260 5469 2245 HL -2294 5469 2279 HL -NP -2294 5469 MT -2296 5469 LT -2298 5468 LT -2300 5467 LT -2301 5466 LT -2302 5464 LT -2303 5462 LT -2303 5460 LT -2303 5460 LT -QS -2303 5442 5460 VL -NP -2303 5442 MT -2303 5440 LT -2302 5438 LT -2301 5436 LT -2300 5435 LT -2298 5433 LT -2296 5433 LT -2294 5432 LT -2294 5432 LT -QS -2279 5432 2294 HL -2279 5487 5432 VL -2321 5463 5414 VL -NP -2321 5463 MT -2322 5465 LT -2323 5467 LT -2324 5468 LT -2326 5469 LT -2328 5469 LT -QS -2370 5451 2346 HL -2370 5445 5451 VL -NP -2370 5445 MT -2370 5443 LT -2370 5441 LT -2369 5439 LT -2368 5437 LT -2366 5436 LT -2365 5434 LT -2363 5433 LT -2361 5433 LT -2359 5432 LT -2357 5432 LT -2355 5433 LT -2353 5433 LT -2352 5434 LT -2350 5436 LT -2349 5437 LT -2347 5439 LT -2347 5440 LT -2346 5442 LT -2346 5444 LT -2346 5445 LT -QS -2346 5460 5445 VL -NP -2346 5460 MT -2346 5462 LT -2347 5464 LT -2348 5466 LT -2349 5467 LT -2351 5468 LT -2353 5469 LT -2355 5469 LT -2355 5469 LT -QS -2370 5469 2355 HL -2389 5432 5469 VL -2404 5432 2389 HL -NP -2413 5442 MT -2413 5440 LT -2412 5438 LT -2411 5436 LT -2410 5435 LT -2408 5433 LT -2406 5433 LT -2404 5432 LT -2404 5432 LT -QS -2413 5469 5442 VL -2102 5501 6769 VL -2468 5501 6403 VL -3017 5524 2468 HL -NP -2468 5524 MT -2514 5516 LT -2514 5532 LT -CP BF QS -NP -3017 5524 MT -2972 5532 LT -2972 5516 LT -CP BF QS -NP -2590 5436 MT -2588 5435 LT -2586 5434 LT -2584 5434 LT -2583 5433 LT -2581 5433 LT -2579 5433 LT -2577 5433 LT -2575 5434 LT -2573 5434 LT -2571 5434 LT -QS -NP -2571 5434 MT -2569 5435 LT -2568 5437 LT -2567 5438 LT -2566 5440 LT -2566 5442 LT -2567 5444 LT -2568 5446 LT -2569 5447 LT -2571 5448 LT -QS -2585 5454 2571 5448 DL -NP -2585 5468 MT -2586 5467 LT -2588 5466 LT -2589 5464 LT -2590 5462 LT -2590 5460 LT -2589 5458 LT -2588 5456 LT -2587 5455 LT -2585 5454 LT -QS -NP -2566 5466 MT -2568 5467 LT -2569 5468 LT -2571 5468 LT -2573 5469 LT -2575 5469 LT -2577 5469 LT -2579 5469 LT -2581 5469 LT -2583 5468 LT -2585 5468 LT -QS -2627 5432 2608 HL -2615 5469 5414 VL -2669 5451 2645 HL -2669 5445 5451 VL -NP -2669 5445 MT -2669 5443 LT -2669 5441 LT -2668 5439 LT -2667 5437 LT -2666 5436 LT -2664 5434 LT -2662 5433 LT -2660 5433 LT -2658 5432 LT -2656 5432 LT -2654 5433 LT -2652 5433 LT -2651 5434 LT -2649 5436 LT -2648 5437 LT -2647 5439 LT -2646 5440 LT -2645 5442 LT -2645 5444 LT -2645 5445 LT -QS -2645 5460 5445 VL -NP -2645 5460 MT -2645 5462 LT -2646 5464 LT -2647 5466 LT -2648 5467 LT -2650 5468 LT -2652 5469 LT -2654 5469 LT -2654 5469 LT -QS -2669 5469 2654 HL -2703 5469 2688 HL -NP -2703 5469 MT -2705 5469 LT -2707 5468 LT -2709 5467 LT -2710 5466 LT -2711 5464 LT -2712 5462 LT -2712 5460 LT -2712 5460 LT -QS -2712 5442 5460 VL -NP -2712 5442 MT -2712 5440 LT -2711 5438 LT -2710 5436 LT -2709 5435 LT -2707 5433 LT -2705 5433 LT -2703 5432 LT -2703 5432 LT -QS -2688 5432 2703 HL -2688 5487 5432 VL -NP -2755 5436 MT -2753 5435 LT -2751 5434 LT -2749 5434 LT -2747 5433 LT -2745 5433 LT -2743 5433 LT -2741 5433 LT -2739 5434 LT -2737 5434 LT -2736 5434 LT -QS -NP -2736 5434 MT -2734 5435 LT -2733 5437 LT -2732 5438 LT -2731 5440 LT -2731 5442 LT -2732 5444 LT -2733 5446 LT -2734 5447 LT -2736 5448 LT -QS -2750 5454 2736 5448 DL -NP -2750 5468 MT -2751 5467 LT -2753 5466 LT -2754 5464 LT -2754 5462 LT -2754 5460 LT -2754 5458 LT -2753 5456 LT -2751 5455 LT -2750 5454 LT -QS -NP -2731 5466 MT -2732 5467 LT -2734 5468 LT -2736 5468 LT -2738 5469 LT -2740 5469 LT -2742 5469 LT -2744 5469 LT -2746 5469 LT -2748 5468 LT -2750 5468 LT -QS -2789 5469 2773 HL -NP -2789 5469 MT -2791 5469 LT -2792 5468 LT -2794 5467 LT -2796 5466 LT -2797 5464 LT -2797 5462 LT -2798 5460 LT -2798 5460 LT -QS -2798 5442 5460 VL -NP -2798 5442 MT -2797 5440 LT -2797 5438 LT -2796 5436 LT -2794 5435 LT -2793 5433 LT -2791 5433 LT -2789 5432 LT -2789 5432 LT -QS -2773 5432 2789 HL -2773 5487 5432 VL -2831 5432 2819 HL -NP -2840 5442 MT -2840 5440 LT -2840 5438 LT -2838 5436 LT -2837 5435 LT -2835 5433 LT -2834 5433 LT -2832 5432 LT -2831 5432 LT -QS -2840 5469 5442 VL -2825 5469 2840 HL -NP -2825 5451 MT -2823 5451 LT -2821 5452 LT -2820 5453 LT -2818 5454 LT -2817 5456 LT -2816 5458 LT -2816 5460 LT -2816 5462 LT -2817 5464 LT -2818 5465 LT -2819 5467 LT -2821 5468 LT -2823 5469 LT -2825 5469 LT -2825 5469 LT -QS -2840 5451 2825 HL -2868 5432 2877 HL -NP -2868 5432 MT -2866 5433 LT -2864 5433 LT -2862 5434 LT -2861 5436 LT -2860 5437 LT -2859 5439 LT -2859 5441 LT -2859 5442 LT -QS -2859 5460 5442 VL -NP -2859 5460 MT -2859 5462 LT -2860 5464 LT -2861 5466 LT -2862 5467 LT -2864 5468 LT -2866 5469 LT -2868 5469 LT -2868 5469 LT -QS -2877 5469 2868 HL -2920 5451 2895 HL -2920 5445 5451 VL -NP -2920 5445 MT -2920 5443 LT -2919 5441 LT -2918 5439 LT -2917 5437 LT -2916 5436 LT -2914 5434 LT -2913 5433 LT -2911 5433 LT -2909 5432 LT -2907 5432 LT -2905 5433 LT -2903 5433 LT -2901 5434 LT -2899 5436 LT -2898 5437 LT -2897 5439 LT -2896 5440 LT -2896 5442 LT -2895 5444 LT -2895 5445 LT -QS -2895 5460 5445 VL -NP -2895 5460 MT -2896 5462 LT -2896 5464 LT -2897 5466 LT -2899 5467 LT -2900 5468 LT -2902 5469 LT -2904 5469 LT -2905 5469 LT -QS -2920 5469 2905 HL -2468 5501 6403 VL -3017 5501 6769 VL -2102 5524 1552 HL -NP -1552 5524 MT -1598 5516 LT -1598 5532 LT -CP BF QS -NP -2102 5524 MT -2056 5532 LT -2056 5516 LT -CP BF QS -NP -1674 5436 MT -1673 5435 LT -1671 5434 LT -1669 5434 LT -1667 5433 LT -1665 5433 LT -1663 5433 LT -1661 5433 LT -1659 5434 LT -1657 5434 LT -1655 5434 LT -QS -NP -1655 5434 MT -1654 5435 LT -1652 5437 LT -1651 5438 LT -1650 5440 LT -1650 5442 LT -1651 5444 LT -1652 5446 LT -1653 5447 LT -1655 5448 LT -QS -1669 5454 1655 5448 DL -NP -1669 5468 MT -1671 5467 LT -1672 5466 LT -1673 5464 LT -1674 5462 LT -1674 5460 LT -1673 5458 LT -1672 5456 LT -1671 5455 LT -1669 5454 LT -QS -NP -1650 5466 MT -1652 5467 LT -1654 5468 LT -1656 5468 LT -1658 5469 LT -1660 5469 LT -1662 5469 LT -1664 5469 LT -1665 5469 LT -1667 5468 LT -1669 5468 LT -QS -1711 5432 1693 HL -1699 5469 5414 VL -1754 5451 1729 HL -1754 5445 5451 VL -NP -1754 5445 MT -1754 5443 LT -1753 5441 LT -1752 5439 LT -1751 5437 LT -1750 5436 LT -1748 5434 LT -1746 5433 LT -1745 5433 LT -1743 5432 LT -1741 5432 LT -1739 5433 LT -1737 5433 LT -1735 5434 LT -1733 5436 LT -1732 5437 LT -1731 5439 LT -1730 5440 LT -1729 5442 LT -1729 5444 LT -1729 5445 LT -QS -1729 5460 5445 VL -NP -1729 5460 MT -1730 5462 LT -1730 5464 LT -1731 5466 LT -1733 5467 LT -1734 5468 LT -1736 5469 LT -1738 5469 LT -1738 5469 LT -QS -1754 5469 1738 HL -1787 5469 1772 HL -NP -1787 5469 MT -1789 5469 LT -1791 5468 LT -1793 5467 LT -1794 5466 LT -1795 5464 LT -1796 5462 LT -1796 5460 LT -1796 5460 LT -QS -1796 5442 5460 VL -NP -1796 5442 MT -1796 5440 LT -1796 5438 LT -1795 5436 LT -1793 5435 LT -1791 5433 LT -1790 5433 LT -1788 5432 LT -1787 5432 LT -QS -1772 5432 1787 HL -1772 5487 5432 VL -NP -1839 5436 MT -1837 5435 LT -1835 5434 LT -1834 5434 LT -1832 5433 LT -1830 5433 LT -1828 5433 LT -1826 5433 LT -1824 5434 LT -1822 5434 LT -1820 5434 LT -QS -NP -1820 5434 MT -1818 5435 LT -1817 5437 LT -1816 5438 LT -1815 5440 LT -1815 5442 LT -1816 5444 LT -1817 5446 LT -1818 5447 LT -1820 5448 LT -QS -1834 5454 1820 5448 DL -NP -1834 5468 MT -1836 5467 LT -1837 5466 LT -1838 5464 LT -1839 5462 LT -1839 5460 LT -1838 5458 LT -1837 5456 LT -1836 5455 LT -1834 5454 LT -QS -NP -1815 5466 MT -1817 5467 LT -1818 5468 LT -1820 5468 LT -1822 5469 LT -1824 5469 LT -1826 5469 LT -1828 5469 LT -1830 5469 LT -1832 5468 LT -1834 5468 LT -QS -1873 5469 1857 HL -NP -1873 5469 MT -1875 5469 LT -1877 5468 LT -1878 5467 LT -1880 5466 LT -1881 5464 LT -1882 5462 LT -1882 5460 LT -1882 5460 LT -QS -1882 5442 5460 VL -NP -1882 5442 MT -1882 5440 LT -1881 5438 LT -1880 5436 LT -1879 5435 LT -1877 5433 LT -1875 5433 LT -1873 5432 LT -1873 5432 LT -QS -1857 5432 1873 HL -1857 5487 5432 VL -1915 5432 1903 HL -NP -1925 5442 MT -1924 5440 LT -1924 5438 LT -1923 5436 LT -1921 5435 LT -1920 5433 LT -1918 5433 LT -1916 5432 LT -1915 5432 LT -QS -1925 5469 5442 VL -1909 5469 1925 HL -NP -1909 5451 MT -1907 5451 LT -1905 5452 LT -1904 5453 LT -1902 5454 LT -1901 5456 LT -1901 5458 LT -1900 5460 LT -1900 5462 LT -1901 5464 LT -1902 5465 LT -1903 5467 LT -1905 5468 LT -1907 5469 LT -1909 5469 LT -1909 5469 LT -QS -1925 5451 1909 HL -1952 5432 1961 HL -NP -1952 5432 MT -1950 5433 LT -1948 5433 LT -1947 5434 LT -1945 5436 LT -1944 5437 LT -1943 5439 LT -1943 5441 LT -1943 5442 LT -QS -1943 5460 5442 VL -NP -1943 5460 MT -1943 5462 LT -1944 5464 LT -1945 5466 LT -1946 5467 LT -1948 5468 LT -1950 5469 LT -1952 5469 LT -1952 5469 LT -QS -1961 5469 1952 HL -2004 5451 1980 HL -2004 5445 5451 VL -NP -2004 5445 MT -2004 5443 LT -2003 5441 LT -2003 5439 LT -2001 5437 LT -2000 5436 LT -1999 5434 LT -1997 5433 LT -1995 5433 LT -1993 5432 LT -1991 5432 LT -1989 5433 LT -1987 5433 LT -1985 5434 LT -1984 5436 LT -1982 5437 LT -1981 5439 LT -1980 5440 LT -1980 5442 LT -1980 5444 LT -1980 5445 LT -QS -1980 5460 5445 VL -NP -1980 5460 MT -1980 5462 LT -1980 5464 LT -1982 5466 LT -1983 5467 LT -1985 5468 LT -1986 5469 LT -1988 5469 LT -1989 5469 LT -QS -2004 5469 1989 HL -1552 5501 6403 VL -2102 5501 6769 VL -1 12 B 1 1 PE -4116 6440 3933 6806 DL -4300 6440 4116 HL -4483 6806 4300 6440 DL -4666 6806 4483 HL -4666 7356 3384 HL -3384 7356 3201 7722 DL -3201 7722 1003 HL -1 3 B 1 1 PE -3201 5341 2468 HL -NP -2468 5341 MT -2514 5333 LT -2514 5348 LT -CP BF QS -NP -3201 5341 MT -3155 5348 LT -3155 5333 LT -CP BF QS -2743 5286 5231 VL -2727 5286 2743 HL -NP -2718 5277 MT -2719 5279 LT -2719 5281 LT -2720 5282 LT -2722 5284 LT -2723 5285 LT -2725 5286 LT -2727 5286 LT -2727 5286 LT -QS -2718 5258 5277 VL -NP -2727 5249 MT -2725 5249 LT -2724 5250 LT -2722 5251 LT -2720 5253 LT -2719 5254 LT -2719 5256 LT -2718 5258 LT -2718 5258 LT -QS -2743 5249 2727 HL -2761 5249 5286 VL -2761 5231 5234 VL -2779 5249 5286 VL -2792 5249 2779 HL -NP -2798 5255 MT -2797 5253 LT -2796 5252 LT -2795 5250 LT -2793 5249 LT -2792 5249 LT -QS -2834 5249 2816 HL -2822 5286 5231 VL -2853 5249 5286 VL -2853 5231 5234 VL -2871 5249 5286 VL -2898 5249 2871 HL -NP -2908 5258 MT -2907 5256 LT -2907 5255 LT -2906 5253 LT -2904 5251 LT -2903 5250 LT -2901 5250 LT -2899 5249 LT -2898 5249 LT -QS -2908 5286 5258 VL -2889 5286 5249 VL -2950 5268 2926 HL -2950 5261 5268 VL -NP -2950 5261 MT -2950 5259 LT -2950 5258 LT -2949 5256 LT -2948 5254 LT -2946 5253 LT -2945 5251 LT -2943 5250 LT -2941 5250 LT -2939 5249 LT -2937 5249 LT -2935 5250 LT -2933 5250 LT -2932 5251 LT -2930 5252 LT -2929 5254 LT -2927 5256 LT -2927 5257 LT -2926 5259 LT -2926 5261 LT -2926 5261 LT -QS -2926 5277 5261 VL -NP -2926 5277 MT -2926 5279 LT -2927 5281 LT -2928 5282 LT -2929 5284 LT -2931 5285 LT -2933 5286 LT -2935 5286 LT -2935 5286 LT -QS -2950 5286 2935 HL -2468 5318 6403 VL -3201 5318 7685 VL -3933 5341 3201 HL -NP -3201 5341 MT -3246 5333 LT -3246 5348 LT -CP BF QS -NP -3933 5341 MT -3887 5348 LT -3887 5333 LT -CP BF QS -3475 5286 5231 VL -3460 5286 3475 HL -NP -3451 5277 MT -3451 5279 LT -3452 5281 LT -3453 5282 LT -3454 5284 LT -3456 5285 LT -3458 5286 LT -3460 5286 LT -3460 5286 LT -QS -3451 5258 5277 VL -NP -3460 5249 MT -3458 5249 LT -3456 5250 LT -3454 5251 LT -3453 5253 LT -3452 5254 LT -3451 5256 LT -3451 5258 LT -3451 5258 LT -QS -3475 5249 3460 HL -3494 5249 5286 VL -3494 5231 5234 VL -3512 5249 5286 VL -3524 5249 3512 HL -NP -3530 5255 MT -3530 5253 LT -3529 5252 LT -3527 5250 LT -3526 5249 LT -3524 5249 LT -QS -3567 5249 3549 HL -3555 5286 5231 VL -3585 5249 5286 VL -3585 5231 5234 VL -3604 5249 5286 VL -3631 5249 3604 HL -NP -3640 5258 MT -3640 5256 LT -3639 5255 LT -3638 5253 LT -3637 5251 LT -3635 5250 LT -3633 5250 LT -3631 5249 LT -3631 5249 LT -QS -3640 5286 5258 VL -3622 5286 5249 VL -3683 5268 3659 HL -3683 5261 5268 VL -NP -3683 5261 MT -3683 5259 LT -3682 5258 LT -3681 5256 LT -3680 5254 LT -3679 5253 LT -3677 5251 LT -3676 5250 LT -3674 5250 LT -3672 5249 LT -3670 5249 LT -3668 5250 LT -3666 5250 LT -3664 5251 LT -3663 5252 LT -3661 5254 LT -3660 5256 LT -3659 5257 LT -3659 5259 LT -3659 5261 LT -3659 5261 LT -QS -3659 5277 5261 VL -NP -3659 5277 MT -3659 5279 LT -3659 5281 LT -3660 5282 LT -3662 5284 LT -3664 5285 LT -3665 5286 LT -3667 5286 LT -3668 5286 LT -QS -3683 5286 3668 HL -3201 5318 7685 VL -3933 5318 6769 VL -1 12 B 1 1 PE -3933 6806 2651 HL - -QP -%%DocumentFonts: -%%EndDocument -%%Trailer -cleartomark countdictstack exch sub { end } repeat restore -%%EOF diff --git a/docs/src/drivers/images/pluto_step_waveform.png b/docs/src/drivers/images/pluto_step_waveform.png deleted file mode 100644 index e9d0c74ce1f..00000000000 Binary files a/docs/src/drivers/images/pluto_step_waveform.png and /dev/null differ diff --git a/docs/src/drivers/motenc.txt b/docs/src/drivers/motenc.txt deleted file mode 100644 index afda82ebf25..00000000000 --- a/docs/src/drivers/motenc.txt +++ /dev/null @@ -1,100 +0,0 @@ -= Motenc Driver - -[[cha:montec-driver]] (((Motenc Driver))) - -Vital Systems Motenc-100 and Motenc-LITE - -The Vital Systems Motenc-100 and Motenc-LITE are 8- and 4-channel -servo control boards. The Motenc-100 provides 8 quadrature encoder -counters, 8 analog inputs, 8 analog outputs, 64 (68?) digital inputs, -and 32 digital outputs. The Motenc-LITE has only 4 encoder counters, 32 -digital inputs and 16 digital outputs, but it still has 8 analog inputs -and 8 analog outputs. The driver automatically identifies the installed -board and exports the appropriate HAL objects. - -Installing: ----- -loadrt hal_motenc ----- - -During loading (or attempted loading) the driver prints some useful -debugging messages to the kernel log, which can be viewed with dmesg. - -Up to 4 boards may be used in one system. - -== Pins - -In the following pins, parameters, and functions, is the board -ID. According to the naming conventions the first board should always -have an ID of zero. However this driver sets the ID based on a pair of -jumpers on the board, so it may be non-zero even if there is only one -board. - -* '(s32) motenc..enc--count' - Encoder position, in counts. -* '(float) motenc..enc--position' - Encoder position, in - user units. -* '(bit) motenc..enc--index' - Current status of index - pulse input. -* '(bit) motenc..enc--idx-latch' - Driver sets this pin - true when it latches an index pulse (enabled by latch-index). Cleared - by clearing latch-index. -* '(bit) motenc..enc--latch-index' - If this pin is true, - the driver will reset the counter on the next index pulse. -* '(bit) motenc..enc--reset-count' - If this pin is true, - the counter will immediately be reset to zero, and the pin will be - cleared. -* '(float) motenc..dac--value' - Analog output value for - DAC (in user units, see -gain and -offset) -* '(float) motenc..adc--value' - Analog input value read - by ADC (in user units, see -gain and -offset) -* '(bit) motenc..in-' - State of digital input pin, see - canonical digital input. -* '(bit) motenc..in--not' - Inverted state of digital - input pin, see canonical digital input. -* '(bit) motenc..out-' - Value to be written to digital - output, seen canonical digital output. -* '(bit) motenc..estop-in' - Dedicated estop input, more details - needed. -* '(bit) motenc..estop-in-not' - Inverted state of dedicated estop - input. -* '(bit) motenc..watchdog-reset' - Bidirectional, - Set TRUE to - reset watchdog once, is automatically cleared. - -== Parameters - -* '(float) motenc..enc--scale' - The number of counts / - user unit (to convert from counts to units). -* '(float) motenc..dac--offset' - Sets the DAC offset. -* '(float) motenc..dac--gain' - Sets the DAC gain (scaling). -* '(float) motenc..adc--offset' - Sets the ADC offset. -* '(float) motenc..adc--gain' - Sets the ADC gain (scaling). -* '(bit) motenc..out--invert' - Inverts a digital output, - see canonical digital output. -* '(u32) motenc..watchdog-control' - Configures the watchdog. The - value may be a bitwise OR of the following values: - -[width="90%", options="header", cols="2*^1,^6"] -|======================================== -|Bit # | Value | Meaning -|0 | 1 | Timeout is 16ms if set, 8ms if unset -|1 | 2 | -|2 | 4 | Watchdog is enabled -|3 | 8 | -|4 | 16 | Watchdog is automatically reset by DAC writes (the HAL dac-write function) -|======================================== - -Typically, the useful values are 0 (watchdog disabled) or 20 (8ms -watchdog enabled, cleared by dac-write). - -* '(u32) motenc..led-view' - Maps some of the I/O to onboard LEDs. - -== Functions - -* '(funct) motenc..encoder-read' - Reads all encoder counters. -* '(funct) motenc..adc-read' - Reads the analog-to-digital converters. -* '(funct) motenc..digital-in-read' - Reads digital inputs. -* '(funct) motenc..dac-write' - Writes the voltages to the DACs. -* '(funct) motenc..digital-out-write' - Writes digital outputs. -* '(funct) motenc..misc-update' - Updates misc stuff. - - diff --git a/docs/src/drivers/motenc_es.txt b/docs/src/drivers/motenc_es.txt deleted file mode 100644 index 748f689771d..00000000000 --- a/docs/src/drivers/motenc_es.txt +++ /dev/null @@ -1,113 +0,0 @@ -= Motenc Driver - -[[cha:montec-driver]] (((Motenc Driver))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -Vital Systems Motenc-100 and Motenc-LITE - -The Vital Systems Motenc-100 and Motenc-LITE are 8- and 4-channel -servo control boards. The Motenc-100 provides 8 quadrature encoder -counters, 8 analog inputs, 8 analog outputs, 64 (68?) digital inputs, -and 32 digital outputs. The Motenc-LITE has only 4 encoder counters, 32 -digital inputs and 16 digital outputs, but it still has 8 analog inputs -and 8 analog outputs. The driver automatically identifies the installed -board and exports the appropriate HAL objects. - -Installing: ----- -loadrt hal_motenc ----- - -During loading (or attempted loading) the driver prints some useful -debugging messages to the kernel log, which can be viewed with dmesg. - -Up to 4 boards may be used in one system. - -== Pins - -In the following pins, parameters, and functions, is the board -ID. According to the naming conventions the first board should always -have an ID of zero. However this driver sets the ID based on a pair of -jumpers on the board, so it may be non-zero even if there is only one -board. - -* '(s32) motenc..enc--count' - Encoder position, in counts. -* '(float) motenc..enc--position' - Encoder position, in - user units. -* '(bit) motenc..enc--index' - Current status of index - pulse input. -* '(bit) motenc..enc--idx-latch' - Driver sets this pin - true when it latches an index pulse (enabled by latch-index). Cleared - by clearing latch-index. -* '(bit) motenc..enc--latch-index' - If this pin is true, - the driver will reset the counter on the next index pulse. -* '(bit) motenc..enc--reset-count' - If this pin is true, - the counter will immediately be reset to zero, and the pin will be - cleared. -* '(float) motenc..dac--value' - Analog output value for - DAC (in user units, see -gain and -offset) -* '(float) motenc..adc--value' - Analog input value read - by ADC (in user units, see -gain and -offset) -* '(bit) motenc..in-' - State of digital input pin, see - canonical digital input. -* '(bit) motenc..in--not' - Inverted state of digital - input pin, see canonical digital input. -* '(bit) motenc..out-' - Value to be written to digital - output, seen canonical digital output. -* '(bit) motenc..estop-in' - Dedicated estop input, more details - needed. -* '(bit) motenc..estop-in-not' - Inverted state of dedicated estop - input. -* '(bit) motenc..watchdog-reset' - Bidirectional, - Set TRUE to - reset watchdog once, is automatically cleared. - -== Parameters - -* '(float) motenc..enc--scale' - The number of counts / - user unit (to convert from counts to units). -* '(float) motenc..dac--offset' - Sets the DAC offset. -* '(float) motenc..dac--gain' - Sets the DAC gain (scaling). -* '(float) motenc..adc--offset' - Sets the ADC offset. -* '(float) motenc..adc--gain' - Sets the ADC gain (scaling). -* '(bit) motenc..out--invert' - Inverts a digital output, - see canonical digital output. -* '(u32) motenc..watchdog-control' - Configures the watchdog. The - value may be a bitwise OR of the following values: - -[width="90%", options="header", cols="2*^1,^6"] -|======================================== -|Bit # | Value | Meaning -|0 | 1 | Timeout is 16ms if set, 8ms if unset -|1 | 2 | -|2 | 4 | Watchdog is enabled -|3 | 8 | -|4 | 16 | Watchdog is automatically reset by DAC writes (the HAL dac-write function) -|======================================== - -Typically, the useful values are 0 (watchdog disabled) or 20 (8ms -watchdog enabled, cleared by dac-write). - -* '(u32) motenc..led-view' - Maps some of the I/O to onboard LEDs. - -== Functions - -* '(funct) motenc..encoder-read' - Reads all encoder counters. -* '(funct) motenc..adc-read' - Reads the analog-to-digital converters. -* '(funct) motenc..digital-in-read' - Reads digital inputs. -* '(funct) motenc..dac-write' - Writes the voltages to the DACs. -* '(funct) motenc..digital-out-write' - Writes digital outputs. -* '(funct) motenc..misc-update' - Updates misc stuff. - - diff --git a/docs/src/drivers/motenc_fr.txt b/docs/src/drivers/motenc_fr.txt deleted file mode 100644 index fa00f6006cd..00000000000 --- a/docs/src/drivers/motenc_fr.txt +++ /dev/null @@ -1,97 +0,0 @@ -= Motenc - -Vital Systems Motenc-100 and Motenc-LITE - -The Vital Systems Motenc-100 and Motenc-LITE are 8- and 4-channel -servo control boards. The Motenc-100 provides 8 quadrature encoder -counters, 8 analog inputs, 8 analog outputs, 64 (68?) digital inputs, -and 32 digital outputs. The Motenc-LITE has only 4 encoder counters, 32 -digital inputs and 16 digital outputs, but it still has 8 analog inputs -and 8 analog outputs. The driver automatically identifies the installed -board and exports the appropriate HAL objects. - -Installing: - - loadrt hal_motenc - -During loading (or attempted loading) the driver prints some useful -debugging messages to the kernel log, which can be viewed with dmesg. - -Up to 4 boards may be used in one system. - -== Pins - -In the following pins, parameters, and functions, is the board -ID. According to the naming conventions the first board should always -have an ID of zero. However this driver sets the ID based on a pair of -jumpers on the board, so it may be non-zero even if there is only one -board. - - - (s32) motenc..enc--count -- Encoder position, in counts. - - (float) motenc..enc--position -- Encoder position, in - user units. - - (bit) motenc..enc--index -- Current status of index - pulse input. - - (bit) motenc..enc--idx-latch -- Driver sets this pin - true when it latches an index pulse (enabled by latch-index). Cleared - by clearing latch-index. - - (bit) motenc..enc--latch-index -- If this pin is true, - the driver will reset the counter on the next index pulse. - - (bit) motenc..enc--reset-count -- If this pin is true, - the counter will immediately be reset to zero, and the pin will be - cleared. - - (float) motenc..dac--value -- Analog output value for - DAC (in user units, see -gain and -offset) - - (float) motenc..adc--value -- Analog input value read - by ADC (in user units, see -gain and -offset) - - (bit) motenc..in- -- State of digital input pin, see - canonical digital input. - - (bit) motenc..in--not -- Inverted state of digital - input pin, see canonical digital input. - - (bit) motenc..out- -- Value to be written to digital - output, seen canonical digital output. - - (bit) motenc..estop-in -- Dedicated estop input, more details - needed. - - (bit) motenc..estop-in-not -- Inverted state of dedicated estop - input. - - (bit) motenc..watchdog-reset -- Bidirectional, - Set TRUE to - reset watchdog once, is automatically cleared. - -== Parameters - - - (float) motenc..enc--scale -- The number of counts / - user unit (to convert from counts to units). - - (float) motenc..dac--offset -- Sets the DAC offset. - - (float) motenc..dac--gain -- Sets the DAC gain (scaling). - - (float) motenc..adc--offset -- Sets the ADC offset. - - (float) motenc..adc--gain -- Sets the ADC gain (scaling). - - (bit) motenc..out--invert -- Inverts a digital output, - see canonical digital output. - - (u32) motenc..watchdog-control -- Configures the watchdog. The - value may be a bitwise OR of the following values: - -[width="90%", options="header"] -|======================================== -|Bit # | Value | Meaning -|0 | 1 | Timeout is 16ms if set, 8ms if unset -|1 | 2 | -|2 | 4 | Watchdog is enabled -|3 | 8 | -|4 | 16 | Watchdog is automatically reset by DAC writes (the HAL dac-write function) -|======================================== - -Typically, the useful values are 0 (watchdog disabled) or 20 (8ms -watchdog enabled, cleared by dac-write). - - - (u32) motenc..led-view -- Maps some of the I/O to onboard LEDs? - -== Functions - - - (funct) motenc..encoder-read -- Reads all encoder counters. - - (funct) motenc..adc-read -- Reads the analog-to-digital converters. - - (funct) motenc..digital-in-read -- Reads digital inputs. - - (funct) motenc..dac-write -- Writes the voltages to the DACs. - - (funct) motenc..digital-out-write -- Writes digital outputs. - - (funct) motenc..misc-update -- Updates misc stuff. - - diff --git a/docs/src/drivers/opto22.txt b/docs/src/drivers/opto22.txt deleted file mode 100644 index 7f7a8efe1e8..00000000000 --- a/docs/src/drivers/opto22.txt +++ /dev/null @@ -1,159 +0,0 @@ -= Opto22 Driver - -[[cha:opto22-driver]] (((Opto22 Driver))) - -PCI AC5 ADAPTER CARD / HAL DRIVER - -== The Adapter Card - -This is a card made by Opto22 for adapting the PCI port to solid state -relay racks such as their standard or G4 series. It has 2 ports that -can control up to 24 points each and has 4 on board LEDs. The ports use -50 pin connectors the same as Mesa boards. Any relay racks/breakout -boards thats work with Mesa Cards should work with this card with the -understanding any encoder counters, PWM, etc., would have to be done in -software. The AC5 does not have any 'smart' logic on board, it is just -an adapter. - -See the manufacturer's website for more info: - -http://www.opto22.com/site/pr_details.aspx?cid=4&item=PCI-AC5 - -I would like to thank Opto22 for releasing info in their manual, -easing the writing of this driver! - -== The Driver - -This driver is for the PCI AC5 card and will not work with the ISA AC5 -card. The HAL driver is a realtime module. It will support 4 cards as -is (more cards are possible with a change in the source code). Load the -basic driver like so: - ----- -loadrt opto_ac5 ----- - -This will load the driver which will search for max 4 boards. It will -set I/O of each board's 2 ports to a default setting. The default -configuration is for 12 inputs then 12 outputs. The pin name numbers -correspond to the position on the relay rack. For example the pin names -for the default I/O setting of port 0 would be: - -* 'opto_ac5.0.port0.in-00' - They would be numbered from 00 to 11 - -* 'opto_ac5.0.port0.out-12' - They would be numbered 12 to 23 port 1 would -be the same. - -== Pins - -* 'opto_ac5.[BOARDNUMBER].port[PORTNUMBER].in-[PINNUMBER] OUT bit' - - -* 'opto_ac5.[BOARDNUMBER].port[PORTNUMBER].in-[PINNUMBER]-not OUT bit' - -Connect a HAL bit signal to this pin to read an I/O point from the -card. The PINNUMBER represents the position in the relay rack. Eg. -PINNUMBER 0 is position 0 in a Opto22 relay rack and would be pin 47 on -the 50 pin header connector. The -not pin is inverted so that LOW gives -TRUE and HIGH gives FALSE. - -* 'opto_ac5.[BOARDNUMBER].port[PORTNUMBER].out-[PINNUMBER] IN bit' - -Connect a HAL bit signal to this pin to write to an I/O point of the -card. The PINNUMBER represents the position in the relay rack.Eg. -PINNUMBER 23 is position 23 in a Opto22 relay rack and would be pin 1 -on the 50 pin header connector. - -* 'opto_ac5.[BOARDNUMBER].led[NUMBER] OUT bit' - -Turns one of the 4 onboard LEDs on/off. LEDs are numbered 0 to 3. - -BOARDNUMBER can be 0-3 PORTNUMBER can be 0 or 1. Port 0 is closest to -the card bracket. - -== Parameters - -* 'opto_ac5.[BOARDNUMBER].port[PORTNUMBER].out-[PINNUMBER]-invert W bit' - -When TRUE, invert the meaning of the corresponding -out pin so that -TRUE gives LOW and FALSE gives HIGH. - -== FUNCTIONS - -* 'opto_ac5.0.digital-read' - Add this to a thread to read all the input -points. - -* 'opto_ac5.0.digital-write' - Add this to a thread to write all the output -points and LEDs. - -For example the pin names for the default I/O setting of port 0 would -be: - ----- -opto_ac5.0.port0.in-00 ----- - -They would be numbered from 00 to 11 - ----- -opto_ac5.0.port0.out-12 ----- - -They would be numbered 12 to 23 port 1 would be the same. - -== Configuring I/O Ports - -To change the default setting load the driver something like so: - ----- -loadrt opto_ac5 portconfig0=0xffff portconfig1=0xff0000 ----- - -Of course changing the numbers to match the I/O you would like. Each -port can be set up different. - -Here's how to figure out the number: The configuration number -represents a 32 bit long code to tell the card which I/O points are -output vrs input. The lower 24 bits are the I/O points of one port. The -2 highest bits are for 2 of the on board LEDs. A one in any bit -position makes the I/O point an output. The two highest bits must be -output for the LEDs to work. The driver will automatically set the two -highest bits for you, we won't talk about them. - -The easiest way to do this is to fire up the calculator under -APPLICATIONS/ACCESSORIES. Set it to scientific (click view). Set it -BINARY (radio button Bin). Press 1 for every output you want and/or -zero for every input. Remember that HAL pin 00 corresponds to the -rightmost bit. 24 numbers represent the 24 I/O points of one port. So -for the default setting (12 inputs then 12 outputs) you would push 1 -twelve times (thats the outputs) then 0 twelve times (thats the -inputs). Notice the first I/O point is the lowest (rightmost) bit. -(that bit corresponds to HAL pin 00 .looks backwards) You should have -24 digits on the screen. Now push the Hex radio button. The displayed -number (fff000) is the configport number ( put a '0x' in front of it -designating it as a HEX number). - -Another example: To set the port for 8 outputs and 16 inputs (the -same as a Mesa card). Here is the 24 bits represented in a BINARY -number. Bit 1 is the rightmost number. - -000000000000000011111111 - -16 zeros for the 16 inputs and 8 ones for the 8 outputs - -Which converts to FF on the calculator so 0xff is the number to use -for portconfig0 and/or portconfig1 when loading the driver. - -== Pin Numbering - -HAL pin 00 corresponds to bit 1 (the rightmost) which represents -position 0 on an Opto22 relay rack. HAL pin 01 corresponds to bit 2 -(one spot to the left of the rightmost) which represents position 1 on -an Opto22 relay rack. HAL pin 23 corresponds to bit 24 (the -leftmost) which represents position 23 on an Opto22 relay rack. - -HAL pin 00 connects to pin 47 on the 50 pin connector of each port. -HAL pin 01 connects to pin 45 on the 50 pin connector of each port. -HAL pin 23 connects to pin 1 on the 50 pin connector of each port. - -Note that Opto22 and Mesa use opposite numbering systems: Opto22 -position 23 = connector pin 1, and the position goes down as the -connector pin number goes up. Mesa Hostmot2 position 1 = connector pin -1, and the position number goes up as the connector pin number goes up. - - diff --git a/docs/src/drivers/opto22_es.txt b/docs/src/drivers/opto22_es.txt deleted file mode 100644 index 5b0258b983b..00000000000 --- a/docs/src/drivers/opto22_es.txt +++ /dev/null @@ -1,172 +0,0 @@ -= Opto22 Driver - -[[cha:opto22-driver]] (((Opto22 Driver))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -PCI AC5 ADAPTER CARD / HAL DRIVER - -== The Adapter Card - -This is a card made by Opto22 for adapting the PCI port to solid state -relay racks such as their standard or G4 series. It has 2 ports that -can control up to 24 points each and has 4 on board LEDs. The ports use -50 pin connectors the same as Mesa boards. Any relay racks/breakout -boards thats work with Mesa Cards should work with this card with the -understanding any encoder counters, PWM, etc., would have to be done in -software. The AC5 does not have any 'smart' logic on board, it is just -an adapter. - -See the manufacturer's website for more info: - -http://www.opto22.com/site/pr_details.aspx?cid=4&item=PCI-AC5 - -I would like to thank Opto22 for releasing info in their manual, -easing the writing of this driver! - -== The Driver - -This driver is for the PCI AC5 card and will not work with the ISA AC5 -card. The HAL driver is a realtime module. It will support 4 cards as -is (more cards are possible with a change in the source code). Load the -basic driver like so: - ----- -loadrt opto_ac5 ----- - -This will load the driver which will search for max 4 boards. It will -set I/O of each board's 2 ports to a default setting. The default -configuration is for 12 inputs then 12 outputs. The pin name numbers -correspond to the position on the relay rack. For example the pin names -for the default I/O setting of port 0 would be: - -* 'opto_ac5.0.port0.in-00' - They would be numbered from 00 to 11 - -* 'opto_ac5.0.port0.out-12' - They would be numbered 12 to 23 port 1 would -be the same. - -== Pins - -* 'opto_ac5.[BOARDNUMBER].port[PORTNUMBER].in-[PINNUMBER] OUT bit' - - -* 'opto_ac5.[BOARDNUMBER].port[PORTNUMBER].in-[PINNUMBER]-not OUT bit' - -Connect a HAL bit signal to this pin to read an I/O point from the -card. The PINNUMBER represents the position in the relay rack. Eg. -PINNUMBER 0 is position 0 in a Opto22 relay rack and would be pin 47 on -the 50 pin header connector. The -not pin is inverted so that LOW gives -TRUE and HIGH gives FALSE. - -* 'opto_ac5.[BOARDNUMBER].port[PORTNUMBER].out-[PINNUMBER] IN bit' - -Connect a HAL bit signal to this pin to write to an I/O point of the -card. The PINNUMBER represents the position in the relay rack.Eg. -PINNUMBER 23 is position 23 in a Opto22 relay rack and would be pin 1 -on the 50 pin header connector. - -* 'opto_ac5.[BOARDNUMBER].led[NUMBER] OUT bit' - -Turns one of the 4 onboard LEDs on/off. LEDs are numbered 0 to 3. - -BOARDNUMBER can be 0-3 PORTNUMBER can be 0 or 1. Port 0 is closest to -the card bracket. - -== Parameters - -* 'opto_ac5.[BOARDNUMBER].port[PORTNUMBER].out-[PINNUMBER]-invert W bit' - -When TRUE, invert the meaning of the corresponding -out pin so that -TRUE gives LOW and FALSE gives HIGH. - -== FUNCTIONS - -* 'opto_ac5.0.digital-read' - Add this to a thread to read all the input -points. - -* 'opto_ac5.0.digital-write' - Add this to a thread to write all the output -points and LEDs. - -For example the pin names for the default I/O setting of port 0 would -be: - ----- -opto_ac5.0.port0.in-00 ----- - -They would be numbered from 00 to 11 - ----- -opto_ac5.0.port0.out-12 ----- - -They would be numbered 12 to 23 port 1 would be the same. - -== Configuring I/O Ports - -To change the default setting load the driver something like so: - ----- -loadrt opto_ac5 portconfig0=0xffff portconfig1=0xff0000 ----- - -Of course changing the numbers to match the I/O you would like. Each -port can be set up different. - -Here's how to figure out the number: The configuration number -represents a 32 bit long code to tell the card which I/O points are -output vrs input. The lower 24 bits are the I/O points of one port. The -2 highest bits are for 2 of the on board LEDs. A one in any bit -position makes the I/O point an output. The two highest bits must be -output for the LEDs to work. The driver will automatically set the two -highest bits for you, we won't talk about them. - -The easiest way to do this is to fire up the calculator under -APPLICATIONS/ACCESSORIES. Set it to scientific (click view). Set it -BINARY (radio button Bin). Press 1 for every output you want and/or -zero for every input. Remember that HAL pin 00 corresponds to the -rightmost bit. 24 numbers represent the 24 I/O points of one port. So -for the default setting (12 inputs then 12 outputs) you would push 1 -twelve times (thats the outputs) then 0 twelve times (thats the -inputs). Notice the first I/O point is the lowest (rightmost) bit. -(that bit corresponds to HAL pin 00 .looks backwards) You should have -24 digits on the screen. Now push the Hex radio button. The displayed -number (fff000) is the configport number ( put a '0x' in front of it -designating it as a HEX number). - -Another example: To set the port for 8 outputs and 16 inputs (the -same as a Mesa card). Here is the 24 bits represented in a BINARY -number. Bit 1 is the rightmost number. - -000000000000000011111111 - -16 zeros for the 16 inputs and 8 ones for the 8 outputs - -Which converts to FF on the calculator so 0xff is the number to use -for portconfig0 and/or portconfig1 when loading the driver. - -== Pin Numbering - -HAL pin 00 corresponds to bit 1 (the rightmost) which represents -position 0 on an Opto22 relay rack. HAL pin 01 corresponds to bit 2 -(one spot to the left of the rightmost) which represents position 1 on -an Opto22 relay rack. HAL pin 23 corresponds to bit 24 (the -leftmost) which represents position 23 on an Opto22 relay rack. - -HAL pin 00 connects to pin 47 on the 50 pin connector of each port. -HAL pin 01 connects to pin 45 on the 50 pin connector of each port. -HAL pin 23 connects to pin 1 on the 50 pin connector of each port. - -Note that Opto22 and Mesa use opposite numbering systems: Opto22 -position 23 = connector pin 1, and the position goes down as the -connector pin number goes up. Mesa Hostmot2 position 1 = connector pin -1, and the position number goes up as the connector pin number goes up. - - diff --git a/docs/src/drivers/opto22_fr.txt b/docs/src/drivers/opto22_fr.txt deleted file mode 100644 index 7039e43935d..00000000000 --- a/docs/src/drivers/opto22_fr.txt +++ /dev/null @@ -1,154 +0,0 @@ -= Opto22 PCI - -PCI AC5 ADAPTER CARD / HAL DRIVER This page is considered current as -of November 2008. - -== The Adapter Card - -This is a card made by Opto22 for adapting the PCI port to solid state -relay racks such as their standard or G4 series. It has 2 ports that -can control up to 24 points each and has 4 on board LEDs. The ports use -50 pin connectors the same as Mesa boards. Any relay racks/breakout -boards thats work with Mesa Cards should work with this card with the -understanding any encoder counters, PWM, etc., would have to be done in -software. The AC5 does not have any 'smart' logic on board, it is just -an adapter. - -See the manufacturer's website for more info: - -http://www.opto22.com - -I would like to thank Opto22 for releasing info in their manual, -easing the writing of this driver! - -== The Driver - -This driver is for the PCI AC5 card and will not work with the ISA AC5 -card. The HAL driver is a realtime module. It will support 4 cards as -is (more cards are possible with a change in the source code). Load the -basic driver like so: - - loadrt opto_ac5 - -This will load the driver which will search for max 4 boards. It will -set I/O of each board's 2 ports to a default setting. The default -configuration is for 12 inputs then 12 outputs. The pin name numbers -correspond to the position on the relay rack. For example the pin names -for the default I/O setting of port 0 would be: - -opto_ac5.0.port0.in-00 They would be numbered from 00 to 11 - -opto_ac5.0.port0.out-12 They would be numbered 12 to 23 port 1 would -be the same. - -== PINS - -opto_ac5.[BOARDNUMBER].port[PORTNUMBER].in-[PINNUMBER] OUT bit - -opto_ac5.[BOARDNUMBER].port[PORTNUMBER].in-[PINNUMBER]-not OUT bit - -Connect a HAL bit signal to this pin to read an I/O point from the -card. The PINNUMBER represents the position in the relay rack. Eg. -PINNUMBER 0 is position 0 in a Opto22 relay rack and would be pin 47 on -the 50 pin header connector. The -not pin is inverted so that LOW gives -TRUE and HIGH gives FALSE. - -opto_ac5.[BOARDNUMBER].port[PORTNUMBER].out-[PINNUMBER] IN bit - -Connect a HAL bit signal to this pin to write to an I/O point of the -card. The PINNUMBER represents the position in the relay rack.Eg. -PINNUMBER 23 is position 23 in a Opto22 relay rack and would be pin 1 -on the 50 pin header connector. - -opto_ac5.[BOARDNUMBER].led[NUMBER] OUT bit - -Turns one of the 4 onboard LEDs on/off. LEDs are numbered 0 to 3. - -BOARDNUMBER can be 0-3 PORTNUMBER can be 0 or 1. Port 0 is closest to -the card bracket. - -== PARAMETERS - -opto_ac5.[BOARDNUMBER].port[PORTNUMBER].out-[PINNUMBER]-invert W bit - -When TRUE, invert the meaning of the corresponding -out pin so that -TRUE gives LOW and FALSE gives HIGH. - -== FUNCTIONS - -opto_ac5.0.digital-read Add this to a thread to read all the input -points. - -opto_ac5.0.digital-write Add this to a thread to write all the output -points and LEDs. - -For example the pin names for the default I/O setting of port 0 would -be: - -opto_ac5.0.port0.in-00 - -They would be numbered from 00 to 11 - -opto_ac5.0.port0.out-12 - -They would be numbered 12 to 23 port 1 would be the same. - -== Configuring I/O Ports - -To change the default setting load the driver something like so: - - loadrt opto_ac5 portconfig0=0xffff portconfig1=0xff0000 - -Of course changing the numbers to match the I/O you would like. Each -port can be set up different. - -Here's how to figure out the number: The configuration number -represents a 32 bit long code to tell the card which I/O points are -output vrs input. The lower 24 bits are the I/O points of one port. The -2 highest bits are for 2 of the on board LEDs. A one in any bit -position makes the I/O point an output. The two highest bits must be -output for the LEDs to work. The driver will automatically set the two -highest bits for you, we won't talk about them. - -The easiest way to do this is to fire up the calculator under -APPLICATIONS/ACCESSORIES. Set it to scientific (click view). Set it -BINARY (radio button Bin). Press 1 for every output you want and/or -zero for every input. Remember that HAL pin 00 corresponds to the -rightmost bit. 24 numbers represent the 24 I/O points of one port. So -for the default setting (12 inputs then 12 outputs) you would push 1 -twelve times (thats the outputs) then 0 twelve times (thats the -inputs). Notice the first I/O point is the lowest (rightmost) bit. -(that bit corresponds to HAL pin 00 .looks backwards) You should have -24 digits on the screen. Now push the Hex radio button. The displayed -number (fff000) is the configport number ( put a '0x' in front of it -designating it as a HEX number). - -Another example: To set the port for 8 outputs and 16 inputs (the -same as a Mesa card). Here is the 24 bits represented in a BINARY -number. Bit 1 is the rightmost number. - -000000000000000011111111 - -16 zeros for the 16 inputs and 8 ones for the 8 outputs - -Which converts to FF on the calculator so 0xff is the number to use -for portconfig0 and/or portconfig1 when loading the driver. - -== Pin Numbering - -HAL pin 00 corresponds to bit 1 (the rightmost) which represents -position 0 on an Opto22 relay rack. HAL pin 01 corresponds to bit 2 -(one spot to the left of the rightmost) which represents position 1 on -an Opto22 relay rack. HAL pin 23 corresponds to bit 24 (the -leftmost) which represents position 23 on an Opto22 relay rack. - -HAL pin 00 connects to pin 47 on the 50 pin connector of each port. -HAL pin 01 connects to pin 45 on the 50 pin connector of each port. -HAL pin 23 connects to pin 1 on the 50 pin connector of each port. - -Note that Opto22 and Mesa use opposite numbering systems: Opto22 -position 23 = connector pin 1, and the position goes down as the -connector pin number goes up. Mesa Hostmot2 position 1 = connector pin -1, and the position number goes up as the connector pin number goes up. - - diff --git a/docs/src/drivers/pico_ppmc.txt b/docs/src/drivers/pico_ppmc.txt deleted file mode 100644 index 7a304579eaa..00000000000 --- a/docs/src/drivers/pico_ppmc.txt +++ /dev/null @@ -1,230 +0,0 @@ -= Pico Drivers - -[[cha:pico-drivers]] (((Pico PPMC Driver))) - -Pico Systems has a family of boards for doing analog servo, stepper, -and PWM (digital) servo control. The boards connect to the PC through a -parallel port working in EPP mode. Although most users connect one -board to a parallel port, in theory any mix of up to 8 or 16 boards can -be used on a single parport. One driver serves all types of boards. The -final mix of I/O depends on the connected board(s). The driver doesn't -distinguish between boards, it simply numbers I/O channels (encoders, -etc) starting from 0 on the first board. The driver is named hal_ppmc.ko -The analog servo interface is also called the PPMC for Parallel Port Motion -Control. There is also the Universal Stepper Controller, abbreviated the -USC. And the Universal PWM Controller, or UPC. - -Installing: ----- -loadrt hal_ppmc port_addr=[,[,...]] ----- - -The 'port_addr' parameter tells the driver what parallel port(s) to -check. By default, '' is 0x0378, and '' and following -are not used. The driver searches the entire address -space of the enhanced parallel port(s) at 'port_addr', looking for -any board(s) in the PPMC family. It then exports HAL -pins for whatever it finds. During loading (or attempted loading) the -driver prints some useful debugging messages to the kernel log, which -can be viewed with 'dmesg'. - -Up to 3 parport busses may be used, and each bus may have up to 8 (or -possibly 16 PPMC) devices on it. - -== Command Line Options - -There are several options that can be specified on the loadrt command line. -First, the USC and UPC can have an 8-bit DAC added for spindle speed -control and similar functions. This can be specified with the -extradac='0xnn[,0xmm]' parameter. The part enclosed in [ ] allows you -to specify this option on more than one board of the system. The first -hex digit tells which EPP bus is being referred to, it corresponds to -the order of the port addresses in the port_addr parameter, where - would be zero here. So, for the first EPP bus, the first -USC or UPC board would be described as '0x00', the second USC or UPC -on the same bus would be '0x02'. (Note that each USC or UPC takes up -two addresses, so if one is at 00, the next would have to be 02.) - -Alternatively, the 8 digital output pins can be used as additional -digital outputs, it works the same way as above with the syntax : -extradout=0xnn'. The extradac and extradout options are mutually -exclusive on each board, you can only specify one. - -The UPC and PPMC encoder boards can timestamp the arrival of encoder -counts to refine the derivation of axis velocity. This derived velocity -can be fed to the PID hal component to produce smoother D term -response. The syntax is : timestamp='0xnn[,0xmm]', this works the -same way as above to select which board is being configured. -Default is to not enable the timestamp option. If you put -this option on the command line, it enables the option. The -first 'n' selects the EPP bus, the second one matches the -address of the board having the option enabled. The driver checks the -revision level of the board to make sure it has firmware supporting -the feature, and produces an error message if the board does not -support it. - -The PPMC encoder board has an option to select the encoder digital -filter frequeency. (The UPC has the same ability via DIP switches -on the board.) Since the PPMC encoder board doesn't have these -extra DIP switches, it needs to be selected via a command-line -option. By default, the filter runs at 1 MHz, allowing encoders -to be counted up to about 900 KHz (depending on noise and quadrature -accuracy of the encoder.) The options are 1, 2.5, 5 and 10 MHz. -These are set with a parameter of 1,2,5 and 10 (decimal) which -is specified as the hex digit "A". These are specified in a manner -similar to the above options, but with the frequency setting to -the left of the bus/address digits. So, to set 5 MHz on the -encoder board at address 3 on the first EPP bus, you would write : -enc_clock='0x503' - -== Pins - -In the following pins, parameters, and functions, is the parallel -port ID. According to the naming conventions the first port should always -have an ID of zero. All the boards have some method of setting the -address on the EPP bus. USC and UPC have simple provisions for only -two addresses, but jumper foil cuts allow up to 4 boards to be addressed. -The PPMC boards have 16 possible addresses. In all cases, the driver -enumerates the boards by type and exports the appropriate HAL pins. -For instance, the encoders will be enumerated from zero up, in the -same order as the address switches on the board specify. So, the first -board will have encoders 0 -- 3, the second board would have encoders -4 -- 7. -The first column after the bullet tells which boards will have this -HAL pin or parameter associated with it. All means that this pin is -available on all three board types. Option means that this pin -will only be exported when that option is enabled by an optional -parameter in the loadrt HAL command. These options require the -board to have a sufficient revision level to support the feature. - -* '(All s32 output) ppmc..encoder..count' - Encoder - position, in counts. -* '(All s32 output) ppmc..encoder..delta' - Change in - counts since last read, in raw encoder count units. -* '(All float output) 'ppmc..encoder..velocity' - - Velocity scaled in user units per second. On PPMC and USC this is - derived from raw encoder counts per servo period, and hence is affected - by encoder granularity. On UPC boards with the 8/21/09 and later - firmware, velocity estimation by timestamping encoder counts can be - used to improve the smoothness of this velocity output. This can be fed - to the PID HAL component to produce a more stable servo response. This - function has to be enabled in the HAL command line that starts the PPMC - driver, with the timestamp=0x00 option. -* '(All float output) ppmc..encoder..position' - - Encoder position, in user units. -* '(All bit bidir) ppmc..encoder..index-enable' - - Connect to axis.#.index-enable for home-to-index. This is a - bidirectional HAL signal. Setting it to true causes the encoder - hardware to reset the count to zero on the next encoder index pulse. - The driver will detect this and set the signal back to false. -* '(PPMC float output) ppmc..DAC..value' - sends a - signed value to the 16-bit Digital to Analog Converter on the PPMC DAC16 - board commanding the analog output voltage of that DAC channel. -* '(UPC bit input) ppmc..pwm..enable' - Enables a - PWM generator. -* '(UPC float input) ppmc..pwm..value' - Value - which determines the duty cycle of the PWM waveforms. The - value is divided by 'pwm..scale', and if the result is 0.6 - the duty cycle will be 60%, and so on. - Negative values result in the duty cycle being based on the absolute - value, and the direction pin is set to indicate negative. -* '(USC bit input) ppmc..stepgen..enable' - - Enables a step pulse generator. -* '(USC float input) ppmc..stepgen..velocity' - - Value which determines the step frequency. The value is multiplied - by 'stepgen..scale' , and the result is the frequency in - steps per second. Negative values - result in the frequency being based on the absolute value, and the - direction pin is set to indicate negative. -* '(All bit output) ppmc..din..in' - State of digital - input pin, see canonical digital input. -* '(All bit output) ppmc..din..in-not' - Inverted - state of digital input pin, see canonical digital input. -* '(All bit input) ppmc..dout..out' - Value to be - written to digital output, see canonical digital output. -* '(Option float input) ppmc..DAC8-.value' - Value to - be written to analog output, range from 0 to 255. This - sends 8 output bits to J8, which should have a Spindle DAC board - connected to it. 0 corresponds to zero Volts, 255 corresponds to 10 - Volts. The polarity of the output can be set for always minus, always - plus, or can be controlled by the state of SSR1 (plus when on) and SSR2 - (minus when on). You must specify extradac = 0x00 on the HAL command - line that loads the PPMC driver to enable this function on the first - USC ur UPC board. -* '(Option bit input) ppmc..dout..out' - Value to be - written to one of the 8 extra digital output pins on - J8. You must specify extradout = 0x00 on the HAL command line that - loads the ppmc driver to enable this function on the first USC or UPC - board. extradac and extradout are mutually exclusive features as they - use the same signal lines for different purposes. These output pins - will be enumerated after the standard digital outputs of the board. - -== Parameters - -* '(All float) ppmc..encoder..scale' - The number of - counts / user unit (to convert from counts to units). -* '(UPC float) ppmc..pwm..freq' - The PWM - carrier frequency, in Hz. Applies to a group of four - consecutive PWM generators, as indicated by ''. Minimum - is 610Hz, maximum is 500KHz. -* '(PPMC float) ppmc..DAC..scale' - Sets scale - of DAC16 output channel such that an output value equal to the 1/scale - value will produce an output of + or - value Volts. So, if the scale - parameter is 0.1 and you send a value of 0.5, the output will be 5.0 Volts. -* '(UPC float) ppmc..pwm..scale' - Scaling for PWM - generator. If 'scale' is X, then the duty cycle will be 100% when the - 'value' pin is X (or -X). -* '(UPC float) ppmc..pwm..max-dc' - Maximum duty - cycle, from 0.0 to 1.0. -* '(UPC float) ppmc..pwm..min-dc' - Minimum duty - cycle, from 0.0 to 1.0. -* '(UPC float) ppmc..pwm..duty-cycle' - Actual duty - cycle (used mostly for troubleshooting.) -* '(UPC bit) ppmc..pwm..bootstrap' - If true, the - PWM generator will generate a short sequence of - pulses of both polarities when E-stop goes false, to reset the - shutdown latches on some PWM servo drives. -* '(USC u32) ppmc..stepgen..setup-time' - Sets - minimum time between direction change and step pulse, in - units of 100ns. Applies to a group of four consecutive step generators, - as indicated by ''. Values between 200 ns and 25.5 us -can be specified. -* '(USC u32) ppmc..stepgen..pulse-width' - Sets - width of step pulses, in units of 100ns. Applies to a group - of four consecutive step generators, as indicated by ''. - Values between 200 ns and 25.5 us may be specified. -* '(USC u32) ppmc..stepgen..pulse-space-min' - Sets - minimum time between pulses, in units of 100ns. - Applies to a group of four consecutive step generators, as indicated by - ''. Values between 200 ns and 25.5 us can be specified. - The maximum step rate is: - image:images/pico-ppmc-math.png[] -* '(USC float) ppmc..stepgen..scale' - Scaling for - step pulse generator. The step frequency in Hz is the - absolute value of 'velocity' * 'scale'. -* '(USC float) ppmc..stepgen..max-vel' - The maximum - value for 'velocity'. Commands greater than 'max-vel' will be clamped. - Also applies to negative values. (The absolute value is clamped.) -* '(USC float) ppmc..stepgen..frequency' - Actual - step pulse frequency in Hz (used mostly for troubleshooting.) -* '(Option float) ppmc..DAC8..scale' - Sets scale - of extra DAC output such that an output value equal to - scale gives a magnitude of 10.0 V output. (The sign of the output is - set by jumpers and/or other digital outputs.) -* '(Option bit) ppmc..dout..invert' - Inverts a - digital output, see canonical digital output. -* '(Option bit) ppmc..dout..invert' - Inverts a - digital output pin of J8, see canonical digital output. - -== Functions - -* '(All funct) ppmc..read' - Reads all inputs (digital inputs - and encoder counters) on one port. These reads are organized into - blocks of contiguous registers to be read in a block to - minimize CPU overhead. -* '(All funct) ppmc..write' - Writes all outputs (digital - outputs, stepgens, PWMs) on one port. - These writes are organized into blocks of contiguous registers to be - written in a block to minimize CPU overhead. - - diff --git a/docs/src/drivers/pico_ppmc_es.txt b/docs/src/drivers/pico_ppmc_es.txt deleted file mode 100644 index 31e1f8bacaf..00000000000 --- a/docs/src/drivers/pico_ppmc_es.txt +++ /dev/null @@ -1,181 +0,0 @@ -= Pico Drivers - -[[cha:pico-drivers]] (((Pico PPMC Driver))) - -Pico Systems has a family of boards for doing analog servo, stepper, -and PWM (digital) servo control. The boards connect to the PC through a -parallel port working in EPP mode. Although most users connect one -board to a parallel port, in theory any mix of up to 8 or 16 boards can -be used on a single parport. One driver serves all types of boards. The -final mix of I/O depends on the connected board(s). The driver doesn't -distinguish between boards, it simply numbers I/O channels (encoders, -etc) starting from 0 on the first board. The driver is named hal_ppmc.ko -The analog servo interface is also called the PPMC for Parallel Port Motion -Control. There is also the Universal Stepper Controller, abbreviated the -USC. And the Universal PWM Controller, or UPC. - -Installing: ----- -loadrt hal_ppmc port_addr=[,[,...]] ----- - -The 'port_addr' parameter tells the driver what parallel port(s) to -check. By default, '' is 0x0378, and '' and following -are not used. The driver searches the entire address -space of the enhanced parallel port(s) at 'port_addr', looking for -any board(s) in the PPMC family. It then exports HAL -pins for whatever it finds. During loading (or attempted loading) the -driver prints some useful debugging messages to the kernel log, which -can be viewed with 'dmesg'. - -Up to 3 parport busses may be used, and each bus may have up to 8 (or -possibly 16 PPMC) devices on it. - -== Pins - -In the following pins, parameters, and functions, is the parallel -port ID. According to the naming conventions the first port should always -have an ID of zero. All the boards have some method of setting the -address on the EPP bus. USC and UPC have simple provisions for only -two addresses, but jumper foil cuts allow up to 4 boards to be addressed. -The PPMC boards have 16 possible addresses. In all cases, the driver -enumerates the boards by type and exports the appropriate HAL pins. -For instance, the encoders will be enumerated from zero up, in the -same order as the address switches on the board specify. So, the first -board will have encoders 0 -- 3, the second board would have encoders -4 -- 7. -The first column after the bullet tells which boards will have this -HAL pin or parameter associated with it. All means that this pin is -available on all three board types. Option means that this pin -will only be exported when that option is enabled by an optional -parameter in the loadrt HAL command. These options require the -board to have a sufficient revision level to support the feature. - -* '(All s32 output) ppmc..encoder..count' - Encoder - position, in counts. -* '(All s32 output) ppmc..encoder..delta' - Change in - counts since last read, in raw encoder count units. -* '(All float output) 'ppmc..encoder..velocity' - - Velocity scaled in user units per second. On PPMC and USC this is - derived from raw encoder counts per servo period, and hence is affected - by encoder granularity. On UPC boards with the 8/21/09 and later - firmware, velocity estimation by timestamping encoder counts can be - used to improve the smoothness of this velocity output. This can be fed - to the PID HAL component to produce a more stable servo response. This - function has to be enabled in the HAL command line that starts the PPMC - driver, with the timestamp=0x00 option. -* '(All float output) ppmc..encoder..position' - - Encoder position, in user units. -* '(All bit bidir) ppmc..encoder..index-enable' - - Connect to axis.#.index-enable for home-to-index. This is a - bidirectional HAL signal. Setting it to true causes the encoder - hardware to reset the count to zero on the next encoder index pulse. - The driver will detect this and set the signal back to false. -* '(PPMC float output) ppmc..DAC..value' - sends a - signed value to the 16-bit Digital to Analog Converter on the PPMC DAC16 - board commanding the analog output voltage of that DAC channel. -* '(UPC bit input) ppmc..pwm..enable' - Enables a - PWM generator. -* '(UPC float input) ppmc..pwm..value' - Value - which determines the duty cycle of the PWM waveforms. The - value is divided by 'pwm..scale', and if the result is 0.6 - the duty cycle will be 60%, and so on. - Negative values result in the duty cycle being based on the absolute - value, and the direction pin is set to indicate negative. -* '(USC bit input) ppmc..stepgen..enable' - - Enables a step pulse generator. -* '(USC float input) ppmc..stepgen..velocity' - - Value which determines the step frequency. The value is multiplied - by 'stepgen..scale' , and the result is the frequency in - steps per second. Negative values - result in the frequency being based on the absolute value, and the - direction pin is set to indicate negative. -* '(All bit output) ppmc..din..in' - State of digital - input pin, see canonical digital input. -* '(All bit output) ppmc..din..in-not' - Inverted - state of digital input pin, see canonical digital input. -* '(All bit input) ppmc..dout..out' - Value to be - written to digital output, see canonical digital output. -* '(Option float input) ppmc..DAC8-.value' - Value to - be written to analog output, range from 0 to 255. This - sends 8 output bits to J8, which should have a Spindle DAC board - connected to it. 0 corresponds to zero Volts, 255 corresponds to 10 - Volts. The polarity of the output can be set for always minus, always - plus, or can be controlled by the state of SSR1 (plus when on) and SSR2 - (minus when on). You must specify extradac = 0x00 on the HAL command - line that loads the PPMC driver to enable this function on the first - USC ur UPC board. -* '(Option bit input) ppmc..dout..out' - Value to be - written to one of the 8 extra digital output pins on - J8. You must specify extradout = 0x00 on the HAL command line that - loads the ppmc driver to enable this function on the first USC or UPC - board. extradac and extradout are mutually exclusive features as they - use the same signal lines for different purposes. These output pins - will be enumerated after the standard digital outputs of the board. - -== Parameters - -* '(All float) ppmc..enc..scale' - The number of - counts / user unit (to convert from counts to units). -* '(UPC float) ppmc..pwm..freq' - The PWM - carrier frequency, in Hz. Applies to a group of four - consecutive PWM generators, as indicated by ''. Minimum - is 610Hz, maximum is 500KHz. -* '(PPMC float) ppmc..DAC..scale' - Sets scale - of DAC16 output channel such that an output value equal to the 1/scale - value will produce an output of + or - value Volts. So, if the scale - parameter is 0.1 and you send a value of 0.5, the output will be 5.0 Volts. -* '(UPC float) ppmc..pwm..scale' - Scaling for PWM - generator. If 'scale' is X, then the duty cycle will be 100% when the - 'value' pin is X (or -X). -* '(UPC float) ppmc..pwm..max-dc' - Maximum duty - cycle, from 0.0 to 1.0. -* '(UPC float) ppmc..pwm..min-dc' - Minimum duty - cycle, from 0.0 to 1.0. -* '(UPC float) ppmc..pwm..duty-cycle' - Actual duty - cycle (used mostly for troubleshooting.) -* '(UPC bit) ppmc..pwm..bootstrap' - If true, the - PWM generator will generate a short sequence of - pulses of both polarities when E-stop goes false, to charge the - bootstrap capacitors used on some MOSFET gate drivers. -* '(USC u32) ppmc..stepgen..setup-time' - Sets - minimum time between direction change and step pulse, in - units of 100ns. Applies to a group of four consecutive step generators, - as indicated by ''. -* '(USC u32) ppmc..stepgen..pulse-width' - Sets - width of step pulses, in units of 100ns. Applies to a group - of four consecutive step generators, as indicated by ''. -* '(USC u32) ppmc..stepgen..pulse-space-min' - Sets - minimum time between pulses, in units of 100ns. - Applies to a group of four consecutive step generators, as indicated by - ''. The maximum step rate is: - image:images/pico-ppmc-math.png[] -* '(USC float) ppmc..stepgen..scale' - Scaling for - step pulse generator. The step frequency in Hz is the - absolute value of 'velocity' * 'scale'. -* '(USC float) ppmc..stepgen..max-vel' - The maximum - value for 'velocity'. Commands greater than 'max-vel' will be clamped. - Also applies to negative values. (The absolute value is clamped.) -* '(USC float) ppmc..stepgen..frequency' - Actual - step pulse frequency in Hz (used mostly for troubleshooting.) -* '(Option float) ppmc..DAC8..scale' - Sets scale - of extra DAC output such that an output value equal to - scale gives a magnitude of 10.0 V output. (The sign of the output is - set by jumpers and/or other digital outputs.) -* '(Option bit) ppmc..dout..invert' - Inverts a - digital output, see canonical digital output. -* '(Option bit) ppmc..dout..invert' - Inverts a - digital output pin of J8, see canonical digital output. - -== Functions - -* '(All funct) ppmc..read' - Reads all inputs (digital inputs - and encoder counters) on one port. These reads are organized into - blocks of contiguous registers to be read in a block to - minimize CPU overhead. -* '(All funct) ppmc..write' - Writes all outputs (digital - outputs, stepgens, PWMs) on one port. - These writes are organized into blocks of contiguous registers to be - written in a block to minimize CPU overhead. - - diff --git a/docs/src/drivers/pico_ppmc_fr.txt b/docs/src/drivers/pico_ppmc_fr.txt deleted file mode 100644 index fb5d2e50c4f..00000000000 --- a/docs/src/drivers/pico_ppmc_fr.txt +++ /dev/null @@ -1,175 +0,0 @@ -:lang: fr -:toc: - -= Pico PPMC - -[[cha:pico-drivers]] (((Pico PPMC Driver))) - -Le _Pico Systems_ est une famille de cartes pour contrôler les servos analogiques, -les moteurs pas à pas et les servos numériques pilotés en PWM. Les cartes -se connectent sur le PC par le port parallèle configuré en mode EPP. Bien que -la plupart des utilisateurs ne connectent qu'une seule carte par port -parallèle, en théorie toutes les combinaisons de cartes entre 8 et 16 peuvent -être utilisées sur un seul port parallèle. Un pilote servant pour tous les -types de cartes. La combinaison finale d'entrées/sorties dépends du nombre de -cartes installées. Le pilote ne distingue pas entre les cartes, il s'agit -simplement d'un numéro de canal d'entrées/sorties (codeur, etc) commençant à 0 -sur la première carte. - -Installation: ----- - loadrt hal_ppmc port_addr=[,[,...]] ----- - -Le paramètres _port_addr_ indique au pilote quel port parallèle utiliser. -Par défaut, __ est en 0x0378, __ et les suivantes ne sont pas -utilisées. Le pilote cherche sur l'espace entier de l'adresse du port -parallèle étendu (EPP) indiquée par _port_addr_, scrutant pour toute carte(s) -de la famille PPMC. Il exporte ensuite les pins de HAL de tout ce qu'il a trouvé. -Durant le chargement, ou la tentative de chargement, le pilote affiche tous -les messages de débogage utiles dans le log du noyau, qui pourra être visualisé -avec _dmesg_. - -Un maximum de 3 bus parport peuvent êtres utilisés, et chaque bus peut recevoir -un maximum de 8 périphériques. - -== Pins - -Dans ce qui suit, pour les pins, les paramètres et les fonctions, -représente l'ID de la carte. Selon nos conventions de nommage, la première carte -devrait toujours avoir l'ID zéro. Toutefois, le driver fixera l'ID en se basant -sur les switches de la carte, de sorte qu'il peut être différent de zéro même si -il n'y a qu'une seule carte. - -_(All s32 output) ppmc..encoder..count_:: - Position codeur, en nombre de top comptés. -_(all s32 output) ppmc..encoder..delta_:: - Différence de top comptés depuis la dernière lecture, en unités brutes de - comptage codeur. -_(All float output) ppmc..encoder..velocity_:: - Vitesse mise à l'échelle en unités utilisateur par seconde. Sur PPMC et USC - ces valeurs sont dérivées du nombre de top codeur par période servo, elle est - donc affectée par la granularité du codeur. Sur les cartes UPC avec les - micro-logiciels du 21/08/09 et suivants, la vitesse est estimée par - timestamping sur le comptage du codeur, ce qui peut être utilisé pour - accroitre la finesse de cette sortie vitesse. Cela peut être régulé par - un composant PID de HAL pour produire une réponse servo plus stable. Cette - fonction doit être validée dans la ligne de commande HAL qui démarre le - pilote PPMC, avec une option _timestamp=0x00_. -_(All float output) ppmc..encoder..position_:: - Position codeur, en unités utilisateur. -_(All bit bidir) ppmc..encoder..index-enable_:: - Connecte l'index _axis.#.index-enable_ pour _home-to-index_. C'et un signal - de HAL bi-directionnel. Le fixer à TRUE, causera une remise à zéro hardware - du codeur sur la prochaine impulsion d'index du codeur. - Le pilote détectera cela et remettra le signal sur FALSE. -_(UPC bit input) ppmc..pwm..enable_:: - Active un générateur de PWM. -_(UPC float input) ppmc..pwm..value_:: - Valeur qui détermine le rapport cyclique de l'onde PWM. La valeur est - divisée par _pwm..scale_, par exemple, si le résultat est - 0.6, le rapport cyclique sera de 60%, et ainsi de suite. - Les valeurs de rapport cyclique négatives finiront en valeurs absolues, la - pin de direction sera positionnée pour indiquer ce négatif. -_(USC bit input) ppmc..stepgen..enable_:: - Active un générateur d'impulsions de pas. -_(USC float input) ppmc..stepgen..velocity_:: - Valeur qui détermine la fréquence des pas. La valeur est multipliée - par _stepgen..scale_ et le résultat est la fréquence, en pas par - seconde. Des valeurs négatives résultera une fréquence basée sur une valeur - absolue, la pin de direction sera positionnée pour indiquer ce négatif. -_(All bit output) ppmc..in-_:: - État d'une pin d'entrée numérique, voir l'entrée numérique canonique. -_(All bit input) ppmc..in.-not_:: - État inversé d'une pin d'entrée numérique, voir l'entrée numérique - canonique. -_(All bit output) ppmc..out-_:: - Valeur à écrire sur une sortie numérique, voir la sortie numérique - canonique. -_(Option float output) ppmc..DAC8-.value_:: - Valeur à écrire sur une sortie analogique, étendue entre 0 et 255. - Ce qui envoie 8 bits de sortie sur J8, sur lequel doit être connectée une - carte DAC de broche. 0 corresponds à zéro Volts, 255 corresponds à 10 Volts. - La polarité de la sortie peut être fixée toujours négative, toujours - positive, ou elle peut être contrôlée par l'état de SSR1 (positive quand - _on_) et SSR2 (négative quand _on_). Vous devez spécifier - _extradac = 0x00_ sur la ligne de commande HAL qui charge le pilote - PPMC pour valider cette fonction sur la première carte USC ou UPC. -_(Option bit input) ppmc..dout-.out_:: - Valeur à écrire sur une des 8 pins de sorties extra numériques de J8. - Vous devez spécifier _extradout = 0x00_ sur la ligne de commande HAL qui - charge le pilote PPMC pour valider cette fonction sur la première carte - USC ou UPC. _extradac_ et _extradout_ sont des caractéristiques - mutuellement exclusives comme elles utilisent les mêmes lignes de signal à - des fins différentes.Ces pins de sortie seront énumérées après les sorties - numériques standards de la carte. - -== Paramètres - -_(All float) ppmc..enc..scale_:: - Nombre de tops codeur par unité utilisateur (pour les conversions - depuis le nombre d'unités). -_(UPC float) ppmc..pwm..freq_:: - Fréquence porteuse de la PWM, en Hz. S'applique à un groupe de quatre - générateurs de PWM consécutifs, indiqués par __. - Le minimum est de 610Hz, le maximum est de 500KHz. -_(UPC float) ppmc..pwm..scale_:: - Échelle pour générateur de - PWM. Si _scale_ vaut X, alors le rapport cyclique sera de 100% quand - _value_ de la pin vaudra X (ou -X). -_(UPC float) ppmc..pwm..max-dc_:: - Rapport cyclique maximum, compris entre 0.0 et 1.0. -_(UPC float) ppmc..pwm..min-dc_:: - Rapport cyclique minimum, compris entre 0.0 et 1.0. -_(UPC float) ppmc..pwm..duty-cycle_:: - Rapport cyclique actuel (utilisé surtout pour la maintenance) -_(UPC bit) ppmc..pwm..bootstrap_:: - Si true, le générateur de PWM générera une courte séquence d'impulsions - dans les deux polarités quand l'Arrêt d'Urgence sera activé, pour charger - les capacités de bootstrap utilisées par certains pilotes à portes MOSFET. -_(USC u32) ppmc..stepgen..setup-time_:: - Fixe le temps minimum, entre l'impulsion de changement de direction et - l'impulsion de pas, en unités de 100ns. S'applique à un groupe de quatre - générateurs de PWM consécutifs, comme indiqué par __. -_(USC u32) ppmc..stepgen..pulse-width_:: - Fixe la largeur des impulsions de pas, en unité de 100ns. S'applique à un - groupe de quatre générateurs de PWM consécutifs, comme indiqué par - __. -_(USC u32) ppmc..stepgen..pulse-space-min_:: - Fixe le temps minimum entre les impulsions, en unité de 100ns. S'applique - à un groupe de quatre générateurs de PWM consécutifs, comme indiqué - par __. - Le ratio maximum est: -// latexmath:[$ \frac{1}{ ( 100ns * ( _pulse-width_ + _pulse-space-min_ )) } $]. - *+1 / (100ns * (pulse-width + pulse-space-min))+* -_(USC float) ppmc..stepgen..scale_:: - Échelle pour générateur d'impulsions de pas. La fréquence des pas est - en Hz, c'est la valeur absolue de _vitesse_ * _échelle_. -_(USC float) ppmc..stepgen..max-vel_:: - La valeur maximum de _velocity_. Les consignes supérieures à _max-vel_, - lui seront clampées. S'applique également aux valeurs négatives. - (La valeur absolue est clampée.) -_(USC float) ppmc..stepgen..frequency_:: - Fréquence de pas actuelle en Hz (utilisé principalement pour la maintenance) -_(Option float) ppmc..DAC8..scale_:: - Fixe l'échelle d'une sortie extra DAC, de sorte qu'une valeur de sortie - égale à l'échelle fournisse une amplitude de sortie de 10.0 V. - (Le signe de la sortie est fixé par cavaliers et/ou une autre sortie - numérique) -_(Option bit) ppmc..out.-invert_:: - Inverse une sortie numérique, voir la sortie numérique canonique. -_(Option bit) ppmc..dout.-invert_:: - Inverse une sortie numérique de J8, voir la sortie numérique canonique. - -== Fonctions - -_(All funct) ppmc..read_:: - Lit toutes les entrées (entrées numériques et top de codeurs) sur un port. - Ces lectures sont organisées par blocs de registres contigus, pour éviter - au maximum de charger le CPU. -_(All funct) ppmc..write_:: - Écrit toutes les sorties (sorties numériques, générateurs de pas et - de PWM) sur un port. Ces lectures sont organisées par blocs de registres - contigus, pour éviter au maximum de charger le CPU. - - diff --git a/docs/src/drivers/pluto_p.txt b/docs/src/drivers/pluto_p.txt deleted file mode 100644 index 03ad8c26f97..00000000000 --- a/docs/src/drivers/pluto_p.txt +++ /dev/null @@ -1,291 +0,0 @@ -= Pluto P Driver - -[[cha:pluto-p-driver]] (((Pluto P Driver))) - -== General Info - -The Pluto-P is a FPGA board featuring the -ACEX1K(((ACEX1K))) chip from Altera. - -=== Requirements - -. A Pluto-P board -. An EPP-compatible parallel port, configured for EPP mode in the system BIOS - or a PCI EPP compatible parallel port card. - -[NOTE] -The Pluto P board requires EPP mode. Netmos98xx chips do not work in EPP mode. -The Pluto P board will work on some computers and not on others. -There is no known pattern to which computers work and which don't work. - -For more information on PCI EPP compatible parallel port cards see the -http://wiki.linuxcnc.org/cgi-bin/wiki.pl?LinuxCNC_Supported_Hardware[LinuxCNC -Supported Hardware] page on the wiki. - -=== Connectors - -* The Pluto-P board is shipped with the left connector presoldered, with - the key in the indicated position. The other connectors are - unpopulated. There does not seem to be a standard 12-pin IDC connector, - but some of the pins of a 16P connector can hang off the board next to - QA3/QZ3. -* The bottom and right connectors are on the same .1" grid, but the left - connector is not. If OUT2…OUT9 are not required, a single IDC connector - can span the bottom connector and the bottom two rows of the right - connector. - -=== Physical Pins - -* Read the ACEX1K datasheet for information about input and output - voltage thresholds. The pins are all configured in 'LVTTL/LVCMOS' mode - and are generally compatible with 5V TTL logic. -* Before configuration and after properly exiting LinuxCNC, all Pluto-P pins - are tristated with weak pull-ups (20k-ohms min, 50k-ohms max). If the - watchdog timer is enabled (the default), - these pins are also tristated after an interruption of communication - between LinuxCNC and the board. The watchdog timer takes approximately - 6.5ms to activate. However, software bugs in the pluto_servo firmware - or LinuxCNC can leave the Pluto-P pins in an undefined state. -* In pwm+dir mode, by default dir is HIGH for negative values and LOW - for positive values. To select HIGH for positive values and LOW for - negative values, set the corresponding dout-NN-invert parameter TRUE to - invert the signal. -* The index input is triggered on the rising edge. Initial testing has - shown that the QZx inputs are particularly noise sensitive, due to - being polled every 25ns. Digital filtering has been added to filter - pulses shorter than 175ns (seven polling times). Additional external - filtering on all input pins, such as a Schmitt buffer or inverter, RC - filter, or differential receiver (if applicable) is recommended. -* The IN1…IN7 pins have 22-ohm series resistors to their associated FPGA - pins. No other pins have any sort of protection for out-of-spec - voltages or currents. It is up to the integrator to add appropriate - isolation and protection. Traditional parallel port optoisolator boards - do not work with pluto_servo due to the bidirectional nature of the EPP - protocol. - -=== LED - -* When the device is unprogrammed, the LED glows faintly. When the - device is programmed, the LED glows according to the duty cycle of PWM0 - ('LED' = 'UP0' 'xor' 'DOWN0') or STEPGEN0 ('LED' = 'STEP0' 'xor' - 'DIR0'). - -=== Power - -* A small amount of current may be drawn from VCC. The available current - depends on the unregulated DC input to the board. Alternately, - regulated +3.3VDC may be supplied to the FPGA through these VCC pins. - The required current is not yet known, but is probably around 50mA plus - I/O current. -* The regulator on the Pluto-P board is a low-dropout type. Supplying 5V - at the power jack will allow the regulator to work properly. - -=== PC interface - -* Only a single pluto_servo or pluto_step board is supported. - -=== Rebuilding the FPGA firmware - -The 'src/hal/drivers/pluto_servo_firmware/' and -'src/hal/drivers/pluto_step_firmware/' subdirectories contain the -Verilog source code plus additional files -used by Quartus for the FPGA firmwares. Altera's Quartus II software is -required to rebuild the FPGA firmware. To rebuild the firmware from the - .hdl and other source files, open the '.qpf' file and press CTRL-L. -Then, recompile LinuxCNC. - -Like the HAL hardware driver, the FPGA firmware is licensed under the -terms of the GNU General Public License. - -The gratis version of Quartus II runs only on Microsoft Windows, -although there is apparently a paid version that runs on Linux. - -=== For more information - -Some additional information about it is available from -http://www.knjn.com/FPGA-Parallel.html[KNJC LLC] -and from http://emergent.unpy.net/01165081407[the developer's blog]. - -== Pluto Servo[[sec:pluto-servo]](((pluto-servo))) - -The pluto_servo system is suitable for control of a 4-axis CNC mill -with servo motors, a 3-axis mill with PWM spindle control, a lathe with -spindle encoder, etc. The large number of inputs allows a full set of -limit switches. - -This driver features: - -* 4 quadrature channels with 40MHz sample rate. The counters operate in - '4x' mode. The maximum useful quadrature rate is 8191 counts per LinuxCNC - servo cycle, or about 8MHz for LinuxCNC's default 1ms servo rate. -* 4 PWM channels, 'up/down' or 'pwm+dir' style. 4095 duty cycles from - -100% to +100%, including 0%. The PWM period is approximately 19.5kHz - (40MHz / 2047). A PDM-like mode is also available. -* 18 digital outputs: 10 dedicated, 8 shared with PWM functions. - (Example: A lathe with unidirectional PWM spindle control may use 13 - total digital outputs) -* 20 digital inputs: 8 dedicated, 12 shared with Quadrature functions. - (Example: A lathe with index pulse only on the spindle may use 13 total - digital inputs) -* EPP communication with the PC. The EPP communication typically takes - around 100 us on machines tested so far, enabling servo rates above - 1kHz. - -=== Pinout - -* 'UPx' - The 'up' (up/down mode) or 'pwm' (pwm+direction mode) signal from PWM - generator X. May be used as a digital output if the corresponding PWM - channel is unused, or the output on the channel is always negative. The - corresponding digital output invert may be set to TRUE to make UPx - active low rather than active high. - -* 'DNx' - The 'down' (up/down mode) or 'direction' (pwm+direction mode) signal - from PWM generator X. May be used as a digital output if the - corresponding PWM channel is unused, or the output on the channel is - never negative. The corresponding digital ouput invert may be set to - TRUE to make DNx active low rather than active high. - -* 'QAx, QBx' - The A and B signals for Quadrature counter X. May be used as a digital - input if the corresponding quadrature channel is unused. - -* 'QZx' - The Z (index) signal for quadrature counter X. May be used as a - digital input if the index feature of the corresponding quadrature - channel is unused. - -* 'INx' - Dedicated digital input #x - -* 'OUTx' - Dedicated digital output #x - -* 'GND' - Ground - -* 'VCC' - +3.3V regulated DC - -.Pluto-Servo Pinout(((pluto-servo pinout)))[[fig:Pluto-Servo-Pinout]] - -image::images/pluto-pinout.png[align="center"] - -.Pluto-Servo Alternate Pin Functions[[table:Pluto-Servo-Alternate-Pin]](((pluto-servo alternate pin functions))) - -[width="90%", options="header"] -|======================================== -|Primary function | Alternate Function | Behavior if both functions used -|*UP0* | PWM0 | When pwm-0-pwmdir is TRUE, this pin is the PWM output -| | OUT10 | XOR'd with UP0 or PWM0 -|*UP1* | PWM1 | When pwm-1-pwmdir is TRUE, this pin is the PWM output -| | OUT12 | XOR'd with UP1 or PWM1 -|*UP2* | PWM2 | When pwm-2-pwmdir is TRUE, this pin is the PWM output -| | OUT14 | XOR'd with UP2 or PWM2 -|*UP3* | PWM3 | When pwm-3-pwmdir is TRUE, this pin is the PWM output -| | OUT16 | XOR'd with UP3 or PWM3 -|*DN0* | DIR0 | When pwm-0-pwmdir is TRUE, this pin is the DIR output -| | OUT11 | XOR'd with DN0 or DIR0 -|*DN1* | DIR1 | When pwm-1-pwmdir is TRUE, this pin is the DIR output -| | OUT13 | XOR'd with DN1 or DIR1 -|*DN2* | DIR2 | When pwm-2-pwmdir is TRUE, this pin is the DIR output -| | OUT15 | XOR'd with DN2 or DIR2 -|*DN3* | DIR3 | When pwm-3-pwmdir is TRUE, this pin is the DIR output -| | OUT17 | XOR'd with DN3 or DIR3 -|*QZ0* | IN8 | Read same value -|*QZ1* | IN9 | Read same value -|*QZ2* | IN10 | Read same value -|*QZ3* | IN11 | Read same value -|*QA0* | IN12 | Read same value -|*QA1* | IN13 | Read same value -|*QA2* | IN14 | Read same value -|*QA3* | IN15 | Read same value -|*QB0* | IN16 | Read same value -|*QB1* | IN17 | Read same value -|*QB2* | IN18 | Read same value -|*QB3* | IN19 | Read same value -|======================================== - -=== Input latching and output updating - -* PWM duty cycles for each channel are updated at different times. -* Digital outputs OUT0 through OUT9 are all updated at the same time. - Digital outputs OUT10 through OUT17 are updated at the same time as the - pwm function they are shared with. -* Digital inputs IN0 through IN19 are all latched at the same time. -* Quadrature positions for each channel are latched at different times. - -=== HAL Functions, Pins and Parameters - -A list of all 'loadrt' arguments, HAL function names, pin names and -parameter names is in the manual page, 'pluto_servo.9'. - -=== Compatible driver hardware - -A schematic for a 2A, 2-axis PWM servo amplifier board is available from the -(http://emergent.unpy.net/projects/01148303608[the software developer]). -The L298 H-Bridge can be used for motors up to 4A (one motor per -L298) or up to 2A (two motors per L298) with the supply voltage up to -46V. However, the L298 does not have built-in current limiting, a -problem for motors with high stall currents. For higher currents and -voltages, some users have reported success with International -Rectifier's integrated high-side/low-side drivers. - -== Pluto Step[[sec:Pluto-step:-Hardware-step]](((pluto-step))) - -Pluto-step is suitable for control of a 3- or 4-axis CNC mill with -stepper motors. The large number of inputs allows for a full set of -limit switches. - -The board features: - -* 4 'step+direction' channels with 312.5kHz maximum step rate, - programmable step length, space, and direction change times -* 14 dedicated digital outputs -* 16 dedicated digital inputs -* EPP communication with the PC - -=== Pinout - -* 'STEPx' - The 'step' (clock) output of stepgen channel 'x' - -* 'DIRx' - The 'direction' output of stepgen channel 'x' - -* 'INx' - Dedicated digital input #x - -* 'OUTx' - Dedicated digital output #x - -* 'GND' - Ground - -* 'VCC' - +3.3V regulated DC - -While the 'extended main connector' has a superset of signals usually -found on a Step & Direction DB25 connector--4 step generators, 9 -inputs, and 6 general-purpose outputs--the layout on this header is -different than the layout of a standard 26-pin ribbon cable to DB25 -connector. - -.Pluto-Step Pinout[[fig:Pluto-Step-Pinout]](((pluto-step pinout))) - -image::images/pluto-step-pinout.png[align="center"] - -=== Input latching and output updating - -* Step frequencies for each channel are updated at different times. -* Digital outputs are all updated at the same time. -* Digital inputs are all latched at the same time. -* Feedback positions for each channel are latched at different times. - -=== Step Waveform Timings - -The firmware and driver enforce step length, space, and direction -change times. Timings are rounded up to the next multiple of -1.6μs, with a maximum of 49.6μs. The timings -are the same as for the software stepgen component, except that -'dirhold' and 'dirsetup' have been merged into a single parameter -'dirtime' which should be the maximum of the two, and that the same -step timings are always applied to all channels. - -.Pluto-Step Timings[[fig:Pluto-Step-Timings]](((pluto-step timings))) - -image::images/pluto_step_waveform.png[align="center"] - -=== HAL Functions, Pins and Parameters - -A list of all 'loadrt' arguments, HAL function names, pin names and -parameter names is in the manual page, 'pluto_step.9'. - - diff --git a/docs/src/drivers/pluto_p_es.txt b/docs/src/drivers/pluto_p_es.txt deleted file mode 100644 index fa5809829b6..00000000000 --- a/docs/src/drivers/pluto_p_es.txt +++ /dev/null @@ -1,304 +0,0 @@ -= Pluto P Driver - -[[cha:pluto-p-driver]] (((Pluto P Driver))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== General Info - -The Pluto-P is a FPGA board featuring the -ACEX1K(((ACEX1K))) chip from Altera. - -=== Requirements - -. A Pluto-P board -. An EPP-compatible parallel port, configured for EPP mode in the system BIOS - or a PCI EPP compatible parallel port card. - -[NOTE] -The Pluto P board requires EPP mode. Netmos98xx chips do not work in EPP mode. -The Pluto P board will work on some computers and not on others. -There is no known pattern to which computers work and which don't work. - -For more information on PCI EPP compatible parallel port cards see the -http://wiki.linuxcnc.org/cgi-bin/wiki.pl?LinuxCNC_Supported_Hardware[LinuxCNC -Supported Hardware] page on the wiki. - -=== Connectors - -* The Pluto-P board is shipped with the left connector presoldered, with - the key in the indicated position. The other connectors are - unpopulated. There does not seem to be a standard 12-pin IDC connector, - but some of the pins of a 16P connector can hang off the board next to - QA3/QZ3. -* The bottom and right connectors are on the same .1" grid, but the left - connector is not. If OUT2…OUT9 are not required, a single IDC connector - can span the bottom connector and the bottom two rows of the right - connector. - -=== Physical Pins - -* Read the ACEX1K datasheet for information about input and output - voltage thresholds. The pins are all configured in 'LVTTL/LVCMOS' mode - and are generally compatible with 5V TTL logic. -* Before configuration and after properly exiting LinuxCNC, all Pluto-P pins - are tristated with weak pull-ups (20k-ohms min, 50k-ohms max). If the - watchdog timer is enabled (the default), - these pins are also tristated after an interruption of communication - between LinuxCNC and the board. The watchdog timer takes approximately - 6.5ms to activate. However, software bugs in the pluto_servo firmware - or LinuxCNC can leave the Pluto-P pins in an undefined state. -* In pwm+dir mode, by default dir is HIGH for negative values and LOW - for positive values. To select HIGH for positive values and LOW for - negative values, set the corresponding dout-NN-invert parameter TRUE to - invert the signal. -* The index input is triggered on the rising edge. Initial testing has - shown that the QZx inputs are particularly noise sensitive, due to - being polled every 25ns. Digital filtering has been added to filter - pulses shorter than 175ns (seven polling times). Additional external - filtering on all input pins, such as a Schmitt buffer or inverter, RC - filter, or differential receiver (if applicable) is recommended. -* The IN1…IN7 pins have 22-ohm series resistors to their associated FPGA - pins. No other pins have any sort of protection for out-of-spec - voltages or currents. It is up to the integrator to add appropriate - isolation and protection. Traditional parallel port optoisolator boards - do not work with pluto_servo due to the bidirectional nature of the EPP - protocol. - -=== LED - -* When the device is unprogrammed, the LED glows faintly. When the - device is programmed, the LED glows according to the duty cycle of PWM0 - ('LED' = 'UP0' 'xor' 'DOWN0') or STEPGEN0 ('LED' = 'STEP0' 'xor' - 'DIR0'). - -=== Power - -* A small amount of current may be drawn from VCC. The available current - depends on the unregulated DC input to the board. Alternately, - regulated +3.3VDC may be supplied to the FPGA through these VCC pins. - The required current is not yet known, but is probably around 50mA plus - I/O current. -* The regulator on the Pluto-P board is a low-dropout type. Supplying 5V - at the power jack will allow the regulator to work properly. - -=== PC interface - -* Only a single pluto_servo or pluto_step board is supported. - -=== Rebuilding the FPGA firmware - -The 'src/hal/drivers/pluto_servo_firmware/' and -'src/hal/drivers/pluto_step_firmware/' subdirectories contain the -Verilog source code plus additional files -used by Quartus for the FPGA firmwares. Altera's Quartus II software is -required to rebuild the FPGA firmware. To rebuild the firmware from the - .hdl and other source files, open the '.qpf' file and press CTRL-L. -Then, recompile LinuxCNC. - -Like the HAL hardware driver, the FPGA firmware is licensed under the -terms of the GNU General Public License. - -The gratis version of Quartus II runs only on Microsoft Windows, -although there is apparently a paid version that runs on Linux. - -=== For more information - -Some additional information about it is available from -http://www.knjn.com/FPGA-Parallel.html[KNJC LLC] -and from http://emergent.unpy.net/01165081407[the developer's blog]. - -== Pluto Servo[[sec:pluto-servo]](((pluto-servo))) - -The pluto_servo system is suitable for control of a 4-axis CNC mill -with servo motors, a 3-axis mill with PWM spindle control, a lathe with -spindle encoder, etc. The large number of inputs allows a full set of -limit switches. - -This driver features: - -* 4 quadrature channels with 40MHz sample rate. The counters operate in - '4x' mode. The maximum useful quadrature rate is 8191 counts per LinuxCNC - servo cycle, or about 8MHz for LinuxCNC's default 1ms servo rate. -* 4 PWM channels, 'up/down' or 'pwm+dir' style. 4095 duty cycles from - -100% to +100%, including 0%. The PWM period is approximately 19.5kHz - (40MHz / 2047). A PDM-like mode is also available. -* 18 digital outputs: 10 dedicated, 8 shared with PWM functions. - (Example: A lathe with unidirectional PWM spindle control may use 13 - total digital outputs) -* 20 digital inputs: 8 dedicated, 12 shared with Quadrature functions. - (Example: A lathe with index pulse only on the spindle may use 13 total - digital inputs) -* EPP communication with the PC. The EPP communication typically takes - around 100 us on machines tested so far, enabling servo rates above - 1kHz. - -=== Pinout - -* 'UPx' - The 'up' (up/down mode) or 'pwm' (pwm+direction mode) signal from PWM - generator X. May be used as a digital output if the corresponding PWM - channel is unused, or the output on the channel is always negative. The - corresponding digital output invert may be set to TRUE to make UPx - active low rather than active high. - -* 'DNx' - The 'down' (up/down mode) or 'direction' (pwm+direction mode) signal - from PWM generator X. May be used as a digital output if the - corresponding PWM channel is unused, or the output on the channel is - never negative. The corresponding digital ouput invert may be set to - TRUE to make DNx active low rather than active high. - -* 'QAx, QBx' - The A and B signals for Quadrature counter X. May be used as a digital - input if the corresponding quadrature channel is unused. - -* 'QZx' - The Z (index) signal for quadrature counter X. May be used as a - digital input if the index feature of the corresponding quadrature - channel is unused. - -* 'INx' - Dedicated digital input #x - -* 'OUTx' - Dedicated digital output #x - -* 'GND' - Ground - -* 'VCC' - +3.3V regulated DC - -.Pluto-Servo Pinout(((pluto-servo pinout)))[[fig:Pluto-Servo-Pinout]] - -image::images/pluto-pinout.png[align="center"] - -.Pluto-Servo Alternate Pin Functions[[table:Pluto-Servo-Alternate-Pin]](((pluto-servo alternate pin functions))) - -[width="90%", options="header"] -|======================================== -|Primary function | Alternate Function | Behavior if both functions used -|*UP0* | PWM0 | When pwm-0-pwmdir is TRUE, this pin is the PWM output -| | OUT10 | XOR'd with UP0 or PWM0 -|*UP1* | PWM1 | When pwm-1-pwmdir is TRUE, this pin is the PWM output -| | OUT12 | XOR'd with UP1 or PWM1 -|*UP2* | PWM2 | When pwm-2-pwmdir is TRUE, this pin is the PWM output -| | OUT14 | XOR'd with UP2 or PWM2 -|*UP3* | PWM3 | When pwm-3-pwmdir is TRUE, this pin is the PWM output -| | OUT16 | XOR'd with UP3 or PWM3 -|*DN0* | DIR0 | When pwm-0-pwmdir is TRUE, this pin is the DIR output -| | OUT11 | XOR'd with DN0 or DIR0 -|*DN1* | DIR1 | When pwm-1-pwmdir is TRUE, this pin is the DIR output -| | OUT13 | XOR'd with DN1 or DIR1 -|*DN2* | DIR2 | When pwm-2-pwmdir is TRUE, this pin is the DIR output -| | OUT15 | XOR'd with DN2 or DIR2 -|*DN3* | DIR3 | When pwm-3-pwmdir is TRUE, this pin is the DIR output -| | OUT17 | XOR'd with DN3 or DIR3 -|*QZ0* | IN8 | Read same value -|*QZ1* | IN9 | Read same value -|*QZ2* | IN10 | Read same value -|*QZ3* | IN11 | Read same value -|*QA0* | IN12 | Read same value -|*QA1* | IN13 | Read same value -|*QA2* | IN14 | Read same value -|*QA3* | IN15 | Read same value -|*QB0* | IN16 | Read same value -|*QB1* | IN17 | Read same value -|*QB2* | IN18 | Read same value -|*QB3* | IN19 | Read same value -|======================================== - -=== Input latching and output updating - -* PWM duty cycles for each channel are updated at different times. -* Digital outputs OUT0 through OUT9 are all updated at the same time. - Digital outputs OUT10 through OUT17 are updated at the same time as the - pwm function they are shared with. -* Digital inputs IN0 through IN19 are all latched at the same time. -* Quadrature positions for each channel are latched at different times. - -=== HAL Functions, Pins and Parameters - -A list of all 'loadrt' arguments, HAL function names, pin names and -parameter names is in the manual page, 'pluto_servo.9'. - -=== Compatible driver hardware - -A schematic for a 2A, 2-axis PWM servo amplifier board is available from the -(http://emergent.unpy.net/projects/01148303608[the software developer]). -The L298 H-Bridge can be used for motors up to 4A (one motor per -L298) or up to 2A (two motors per L298) with the supply voltage up to -46V. However, the L298 does not have built-in current limiting, a -problem for motors with high stall currents. For higher currents and -voltages, some users have reported success with International -Rectifier's integrated high-side/low-side drivers. - -== Pluto Step[[sec:Pluto-step:-Hardware-step]](((pluto-step))) - -Pluto-step is suitable for control of a 3- or 4-axis CNC mill with -stepper motors. The large number of inputs allows for a full set of -limit switches. - -The board features: - -* 4 'step+direction' channels with 312.5kHz maximum step rate, - programmable step length, space, and direction change times -* 14 dedicated digital outputs -* 16 dedicated digital inputs -* EPP communication with the PC - -=== Pinout - -* 'STEPx' - The 'step' (clock) output of stepgen channel 'x' - -* 'DIRx' - The 'direction' output of stepgen channel 'x' - -* 'INx' - Dedicated digital input #x - -* 'OUTx' - Dedicated digital output #x - -* 'GND' - Ground - -* 'VCC' - +3.3V regulated DC - -While the 'extended main connector' has a superset of signals usually -found on a Step & Direction DB25 connector--4 step generators, 9 -inputs, and 6 general-purpose outputs--the layout on this header is -different than the layout of a standard 26-pin ribbon cable to DB25 -connector. - -.Pluto-Step Pinout[[fig:Pluto-Step-Pinout]](((pluto-step pinout))) - -image::images/pluto-step-pinout.png[align="center"] - -=== Input latching and output updating - -* Step frequencies for each channel are updated at different times. -* Digital outputs are all updated at the same time. -* Digital inputs are all latched at the same time. -* Feedback positions for each channel are latched at different times. - -=== Step Waveform Timings - -The firmware and driver enforce step length, space, and direction -change times. Timings are rounded up to the next multiple of -1.6μs, with a maximum of 49.6μs. The timings -are the same as for the software stepgen component, except that -'dirhold' and 'dirsetup' have been merged into a single parameter -'dirtime' which should be the maximum of the two, and that the same -step timings are always applied to all channels. - -.Pluto-Step Timings[[fig:Pluto-Step-Timings]](((pluto-step timings))) - -image::images/pluto_step_waveform.png[align="center"] - -=== HAL Functions, Pins and Parameters - -A list of all 'loadrt' arguments, HAL function names, pin names and -parameter names is in the manual page, 'pluto_step.9'. - - diff --git a/docs/src/drivers/pluto_p_fr.txt b/docs/src/drivers/pluto_p_fr.txt deleted file mode 100644 index f0aae934ad8..00000000000 --- a/docs/src/drivers/pluto_p_fr.txt +++ /dev/null @@ -1,293 +0,0 @@ -= Pluto-P - -== General Info - -The Pluto-P is an inexpensive ($60) FPGA board featuring the -ACEX1K(((ACEX1K))) chip from Altera. - -=== Requirements - - . A Pluto-P board - . An EPP-compatible parallel port, configured for EPP mode in the system BIOS - -=== Connectors - - - The Pluto-P board is shipped with the left connector presoldered, with - the key in the indicated position. The other connectors are - unpopulated. There does not seem to be a standard 12-pin IDC connector, - but some of the pins of a 16P connector can hang off the board next to - QA3/QZ3. - - The bottom and right connectors are on the same .1" grid, but the left - connector is not. If OUT2…OUT9 are not required, a single IDC connector - can span the bottom connector and the bottom two rows of the right - connector. - -=== Physical Pins - - - Read the ACEX1K datasheet for information about input and output - voltage thresholds. The pins are all configured in "LVTTL/LVCMOS" mode - and are generally compatible with 5V TTL logic. - - Before configuration and after properly exiting LinuxCNC, all Pluto-P pins - are tristated with weak pull-ups (20k-ohms min, 50k-ohms max). If the - watchdog timer is enabled (the default), - these pins are also tristated after an interruption of communication - between LinuxCNC and the board. The watchdog timer takes approximately - 6.5ms to activate. However, software bugs in the pluto_servo firmware - or LinuxCNC can leave the Pluto-P pins in an undefined state. - - In pwm+dir mode, by default dir is HIGH for negative values and LOW - for positive values. To select HIGH for positive values and LOW for - negative values, set the corresponding dout-NN-invert parameter TRUE to - invert the signal. - - The index input is triggered on the rising edge. Initial testing has - shown that the QZx inputs are particularly noise sensitive, due to - being polled every 25ns. Digital filtering has been added to filter - pulses shorter than 175ns (seven polling times). Additional external - filtering on all input pins, such as a Schmitt buffer or inverter, RC - filter, or differential receiver (if applicable) is recommended. - - The IN1…IN7 pins have 22-ohm series resistors to their associated FPGA - pins. No other pins have any sort of protection for out-of-spec - voltages or currents. It is up to the integrator to add appropriate - isolation and protection. Traditional parallel port optoisolator boards - do not work with pluto_servo due to the bidirectional nature of the EPP - protocol. - -=== LED - - - When the device is unprogrammed, the LED glows faintly. When the - device is programmed, the LED glows according to the duty cycle of PWM0 - (*LED* = *UP0* 'xor' *DOWN0*) or STEPGEN0 (*LED* = *STEP0* 'xor' *DIR0*). - -=== Power - - - A small amount of current may be drawn from VCC. The available current - depends on the unregulated DC input to the board. Alternately, - regulated +3.3VDC may be supplied to the FPGA through these VCC pins. - The required current is not yet known, but is probably around 50mA plus - I/O current. - - The regulator on the Pluto-P board is a low-dropout type. Supplying 5V - at the power jack will allow the regulator to work properly. - -=== PC interface - - - Only a single pluto_servo or pluto_step board is supported. - -=== Rebuilding the FPGA firmware - -The `src/hal/drivers/pluto_servo_firmware/` and -`src/hal/drivers/pluto_step_firmware/` subdirectories contain the -Verilog source code plus additional files -used by Quartus for the FPGA firmwares. Altera's Quartus II software is -required to rebuild the FPGA firmware. To rebuild the firmware from the - .hdl and other source files, open the `.qpf` file and press CTRL-L. -Then, recompile LinuxCNC. - -Like the HAL hardware driver, the FPGA firmware is licensed under the -terms of the GNU General Public License. - -The gratis version of Quartus II runs only on Microsoft Windows, -although there is apparently a paid version that runs on Linux. - -=== For more information - -Some additional information about it is available from -http://www.fpga4fun.com/board_pluto-P.html[http://www.fpga4fun.com/board_pluto-P.html] -and from http://emergent.unpy.net/01165081407[the developer's blog]. - -== pluto-servo: Hardware PWM and quadrature counting[[sec:pluto-servo]](((pluto-servo))) - -The pluto_servo system is suitable for control of a 4-axis CNC mill -with servo motors, a 3-axis mill with PWM spindle control, a lathe with -spindle encoder, etc. The large number of inputs allows a full set of -limit switches. - -This driver features: - - - 4 quadrature channels with 40MHz sample rate. The counters operate in - "4x" mode. The maximum useful quadrature rate is 8191 counts per LinuxCNC - servo cycle, or about 8MHz for LinuxCNC's default 1ms servo rate. - - 4 PWM channels, "up/down" or "pwm+dir" style. 4095 duty cycles from - -100% to +100%, including 0%. The PWM period is approximately 19.5kHz - (40MHz / 2047). A PDM-like mode is also available. - - 18 digital outputs: 10 dedicated, 8 shared with PWM functions. - (Example: A lathe with unidirectional PWM spindle control may use 13 - total digital outputs) - - 20 digital inputs: 8 dedicated, 12 shared with Quadrature functions. - (Example: A lathe with index pulse only on the spindle may use 13 total - digital inputs) - - EPP communication with the PC. The EPP communication typically takes - around 100 us on machines tested so far, enabling servo rates above - 1kHz. - -=== Pinout - -UPx:: - The "up" (up/down mode) or “pwm†(pwm+direction mode) signal from PWM - generator X. May be used as a digital output if the corresponding PWM - channel is unused, or the output on the channel is always negative. The - corresponding digital output invert may be set to TRUE to make UPx - active low rather than active high. - -DNx:: - The "down" (up/down mode) or “direction†(pwm+direction mode) signal - from PWM generator X. May be used as a digital output if the - corresponding PWM channel is unused, or the output on the channel is - never negative. The corresponding digital ouput invert may be set to - TRUE to make DNx active low rather than active high. - -QAx, QBx:: - The A and B signals for Quadrature counter X. May be used as a digital - input if the corresponding quadrature channel is unused. - -QZx:: - The Z (index) signal for quadrature counter X. May be used as a - digital input if the index feature of the corresponding quadrature - channel is unused. - -INx:: - Dedicated digital input #x - -OUTx:: - Dedicated digital output #x - -GND:: - Ground - -VCC:: - +3.3V regulated DC - -.Pluto-Servo Pinout[[fig:Pluto-Servo-Pinout]](((pluto-servo pinout))) - -image::images/pluto-pinout.png[] - -.Pluto-Servo Alternate Pin Functions[[table:Pluto-Servo-Alternate-Pin]](((pluto-servo alternate pin functions))) - -[width="90%", options="header"] -|======================================== -|Primary function | Alternate Function | Behavior if both functions used -|*UP0* | PWM0 | When pwm-0-pwmdir is TRUE, this pin is the PWM output -| | OUT10 | XOR'd with UP0 or PWM0 -|*UP1* | PWM1 | When pwm-1-pwmdir is TRUE, this pin is the PWM output -| | OUT12 | XOR'd with UP1 or PWM1 -|*UP2* | PWM2 | When pwm-2-pwmdir is TRUE, this pin is the PWM output -| | OUT14 | XOR'd with UP2 or PWM2 -|*UP3* | PWM3 | When pwm-3-pwmdir is TRUE, this pin is the PWM output -| | OUT16 | XOR'd with UP3 or PWM3 -|*DN0* | DIR0 | When pwm-0-pwmdir is TRUE, this pin is the DIR output -| | OUT11 | XOR'd with DN0 or DIR0 -|*DN1* | DIR1 | When pwm-1-pwmdir is TRUE, this pin is the DIR output -| | OUT13 | XOR'd with DN1 or DIR1 -|*DN2* | DIR2 | When pwm-2-pwmdir is TRUE, this pin is the DIR output -| | OUT15 | XOR'd with DN2 or DIR2 -|*DN3* | DIR3 | When pwm-3-pwmdir is TRUE, this pin is the DIR output -| | OUT17 | XOR'd with DN3 or DIR3 -|*QZ0* | IN8 | Read same value -|*QZ1* | IN9 | Read same value -|*QZ2* | IN10 | Read same value -|*QZ3* | IN11 | Read same value -|*QA0* | IN12 | Read same value -|*QA1* | IN13 | Read same value -|*QA2* | IN14 | Read same value -|*QA3* | IN15 | Read same value -|*QB0* | IN16 | Read same value -|*QB1* | IN17 | Read same value -|*QB2* | IN18 | Read same value -|*QB3* | IN19 | Read same value -|======================================== - -=== Input latching and output updating - - - PWM duty cycles for each channel are updated at different times. - - Digital outputs OUT0 through OUT9 are all updated at the same time. - Digital outputs OUT10 through OUT17 are updated at the same time as the - PWM function they are shared with. - - Digital inputs IN0 through IN19 are all latched at the same time. - - Quadrature positions for each channel are latched at different times. - -=== HAL Functions, Pins and Parameters - -A list of all 'loadrt' arguments, HAL function names, pin names and -parameter names is in the manual page, 'pluto_servo.9'. - -=== Compatible driver hardware - -A schematic for a 2A, 2-axis PWM servo amplifier board is available -(http://emergent.unpy.net/projects/01148303608[http://emergent.unpy.net/projects/01148303608]). -The L298 H-Bridge is inexpensive and can easily be used for motors up to -4A (one motor per L298) or up to 2A (two motors per L298) with the supply -voltage up to 46V. However, the L298 does not have built-in current limiting, a -problem for motors with high stall currents. For higher currents and -voltages, some users have reported success with International -Rectifier's integrated high-side/low-side drivers. - - -== Pluto-step: 300kHz Hardware Step Generator[[sec:Pluto-step:-Hardware-step]](((pluto-step))) - -Pluto-step is suitable for control of a 3- or 4-axis CNC mill with -stepper motors. The large number of inputs allows for a full set of -limit switches. - -The board features: - - - 4 “step+direction†channels with 312.5kHz maximum step rate, - programmable step length, space, and direction change times - - 14 dedicated digital outputs - - 16 dedicated digital inputs - - EPP communication with the PC - -=== Pinout - -STEPx:: - The “step†(clock) output of stepgen channel *x* - -DIRx:: - The “direction†output of stepgen channel *x* - -INx:: - Dedicated digital input #x - -OUTx:: - Dedicated digital output #x - -GND:: - Ground - -VCC:: - +3.3V regulated DC - -While the “extended main connector†has a superset of signals usually -found on a Step & Direction DB25 connector--4 step generators, 9 -inputs, and 6 general-purpose outputs--the layout on this header is -different than the layout of a standard 26-pin ribbon cable to DB25 -connector. - -.Pluto-Step Pinout[[fig:Pluto-Step-Pinout]](((pluto-step pinout))) - -image::images/pluto-step-pinout.png[] - -=== Input latching and output updating - - - Step frequencies for each channel are updated at different times. - - Digital outputs are all updated at the same time. - - Digital inputs are all latched at the same time. - - Feedback positions for each channel are latched at different times. - -=== Step Waveform Timings - -The firmware and driver enforce step length, space, and direction -change times. Timings are rounded up to the next multiple of -*_1.6μs_*, with a maximum of *_49.6μs_*. The timings -are the same as for the software stepgen component, except that -“dirhold†and “dirsetup†have been merged into a single parameter -“dirtime†which should be the maximum of the two, and that the same -step timings are always applied to all channels. - -.Pluto-Step Timings[[fig:Pluto-Step-Timings]](((pluto-step timings))) - -image::images/pluto_step_waveform.png[] - -=== HAL Functions, Pins and Parameters - -A list of all 'loadrt' arguments, HAL function names, pin names and -parameter names is in the manual page, 'pluto_step.9'. - - diff --git a/docs/src/drivers/servo_to_go.txt b/docs/src/drivers/servo_to_go.txt deleted file mode 100644 index 4f5a9f2e53c..00000000000 --- a/docs/src/drivers/servo_to_go.txt +++ /dev/null @@ -1,105 +0,0 @@ -= Servo To Go Driver - -[[cha:servo-to-go-driver]] (((Servo To Go Driver))) - -The Servo-To-Go (STG) is one of the first PC motion control cards supported -by LinuxCNC. It is an ISA card and it exists in different flavors (all -supported by this driver). The board includes up to 8 channels of -quadrature encoder input, 8 channels of analog input and output, 32 -bits digital I/O, an interval timer with interrupt and a watchdog. For more -information see the http://www.servotogo.com/[Servo To Go] web page. - -== Installing - ----- -loadrt hal_stg [base=
    ] [num_chan=] [dio=""] [model=] ----- - -The base address field is optional; if it's not provided the driver -attempts to autodetect the board. The num_chan field is used to specify -the number of channels available on the card, if not used the 8 axis -version is assumed. The digital inputs/outputs configuration is -determined by a config string passed to insmod when loading the module. -The format consists of a four character string that sets the direction -of each group of pins. Each character of the direction string is either -"I" or "O". The first character sets the direction of port A (Port A - -DIO.0-7), the next sets port B (Port B - DIO.8-15), the next sets port -C (Port C - DIO.16-23), and the fourth sets port D (Port D - -DIO.24-31). The model field can be used in case the driver doesn't -autodetect the right card version. - -hint: after starting up the driver, 'dmesg' can be consulted for -messages relevant to the driver (e.g. autodetected version number and -base address). For example: - ----- -loadrt hal_stg base=0x300 num_chan=4 dio="IOIO" ----- - -This example installs the STG driver for a card found at the base -address of 0x300, 4 channels of encoder feedback, DACs and ADCs, -along with 32 bits of I/O configured like this: the first 8 (Port A) -configured as Input, the next 8 (Port B) configured as Output, the next -8 (Port C) configured as Input, and the last 8 (Port D) configured as -Output - ----- -loadrt hal_stg ----- - -This example installs the driver and attempts to autodetect the board -address and board model, it installs 8 axes by default along with a -standard I/O setup: Port A & B configured as Input, Port C & D -configured as Output. - -== Pins - -* 'stg..counts' - (s32) Tracks the counted encoder ticks. -* 'stg..position' - (float) Outputs a converted position. -* 'stg..dac-value' - (float) Drives the voltage for the - corresponding DAC. -* 'stg..adc-value' - (float) Tracks the measured voltage from the - corresponding ADC. -* 'stg.in-' - (bit) Tracks a physical input pin. -* 'stg.in--not' - (bit) Tracks a physical input pin, but inverted. -* 'stg.out-' - (bit) Drives a physical output pin - -For each pin, is the axis number, and is the logic -pin number of the STG if `IIOO` is defined, there are 16 input pins (in-00 -.. in-15) and 16 output pins (out-00 .. out-15), and they correspond to -PORTs ABCD (in-00 is PORTA.0, out-15 is PORTD.7). - -The in- HAL pin is TRUE if the physical pin is high, and FALSE if the -physical pin is low. The in--not HAL pin is inverted -- it is -FALSE if the physical pin is high. By connecting a signal to one or the -other, the user can determine the state of the input. - -== Parameters - -* 'stg..position-scale' - (float) The number of counts / user unit - (to convert from counts to units). -* 'stg..dac-offset' - (float) Sets the offset for the corresponding - DAC. -* 'stg..dac-gain' - (float) Sets the gain of the corresponding DAC. -* 'stg..adc-offset' - (float) Sets the offset of the corresponding - ADC. -* 'stg..adc-gain' - (float) Sets the gain of the corresponding ADC. -* 'stg.out--invert' - (bit) Inverts an output pin. - -The -invert parameter determines whether an output pin is active high -or active low. If -invert is FALSE, setting the HAL out- pin TRUE -drives the physical pin high, and FALSE drives it low. If -invert is -TRUE, then setting the HAL out- pin TRUE will drive the physical pin -low. - -=== Functions - -* 'stg.capture-position' - Reads the encoder counters from the axis - . -* 'stg.write-dacs' - Writes the voltages to the DACs. -* 'stg.read-adcs' - Reads the voltages from the ADCs. -* 'stg.di-read' - Reads physical in- pins of all ports and updates - all HAL in- and in--not pins. -* 'stg.do-write' - Reads all HAL out- pins and updates all - physical output pins. - diff --git a/docs/src/drivers/servo_to_go_es.txt b/docs/src/drivers/servo_to_go_es.txt deleted file mode 100644 index c40140d8f39..00000000000 --- a/docs/src/drivers/servo_to_go_es.txt +++ /dev/null @@ -1,118 +0,0 @@ -= Servo To Go Driver - -[[cha:servo-to-go-driver]] (((Servo To Go Driver))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -The Servo-To-Go (STG) is one of the first PC motion control cards supported -by LinuxCNC. It is an ISA card and it exists in different flavors (all -supported by this driver). The board includes up to 8 channels of -quadrature encoder input, 8 channels of analog input and output, 32 -bits digital I/O, an interval timer with interrupt and a watchdog. For more -information see the http://www.servotogo.com/[Servo To Go] web page. - -== Installing - ----- -loadrt hal_stg [base=
    ] [num_chan=] [dio=""] [model=] ----- - -The base address field is optional; if it's not provided the driver -attempts to autodetect the board. The num_chan field is used to specify -the number of channels available on the card, if not used the 8 axis -version is assumed. The digital inputs/outputs configuration is -determined by a config string passed to insmod when loading the module. -The format consists of a four character string that sets the direction -of each group of pins. Each character of the direction string is either -"I" or "O". The first character sets the direction of port A (Port A - -DIO.0-7), the next sets port B (Port B - DIO.8-15), the next sets port -C (Port C - DIO.16-23), and the fourth sets port D (Port D - -DIO.24-31). The model field can be used in case the driver doesn't -autodetect the right card version. - -hint: after starting up the driver, 'dmesg' can be consulted for -messages relevant to the driver (e.g. autodetected version number and -base address). For example: - ----- -loadrt hal_stg base=0x300 num_chan=4 dio="IOIO" ----- - -This example installs the STG driver for a card found at the base -address of 0x300, 4 channels of encoder feedback, DACs and ADCs, -along with 32 bits of I/O configured like this: the first 8 (Port A) -configured as Input, the next 8 (Port B) configured as Output, the next -8 (Port C) configured as Input, and the last 8 (Port D) configured as -Output - ----- -loadrt hal_stg ----- - -This example installs the driver and attempts to autodetect the board -address and board model, it installs 8 axes by default along with a -standard I/O setup: Port A & B configured as Input, Port C & D -configured as Output. - -== Pins - -* 'stg..counts' - (s32) Tracks the counted encoder ticks. -* 'stg..position' - (float) Outputs a converted position. -* 'stg..dac-value' - (float) Drives the voltage for the - corresponding DAC. -* 'stg..adc-value' - (float) Tracks the measured voltage from the - corresponding ADC. -* 'stg.in-' - (bit) Tracks a physical input pin. -* 'stg.in--not' - (bit) Tracks a physical input pin, but inverted. -* 'stg.out-' - (bit) Drives a physical output pin - -For each pin, is the axis number, and is the logic -pin number of the STG if `IIOO` is defined, there are 16 input pins (in-00 -.. in-15) and 16 output pins (out-00 .. out-15), and they correspond to -PORTs ABCD (in-00 is PORTA.0, out-15 is PORTD.7). - -The in- HAL pin is TRUE if the physical pin is high, and FALSE if the -physical pin is low. The in--not HAL pin is inverted -- it is -FALSE if the physical pin is high. By connecting a signal to one or the -other, the user can determine the state of the input. - -== Parameters - -* 'stg..position-scale' - (float) The number of counts / user unit - (to convert from counts to units). -* 'stg..dac-offset' - (float) Sets the offset for the corresponding - DAC. -* 'stg..dac-gain' - (float) Sets the gain of the corresponding DAC. -* 'stg..adc-offset' - (float) Sets the offset of the corresponding - ADC. -* 'stg..adc-gain' - (float) Sets the gain of the corresponding ADC. -* 'stg.out--invert' - (bit) Inverts an output pin. - -The -invert parameter determines whether an output pin is active high -or active low. If -invert is FALSE, setting the HAL out- pin TRUE -drives the physical pin high, and FALSE drives it low. If -invert is -TRUE, then setting the HAL out- pin TRUE will drive the physical pin -low. - -=== Functions - -* 'stg.capture-position' - Reads the encoder counters from the axis - . -* 'stg.write-dacs' - Writes the voltages to the DACs. -* 'stg.read-adcs' - Reads the voltages from the ADCs. -* 'stg.di-read' - Reads physical in- pins of all ports and updates - all HAL in- and in--not pins. -* 'stg.do-write' - Reads all HAL out- pins and updates all - physical output pins. - diff --git a/docs/src/drivers/servo_to_go_fr.txt b/docs/src/drivers/servo_to_go_fr.txt deleted file mode 100644 index 76383958cd1..00000000000 --- a/docs/src/drivers/servo_to_go_fr.txt +++ /dev/null @@ -1,96 +0,0 @@ -= Servo-To-Go - -The Servo-To-Go (STG) is one of the first PC motion control cards supported -by LinuxCNC. It is an ISA card and it exists in different flavors (all -supported by this driver). The board includes up to 8 channels of -quadrature encoder input, 8 channels of analog input and output, 32 -bits digital I/O, an interval timer with interrupt and a watchdog. - -== Installing - -`loadrt hal_stg [base=
    ] [num_chan=] [dio=""] [model=]` - -The base address field is optional; if it's not provided the driver -attempts to autodetect the board. The num_chan field is used to specify -the number of channels available on the card, if not used the 8 axis -version is assumed. The digital inputs/outputs configuration is -determined by a config string passed to insmod when loading the module. -The format consists of a four character string that sets the direction -of each group of pins. Each character of the direction string is either -"I" or "O". The first character sets the direction of port A (Port A - -DIO.0-7), the next sets port B (Port B - DIO.8-15), the next sets port -C (Port C - DIO.16-23), and the fourth sets port D (Port D - -DIO.24-31). The model field can be used in case the driver doesn't -autodetect the right card version. - -hint: after starting up the driver, 'dmesg' can be consulted for -messages relevant to the driver (e.g. autodetected version number and -base address). For example: - - loadrt hal_stg base=0x300 num_chan=4 dio="IOIO" - -This example installs the STG driver for a card found at the base -address of 0x300, 4 channels of encoder feedback, DACs and ADCs, -along with 32 bits of I/O configured like this: the first 8 (Port A) -configured as Input, the next 8 (Port B) configured as Output, the next -8 (Port C) configured as Input, and the last 8 (Port D) configured as -Output - - loadrt hal_stg - -This example installs the driver and attempts to autodetect the board -address and board model, it installs 8 axes by default along with a -standard I/O setup: Port A & B configured as Input, Port C & D -configured as Output. - -== Pins - - - stg..counts (s32) Tracks the counted encoder ticks. - - stg..position (float) Outputs a converted position. - - stg..dac-value (float) Drives the voltage for the - corresponding DAC. - - stg..adc-value (float) Tracks the measured voltage from the - corresponding ADC. - - stg.in- (bit) Tracks a physical input pin. - - stg.in--not (bit) Tracks a physical input pin, but inverted. - - stg.out- (bit) Drives a physical output pin - -For each pin, is the axis number, and is the logic -pin number of the STG if `IIOO` is defined, there are 16 input pins (in-00 -.. in-15) and 16 output pins (out-00 .. out-15), and they correspond to -PORTs ABCD (in-00 is PORTA.0, out-15 is PORTD.7). - -The in- HAL pin is TRUE if the physical pin is high, and FALSE if the -physical pin is low. The in--not HAL pin is inverted -- it is -FALSE if the physical pin is high. By connecting a signal to one or the -other, the user can determine the state of the input. - -== Parameters - - - stg..position-scale (float) The number of counts / user unit - (to convert from counts to units). - - stg..dac-offset (float) Sets the offset for the corresponding - DAC. - - stg..dac-gain (float) Sets the gain of the corresponding DAC. - - stg..adc-offset (float) Sets the offset of the corresponding - ADC. - - stg..adc-gain (float) Sets the gain of the corresponding ADC. - - stg.out--invert (bit) Inverts an output pin. - -The -invert parameter determines whether an output pin is active high -or active low. If -invert is FALSE, setting the HAL out- pin TRUE -drives the physical pin high, and FALSE drives it low. If -invert is -TRUE, then setting the HAL out- pin TRUE will drive the physical pin -low. - -=== Functions - - - stg.capture-position (funct) Reads the encoder counters from the axis - . - - stg.write-dacs (funct) Writes the voltages to the DACs. - - stg.read-adcs (funct) Reads the voltages from the ADCs. - - stg.di-read (funct) Reads physical in- pins of all ports and updates - all HAL in- and in--not pins. - - stg.do-write (funct) Reads all HAL out- pins and updates all - physical output pins. - diff --git a/docs/src/drivers/shuttlexpress.txt b/docs/src/drivers/shuttlexpress.txt deleted file mode 100644 index 20abea4440d..00000000000 --- a/docs/src/drivers/shuttlexpress.txt +++ /dev/null @@ -1,53 +0,0 @@ -= ShuttleXpress - -[[cha:shuttlexpress]] (((ShuttleXpress))) - -== Description - -shuttlexpress is a userspace HAL component that interfaces Contour Design’s ShuttleXpress device with LinuxCNC’s HAL. The ShuttleXpress has five momentary buttons, a 10 counts/revolution jog wheel with detents, and a 15-position spring-loaded outer wheel that returns to center when released. - -If it is started without command-line arguments, it will probe all /dev/hidraw* device files for ShuttleXpress devices, and use all devices found. If it is started with command-line arguments, only will only probe the devices specified. - -[WARNING] -The ShuttleXpress device has an internal 8-bit counter for the current jog-wheel position. The shuttlexpress driver can not know this value until the ShuttleXpress device sends its first event. When the first event comes into the driver, the driver uses the device’s reported jog-wheel position to initialize counts to 0. - -This means that if the first event is generated by a jog-wheel move, that first move will be lost. - -Any user interaction with the ShuttleXpress device will generate an event, informing the driver of the jog-wheel position. So if you (for example) push one of the buttons at startup, the jog-wheel will work fine and notice the first click. - - -== Setup - -The shuttlexpress module needs read permission on the /dev/hidraw* device files. This can be accomplished by adding a file /etc/udev/rules.d/99-shuttlexpress.rules, with the following contents: - ----- -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0b33", ATTRS{idProduct}=="0020", MODE="0444" ----- - -== Pins - -* 'shuttlexpress..button-' (bit out) The - ShuttleXpress has five buttons around the outside of the device, - numbered 0 through 4. 0 is the counter-clockwise-most button, 4 is - the clockwise-most button. These pins are True (1) when the button - is pressed. - -* 'shuttlexpress..button--not' (bit out) - These pins have the inverse of the button state, so they're True - (1) when the button is not pressed. - -* 'shuttlexpress..counts' (s32 out) Accumulated counts - from the jog wheel (the inner wheel). - -* 'shuttlexpress..spring-wheel-s32' (s32 out) The current - deflection of the spring-wheel (the outer wheel). It’s 0 at rest, - and ranges from -7 at the counter-clockwise extreme to +7 at the - clockwise extreme. - -* 'shuttlexpress..spring-wheel-f' (float out) The current - deflection of the spring-wheel (the outer wheel). It’s 0 at - rest, -1 at the counter-clockwise extreme, and +1 at the clockwise - extreme. (The ShuttleXpress device reports the spring-wheel position - quantized from -7 to +7, so this pin reports only 15 discrete values - in it’s range.) - diff --git a/docs/src/drivers/shuttlexpress_es.txt b/docs/src/drivers/shuttlexpress_es.txt deleted file mode 100644 index 3928a413ef8..00000000000 --- a/docs/src/drivers/shuttlexpress_es.txt +++ /dev/null @@ -1,65 +0,0 @@ -= ShuttleXpress - -[[cha:shuttlexpress]] (((ShuttleXpress))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Description - -shuttlexpress is a userspace HAL component that interfaces Contour Design’s ShuttleXpress device with LinuxCNC’s HAL. The ShuttleXpress has five momentary buttons, a 10 counts/revolution jog wheel with detents, and a 15-position spring-loaded outer wheel that returns to center when released. - -If it is started without command-line arguments, it will probe all /dev/hidraw* device files for ShuttleXpress devices, and use all devices found. If it is started with command-line arguments, only will only probe the devices specified. - -[WARNING] -The ShuttleXpress device has an internal 8-bit counter for the current jog-wheel position. The shuttlexpress driver can not know this value until the ShuttleXpress device sends its first event. When the first event comes into the driver, the driver uses the device’s reported jog-wheel position to initialize counts to 0. - -This means that if the first event is generated by a jog-wheel move, that first move will be lost. - -Any user interaction with the ShuttleXpress device will generate an event, informing the driver of the jog-wheel position. So if you (for example) push one of the buttons at startup, the jog-wheel will work fine and notice the first click. - - -== Setup - -The shuttlexpress module needs read permission on the /dev/hidraw* device files. This can be accomplished by adding a file /etc/udev/rules.d/99-shuttlexpress.rules, with the following contents: - ----- -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0b33", ATTRS{idProduct}=="0020", MODE="0444" ----- - -== Pins - -* 'shuttlexpress..button-' (bit out) The - ShuttleXpress has five buttons around the outside of the device, - numbered 0 through 4. 0 is the counter-clockwise-most button, 4 is - the clockwise-most button. These pins are True (1) when the button - is pressed. - -* 'shuttlexpress..button--not' (bit out) - These pins have the inverse of the button state, so they're True - (1) when the button is not pressed. - -* 'shuttlexpress..counts' (s32 out) Accumulated counts - from the jog wheel (the inner wheel). - -* 'shuttlexpress..spring-wheel-s32' (s32 out) The current - deflection of the spring-wheel (the outer wheel). It’s 0 at rest, - and ranges from -7 at the counter-clockwise extreme to +7 at the - clockwise extreme. - -* 'shuttlexpress..spring-wheel-f' (float out) The current - deflection of the spring-wheel (the outer wheel). It’s 0 at - rest, -1 at the counter-clockwise extreme, and +1 at the clockwise - extreme. (The ShuttleXpress device reports the spring-wheel position - quantized from -7 to +7, so this pin reports only 15 discrete values - in it’s range.) diff --git a/docs/src/emc2.sty b/docs/src/emc2.sty deleted file mode 100644 index db689148aef..00000000000 --- a/docs/src/emc2.sty +++ /dev/null @@ -1,25 +0,0 @@ -%% -%% Fixed EMC2 Documentation style -%% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{emc2doc}[2011/02/10 EMC2 Style] -%% XXX: Here starts verbatim copy of asciidoc-docbook.sty - -%% Just use the original package and pass the options. -\RequirePackageWithOptions{docbook} - -% Sidebar is a boxed minipage that can contain verbatim. -% Changed shadow box to double box. -\renewenvironment{sidebar}[1][0.95\textwidth]{ - \hspace{0mm}\newline% - \noindent\begin{Sbox}\begin{minipage}{#1}% - \setlength\parskip{\medskipamount}% -}{ - \end{minipage}\end{Sbox}\doublebox{\TheSbox}% -} - -% For DocBook literallayout elements, see `./dblatex/dblatex-readme.txt`. -\usepackage{alltt} -%% XXX: Here ends verbatim copy of asciidoc-docbook.sty - -\usepackage{grffile} diff --git a/docs/src/examples/gcode.txt b/docs/src/examples/gcode.txt deleted file mode 100644 index e0aced52865..00000000000 --- a/docs/src/examples/gcode.txt +++ /dev/null @@ -1,74 +0,0 @@ -= G Code Examples - -After you install LinuxCNC several sample files are placed in the -/nc_files folder. Make sure the sample file is appropriate for your -machine before running. - -== Mill Examples - -=== Helical Hole Milling - -File Name: useful-subroutines.ngc - -Description: Subroutine for milling a hole using parameters. - -=== Slotting - -File Name: useful-subroutines.ngc - -Description: Subroutine for milling a slot using parameters. - -=== Grid Probe - -File Name: gridprobe.ngc - -Description: Rectangular Probing - -This program repeatedly probes in a regular XY grid and writes the -probed location to the file 'probe-results.txt' in the same directory -as the .ini file. - -=== Smart Probe - -File Name: smartprobe.ngc - -Description: Rectangular Probing - -This program repeatedly probes in a regular XY grid and writes the -probed location to the file 'probe-results.txt' in the same directory -as the .ini file. This is improved from the grid probe file. - -=== Tool Length Probe - -File Name: tool-length-probe.ngc - -Description: Tool Length Probing - -This program shows an example of how to measure tool lengths -automatically using a switch hooked to the probe input. This is useful -for machines without tool holders, where the length of a tool is -different every time it is inserted. - -=== Hole Probe - -File Name: probe-hole.ngc - -Description: Finding the Center and Diameter of a hole. - -The program demonstrates how to find the center of a hole, measure the -hole diameter and record the results. - -=== Cutter Compensation - -To be added - -== Lathe Examples - -=== Threading - -File Name lathe-g76.ngc - -Description: Facing, threading and parting off. - -This file shows an example of threading on a lathe using parameters. - diff --git a/docs/src/examples/gcode_es.txt b/docs/src/examples/gcode_es.txt deleted file mode 100644 index 0095753f632..00000000000 --- a/docs/src/examples/gcode_es.txt +++ /dev/null @@ -1,87 +0,0 @@ -= G Code Examples - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -After you install LinuxCNC several sample files are placed in the -/nc_files folder. Make sure the sample file is appropriate for your -machine before running. - -== Mill Examples - -=== Helical Hole Milling - -File Name: useful-subroutines.ngc - -Description: Subroutine for milling a hole using parameters. - -=== Slotting - -File Name: useful-subroutines.ngc - -Description: Subroutine for milling a slot using parameters. - -=== Grid Probe - -File Name: gridprobe.ngc - -Description: Rectangular Probing - -This program repeatedly probes in a regular XY grid and writes the -probed location to the file 'probe-results.txt' in the same directory -as the .ini file. - -=== Smart Probe - -File Name: smartprobe.ngc - -Description: Rectangular Probing - -This program repeatedly probes in a regular XY grid and writes the -probed location to the file 'probe-results.txt' in the same directory -as the .ini file. This is improved from the grid probe file. - -=== Tool Length Probe - -File Name: tool-length-probe.ngc - -Description: Tool Length Probing - -This program shows an example of how to measure tool lengths -automatically using a switch hooked to the probe input. This is useful -for machines without tool holders, where the length of a tool is -different every time it is inserted. - -=== Hole Probe - -File Name: probe-hole.ngc - -Description: Finding the Center and Diameter of a hole. - -The program demonstrates how to find the center of a hole, measure the -hole diameter and record the results. - -=== Cutter Compensation - -To be added - -== Lathe Examples - -=== Threading - -File Name lathe-g76.ngc - -Description: Facing, threading and parting off. - -This file shows an example of threading on a lathe using parameters. - diff --git a/docs/src/examples/gcode_fr.txt b/docs/src/examples/gcode_fr.txt deleted file mode 100644 index eed820a0c6f..00000000000 --- a/docs/src/examples/gcode_fr.txt +++ /dev/null @@ -1,102 +0,0 @@ -:lang: fr -:toc: - -= Exemples de fichiers G-Code - -Après l'installation de LinuxCNC, plusieurs exemples de fichiers G-code se trouveront -dans le répertoire /nc_files du dossier d'installation. Seuls les fichiers -adaptés au type de la machine sont utilisable. - -== Exemples pour une fraiseuse - -=== Fraisage hélicoïdal d'un orifice - -- Nom du fichier: useful-subroutines.ngc - -- Description: Programme pour usiner une poche ou un alésage avec utilisation -des paramètres. - -=== Rainurage - -- Nom du fichier: useful-subroutines.ngc - -- Decription: Programme pour fraiser une rainure avec utilisation des -paramètres. - -.Les différents usinages de l'exemple - -image::images/useful-subroutines-ngc.png[] - -=== Palpage d'une grille rectangulaire de points - -- Nom du fichier: gridprobe.ngc - -- Description: Relevé d'une grille rectangulaire de points au palpeur. - -Ce programme palpe de manière répétitive, en suivant une grille -régulière en XY et écrit les points mesurés dans le fichier -_probe-results.txt_ situé dans le même répertoire que le fichier .ini. - -.La grille de palpage - -image::images/gridprobe-ngc.png[] - -=== Amélioration du palpage d'une grille rectangulaire de points - -- Nom du fichier: smartprobe.ngc - -- Description: Relevé d'une grille rectangulaire de points au palpeur. - -Ce programme est une amélioration du précédent. Il palpe de manière -répétitive, en suivant une grille régulière en XY et écrit les points -mesurés dans le fichier _probe-results.txt_ situé dans le même -répertoire que le fichier .ini. - -.La grille de palpage plus fine - -image::images/smartprobe-ngc.png[] - -=== Mesure de longueur d'outil - -- Nom du fichier: tool-lenght-probe.ngc - -- Description: Mesure automatique de la longueur de l'outil. - -Ce programme donne un exemple de la mesure automatique de longueur -d'outil en utilisant un contact raccordé à l'entrée sonde. C'est très -pratique pour une machine sur laquelle la longueur des outils est -différente à chaque montage. - -=== Mesure d'un alésage au palpeur - -- Nom du fichier: probe-hole.ngc - -- Description: Mesure le centre et le diamètre d'un alésage. - -Ce programme montre comment trouver le centre d'un alésage, comment -calculer son diamètre et enregistrer les mesures dans un fichier. - -=== Compensation de rayon d'outil - -- Nom du fichier: comp-g1.ngc - -- Description: Mouvements d'entrée et de sortie avec la compensation de -rayon d'outil. - -Ce programme démontre la particularité du chemin d'outil sans et avec -la compensation de rayon d'outil. Le rayon d'outil est pris dans la -table d'outils. - -== Exemples pour un tour - -=== Filetage - -- Nom du fichier: lathe-g76.ngc - -- Description: Dressage, filetage et tronçonnage. - -Ce programme donne un exemple de filetage automatique sur un tour avec -utilisation des paramètres. Il demande quelques adaptations pour fonctionner, ces -adaptations seront un excellent exercice. - - diff --git a/docs/src/examples/gs2_example.txt b/docs/src/examples/gs2_example.txt deleted file mode 100644 index 435bef95932..00000000000 --- a/docs/src/examples/gs2_example.txt +++ /dev/null @@ -1,59 +0,0 @@ -= GS2 Spindle - -[[cha:gs2-spindle]] (((GS2 Spindle))) - -This example shows the connections needed to use an Automation Direct -GS2 VFD to drive a spindle. The spindle speed and direction is -controlled by LinuxCNC. - -Using the GS2 component involves very little to set up. We start with -a Stepconf Wizard generated config. Make sure the pins with "Spindle -CW" and "Spindle PWM" are set to unused in the parallel port setup -screen. - -In the custom.hal file we place the following to connect LinuxCNC to the -GS2 and have LinuxCNC control the drive. - -.GS2 Example ----- -# load the user space component for the Automation Direct GS2 VFD's -loadusr -Wn spindle-vfd gs2_vfd -r 9600 -p none -s 2 -n spindle-vfd - -# connect the spindle direction pin to the GS2 -net gs2-fwd spindle-vfd.spindle-fwd <= motion.spindle-forward - -# connect the spindle on pin to the GS2 -net gs2-run spindle-vfd.spindle-on <= motion.spindle-on - -# connect the GS2 at speed to the motion at speed -net gs2-at-speed motion.spindle-at-speed <= spindle-vfd.at-speed - -# connect the spindle RPM to the GS2 -net gs2-RPM spindle-vfd.speed-command <= motion.spindle-speed-out ----- - -[NOTE] -The transmission speed might be able to be faster depending on the exact -envirnment. Both the drive and the command line options must match. To check -for transmission errors add the '-v' command line option and run from a -terminal. - -On the GS2 drive itself you need to set a couple of things before the -modbus communications will work. Other parameters might need to be set -based on your physical requirements but these are beyond the scope of this -manual. Refer to the GS2 manual that came with the drive for more -information on the drive parameters. - -* The communications switches must be set to RS-232C -* The motor parameters must be set to match the motor -* P3.00 (Source of Operation Command) must be set to Operation - determined by RS-485 interface, 03 or 04 -* P4.00 (Source of Frequency Command) must be set to Frequency - determined by RS232C/RS485 communication interface, 05 -* P9.01 (Transmission Speed) must be set to 9600 baud, 01 -* P9.02 (Communication Protocol) must be set to "Modbus RTU mode, - 8 data bits, no parity, 2 stop bits", 03 - -A PyVCP panel based on this example is <>. - - diff --git a/docs/src/examples/gs2_example_es.txt b/docs/src/examples/gs2_example_es.txt deleted file mode 100644 index 5ce24250b8b..00000000000 --- a/docs/src/examples/gs2_example_es.txt +++ /dev/null @@ -1,72 +0,0 @@ -= GS2 Spindle - -[[cha:gs2-spindle]] (((GS2 Spindle))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -This example shows the connections needed to use an Automation Direct -GS2 VFD to drive a spindle. The spindle speed and direction is -controlled by LinuxCNC. - -Using the GS2 component involves very little to set up. We start with -a Stepconf Wizard generated config. Make sure the pins with "Spindle -CW" and "Spindle PWM" are set to unused in the parallel port setup -screen. - -In the custom.hal file we place the following to connect LinuxCNC to the -GS2 and have LinuxCNC control the drive. - -.GS2 Example ----- -# load the user space component for the Automation Direct GS2 VFD's -loadusr -Wn spindle-vfd gs2_vfd -r 9600 -p none -s 2 -n spindle-vfd - -# connect the spindle direction pin to the GS2 -net gs2-fwd spindle-vfd.spindle-fwd <= motion.spindle-forward - -# connect the spindle on pin to the GS2 -net gs2-run spindle-vfd.spindle-on <= motion.spindle-on - -# connect the GS2 at speed to the motion at speed -net gs2-at-speed motion.spindle-at-speed <= spindle-vfd.at-speed - -# connect the spindle RPM to the GS2 -net gs2-RPM spindle-vfd.speed-command <= motion.spindle-speed-out ----- - -[NOTE] -The transmission speed might be able to be faster depending on the exact -envirnment. Both the drive and the command line options must match. To check -for transmission errors add the '-v' command line option and run from a -terminal. - -On the GS2 drive itself you need to set a couple of things before the -modbus communications will work. Other parameters might need to be set -based on your physical requirements but these are beyond the scope of this -manual. Refer to the GS2 manual that came with the drive for more -information on the drive parameters. - -* The communications switches must be set to RS-232C -* The motor parameters must be set to match the motor -* P3.00 (Source of Operation Command) must be set to Operation - determined by RS-485 interface, 03 or 04 -* P4.00 (Source of Frequency Command) must be set to Frequency - determined by RS232C/RS485 communication interface, 05 -* P9.01 (Transmission Speed) must be set to 9600 baud, 02 -* P9.02 (Communication Protocol) must be set to "Modbus RTU mode, - 8 data bits, no parity, 2 stop bits", 03 - -A PyVCP panel based on this example is <>. - - diff --git a/docs/src/examples/gs2_example_fr.txt b/docs/src/examples/gs2_example_fr.txt deleted file mode 100644 index e428aa305d3..00000000000 --- a/docs/src/examples/gs2_example_fr.txt +++ /dev/null @@ -1,58 +0,0 @@ -:lang: fr -:toc: - -= Broche avec variateur GS2 - -(((Broche avec variateur GS2))) - -== Exemple - -Cet exemple montre les connexions demandées pour utiliser un variateur de -fréquence fourni par la société Automation Direct pour piloter une broche. -footnote:[En Europe on trouve une gamme de produits identiques sous la marque -Omron.] -La direction de la broche et sa vitesse seront contrôlées par LinuxCNC. - -L'utilisation du composant GS2 est très simple à régler. Une configuration -complète peut être réalisée par l'assistant Stepconf. Bien vérifier que les -pins _Spindle CW_ et _Spindle PWM_ sont inutilisées sur la page de réglage du -port parallèle. - -Placer les lignes suivantes dans le fichier custom.hal pour connecter LinuxCNC au -GS2 et avoir le contrôle de celui-ci depuis l'interface utilisateur. ----- -# Charger le composant utilisateur pour le variateur variateur -loadusr -Wn spindle-vfd gs2_vfd -n spindle-vfd - -# connecter la pin de direction au variateur -net gs2-fwd spindle-vfd.spindle-fwd <= motion.spindle-forward - -# connecter la pin de Marche/Arrêt au variateur -net gs2-run spindle-vfd.spindle-on <= motion.spindle-on - -# connecter la pin indiquant que la consigne vitesse est atteinte -net gs2-at-speed motion.spindle-at-speed <= spindle-vfd.at-speed - -# connecter la commande de vitesse au variateur -net gs2-RPM spindle-vfd.speed-command <= motion.spindle-speed-out ----- - -Sur le variateur de fréquence lui même, il est nécessaire de fixer quelques -paramètres avant de pouvoir communiquer avec lui par Modbus. D'autres seront -ajustés selon les caractéristiques demandées par le système. Ces réglages -sortent, pour la plupart, du cadre de cet exemple, ils sont tous expliqués -dans le manuel du variateur qu'il est impératif de consulter. - -- Les switches de communication doivent être positionnés sur RS-232C. -- Les paramètres moteur doivent être ajustés en fonction du moteur. -- P3.00 (Source des commandes de marche) doit être ajusté sur _Opérations - déterminées par l'interface RS-485_, _03_ ou _04_ -- P4.00 (Source des commandes de fréquence) doit être ajusté sur _Fréquence - déterminée par l'interface RS232C/RS485_, _05_ -- P9.02 (Protocole de communication) doit être ajusté sur _Modbus RTU mode, - 8 bits de donnée, pas de parity, 2 bits de stop_, _03_ - -Un panneau de commande virtuel PyVCP, basé sur cet exemple, est donné -dans l'<>. - - diff --git a/docs/src/examples/images/gridprobe-ngc.png b/docs/src/examples/images/gridprobe-ngc.png deleted file mode 100644 index 498b512af21..00000000000 Binary files a/docs/src/examples/images/gridprobe-ngc.png and /dev/null differ diff --git a/docs/src/examples/images/smartprobe-ngc.png b/docs/src/examples/images/smartprobe-ngc.png deleted file mode 100644 index 640eae0c1f6..00000000000 Binary files a/docs/src/examples/images/smartprobe-ngc.png and /dev/null differ diff --git a/docs/src/examples/images/spindle-math.png b/docs/src/examples/images/spindle-math.png deleted file mode 100644 index e8a1b82acc4..00000000000 Binary files a/docs/src/examples/images/spindle-math.png and /dev/null differ diff --git a/docs/src/examples/images/useful-subroutines-ngc.png b/docs/src/examples/images/useful-subroutines-ngc.png deleted file mode 100644 index 7b7a9f2daa4..00000000000 Binary files a/docs/src/examples/images/useful-subroutines-ngc.png and /dev/null differ diff --git a/docs/src/examples/misc_fr.txt b/docs/src/examples/misc_fr.txt deleted file mode 100644 index 4630d56219b..00000000000 --- a/docs/src/examples/misc_fr.txt +++ /dev/null @@ -1,13 +0,0 @@ -= Entrée de palpeur de mesure - -Pour utiliser une sonde de mesure avec G38 un palpeur doit être -raccordé à *motion.probe-input*. Dans cet exemple, la broche 15 du port -parallèle est utilisée. Dans votre fichier .hal ajoutez la ligne -suivante. Elle doit bien sur être adaptée à l'entrée sur laquelle votre -palpeur est raccordé. ----- -net probe-in motion.probe-input <= parport.0.pin-15-in ----- - -Pour d'autres informations concernant la sonde de mesure voir la documentation -du G-code, les chapitres relatifs à G38. diff --git a/docs/src/examples/mpg.txt b/docs/src/examples/mpg.txt deleted file mode 100644 index c87c92b7e46..00000000000 --- a/docs/src/examples/mpg.txt +++ /dev/null @@ -1,130 +0,0 @@ -= MPG Pendant - -This example is to explain how to hook up the common MPG pendants -found on the market today. This example uses an MPG3 pendant and a -C22 pendant interface card from CNC4PC connected to a second parallel -port plugged into the PCI slot. This example gives you 3 axes with 3 -step increments of 0.1, 0.01, 0.001 - -In your custom.hal file or jog.hal file add the following, making -sure you don't have mux4 or an encoder already in use. If you do just -increase the counts and change the reference numbers. More information -about mux4 and encoder can be found in the HAL manual or the man page. - -See the <> of the manual for more -information on adding a hal file. - -.jog.hal ----- -# Jog Pendant -loadrt encoder num_chan=1 -loadrt mux4 count=1 -addf encoder.capture-position servo-thread -addf encoder.update-counters base-thread -addf mux4.0 servo-thread - -# If your MPG outputs a quadrature signal per click set x4 to 1 -# If your MPG puts out 1 pulse per click set x4 to 0 -setp encoder.0.x4-mode 0 - -# For velocity mode, set to 1 -# In velocity mode the axis stops when the dial is stopped -# even if that means the commanded motion is not completed, -# For position mode (the default), set to 0 -# In position mode the axis will move exactly jog-scale -# units for each count, regardless of how long that might take, -setp axis.0.jog-vel-mode 0 -setp axis.1.jog-vel-mode 0 -setp axis.2.jog-vel-mode 0 - -# This sets the scale that will be used based on the input to the mux4 -setp mux4.0.in0 0.1 -setp mux4.0.in1 0.01 -setp mux4.0.in2 0.001 - -# The inputs to the mux4 component -net scale1 mux4.0.sel0 <= parport.1.pin-09-in -net scale2 mux4.0.sel1 <= parport.1.pin-10-in - -# The output from the mux4 is sent to each axis jog scale -net mpg-scale <= mux4.0.out -net mpg-scale => axis.0.jog-scale -net mpg-scale => axis.1.jog-scale -net mpg-scale => axis.2.jog-scale - -# The MPG inputs -net mpg-a encoder.0.phase-A <= parport.1.pin-02-in -net mpg-b encoder.0.phase-B <= parport.1.pin-03-in - -# The Axis select inputs -net mpg-x axis.0.jog-enable <= parport.1.pin-04-in -net mpg-y axis.1.jog-enable <= parport.1.pin-05-in -net mpg-z axis.2.jog-enable <= parport.1.pin-06-in - -# The encoder output counts to the axis. Only the selected axis will move. -net encoder-counts <= encoder.0.counts -net encoder-counts => axis.0.jog-counts -net encoder-counts => axis.1.jog-counts -net encoder-counts => axis.2.jog-counts ----- - -If the machine is capable of high acceleration to smooth out the moves -for each click of the MPG use the <> component to -limit the acceleration. - -.jog.hal with ilowpass ----- -loadrt encoder num_chan=1 -loadrt mux4 count=1 -addf encoder.capture-position servo-thread -addf encoder.update-counters base-thread -addf mux4.0 servo-thread - -loadrt ilowpass -addf ilowpass.0 servo-thread - -setp ilowpass.0.scale 1000 -setp ilowpass.0.gain 0.01 - - -# If your MPG outputs a quadrature signal per click set x4 to 1 -# If your MPG puts out 1 pulse per click set x4 to 0 -setp encoder.0.x4-mode 0 - -# For velocity mode, set to 1 -# In velocity mode the axis stops when the dial is stopped -# even if that means the commanded motion is not completed, -# For position mode (the default), set to 0 -# In position mode the axis will move exactly jog-scale -# units for each count, regardless of how long that might take, -setp axis.0.jog-vel-mode 0 -setp axis.1.jog-vel-mode 0 -setp axis.2.jog-vel-mode 0 - -# The inputs to the mux4 component -net scale1 mux4.0.sel0 <= parport.1.pin-09-in -net scale2 mux4.0.sel1 <= parport.1.pin-10-in - -# This sets the scale that will be used based on the input to the mux4 -# The scale used here has to be multiplied by the ilowpass scale -setp mux4.0.in0 0.0001 -setp mux4.0.in1 0.00001 -setp mux4.0.in2 0.000001 - -# The output from encoder counts is sent to ilowpass -net mpg-out ilowpass.0.in <= encoder.0.counts - -# The output from the mux4 is sent to each axis jog scale -net mpg-scale <= mux4.0.out -net mpg-scale => axis.0.jog-scale -net mpg-scale => axis.1.jog-scale -net mpg-scale => axis.2.jog-scale - -# The output from the ilowpass is sent to each axis jog count -# Only the selected axis will move. -net encoder-counts <= ilowpass.0.out -net encoder-counts => axis.0.jog-counts -net encoder-counts => axis.1.jog-counts -net encoder-counts => axis.2.jog-counts ----- - diff --git a/docs/src/examples/mpg_es.txt b/docs/src/examples/mpg_es.txt deleted file mode 100644 index 20e1a605a7b..00000000000 --- a/docs/src/examples/mpg_es.txt +++ /dev/null @@ -1,65 +0,0 @@ -= MPG Pendant - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -This example is to explain how to hook up the common MPG pendants -found on the market today. This example uses an MPG3 pendant and a -C22 pendant interface card from CNC4PC connected to a second parallel -port plugged into the PCI slot. This example gives you 3 axes with 3 -step increments of 0.1, 0.01, 0.001 - -In your custom.hal file or other.hal file add the following, making -sure you don't have mux4 or an encoder already in use. If you do just -increase the counts and change the reference number. More information -about mux4 and encoder can be found in the HAL manual. - ----- -# Jog Pendant -loadrt encoder num_chan=1 -loadrt mux4 count=1 -addf encoder.capture-position servo-thread -addf encoder.update-counters base-thread -addf mux4.0 servo-thread - -# If your MPG outputs a quadrature signal per click set x4 to 1 -# If your MPG puts out 1 pulse per click set x4 to 0 -setp encoder.0.x4-mode 0 - -# For velocity mode, set n to 1 -# In velocity mode the axis stops when the dial is stopped -# even if that means the commanded motion is not completed, -# For position mode (the default), set n to 0 -# In position mode the axis will move exactly jog-scale -# units for each count, regardless of how long that might take, -# This must be set for each axis you want in velocity mode -setp axis.N.jog-vel-mode n - -setp mux4.0.in0 0.1 -setp mux4.0.in1 0.01 -setp mux4.0.in2 0.001 -net scale1 mux4.0.sel0 <= parport.1.pin-09-in -net scale2 mux4.0.sel1 <= parport.1.pin-10-in -net pend-scale axis.0.jog-scale <= mux4.0.out -net pend-scale axis.1.jog-scale -net pend-scale axis.2.jog-scale -net mpg-a encoder.0.phase-A <= parport.1.pin-02-in -net mpg-b encoder.0.phase-B <= parport.1.pin-03-in -net mpg-x axis.0.jog-enable <= parport.1.pin-04-in -net mpg-y axis.1.jog-enable <= parport.1.pin-05-in -net mpg-z axis.2.jog-enable <= parport.1.pin-06-in -net pend-counts axis.0.jog-counts <= encoder.0.counts -net pend-counts axis.1.jog-counts -net pend-counts axis.2.jog-counts ----- - diff --git a/docs/src/examples/mpg_fr.txt b/docs/src/examples/mpg_fr.txt deleted file mode 100644 index 77a8355d734..00000000000 --- a/docs/src/examples/mpg_fr.txt +++ /dev/null @@ -1,78 +0,0 @@ -:lang: fr -:toc: - -= Utilisation d'une manivelle - -[[cha:Manivelle-Electronique]] (((MPG))) - -Cet exemple explique comment relier une manivelle, facile à trouver -aujourd'hui sur le marché. Cet exemple utilisera la manivelle MPG3 avec -une carte d'interface C22 de chez CNC4PC et un second port parallèle -placé sur un slot PCI. Cet exemple fournira trois axes avec chacun -trois incréments de pas: 0.1, 0.01, 0.001. - -Dans le fichier _custom.hal_ ou dans un fichier jog.hal, ajouter -ce qui suit en vérifiant bien que les composants _mux4_ ou _encoder_ ne -soient pas déjà utilisés. Si c'était le cas il faudrait en augmenter le nombre -en incrémentant la valeur du _count_ de la commande _loadrt_. Ajuster également -le numéro de référence. -Les composants mux4 et encoder sont décrits dans le manuel de HAL et dans les -man pages. - - -.Manivelle de jog ----- -loadrt encoder num_chan=1 -loadrt mux4 count=1 -addf encoder.capture-position servo-thread -addf encoder.update-counters base-thread -addf mux4.0 servo-thread - -# Mode position -# Chaque cran de manivelle provoque un pas calibré, -# la durée du mouvement total peut dépasser la durée de rotation de la manivelle. -# C'est le mode par défaut. - -setp axis.N.jog-vel-mode 0 - -# Mode vitesse -# L'axe s'arrête quand la manivelle s'arrête, même si la pas de jog est incomplet. -# Décommenter la ligne suivante pour obtenir ce mode de fonctionnement, -# et commenter le mode position. - -setp axis.N.jog-vel-mode 1 - -# Chaque axe est ajusté indépendemment des autres. - -# Tailles des pas de jog - -setp mux4.0.in0 0.1 -setp mux4.0.in1 0.01 -setp mux4.0.in2 0.001 - -# Sélecteur de taille des pas du jog - -net scale1 mux4.0.sel0 <= parport.1.pin-09-in -net scale2 mux4.0.sel1 <= parport.1.pin-10-in - -net pend-scale axis.0.jog-scale <= mux4.0.out -net pend-scale axis.1.jog-scale -net pend-scale axis.2.jog-scale - -# Signaux du codeur - -net mpg-a encoder.0.phase-A <= parport.1.pin-02-in -net mpg-b encoder.0.phase-B <= parport.1.pin-03-in - -# Sélecteur d'axe - -net mpg-x axis.0.jog-enable <= parport.1.pin-04-in -net mpg-y axis.1.jog-enable <= parport.1.pin-05-in -net mpg-z axis.2.jog-enable <= parport.1.pin-06-in - -net pend-counts axis.0.jog-counts <= encoder.0.counts -net pend-counts axis.1.jog-counts -net pend-counts axis.2.jog-counts ----- - - diff --git a/docs/src/examples/pci_parallel_port.txt b/docs/src/examples/pci_parallel_port.txt deleted file mode 100644 index b08a6e59131..00000000000 --- a/docs/src/examples/pci_parallel_port.txt +++ /dev/null @@ -1,55 +0,0 @@ -= PCI Parallel Port - -[[cha:pci-parallel-port]] (((PCI Parallel Port))) - -When you add a second parallel port to your PCI bus you have to find -out the address before you can use it with LinuxCNC. - -To find the address of your parallel port card open a terminal window -and type - ----- -lspci -v ----- - -You will see something similar to this as well as info on everything -else on the PCI bus: - ----- -0000:00:10.0 Communication controller: \ - NetMos Technology PCI 1 port parallel adapter (rev 01) - Subsystem: LSI Logic / Symbios Logic: Unknown device 0010 - Flags: medium devsel, IRQ 11 - I/O ports at a800 [size=8] - I/O ports at ac00 [size=8] - I/O ports at b000 [size=8] - I/O ports at b400 [size=8] - I/O ports at b800 [size=8] - I/O ports at bc00 [size=16] ----- - -In my case the address was the first one so I changed my .hal file from - ----- -loadrt hal_parport cfg=0x378 ----- - -to - ----- -loadrt hal_parport cfg="0x378 0xa800 in" ----- - -(Note the double quotes surrounding the addresses.) - -and then added the following lines so the parport will be read and written: - ----- -addf parport.1.read base-thread -addf parport.1.write base-thread ----- - -After doing the above then run your config and verify that the -parallel port got loaded in Machine/Show HAL Configuration window. - - diff --git a/docs/src/examples/pci_parallel_port_es.txt b/docs/src/examples/pci_parallel_port_es.txt deleted file mode 100644 index 06fc8511180..00000000000 --- a/docs/src/examples/pci_parallel_port_es.txt +++ /dev/null @@ -1,68 +0,0 @@ -= PCI Parallel Port - -[[cha:pci-parallel-port]] (((PCI Parallel Port))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -When you add a second parallel port to your PCI bus you have to find -out the address before you can use it with LinuxCNC. - -To find the address of your parallel port card open a terminal window -and type - ----- -lspci -v ----- - -You will see something similar to this as well as info on everything -else on the PCI bus: - ----- -0000:00:10.0 Communication controller: \ - NetMos Technology PCI 1 port parallel adapter (rev 01) - Subsystem: LSI Logic / Symbios Logic: Unknown device 0010 - Flags: medium devsel, IRQ 11 - I/O ports at a800 [size=8] - I/O ports at ac00 [size=8] - I/O ports at b000 [size=8] - I/O ports at b400 [size=8] - I/O ports at b800 [size=8] - I/O ports at bc00 [size=16] ----- - -In my case the address was the first one so I changed my .hal file from - ----- -loadrt hal_parport cfg=0x378 ----- - -to - ----- -loadrt hal_parport cfg="0x378 0xa800 in" ----- - -(Note the double quotes surrounding the addresses.) - -and then added the following lines so the parport will be read and written: - ----- -addf parport.1.read base-thread -addf parport.1.write base-thread ----- - -After doing the above then run your config and verify that the -parallel port got loaded in Machine/Show HAL Configuration window. - - diff --git a/docs/src/examples/pci_parallel_port_fr.txt b/docs/src/examples/pci_parallel_port_fr.txt deleted file mode 100644 index a23a7b43d16..00000000000 --- a/docs/src/examples/pci_parallel_port_fr.txt +++ /dev/null @@ -1,54 +0,0 @@ -:lang: fr -:toc: - -= Deuxième port parallèle sur port PCI - -Lors de l'ajout d'un deuxième port parallèle placé dans un slot PCI il -est indispensable de connaître son adresse avant de pouvoir l'utiliser -avec LinuxCNC. Pour trouver l'adresse de ce port, ouvrez un terminal et -tapez: ----- -lspci -v ----- - -Vous devriez voir quelques choses comme ci-dessous parmi la liste du -matériel installé en PCI: -.... -Communication controller: NetMos Technology PCI 1 port parallel adapter (rev 01) -LSI Logic / Symbios Logic: Unknown device 0010 - medium devsel, IRQ 11 - ports at a800 [size=8] - ports at ac00 [size=8] - ports at b000 [size=8] - ports at b400 [size=8] - ports at b800 [size=8] - ports at bc00 [size=16] -.... - -Dans notre cas, l'adresse était la première, nous avons donc modifié le -fichier .hal pour passer de ----- -loadrt hal_parport cfg=0x378 ----- - -à - ----- -loadrt hal_parport cfg="0x378 0xa800 in" ----- - -Noter les guillemets obligatoires encadrant les adresses. - -Nous avons également ajouté: ----- -addf parport.1.read base-thread -addf parport.1.write base-thread ----- - -pour que le second port parallèle soit lu et écrit. - -Par défaut les 8 premières broches des ports parallèles sont des -sorties. Le drapeau _in_ situé derrière l'adresse d'un port permet de -les positionner comme étant 8 entrées sur ce port. - - diff --git a/docs/src/examples/spindle.txt b/docs/src/examples/spindle.txt deleted file mode 100644 index 87446e41d02..00000000000 --- a/docs/src/examples/spindle.txt +++ /dev/null @@ -1,234 +0,0 @@ -= Spindle Control - -[[cha:Spindle-Control]] (((Spindle Control))) - -== 0-10v Spindle Speed (((0-10v Spindle Speed))) - -If your spindle speed is controlled by an analog signal, -(for example, by a VFD with a 0 to 10 volt signal) and -you're using a DAC card like the m5i20 to output the control signal: - -First you need to figure the scale of spindle speed to control signal. -For this example the spindle top speed of 5000 RPM is equal to 10 -volts. - -image::images/spindle-math.png[align="center"] - -We have to add a scale component to the HAL file to scale the -motion.spindle-speed-out to the 0 to 10 needed by the VFD if your DAC -card does not do scaling. - ----- -loadrt scale count=1 -addf scale.0 servo-thread -setp scale.0.gain 0.002 -net spindle-speed-scale motion.spindle-speed-out => scale.0.in -net spindle-speed-DAC scale.0.out => ----- - -== PWM Spindle Speed (((PWM Spindle Speed))) - -If your spindle can be controlled by a PWM signal, -use the pwmgen component to create the signal: - ----- -loadrt pwmgen output_type=0 -addf pwmgen.update servo-thread -addf pwmgen.make-pulses base-thread -net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value -net spindle-on motion.spindle-on => pwmgen.0.enable -net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out -# Set the spindle's top speed in RPM -setp pwmgen.0.scale 1800 ----- - -This assumes that the spindle controller's response to PWM is simple: -0% PWM gives 0 RPM, 10% PWM gives 180 RPM, etc. If there is a minimum -PWM required to get the spindle to turn, follow the example in the -nist-lathe sample configuration to use a scale component. - -== Spindle Enable (((Spindle Enable))) - -If you need a spindle enable signal, -link your output pin to motion.spindle-on. -To link these pins to a parallel port pin put something like -the following in your .hal file, making sure you pick the -pin that is connected to your control device. - ----- -net spindle-enable motion.spindle-on => parport.0.pin-14-out ----- - -== Spindle Direction (((Spindle Direction))) - -If you have direction control of your spindle the HAL pins -motion.spindle-forward and motion.spindle-reverse are controlled by M3 -and M4. Spindle speed 'Sn' must be set to a positive non-zero value for -M3/M4 to turn on spindle motion. - -To link these pins to a parallel port pin, put something like the -following in your .hal file making sure you pick the pin that is -connected to your control device. - ----- -net spindle-fwd motion.spindle-forward => parport.0.pin-16-out -net spindle-rev motion.spindle-reverse => parport.0.pin-17-out ----- - -== Spindle Soft Start (((Spindle Soft Start))) - -If you need to ramp your spindle speed command and your control does -not have that feature it can be done in HAL. Basically you need to -hijack the output of motion.spindle-speed-out and run it through a -limit2 component with the scale set so it will ramp the rpm from -motion.spindle-speed-out to your device that receives the rpm. The -second part is to let LinuxCNC know when the spindle is at speed so motion -can begin. - -In the 0-10 volt example the line - 'net spindle-speed-scale motion.spindle-speed-out => scale.0.in' -is changed as shown in the following example: - -.Intro to HAL components limit2 and near: -********************************************************************* -In case you have not run across them before, here's a quick introduction -to the two HAL components used in the following example. - -* A "limit2" is a HAL component (floating point) that accepts an - input value and provides an output that has been limited to a - max/min range, and also limited to not exceed a specified - rate of change. - -* A "near" is a HAL component (floating point) with a binary output - that says whether two inputs are approximately equal. - -More info is available in the documentation for HAL components, -or from the man pages, just say 'man limit2' or 'man near' in a terminal. -********************************************************************* - ----- -# load real time a limit2 and a near with names so it is easier to follow -loadrt limit2 names=spindle-ramp -loadrt near names=spindle-at-speed - -# add the functions to a thread -addf spindle-ramp servo-thread -addf spindle-at-speed servo-thread - -# set the parameter for max rate-of-change -# (max spindle accel/decel in units per second) -setp spindle-ramp.maxv 60 - -# hijack the spindle speed out and send it to spindle ramp in -net spindle-cmd <= motion.spindle-speed-out => spindle-ramp.in - -# the output of spindle ramp is sent to the scale in -net spindle-ramped <= spindle-ramp.out => scale.0.in - -# to know when to start the motion we send the near component -# (named spindle-at-speed) to the spindle commanded speed from -# the signal spindle-cmd and the actual spindle speed -# provided your spindle can accelerate at the maxv setting. -net spindle-cmd => spindle-at-speed.in1 -net spindle-ramped => spindle-at-speed.in2 - -# the output from spindle-at-speed is sent to motion.spindle-at-speed -# and when this is true motion will start -net spindle-ready <= spindle-at-speed.out => motion.spindle-at-speed ----- - -== Spindle Feedback[[spindle-feedback]] - -(((Spindle Feedback))) - -=== Spindle Synchronized Motion[[sec:Spindle-Synchronized-Motion]] - -(((Spindle Synchronized Motion))) - -Spindle feedback is needed by LinuxCNC to perform any spindle coordinated -motions like threading and constant surface speed. The StepConf Wizard -can perform the connections for you if you select Encoder Phase A and -Encoder Index as inputs. - -Hardware assumptions: - -* An encoder is connected to the spindle and puts out 100 pulses per - revolution on phase A -* The encoder A phase is connected to the parallel port pin 10 -* The encoder index pulse is connected to the parallel port pin 11 - -Basic Steps to add the components and configure them: -footnote:[In this example, we will assume that some encoders have already -been issued to axes/joints 0, 1, and 2. So the next encoder available for us -to attach to the spindle would be number 3. Your situation may differ.] -footnote:[The HAL encoder index-enable is an exception to the rule in that -it behaves as both an input and an output, see manual for details] -footnote:[It is because we selected 'non-quadrature simple counting...' above -that we can get away with 'quadrature' counting without having any -B quadrature input.] - ----- -# add the encoder to HAL and attach it to threads. -loadrt encoder num_chan=1 -addf encoder.update-counters base-thread -addf encoder.capture-position servo-thread - -# set the HAL encoder to 100 pulses per revolution. -setp encoder.3.position-scale 100 - -# set the HAL encoder to non-quadrature simple counting using A only. -setp encoder.3.counter-mode true - -# connect the HAL encoder outputs to LinuxCNC. -net spindle-position encoder.3.position => motion.spindle-revs -net spindle-velocity encoder.3.velocity => motion.spindle-speed-in -net spindle-index-enable encoder.3.index-enable <=> motion.spindle-index-enable - -# connect the HAL encoder inputs to the real encoder. -net spindle-phase-a encoder.3.phase-A <= parport.0.pin-10-in -net spindle-phase-b encoder.3.phase-B -net spindle-index encoder.3.phase-Z <= parport.0.pin-11-in ----- - -=== Spindle At Speed[[sec:Spindle-At-Speed]] - -(((Spindle At Speed))) - -To enable LinuxCNC to wait for the spindle to be at speed before executing -a series of moves you need to set motion.spindle-at-speed to true when -the spindle is at the commanded speed. To do this you need spindle -feedback from an encoder. Since the feedback and the commanded speed -are not usually 'exactly' the same you need to use the 'near' -component to say that the two numbers are close enough. - -The connections needed are from the spindle -velocity command signal to near.n.in1 and from the spindle velocity -from the encoder to near.n.in2. Then the near.n.out is connected to -motion.spindle-at-speed. The near.n.scale needs to be set to say how -close the two numbers must be before turning on the output. Depending -on your setup you may need to adjust the scale to work with your -hardware. - -The following is typical of the additions needed to your HAL -file to enable Spindle At Speed. If you already have near in your HAL -file then increase the count and adjust code to suit. Check to make -sure the signal names are the same in your HAL file. - ----- -# load a near component and attach it to a thread -loadrt near -addf near.0 servo-thread - -# connect one input to the commanded spindle speed -net spindle-cmd => near.0.in1 - -# connect one input to the encoder-measured spindle speed -net spindle-velocity => near.0.in2 - -# connect the output to the spindle-at-speed input -net spindle-at-speed motion.spindle-at-speed <= near.0.out - -# set the spindle speed inputs to agree if within 1% -setp near.0.scale 1.01 ----- - diff --git a/docs/src/examples/spindle_es.txt b/docs/src/examples/spindle_es.txt deleted file mode 100644 index 0209749834e..00000000000 --- a/docs/src/examples/spindle_es.txt +++ /dev/null @@ -1,247 +0,0 @@ -= Spindle Control - -[[cha:Spindle-Control]] (((Spindle Control))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== 0-10v Spindle Speed (((0-10v Spindle Speed))) - -If your spindle speed is controlled by an analog signal, -(for example, by a VFD with a 0 to 10 volt signal) and -you're using a DAC card like the m5i20 to output the control signal: - -First you need to figure the scale of spindle speed to control signal. -For this example the spindle top speed of 5000 RPM is equal to 10 -volts. - -image::images/spindle-math.png[align="center"] - -We have to add a scale component to the HAL file to scale the -motion.spindle-speed-out to the 0 to 10 needed by the VFD if your DAC -card does not do scaling. - ----- -loadrt scale count=1 -addf scale.0 servo-thread -setp scale.0.gain 0.002 -net spindle-speed-scale motion.spindle-speed-out => scale.0.in -net spindle-speed-DAC scale.0.out => ----- - -== PWM Spindle Speed (((PWM Spindle Speed))) - -If your spindle can be controlled by a PWM signal, -use the pwmgen component to create the signal: - ----- -loadrt pwmgen output_type=0 -addf pwmgen.update servo-thread -addf pwmgen.make-pulses base-thread -net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value -net spindle-on motion.spindle-on => pwmgen.0.enable -net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out -# Set the spindle's top speed in RPM -setp pwmgen.0.scale 1800 ----- - -This assumes that the spindle controller's response to PWM is simple: -0% PWM gives 0 RPM, 10% PWM gives 180 RPM, etc. If there is a minimum -PWM required to get the spindle to turn, follow the example in the -nist-lathe sample configuration to use a scale component. - -== Spindle Enable (((Spindle Enable))) - -If you need a spindle enable signal, -link your output pin to motion.spindle-on. -To link these pins to a parallel port pin put something like -the following in your .hal file, making sure you pick the -pin that is connected to your control device. - ----- -net spindle-enable motion.spindle-on => parport.0.pin-14-out ----- - -== Spindle Direction (((Spindle Direction))) - -If you have direction control of your spindle the HAL pins -motion.spindle-forward and motion.spindle-reverse are controlled by M3 -and M4. Spindle speed 'Sn' must be set to a positive non-zero value for -M3/M4 to turn on spindle motion. - -To link these pins to a parallel port pin, put something like the -following in your .hal file making sure you pick the pin that is -connected to your control device. - ----- -net spindle-fwd motion.spindle-forward => parport.0.pin-16-out -net spindle-rev motion.spindle-reverse => parport.0.pin-17-out ----- - -== Spindle Soft Start (((Spindle Soft Start))) - -If you need to ramp your spindle speed command and your control does -not have that feature it can be done in HAL. Basically you need to -hijack the output of motion.spindle-speed-out and run it through a -limit2 component with the scale set so it will ramp the rpm from -motion.spindle-speed-out to your device that receives the rpm. The -second part is to let LinuxCNC know when the spindle is at speed so motion -can begin. - -In the 0-10 volt example the line - 'net spindle-speed-scale motion.spindle-speed-out => scale.0.in' -is changed as shown in the following example: - -.Intro to HAL components limit2 and near: -********************************************************************* -In case you have not run across them before, here's a quick introduction -to the two HAL components used in the following example. - -* A "limit2" is a HAL component (floating point) that accepts an - input value and provides an output that has been limited to a - max/min range, and also limited to not exceed a specified - rate of change. - -* A "near" is a HAL component (floating point) with a binary output - that says whether two inputs are approximately equal. - -More info is available in the documentation for HAL components, -or from the man pages, just say 'man limit2' or 'man near' in a terminal. -********************************************************************* - ----- -# load real time a limit2 and a near with names so it is easier to follow -loadrt limit2 names=spindle-ramp -loadrt near names=spindle-at-speed - -# add the functions to a thread -addf spindle-ramp servo-thread -addf spindle-at-speed servo-thread - -# set the parameter for max rate-of-change -# (max spindle accel/decel in units per second) -setp spindle-ramp.maxv 60 - -# hijack the spindle speed out and send it to spindle ramp in -net spindle-cmd <= motion.spindle-speed-out => spindle-ramp.in - -# the output of spindle ramp is sent to the scale in -net spindle-ramped <= spindle-ramp.out => scale.0.in - -# to know when to start the motion we send the near component -# (named spindle-at-speed) to the spindle commanded speed from -# the signal spindle-cmd and the actual spindle speed -# provided your spindle can accelerate at the maxv setting. -net spindle-cmd => spindle-at-speed.in1 -net spindle-ramped => spindle-at-speed.in2 - -# the output from spindle-at-speed is sent to motion.spindle-at-speed -# and when this is true motion will start -net spindle-ready <= spindle-at-speed.out => motion.spindle-at-speed ----- - -== Spindle Feedback[[spindle-feedback]] - -(((Spindle Feedback))) - -=== Spindle Synchronized Motion[[sec:Spindle-Synchronized-Motion]] - -(((Spindle Synchronized Motion))) - -Spindle feedback is needed by LinuxCNC to perform any spindle coordinated -motions like threading and constant surface speed. The StepConf Wizard -can perform the connections for you if you select Encoder Phase A and -Encoder Index as inputs. - -Hardware assumptions: - -* An encoder is connected to the spindle and puts out 100 pulses per - revolution on phase A -* The encoder A phase is connected to the parallel port pin 10 -* The encoder index pulse is connected to the parallel port pin 11 - -Basic Steps to add the components and configure them: - ----- -# add the encoder to HAL and attach it to threads.footnote:[In this -example, we will assume that some encoders have already been issued -to axes/joints 0, 1, and 2. So the next encoder available for us to -attach to the spindle would be number 3. Your situation may differ.] -loadrt encoder num_chan=1 -addf encoder.update-counters base-thread -addf encoder.capture-position servo-thread - -# set the HAL encoder to 100 pulses per revolution. -setp encoder.3.position-scale 100 - -# set the HAL encoder to non-quadrature simple counting using A only. -setp encoder.3.counter-mode true - -# connect the HAL encoder outputs to LinuxCNC.footnote:[The HAL encoder -index-enable is an exception to the rule in that it behaves -as both an input and an output, see manual for details] -net spindle-position encoder.3.position => motion.spindle-revs -net spindle-velocity encoder.3.velocity => motion.spindle-speed-in -net spindle-index-enable encoder.3.index-enable <=> motion.spindle-index-enable - -# connect the HAL encoder inputs to the real encoder. -net spindle-phase-a encoder.3.phase-A <= parport.0.pin-10-in -net spindle-phase-b encoder.3.phase-B footnote:[It is because -we selected 'non-quadrature simple counting...' above that we -can get away with 'quadrature' counting without having any -B quadrature input.] -net spindle-index encoder.3.phase-Z <= parport.0.pin-11-in ----- - -=== Spindle At Speed[[sec:Spindle-At-Speed]] - -(((Spindle At Speed))) - -To enable LinuxCNC to wait for the spindle to be at speed before executing -a series of moves you need to set motion.spindle-at-speed to true when -the spindle is at the commanded speed. To do this you need spindle -feedback from an encoder. Since the feedback and the commanded speed -are not usually 'exactly' the same you need to use the 'near' -component to say that the two numbers are close enough. - -The connections needed are from the spindle -velocity command signal to near.n.in1 and from the spindle velocity -from the encoder to near.n.in2. Then the near.n.out is connected to -motion.spindle-at-speed. The near.n.scale needs to be set to say how -close the two numbers must be before turning on the output. Depending -on your setup you may need to adjust the scale to work with your -hardware. - -The following is typical of the additions needed to your HAL -file to enable Spindle At Speed. If you already have near in your HAL -file then increase the count and adjust code to suit. Check to make -sure the signal names are the same in your HAL file. - ----- -# load a near component and attach it to a thread -loadrt near -addf near.0 servo-thread - -# connect one input to the commanded spindle speed -net spindle-cmd => near.0.in1 - -# connect one input to the encoder-measured spindle speed -net spindle-velocity => near.0.in2 - -# connect the output to the spindle-at-speed input -net spindle-at-speed motion.spindle-at-speed <= near.0.out - -# set the spindle speed inputs to agree if within 1% -setp near.0.scale 1.01 ----- - diff --git a/docs/src/examples/spindle_fr.txt b/docs/src/examples/spindle_fr.txt deleted file mode 100644 index 3de83bfec68..00000000000 --- a/docs/src/examples/spindle_fr.txt +++ /dev/null @@ -1,214 +0,0 @@ -:lang: fr -:toc: - -= Contrôle de la broche - -[[cha:Controle-broche]] (((Contrôle de la broche))) - -== Vitesse broche en 0-10V (((Vitesse broche en 0-10V))) - -Si la vitesse de la broche est contrôlée par un variateur de -fréquence avec une consigne vitesse en 0 à 10V et qu'une carte de conversion -(DAC) comme la m5i20 est utilisée pour sortir le signal. - -Premièrement il faut calculer le facteur d'échelle entre la vitesse -broche et la tension de commande. Dans cet exemple, la vitesse maximale -de la broche sera de 5000 tr/mn pour une tension de commande de 10V. -10 Volts/5000 tr/mn = 0.002 Volts par tr/mn notre facteur d'échelle sera donc -de 0.002. - -Si la carte DAC ne dispose pas d'une fonction échelle, il est nécessaire -d'ajouter un composant _scale_ (echelle) au fichier hal pour calibrer -_motion.spindle-speed-out_ entre 0 et 10 comme demandé par le variateur -de fréquence. ----- -loadrt scale count=1 -addf scale.0 servo-thread -setp scale.0.gain 0.002 -net spindle-speed-scale motion.spindle-speed-out => scale.0.in -net spindle-speed-DAC scale.0.out => «le nom de la sortie de votre DAC» ----- - -== Vitesse de broche en PWM (((Vitesse de broche en PWM))) - -Si la vitesse de la broche peut être contrôlée par un signal de -PWM, utiliser le composant _pwmgen_ pour créer le signal: ----- -loadrt pwmgen output_type=0 -addf pwmgen.update servo-thread -addf pwmgen.make-pulses base-thread -net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value -net spindle-on motion.spindle-on => pwmgen.0.enable -net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out -# Adapter selon la vitesse maximale de la broche en tr/mn -setp pwmgen.0.scale 1800 ----- - -La réponse du contrôleur de PWM est simple: 0% donne 0tr/mn, 10% -donnent 180 tr/mn... 100% donnent 1800 tr/mn. Si un minimum est -nécessaire pour faire tourner la broche, suivre l'exemple _nist-lathe_ -fourni dans les exemples de configuration pour ajouter un composant -d'échelle. - -== Marche broche (((Marche broche))) - -Si un signal de marche broche reliant _motion.spindle-on_ à une broche de -sortie physique est envisagé. Pour relier ces pins à une broche du -port parallèle, ajouter une ligne comme la suivante dans le fichier .hal, -il faut bien sûr qu'elle soit câblée à l'interface de contrôle. ----- -net spindle-enable motion.spindle-on => parport.0.pin-14-out ----- - -== Sens de rotation de la broche (((Sens de rotation de la broche))) - -Pour contrôler le sens de rotation de la broche, les pins de HAL -_motion.spindle-forward_ et _motion.spindle-reverse_ étant contrôlées par M3 et -M4, peuvent être mise à une valeur positive différente de zéro pour que -M3/4 inverse le sens de la broche. - -Pour relier ces pins à des broches du port parallèle utiliser, par -exemple, les lignes suivantes dans le fichier .hal, bien sûr ces -broches doivent être câblées à l'interface de contrôle. ----- -net spindle-fwd motion.spindle-forward -> parport.0.pin-16-out -net spindle-rev motion.spindle-reverse => parport.0.pin-17-out ----- - -== Démarrage en rampe(((Démarrage en rampe))) - -Si la broche doit démarrer en rampe et que le contrôleur n'a pas cette -possibilité, HAL pourra le faire. Il faut premièrement détourner la sortie de -_motion.spindle-speed-out_ et la faire transiter par un composant _limit2_ -dont l'échelle est ajustée de sorte que la consigne suive une rampe entre -_motion.spindle-speed-out_ et le périphérique recevant la consigne de vitesse. -Ensuite, il faut faire connaitre à LinuxCNC le moment ou la broche a atteint sa -vitesse pour que les mouvements puissent commencer. - -Reprenant dans l'exemple en 0-10 V, la ligne: ----- -net spindle-speed-scale motion.spindle-speed-out => scale.0.in ----- - -sera modifiée, comme indiqué dans l'exemple ci-dessous: - -.Introduction aux composants de HAL _limit2_ et _near_: -**** -Au cas ou vous ne les auriez jamais rencontré auparavant, voici une rapide -introduction à ces deux composants de HAL utilisés dans l'exemple suivant. - -* Le composant de HAL _limit2_ est un composant qui reçoit - une valeur sur une entrée et fourni une valeur en sortie, limitée entre les - seuils min et max et _également_, limitée pour ne pas dépasser - l'amortissement spécifié. En d'autres termes, les fluctuations de la valeur - de sortie seront toujours lentes et cette lenteur est ajustable. - -* Le composant de HAL _near_ est un composant à deux entrées et une sortie - binaire qui indique quand les deux entrées sont approximativement égales. - -Voir le manuel de HAL ou les man pages, taper juste _man limit2_ ou _man near_. -**** ----- -# charge un composant temps réel limit2 et un near avec des noms aisés à suivre -loadrt limit2 names=spindle-ramp -loadrt near names=spindle-at-speed - -# ajoute les fonctions au thread -addf spindle-ramp servo-thread -addf spindle-at-speed servo-thread - -# fixe le paramètre max pour l'amortissement -# (accélération/décélération de la broche en unités par seconde) -setp spindle-ramp.maxv 60 - -# détourne la sortie vitesse broche et l'envoie à l'entrée de la rampe -net spindle-cmd <= motion.spindle-speed-out => spindle-ramp.in - -# la sortie de la rampe est envoyée à l'entrée de l'échelle -net spindle-ramped <= spindle-ramp.out => scale.0.in - -# pour connaitre quand commencer le mouvement on envoie la vitesse de broche -# commandée à une entrée du composant spindle-at-speed (qui est un composant near). -# on envoie également le signal de fin de rampe (vitesse actuelle) -# sur l'autre entrée de spindle-at-speed -net spindle-cmd => spindle-at-speed.in1 -net spindle-ramped => spindle-at-speed.in2 - -# la sortie de spindle-at-speed est envoyée à motion.spindle-at-speed -# et quand elle devient TRUE, les mouvements peuvent commencer -net spindle-ready <= spindle-at-speed.out => motion.spindle-at-speed ----- - -== Vitesse de broche avec signal de retour - -Une information de retour est nécessaire pour que LinuxCNC puisse réaliser -des mouvements synchronisés avec la broche comme le filetage ou la -vitesse de coupe constante. L'assistant de configuration StepConf peut -réaliser les connections lui même si les signaux _Canal A codeur broche_ et -_Index codeur broche_ sont choisis parmi les entrées. - -Matériel supposé présent: - - - Un codeur est monté sur la broche et délivre 100 impulsions par tour - sur son canal A. - - Ce canal A est raccordé à la broche 10 du port parallèle. - - L'index de ce codeur est connecté à la broche 11 du port parallèle. - -Configuration de base pour ajouter ces composants: ----- -loadrt encoder num_chan=1 -addf encoder.update-counters base-thread -addf encoder.capture-position servo-thread -setp encoder.0.position-scale 100 -setp encoder.0.counter-mode 1 -net spindle-position encoder.0.position => motion.spindle-revs -net spindle-velocity encoder.0.velocity => motion.spindle-speed-in -net spindle-index-enable encoder.0.index-enable <=> motion.spindle-index-enable -net spindle-phase-a encoder.0.phase-A -net spindle-phase-b encoder.0.phase-B -net spindle-index encoder.0.phase-Z -net spindle-phase-a <= parport.0.pin-10-in -net spindle-index <= parport.0.pin-11-in ----- - -[[sec:Vitesse-Broche-Atteinte]] -== Vitesse broche atteinte -(((Vitesse broche atteilte))) - -Si le moteur de broche possède un retour d'information de vitesse provenant d'un -codeur, il est alors possible d'utiliser la variable _motion.spindle-at-speed_ -pour permettre à LinuxCNC d'attendre que la broche ait atteint sa vitesse de consigne -avant d'effectuer tout mouvement. Cette variable passe à TRUE quand la vitesse -commandée est atteinte. Comme le retour vitesse est la vitesse de consigne -ne sont jamais _exactement_ identiques, il faut utiliser le composant _near_ -qui indique quand les deux composantes sont suffisamment proches l'une de l'autre. - -Il est nécessaire de connecter la commande de vitesse broche sur near.n.in1 et -le signal de retour vitesse du codeur sur near.n.in2. La sortie near.n.out est -connectée à motion.spindle-at-speed. Le paramètre near.n.scale doit être ajusté -pour indiquer dans quelle mesure les deux valeurs sont suffisamment proches -pour passer activer la sortie. Selon le matériel utilisé, il pourra être utile -d'ajuster l'échelle. - -Les éléments suivants sont à ajouter au fichier HAL pour activer _Spindle At Speed_. -Si near est déjà présent dans le fichier HAL, augmenter le numéro de composant et -adapter le code suivant en conséquence. S'assurer que le nom du signal est bien -le même dans le fichier HAL. ----- -# charger un composant near et l'attacher à un thread -loadrt near -addf near.0 servo-thread - -# connecter une entrée à la vitesse de broche commandée -net spindle-cmd => near.0.in1 - -# connecter une entrée à la mesure de vitesse broche du codeur -net spindle-velocity => near.0.in2 - -# connecter la sortie sur l'entrée spindle-at-speed -net spindle-at-speed motion.spindle-at-speed <= near.0.out - -# Ajuster les entrées de vitesse de broche pour être dans une fourchette de 1% -setp near.0.scale 1.01 ----- - diff --git a/docs/src/gcode/.gitignore b/docs/src/gcode/.gitignore deleted file mode 100644 index 8abddf3071b..00000000000 --- a/docs/src/gcode/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -coordinates -coordinates.tex -main -main.tex -mill_canned -mill_canned.aux -mill_canned.dvi -mill_canned.log -mill_canned.tex -mill_canned_fr.aux -mill_canned_fr.dvi -mill_canned_fr.log -mill_canned_fr.tex -tool_compensation -tool_compensation.tex diff --git a/docs/src/gcode/coordinates.txt b/docs/src/gcode/coordinates.txt deleted file mode 100644 index e8ae8f4bbc5..00000000000 --- a/docs/src/gcode/coordinates.txt +++ /dev/null @@ -1,341 +0,0 @@ -= Coordinate System - -[[cha:coordinate-system]] (((Coordinate System))) - -== Introduction - -You have seen how handy a tool length offset can be. Having this -allows the programmer to ignore the actual tool length when writing a -part program. In the same way, it is really nice to be able to find a -prominent part of a casting or block of material and work a program -from that point rather than having to take account of the location at -which the casting or block will be held during the machining. - -This chapter introduces you to offsets as they are used by the LinuxCNC. -These include; - -* machine coordinates (G53) -* nine fixture offsets (G54-G59.3) -* global offsets (G92) - -== The Machine Position Command (G53) - -Regardless of any offsets that may be in effect, putting a G53 in a -block of code tells the interpreter to go to the real or absolute axis -positions commanded in the block. For example - ----- -G53 G0 X0 Y0 Z0 ----- - -will get you to the actual position where these three axes are zero. -You might use a command like this if you have a favorite position for -tool changes or if your machine has an auto tool changer. You might -also use this command to get the tool out of the way so that you can -rotate or change a part in a vice. - -G53 is not a modal command. It must be used on each line where motion -based upon absolute machine position is desired. - -== Fixture Offsets (G54-G59.3) - -image::images/offsets.png[] - -.Fixture Offsets[[cap:Fixture-Offsets]] - -Work or fixture offset are used to make a part home that is different -from the absolute, machine coordinate system. This allows the part -programmer to set up home positions for multiple parts. A typical -operation that uses fixture offsets would be to mill multiple copies of -parts on multiple part holders or vises. - -The values for offsets are stored in the VAR file that is requested by -the INI file during the startup of an LinuxCNC. In our example below we'll -use (((G55)))G55. The values for each axis for G55 are stored as -variable numbers. - -[width="40%",cols="^,^",options="header"] -|=============== -|Variable |Value -|5241 |0.000000 -|5242 |0.000000 -|5243 |0.000000 -|5244 |0.000000 -|5245 |0.000000 -|5246 |0.000000 -|=============== - -In the VAR file scheme, the first variable number stores the X offset, -the second the Y offset and so on for all six axes. There are numbered -sets like this for each of the fixture offsets. - -Each of the graphical interfaces has a way to set values for these -offsets. You can also set these values by editing the VAR file itself -and then restarting LinuxCNC so that the LinuxCNC reads the new values however -this is not the recommended way. G10, G92, G28.1, etc are better ways -to affect variables. For our example let's directly edit the file so -that G55 takes on the following values. - -[width="40%",cols="^,^",options="header"] -|=============== -|Variable |Value -|5241 |2.000000 -|5242 |1.000000 -|5243 |-2.000000 -|5244 |0.000000 -|5245 |0.000000 -|5246 |0.000000 -|=============== - -You should read this as moving the zero positions of G55 to X = 2 -units, Y= 1 unit, and Z = -2 units away from the absolute zero -position. - -Once there are values assigned, a call to G55 in a program block would -shift the zero reference by the values stored. The following line would -then move each axis to the new zero position. Unlike G53, G54 through -G59.3 are modal commands. They will act on all blocks of code after one -of them has been set. The program that might be run using -fixture offsets would require only a single coordinate -reference for each of the locations and all of the work to be done -there. The following code is offered as an example of making a square -using the G55 offsets that we set above. - ----- -G55 G0 X0 Y0 Z0 -G1 F2 Z-0.2000 -X1 -Y1 -X0 -Y0 -G0 Z0 -G54 X0 Y0 Z0 -M2 ----- - -But, you say, why is there a G54 in there near the end. Many -programmers leave the G54 coordinate system with all zero values so -that there is a modal code for the absolute machine based axis -positions. This program assumes that we have done that and use the -ending command as a command to machine zero. It would have been -possible to use g53 and arrive at the same place but that command would -not have been modal and any commands issued after it would have -returned to using the G55 offsets because that coordinate system would -still be in effect. - -// Note for some strange reason a single tab is required to make the following -// ListingBlock format correctly. - ----- -G54 use preset work coordinate system 1 -G55 use preset work coordinate system 2 -G56 use preset work coordinate system 3 -G57 use preset work coordinate system 4 -G58 use preset work coordinate system 5 -G59 use preset work coordinate system 6 -G59.1 use preset work coordinate system 7 -G59.2 use preset work coordinate system 8 -G59.3 use preset work coordinate system 9 ----- - -=== Default coordinate system - -One other variable in the VAR file becomes important when we think -about offset systems. This variable is named 5220. In the default files -its value is set to 1.00000. This means that when the LinuxCNC starts up it -should use the first coordinate system as its default. If you set this -to 9.00000 it would use the ninth offset system as its default for -start up and reset. Any value other than an integer (decimal really) -between 1 and 9, or a missing 5220 variable will cause the LinuxCNC to -revert to the default value of 1.00000 on start up. - -=== Setting coordinate (fixture) offsets from G code - -The G10 L2x command can be used to set coordinate (fixture) offsets: - (these are just quick summaries, see the G code section for full details) - -* 'G10 L2 P(fixture 1-9)' - Set offset(s) to a value. Current position irrelevant. - (see <> for details) - -* 'G10 L20 P(fixture 1-9)' - Set offset(s) so current position becomes a value. - (see <> for details) - -== G92 Offsets[[sec:G92-Offsets]] - -=== The G92 commands - -This set of commands include; - -* 'G92' - This command, when used with axis names, sets values to offset - variables. - -* 'G92.1' - This command sets zero values to the G92 variables. - -* 'G92.2' - This command suspends but does not zero out the G92 - variables. - -* 'G92.3' - This command applies offset values that have been suspended. - -When the commands are used as described above, they will work pretty -much as you would expect. - -To make the current point, what ever it is, -have the coordinates X0, Y0, and Z0 you would use G92 X0 Y0 Z0. -G92 *does not* work from absolute machine coordinates. -It works from *current location*. - -G92 also works from current location as modified by any other offsets -that are in effect when the G92 command is invoked. While testing for -differences between work offsets and actual offsets it was found that a -G54 offset could cancel out a G92 and thus give the appearance that no -offsets were in effect. However, the G92 was still in effect for all -coordinates and did produce expected work offsets for the other -coordinate systems. - -It is a good practice to clear the G92 offsets at the end of their -use with G92.1 or G92.2. When starting up LinuxCNC if any offsets are -in the G92 variables they will be applied when an axis is homed. - -=== Setting G92 values - -There are at least two ways to set G92 values. - -* right mouse click on position displays of tkLinuxCNC will popup a window - into which you can type a value. -* the G92 command - -Both of these work from the current location of the axis to which the -offset is to be applied. - -Issuing 'G92 X Y Z A B C U V W' does in fact set values to the G92 variables -such that each axis takes on the value associated with its name. -These values are assigned to the current position of the machine axis. -These results satisfy paragraphs one and two of the NIST document. - -G92 commands work from current axis location and add and subtract -correctly to give the current axis position the value assigned by the -G92 command. The effects work even though previous offsets are in. - -So if the X axis is currently showing 2.0000 as its position a 'G92 X0' -will set an offset of -2.0000 so that the current location of X becomes -zero. A 'G92 X2' will set an offset of 0.0000 and the displayed position -will not change. A 'G92 X5.0000' will set an offset of 3.0000 so that the -current displayed position becomes 5.0000. - -=== G92 Cautions - -Sometimes the values of a G92 offset will remain in the VAR file. This -can happen when a file is aborted during processing that has G92 -offsets in effect. When this happens reset or a startup will cause them -to become active again. - -The variables are named: - -[width="40%",cols="^,^",options="header"] -|=============== -|Variable |Value -|5211 | 0.000000 -|5212 | 0.000000 -|5213 | 0.000000 -|5214 | 0.000000 -|5215 | 0.000000 -|5216 | 0.000000 -|=============== - -where 5211 is the X axis offset and so on. If you are seeing -unexpected positions as the result of a commanded move, as a result of -storing an offset in a previous program and not clearing them at the end -then issue a G92.1 in the MDI window to clear the stored offsets. - -If G92 values exist in the VAR file when LinuxCNC starts up, the G92 -values in the var file will be applied to the values of the current -location of each axis. If this is home position and home position is -set as machine zero everything will be correct. Once home has been -established using real machine switches, or by moving each axis to a known -home position and issuing an axis home command, any G92 offsets will be -applied. If you have a G92 X1 in effect when you home the X axis the -DRO will read 'X: 1.000' instead of the expected 'X: 0.000' because the -G92 was applied to the machine origin. If you issue a G92.1 and the DRO -now reads all zeros then you had a G92 offset in effect when you last -ran LinuxCNC. - -Unless your intention is to use the same G92 offsets in the next -program, the best practice is to issue a G92.1 at the end of any G Code -files where you use G92 offsets. - -== Sample Program Using Offsets - -This sample engraving project mills a set of four .1 radius circles in -roughly a star shape around a center circle. We can setup the -individual circle pattern like this. - ---------------------------------------------------------------------- -G10 L2 P1 X0 Y0 Z0 (ensure that G54 is set to machine zero) -G0 X-0.1 Y0 Z0 -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G0 Z0 -M2 ---------------------------------------------------------------------- - -We can issue a set of commands to create offsets for the four other -circles like this. - ------------------------------------------------------------ -G10 L2 P2 X0.5 (offsets G55 X value by 0.5 inch) -G10 L2 P3 X-0.5 (offsets G56 X value by -0.5 inch) -G10 L2 P4 Y0.5 (offsets G57 Y value by 0.5 inch) -G10 L2 P5 Y-0.5 (offsets G58 Y value by -0.5 inch) ------------------------------------------------------------ - -We put these together in the following program: - ---------------------------------------------------------------------- -(a program for milling five small circles in a diamond shape) - -G10 L2 P1 X0 Y0 Z0 (ensure that G54 is machine zero) -G10 L2 P2 X0.5 (offsets G55 X value by 0.5 inch) -G10 L2 P3 X-0.5 (offsets G56 X value by -0.5 inch) -G10 L2 P4 Y0.5 (offsets G57 Y value by 0.5 inch) -G10 L2 P5 Y-0.5 (offsets G58 Y value by -0.5 inch) - -G54 G0 X-0.1 Y0 Z0 (center circle) -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G0 Z0 - -G55 G0 X-0.1 Y0 Z0 (first offset circle) -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G0 Z0 - -G56 G0 X-0.1 Y0 Z0 (second offset circle) -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G0 Z0 - -G57 G0 X-0.1 Y0 Z0 (third offset circle) -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G0 Z0 - -G58 G0 X-0.1 Y0 Z0 (fourth offset circle) -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G54 G0 X0 Y0 Z0 - -M2 ---------------------------------------------------------------------- - -Now comes the time when we might apply a set of G92 offsets to this -program. You'll see that it is running in each case at Z0. If the mill -were at the zero position, a G92 Z1.0000 issued at the head of the -program would shift everything down an inch. You might also shift the -whole pattern around in the XY plane by adding some X and Y offsets -with G92. If you do this you should add a G92.1 command just before the -m2 that ends the program. If you do not, other programs that you might -run after this one will also use that G92 offset. Furthermore it would -save the G92 values when you shut down the LinuxCNC and they will be -recalled when you start up again. - - diff --git a/docs/src/gcode/coordinates_es.txt b/docs/src/gcode/coordinates_es.txt deleted file mode 100644 index 13949907968..00000000000 --- a/docs/src/gcode/coordinates_es.txt +++ /dev/null @@ -1,351 +0,0 @@ -= Coordinate System - -[[cha:coordinate-system]] (((Coordinate System))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Introduction - -You have seen how handy a tool length offset can be. Having this -allows the programmer to ignore the actual tool length when writing a -part program. In the same way, it is really nice to be able to find a -prominent part of a casting or block of material and work a program -from that point rather than having to take account of the location at -which the casting or block will be held during the machining. - -This chapter introduces you to offsets as they are used by the LinuxCNC. -These include; - -* machine coordinates (G53) -* nine fixture offsets (G54-G59.3) -* global offsets (G92) - -== The Machine Position Command (G53) - -Regardless of any offsets that may be in effect, putting a G53 in a -block of code tells the interpreter to go to the real or absolute axis -positions commanded in the block. For example - ----- -G53 G0 X0 Y0 Z0 ----- - -will get you to the actual position where these three axes are zero. -You might use a command like this if you have a favorite position for -tool changes or if your machine has an auto tool changer. You might -also use this command to get the tool out of the way so that you can -rotate or change a part in a vice. - -G53 is not a modal command. It must be used on each line where motion -based upon absolute machine position is desired. - -== Fixture Offsets (G54-G59.3) - -image::images/offsets.png[] - -.Fixture Offsets[[cap:Fixture-Offsets]] - -Work or fixture offset are used to make a part home that is different -from the absolute, machine coordinate system. This allows the part -programmer to set up home positions for multiple parts. A typical -operation that uses fixture offsets would be to mill multiple copies of -parts on multiple part holders or vises. - -The values for offsets are stored in the VAR file that is requested by -the INI file during the startup of an LinuxCNC. In our example below we'll -use (((G55)))G55. The values for each axis for G55 are stored as -variable numbers. - -[width="40%",cols="^,^",options="header"] -|=============== -|Variable |Value -|5241 |0.000000 -|5242 |0.000000 -|5243 |0.000000 -|5244 |0.000000 -|5245 |0.000000 -|5246 |0.000000 -|=============== - -In the VAR file scheme, the first variable number stores the X offset, -the second the Y offset and so on for all six axes. There are numbered -sets like this for each of the fixture offsets. - -Each of the graphical interfaces has a way to set values for these -offsets. You can also set these values by editing the VAR file itself -and then restarting LinuxCNC so that the LinuxCNC reads the new values however -this is not the recommended way. G10, G92, G28.1, etc are better ways -to affect variables. For our example let's directly edit the file so -that G55 takes on the following values. - -[width="40%",cols="^,^",options="header"] -|=============== -|Variable |Value -|5241 |2.000000 -|5242 |1.000000 -|5243 |-2.000000 -|5244 |0.000000 -|5245 |0.000000 -|5246 |0.000000 -|=============== - -You should read this as moving the zero positions of G55 to X = 2 -units, Y= 1 unit, and Z = -2 units away from the absolute zero -position. - -Once there are values assigned, a call to G55 in a program block would -shift the zero reference by the values stored. The following line would -then move each axis to the new zero position. Unlike G53, G54 through -G59.3 are modal commands. They will act on all blocks of code after one -of them has been set. The program that might be run using -fixture offsets would require only a single coordinate -reference for each of the locations and all of the work to be done -there. The following code is offered as an example of making a square -using the G55 offsets that we set above. - ----- -G55 G0 X0 Y0 Z0 -G1 F2 Z-0.2000 -X1 -Y1 -X0 -Y0 -G0 Z0 -G54 X0 Y0 Z0 -M2 ----- - -But, you say, why is there a G54 in there near the end. Many -programmers leave the G54 coordinate system with all zero values so -that there is a modal code for the absolute machine based axis -positions. This program assumes that we have done that and use the -ending command as a command to machine zero. It would have been -possible to use g53 and arrive at the same place but that command would -not have been modal and any commands issued after it would have -returned to using the G55 offsets because that coordinate system would -still be in effect. - ----- -G54 use preset work coordinate system 1 -G55 use preset work coordinate system 2 -G56 use preset work coordinate system 3 -G57 use preset work coordinate system 4 -G58 use preset work coordinate system 5 -G59 use preset work coordinate system 6 -G59.1 use preset work coordinate system 7 -G59.2 use preset work coordinate system 8 -G59.3 use preset work coordinate system 9 ----- - -=== Default coordinate system - -One other variable in the VAR file becomes important when we think -about offset systems. This variable is named 5220. In the default files -its value is set to 1.00000. This means that when the LinuxCNC starts up it -should use the first coordinate system as its default. If you set this -to 9.00000 it would use the ninth offset system as its default for -start up and reset. Any value other than an integer (decimal really) -between 1 and 9, or a missing 5220 variable will cause the LinuxCNC to -revert to the default value of 1.00000 on start up. - -=== Setting coordinate (fixture) offsets from G code - -The G10 L2x command can be used to set coordinate (fixture) offsets: - (these are just quick summaries, see the G code section for full details) - -* 'G10 L2 P(fixture 1-9)' - Set offset(s) to a value. Current position irrelevant. - (see <> for details) - -* 'G10 L20 P(fixture 1-9)' - Set offset(s) so current position becomes a value. - (see <> for details) - -== G92 Offsets[[sec:G92-Offsets]] - -=== The G92 commands - -This set of commands include; - -* 'G92' - This command, when used with axis names, sets values to offset - variables. - -* 'G92.1' - This command sets zero values to the G92 variables. - -* 'G92.2' - This command suspends but does not zero out the G92 - variables. - -* 'G92.3' - This command applies offset values that have been suspended. - -When the commands are used as described above, they will work pretty -much as you would expect. - -To make the current point, what ever it is, -have the coordinates X0, Y0, and Z0 you would use G92 X0 Y0 Z0. -G92 *does not* work from absolute machine coordinates. -It works from *current location*. - -G92 also works from current location as modified by any other offsets -that are in effect when the G92 command is invoked. While testing for -differences between work offsets and actual offsets it was found that a -G54 offset could cancel out a G92 and thus give the appearance that no -offsets were in effect. However, the G92 was still in effect for all -coordinates and did produce expected work offsets for the other -coordinate systems. - -It is a good practice to clear the G92 offsets at the end of their -use with G92.1 or G92.2. When starting up LinuxCNC if any offsets are -in the G92 variables they will be applied when an axis is homed. - -=== Setting G92 values - -There are at least two ways to set G92 values. - -* right mouse click on position displays of tkLinuxCNC will popup a window - into which you can type a value. -* the G92 command - -Both of these work from the current location of the axis to which the -offset is to be applied. - -Issuing 'G92 X Y Z A B C U V W' does in fact set values to the G92 variables -such that each axis takes on the value associated with its name. -These values are assigned to the current position of the machine axis. -These results satisfy paragraphs one and two of the NIST document. - -G92 commands work from current axis location and add and subtract -correctly to give the current axis position the value assigned by the -G92 command. The effects work even though previous offsets are in. - -So if the X axis is currently showing 2.0000 as its position a 'G92 X0' -will set an offset of -2.0000 so that the current location of X becomes -zero. A 'G92 X2' will set an offset of 0.0000 and the displayed position -will not change. A 'G92 X5.0000' will set an offset of 3.0000 so that the -current displayed position becomes 5.0000. - -=== G92 Cautions - -Sometimes the values of a G92 offset will remain in the VAR file. This -can happen when a file is aborted during processing that has G92 -offsets in effect. When this happens reset or a startup will cause them -to become active again. - -The variables are named: - -[width="40%",cols="^,^",options="header"] -|=============== -|Variable |Value -|5211 | 0.000000 -|5212 | 0.000000 -|5213 | 0.000000 -|5214 | 0.000000 -|5215 | 0.000000 -|5216 | 0.000000 -|=============== - -where 5211 is the X axis offset and so on. If you are seeing -unexpected positions as the result of a commanded move, as a result of -storing an offset in a previous program and not clearing them at the end -then issue a G92.1 in the MDI window to clear the stored offsets. - -If G92 values exist in the VAR file when LinuxCNC starts up, the G92 -values in the var file will be applied to the values of the current -location of each axis. If this is home position and home position is -set as machine zero everything will be correct. Once home has been -established using real machine switches, or by moving each axis to a known -home position and issuing an axis home command, any G92 offsets will be -applied. If you have a G92 X1 in effect when you home the X axis the -DRO will read 'X: 1.000' instead of the expected 'X: 0.000' because the -G92 was applied to the machine origin. If you issue a G92.1 and the DRO -now reads all zeros then you had a G92 offset in effect when you last -ran LinuxCNC. - -Unless your intention is to use the same G92 offsets in the next -program, the best practice is to issue a G92.1 at the end of any G Code -files where you use G92 offsets. - -== Sample Program Using Offsets - -This sample engraving project mills a set of four .1 radius circles in -roughly a star shape around a center circle. We can setup the -individual circle pattern like this. - ---------------------------------------------------------------------- -G10 L2 P1 X0 Y0 Z0 (ensure that G54 is set to machine zero) -G0 X-0.1 Y0 Z0 -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G0 Z0 -M2 ---------------------------------------------------------------------- - -We can issue a set of commands to create offsets for the four other -circles like this. - ------------------------------------------------------------ -G10 L2 P2 X0.5 (offsets G55 X value by 0.5 inch) -G10 L2 P3 X-0.5 (offsets G56 X value by -0.5 inch) -G10 L2 P4 Y0.5 (offsets G57 Y value by 0.5 inch) -G10 L2 P5 Y-0.5 (offsets G58 Y value by -0.5 inch) ------------------------------------------------------------ - -We put these together in the following program: - ---------------------------------------------------------------------- -(a program for milling five small circles in a diamond shape) - -G10 L2 P1 X0 Y0 Z0 (ensure that G54 is machine zero) -G10 L2 P2 X0.5 (offsets G55 X value by 0.5 inch) -G10 L2 P3 X-0.5 (offsets G56 X value by -0.5 inch) -G10 L2 P4 Y0.5 (offsets G57 Y value by 0.5 inch) -G10 L2 P5 Y-0.5 (offsets G58 Y value by -0.5 inch) - -G54 G0 X-0.1 Y0 Z0 (center circle) -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G0 Z0 - -G55 G0 X-0.1 Y0 Z0 (first offset circle) -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G0 Z0 - -G56 G0 X-0.1 Y0 Z0 (second offset circle) -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G0 Z0 - -G57 G0 X-0.1 Y0 Z0 (third offset circle) -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G0 Z0 - -G58 G0 X-0.1 Y0 Z0 (fourth offset circle) -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G54 G0 X0 Y0 Z0 - -M2 ---------------------------------------------------------------------- - -Now comes the time when we might apply a set of G92 offsets to this -program. You'll see that it is running in each case at Z0. If the mill -were at the zero position, a G92 Z1.0000 issued at the head of the -program would shift everything down an inch. You might also shift the -whole pattern around in the XY plane by adding some X and Y offsets -with G92. If you do this you should add a G92.1 command just before the -m2 that ends the program. If you do not, other programs that you might -run after this one will also use that G92 offset. Furthermore it would -save the G92 values when you shut down the LinuxCNC and they will be -recalled when you start up again. - - diff --git a/docs/src/gcode/coordinates_fr.txt b/docs/src/gcode/coordinates_fr.txt deleted file mode 100644 index b15ca3e0720..00000000000 --- a/docs/src/gcode/coordinates_fr.txt +++ /dev/null @@ -1,363 +0,0 @@ -:lang: fr -:toc: - -= Systèmes de coordonnées et décalages - -[[cha:Systemes-de-coordonnees]] (((Systèmes de coordonnées))) - - -== Introduction - -Dans ce chapitre, nous allons tenter de démystifier les systèmes de coordonnées. -C'est une notion capitale pour maitriser le fonctionnement d'une machine CNC, sa -configuration et son utilisation. - -Nous montrerons également, qu'il est très intéressant d'utiliser un point de -référence sur le brut ou la pièce et de faire travailler le programme à partir -de ce point, sans avoir à tenir compte d'où est placée la pièce sur la -machine pendant l'usinage. -Ce chapitre va donc introduire les décalages et comment ils sont utilisés -par LinuxCNC: - -* Les coordonnées machine.(G53) -* Les neuf décalages d'origine pièce.(G54 à G59.3) -* Un jeu de décalages globaux.(G92) - -== Commande en coordonnées machine: G53 - -Indépendamment de tout décalage pouvant être actif, un G53 dans une ligne de -code indique à l'interpréteur de se déplacer aux positions réelles des axes -(positions absolues), commandées dans la ligne. Par exemple: - ----- -G53 G0 X0 Y0 Z0 ----- - -déplacera le mobile depuis la position actuelle vers la position où -les coordonnées machine des trois axes seront à zéro. Vous pouvez -utiliser cette commande si vous avez une position fixe pour le -changement d'outil ou si votre machine dispose d'un changeur -automatique. Vous pouvez aussi utiliser cette commande pour dégager la -zone de travail et accéder à la pièce dans l'étau. - -G53 est une commande non modale. Elle doit être utilisée sur chaque -ligne où un mouvement basé sur les coordonnées machine est souhaité. - -[[fig:decalages-ilots]] -== Décalages pièce (G54 à G59.3) - -image::images/offsets.png[] - -.Exemple de décalages pour 8 ilots - -Le décalage d'origine est utilisé pour séparer le point de référence -de la pièce, de l'origine machine, créant ainsi un système de -coordonnées (relatif), propre à chaque pièce et décalé du système de -coordonnées machine (absolu). Il permet, entre autre, dans le cas de -pièces multiples mais semblables, de créer en décalant ses origines, le -système de coordonnées de chaque pièce, le programme restant le même. -Un cas typique d'utilisation de cette fonctionnalité, pour usiner huit -ilots identiques sur la même pièce, est illustré sur la figure ci-dessus. - -Les valeurs des décalages sont enregistrées dans le fichier VAR qui -est requis par le fichier INI durant le démarrage de LinuxCNC. Dans l'exemple -ci-dessous, qui utilise (((G55)))G55, la valeur de chacun des axes de G55 -est enregistrée dans une variable numérotée. - -[width="40%",cols="^,^",options="header"] -|============== -|Variable|Valeur -|5241 |0.000000 -|5242 |0.000000 -|5243 |0.000000 -|5244 |0.000000 -|5245 |0.000000 -|5246 |0.000000 -|============== - -Dans le schéma d'un fichier VAR, la première variable contient la -valeur du décalage de l'axe X, la seconde variable le décalage de l'axe -Y et ainsi de suite pour les six axes. Il y a une série de variables de -ce genre pour chacun des décalages pièce. - -Chacune des interfaces graphiques offre un moyen de fixer les valeurs -de ces décalages. Vous pouvez également définir ces valeurs en -modifiant le fichier VAR lui-même, puis faire un [reset], pour que LinuxCNC -lise les nouvelles valeurs. Pour notre exemple, nous allons éditer -directement le fichier pour que G55 prenne les valeurs suivantes: - -[width="40%",cols="^,^",options="header"] -|============== -|Variable|Valeur -|5241 |2.000000 -|5242 |1.000000 -|5243 |-2.000000 -|5244 |0.000000 -|5245 |0.000000 -|5246 |0.000000 -|============== - -Vous pouvez voir que les positions zéro de G55 sont passées en X = 2, -Y = 1, et Z = -2 éloignées donc de l'origine absolue (machine). - -Une fois que les valeurs sont assignées, un appel de G55 dans une -ligne de programme décalera le point de référence zéro, l'origine, vers -les valeurs enregistrées. La ligne suivante décalera chacun des axes -vers sa nouvelle position d'origine. Contrairement à G53, les commandes -G54 à G59.3 sont modales. Elles agissent sur toutes les lignes de -G-code du programme après qu'une ait été rencontrée. Voyons le -programme qui pourrait être écrit à l'aide de la figure -<>, il suffira d'un seul point de -référence pour chacune des pièces pour faire tout le travail. Le code suivant -est proposé comme exemple pour faire un rectangle, il utilisera les -décalages G55 que nous avons expliqué précédemment. - ----- -G55 G0 X0 Y0 Z0 -G1 F2 Z-0.2000 -X1 -Y1 -X0 -Y0 -G0 Z0 -G54 X0 Y0 Z0 -M2 ----- - -'Mais,' dites vous, 'pourquoi y a-t-il un G54 vers la fin ?' C'est une -pratique courante de quitter le système de coordonnées G54 avec -l'ensemble des valeurs d'axes à zéro afin de laisser un code modal basé -sur les positions machine absolues. Nous le faisons avec cette commande -qui met la machine à zéro. Il aurait été possible d'utiliser G53 et -d'arriver au même endroit, mais la commande n'aurait pas été modale, -les commandes suivantes auraient voulu retourner dans le système de -coordonnées du G55 toujours actif. - ----- -G54 utilise les réglages du système de coordonnées 1(((G54))) -G55 utilise les réglages du système de coordonnées 2(((G55))) -G56 utilise les réglages du système de coordonnées 3(((G56))) -G57 utilise les réglages du système de coordonnées 4(((G57))) -G58 utilise les réglages du système de coordonnées 5(((G58))) -G59 utilise les réglages du système de coordonnées 6(((G59))) -G59.1 utilise les réglages du système de coordonnées 7(((G59.1))) -G59.2 utilise les réglages du système de coordonnées 8(((G59.2))) -G59.3 utilise les réglages du système de coordonnées 9(((G59.3))) ----- - -=== Système de coordonnées par défaut - -Une autre variable dans le fichier VAR joue un rôle important dans les -décalages, c'est la variable 5220. Dans les fichiers par défaut, sa -valeur est fixée à 1,00000. Ce qui signifie que lorsque LinuxCNC démarre, il -doit utiliser le premier système de coordonnées comme système par -défaut. Si vous définissez celui-ci à 9,00000 le neuvième système -décalé sera utilisé par défaut au démarrage du système et aux -réinitialisations. Toute valeur autre qu'un entier compris entre 1 et -9, ou l'absence de la variable 5220, provoquera au démarrage le retour -de LinuxCNC à la valeur par défaut de 1.00000. - -=== Réglage des décalages avec G10 - -La commande G10 L2x peut être utilisée pour modifier les valeurs des -décalages d'un système de coordonnées pièce: - (Nous donnons seulement ici un bref aperçu, se reporter aux sections du G-code -pour une description complète). - -* 'G10 L2 P(pièce 1-9)' - Ajuste les valeurs d'offset. La position courante -reste inchangée. - (voir la section<> pour les détails) - -* 'G10 L20 P(pièce 1-9)' - Ajuste les valeurs d'offset de sorte que la position -courante devienne la position donnée en paramètre. - (Voir la section <> pour les détails) - -[[sec:G92-Decalages]] -== Décalages d'axes G92 - -G92 est la plus incomprise et la plus maligne des commandes -programmables avec LinuxCNC. La façon dont elle fonctionne a un peu changé -entre les premières versions et l'actuelle. Ces changements ont sans -doute déconcerté de nombreux utilisateurs. Elle devrait être vue comme -une commande produisant un décalage temporaire, qui s'applique à tous -les autres décalages. - -=== Les commandes G92 - -Ce jeu de commandes inclus: - -* G92 - Cette commande, utilisée avec des mots d'axes, fixe les valeurs des -variables de décalage. - -* G92.1 - Cette commande met à zéro les valeurs des variables de G92. - -* G92.2 - Cette commande suspend, sans les mettre à zéro, les variables de G92. - -* G92.3 - Cette commande applique les valeurs de décalage qui ont -été suspendues. - -L'utilisateur doit bien comprendre le fonctionnement des valeurs de -G92. Pour faire en sorte que le point actuel ait les coordonnées X0, Y0 et Z0 -nous utiliserons 'G92 X0 Y0 Z0'. G92 *ne fonctionne pas* depuis le système de -coordonnées machine absolues. Il fonctionne à partir de *l'emplacement -actuel*. - -G92 travaille également à partir d'un emplacement actuel déjà modifié -par tout autre décalage actif au moment où la commande G92 est -invoquée. Lors de tests des différences entre les décalages de travail -et les décalages réels, il a été constaté qu'un décalage G54 pouvait -annuler un G92 et ainsi, donner l'apparence qu'aucun décalage n'était -actif. Toutefois, le G92 était toujours actif, pour toutes les -coordonnées et il a produit les décalages attendus pour tous les autres -systèmes de coordonnées. - -Lors du démarrage de LinuxCNC, si des offsets existent dans les variables de -G92, ils seront appliqués lors de la prise d'origine des axes concernés. -Il est donc de bonne pratique de mettre les offsets de G92 à zéro par G92.1 ou -un G92.2 à la fin de leur utilisation. - -=== Réglage des valeurs de G92 - -Il y a au moins deux façons d'établir les valeurs de G92. - -* Par un clic droit de la souris sur les afficheurs de position de - tklinuxcnc, une fenêtre s'ouvre dans laquelle il est possible de saisir une - valeur. -* Par la commande G92. - -Toutes les deux, fonctionnent depuis l'emplacement courant de l'axe -auquel le déplacement doit être appliqué. - -Programmer 'G92 X Y Z A B C U V W' fixe les valeurs des variables de G92 -de sorte que chaque axe prenne la valeur associée à son nom. Ces -valeurs sont assignées à la position courante des axes. Ces résultats -satisfont les paragraphes un et deux du document du NIST. - -Les commandes G92 fonctionnent à partir de la position courante de -l'axe, à laquelle elles ajoutent ou soustraient des valeurs pour donner -à la position courante la valeur assignée par la commande G92. Elles -prennent effet même si d'autres décalages sont déjà actifs. - -Ainsi, si l'axe X est actuellement en position X=2.000, un 'G92 X0' -fixera un décalage de -2.0000, de sorte que l'emplacement actuel de X -devienne X=0.000. Un nouveau 'G92 X5.000' fixera un décalage de 3.000 -et l'affichage indiquera une position courante X=5.000. - -=== Précautions avec G92 - -Parfois, les valeurs de décalage d'un G92 restent bloquées dans le -fichier VAR. Quand ça arrive, une ré-initialisation ou un redémarrage -peut les rendre de nouveau actives. Les variables sont numérotées: - -[width="40%",cols="^,^",options="header"] -|============== -|Variable|Valeur -|5211 | 0.000000 -|5212 | 0.000000 -|5213 | 0.000000 -|5214 | 0.000000 -|5215 | 0.000000 -|5216 | 0.000000 -|============== - -où 5211 est le numéro du décalage de l'axe X et ainsi de suite. Si -vous voyez des positions inattendues à la suite d'une commande de -déplacement, ou même des chiffres inattendus dans l'affichage de la -position lorsque vous démarrez, regardez ces variables dans le fichier -VAR pour vérifier si elles contiennent des valeurs. Si c'est le cas, -les mettre à zéro devrait solutionner le problème. - -Si des valeurs G92 existent dans le fichier VAR quand LinuxCNC démarre, ces -valeurs seront appliquées aux valeurs courantes des emplacements d'axe. -Si c'est sa position d'origine et que l'origine est définie au zéro machine, tout -sera correct. Une fois que l'origine machine a été établie en utilisant les -contacts d'origine machine, ou en déplaçant chaque axe à une position connue, puis -en envoyant la commande de prise d'origine de l'axe, tous les décalages G92 seront -appliqués. Si un X1 G92 est actif lors de la prise d'origine machine de l'axe X, -la visu affichera 'X: 1.000' au lieu du 'X: 0.000' attendu, c'est parce-que le -G92 a été appliqué à l'origine machine. Si vous passez un G92.1 et que la visu -affiche tous à zéro, alors c'est que vous avez encore l'effet de l'offset G92 -de la dernière session de LinuxCNC. - -Sauf si votre intention est d'utiliser les mêmes décalages G92 dans le prochain -programme, la meilleure pratique consiste à envoyer un G92.1 à la fin de tout -fichier de G-code dans lequel vous utilisez les compensations G92. - -== Exemple de programme utilisant les décalages d'axes - -Cet exemple de projet de gravure, usine un jeu de quatre cercles de -rayon .1 pouce dans une forme grossière d'étoile au centre du cercle. -Nous pouvons configurer individuellement les formes de la façon -suivante: - ----- -G10 L2 P1 X0 Y0 Z0 (assure que G54 a mis la machine à zéro) -G0 X-0.1 Y0 Z0 -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G0 Z0 -M2 ----- - -Nous pouvons émettre une série de commandes pour créer des décalages -pour les quatre autres cercles comme cela. - ----- -G10 L2 P2 X0.5 (décalages G55 X la valeur de 0.5 pouces) -G10 L2 P3 X-0.5 (décalages G56 X valeur de -0.5 pouces) -G10 L2 P4 Y0.5 (décalages G57 valeur Y de 0.5 pouces) -G10 L2 P5 Y-0.5 (décalages G58 valeur Y de -0.5 pouces) ----- - -Nous mettons ces ensembles dans le programme suivant: - ----- -(Un programme de fraisage de cinq petits cercles dans un losange) - -G10 L2 P1 X0 Y0 Z0 (assure que G54 a mis la machine à zéro) -G10 L2 P2 X0.5 (décalages G55 X la valeur de 0.5 pouces) -G10 L2 P3 X-0.5 (décalages G56 X la valeur de -0.5 pouces) -G10 L2 P4 Y0.5 (décalages G57 X la valeur de 0.5 pouces) -G10 L2 P5 Y-0.5 (décalages G58 X la valeur de -0.5 pouces) - -G54 G0 X-0.1 Y0 Z0 (cercle du centre) -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G0 Z0 - -G55 G0 X-0.1 Y0 Z0 (premier cercle compensé) -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G0 Z0 - -G56 G0 X-0.1 Y0 Z0 (deuxième cercle compensé) -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G0 Z0 - -G57 G0 X-0.1 Y0 Z0 (troisième cercle compensé) -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G0 Z0 - -G58 G0 X-0.1 Y0 Z0 (quatrième cercle compensé) -G1 F1 Z-0.25 -G3 X-0.1 Y0 I0.1 J0 -G54 G0 X0 Y0 Z0 - -M2 ----- - -Maintenant c'est le moment d'appliquer une série de décalages G92 -à ce programme. Vous verrez que c'est fait dans chaque cas de Z0. Si -la machine était à la position zéro, un G92 Z1.0000 placé en tête -de programme le décalerait d'un pouce. Vous pouvez également modifier -l'ensemble du dessin dans le plan XY en ajoutant quelques décalages x -et y avec G92. Si vous faites cela, vous devez ajouter une commande -G92.1 juste avant le M2 qui termine le programme. Si vous ne le faites -pas, les programmes que vous pourriez lancer après celui-ci, -utiliseront également les décalages G92. En outre, cela permettrait -d'éviter d'écrire les valeurs de G92 lorsque vous arrêtez LinuxCNC et donc, -d'éviter de les recharger quand vous démarrez à nouveau le programme. - - diff --git a/docs/src/gcode/gcode.txt b/docs/src/gcode/gcode.txt deleted file mode 100644 index 3771df9a511..00000000000 --- a/docs/src/gcode/gcode.txt +++ /dev/null @@ -1,2247 +0,0 @@ -= G Codes - -[[cha:g-codes]] (((G Codes))) - -:ini: {basebackend@docbook:'':ini} -:hal: {basebackend@docbook:'':hal} -:ngc: {basebackend@docbook:'':ngc} - -== Conventions - -Conventions used in this section - -In the G code prototypes the hyphen ('-') stands for a real value -and ('<>') denotes an optional item. - -If 'L-' is written in a prototype the '-' will often be referred to -as the 'L number', and so on for any other letter. - -In the G code prototypes the word 'axes' stands for any axis as defined -in your configuration. - -An optional value will be written like this ''. - -A real value may be: - -* An explicit number, '4' -* An expression, '[2+2]' -* A parameter value, '#88' -* A unary function value, 'acos[0]' - -In most cases, if 'axis' words are given -(any or all of 'X Y Z A B C U V W'), -they specify a destination point. - -Axis numbers are in the currently active coordinate system, -unless explicitly described as being -in the absolute coordinate system. - -Where axis words are optional, any omitted axes will retain their original value. - -Any items in the G code prototypes not explicitly described as -optional are required. - -The values following letters are often given as explicit numbers. -Unless stated otherwise, the explicit numbers can be real values. For -example, 'G10 L2' could equally well be written 'G[2*5] L[1+1]'. If the -value of parameter 100 were 2, 'G10 L#100' would also mean the same. - -If 'L-' is written in a prototype the '-' will often be referred to -as the 'L number', and so on for any other letter. - -== G Code Quick Reference Table[[quick-reference-table]] - -(((G Code Table))) - -[width="75%", options="header", cols="2^,5<"] -|==================================================================== -|Code |Description -|<> |Coordinated Straight Motion Rapid Rate -|<> |Coordinated Straight Motion Feed Rate -|<> |Coordinated Helical Motion Feed Rate -|<> |Dwell -|<> |Quadratic B-Spline -|<> |NURBs Block -|<> |Diameter Mode (lathe) -|<> |Radius Mode (lathe) -|<> |Set Tool Table Entry -|<> |Set Tool Table, Calculated, Workpiece -|<> |Set Tool Table, Calculated, Fixture -|<> |Coordinate System Origin Setting -|<> |Coordinate System Origin Setting Calculated -|<> |Plane Select -|<> |Units of Measure -|<> |Go to Predefined Position -|<> |Go to Predefined Position -|<> |Spindle Synchronized Motion -|<> |Rigid Tapping -|<> |Probing -|<> |Cancel Cutter Compensation -|<> |Cutter Compensation -|<> |Dynamic Cutter Compensation -|<> |Use Tool Length Offset from Tool Table -|<> |Dynamic Tool Length Offset -|<> |Cancel Tool Length Offset -|<> |Motion in Machine Coordinate System -|<> |Select Coordinate System (1 - 6) -|<> |Select Coordinate System (7 - 9) -|<> |Path Control Mode -|<> |Path Control Mode with Optional Tolerance -|<> |Drilling Cycle with Chip Breaking -|<> |Multi-pass Threading Cycle (Lathe) -|<> |Cancel Motion Modes -|<> |Drilling Cycle -|<> |Drilling Cycle with Dwell -|<> |Drilling Cycle with Peck -|<> |Boring Cycle, No Dwell, Feed Out -|<> |Boring Cycle, Stop, Rapid Out -|<> |Boring Cycle, Dwell, Feed Out -|<> |Distance Mode -|<> |Arc Distance Mode -|<> |Coordinate System Offset -|<> |Cancel Coordinate System Offsets -|<> |Restore Axis Offsets -|<> |Feed Modes -|<> |Constant Surface Speed -|<> |RPM Mode -|<> |Canned Cycle Z Retract Mode -|==================================================================== - -[[sec:G0]] -== G0 Rapid Move -(((G0 Rapid Move)))(((Rapid Move))) - -------------------- -G0 axes -------------------- - -For rapid linear (straight line) motion, program 'G0 'axes'', where -all the axis words are optional. The 'G0' is optional if the current -motion mode is 'G0'. This will produce coordinated linear motion to -the destination point at the maximum rapid rate (or slower). -It is expected that cutting will not take place when a 'G0' command is -executing. - -[[sub:rapid-velocity]] -=== Rapid Velocity Rate - -The MAX_VELOCITY setting in the ini file [TRAJ] section defines the maximum -rapid traverse rate. The maximum rapid traverse rate can be higher than the -individual axes MAX_VELOCITY setting during a coordinated move. The maximum -rapid traverse rate can be slower than the MAX_VELOCITY setting in the [TRAJ] -section if an axis MAX_VELOCITY or trajectory constraints limit it. - - -.G0 Example ----- -G90 (set absolute distance mode) -G0 X1 Y-2.3 (Rapid linear move from current location to X1 Y-2.3) -M2 (end program) ----- -* See <> & <> sections for more information. - -If cutter compensation is active, the motion will differ from -the above; see the <> Section. - -If 'G53' is programmed on the same line, the motion will also differ; -see the <> Section for more information. - -The path of a G0 rapid motion can be rounded at direction changes and depends -on the <> settings and maximum -acceleration of the axes. - -It is an error if: - -* An axis letter is without a real value. -* An axis letter is used that is not configured - -[[sec:G1]] -== G1 Linear Move -(((G1 Linear Move)))(((Linear Move))) - -------------------- -G1 axes -------------------- - -For linear (straight line) motion at programed <> -(for cutting or not), program 'G1 'axes'', where all the axis words are -optional. The 'G1' is optional if the current motion mode is 'G1'. This will -produce coordinated linear motion to the destination point at the current feed -rate (or slower if the machine will not go that fast). - -.G1 Example ----- -G90 (set absolute distance mode) -G1 X1.2 Y-3 F10 (linear move at a feed rate of 10 from current position to X1.2 Y-3) -Z-2.3 (linear move at same feed rate from current position to Z-2.3) -Z1 F25 (linear move at a feed rate of 25 from current position to Z1) -M2 (end program) ----- -* See <> & <> & <> sections -for more information. - -If cutter compensation is active, the motion will differ from -the above; see the <> Section. - -If 'G53' is programmed on the same line, the motion will also differ; -see the <> Section for more information. - -It is an error if: - -* No feed rate has been set. -* An axis letter is without a real value. -* An axis letter is used that is not configured - -[[sec:G2-G3-Arc]] -== G2, G3 Arc Move -(((G2, G3 Arc Move)))(((Arc Move))) - ----- -G2 or G3 axes offsets (center format) -G2 or G3 axes R- (radius format) -G2 or G3 offsets (full circles) ----- - -A circular or helical arc is specified using either 'G2' (clockwise -arc) or 'G3' (counterclockwise arc) at the current -<>. The direction (CW, CCW) is as viewed from the -positive end of the axis about which the circular motion occurs. - -The axis of the circle or helix must be parallel to the -X, Y, or Z axis of the machine coordinate system. -The axis (or, equivalently, the plane perpendicular to the axis) -is selected with 'G17' (Z-axis, XY-plane), -'G18' (Y-axis, XZ-plane), or 'G19' (X-axis, YZ-plane). -Planes '17.1', '18.1', and '19.1' are not currently supported. -If the arc is circular, -it lies in a plane parallel to the selected plane. - -To program a helix, include the axis word perpendicular to the arc -plane: for example, if in the 'G17' plane, include a 'Z' word. This -will cause the 'Z' axis to move to the programmed value during the -circular 'XY' motion. - -To program an arc that gives more than one full turn, use the 'P' word -specifying the number of full turns plus the programmed arc. The 'P' word -must be an integer. If 'P' is unspecified, the behavior is as if 'P1' was -given: that is, only one full or partial turn will result. For example, if a -180 degree arc is programmed with a P2, the resulting motion will be 1 1/2 -rotations. For each P increment above 1 an extra full circle is added to the -programmed arc. Multi turn helical arcs are supported and give motion useful -for milling holes or threads. - -If a line of code makes an arc and includes rotary axis motion, -the rotary axes turn at a constant rate so that the rotary -motion starts and finishes when the XYZ motion starts and finishes. -Lines of this sort are hardly ever programmed. - -If cutter compensation is active, the motion will differ from -the above; see the <> Section. - -The arc center is absolute or relative as set by <> respectively. - -Two formats are allowed for specifying an arc: -Center Format and Radius Format. - -It is an error if: - -* No feed rate has been set. -* The P word is not an integer. - -=== Center Format Arcs - -Center format arcs are more accurate than radius format arcs and are -the preferred format to use. - -The end point of the arc along with the offset to the center of the -arc from the current location are used to program arcs that are less -than a full circle. It is OK if the end point of the arc is the same -as the current location. - -The offset to the center of the arc from the current location and -optionally the number of turns are used to program full circles. - -When programming arcs an error due to rounding can result from using a -precision of less than 4 decimal places (0.0000) for inch and less than -3 decimal places (0.000) for millimeters. - -.Incremental Arc Distance Mode -Arc center offsets are a relative distance from the start location of the arc. -Incremental Arc Distance Mode is default. - -One or more axis words and one or more offsets must be programmed for an -arc that is less than 360 degrees. - -No axis words and one or more offsets must be programmed for full circles. -The 'P' word defaults to 1 and is optional. - -For more information on 'Incremental Arc Distance Mode see the -<> section. - -.Absolute Arc Distance Mode -Arc center offsets are the absolute distance from the current 0 position of the axis. - -One or more axis words and 'both' offsets must be programmed for arcs -less than 360 degrees. - -No axis words and both offsets must be programmed for full circles. -The 'P' word defaults to 1 and is optional. - -For more information on 'Absolute Arc Distance Mode see the -<> section. - -.XY-plane (G17) ----- -G2 or G3 ----- -* 'Z' - helix -* 'I' - X offset -* 'J' - Y offset -* 'P' - number of turns - -.XZ-plane (G18) ----- -G2 or G3 ----- -* 'Y' - helix -* 'I' - X offset -* 'K' - Z offset -* 'P' - number of turns - -.YZ-plane (G19) ----- -G2 or G3 ----- -* 'X' - helix -* 'J' - Y offset -* 'K' - Z offset -* 'P' - number of turns - -It is an error if: - -* No feed rate is set with the <> word. - -* No offsets are programmed. - -* When the arc is projected on the selected plane, the distance from - the current point to the center differs from the distance from the end - point to the center by more than (.05 inch/.5 mm) - OR ((.0005 inch/.005mm) AND .1% of radius). - -Deciphering the Error message 'Radius to end of arc differs from radius to start:' - -* 'start' - the current position -* 'center' - the center position as calculated using the i,j or k words -* 'end' - the programmed end point -* 'r1' - radius from the start position to the center -* 'r2' - radius from the end position to the center - -=== Center Format Examples - -Calculating arcs by hand can be difficult at times. One option is to -draw the arc with a cad program to get the coordinates and offsets. -Keep in mind the tolerance mentioned above, you may have to change the -precision of your cad program to get the desired results. Another -option is to calculate the coordinates and offset using formulas. As -you can see in the following figures a triangle can be formed from the -current position the end position and the arc center. - -In the following figure you can see the start position is X0 Y0, the -end position is X1 Y1. The arc center position is at X1 Y0. This gives -us an offset from the start position of 1 in the X axis and 0 in the Y -axis. In this case only an I offset is needed. - -.G2 Example Line -[source,{ngc}] ----- -G0 X0 Y0 -G2 X1 Y1 I1 F10 (clockwise arc in the XY plane) ----- - -.G2 Example[[fig:G2-Example]] - -image::images/g2.png[align="center"] - -In the next example we see the difference between the offsets for Y if -we are doing a G2 or a G3 move. For the G2 move the start position is -X0 Y0, for the G3 move it is X0 Y1. The arc center is at X1 Y0.5 for -both moves. The G2 move the J offset is 0.5 and the G3 move the J -offset is -0.5. - -.G2-G3 Example Line -[source,{ngc}] ----- -G0 X0 Y0 -G2 X0 Y1 I1 J0.5 F25 (clockwise arc in the XY plane) -G3 X0 Y0 I1 J-0.5 F25 (counterclockwise arc in the XY plane) ----- - -.G2-G3 Example[[fig:G2-G3-Example]] - -image::images/g2-3.png[align="center"] - -.G2 Example Line -[source,{ngc}] ----- -G0 X0 Y0 Z0 -G17 G2 X10 Y16 I3 J4 Z-1 (helix arc with Z added) ----- - -.P word Example ----- -G0 X0 Y0 Z0 -G2 X0 Y1 Z-1 I1 J0.5 P2 F25 ----- - -The above example line will make a clockwise (as viewed from the positive Z-axis) -circular or helical arc whose axis is parallel to the Z-axis, ending -where X=10, Y=16, and Z=9, with its center offset in the X direction by -3 units from the current X location and offset in the Y direction by 4 -units from the current Y location. If the current location has X=7, Y=7 -at the outset, the center will be at X=10, Y=11. If the starting value -of Z is 9, this is a circular arc; otherwise it is a helical arc. The -radius of this arc would be 5. - -In the center format, the radius of the arc is not specified, but it -may be found easily as the distance from the center of the circle to -either the current point or the end point of the arc. - -=== Radius Format Arcs - ----- -G2 or G3 axes R- ----- -* 'R' - radius from current position - -It is not good practice to program radius format arcs that are nearly -full circles or nearly semicircles because a small change in the -location of the end point will produce a much larger change in the -location of the center of the circle (and, hence, the middle of the -arc). The magnification effect is large enough that rounding error in a -number can produce out-of-tolerance cuts. For instance, a 1% -displacement of the endpoint of a 180 degree arc produced a 7% -displacement of the point 90 degrees along the arc. Nearly full circles -are even worse. Other size arcs (in the range tiny to 165 degrees or -195 to 345 degrees) are OK. - -In the radius format, the coordinates of the end point of the arc in -the selected plane are specified along with the radius of the arc. -Program 'G2' 'axes' 'R-' (or use 'G3' instead of 'G2' ). R is the -radius. The axis words are all optional except that at -least one of the two words for the axes in the selected plane must be -used. The R number is the radius. A positive radius indicates that the -arc turns through less than 180 degrees, while a negative radius -indicates a turn of more than 180 degrees. If the arc is helical, the -value of the end point of the arc on the coordinate axis parallel to -the axis of the helix is also specified. - -It is an error if: - -* both of the axis words for the axes of the selected plane are omitted -* the end point of the arc is the same as the current point. - -.G2 Example Line -[source,{ngc}] ----- -G17 G2 X10 Y15 R20 Z5 (radius format with arc) ----- - -The above example makes a clockwise (as viewed from the positive Z-axis) -circular or helical arc whose axis is parallel to the Z-axis, ending -where X=10, Y=15, and Z=5, with a radius of 20. If the starting value -of Z is 5, this is an arc of a circle parallel to the XY-plane; -otherwise it is a helical arc. - -[[sec:G4-Dwell]] -== G4 Dwell -(((G4 Dwell))) - ----- -G4 P- ----- -* 'P' - seconds to dwell (floating point) - -The P number is the time in seconds that all axes will remain unmoving. -The P number is a floating point number so fractions of a second may be used. -G4 does not affect spindle, coolant and any I/O. - -.G4 Example Line ----- -G4 P0.5 (wait for 0.5 seconds before proceeding) ----- - -It is an error if: - -* the P number is negative or not specified. - -[[sec:G5_1-B-spline]] -== G5.1 Quadratic B-spline -(((G5.1 Quadratic B-spline))) - ----- -G5.1 X- Y- I- J- ----- -* 'I' - X axis offset -* 'J' - Y axis offset - -G5.1 creates a quadratic B-spline in the XY plane with the X and Y axis only. -The offsets are I for X axis and J for Y axis. - -// FIX ME add example code - -It is an error if: - -* I and J offset is not specified -* An axis other than X or Y is specified -* The active plane is not G17 - -[[sec:G5_2-G5_3-NURBs]] -== G5.2 G5.3 NURBs Block -(((G5.2 G5.3 NURBs Block))) - ----- -G5.2 X- Y- P- -X- Y- P- -... -G5.3 ----- - -Warning: G5.2, G5.3 is experimental and not fully tested. - -G5.2 is for opening the data block defining a NURBs and G5.3 for -closing the data block. In the lines between these two codes the curve -control points are defined with both their related 'weights' (P) and -their parameter (L) which determines the order of the curve (k) and -subsequently its degree (k-1). - -Using this curve definition the knots of the NURBs curve are not -defined by the user they are calculated by the inside algorithm, in the -same way as it happens in a great number of graphic applications, where -the curve shape can be modified only acting on either control points or -weights. - -.G5.2 Example -[source,{ngc}] ---------------- -G0 X0 Y0 (rapid move) -F10 (set feed rate) -G5.2 X0 Y1 P1 L3 - X2 Y2 P1 - X2 Y0 P1 - X0 Y0 P2 -G5.3 -; The rapid moves show the same path without the NURBs Block -G0 X0 Y1 - X2 Y2 - X2 Y0 - X0 Y0 -M2 ---------------- - -.Sample NURBs Output - -image:images/nurbs01.png[align="center"] - -More information on NURBs can be found here: - -http://wiki.linuxcnc.org/cgi-bin/wiki.pl?NURBS[http://wiki.linuxcnc.org/cgi-bin/wiki.pl?NURBS] - -[[sec:G7-Diameter-Mode]] -== G7 Lathe Diameter Mode -(((G7 Lathe Diameter Mode))) - ----- -G7 ----- - -Program G7 to enter the diameter mode for axis X on a lathe. When in -the diameter mode the X axis moves on a lathe will be 1/2 the distance -to the center of the lathe. For example X1 would move the cutter to -0.500†from the center of the lathe thus giving a 1†diameter part. - -[[sec:G8-Radius-Mode]] -== G8 Lathe Radius Mode -(((G8 Lathe Radius Mode))) - ----- -G8 ----- - -Program G8 to enter the radius mode for axis X on a lathe. When in -Radius mode the X axis moves on a lathe will be the distance from the -center. Thus a cut at X1 would result in a part that is 2" in diameter. -G8 is default at power up. - -[[sec:G10-L1_]] -== G10 L1 Set Tool Table -(((G10 L1 Tool Table))) - ----- -G10 L1 P- axes ----- -* 'P' - tool number -* 'R' - radius of tool -* 'I' - front angle (lathe) -* 'J' - back angle (lathe) -* 'Q' - orientation (lathe) - -G10 L1 sets the tool table for the 'P' tool number to the values of the words. - -A valid G10 L1 rewrites and reloads the tool table. - -.G10 L1 Example Line ----- -G10 L1 P1 Z1.5 (set tool 1 Z offset from the machine origin to 1.5) -G10 L1 P2 R0.015 Q3 (lathe example setting tool 2 radius to 0.015 and orientation to 3) ----- - -It is an error if: - -* Cutter Compensation is on -* The P number is unspecified -* The P number is not a valid tool number from the tool table -* The P number is 0 - -For more information on cutter orientation used by the 'Q' word, -see the <> diagram. - -[[sec:G10-L2_]] -== G10 L2 Set Coordinate System -(((G10 L2 Coordinate System))) - ----- -G10 L2 P- ----- -* 'P' - coordinate system (0-9) -* 'R' - rotation about the Z axis - -G10 L2 offsets the origin of the axes in the coordinate system specified to -the value of the axis word. The offset is from the machine origin established -during homing. The offset value will replace any current offsets in effect for -the coordinate system specified. Axis words not used will not be changed. - -Program P0 to P9 to specify which coordinate system to change. - -.Coordinate System[[cap:Set-Coordinate-System]] - -[width="50%", options="header", cols="^,^,^"] -|======================================== -|P Value |Coordinate System |G code -|0 |Active |n/a -|1 |1 |G54 -|2 |2 |G55 -|3 |3 |G56 -|4 |4 |G57 -|5 |5 |G58 -|6 |6 |G59 -|7 |7 |G59.1 -|8 |8 |G59.2 -|9 |9 |G59.3 -|======================================== - - -Optionally program R to indicate the rotation of the XY axis around the Z axis. -The direction of rotation is CCW as viewed from the positive end of the Z axis. - -All axis words are optional. - -Being in incremental distance mode (<>) has no effect on 'G10 L2'. - -Important Concepts: - -* G10 L2 Pn does not change from the current coordinate system to the one specified by P, - you have to use G54-59.3 to select a coordinate system. -* When a rotation is in effect jogging an axis will only move that axis - in a positive or negative direction and not along the rotated axis. -* If a 'G92' origin offset was in effect before 'G10 L2', - it will continue to be in effect afterwards. -* The coordinate system whose origin is set by a 'G10' command may be - active or inactive at the time the 'G10' is executed. - If it is currently active, the new coordinates take effect immediately. - -It is an error if: - -* The P number does not evaluate to an integer in the range 0 to 9. -* An axis is programmed that is not defined in the configuration. - -.G10 L2 Example Line -[source,{ngc}] ----- -G10 L2 P1 X3.5 Y17.2 ----- - -In the above example the origin of the first coordinate system -(the one selected by 'G54') is set to be X=3.5 and Y=17.2. -Because only X and Y are specified, the origin point is only moved in X and Y; -the other coordinates are not changed. - -.G10 L2 Example Line -[source,{ngc}] ----- -G10 L2 P1 X0 Y0 Z0 (clear offsets for X,Y & Z axes in coordinate system 1) ----- - -The above example sets the XYZ coordinates of the coordinate system 1 to the machine origin. - -The coordinate system is described in the <> Section. - -[[sec:G10-L10]] -== G10 L10 Set Tool Table -(((G10 L10 Set Tool Table))) - ----- -G10 L10 P- axes ----- -* 'P' - tool number -* 'R' - radius of tool -* 'I' - front angle (lathe) -* 'J' - back angle (lathe) -* 'Q' - orientation (lathe) - -G10 L10 changes the tool table entry for tool P so that if the -tool offset is reloaded, with the machine in its current position -and with the current G5x and G92 offsets active, the current coordinates -for the given axes will become the given values. The axes that are -not specified in the G10 L10 command will not be changed. This could be -useful with a probe move as described in the <> section. - -.G10 L10 Example ----- -T1 M6 G43 (load tool 1 and tool length offsets) -G10 L10 P1 Z1.5 (set the current position for Z to be 1.5) -G43 (reload the tool length offsets from the changed tool table) -M2 (end program) ----- -* See <> & <>, and - <>/<> sections for more information. - -It is an error if: - -* Cutter Compensation is on -* The P number is unspecified -* The P number is not a valid tool number from the tool table -* The P number is 0 - -[[sec:G10-L11]] -== G10 L11 Set Tool Table -(((G10 L11 Set Tool Table))) - ----- -G10 L11 P- axes ----- -* 'P' - tool number -* 'R' - radius of tool -* 'I' - front angle (lathe) -* 'J' - back angle (lathe) -* 'Q' - orientation (lathe) - -G10 L11 is just like G10 L10 except that instead of setting the entry -according to the current offsets, it is set so that the current -coordinates would become the given value if the new tool offset -is reloaded and the machine is placed in the G59.3 coordinate -system without any G92 offset active. - -This allows the user to set the G59.3 coordinate system according to a -fixed point on the machine, and then use that fixture to measure tools -without regard to other currently-active offsets. - -// .G10 L11 Example FIX ME! -// ---- -// G10 L11 P1 -// ---- - -It is an error if: - -* Cutter Compensation is on -* The P number is unspecified -* The P number is not a valid tool number from the tool table -* The P number is 0 - -[[sec:G10-L20]] -== G10 L20 Set Coordinate System -(((G10 L20 Set Coordinate System))) - ----- -G10 L20 P- axes ----- -* 'P' - coordinate system (0-9) - -G10 L20 is similar to G10 L2 except that instead of setting the -offset/entry to the given value, it is set to a calculated value that -makes the current coordinates become the given value. - -.G10 L20 Example Line ----- -G10 L20 P1 X1.5 (set the X axis current location in coordinate system 1 to 1.5) ----- - -It is an error if: - -* The P number does not evaluate to an integer in the range 0 to 9. -* An axis is programmed that is not defined in the configuration. - -[[sec:G17-G18-G19]] -== G17 - G19.1 Plane Selection -(((G17 G18 G19 Plane Selection)))(((Plane Selection))) - -These codes set the current plane as follows: - -* 'G17' - XY (default) -* 'G18' - ZX -* 'G19' - YZ -* 'G17.1' - UV -* 'G18.1' - WU -* 'G19.1' - VW - -The UV, WU and VW planes do not support arcs. - -It is a good idea to include a plane selection in the preamble -of each G code file. - -The effects of having a plane selected are discussed in Section -<> and Section <> - -[[sec:G20-G21-Units]] -== G20, G21 Units -(((G20 Inches)))(((G21 Millimeters))) - -* 'G20' - to use inches for length units. -* 'G21' - to use millimeters for length units. - -It is a good idea to include units in the preamble -of each G code file. - -[[sec:G28-G28_1]] -== G28, G28.1 Go to Predefined Position -(((G28))) - -[WARNING] -Only use G28 when your machine is homed to a repeatable position and the -desired G28 position has been stored with G28.1. - -G28 uses the values stored in <> -5161-5166 as the X Y Z A B C U V W final point to move to. The parameter -values are 'absolute' machine coordinates in the native machine 'units' as -specifed in the ini file. All axes defined in the ini file will be moved when -a G28 is issued. - -* 'G28' - makes a <> from the current - position to the 'absolute' position of the values in parameters 5161-5166. - -* 'G28 axes' - makes a <> to the - position specified by 'axes' including any offsets, then will make a rapid - move to the 'absolute' position of the values in parameters 5161-5166 for - 'axes' specified. Any 'axis' not specified will not move. - -* 'G28.1' - stores the current 'absolute' position into parameters 5161-5166. - -.G28 Example Line ----- -G28 Z2.5 (rapid to Z2.5 then to location specified in the G28 stored parameters) ----- - -It is an error if : - -* Cutter Compensation is turned on - -[[sec:G30-G30_1]] -== G30, G30.1 Go to Predefined Position -(((G30))) - -[WARNING] -Only use G30 when your machine is homed to a repeatable position and the -desired G30 position has been stored with G30.1. - -G30 functions the same as G28 but uses the values stored in -<> 5181-5186 as the X Y Z A B C U V W -final point to move to. The parameter values are 'absolute' machine -coordinates in the native machine 'units' as specifed in the ini file. -All axes defined in the ini file will be moved when a G30 is issued. - -[NOTE] -G30 parameters will be used to move the tool when a M6 is programmed -if [TOOL_CHANGE_AT_G30]=1 is in the [EMCIO] section of the ini file. - -* 'G30' - makes a <> from the current - position to the 'absolute' position of the values in parameters 5181-5186. - -* 'G30 axes' - makes a <> to the position specified - by 'axes' including any offsets, then will make a rapid move to the - 'absolute' position of the values in parameters 5181-5186 for 'axes' - specified. Any 'axis' not specified will not move. - -* 'G30.1' - stores the current absolute position into parameters 5181-5186. - -.G30 Example Line ----- -G30 Z2.5 (rapid to Z2.5 then to the location specified in the G30 stored parameters) ----- - -It is an error if : - -* Cutter Compensation is turned on - -[[sec:G33-Spindle-Sync]] -== G33 Spindle Synchronized Motion -(((G33 Spindle Synchronized Motion))) - ----- -G33 X- Y- Z- K- ----- -* 'K' - distance per revolution - -For spindle-synchronized motion in one direction, code 'G33 X- Y- Z- K-' -where K gives the distance moved in XYZ for each revolution of the spindle. -For instance, if starting at 'Z=0', 'G33 Z-1 K.0625' produces -a 1 inch motion in Z over 16 revolutions of the spindle. -This command might be part of a program to produce a 16TPI thread. -Another example in metric, 'G33 Z-15 K1.5' produces -a movement of 15mm while the spindle rotates 10 times for a thread of 1.5mm. - -Spindle-synchronized motion waits for the spindle index and spindle at speed -pins, so multiple passes line up. 'G33' moves end at the programmed endpoint. -G33 could be used to cut tapered threads or a fusee. - -All the axis words are optional, except that at least one must be used. - -[NOTE] -K follows the drive line described by 'X- Y- Z-'. K is not parallel to -the Z axis if X or Y endpoints are used for example when cutting tapered -threads. - -.Technical Info[[g33-tech-info]] -At the beginning of each G33 pass, LinuxCNC uses the spindle speed and the -machine acceleration limits to calculate how long it will take Z to -accelerate after the index pulse, and determines how many degrees the -spindle will rotate during that time. It then adds that angle to the -index position and computes the Z position using the corrected spindle -angle. That means that Z will reach the correct position just as it -finishes accelerating to the proper speed, and can immediately begin -cutting a good thread. - -.HAL Connections -The pins 'motion.spindle-at-speed' and the 'encoder.n.phase-Z' for the -spindle must be connected in your HAL file before G33 will work. -See the Integrators Manual for more information on spindle synchronized motion. - -.G33 Example ----- -G90 (absolute distance mode) -G0 X1 Z0.1 (rapid to position) -S100 M3 (start spindle turning) -G33 Z-2 K0.125 (move Z axis to -2 at a rate to equal 0.125 per revolution) -G0 X1.25 (rapid move tool away from work) -Z0.1 (rapid move to starting Z position) -M2 (end program) ----- -* See <> & <> & <> sections for more information. - -It is an error if: - -* All axis words are omitted. -* The spindle is not turning when this command is executed -* The requested linear motion exceeds machine velocity limits - due to the spindle speed - -[[sec:G33_1-Rigid-Tapping]] -== G33.1 Rigid Tapping -(((G33.1 Rigid Tapping))) - ----------------- -G33.1 X- Y- Z- K- ----------------- -* 'K' - distance per revolution - -For rigid tapping (spindle synchronized motion with return), -code 'G33.1 X- Y- Z- K-' where 'K-' gives the distance moved -for each revolution of the spindle. -A rigid tapping move consists of the following sequence: - -[WARNING] -If the X Y coordinates specified are not the current coordinates when -calling G33.1 for tapping the move will not be along the Z axis -but will <> from the current location to -the X Y location specified. - -. A move to the specified coordinate, synchronized with the spindle at - the given ratio and starting with a spindle index pulse. -. When reaching the endpoint, a command to reverse the spindle (e.g., - from clockwise to counterclockwise). -. Continued synchronized motion beyond the specified end coordinate - until the spindle actually stops and reverses. -. Continued synchronized motion back to the original coordinate. -. When reaching the original coordinate, - a command to reverse the spindle a second time - (e.g., from counterclockwise to clockwise). -. Continued synchronized motion beyond the original coordinate - until the spindle actually stops and reverses. -. An *unsynchronized* move back to the original coordinate. - -Spindle-synchronized motions wait for spindle index, -so multiple passes line up. -'G33.1' moves end at the original coordinate. - -All the axis words are optional, except that at least one must be used. - -.G33.1 Example -[source,{ngc}] ----- -G90 (set absolute mode) -G0 X1.000 Y1.000 Z0.100 (rapid move to starting position) -G33.1 Z-0.750 K0.05 (rigid tap a 20 TPI thread 0.750 deep) -M2 (end program) ----- -* See <> & <> & <> sections for more information. - -It is an error if: - -* All axis words are omitted. -* The spindle is not turning when this command is executed -* The requested linear motion exceeds machine velocity limits - due to the spindle speed - -[[sec:G38-probe]] -== G38.x Straight Probe -(((G38.x Probe))) - ----- -G38.x axes ----- - -* 'G38.2' - probe toward workpiece, stop on contact, signal error if failure -* 'G38.3' - probe toward workpiece, stop on contact -* 'G38.4' - probe away from workpiece, stop on loss of contact, signal error if failure -* 'G38.5' - probe away from workpiece, stop on loss of contact - -[IMPORTANT] -You will not be able to use a probe move until your -machine has been set up to provide a probe input signal. -The probe input signal must be connected to 'motion.probe-input' in a .hal file. -G38.x uses motion.probe-input to determine when the probe has made (or lost) contact. -TRUE for probe contact closed (touching), FALSE for probe contact open. - -Program 'G38.x axes' to perform a straight probe operation. -The axis words are optional, except that at least one of them must be used. -The axis words together define the destination point that the probe will move towards, -starting from the current location. If the probe is not tripped before the destination -is reached G38.2 and G38.4 will signal an error. - -The tool in the spindle must be a probe or contact a probe switch. - -In response to this command, the machine moves the controlled point -(which should be at the center of the probe ball) in a straight line at the -current <> toward the programmed point. -In inverse time feed mode, the feed rate is such that the whole motion -from the current point to the programmed point would take the specified time. -The move stops (within machine acceleration limits) -when the programmed point is reached, -or when the requested change in the probe input takes place, -whichever occurs first. - -After successful probing, parameters 5061 to 5069 will be set to the -coordinates of X, Y, Z, A, B, C, U, V, W of the location of the controlled point -at the time the probe changed state. -After unsuccessful probing, they are set to the coordinates of the programmed point. -Parameter 5070 is set to 1 if the probe succeeded and 0 if the probe failed. -If the probing operation failed, G38.2 and G38.4 will signal an error -by posting an message on screen if the selected GUI supports that. -And by halting program execution. - -A comment of the form '(PROBEOPEN filename.txt)' will open -'filename.txt' and store the 9-number coordinate consisting of -XYZABCUVW of each successful straight probe in it. -The file must be closed with '(PROBECLOSE)'. For more information -see the <> Section. - -An example file 'smartprobe.ngc' is included (in the examples directory) -to demonstrate using probe moves to log to a file the coordinates of a part. -The program 'smartprobe.ngc' could be used with 'ngcgui' with minimal changes. - -It is an error if: - -* the current point is the same as the programmed point. -* no axis word is used -* cutter compensation is enabled -* the feed rate is zero -* the probe is already in the target state - -[[sec:G40]] -== G40 Compensation Off -(((G40 Cutter Compensation Off))) - -* 'G40' - turn cutter compensation off. If tool compensation was on the - next move must be a linear move and longer than the tool diameter. - It is OK to turn compensation off when it is already off. - -.G40 Example ----- -; current location is X1 after finishing cutter compensated move -G40 (turn compensation off) -G0 X1.6 (linear move longer than current cutter diameter) -M2 (end program) ----- -See <> & <> sections for more information. - -It is an error if: - -* A G2/G3 arc move is programmed next after a G40. -* The linear move after turning compensation off is less than the tool diameter. - -[[sec:G41-G42]] -== G41, G42 Cutter Compensation -(((G41 G42 Cutter Compensation))) - ----- -G41 (left of programmed path) -G42 (right of programmed path) ----- -* 'D' - tool number - -The D word is optional; if there is no D word the radius of the currently -loaded tool will be used (if no tool is loaded and no D word is given, -a radius of 0 will be used). - -If supplied, the D word is the tool number to use. This would normally -be the number of the tool in the spindle (in which case the D word is -redundant and need not be supplied), but it may be any valid tool number. - -[NOTE] -'G41/G42 D0' is a little special. Its behavior is different on -random tool changer machines and nonrandom tool changer machines -(see the <> section). On nonrandom -tool changer machines, 'G41/G42 D0' applies the TLO of the tool currently -in the spindle, or a TLO of 0 if no tool is in the spindle. On random -tool changer machines, 'G41/G42 D0' applies the TLO of the tool T0 defined -in the tool table file (or causes an error if T0 is not defined in the -tool table). - -To start cutter compensation to the left of the part profile, use G41. -G41 starts cutter compensation to the left of the programmed line -as viewed from the positive end of the axis perpendicular to the plane. - -To start cutter compensation to the right of the part profile, use G42. -G42 starts cutter compensation to the right of the programmed line -as viewed from the positive end of the axis perpendicular to the plane. - -The lead in move must be at least as long as the tool radius. -The lead in move can be a rapid move. - -Cutter compensation may be performed if the XY-plane or XZ-plane is active. - -User M100-M199 commands are allowed when Cutter Compensation is on. - -The behavior of the machining center when cutter compensation -is on is described in the <> -Section along with code examples. - -It is an error if: - -* The D number is not a valid tool number or 0. -* The YZ plane is active. -* Cutter compensation is commanded to turn on when it is already on. - -[[sec:G41_1-G42_1]] -== G41.1, G42.1 Dynamic Cutter Compensation -(((G41.1 G42.1 Dynamic Compensation))) - ----- -G41.1 D- (left of programmed path) -G42.1 D- (right of programmed path) ----- -* 'D' - cutter diameter -* 'L' - tool orientation (see <>) - -G41.1 & G42.1 function the same as G41 & G42 with the added scope of being able -to program the tool diameter. The L word defaults to 0 if unspecified. - -It is an error if: - -* The YZ plane is active. -* The L number is not in the range from 0 to 9 inclusive. -* The L number is used when the XZ plane is not active. -* Cutter compensation is commanded to turn on when it is already on. - -[[sec:G43]] -== G43 Tool Length Offset -(((G43 Tool Length Offset))) - ----- -G43 ----- -* 'H' - tool number (optional) - -G43 enables tool length compensation. G43 changes subsequent motions -by offsetting the Z and/or X coordinates by the length of the tool. G43 -does not cause any motion. The next time a compensated axis is moved, -that axis's endpoint is the compensated location. - -'G43' without an H word uses the currently loaded tool from the last -'Tn M6'. - -'G43 Hn' uses the offset for tool n. - -[NOTE] -'G43 H0' is a little special. Its behavior is different on random -tool changer machines and nonrandom tool changer machines (see the -<> section). On nonrandom tool changer -machines, 'G43 H0' applies the TLO of the tool currently in the spindle, -or a TLO of 0 if no tool is in the spindle. On random tool changer -machines, 'G43 H0' applies the TLO of the tool T0 defined in the tool -table file (or causes an error if T0 is not defined in the tool table). - -.G43 H- Example Line ----- -G43 H1 (set tool offsets using the values from tool 1 in the tool table) ----- - -It is an error if: - -* the H number is not an integer, or - -* the H number is negative, or - -* the H number is not a valid tool number (though note that 0 is a valid - tool number on nonrandom tool changer machines, it means "the tool - currently in the spindle") - - -[[sec:G43_1]] -== G43.1: Dynamic Tool Length Offset -(((G43.1 Dynamic Tool Length Offset))) - ----- -G43.1 axes ----- - -* 'G43.1 axes' - change subsequent motions by offsetting the Z and/or X - offsets stored in the tool table. G43.1 does not cause any - motion. The next time a compensated axis is moved, that axis's - endpoint is the compensated location. - -.G43.1 Example ----- -G90 (set absolute mode) -T1 M6 G43 (load tool 1 and tool length offsets, Z is at machine 0 and DRO shows Z1.500) -G43.1 Z0.250 (offset current tool offset by 0.250, DRO now shows Z1.250) -M2 (end program) ----- -* See <> & <> & <> - sections for more information. - -It is an error if: - -* motion is commanded on the same line as 'G43.1' - -[[sec:G49-Tool]] -== G49: Cancel Tool Length Compensation -(((G49 Cancel Tool Length Offset))) - -* 'G49' - cancels tool length compensation - -It is OK to program using the same offset already in use. It is also -OK to program using no tool length offset if none is currently being -used. - -[[sec:G53-Move-in]] -== G53 Move in Machine Coordinates -(((G53 Machine Coordinates))) - ----- -G53 axes ----- - -To move in the machine coordinate system, program 'G53' -on the same line as a linear move. 'G53' is not modal and must be -programmed on each line. 'G0' or 'G1' does not have to be programmed -on the same line if one is currently active. -For example 'G53 G0 X0 Y0 Z0' will move the axes to the home -position even if the currently -selected coordinate system has offsets in effect. - -.G53 Example Line ----- -G53 G0 X0 Y0 Z0 (rapid linear move to the machine origin) -G53 X2 (rapid linear move to absolute coordinate X2) ----- -* See <> section for more information. - -It is an error if: - -* G53 is used without G0 or G1 being active, -* or G53 is used while cutter compensation is on. - -[[sec:G54-G59_3]] -== G54-G59.3 Select Coordinate System -(((G54-G59.3 Select Coordinate System))) - -* 'G54' - select coordinate system 1 -* 'G55' - select coordinate system 2 -* 'G56' - select coordinate system 3 -* 'G57' - select coordinate system 4 -* 'G58' - select coordinate system 5 -* 'G59' - select coordinate system 6 -* 'G59.1' - select coordinate system 7 -* 'G59.2' - select coordinate system 8 -* 'G59.3' - select coordinate system 9 - -The coordinate systems store the axis values and the -XY rotation angle around the Z axis -in the parameters shown in the following table. - -.Coordinate System Parameters[[cap:Coordinate-Systems]] - -[width="80%", options="header", cols="<,11*^"] -|============================================================ -|Select|CS|X |Y |Z |A |B |C |U |V |W |R -|G54 |1 |5221|5222|5223|5224|5225|5226|5227|5228|5229|5230 -|G55 |2 |5241|5242|5243|5244|5245|5246|5247|5248|5249|5250 -|G56 |3 |5261|5262|5263|5264|5265|5266|5267|5268|5269|5270 -|G57 |4 |5281|5282|5283|5284|5285|5286|5287|5288|5289|5290 -|G58 |5 |5301|5302|5303|5304|5305|5306|5307|5308|5309|5310 -|G59 |6 |5321|5322|5323|5324|5325|5326|5327|5328|5329|5330 -|G59.1 |7 |5341|5342|5343|5344|5345|5346|5347|5348|5349|5350 -|G59.2 |8 |5361|5362|5363|5364|5365|5366|5367|5368|5369|5370 -|G59.3 |9 |5381|5382|5383|5384|5385|5386|5387|5388|5389|5390 -|============================================================ - -It is an error if: - -* selecting a coordinate system is used while cutter compensation is on. - -See the <> Section for an overview of coordinate -systems. - -[[sec:G61-G61_1]] -== G61, G61.1 Exact Path Mode -(((G61 G61.1 G64 Path Control)))(((Path Control)))(((Trajectory Control))) - -* 'G61' - exact path mode. G61 visits the programmed point exactly, - even though that means temporarily coming to a complete stop. - -* 'G61.1' - exact stop mode. Same as G61 - -[[sec:G64]] -== G64 Path Blending -(((G64 Path Blending))) - ----- -G64 > ----- -* 'P' - motion blending tolerance -* 'Q' - naive cam tolerance - -* 'G64' - best possible speed. -* 'G64 P- ' blending with tolerance. - -* 'G64' - without P means to keep the best speed possible, no matter how -far away from the programmed point you end up. - -* 'G64 P- Q-' - is a way to fine tune your system for best compromise -between speed and accuracy. The P- tolerance means that the actual path -will be no more than P- away from the programmed endpoint. The velocity -will be reduced if needed to maintain the path. In addition, when you -activate G64 P- Q- it turns on the 'naive cam detector'; when there are -a series of linear XYZ feed moves at the same <> -that are less than Q- away from being collinear, they are collapsed into a -single linear move. On G2/G3 moves in the G17 (XY) plane when the maximum -deviation of an arc from a straight line is less than the G64 P- -tolerance the arc is broken into two lines (from start of arc to -midpoint, and from midpoint to end). those lines are then subject to -the naive cam algorithm for lines. Thus, line-arc, arc-arc, and -arc-line cases as well as line-line benefit from the 'naive cam -detector'. This improves contouring performance by simplifying the -path. It is OK to program for the mode that is already active. See also -the <> Section for more -information on these modes. -If Q is not specified then it will have the same behavior as before and -use the value of P-. - -.G64 P- Example Line ----- -G64 P0.015 (set path following to be within 0.015 of the actual path) ----- - -It is a good idea to include a path control specification in the preamble -of each G code file. - -[[sec:G73-Drilling-Cycle]] -== G73 Drilling Cycle with Chip Breaking -(((G73 Drilling Cycle Chip Break))) - ----- -G73 X- Y- Z- R- Q- ----- -* 'R' - retract position along the Z axis. -* 'Q' - delta increment along the Z axis. -* 'L' - repeat - -The 'G73' cycle is drilling or milling with chip breaking. -This cycle takes a Q number which represents a 'delta' increment along the Z axis. - - . Preliminary motion. - ** If the current Z position is below the R position, The Z axis does a - <> to the R position. - ** Move to the X Y coordinates - . Move the Z-axis only at the current <> downward - by delta or to the Z position, whichever is less deep. - . Rapid up a bit. - . Repeat steps 2 and 3 until the Z position is reached at step 2. - . The Z axis does a rapid move to the R position. - -It is an error if: - -* the Q number is negative or zero. -* the R number is not specified - -[[sec:G76-Threading-Canned]] -== G76 Threading Cycle - -(((G76 Threading))) - ----- -G76 P- Z- I- J- R- K- Q- H- E- L- ----- - -.G76 Threading[[fig:G76-Threading]] - -image::images/g76-threads.png[align="center"] - - -* 'Drive Line' - A line through the initial X position parallel to the Z. - -* 'P-' - The 'thread pitch' in distance per revolution. - -* 'Z-' - The final position of threads. At the end of the cycle the tool will -be at this Z position. - -[NOTE] -When G7 'Lathe Diameter Mode' is in force the values for 'I', 'J' and 'K' are -diameter measurements. When G8 'Lathe Radius Mode' is in force the values for -'I', 'J' and 'K' are radius measurements. - -* 'I-' - The 'thread peak' offset from the 'drive line'. Negative 'I' values -are external threads, and positive 'I' values are internal threads. -Generally the material has been turned to this size before the 'G76' cycle. - -* 'J-' - A positive value specifying the 'initial cut depth'. The first -threading cut will be 'J' beyond the 'thread peak' position. - -* 'K-' - A positive value specifying the 'full thread depth'. The final -threading cut will be 'K' beyond the 'thread peak' position. - -Optional settings - -* 'R-' - The 'depth degression'. 'R1.0' selects constant depth on successive -threading passes. 'R2.0' selects constant area. Values between 1.0 and -2.0 select decreasing -depth but increasing area. Values above 2.0 select decreasing area. -Beware that unnecessarily high degression values will cause a large -number of passes to be used. (degression = a descent by stages or -steps.) - -* 'Q-' - The 'compound slide angle' is the angle (in degrees) describing to -what extent successive passes should be offset along the drive line. -This is used to cause one side of the tool to remove more material than -the other. A positive 'Q' value causes the leading edge of the tool to -cut more heavily. -Typical values are 29, 29.5 or 30. - -* 'H-' - The number of 'spring passes'. Spring passes are additional passes at -full thread depth. If no additional passes are desired, program 'H0'. - -* 'E-' - Specifies the distance along the drive line used for the taper. The -angle of the taper will be so the last pass tapers to the thread crest -over the distance specified with E.' E0.2' will give a taper for the -first/last 0.2 length units along the -thread. For a 45 degree taper program E the same as K - -* 'L-' - Specifies which ends of the thread get the taper. Program 'L0' for no -taper (the default), 'L1' for entry taper, 'L2' for exit taper, or 'L3' -for both entry and exit tapers. Entry tapers will pause at the drive line to -synchronize with the index pulse then move at the <> -in to the beginning of the taper. No entry taper and the tool will rapid to the -cut depth then synchronize and begin the cut. - -The tool is moved to the initial X and Z positions prior to issuing -the G76. The X position is the 'drive line' and the Z position is the -start of the threads. - -The tool will pause briefly for synchronization before each threading -pass, so a relief groove will be required at the entry unless the -beginning of the thread is past the end of the material or an entry -taper is used. - -Unless using an exit taper, the exit move is not synchronized to the spindle -speed and will be a <>. With a slow spindle, the -exit move might take only a small fraction of a revolution. If the spindle -speed is increased after several passes are complete, subsequent exit -moves will require a larger portion of a revolution, resulting in a -very heavy cut during the exit move. This can be avoided by providing a -relief groove at the exit, or by not changing the spindle speed while -threading. - -The final position of the tool will be at the end of the 'drive line'. -A safe Z move will be needed with an internal thread to remove the tool -from the hole. - -It is an error if: - -* The active plane is not the ZX plane -* Other axis words, such as X- or Y-, are specified -* The 'R-' degression value is less than 1.0. -* All the required words are not specified -* 'P-', 'J-', 'K-' or 'H-' is negative -* 'E-' is greater than half the drive line length - -.HAL Connections -The pins 'motion.spindle-at-speed' and the 'encoder.n.phase-Z' for the -spindle must be connected in your HAL file before G76 will work. -See the Integrators Manual for more information on spindle synchronized motion. - -.Technical Info -The G76 canned cycle is based on the G33 Spindle Synchronized Motion. For more -information see the G33 <>. - -The sample program 'g76.ngc' shows the use of the G76 canned cycle, -and can be previewed and -executed on any machine using the 'sim/lathe.ini' configuration. - -.G76 Example -[source,{ngc}] ---------------- -G0 Z-0.5 X0.2 -G76 P0.05 Z-1 I-.075 J0.008 K0.045 Q29.5 L2 E0.045 ---------------- - -In the figure the tool is in the final position after the G76 cycle -is completed. You can see the entry path on the right from the Q29.5 -and the exit path on the left from the L2 E0.045. The white lines -are the cutting moves. - -.G76 Example[[fig:G76-Threading-Example]] - -image::images/g76-01.png[align="center"] - -[[sec:G80-G89]] -== Canned Cycles -(((G80-G89 Canned Cycles))) - -The canned cycles 'G81' through 'G89' and the canned cycle stop 'G80' -are described in this section. - -All canned cycles are performed with respect to the currently-selected -plane. Any of the six planes may be selected. Throughout this section, -most of the descriptions assume the XY-plane has been selected. The -behavior is analogous if another plane is selected, and the correct -words must be used. For instance, in the 'G17.1' plane, the action of -the canned cycle is along W, and the locations -or increments are given with U and V. In this case substitute U,V,W for -X,Y,Z in the instructions below. - -Rotary axis words are not allowed in canned cycles. When the -active plane is one of the XYZ family, the UVW axis words are not -allowed. Likewise, when the active plane is one of the UVW family, the -XYZ axis words are not allowed. - -=== Common Words - -All canned cycles use X, Y, Z, or U, V, W groups depending on the -plane selected and R words. The R (usually meaning retract) position is -along the axis perpendicular to the currently selected plane (Z-axis -for XY-plane, etc.) Some canned cycles use additional arguments. - -=== Sticky Words[[sec:Cycle-Sticky-Words]] - -For canned cycles, we will call a number 'sticky' if, when the same -cycle is used on several lines of code in a row, the number must be -used the first time, but is optional on the rest of the lines. Sticky -numbers keep their value on the rest of the lines if they are not -explicitly programmed to be different. The R number is always sticky. - -In incremental distance mode X, Y, and R numbers are treated as -increments from the current position and Z as an increment from the -Z-axis position before the move involving Z takes place. In absolute -distance mode, the X, Y, R, and Z numbers are absolute positions in the -current coordinate system. - -=== Repeat Cycle - -The L number is optional and represents the number of repeats. -L=0 is not allowed. If the repeat feature is used, it is -normally used in incremental distance mode, so that the same sequence -of motions is repeated in several equally spaced places along a -straight line. When L- is greater than 1 in incremental mode with the -XY-plane selected, the X and Y positions are determined by adding the -given X and Y numbers either to the current X and Y positions (on the -first go-around) or to the X and Y positions at the end of the previous -go-around (on the repetitions). Thus, if you program 'L10' , you will -get 10 cycles. The first cycle will be distance X,Y from -the original location. The R and Z positions do not change during the -repeats. The L number is not sticky. In absolute distance mode, -L>1 means 'do the same cycle in the same place several -times', Omitting the L word is equivalent to specifying L=1. - -=== Retract Mode[[sec:Retract-Mode]] - -The height of the retract move at the end of each repeat (called -'clear Z' in the descriptions below) is determined by the setting of -the retract mode: either to the original Z position (if that is above -the R position and the retract mode is 'G98', OLD_Z), or otherwise to -the R position. See the <> Section. - -=== Canned Cycle Errors[[sec:Canned-Cycle-Errors]] - -It is an error if: - -* axis words are all missing during a canned cycle, -* axis words from different groups (XYZ) (UVW) are used together, -* a P number is required and a negative P number is used, -* an L number is used that does not evaluate to a positive integer, -* rotary axis motion is used during a canned cycle, -* inverse time feed rate is active during a canned cycle, -* or cutter compensation is active during a canned cycle. - -If the XY plane is active, the Z number is sticky, and it is an error -if: - -* the Z number is missing and the same canned cycle was not already - active, -* or the R number is less than the Z number. - -If other planes are active, the error conditions are analogous to the -XY conditions above. - -[[section:preliminary-motion]] -=== Preliminary and In-Between Motion - -Preliminary motion is a set of motions that is common to all of the -milling canned cycles. If the current Z position is below the R position, -the Z axis does a <> to the R position. This happens only -once, regardless of the value of L. - -In addition, at the beginning of the first cycle and each repeat, the -following one or two moves are made - -. A <> parallel to the XY-plane to - the given XY-position, -. The Z-axis make a rapid move to the R position, if it is - not already at the R position. - -If another plane is active, the preliminary and in-between motions are -analogous. - -=== Why use a canned cycle? - -There are at least two reasons for using canned cycles. The first is -the economy of code. A single bore would take several lines of code to -execute. - -The G81 <> demonstrates how a canned cycle could be -used to produce 8 holes with ten lines of G code within the canned cycle mode. -The program below will produce the same set of 8 holes using five lines -for the canned cycle. It does not follow exactly the same path nor does -it drill in the same order as the earlier example. But the program -writing economy of a good canned cycle should be obvious. - -.Eight Holes ----- -G90 G0 X0 Y0 Z0 (move coordinate home) -G1 F10 X0 G4 P0.1 -G91 G81 X1 Y0 Z-1 R1 L4(canned drill cycle) -G90 G0 X0 Y1 -Z0 -G91 G81 X1 Y0 Z-0.5 R1 L4(canned drill cycle) -G80 (turn off canned cycle) -M2 (program end) ----- -The G98 to the second line above means that the return move will be to -the value of Z in the first line since it is higher that the R value -specified. - -image::images/eight.png[align="center"] - - -.Twelve Holes in a Square - -This example demonstrates the use of the L word to repeat a set of -incremental drill cycles for successive blocks of code within the same -G81 motion mode. Here we produce 12 holes using five lines of code in -the canned motion mode. - ----- -G90 G0 X0 Y0 Z0 (move coordinate home) -G1 F50 X0 G4 P0.1 -G91 G81 X1 Y0 Z-0.5 R1 L4 (canned drill cycle) -X0 Y1 R0 L3 (repeat) -X-1 Y0 L3 (repeat) -X0 Y-1 L2 (repeat) -G80 (turn off canned cycle) -G90 G0 X0 (rapid move home) -Y0 -Z0 -M2 (program end) ----- - -image::images/twelve.png[align="center"] - -The second reason to use a canned cycle is that they all produce -preliminary moves and returns that you can anticipate and control -regardless of the start point of the canned cycle. - - -[[sec:G80-Cancel-Modal]] -== G80 Cancel Canned Cycle -(((G80 Cancel Modal Motion))) - -* 'G80' - cancel canned cycle modal motion. 'G80' is part of modal group 1, - so programming any other G code from modal group 1 will also - cancel the canned cycle. - -It is an error if: - -* Axis words are programmed when G80 is active. - -.G80 Example ----- -G90 G81 X1 Y1 Z1.5 R2.8 (absolute distance canned cycle) -G80 (turn off canned cycle motion) -G0 X0 Y0 Z0 (rapid move to coordinate home) ----- - -The following code produces the same final position and machine state as -the previous code. - -.G0 Example ----- -G90 G81 X1 Y1 Z1.5 R2.8 (absolute distance canned cycle) -G0 X0 Y0 Z0 (rapid move to coordinate home) ----- - -The advantage of the first set is that, the G80 line clearly turns off the -G81 canned cycle. With the first set of blocks, the programmer must turn -motion back on with G0, as is done in the next line, or any other motion -mode G word. - -If a canned cycle is not turned off with G80 or another motion word, the -canned cycle will attempt to repeat itself using the next block of code -that contains an X, Y, or Z word. The following file drills (G81) a set -of eight holes as shown in the following caption. - -.G80 Example 1 ----- -N100 G90 G0 X0 Y0 Z0 (coordinate home) -N110 G1 X0 G4 P0.1 -N120 G81 X1 Y0 Z0 R1 (canned drill cycle) -N130 X2 -N140 X3 -N150 X4 -N160 Y1 Z0.5 -N170 X3 -N180 X2 -N190 X1 -N200 G80 (turn off canned cycle) -N210 G0 X0 (rapid move home) -N220 Y0 -N230 Z0 -N240 M2 (program end) ----- - -[NOTE] -Notice the z position change after the first four holes. -Also, this is one of the few places where line numbers have some value, -being able to point a reader to a specific line of code. - -.G80 Cycle[[cap:G80-Cycle]] - -image::images/G81mult.png[align="center"] - -The use of G80 in line N200 is optional because the G0 on the next -line will turn off the G81 cycle. But using the G80 as shown in -Example 1, will provide for easier to read canned cycle. Without it, it -is not so obvious that all of the blocks between N120 and N200 belong -to the canned cycle. - -[[sec:G81-Drilling-Cycle]] -== G81 Drilling Cycle - -(((G81 Drilling Cycle))) - ----- -G81 (X- Y- Z-) or (U- V- W-) R- L- ----- - -The 'G81' cycle is intended for drilling. - -The cycle functions as follows: - - . Preliminary motion, as described in the - <> section. - -. Move the Z-axis at the current <> to the Z - position. - -. The Z-axis does a <> to clear Z. - -.Example 1 - Absolute Position G81[[G81-example-1]] - -Suppose the current position is (X1, Y2, Z3) and the following line of NC -code is interpreted. - -[source,{ngc}] ----- -G90 G98 G81 X4 Y5 Z1.5 R2.8 ----- - -This calls for absolute distance mode (G90) and OLD_Z retract mode -(G98) and calls for the G81 drilling cycle to be performed once. - -The X value and X position are 4. - -The Y value and Y position are 5. - -The Z value and Z position are 1.5. - -The R value and clear Z are 2.8. OLD_Z is 3. - -The following moves take place: - -. a <> parallel to the XY plane to (X4, Y5) - -. a rapid move move parallel to the Z-axis to (Z2.8). - -. move parallel to the Z-axis at the <> to (Z1.5) - -. a rapid move parallel to the Z-axis to (Z3) - -image::images/G81ex1.png[align="center"] - -.Example 2 - Relative Position G81 - -Suppose the current position is (X1, Y2, Z3) and the following line of NC -code is interpreted. - -[source,{ngc}] ----- -G91 G98 G81 X4 Y5 Z-0.6 R1.8 L3 ----- - -This calls for incremental distance mode (G91) and OLD_Z retract mode -(G98). It also calls for the G81 drilling cycle to be repeated three -times. The X value is 4, the Y value is 5, the Z value is -0.6 and the -R value is 1.8. The initial X position is 5 (=1+4), the initial Y -position is 7 (=2+5), the clear Z position is 4.8 (=1.8+3), and the Z -position is 4.2 (=4.8-0.6). OLD_Z is 3. - -The first preliminary move is a maximum rapid move along the Z axis to -(X1,Y2,Z4.8), since OLD_Z < clear Z. - -The first repeat consists of 3 moves. - -. a <> parallel to the XY-plane to (X5, Y7) - -. move parallel to the Z-axis at the <> to (Z4.2) - -. a rapid move parallel to the Z-axis to (X5, Y7, Z4.8) - -The second repeat consists of 3 moves. The X position is reset to - 9 (=5+4) and the Y position to 12 (=7+5). - -. a <> parallel to the XY-plane to (X9, Y12, Z4.8) - -. move parallel to the Z-axis at the feed rate to (X9, Y12, Z4.2) - -. a rapid move parallel to the Z-axis to (X9, Y12, Z4.8) - -The third repeat consists of 3 moves. The X position is reset to - 13 (=9+4) and the Y position to 17 (=12+5). - -. a <> parallel to the XY-plane to (X13, Y17, Z4.8) - -. move parallel to the Z-axis at the feed rate to (X13, Y17, Z4.2) - -. a rapid move parallel to the Z-axis to (X13, Y17, Z4.8) - -image::images/G81ex2.png[align="center"] - -.Example 3 - Relative Position G81 - -Now suppose that you execute the first G81 block of code but from (X0, -Y0, Z0) rather than from (X1, Y2, Z3). - ----- -G90 G98 G81 X4 Y5 Z1.5 R2.8 ----- - -Since OLD_Z is below the R value, it adds -nothing for the motion but since the initial value of Z is less than -the value specified in R, there will be an initial Z move during the -preliminary moves. - -image::images/G81.png[align="center"] - -.Example 4 - Absolute G81 R > Z - -This is a plot of the path of motion for the second g81 block of code. - ----- -G91 G98 G81 X4 Y5 Z-0.6 R1.8 L3 ----- - -Since this plot starts with (X0, Y0, Z0), the interpreter adds the -initial Z0 and R1.8 and rapid moves to that location. After that initial Z -move, the repeat feature works the same as it did in example 3 with the -final Z depth being 0.6 below the R value. - -image::images/G81a.png[align="center"] - -.Example 5 - Relative position R > Z - ----- -G90 G98 G81 X4 Y5 Z-0.6 R1.8 ----- - -Since this plot starts with (X0, Y0, Z0), the interpreter adds the initial Z0 -and R1.8 and rapid moves to that location as in 'Example 4'. After that initial Z -move, the <> to X4 Y5 is done. Then the final Z -depth being 0.6 below the R value. The repeat function would make the Z move -in the same location again. - -[[sec:G82-Drilling-Dwell]] -== G82 Drilling Cycle, Dwell -(((G82 Drilling Cycle Dwell))) - ----- -G82 (X- Y- Z-) or (U- V- W-) R- L- P- ----- - -The 'G82' cycle is intended for drilling with a dwell at the bottom of -the hole. - - . Preliminary motion, as described in the - <> section. - . Move the Z-axis at the current <> to the Z position. - . Dwell for the P number of seconds. - . The Z-axis does a <> to clear Z. - -The motion of a G82 canned cycle looks just like G81 with the -addition of a dwell at the bottom of the Z move. The length of -the dwell is specified by a 'P-' word in the G82 block. - -[[sec:G83-Drilling-Peck]] -== G83 Peck Drilling Cycle -(((G83 Peck Drilling))) - ----- -G83 (X- Y- Z-) or (U- V- W-) R- L- Q- ----- - -The 'G83' cycle (often called peck drilling) is intended for deep -drilling or -milling with chip breaking. The retracts in this cycle clear the hole -of chips and cut off any long stringers (which are common when drilling -in aluminum). This cycle takes a Q number which represents a 'delta' -increment along the Z-axis. The retract before final depth will always -be to the 'retract' plane even if G98 is in effect. The final retract will -honor the G98/99 in effect. G83 functions the same as G81 with the addition -of retracts during the drilling operation. - - - . Preliminary motion, as described in the - <> section. - . Move the Z-axis at the current <> downward by - delta or to the Z position, whichever is less deep. - . Rapid move back out to the retract plane specified by the R word. - . Rapid move back down to the current hole bottom, backed off a bit. - . Repeat steps 2, 3, and 4 until the Z position is reached at step 2. - . The Z-axis does a <> to clear Z. - -It is an error if: - -* the Q number is negative or zero. - -[[sec:G84-Right-Hand-Tapping]] -== G84 Right-Hand Tapping Cycle -(((G84 Right-Hand Tapping))) - -This code is currently unimplemented in LinuxCNC. It is accepted, but the -behavior is undefined. See section <> - -[[sec:G85-Boring-Feed-Out]] -== G85 Boring Cycle, Feed Out -(((G85 Boring, Feed Out))) - ----- -G85 (X- Y- Z-) or (U- V- W-) R- L- ----- - -The 'G85' cycle is intended for boring or reaming, but could be used -for drilling or milling. - - . Preliminary motion, as described in the - <> section. - . Move the Z-axis only at the current <> to the Z - position. - . Retract the Z-axis at the current feed rate to the R plane if it is lower - than the initial Z. - . Retract at the traverse rate to clear Z. - -[[sec:G86-Boring-Rapid-Out]] -== G86 Boring Cycle, Spindle Stop, Rapid Move Out -(((G86 Boring, Spindle Stop, Rapid Move Out))) - ----- -G86 (X- Y- Z-) or (U- V- W-) R- L- P- ----- - -The 'G86' cycle is intended for boring. This cycle uses a P number -for the number of seconds to dwell. - - . Preliminary motion, as described in the - <> section. - . Move the Z-axis only at the current <> to the Z - position. - . Dwell for the P number of seconds. - . Stop the spindle turning. - . The Z-axis does a <> to clear Z. - . Restart the spindle in the direction it was going. - -It is an error if: - -* the spindle is not turning before this cycle is executed. - -[[sec:G87-Back-Boring]] -== G87 Back Boring Cycle -(((G87 Back Boring))) - -This code is currently unimplemented in LinuxCNC. It is accepted, but the -behavior is undefined. - -[[sec:G88-Boring-Manual-Out]] -== G88 Boring Cycle, Spindle Stop, Manual Out -(((G88 Boring Cycle, Spindle Stop, Manual Out))) - -This code is currently unimplemented in LinuxCNC. It is accepted, but the -behavior is undefined. - -[[sec:G89-Boring-Dwell,]] -== G89 Boring Cycle, Dwell, Feed Out -(((G89 Boring, Dwell, Feed Out))) - ----- -G89 (X- Y- Z-) or (U- V- W-) R- L- P- ----- - -The 'G89' cycle is intended for boring. This cycle uses a P number, -where P specifies the number of seconds to dwell. - - . Preliminary motion, as described in the - <> section. - . Move the Z-axis only at the current <> to the Z - position. - . Dwell for the P number of seconds. - . Retract the Z-axis at the current feed rate to clear Z. - -[[sec:G90-G91]] -== G90, G91 Distance Mode -(((G90, G91 Distance Mode))) - -* 'G90' - absolute distance mode In absolute - distance mode, axis numbers (X, Y, Z, A, B, C, U, V, W) - usually represent positions in terms of the currently active - coordinate system. Any exceptions to that rule are described - explicitly in the <> Section. - -* 'G91' - incremental distance mode In incremental - distance mode, axis numbers usually represent - increments from the current coordinate. - -.G90 Example ----- -G90 (set absolute distance mode) -G0 X2.5 (rapid move to coordinate X2.5 including any offsets in effect) ----- - -.G91 Example ----- -G91 (set incremental distance mode) -G0 X2.5 (rapid move 2.5 from current position along the X axis) ----- - -* See <> section for more information. - -[[sec:G90_1-G91_1]] -== G90.1, G91.1 Arc Distance Mode -(((Arc Distance Mode))) - -* 'G90.1' - absolute distance mode for I, J & K offsets. - When G90.1 is in effect I and J both must be specified with G2/3 - for the XY plane or J and K for the XZ plane or it is an error. - -* 'G91.1' - incremental distance mode for I, J & K offsets. G91.1 Returns - I, J & K to their default behavior. - -[[sec:G92]] -== G92 Coordinate System Offset -(((G92 Coordinate System Offset))) - ----- -G92 axes ----- - -G92 makes the current point have the coordinates you want (without -motion), where the axis words contain the axis numbers you want. -All axis words are optional, except that at least one must be used. -If an axis word is not used for a given axis, the coordinate on -that axis of the current point is not changed. - -When 'G92' is executed, the origins of all coordinate systems move. -They move such that the value of the current controlled point, in the currently -active coordinate system, becomes the specified value. All coordinate -system's origins are offset this same distance. - -For example, suppose the current point is at X=4 and there is -currently no 'G92' offset active. Then 'G92 x7' is programmed. This -moves all origins -3 in X, which causes the -current point to become X=7. This -3 is saved in parameter 5211. - -Being in incremental distance mode has no effect on the action of 'G92'. - -'G92' offsets may be already be in effect when the 'G92' is called. -If this is the case, the offset is replaced with a new -offset that makes the current point become the specified value. - -It is an error if: - -* all axis words are omitted. - -LinuxCNC stores the G92 offsets and reuses them on the next run of a -program. To prevent this, one can program a G92.1 (to erase them), or -program a G92.2 (to remove them - they are still stored). - -See the <> Section for an -overview of coordinate systems. - -See the <> Section for more information. - -See the <> Section for more information. - -[[sec:G92_1-G92_2]] -== G92.1, G92.2 Reset Coordinate System Offsets - -* 'G92.1' - reset axis offsets to zero and set <> - 5211 - 5219 to zero. -* 'G92.2' - reset axis offsets to zero. - -[[sec:G92_3]] -== G92.3 Restore Axis Offsets - -* 'G92.3' - set the axis offset to the values saved in parameters 5211 to 5219 - -You can set axis offsets in one program and use the same offsets in -another program. Program 'G92' in the first program. This will set -parameters 5211 to 5219. Do not use 'G92.1' in the remainder of the -first program. The parameter values will be saved when the first -program exits and restored when the second one starts up. -Use 'G92.3' near the beginning of the second program. That will restore -the offsets saved in the first program. - -[[sec:G93-G94-G95-Mode]] -== G93, G94, G95: Feed Rate Mode -(((G93, G94, G95: Feed Rate Mode))) - -* 'G93' - is Inverse Time Mode. In inverse time feed rate mode, an F word - means the move should be completed in [one divided by the F number] - minutes. For example, if the F number is 2.0, the move should be - completed in half a minute. -+ -When the inverse time feed rate mode is active, an F word must appear -on every line which has a G1, G2, or G3 motion, and an F word on a line -that does not have G1, G2, or G3 is ignored. Being in inverse time feed -rate mode does not affect G0 (<>) motions. - -* 'G94' - is Units per Minute Mode. -In units per minute feed mode, an F word is interpreted to mean -the controlled point should move at a certain number of inches per -minute, millimeters per minute, or degrees per minute, depending upon -what length units are being used and which axis or axes are moving. - -* 'G95' - is Units per Revolution Mode -In units per revolution mode, an F word is interpreted to mean the -controlled point should move a certain number of inches per revolution -of the spindle, depending on what length units are being used and which -axis or axes are moving. G95 is not suitable for threading, for -threading use G33 or G76. -G95 requires that motion.spindle-speed-in to be connected. - -It is an error if: - -* Inverse time feed mode is active and a line with G1, G2, or G3 - (explicitly or implicitly) does not have an F word. -* A new feed rate is not specified after switching to G94 or G95 - -[[sec:G96-G97-Spindle]] -== G96, G97 Spindle Control Mode -(((G96, G97 Spindle Control Mode))) - ----- -G96 S- (Constant Surface Speed) -G97 (RPM Mode) ----- - -* 'D' - maximum spindle RPM -* 'S' - surface speed - -* 'G96 D- S-' - selects constant surface speed of 'S' feet per minute - (if G20 is in effect) or meters per minute - (if G21 is in effect). D- is optional. -+ -When using G96, ensure that X0 in -the current coordinate system (including offsets and tool lengths) is -the center of rotation or LinuxCNC will not give the desired spindle speed. -G96 is not affected by radius or diameter mode. - -* 'G97' selects RPM mode. - -.G96 Example Line ----- -G96 D2500 S250 (set CSS with a max rpm of 2500 and a surface speed of 250) ----- - -It is an error if: - -* S is not specified with G96 -* A feed move is specified in G96 mode while the spindle is not turning - -[[sec:G98-G99-Set]] -== G98, G99 Canned Cycle Return Level -(((G98, G99 Canned Cycle Return))) - -* 'G98' - retract to the position that axis was in just before this series -of one or more contiguous canned cycles was started. - -* 'G99' - retract to the position specified by the R word of the canned cycle. - -Program a 'G98' and the canned cycle will use the Z position prior to -the canned cycle as the Z return position if it is higher than the R -value specified in the cycle. If it is lower, the R value will be -used. The R word has different meanings in absolute distance mode and -incremental distance mode. - -.G98 Retract to Origin ----- -G0 X1 Y2 Z3 -G90 G98 G81 X4 Y5 Z-0.6 R1.8 F10 ----- - -The G98 to the second line above means that the return move will be to -the value of Z in the first line since it is higher that the R value -specified. - -The 'initial' (G98) plane is reset any time cycle motion mode is -abandoned, whether explicitly (G80) or implicitly (any motion code -that is not a cycle). Switching among cycle modes (say G81 -to G83) does NOT reset the 'initial' plane. It is possible to switch -between G98 and G99 during a series of cycles. - -// vim: set syntax=asciidoc: diff --git a/docs/src/gcode/gcode_es.txt b/docs/src/gcode/gcode_es.txt deleted file mode 100644 index 010971def5f..00000000000 --- a/docs/src/gcode/gcode_es.txt +++ /dev/null @@ -1,2081 +0,0 @@ -= G Codes - -[[cha:g-codes]] (((G Codes))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Conventions - -Conventions used in this section - -In the G code prototypes the hyphen ('-') stands for a real value -and ('<>') denotes an optional item. - -If 'L-' is written in a prototype the '-' will often be referred to -as the 'L number', and so on for any other letter. - -In the G code prototypes the word 'axes' stands for any axis as defined -in your configuration. - -An optional value will be written like this ''. - -A real value may be: - -* An explicit number, '4' -* An expression, '[2+2]' -* A parameter value, '#88' -* A unary function value, 'acos[0]' - -In most cases, if 'axis' words are given -(any or all of 'X Y Z A B C U V W'), -they specify a destination point. - -Axis numbers are in the currently active coordinate system, -unless explicitly described as being -in the absolute coordinate system. - -Where axis words are optional, any omitted axes will retain their original value. - -Any items in the G code prototypes not explicitly described as -optional are required. - -The values following letters are often given as explicit numbers. -Unless stated otherwise, the explicit numbers can be real values. For -example, 'G10 L2' could equally well be written 'G[2*5] L[1+1]'. If the -value of parameter 100 were 2, 'G10 L#100' would also mean the same. - -== G Code Quick Reference Table[[quick-reference-table]] - -(((G Code Table))) - -[width="75%", options="header", cols="2^,5<"] -|==================================================================== -|Code |Description -|<> |Coordinated Straight Motion Rapid -|<> |Coordinated Straight Motion Feed Rate -|<> |Coordinated Helical Motion Feed Rate -|<> |Dwell -|<> |Quadratic B-Spline -|<> |NURBs Block -|<> |Diameter Mode (lathe) -|<> |Radius Mode (lathe) -|<> |Set Tool Table Entry -|<> |Set Tool Table, Calculated, Workpiece -|<> |Set Tool Table, Calculated, Fixture -|<> |Coordinate System Origin Setting -|<> |Coordinate System Origin Setting Calculated -|<> |Plane Select -|<> |Units of Measure -|<> |Go to Predefined Position -|<> |Go to Predefined Position -|<> |Spindle Synchronized Motion -|<> |Rigid Tapping -|<> |Probing -|<> |Cancel Cutter Compensation -|<> |Cutter Compensation -|<> |Cutter Compensation Transient -|<> |Use Tool Length Offset from Tool Table -|<> |Cancel Tool Length Offset -|<> |Motion in Machine Coordinate System -|<> |Select Coordinate System (1 - 6) -|<> |Select Coordinate System (7 - 9) -|<> |Path Control Mode -|<> |Path Control Mode with Optional Tolerance -|<> |Drilling Cycle with Chip Breaking -|<> |Multi-pass Threading Cycle (Lathe) -|<> |Cancel Motion Modes -|<> |Drilling Cycle -|<> |Drilling Cycle with Dwell -|<> |Drilling Cycle with Peck -|<> |Right Hand Tapping Cycle *(unimplemented)* -|<> |Boring Cycle, No Dwell, Feed Out -|<> |Boring Cycle, Stop, Rapid Out -|<> |Back-Boring Cycle *(unimplemented)* -|<> |Boring Cycle, Stop, Manual Out *(unimplemented)* -|<> |Boring Cycle, Dwell, Feed Out -|<> |Distance Mode -|<> |Arc Distance Mode -|<> |Offset Coordinate Systems & Set Parameters -|<>|Cancel Offsets -|<>|Apply Parameters to Offset Coordinate Systems -|<> |Feed Modes -|<> |Constant Surface Speed -|<> |RPM Mode -|<> |Canned Cycle Z Retract Mode -|==================================================================== - -== G0 Rapid Motion[[sec:G0]] -(((G0 Rapid)))(((Rapid Motion))) - ----- -G0 axes ----- - -For rapid linear (straight line) motion, program 'G0 'axes'', where -all the axis words are optional. The 'G0' is optional if the current -motion mode is 'G0'. This will produce coordinated linear motion to -the destination point at the current maximum traverse rate (or slower if -the machine will not go that fast). It is expected that cutting -will not take place when a 'G0' command is executing. - -.G0 Example ----- -G90 (set absolute distance mode) -G0 X1 Y-2.3 (Rapid linear move from current location to X1 Y-2.3) -M2 (end program) ----- -* See <> & <> sections for more information. - -If cutter radius compensation is active, the motion will differ from -the above; see the <> Section. - -If 'G53' is programmed on the same line, the motion will also differ; -see the <> Section for more information. - -It is an error if: - -* An axis letter is without a real value. -* An axis letter is used that is not configured - -== G1 Linear Feed[[sec:G1-Linear-Motion]] -(((G1 Linear Motion)))(((Linear Motion))) - ----- -G1 axes ----- - -For linear (straight line) motion at programed feed rate (for cutting -or not), program 'G1 'axes'', where all the axis words are optional. -The 'G1' is optional if the current motion mode is 'G1'. This will -produce coordinated linear motion to the destination point -at the current feed rate (or slower if the machine will not go that -fast). - -.G1 Example ----- -G90 (set absolute distance mode) -G1 X1.2 Y-3 F10 (linear move at a feed rate of 10 from current position to X1.2 Y-3) -Z-2.3 (linear move at same feed rate from current position to Z-2.3) -Z1 F25 (linear move at a feed rate of 25 from current position to Z1) -M2 (end program) ----- -* See <> & <> & <> sections for more information. - -If cutter radius compensation is active, the motion will differ from -the above; see the <> Section. - -If 'G53' is programmed on the same line, the motion will also differ; -see the <> Section for more information. - -It is an error if: - -* No feed rate has been set. -* An axis letter is without a real value. -* An axis letter is used that is not configured - -== G2, G3 Arc Feed[[sec:G2-G3-Arc]] -(((G2, G3 Arc)))(((Arc Motion))) - ----- -G2 or G3 axes offsets (center format) -G2 or G3 axes R- (radius format) -G2 or G3 offsets (full circles) ----- - -A circular or helical arc is specified using either 'G2' (clockwise -arc) or 'G3' (counterclockwise arc). The direction (CW, CCW) is as -viewed from the positive end of the axis about which the -circular motion occurs. - -The axis of the circle or helix must be parallel to the -X, Y, or Z axis of the machine coordinate system. -The axis (or, equivalently, the plane perpendicular to the axis) -is selected with 'G17' (Z-axis, XY-plane), -'G18' (Y-axis, XZ-plane), or 'G19' (X-axis, YZ-plane). -Planes '17.1', '18.1', and '19.1' are not currently supported. -If the arc is circular, -it lies in a plane parallel to the selected plane. - -To program a helix, include the axis word perpendicular to the arc -plane: for example, if in the 'G17' plane, include a 'Z' word. This -will cause the 'Z' axis to move to the programmed value during the -circular 'XY' motion. - -To program an arc that gives more than one full turn, use a 'P' word -specifying the number of full or partial turns of arc. If 'P' is -unspecified, the behavior is as if 'P1' was given: that is, only one -full or partial turn will result, giving an arc less than or equal to -one full circle. For example, if an arc is programmed with P2, the -resulting motion will be more than one full circle and up to two full -circles (depending on the programmed endpoint.) Multi turn helical arcs -are supported and give motion useful for milling holes or threads. - -If a line of code makes an arc and includes rotary axis motion, -the rotary axes turn at a constant rate so that the rotary -motion starts and finishes when the XYZ motion starts and finishes. -Lines of this sort are hardly ever programmed. - -If cutter radius compensation is active, the motion will differ from -the above; see the <> Section. - -The arc offset is relative or absolute as set by <>. - -Two formats are allowed for specifying an arc: -Center Format and Radius Format. - -It is an error if: - -* No feed rate has been set. - -=== Center Format Arcs - -Center format arcs are more accurate than radius format arcs and are -the preferred format to use. - -The end point of the arc along with the offset to the center of the -arc from the current location are used to program arcs that are less -than a full circle. It is OK if the end point of the arc is the same -as the current location. - -The offset to the center of the arc from the current location and -optionally the number of turns are used to program full circles. - -When programming arcs an error due to rounding can result from using a -precision of less than 4 decimal places (0.0000) for inch and less than -3 decimal places (0.000) for millimeters. - -.Incremental Arc Distance Mode -Arc center offsets are a relative distance from the start location of the arc. -Incremental Arc Distance Mode is default. - -One or more axis words and one or more offsets must be programmed for an -arc that is less than 360 degrees. - -No axis words and one or more offsets must be programmed for full circles. -The 'P' word defaults to 1 and is optional. - -For more information on 'Incremental Arc Distance Mode see the -<> section. - -.Absolute Arc Distance Mode -Arc center offsets are the absolute distance from the current 0 position of the axis. - -One or more axis words and 'both' offsets must be programmed for arcs -less than 360 degrees. - -No axis words and both offsets must be programmed for full circles. -The 'P' word defaults to 1 and is optional. - -For more information on 'Absolute Arc Distance Mode see the -<> section. - -.XY-plane (G17) ----- -G2 or G3 ----- -* 'Z' - helix -* 'I' - X offset -* 'J' - Y offset -* 'P' - number of turns - -.XZ-plane (G18) ----- -G2 or G3 ----- -* 'Y' - helix -* 'I' - X offset -* 'K' - Z offset -* 'P' - number of turns - -.YZ-plane (G19) ----- -G2 or G3 ----- -* 'X' - helix -* 'J' - Y offset -* 'K' - Z offset -* 'P' - number of turns - -It is an error if: - -* No feed rate is set with the <> word. - -* No offsets are programmed. - -* When the arc is projected on the selected plane, the distance from - the current point to the center differs from the distance from the end - point to the center by more than (.05 inch/.5 mm) - OR ((.0005 inch/.005mm) AND .1% of radius). - -Deciphering the Error message 'Radius to end of arc differs from radius to start:' - -* 'start' - the current position -* 'center' - the center position as calculated using the i,j or k words -* 'end' - the programmed end point -* 'r1' - radius from the start position to the center -* 'r2' - radius from the end position to the center - -=== Center Format Examples - -Calculating arcs by hand can be difficult at times. One option is to -draw the arc with a cad program to get the coordinates and offsets. -Keep in mind the tolerance mentioned above, you may have to change the -precision of your cad program to get the desired results. Another -option is to calculate the coordinates and offset using formulas. As -you can see in the following figures a triangle can be formed from the -current position the end position and the arc center. - -In the following figure you can see the start position is X0 Y0, the -end position is X1 Y1. The arc center position is at X1 Y0. This gives -us an offset from the start position of 1 in the X axis and 0 in the Y -axis. In this case only an I offset is needed. - -.G2 Example Line ----- -G2 X1 Y1 I1 F10 (clockwise arc in the XY plane) ----- - -.G2 Example[[fig:G2-Example]] - -image::images/g2.png[align="center"] - -In the next example we see the difference between the offsets for Y if -we are doing a G2 or a G3 move. For the G2 move the start position is -X0 Y0, for the G3 move it is X0 Y1. The arc center is at X1 Y0.5 for -both moves. The G2 move the J offset is 0.5 and the G3 move the J -offset is -0.5. - -.G2-G3 Example Line ----- -G2 X0 Y1 I1 J0.5 F25 (clockwise arc in the XY plane) -G3 X0 Y0 I1 J-0.5 F25 (counterclockwise arc in the XY plane) ----- - -.G2-G3 Example[[fig:G2/3-Example]] - -image::images/g2-3.png[align="center"] - -.G2 Example Line ----- -G17 G2 X10 Y16 I3 J4 Z9 (helix arc with Z added) ----- - -The above example line will make a clockwise (as viewed from the positive Z-axis) -circular or helical arc whose axis is parallel to the Z-axis, ending -where X=10, Y=16, and Z=9, with its center offset in the X direction by -3 units from the current X location and offset in the Y direction by 4 -units from the current Y location. If the current location has X=7, Y=7 -at the outset, the center will be at X=10, Y=11. If the starting value -of Z is 9, this is a circular arc; otherwise it is a helical arc. The -radius of this arc would be 5. - -In the center format, the radius of the arc is not specified, but it -may be found easily as the distance from the center of the circle to -either the current point or the end point of the arc. - -=== Radius Format Arcs - ----- -G2 or G3 axes R- ----- -* 'R' - radius from current position - -It is not good practice to program radius format arcs that are nearly -full circles or nearly semicircles because a small change in the -location of the end point will produce a much larger change in the -location of the center of the circle (and, hence, the middle of the -arc). The magnification effect is large enough that rounding error in a -number can produce out-of-tolerance cuts. For instance, a 1% -displacement of the endpoint of a 180 degree arc produced a 7% -displacement of the point 90 degrees along the arc. Nearly full circles -are even worse. Other size arcs (in the range tiny to 165 degrees or -195 to 345 degrees) are OK. - -In the radius format, the coordinates of the end point of the arc in -the selected plane are specified along with the radius of the arc. -Program 'G2' 'axes' 'R-' (or use 'G3' instead of 'G2' ). R is the -radius. The axis words are all optional except that at -least one of the two words for the axes in the selected plane must be -used. The R number is the radius. A positive radius indicates that the -arc turns through less than 180 degrees, while a negative radius -indicates a turn of more than 180 degrees. If the arc is helical, the -value of the end point of the arc on the coordinate axis parallel to -the axis of the helix is also specified. - -It is an error if: - -* both of the axis words for the axes of the selected plane are omitted -* the end point of the arc is the same as the current point. - -.G2 Example Line ----- -G17 G2 X10 Y15 R20 Z5 (radius format with arc) ----- - -The above example makes a clockwise (as viewed from the positive Z-axis) -circular or helical arc whose axis is parallel to the Z-axis, ending -where X=10, Y=15, and Z=5, with a radius of 20. If the starting value -of Z is 5, this is an arc of a circle parallel to the XY-plane; -otherwise it is a helical arc. - -== G4 Dwell[[sec:G4-Dwell]] -(((G4 Dwell))) - ----- -G4 P- ----- -* 'P' - seconds to dwell - -The P number is the time in seconds that all axes will remain unmoving. -This does not affect spindle, coolant and other I/O. - -.G4 Example Line ----- -G4 P1.5 (wait for 1.5 seconds before proceeding) ----- - -It is an error if: - -* the P number is negative. - -== G5.1 Quadratic B-spline[[sec:G5.1-B-spline]] -(((G5.1 Quadratic B-spline))) - ----- -G5.1 X- Y- I- J- ----- -* 'I' - X axis offset -* 'J' - Y axis offset - -G5.1 creates a quadratic B-spline in the XY plane with the X and Y axis only. -The offsets are I for X axis and J for Y axis. - -// FIX ME add example code - -It is an error if: - -* I and J offset is not specified -* An axis other than X or Y is specified -* The active plane is not G17 - -== G5.2 G5.3 NURBs Block[[sec:G5.2-G5.3-NURBs]] -(((G5.2 G5.3 NURBs Block))) - ----- -G5.2 X- Y- P- -X- Y- P- -... -G5.3 ----- - -Warning: G5.2, G5.3 is experimental and not fully tested. - -G5.2 is for opening the data block defining a NURBs and G5.3 for -closing the data block. In the lines between these two codes the curve -control points are defined with both their related 'weights' (P) and -their parameter (L) which determines the order of the curve (k) and -subsequently its degree (k-1). - -Using this curve definition the knots of the NURBs curve are not -defined by the user they are calculated by the inside algorithm, in the -same way as it happens in a great number of graphic applications, where -the curve shape can be modified only acting on either control points or -weights. - -.G5.2 Example ----- -G0 X0 Y0 (rapid move) -F10 (set feed rate) -G5.2 X0 Y1 P1 L3 - X2 Y2 P1 - X2 Y0 P1 - X0 Y0 P2 -G5.3 -; The rapid moves show the same path without the NURBs Block -G0 X0 Y1 - X2 Y2 - X2 Y0 - X0 Y0 -M2 ----- - -.Sample NURBs Output - -image:images/nurbs01.png[align="center"] - -More information on NURBs can be found here: - -http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?NURBS[http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?NURBS] - -== G7 Lathe Diameter Mode[[sec:G7-Diameter-Mode]] -(((G7 Lathe Diameter Mode))) - ----- -G7 ----- - -Program G7 to enter the diameter mode for axis X on a lathe. When in -the diameter mode the X axis moves on a lathe will be 1/2 the distance -to the center of the lathe. For example X1 would move the cutter to -0.500†from the center of the lathe thus giving a 1†diameter part. - -== G8 Lathe Radius Mode[[sec:G8-Radius-Mode]] -(((G8 Lathe Radius Mode))) - ----- -G8 ----- - -Program G8 to enter the radius mode for axis X on a lathe. When in -Radius mode the X axis moves on a lathe will be the distance from the -center. Thus a cut at X1 would result in a part that is 2" in diameter. -G8 is default at power up. - -== G10 L1 Set Tool Table[[sec:G10-L1_]] -(((G10 L1 Tool Table))) - ----- -G10 L1 P- axes ----- -* 'P' - tool number -* 'R' - radius of tool -* 'I' - front angle (lathe) -* 'J' - back angle (lathe) -* 'Q' - orientation (lathe) - -G10 L1 sets the tool table for the 'P' tool number to the values of the words. - -A valid G10 L1 rewrites and reloads the tool table. - -.G10 L1 Example Line ----- -G10 L1 P1 Z1.5 (set tool 1 Z offset from the machine origin to 1.5) -G10 L1 P2 R0.015 Q3 (lathe example setting tool 2 radius to 0.015 and orientation to 3) ----- - -It is an error if: - -* Cutter Compensation is on -* The P number is unspecified -* The P number is not a valid tool number from the tool table - -For more information on cutter orientation used by the 'Q' word, -see the <> diagram. - -== G10 L2 Set Coordinate System[[sec:G10-L2_]] -(((G10 L2 Coordinate System))) - ----- -G10 L2 P- ----- -* 'P' - coordinate system (0-9) -* 'R' - rotation about the Z axis - -G10 L2 sets the origin of a coordinate system. - -To specify a coordinate system program P1 to P9 corresponding to 'G54' to 'G59.3'. -For the currently active coordinate system program P0. - -Optionally program R to indicate the rotation of the XY axis around the Z axis. -All axis words are optional. - -The origin of the coordinate system specified by the P number is -set to the given values (in terms of the not offset machine coordinate system). -Only those coordinates for which an axis word is included on the line will be set. - -Being in incremental distance mode (<>) has no effect on 'G10 L2'. -The direction of rotation is CCW as viewed from the Top View. - -Important Concepts: - -* G10 L2 Pn does not change from the current coordinate system to the one specified by P, - you have to use G54-59.3 to select a coordinate system. -* When a rotation is in effect jogging an axis will only move that axis - in a positive or negative direction and not along the rotated axis. -* If a 'G92' origin offset was in effect before 'G10 L2', - it will continue to be in effect afterwards. -* The coordinate system whose origin is set by a 'G10' command may be - active or inactive at the time the 'G10' is executed. - If it is currently active, the new coordinates take effect immediately. - -It is an error if: - -* The P number does not evaluate to an integer in the range 0 to 9. -* An axis is programmed that is not defined in the configuration. - -.G10 L2 Example Line ----- -G10 L2 P1 X3.5 Y17.2 ----- - -In the above example the origin of the first coordinate system -(the one selected by 'G54') is set to be X=3.5 and Y=17.2. -Because only X and Y are specified, the origin point is only moved in X and Y; -the other coordinates are not changed. - -.G2 L2 Example Line ----- -G10 L2 P1 X0 Y0 Z0 (clear offsets for X,Y & Z axes in coordinate system 1) ----- - -The above example sets the XYZ coordinates of the coordinate system 1 to the machine origin. - -.Coordinate System[[cap:Set-Coordinate-System]] - -[width="50%", options="header", cols="^,^,^"] -|======================================== -|P Value |Coordinate System |G code -|0 |Active |n/a -|1 |1 |G54 -|2 |2 |G55 -|3 |3 |G56 -|4 |4 |G57 -|5 |5 |G58 -|6 |6 |G59 -|7 |7 |G59.1 -|8 |8 |G59.2 -|9 |9 |G59.3 -|======================================== - -The coordinate system is described in the <> Section. - -== G10 L10 Set Tool Table[[sec:G10-L10]] -(((G10 L10 Set Tool Table))) - ----- -G10 L10 P- axes ----- -* 'P' - tool number -* 'R' - rotation about the Z axis -* 'I' - front angle (lathe) -* 'J' - back angle (lathe) -* 'Q' - orientation (lathe) - -G10 L10 changes the tool table entry for tool P so that if the -tool offset is reloaded, with the machine in its current position -and with the current G5x and G92 offsets active, the current coordinates -for the given axes will become the given values. The axes that are -not specified in the G10 L10 command will not be changed. This could be -useful with a probe move as described in the <> section. - -.G10 L10 Example ----- -T1 M6 G43 (load tool 1 and tool length offsets) -G10 L10 P1 Z1.5 (set the current position for Z to be 1.5) -G43 (reload the tool length offsets from the changed tool table) -M2 (end program) ----- -* See <> & <> & <> - sections for more information. - -It is an error if: - -* Cutter Compensation is on -* The P number is unspecified -* The P number is not a valid tool number from the tool table - -== G10 L11 Set Tool Table[[sec:G10-L11]] -(((G10 L11 Set Tool Table))) - ----- -G10 L11 P- axes ----- -* 'P' - coordinate system (0-9) -* 'R' - rotation about the Z axis -* 'I' - front angle (lathe) -* 'J' - back angle (lathe) -* 'Q' - orientation (lathe) - -G10 L11 is just like G10 L10 except that instead of setting the entry -according to the current offsets, it is set so that the current -coordinates would become the given value if the new tool offset -is reloaded and the machine is placed in the G59.3 coordinate -system without any G92 offset active. - -This allows the user to set the G59.3 coordinate system according to a -fixed point on the machine, and then use that fixture to measure tools -without regard to other currently-active offsets. - -// .G10 L11 Example FIX ME! -// ---- -// G10 L11 P1 -// ---- - -It is an error if: - -* Cutter Compensation is on -* The P number is unspecified -* The P number is not a valid tool number from the tool table - -== G10 L20 Set Coordinate System[[sec:G10-L20]] -(((G10 L20 Set Coordinate System))) - ----- -G10 L20 P- axes ----- -* 'P' - coordinate system (0-9) -* 'R' - rotation about the Z axis - -G10 L20 is similar to G10 L2 except that instead of setting the -offset/entry to the given value, it is set to a calculated value that -makes the current coordinates become the given value. - -.G10 L20 Example Line ----- -G10 L20 P1 X1.5 (set the X axis current location in coordinate system 1 to 1.5) ----- - -It is an error if: - -* The P number does not evaluate to an integer in the range 0 to 9. -* An axis is programmed that is not defined in the configuration. - -== G17 - G19.1 Plane Selection[[sec:G17-G18-G19]] -(((G17 G18 G19 Plane Selection)))(((Plane Selection))) - -These codes set the current plane as follows: - -* 'G17' - XY (default) -* 'G18' - ZX -* 'G19' - YZ -* 'G17.1' - UV -* 'G18.1' - WU -* 'G19.1' - VW - -The UV, WU and VW planes do not support arcs. - -It is a good idea to include a plane selection in the preamble -of each G code file. - -The effects of having a plane selected are discussed in Section -<> and Section <> - -== G20, G21 Units[[sec:G20-G21-Units]](((G20 Inches)))(((G21 Millimeters))) - -* 'G20' - to use inches for length units. -* 'G21' - to use millimeters for length units. - -It is a good idea to include units in the preamble -of each G code file. - -== G28, G28.1 Go to Predefined Position[[sec:G28-G28.1]] -(((G28))) - -* 'G28' - makes a rapid traverse move from the current position to the - absolute position of the values in <> - 5161-5166. The parameter values are in terms of the 'absolute' coordinate - system and the machine's native coordinate system. - -* 'G28 axes' - will make a rapid traverse move to the position specified by - 'axes', then will make a rapid traverse move to the 'absolute' - position of the values in <> - 5161-5166. - -* 'G28.1' - stores the current absolute position into parameters 5161-5166. - -.G30 Example Line ----- -G28 Z2.5 (rapid to Z2.5 then to location specified in the G28 stored parameters) ----- - -It is an error if : - -* Radius compensation is turned on - -== G30, G30.1 Go to Predefined Position[[sec:G30-G30.1]] -(((G30))) - -* 'G30' - makes a rapid traverse move from the current position to the - absolute position of the values in <> - 5181-5186. The parameter values are in terms of the 'absolute' coordinate - system and the machine's native coordinate system. - -* 'G30 axes' - will make a rapid traverse move to the position specified by - 'axes', then will make a rapid traverse move to the 'absolute' - position of the values in <> - 5181-5186. - -* 'G30.1' - stores the current absolute position into parameters 5181-5186. - -[NOTE] -G30 parameters will be used to move the tool when a M6 is programmed -if [TOOL_CHANGE_AT_G30]=1 is in the [EMCIO] section of the ini file. - -.G30 Example Line ----- -G30 Z2.5 (rapid to Z2.5 then to the location specified in the G30 stored parameters) ----- - -It is an error if : - -* Radius compensation is turned on - -== G33 Spindle Synchronized Motion[[sec:G33-Spindle-Sync]] -(((G33 Spindle Synchronized Motion))) - ----- -G33 X- Y- Z- K- ----- -* 'K' - distance per revolution - -For spindle-synchronized motion in one direction, code 'G33 X- Y- Z- K-' -where K gives the distance moved in XYZ for each revolution of the spindle. -For instance, if starting at 'Z=0', 'G33 Z-1 K.0625' produces -a 1 inch motion in Z over 16 revolutions of the spindle. -This command might be part of a program to produce a 16TPI thread. -Another example in metric, 'G33 Z-15 K1.5' produces -a movement of 15mm while the spindle rotates 10 times for a thread of 1.5mm. - -[NOTE] -K follows the drive line described by 'X- Y- Z-' and is not parallel to the Z axis. - -Spindle-synchronized motions wait for spindle index, so multiple passes line up. -'G33' moves end at the programmed endpoint. G33 could be used to cut tapered threads -or a fusee. - -All the axis words are optional, except that at least one must be used. - -.G33 Example ----- -G90 (absolute distance mode) -G0 X1 Z0.1 (rapid to position) -S100 M3 (start spindle turning) -G33 Z-2 K0.125 (move Z axis to -2 at a rate to equal 0.125 per revolution) -G0 X1.25 (rapid move tool away from work) -Z0.1 (rapid move to starting Z position) -M2 (end program) ----- -* See <> & <> & <> sections for more information. - -It is an error if: - -* All axis words are omitted. -* The spindle is not turning when this command is executed -* The requested linear motion exceeds machine velocity limits - due to the spindle speed - -== G33.1 Rigid Tapping[[sec:G33.1-Rigid-Tapping]] -(((G33.1 Rigid Tapping))) - ----- -G33.1 X- Y- Z- K- ----- -* 'K' - distance per revolution - -For rigid tapping (spindle synchronized motion with return), -code 'G33.1 X- Y- Z- K-' where 'K-' gives the distance moved -for each revolution of the spindle. -A rigid tapping move consists of the following sequence: - -[WARNING] -If the X Y coordinates specified are not the current coordinates when -calling G33.1 for tapping the move will not be along the Z axis -but will traverse from the current location to the X Y specified. - -. A move to the specified coordinate, synchronized with the spindle at - the given ratio and starting with a spindle index pulse. -. When reaching the endpoint, a command to reverse the spindle (e.g., - from clockwise to counterclockwise). -. Continued synchronized motion beyond the specified end coordinate - until the spindle actually stops and reverses. -. Continued synchronized motion back to the original coordinate. -. When reaching the original coordinate, - a command to reverse the spindle a second time - (e.g., from counterclockwise to clockwise). -. Continued synchronized motion beyond the original coordinate - until the spindle actually stops and reverses. -. An *unsynchronized* move back to the original coordinate. - -Spindle-synchronized motions wait for spindle index, -so multiple passes line up. -'G33.1' moves end at the original coordinate. - -All the axis words are optional, except that at least one must be used. - -.G33.1 Example ----- -G90 (set absolute mode) -G0 X1.000 Y1.000 Z0.100 (rapid move to starting position) -G33.1 Z-0.750 K0.05 (rigid tap a 20 TPI thread 0.750 deep) -M2 (end program) ----- -* See <> & <> & <> sections for more information. - -It is an error if: - -* All axis words are omitted. -* The spindle is not turning when this command is executed -* The requested linear motion exceeds machine velocity limits - due to the spindle speed - -== G38.x Straight Probe[[sec:G38-probe]](((G38.x Probe))) - ----- -G38.x axes ----- - -* 'G38.2' - probe toward workpiece, stop on contact, signal error if failure -* 'G38.3' - probe toward workpiece, stop on contact -* 'G38.4' - probe away from workpiece, stop on loss of contact, signal error if failure -* 'G38.5' - probe away from workpiece, stop on loss of contact - -[IMPORTANT] -You will not be able to use a probe move until your -machine has been set up to provide a probe input signal. -The probe input signal must be connected to 'motion.probe-input' in a .hal file. -G38.x uses motion.probe-input to determine when the probe has made (or lost) contact. -TRUE for probe contact closed (touching), FALSE for probe contact open. - -Program 'G38.x axes' to perform a straight probe operation. -The axis words are optional, except that at least one of them must be used. -The axis words together define the destination point that the probe will move towards, -starting from the current location. If the probe is not tripped before the destination -is reached G38.2 and G38.4 will signal an error. - -The tool in the spindle must be a probe or contact a probe switch. - -In response to this command, the machine moves the controlled point -(which should be at the center of the probe ball) in a straight line at the -current feed rate toward the programmed point. -In inverse time feed mode, the feed rate is such that the whole motion -from the current point to the programmed point would take the specified time. -The move stops (within machine acceleration limits) -when the programmed point is reached, -or when the requested change in the probe input takes place, -whichever occurs first. - -After successful probing, parameters 5061 to 5069 will be set to the -coordinates of X, Y, Z, A, B, C, U, V, W of the location of the controlled point -at the time the probe changed state. -After unsuccessful probing, they are set to the coordinates of the programmed point. -Parameter 5070 is set to 1 if the probe succeeded and 0 if the probe failed. -If the probing operation failed, G38.2 and G38.4 will signal an error -by posting an message on screen if the selected GUI supports that. -And by halting program execution. - -A comment of the form '(PROBEOPEN filename.txt)' will open -'filename.txt' and store the 9-number coordinate consisting of -XYZABCUVW of each successful straight probe in it. -The file must be closed with '(PROBECLOSE)'. For more information -see the <> Section. - -An example file 'smartprobe.ngc' is included (in the examples directory) -to demonstrate using probe moves to log to a file the coordinates of a part. -The program 'smartprobe.ngc' could be used with 'ngcgui' with minimal changes. - -It is an error if: - -* the current point is the same as the programmed point. -* no axis word is used -* cutter radius compensation is enabled -* the feed rate is zero -* the probe is already in the target state - -== G40 Compensation Off[[sec:G40]] -(((G40 Radius Compensation Off))) - -* 'G40' - turn cutter radius compensation off. If tool compensation was on the - next move must be a linear move and longer than the tool diameter. - It is OK to turn compensation off when it is already off. - -.G40 Example ----- -; current location is X1 after finishing cutter compensated move -G40 (turn compensation off) -G0 X1.6 (linear move longer than current cutter diameter) -M2 (end program) ----- -See <> & <> sections for more information. - -It is an error if: - -* A G2/G3 arc move is programmed next after a G40. -* The linear move after turning compensation off is less than the tool diameter. - -== G41, G42 Tool Radius Compensation[[sec:G41-G42]] -(((G41 G42 Radius Compensation))) - ----- -G41 (left of programmed path) -G42 (right of programmed path) ----- -* 'D' - tool number - -The D word is optional; if there is no D word or if the D word is 0, -the radius of the currently loaded tool will be used. - -If supplied, the D word is the tool number to use. This would normally -be the number of the tool in the spindle (in which case the D word is -redundant and need not be supplied), but it may be any valid tool number. - -To start tool radius compensation to the left of the part profile, use G41. -G41 starts cutter radius compensation to the left of the programmed line -as viewed from the positive end of the axis perpendicular to the plane. - -To start tool radius compensation to the right of the part profile, use G42. -G42 starts cutter radius compensation to the right of the programmed line -as viewed from the positive end of the axis perpendicular to the plane. - -The lead in move must be at least as long as the tool radius. -The lead in move can be a rapid move. - -Cutter radius compensation may be performed if the XY-plane or XZ-plane is active. - -User M100-M199 commands are allowed when Cutter Compensation is on. - -The behavior of the machining center when cutter radius compensation -is on is described in the <> -Section along with code examples. - -It is an error if: - -* The D number is not a valid tool number or 0. -* The YZ plane is active. -* Cutter radius compensation is commanded to turn on when it is already on. - -== G41.1, G42.1 Dynamic Cutter Radius Compensation[[sec:G41.1-G42.1]] -(((G41.1 G42.1 Dynamic Radius Compensation))) - ----- -G41.1 D- (left of programmed path) -G42.1 D- (right of programmed path) ----- -* 'D' - cutter diameter -* 'L' - tool orientation (see <>) - -G41.1 & G42.1 function the same as G41 & G42 with the added scope of being able -to program the tool diameter. The L word defaults to 0 if unspecified. - -It is an error if: - -* The YZ plane is active. -* The L number is not in the range from 0 to 9 inclusive. -* The L number is used when the XZ plane is not active. -* Cutter compensation is commanded to turn on when it is already on. - -== G43 Tool Length Offset[[sec:G43-G43.1]] -(((G43 Tool Length Offset))) - ----- -G43 ----- -* 'H' - tool number - -* 'G43' - use the currently loaded tool from the last Tn M6. - G43 changes subsequent motions by offsetting the Z and/or X - coordinates by the length of the tool. G43 does not cause any - motion. The next time a compensated axis is moved, that axis's - endpoint is the compensated location. - -* 'G43 H-' - use an offset from tool table. - It is OK for the H number to be zero; the currently loaded tool will be used. - -.G43 H- Example Line ----- -G43 H1 (set tool offsets using the values from tool 1 in the tool table) ----- - -It is an error if: - -* the H number is not an integer, is negative, or is not 0 or a valid tool - number. - -== G43.1: Dynamic Tool Length Offset[[sec:G43.1-dynamic-tool-length-offset]] -(((G43.1 Dynamic Tool Length Offset))) - ----- -G43.1 axes ----- - -* 'G43.1 axes' - change subsequent motions by offsetting the Z and/or X - offsets stored in the tool table. G43.1 does not cause any - motion. The next time a compensated axis is moved, that axis's - endpoint is the compensated location. - -.G43.1 Example ----- -G90 (set absolute mode) -T1 M6 G43 (load tool 1 and tool length offsets, Z is at machine 0 and DRO shows Z1.500) -G43.1 Z0.250 (offset current tool offset by 0.250, DRO now shows Z1.250) -M2 (end program) ----- -* See <> & <> & <> sections for more information. - -It is an error if: - -* motion is commanded on the same line as 'G43.1' - -== G49: Cancel Tool Length Compensation[[sec:G49-Tool]] -(((G49 Cancel Tool Length Offset))) - -* 'G49' - cancels tool length compensation - -It is OK to program using the same offset already in use. It is also -OK to program using no tool length offset if none is currently being -used. - -== G53 Move in Absolute Coordinates[[sec:G53-Move-in]] -(((G53 Absolute Coordinates))) - ----- -G53 axes ----- - -To move in 'absolute coordinates' from the machine origin, program 'G53' -on the same line as a linear move. 'G53' is not modal and must be -programmed on each line. 'G0' or 'G1' does not have to be programmed -on the same line if one is currently active. -For example 'G53 G0 X0 Y0 Z0' will move the axes to the home -position even if the currently -selected coordinate system has offsets in effect. - -.G53 Example Line ----- -G53 G0 X0 Y0 Z0 (rapid linear move to the machine origin) -G53 X2 (rapid linear move to absolute coordinate X2) ----- -* See <> section for more information. - -It is an error if: - -* G53 is used without G0 or G1 being active, -* or G53 is used while cutter radius compensation is on. - -== G54-G59.3 Select Coordinate System[[sec:G54-G59.3]] -(((G54-G59.3 Select Coordinate System))) - -* 'G54' - select coordinate system 1 -* 'G55' - select coordinate system 2 -* 'G56' - select coordinate system 3 -* 'G57' - select coordinate system 4 -* 'G58' - select coordinate system 5 -* 'G59' - select coordinate system 6 -* 'G59.1' - select coordinate system 7 -* 'G59.2' - select coordinate system 8 -* 'G59.3' - select coordinate system 9 - -The coordinate systems store the axis values -in the parameters shown in the following table. - -.Coordinate System Parameters[[cap:Coordinate-Systems]] - -[width="80%", options="header", cols="<,10*^"] -|==================================================================== -|Select | CS | X | Y | Z | A | B | C | U | V | W -|G54 | 1 | 5221 | 5222 | 5223 | 5224 | 5225 | 5226 | 5227 | 5228 | 5229 -|G55 | 2 | 5241 | 5242 | 5243 | 5244 | 5245 | 5246 | 5247 | 5248 | 5249 -|G56 | 3 | 5261 | 5262 | 5263 | 5264 | 5265 | 5266 | 5267 | 5268 | 5269 -|G57 | 4 | 5281 | 5282 | 5283 | 5284 | 5285 | 5286 | 5287 | 5288 | 5289 -|G58 | 5 | 5301 | 5302 | 5303 | 5304 | 5305 | 5306 | 5307 | 5308 | 5309 -|G59 | 6 | 5321 | 5322 | 5323 | 5324 | 5325 | 5326 | 5327 | 5328 | 5329 -|G59.1 | 7 | 5341 | 5342 | 5343 | 5344 | 5345 | 5346 | 5347 | 5348 | 5349 -|G59.2 | 8 | 5361 | 5362 | 5363 | 5364 | 5365 | 5366 | 5367 | 5368 | 5369 -|G59.3 | 9 | 5381 | 5382 | 5383 | 5384 | 5385 | 5386 | 5387 | 5388 | 5389 -|==================================================================== - -It is an error if: - -* selecting a coordinate system is used while cutter radius compensation is on. - -See the <> Section for an overview of coordinate -systems. - -== G61, G61.1 Exact Path Mode[[sec:G61-G61.1-G64]] -(((G61 G61.1 G64 Path Control)))(((Path Control)))(((Trajectory Control))) - -* 'G61' - exact path mode. G61 visits the programmed point exactly, - even though that means temporarily coming to a complete stop. - -* 'G61.1' - exact stop mode. Same as G61 - -== G64 Path Blending[[sec:G64-path-blending]] -(((G64 Path Blending))) - ----- -G64 > ----- -* 'P' - motion blending tolerance -* 'Q' - naive cam tolerance - -* 'G64' - best possible speed. -* 'G64 P- ' blending with tolerance. - -* 'G64' - without P means to keep the best speed possible, no matter how -far away from the programmed point you end up. - -* 'G64 P- Q-' - is a way to fine tune your system for best compromise -between speed and accuracy. The P- tolerance means that the actual path -will be no more than P- away from the programmed endpoint. The velocity -will be reduced if needed to maintain the path. In addition, when you -activate G64 P- Q- it turns on the 'naive cam detector'; when there are -a series of linear XYZ feed moves at the same feed rate that are less -than Q- away from being collinear, they are collapsed into a single -linear move. On G2/G3 moves in the G17 (XY) plane when the maximum -deviation of an arc from a straight line is less than the G64 P- -tolerance the arc is broken into two lines (from start of arc to -midpoint, and from midpoint to end). those lines are then subject to -the naive cam algorithm for lines. Thus, line-arc, arc-arc, and -arc-line cases as well as line-line benefit from the 'naive cam -detector'. This improves contouring performance by simplifying the -path. It is OK to program for the mode that is already active. See also -the <> Section and -<> Section for more -information on these modes. -If Q is not specified then it will have the same behavior as before and -use the value of P-. - -.G64 P- Example Line ----- -G64 P0.015 (set path following to be within 0.015 of the actual path) ----- - -It is a good idea to include a path control specification in the preamble -of each G code file. - -== G90, G91 Distance Mode[[sec:G90-G91]] -(((G90, G91 Distance Mode))) - -* 'G90' - absolute distance mode In absolute - distance mode, axis numbers (X, Y, Z, A, B, C, U, V, W) - usually represent positions in terms of the currently active - coordinate system. Any exceptions to that rule are described - explicitly in the <> Section. - -* 'G91' - incremental distance mode In incremental - distance mode, axis numbers usually represent - increments from the current coordinate. - -.G90 Example ----- -G90 (set absolute distance mode) -G0 X2.5 (rapid linear move to coordinate X2.5 including any offsets in effect) ----- - -.G91 Example ----- -G91 (set incremental distance mode) -G0 X2.5 (rapid linear move 2.5 from current position along the X axis) ----- - -* See <> section for more information. - -== G90.1, G91.1 Arc Distance Mode[[sec:G90.1-G91.1]] -(((Arc Distance Mode))) - -* 'G90.1' - absolute distance mode for I, J & K offsets. - When G90.1 is in effect I and J both must be specified with G2/3 - for the XY plane or J and K for the XZ plane or it is an error. - -* 'G91.1' - incremental distance mode for I, J & K offsets. G91.1 Returns - I, J & K to their default behavior. - -== G92 Coordinate System Offset[[sec:G92-G92.1-G92.2-G92.3]] -(((G92 Coordinate System Offset))) - ----- -G92 axes ----- - -G92 makes the current point have the coordinates you want (without -motion), where the axis words contain the axis numbers you want. -All axis words are optional, except that at least one must be used. -If an axis word is not used for a given axis, the coordinate on -that axis of the current point is not changed. - -When 'G92' is executed, the origins of all coordinate systems move. -They move such that the value of the current controlled point, in the currently -active coordinate system, becomes the specified value. All coordinate -system's origins are offset this same distance. - -For example, suppose the current point is at X=4 and there is -currently no 'G92' offset active. Then 'G92 x7' is programmed. This -moves all origins -3 in X, which causes the -current point to become X=7. This -3 is saved in parameter 5211. - -Being in incremental distance mode has no effect on the action of 'G92'. - -'G92' offsets may be already be in effect when the 'G92' is called. -If this is the case, the offset is replaced with a new -offset that makes the current point become the specified value. - -It is an error if: - -* all axis words are omitted. - -LinuxCNC stores the G92 offsets and reuses them on the next run of a -program. To prevent this, one can program a G92.1 (to erase them), or -program a G92.2 (to remove them - they are still stored). - -See the <> Section for an -overview of coordinate systems. - -See the <> Section for more information. - -See the <> Section for more information. - -== G92.1, G92.2 Reset Coordinate System Offsets[[sec:G92.1-G92.2]] - -* 'G92.1' - reset axis offsets to zero and set <> - 5211 - 5219 to zero. -* 'G92.2' - reset axis offsets to zero. - -== G92.3 Restore Axis Offsets[[sec:G92.3]] - -* 'G92.3' - set the axis offset to the values saved in parameters 5211 to 5219 - -You can set axis offsets in one program and use the same offsets in -another program. Program 'G92' in the first program. This will set -parameters 5211 to 5219. Do not use 'G92.1' in the remainder of the -first program. The parameter values will be saved when the first -program exits and restored when the second one starts up. -Use 'G92.3' near the beginning of the second program. That will restore -the offsets saved in the first program. - -== G93, G94, G95: Feed Rate Mode[[sec:G93-G94-G95-Mode]] -(((G93, G94, G95: Feed Rate Mode))) - -* 'G93' - is Inverse Time Mode. In inverse time feed rate mode, an F word - means the move should be completed in [one divided by the F number] - minutes. For example, if the F number is 2.0, the move should be - completed in half a minute. -+ -When the inverse time feed rate mode is active, an F word must appear -on every line which has a G1, G2, or G3 motion, and an F word on a line -that does not have G1, G2, or G3 is ignored. Being in inverse time feed -rate mode does not affect G0 (rapid traverse) motions. - -* 'G94' - is Units per Minute Mode. -In units per minute feed rate mode, an F word is interpreted to mean -the controlled point should move at a certain number of inches per -minute, millimeters per minute, or degrees per minute, depending upon -what length units are being used and which axis or axes are moving. - -* 'G95' - is Units per Revolution Mode -In units per revolution mode, an F word is interpreted to mean the -controlled point should move a certain number of inches per revolution -of the spindle, depending on what length units are being used and which -axis or axes are moving. G95 is not suitable for threading, for -threading use G33 or G76. - -It is an error if: - -* Inverse time feed rate mode is active and a line with G1, G2, or G3 - (explicitly or implicitly) does not have an F word. -* A new feed rate is not specified after switching to G94 or G95 - -== G96, G97 Spindle Control Mode[[sec:G96-G97-Spindle]] -(((G96, G97 Spindle Control Mode))) - ----- -G96 S- (Constant Surface Speed) -G97 (RPM Mode) ----- - -* 'D' - maximum spindle RPM -* 'S' - surface speed - -* 'G96 D- S-' - selects constant surface speed of 'S' feet per minute - (if G20 is in effect) or meters per minute - (if G21 is in effect). D- is optional. -+ -When using G96, ensure that X0 in -the current coordinate system (including offsets and tool lengths) is -the center of rotation or LinuxCNC will not give the desired spindle speed. -G96 is not affected by radius or diameter mode. - -* 'G97' selects RPM mode. - -.G96 Example Line ----- -G96 D2500 S250 (set CSS with a max rpm of 2500 and a surface speed of 250) ----- - -It is an error if: - -* S is not specified with G96 -* A feed move is specified in G96 mode while the spindle is not turning - -== G73 Drilling Cycle with Chip Breaking[[sec:G73-Drilling-Cycle]] -(((G73 Drilling Cycle Chip Break))) - ----- -G73 X- Y- Z- R- Q- ----- -* 'R' - retract position along the Z axis. -* 'Q' - delta increment along the Z axis. -* 'L' - repeat - -The 'G73' cycle is drilling or milling with chip breaking. -This cycle takes a Q number which represents a 'delta' increment along the Z axis. - - . Preliminary motion. - ** If the current Z position is below the R position, - the Z axis is traversed to the R position. - ** Move to the X Y coordinates - . Move the Z-axis only at the current feed rate downward by delta or to - the Z position, whichever is less deep. - . Rapid up a bit. - . Repeat steps 2 and 3 until the Z position is reached at step 2. - . Retract the Z-axis at traverse rate to R. - -It is an error if: - -* the Q number is negative or zero. -* the R number is not specified - -== G76 Threading Cycle[[sec:G76-Threading-Canned]] - -(((G76 Threading))) - ----- -G76 P- Z- I- J- R- K- Q- H- E- L- ----- - -.G76 Threading[[fig:G76-Threading]] - -image::images/g76-threads.png[align="center"] - - -* 'Drive Line' - A line through the initial X position parallel to the Z. - -* 'P-' - The 'thread pitch' in distance per revolution. - -* 'Z-' - The final position of threads. At the end of the cycle the tool will - be at this Z position. - -* 'I-' - The 'thread peak' offset from the 'drive line'. Negative 'I' values - are external threads, and positive 'I' values are internal threads. - Generally the material has been turned - to this size before the 'G76' cycle. - -* 'J-' - A positive value specifying the 'initial cut depth'. The first - threading cut will be 'J' beyond the 'thread peak' position. - -* 'K-' - A positive value specifying the 'full thread depth'. The final - threading cut will be 'K' beyond the 'thread peak' position. - -Optional settings - -* 'R-' - The 'depth degression'. 'R1.0' selects constant depth on successive - threading passes. 'R2.0' selects constant area. Values between 1.0 and - 2.0 select decreasing - depth but increasing area. Values above 2.0 select decreasing area. - Beware that unnecessarily high degression values will cause a large - number of passes to be used. (degression = a descent by stages or - steps.) - -* 'Q-' - The 'compound slide angle' is the angle (in degrees) describing to - what extent successive passes should be offset along the drive line. - This is used to cause one side of the tool to remove more material than - the other. A positive 'Q' value causes the leading edge of the tool to - cut more heavily. - Typical values are 29, 29.5 or 30. - -* 'H-' - The number of 'spring passes'. Spring passes are additional passes at - full thread depth. If no additional passes are desired, program 'H0'. - -* 'E-' - Specifies the distance along the drive line used for the taper. The - angle of the taper will be so the last pass tapers to the thread crest - over the distance specified with E.' E0.2' will give a taper for the - first/last 0.2 length units along the - thread. For a 45 degree taper program E the same as K - -* 'L-' - Specifies which ends of the thread get the taper. Program 'L0' for no - taper (the default), 'L1' for entry taper, 'L2' for exit taper, or 'L3' - for both entry and exit tapers. Entry tapers will pause at the drive - line to synchronize with the index pulse then feed in to the beginning - of the taper. No entry taper and the tool will rapid to the cut depth - then synchronize and begin the cut. - -The tool is moved to the initial X and Z positions prior to issuing -the G76. The X position is the 'drive line' and the Z position is the -start of the threads. - -The tool will pause briefly for synchronization before each threading -pass, so a relief groove will be required at the entry unless the -beginning of the thread is past the end of the material or an entry -taper is used. - -Unless using an exit taper, the exit move (traverse to original X) is -not synchronized to the spindle speed. With a slow spindle, the exit -move might take only a small fraction of a revolution. If the spindle -speed is increased after several passes are complete, subsequent exit -moves will require a larger portion of a revolution, resulting in a -very heavy cut during the exit move. This can be avoided by providing a -relief groove at the exit, or by not changing the spindle speed while -threading. - -The final position of the tool will be at the end of the 'drive line'. -A safe Z move will be needed with an internal thread to remove the tool -from the hole. - -It is an error if: - -* The active plane is not the ZX plane -* Other axis words, such as X- or Y-, are specified -* The 'R-' degression value is less than 1.0. -* All the required words are not specified -* 'P-', 'J-', 'K-' or 'H-' is negative -* 'E-' is greater than half the drive line length - -The sample program 'g76.ngc' shows the use of the G76 canned cycle, -and can be previewed and -executed on any machine using the 'sim/lathe.ini' configuration. - -.G76 Example ----- -G0 Z-0.5 X0.2 -G76 P0.05 Z-1 I-.075 J0.008 K0.045 Q29.5 L2 E0.045 ----- - -In the figure the tool is in the final position after the G76 cycle -is completed. You can see the entry path on the right from the Q29.5 -and the exit path on the left from the L2 E0.045. The white lines -are the cutting moves. - -.G76 Example[[fig:G76-Threading-Example]] - -image::images/g76-01.png[align="center"] - -== Canned Cycles[[sec:G80-G89]](((G80-G89 Canned Cycles))) - -The canned cycles 'G81' through 'G89' and the canned cycle stop 'G80' -are described in this section. - -All canned cycles are performed with respect to the currently-selected -plane. Any of the six planes may be selected. Throughout this section, -most of the descriptions assume the XY-plane has been selected. The -behavior is analogous if another plane is selected, and the correct -words must be used. For instance, in the 'G17.1' plane, the action of -the canned cycle is along W, and the locations -or increments are given with U and V. In this case substitute U,V,W for -X,Y,Z in the instructions below. - -Rotary axis words are not allowed in canned cycles. When the -active plane is one of the XYZ family, the UVW axis words are not -allowed. Likewise, when the active plane is one of the UVW family, the -XYZ axis words are not allowed. - -=== Common Words - -All canned cycles use X, Y, Z, or U, V, W groups depending on the -plane selected and R words. The R (usually meaning retract) position is -along the axis perpendicular to the currently selected plane (Z-axis -for XY-plane, etc.) Some canned cycles use additional arguments. - -=== Sticky Words - -For canned cycles, we will call a number 'sticky' if, when the same -cycle is used on several lines of code in a row, the number must be -used the first time, but is optional on the rest of the lines. Sticky -numbers keep their value on the rest of the lines if they are not -explicitly programmed to be different. The R number is always sticky. - -In incremental distance mode X, Y, and R numbers are treated as -increments from the current position and Z as an increment from the -Z-axis position before the move involving Z takes place. In absolute -distance mode, the X, Y, R, and Z numbers are absolute positions in the -current coordinate system. - -=== Repeat Cycle - -The L number is optional and represents the number of repeats. -L=0 is not allowed. If the repeat feature is used, it is -normally used in incremental distance mode, so that the same sequence -of motions is repeated in several equally spaced places along a -straight line. When L- is greater than 1 in incremental mode with the -XY-plane selected, the X and Y positions are determined by adding the -given X and Y numbers either to the current X and Y positions (on the -first go-around) or to the X and Y positions at the end of the previous -go-around (on the repetitions). Thus, if you program 'L10' , you will -get 10 cycles. The first cycle will be distance X,Y from -the original location. The R and Z positions do not change during the -repeats. The L number is not sticky. In absolute distance mode, -L>1 means 'do the same cycle in the same place several -times', Omitting the L word is equivalent to specifying L=1. - -=== Retract Mode - -The height of the retract move at the end of each repeat (called -'clear Z' in the descriptions below) is determined by the setting of -the retract mode: either to the original Z position (if that is above -the R position and the retract mode is 'G98', OLD_Z), or otherwise to -the R position. See the <> Section. - -=== Canned Cycle Errors - -It is an error if: - -* axis words are all missing during a canned cycle, -* axis words from different groups (XYZ) (UVW) are used together, -* a P number is required and a negative P number is used, -* an L number is used that does not evaluate to a positive integer, -* rotary axis motion is used during a canned cycle, -* inverse time feed rate is active during a canned cycle, -* or cutter radius compensation is active during a canned cycle. - -If the XY plane is active, the Z number is sticky, and it is an error -if: - -* the Z number is missing and the same canned cycle was not already - active, -* or the R number is less than the Z number. - -If other planes are active, the error conditions are analogous to the -XY conditions above. - -=== Preliminary and In-Between Motion - -Preliminary motion is a set of motions that is common to all of the -milling canned cycles. If the current Z position is below the R position, -the Z axis is traversed to the R position. This happens only once, -regardless of the value of L. - -In addition, at the beginning of the first cycle and each repeat, the -following one or two moves are made - -. a straight traverse parallel to the XY-plane to the given XY-position, -. a straight traverse of the Z-axis only to the R position, if it is not - already at the R position. - -If another plane is active, the preliminary and in-between motions are -analogous. - -=== Why use a canned cycle? - -There are at least two reasons for using canned cycles. The first is -the economy of code. A single bore would take several lines of code to -execute. - -The G81 <> demonstrates how a canned cycle could be used to -produce 8 holes with ten lines of G code within the canned cycle mode. -The program below will produce the same set of 8 holes using five lines -for the canned cycle. It does not follow exactly the same path nor does -it drill in the same order as the earlier example. But the program -writing economy of a good canned cycle should be obvious. - -.Eight Holes ----- -G90 G0 X0 Y0 Z0 (move coordinate home) -G1 F10 X0 G4 P0.1 -G91 G81 X1 Y0 Z-1 R1 L4(canned drill cycle) -G90 G0 X0 Y1 -Z0 -G91 G81 X1 Y0 Z-0.5 R1 L4(canned drill cycle) -G80 (turn off canned cycle) -M2 (program end) ----- -The G98 to the second line above means that the return move will be to -the value of Z in the first line since it is higher that the R value -specified. - -image::images/eight.png[align="center"] - - -.Twelve Holes in a Square - -This example demonstrates the use of the L word to repeat a set of -incremental drill cycles for successive blocks of code within the same -G81 motion mode. Here we produce 12 holes using five lines of code in -the canned motion mode. - ----- -G90 G0 X0 Y0 Z0 (move coordinate home) -G1 F50 X0 G4 P0.1 -G91 G81 X1 Y0 Z-0.5 R1 L4 (canned drill cycle) -X0 Y1 R0 L3 (repeat) -X-1 Y0 L3 (repeat) -X0 Y-1 L2 (repeat) -G80 (turn off canned cycle) -G90 G0 X0 (rapid home) -Y0 -Z0 -M2 (program end) ----- - -image::images/twelve.png[align="center"] - -The second reason to use a canned cycle is that they all produce -preliminary moves and returns that you can anticipate and control -regardless of the start point of the canned cycle. - - -== G80 Cancel Canned Cycle[[sec:G80-Cancel-Modal]] -(((G80 Cancel Modal Motion))) - -* 'G80' - cancel canned cycle modal motion. 'G80' is part of modal group 0, - so programming any other G code from modal group 0 will also - cancel the canned cycle. - -It is an error if: - -* Axis words are programmed when G80 is active. - -.G80 Example ----- -G90 G81 X1 Y1 Z1.5 R2.8 (absolute distance canned cycle) -G80 (turn off canned cycle motion) -G0 X0 Y0 Z0 (turn on rapid traverse and move to coordinate home) ----- - -The following code produces the same final position and machine state as -the previous code. - -.G0 Example ----- -G90 G81 X1 Y1 Z1.5 R2.8 (absolute distance canned cycle) -G0 X0 Y0 Z0 (turn on rapid traverse and move to coordinate home) ----- - -The advantage of the first set is that, the G80 line clearly turns off the -G81 canned cycle. With the first set of blocks, the programmer must turn -motion back on with G0, as is done in the next line, or any other motion -mode G word. - -If a canned cycle is not turned off with G80 or another motion word, the -canned cycle will attempt to repeat itself using the next block of code -that contains an X, Y, or Z word. The following file drills (G81) a set -of eight holes as shown in the following caption. - -.G80 Example 1 ----- -N100 G90 G0 X0 Y0 Z0 (coordinate home) -N110 G1 X0 G4 P0.1 -N120 G81 X1 Y0 Z0 R1 (canned drill cycle) -N130 X2 -N140 X3 -N150 X4 -N160 Y1 Z0.5 -N170 X3 -N180 X2 -N190 X1 -N200 G80 (turn off canned cycle) -N210 G0 X0 (rapid home moves) -N220 Y0 -N230 Z0 -N240 M2 (program end) ----- - -[NOTE] -Notice the z position change after the first four holes. -Also, this is one of the few places where line numbers have some value, -being able to point a reader to a specific line of code. - -.G80 Cycle[[cap:G80-Cycle]] - -image::images/G81mult.png[align="center"] - -The use of G80 in line N200 is optional because the G0 on the next -line will turn off the G81 cycle. But using the G80 as shown in -Example 1, will provide for easier to read canned cycle. Without it, it -is not so obvious that all of the blocks between N120 and N200 belong -to the canned cycle. - -== G81 Drilling Cycle[[sec:G81-Drilling-Cycle]] - -(((G81 Drilling Cycle))) - ----- -G81 (X- Y- Z-) or (U- V- W-) R- L- ----- - -The 'G81' cycle is intended for drilling. - -The cycle functions as follows: - -. Preliminary motion to start position. - -. Move the Z-axis only at the current feed rate to the Z position. - -. Retract the Z-axis at traverse rate to clear Z. This cycle was used - in the description of G80 above but is explained in detail here. - -.Example 1 - Absolute Position G81[[G81-example-1]] - -Suppose the current position is (X1, Y2, Z3) and the following line of NC -code is interpreted. - ----- -G90 G98 G81 X4 Y5 Z1.5 R2.8 ----- - -This calls for absolute distance mode (G90) and OLD_Z retract mode -(G98) and calls for the G81 drilling cycle to be performed once. - -The X value and X position are 4. - -The Y value and Y position are 5. - -The Z value and Z position are 1.5. - -The R value and clear Z are 2.8. OLD_Z is 3. - -The following moves take place: - -. a traverse parallel to the XY plane to (X4, Y5, Z3) - -. a traverse parallel to the Z-axis to (X4, Y5, Z2.8). - -. a feed parallel to the Z-axis to (X4, Y5, Z1.5) - -. a traverse parallel to the Z-axis to (X4, Y5, Z3) - -image::images/G81ex1.png[align="center"] - -.Example 2 - Relative Position G81 - -Suppose the current position is (X1, Y2, Z3) and the following line of NC -code is interpreted. - ----- -G91 G98 G81 X4 Y5 Z-0.6 R1.8 L3 ----- - -This calls for incremental distance mode (G91) and OLD_Z retract mode -(G98). It also calls for the G81 drilling cycle to be repeated three -times. The X value is 4, the Y value is 5, the Z value is -0.6 and the -R value is 1.8. The initial X position is 5 (=1+4), the initial Y -position is 7 (=2+5), the clear Z position is 4.8 (=1.8+3), and the Z -position is 4.2 (=4.8-0.6). OLD_Z is 3. - -The first preliminary move is a traverse along the Z axis to -(X1,Y2,Z4.8), since OLD_Z < clear Z. - -The first repeat consists of 3 moves. - -. a traverse parallel to the XY-plane to (X5, Y7, Z4.8) - -. a feed parallel to the Z-axis to (X5, Y7, Z4.2) - -. a traverse parallel to the Z-axis to (X5, Y7, Z4.8) - -The second repeat consists of 3 moves. The X position is reset to - 9 (=5+4) and the Y position to 12 (=7+5). - -. a traverse parallel to the XY-plane to (X9, Y12, Z4.8) - -. a feed parallel to the Z-axis to (X9, Y12, Z4.2) - -. a traverse parallel to the Z-axis to (X9, Y12, Z4.8) - -The third repeat consists of 3 moves. The X position is reset to - 13 (=9+4) and the Y position to 17 (=12+5). - -. a traverse parallel to the XY-plane to (X13, Y17, Z4.8) - -. a feed parallel to the Z-axis to (X13, Y17, Z4.2) - -. a traverse parallel to the Z-axis to (X13, Y17, Z4.8) - -image::images/G81ex2.png[align="center"] - -.Example 3 - Relative Position G81 - -Now suppose that you execute the first G81 block of code but from (X0, -Y0, Z0) rather than from (X1, Y2, Z3). - ----- -G90 G98 G81 X4 Y5 Z1.5 R2.8 ----- - -Since OLD_Z is below the R value, it adds -nothing for the motion but since the initial value of Z is less than -the value specified in R, there will be an initial Z move during the -preliminary moves. - -image::images/G81.png[align="center"] - -.Example 4 - Absolute G81 R > Z - -This is a plot of the path of motion for the second g81 block of code. - ----- -G91 G98 G81 X4 Y5 Z-0.6 R1.8 L3 ----- - -Since this plot starts with (X0, Y0, Z0), the interpreter adds the -initial Z0 and R1.8 and rapids to that location. After that initial Z -move, the repeat feature works the same as it did in example 3 with the -final Z depth being 0.6 below the R value. - -image::images/G81a.png[align="center"] - -.Example 5 - Relative position R > Z - ----- -G90 G98 G81 X4 Y5 Z-0.6 R1.8 ----- - -Since this plot starts with (X0, Y0, Z0), the interpreter adds the -initial Z0 and R1.8 and rapids to that location as in 'Example 4'. -After that initial Z move, the rapid traverse move to X4 Y5 is done. -Then the final Z depth being 0.6 below the R value. The repeat -function would make the Z move in the same location again. - -== G82 Drilling Cycle, Dwell[[sec:G82-Drilling-Dwell]] - -(((G82 Drilling Cycle Dwell))) - ----- -G82 (X- Y- Z-) or (U- V- W-) R- L- P- ----- - -The 'G82' cycle is intended for drilling with a dwell at the bottom of -the hole. - - . Preliminary motion, as described above. - . Move the Z-axis only at the current feed rate to the Z position. - . Dwell for the P number of seconds. - . Retract the Z-axis at traverse rate to clear Z. - -The motion of a G82 canned cycle looks just like G81 with the -addition of a dwell at the bottom of the Z move. The length of -the dwell is specified by a 'P-' word in the G82 block. - -== G83 Peck Drilling Cycle[[sec:G83-Drilling-Peck]] - -(((G83 Peck Drilling))) - ----- -G83 (X- Y- Z-) or (U- V- W-) R- L- Q- ----- - -The 'G83' cycle (often called peck drilling) is intended for deep -drilling or -milling with chip breaking. The retracts in this cycle clear the hole -of chips and cut off any long stringers (which are common when drilling -in aluminum). This cycle takes a Q number which represents a 'delta' -increment along the Z-axis. The retract before final depth will always -be to the 'retract' plane even if G98 is in effect. The final retract will -honor the G98/99 in effect. G83 functions the same as G81 with the addition -of retracts during the drilling operation. - - - . Preliminary motion, as described above. - . Move the Z-axis only at the current feed rate downward by delta or to - the Z position, whichever is less deep. - . Rapid back out to the retract plane specified by the R word. - . Rapid back down to the current hole bottom, backed off a bit. - . Repeat steps 2, 3, and 4 until the Z position is reached at step 2. - . Retract the Z-axis at traverse rate to clear Z. - -It is an error if: - -* the Q number is negative or zero. - -== G84 Right-Hand Tapping Cycle[[sec:G84-Right-Hand-Tapping]] - -(((G84 Right-Hand Tapping))) - -This code is currently unimplemented in LinuxCNC. It is accepted, but the -behavior is undefined. See section <> - -== G85 Boring Cycle, Feed Out[[sec:G85-Boring-Feed-Out]] - -(((G85 Boring, Feed Out))) - ----- -G85 (X- Y- Z-) or (U- V- W-) R- L- ----- - -The 'G85' cycle is intended for boring or reaming, but could be used -for drilling or milling. - - . Preliminary motion, as described above. - . Move the Z-axis only at the current feed rate to the Z position. - . Retract the Z-axis at the current feed rate to clear Z. - -== G86 Boring Cycle, Spindle Stop, Rapid Out[[sec:G86-Boring-Rapid-Out]] - -(((G86 Boring, Spindle Stop, Rapid Out))) - ----- -G86 (X- Y- Z-) or (U- V- W-) R- L- P- ----- - -The 'G86' cycle is intended for boring. This cycle uses a P number -for the number of seconds to dwell. - - . Preliminary motion, as described above. - . Move the Z-axis only at the current feed rate to the Z position. - . Dwell for the P number of seconds. - . Stop the spindle turning. - . Retract the Z-axis at traverse rate to clear Z. - . Restart the spindle in the direction it was going. - -It is an error if: - -* the spindle is not turning before this cycle is executed. - -== G87 Back Boring Cycle[[sec:G87-Back-Boring]] - -(((G87 Back Boring))) - -This code is currently unimplemented in LinuxCNC. It is accepted, but the -behavior is undefined. - -== G88 Boring Cycle, Spindle Stop, Manual Out[[sec:G88-Boring-Manual-Out]] - -(((G88 Boring Cycle, Spindle Stop, Manual Out))) - -This code is currently unimplemented in LinuxCNC. It is accepted, but the -behavior is undefined. - -== G89 Boring Cycle, Dwell, Feed Out[[sec:G89-Boring-Dwell,]] - -(((G89 Boring, Dwell, Feed Out))) - ----- -G89 (X- Y- Z-) or (U- V- W-) R- L- P- ----- - -The 'G89' cycle is intended for boring. This cycle uses a P number, -where P specifies the number of seconds to dwell. - - . Preliminary motion, as described above. - . Move the Z-axis only at the current feed rate to the Z position. - . Dwell for the P number of seconds. - . Retract the Z-axis at the current feed rate to clear Z. - -== G98, G99 Canned Cycle Return Level[[sec:G98-G99-Set]] -(((G98, G99 Canned Cycle Return))) - -* 'G98' - retract to the position that axis was in just before this series -of one or more contiguous canned cycles was started. - -* 'G99' - retract to the position specified by the R word of the canned cycle. - -Program a 'G98' and the canned cycle will use the Z position prior to -the canned cycle as the Z return position if it is higher than the R -value specified in the cycle. If it is lower then the R value will be -used. The R word has different meanings in absolute distance mode and -incremental distance mode. - -.G98 Retract to Origin ----- -G0 X1 Y2 Z3 -G90 G98 G81 X4 Y5 Z-0.6 R1.8 F10 ----- - -The G98 to the second line above means that the return move will be to -the value of Z in the first line since it is higher that the R value -specified. - -The 'initial' (G98) plane is reset any time cycle motion mode is -abandoned, whether explicitly (G80) or implicitly (any motion code -that is not a cycle). Switching among cycle modes (say G81 -to G83) does NOT reset the 'initial' plane. It is possible to switch -between G98 and G99 during a series of cycles. - -// vim: set syntax=asciidoc: diff --git a/docs/src/gcode/gcode_fr.txt b/docs/src/gcode/gcode_fr.txt deleted file mode 100644 index 4fd60dad81d..00000000000 --- a/docs/src/gcode/gcode_fr.txt +++ /dev/null @@ -1,2283 +0,0 @@ -:lang: fr -:toc: - -= Tout le G-code de LinuxCNC - -[[cha:Le-G-code]] (((Le G-code))) - -== Conventions d'écriture du G-code - -Dans une commande type, le tiret ('-') signifie une valeur réelle et les signes -('<>') indiquent un item facultatif. - -Si 'L-' est écrit dans une commande, le signe '-' fera référence à 'Lnombre'. -De la même manière, le signe '-' dans 'H-' peut être appelé le 'Hnombre' et -ainsi de suite pour les autres lettres. Une valeur facultative sera -écrite ''. - -Dans les blocs de G-code, le mot 'axes' signifie n'importe quel axe -défini dans la configuration. - -Une valeur réelle peut être: - -* - un nombre explicite, '4' par exemple. -* - une expression, '[2+2]' par exemple. -* - une valeur de paramètre, '#88' par exemple. -* - une fonction unaire de la valeur, 'acos[0]' par exemple. - -Dans la plupart des cas, si des mots d'axes sont donnés -parmi 'XYZABCUVW', ils spécifient le point de destination. - -Les axes sont donnés dans le système de coordonnées courant, -à moins qu'explicitement décrit comme étant dans le système de coordonnées -absolues (machine). - -Les axes sont facultatifs, tout axe omis gardera sa valeur courante. - -Tout item dans un bloc de G-code, non explicitement décrit comme facultatif, -sera requis. Une erreur sera signalée si un item requis est omis. - -Dans les commandes, les valeurs suivant les lettres sont souvent -données comme des nombres explicites. Sauf indication contraire, les -nombres explicites peuvent être des valeurs réelles. Par exemple, 'G10 -L2' pourrait aussi bien être écrite 'G[2*5] L[1+1]'. Si la valeur du -paramètre '100' étaient '2', 'G10 L#100' signifierait également la même -chose. - - -[[sec:Table-des-index-du-G-code]] -== Table d'index du G-code -(((Table des index du G Code))) - -[width="75%", options="header", cols="2^,5<"] -|============================================================================== -|Sections | Descriptions -|<> | Interpolation linéaire en vitesse rapide -|<> | Interpolation linéaire en vitesse travail -|<> | Interpolation circulaire sens horaire/anti-horaire -|<> | Temporisation -|<> | B-Spline quadratique -|<> | NURBs Block '(expérimental)' -|<> | Mode diamètre (sur les tours) -|<>| Mode rayon (sur les tours) -|<> | Ajuste les valeurs de l'outil en table d'outils -|<> | Modifie les valeurs de l'outil dans la table d'outils -|<> | Fixe les valeurs de l'outil dans la table d'outils -|<> | Fixe l'origine d'un système de coordonnées -|<> | Fixe l'origine du système de coord. aux valeurs calculées -|<> | Choix du plan de travail -|<> | Unités machine -|<> | Aller à une position prédéfinie -|<> | Aller à une position -prédéfinie -|<> | Mouvement avec broche synchronisée -|<> | Taraudage rigide -|<> | Mesures au palpeur -|<> | Révocation de la compensation de rayon d'outil -|<> | Compensation de rayon d'outil -|<> | Comp. dynamique de rayon d'outil à gauche/à droite -|<> | Compensation de longueur d'outil d'après une table d'outils -|<> | Compensation dynamique de longueur d'outil -|<> | Révocation de la compensation de -longueur d'outil -|<> | Déplacements en coordonnées -machine (Absolues) -|<> | Choix du système de coordonnées (1 à 9) -|<> | Mode trajectoire exacte/mode arrêts exacts -|<>| Mode trajectoire continue avec tolérance -|<> | Cycle de perçage avec brise copeau -|<> | Cycle de filetage multipasses (tour) -|<> | Révocation des codes modaux -|<> | Cycle de perçage -|<> | Autres cycles de perçage -|<> | Perçage avec débourrage -|<> | Taraudage à droite '(pas encore implémenté)' -|<> | Alésage, retrait en vitesse travail -|<> | Alésage, retrait en vitesse rapide -|<> | Cycle d'alésage arrière '(pas encore implémenté)' -|<> | Cycle alésage, Stop, Retrait manuel -'(pas encore implémenté)' -|<> | Cycle d'alésage avec tempo, recul vitesse travail -|<> | Types de déplacement -|<> | Arc I,J,K, centre absolu ou relatif -|<> | Décalages d'origines avec mise à jour des paramètres -|<> | Révocation des décalages d'origine -|<> | Applique contenu des paramètres aux déc. d'origine -|<> | Modes de vitesse -|<> | Vitesse de coupe constante (IPM ou m/mn) -|<> | Vitesse en tours par minute -|<> | Options de retrait des cycles de perçage -|============================================================================== - -[[sec:G0]] -== G0 Interpolation linéaire en vitesse rapide -(((G0 Interpolation linéaire en vitesse rapide)))(((rapide))) - ----- -G0 axes ----- - -Pour un mouvement linéaire en vitesse rapide, programmer 'G0 axes', -tous les mots d'axe sont facultatifs. Le 'G0' est facultatif si le mode mouvement -courant est déjà 'G0'. Cela produit un mouvement linéaire vers le point de -destination à la vitesse rapide courante (ou moins vite si la machine n'atteint -pas cette vitesse). Il n'est pas prévu d'usiner la matière quand une -commande G0 est exécutée. Un G0 seul peut être utilisé pour passer le mode -de mouvement courant en G0. - -.Exemple avec G0: ----- -G90 (Fixe les déplacements en mode absolu) -G0 X1 Y-2.3 (mouvement linéaire en vitesse rapide du point courant à X1 Y-2.3) -M2 (fin de programme) ----- - -* Voir les sections <> et <> pour plus -d'informations. - -Si la compensation d'outil est active, le mouvement sera -différent de celui décrit ci-dessus, voir la section -<>. - -Si 'G53' est programmé sur la même ligne, le mouvement sera également -différent, voir la section <>. - -//// -Si un mouvement 'G0' déplace seulement des axes rotatifs et que la -position de la cible pour ces axes est dans une échelle de -360 à 360 degrés, -le mouvement sera organisé pour que chaque axe rotatif fasse moins d'un tour -complet. -//// - -C'est une erreur si: - -* Un mot d'axe est indiqué sans valeur réelle. -* Un mot d'axe est indiqué qui n'est pas configuré. - -[[sec:G1]] -== G1 Interpolation linéaire en vitesse travail -(((G1 Interpolation linéaire en vitesse travail))) - ----- -G1 axes ----- - -Pour un mouvement linéaire en vitesse travail, (pour usiner ou non) -programmer 'G1 axes', tous les mots d'axe sont facultatifs. Le 'G1' est -facultatif si le mode de mouvement courant est déjà 'G1'. -Cela produira un mouvement linéaire vers le point de destination à -la vitesse de travail courante (ou moins vite si la machine n'atteint -pas cette vitesse). Un G1 seul peut être utilisé pour passer le mode de -mouvement courant en G1. - -.Exemple avec G1: ----- -G90 (Fixe les déplacements en mode absolu) -G1 X1.2 Y-3 F10 (mouvement linéaire à 10 unités/mn du point courant à X1.2 Y-3) -Z-2.3 (mouvement linéaire à 10 unités/mn du point courant à Z-2.3) -Z1 F25 (mouvement linéaire de l'axe Z à 25 unités/mn vers Z1) -M2 (Fin de programme) ----- - -* Voir les sections <> et <> pour plus -d'informations. - -Si la compensation d'outil est active, le mouvement sera -différent de celui décrit ci-dessus, voir la section -<>. -Si 'G53' est programmé sur la même ligne, le mouvement sera également -différent, voir la section <>. - -C'est une erreur si: - -* - Aucune vitesse d'avance travail n'est fixée. -* - un mot d'axe est indiqué sans valeur réelle. -* - un mot d'axe est indiqué qui n'est pas configuré. - -[[sec:G2-G3]] -== G2, G3 Interpolation circulaire en vitesse travail -(((G2 Interpolation circulaire sens horaire))) -(((G3 Interpolation circulaire anti-horaire))) - ----- -G2 ou G3 axes décalages (format centre) -G2 ou G3 axes R- (format rayon) -G2 ou G3 décalages (cercles complet) ----- - -Un mouvement circulaire ou hélicoïdal est spécifié en sens horaire -avec 'G2' ou en sens anti-horaire avec 'G3'. La direction est vue depuis -le côté positif de l'axe autour duquel le mouvement se produit. - -Les axes de cercle ou les hélicoïdes, doivent être parallèles aux -axes X, Y ou Z du système de coordonnées machine. -Les axes (ou, leurs équivalents, les plans perpendiculaires aux axes) -sont sélectionnés avec 'G17' (axe Z, plan XY), -'G18' (axe Y, plan XZ), ou 'G19' (axe X, plan YZ). -Les plans '17,1', '18,1' et '19,1' ne sont pas actuellement pris en charge. -Si l'arc est circulaire, il se trouve dans un plan parallèle au plan sélectionné. - -Pour programmer un hélicoïde, inclure le mot d'axe perpendiculaire au -plan de l'arc. Par exemple, si nous sommes dans le plan 'G17', inclure -un mot 'Z', ceci provoquera un mouvement de l'axe 'Z' vers valeur programmée -durant tout le mouvement circulaire 'XY'. - -Pour programmer un arc supérieur à un tour complet, utiliser un -mot 'P' spécifiant alors le nombre de tours complets en plus de l'arc. -Si 'P' n'est pas spécifié, le comportement sera comme si 'P1' avait été -donné: ceci étant, un seul tour complet ou partiel sera effectué, -donnant un arc plus petit ou égal à un tour complet. -Par exemple, si un arc de 180° est programmé avec P2, le mouvement résultant -sera d'un tour et demi. Pour chaque incrément de P au delà de 1, un tour complet -sera ajouté à l'arc programmé. Les arcs hélicoïdaux multitours sont -supportés ce qui donne des mouvements très intéressants pour usiner des -alésages ou des filetages. - -Si une ligne de G-code crée un arc et inclus le mouvement d'un -axe rotatif, l'axe rotatif tournera à vitesse constante de sorte que -le mouvement de l'axe rotatif commence et se termine en même temps que -les autres axes XYZ. De telles lignes sont rarement programmées. - -Si la compensation d'outil est active, le mouvement sera -différent de celui décrit ci-dessus, voir les sections -<> et <>. - -Le centre de l'arc est absolu ou relatif, tel que fixé par - <>, respectivement. - -C'est une erreur si: - -* Aucune vitesse d'avance travail n'est spécifiée. - -Deux formats sont possibles pour spécifier un arc: Le format centre et -le format rayon. - -=== Arc au format centre (format recommandé) - -Les arcs au format centre sont plus précis que les arcs au format rayon, c'est -le format à privilégier. - -La distance entre la position courante et le centre de l'arc et, -facultativement, le nombre de tours, sont utilisés pour programmer des arcs -inférieurs au cercle complet. Il est permis d'avoir le point final de l'arc -égal à la position courante. - -Le décalage entre le centre de l'arc et la position courante ainsi -que facultativement, le nombre de tours, sont utilisés pour programmer des -cercles complets. - -Une erreur d'arrondi peut se produire quand un arc est programmé avec une -précision inférieure à 4 décimales (0.0000) pour les pouces et à moins de -3 décimales (0.000) pour les millimètres. - -.Arc en mode distance relative -Les décalages par rapport au centre de l'arc sont des distances relatives au -point de départ de l'arc. Le mode distance relative de l'arc est le -mode par défaut. - -Un ou plusieurs mots d'axe et un ou plusieurs décalages doivent être programmés -pour un arc qui fait moins de 360 degrés. - -Aucun mot d'axe mais un ou plusieurs décalages doivent être programmés pour un -cercle complet. Le mot 'P', par défaut à 1, est facultatif. - -Pour d'avantage d'information sur les arcs en mode relatif, voir la - <>. - -.Arc en mode distance absolue -Les décalages par rapport au centre de l'arc sont des distances absolues depuis -la position 0 courante des axes (origine machine). - -Un ou plusieurs mots d'axe et 'tous' les décalages doivent être programmés pour -les arcs de moins de 360 degrés. - -Aucun mots d'axe mais tous les décalages doivent être programmés pour un -cercle complet. Le mot 'P', par défaut à 1, est facultatif. - -Pour d'avantage d'information sur les arcs en mode absolu, voir la -<>. - -.Plan XY (G17) ----- -G2 ou G3 ----- -* 'Z' - hélicoïde -* 'I' - décalage en X -* 'J' - décalage en Y -* 'P' - nombre de tours - -.Plan XZ (G18) ----- -G2 ou G3 ----- -* 'Y' - hélicoïde -* 'I' - décalage en X -* 'K' - décalage en Z -* 'P' - nombre de tours - -.YZ-plane (G19) ----- -G2 ou G3 ----- -* 'X' - hélicoïde -* 'J' - décalage en Y -* 'K' - décalage en Z -* 'P' - nombre de tours - -C'est une erreur si: - -* Aucune vitesse d'avance travail n'est fixée avec <>. - -* Aucun décalage n'est programmé. - -* Quand l'arc est projeté dans le plan courant, la distance depuis le point -courant et le centre diffère de la distance entre le point final et le centre, -de plus de (.05 pouce/.5 mm) OU ((.0005 pouce/.005mm) ET .1% du rayon). - -Déchiffrer le message d'erreur 'Le rayon à la fin de l'arc diffère de celui -du début:' - -* 'début' - position courante -* 'centre' - la position du centre telle que calculée avec les paramètres I,J ou - K -* 'fin' - le point final programmé -* 'r1' - le rayon entre le point de départ et le centre -* 'r2' - le rayon entre le point final et le centre - -=== Exemples d'arcs au format centre - -Calculer des arcs à la main peut être difficile. -Il est possible de dessiner l'arc à l'aide d'un programme de DAO -pour obtenir les coordonnées et les décalages. -Garder à l'esprit les tolérances, il pourrait être nécessaire de modifier -la précision de la DAO pour obtenir les résultats souhaités. -Une autre option consiste à calculer les coordonnées et les décalages -en utilisant des formules. Comme vous pouvez le voir sur la figure suivante -un triangle peut être formé à partir de la position courante, -de la position de fin et du centre de l'arc. - -Sur la figure suivante, vous voyez que la position de départ est X0 Y0, la -position finale est X1 Y1. La position du centre de l'arc est X1 Y0. -Ceci donne un décalage de 1 depuis la position de départ sur l'axe X et -0 sur l'axe Y. Dans ce cas seul le décalage I est nécessaire. - -Le G-code de cet exemple serait: ----- -G0 X0 Y0 -G2 X1 Y1 I1 F10 (arc en sens horaire dans le plan XY) ----- - -[[fig:G2-Exemple]] -.Exemple avec G2 - -image::images/g2_fr.png[align="center"] - -Dans cet autre exemple, nous pouvons voir les différences de décalages -pour Y selon que nous faisons un mouvement G2 ou un mouvement G3. -Pour le mouvement G2 la position de départ est en X0 Y0, alors que -pour le mouvement G3 elle est en X0 Y1. Le centre de l'arc est en -X1 Y0.5 pour les deux. Le décalage J du mouvement G2 est 0.5 alors que -celui du mouvement G3 est -0.5. - -Le G-code de cet exemple serait: ----- -G0 X0 Y0 -G2 X0 Y1 I1 J0.5 F25 (arc en sens horaire dans le plan XY) -G3 X0 Y0 I1 J-0.5 F25 (arc en sens anti-horaire dans le plan XY) ----- - -[[fig:G2-G3-Exemple]] -.Exemple avec G2-G3 - -image::images/g2-3_fr.png[align="center"] - -Voici un exemple au format centre pour usiner une hélice: ----- -G0 X0 Y0 Z0 -G17 G2 X10 Y16 I3 J4 Z-1 (Arc hélicoïdal avec ajout de Z) ----- - -.exemple avec P ----- -G0 X0 Y0 Z0 -G2 X0 Y1 Z-1 I1 J0.5 P2 F25 ----- - -Cet exemple signifie, faire un mouvement circulaire ou hélicoïdal en -sens horaire (vu du côté positif sur l'axe Z), dont l'axe est parallèle -à l'axe Z, se terminant en X10, Y16 et Z9, avec son centre décalé -de 3 unités dans la direction X, par rapport à la position X courante. -Son centre décalé dans la direction Y de 4 unités depuis la position Y courante. -Si la position courante est X7, Y7 au départ, le centre sera en X10, Y11. -Si la valeur de départ en Z est 9, ce sera un arc circulaire. Autrement, -ce sera un arc hélicoïdal. Le rayon de cet arc serait de 5 unités. - -Dans le format centre, le rayon de l'arc n'est pas spécifié, mais il -peut facilement être trouvé puisque c'est la distance entre le -point courant et le centre du cercle, ou le point final de l'arc et le centre. - -//// -=== Cercles complets - ----- -G2 ou G3 I- J- K- ----- - -Pour faire un cercle complet de 360 degrés depuis la position -courante, programmer un seul décalage I, J ou K depuis la position -courante pour G2/G3. Pour programmer une hélicoïde sur 360 degrés -dans le plan XY spécifier seulement le mot Z. - -C'est une erreur si: - -* Le décalage K est utilisé dans le plan XY -* Le décalage J est utilisé dans le plan XZ -* Le décalage I est utilisé dans le plan YZ -//// - -=== Arcs au format rayon (format non recommandé) - ----- -G2 ou G3 axes R- ----- - -* R - rayon depuis la position courante - -Ce n'est pas une bonne pratique de programmer au format rayon des -arcs qui sont presque des cercles entiers ou des demi-cercles, car un -changement minime dans l'emplacement du point d'arrivée va produire un -changement beaucoup plus grand dans l'emplacement du centre du cercle -(et donc, du milieu de l'arc). L'effet de grossissement est tellement -important, qu'une erreur d'arrondi peut facilement produire un usinage -hors tolérance. Par exemple, 1% de déplacement de l'extrémité d'un arc -de 180 degrés produit 7% de déplacement du point situé à 90 degrés le -long de l'arc. Les cercles presque complets sont encore pires. -Autrement, l'usinage d'arcs, inférieurs à 165 degrés ou compris entre -195 et 345 degrés sera possible. - -Dans le format rayon, les coordonnées du point final de l'arc, dans le -plan choisi, sont spécifiées en même temps que le rayon de l'arc. -Programmer 'G2 axes R-' (ou utiliser 'G3' au lieu de 'G2' ). R est le -rayon. Les mots d'axes sont facultatifs sauf au moins un -des deux du plan choisi, qui doit être utilisé. Un rayon positif -indique que l'arc fait moins de 180 degrés, alors qu'un rayon négatif -indique un arc supérieur à 180 degrés. Si l'arc est hélicoïdal, la -valeur du point d'arrivée de l'arc dans les coordonnées de l'axe -perpendiculaire au plan choisi sera également spécifiée. - -C'est une erreur si: - -* Les deux mots d'axes pour le plan choisi sont omis. -* Le point d'arrivée de l'arc est identique au point courant. - - -Voici un exemple de commande pour usiner un arc au format rayon: ----- -G17 G2 X10 Y15 R20 Z5 (arc au format rayon) ----- - -Cet exemple signifie, faire un mouvement en arc ou hélicoïdal en sens horaire -(vu du côté positif de l'axe Z), se terminant en X=10, Y=15 et Z=5, -avec un rayon de 20. Si la valeur de départ de Z est 5, ce sera un arc -de cercle parallèle au plan XY sinon, ce sera un arc hélicoïdal. - -[[sec:G4-Tempo]] -== G4 Tempo -(((G4 Temporisation))) - ----- -G4 P- ----- - -* 'P' - durée de la temporisation en secondes (un flottant) - -Les axes s'immobiliseront pour une durée de P secondes. Cette commande n'affecte -pas la broche, les arrosages ni les entrées/sorties. - -C'est une erreur si: - -* Le nombre P est négatif ou n'est pas spécifié. - -[[sec:G5_1-B-spline]] -== G5.1 B-spline quadratique -(((G5.1 B-spline quadratique))) - ----- -G5.1 Xn Yn I[X offset] J[Y offset] ----- - -* 'I' - offset en X -* 'J' - offset en Y - -G5.1 crée une B-spline quadratique dans le plan XY avec seulement les axes X -et Y. - -C'est une erreur si: - -* Les offsets I et J ne sont pas spécifiés -* Un axe autre que X ou Y est spécifié -* Le plan actif n'est pas G17 - -[[sec:G5_2-G5_3-NURBs]] -== G5.2 G5.3 NURBs Block -(((G5.2 G5.3 NURBs Block))) - -WARNING: G5.2, G5.3 sont expérimentaux, il n'ont pas encore été testés -totalement. - -G5.2 is for opening the data block defining a NURBs and G5.3 for -closing the data block. In the lines between these two codes the curve -control points are defined with both their related "weights" (P) and -their parameter (L) which determines the order of the curve (k) and -subsequently its degree (k-1). - -Using this curve definition the knots of the NURBs curve are not -defined by the user they are calculated by the inside algorithm, in the -same way as it happens in a great number of graphic applications, where -the curve shape can be modified only acting on either control points or -weights. - -Sample NURBs Code ----- - G0 X0 Y0 - F10 - G5.2 X0 Y1 P1 L3 - X2 Y2 P1 - X2 Y0 P1 - X0 Y0 P2 - G5.3 - / The rapid moves show the same path without the NURBs Block - G0 X0 Y1 - X2 Y2 - X2 Y0 - X0 Y0 - M2 ----- - -.Sample NURBs Output - -image::images/nurbs01.png[] - -http://wiki.linuxcnc.org/cgi-bin/wiki.pl?NURBS[D'autres informations sont -disponible ici, sur le wiki]. - -[[sec:G7-Mode-diametre]] -== G7 Mode diamètre sur les tours -(((G7 Mode diamètre sur les tours))) - ----- -G7 ----- - -Sur un tour, programmer 'G7' pour passer l'axe X en mode diamètre. En -mode diamètre, les mouvements de l'axe X font la moitié de la cote -programmée. Par exemple, X10 placera l'outil à 5 unités du centre, ce -qui produira bien une pièce d'un diamètre de 10 unités. - -[[sec:G8-Mode-rayon]] -== G8 Mode rayon sur les tours -(((G8 Mode rayon sur les tours))) - ----- -G8 ----- - -Sur un tour, programmer 'G8' pour passer l'axe X en mode rayon. En mode -rayon, les mouvements de l'axe X sont égaux à la cote programmée. Ce -qui signifie que X10 placera l'outil à 10 unités du centre et aura pour -résultat une pièce d'un diamètre de 20 unités. G8 est le mode par -défaut à la mise sous tension. - -[[sec:G10-L1]] -== G10 L1 Ajustements dans la table d'outils -(((G10 L1 Ajustements dans la table d'outils))) - ----- -G10 L1 P- axes ----- -* 'P' - numéro d'outil -* 'R' - rayon de bec -* 'I' - angle frontal (tour) -* 'J' - angle arrière (tour) -* 'Q' - orientation (tour) - -'G10 L1' ajuste les valeurs de la table d'outils pour l'outil N°'P' aux valeurs -passées dans les paramètres. Les nouvelles valeurs peuvent être passées depuis -un programme ou depuis la fenêtre d'entrées manuelles (MDI). Un G10 L1 valide, -réécrit et recharge la table d'outils. - -.Exemples avec G10 L1: ----- -G10 L1 P1 Z1.5 (fixe le décalage en Z de l'outil 1 à 1.5 de l'origine machine) -G10 L1 P2 R0.15 Q3 (fixe le rayon de bec de l'outil 2 à 0.15 avec une orientation 3) ----- - -C'est une erreur si: - -* La compensation d'outil est active -* Le mot P n'est pas spécifié -* Le mot P ne correspond pas à un numéro d'outil valide de la table d'outils. - -D'autres informations sur l'orientation <>. - -[[sec:G10-L2]] -== G10 L2 Établissement de l'origine d'un système de coordonnées -(((G10 L2 Établissement de l'origine d'un système de coordonnées))) - ----- -G10 L2 P- ----- -* 'P' - système de coordonnées (0 à 9) -* 'R' - rotation autour de l'axe Z - -G10 L2 décale l'origine des axes dans le système de coordonnées spécifié par -la valeur du mot d'axe. Le décalage s'effectue à partir de l'origine machine -établie par la prise d'origine machine (homing). Les valeurs de ce décalage vont -remplacer toutes celles en effet sur le système de coordonnées spécifié. Les -mots d'axe inutilisés resteront inchangés. - -Programmer P0 à P9 pour spécifier le système de coordonnées à décaler. - -[[sec:Systeme-Coordonnees]] -.Systèmes de coordonnées - -[width="50%", options="header", cols="^,^,^"] -|========================================= -|Valeur P| Système de coordonnées | G-code -| 0| Actif courant | n/a -| 1| 1 | G54 -| 2| 2 | G55 -| 3| 3 | G56 -| 4| 4 | G57 -| 5| 5 | G58 -| 6| 6 | G59 -| 7| 7 | G59.1 -| 8| 8 | G59.2 -| 9| 9 | G59.3 -|========================================== - -Facultativement, programmer 'R' pour indiquer la rotation des axes 'XY' autour -de l'axe 'Z'. -La direction de rotation est anti-horaire comme vue depuis le côté positif de -l'axe Z. - -Tous les mots d'axe sont facultatifs. - -Être en mode relatif ('G91') est sans effet sur 'G10 L2'. - -Concepts importants: - -* G10 L2 Pn ne change pas l'actuel système de coordonnées par celui spécifié -par P, il est nécessaire d'utiliser G54 à 59.3 pour sélectionner le système de -coordonnées. -* Quand un mouvement de rotation est en cours, jogger un axe, déplacera celui-ci -seulement dans le sens négatif ou positif et non pas le long de l'axe de -rotation. -* Si un décalage d'origine créé avec 'G92' est actif avant la commande 'G10 L2', -il reste actif après. -* Le système de coordonnées dont l'origine est définie par la commande 'G10' -peut être actif ou non au moment de l'exécution de 'G10'. Si il est actif à -ce moment là, les nouvelles coordonnées prennent effet immédiatement. - -C'est une erreur si: - -* Le nombre P n'est pas évalué comme étant un nombre entier compris entre 0 et 9. -* Un axe est programmé mais n'est pas défini dans la configuration. - -.Premier exemple avec G10 L2: ----- -G10 L2 P1 X3.5 Y17.2 ----- - -Place l'origine du premier système de coordonnées (celui sélectionné par G54) -au points X3.5 et Y17.2 (en coordonnées absolues). -La coordonnée Z de l'origine, ainsi que les coordonnées de tous les autres axes, -restent inchangées puisque seuls X et Y étaient spécifiés. - -.Deuxième exemple avec G10 L2: ----- -G10 L2 P1 X0 Y0 Z0 (révoque les décalages en X, Y et Z du système N°1) ----- - -L'exemple précédent fixe les origines XYZ du système de coordonnées G54, à -l'origine machine. - -Les systèmes de coordonnées <>. - -[[sec:G10-L10]] -== G10 L10 modifie les offsets d'outil dans la table d'outils -(((G10 L10 modifie les offsets d'outil dans la table d'outils))) - ----- -G10 L10 P- axes ----- -* 'P' - numéro d'outil -* 'R' - rotation autour de l'axe Z -* 'I' - angle frontal (tour) -* 'J' - angle arrière (tour) -* 'Q' - orientation (tour) - -G10 L10 modifie les valeurs de l'outil 'P' dans la table d'outils, de sorte -que si la compensation d'outil est rechargée, avec la machine à la position -courante et avec les G5x et G92 actifs, les coordonnées courantes pour -l'axe spécifié deviendront les coordonnées spécifiées. Les axes non spécifiés -dans la commande G10 L10 ne seront pas modifiés. - -.Exemple avec G10 L10: ----- -M6 T1 G43 (appel l'outil 1 et active la correction de longueur d'outil) -G10 L10 P1 Z1.5 (fixe la position courante en Z à 1.5 dans la table d'outils) -G43 (recharge l'offset de longueur d'outil depuis la table d'outils modifiée) -M2 (fin de programme) ----- -Pour d'autres détals voir les commandes <>, -<> et <>/<>. - -C'est une erreur si: - -* La compensation d'outil est activée. -* Le mot P n'est pas spécifié. -* Le mot P ne correspond pas à un numéro d'outil valide de la table d'outils. - -[[sec:G10-L11]] -== G10 L11 modifie les offsets d'outil dans la table d'outils -(((G10 L11 modifie les offsets d'outil dans la table d'outils))) - ----- -G10 L11 P- axes ----- -* 'P' - numéro d'outil -* 'R' - rotation autour de l'axe Z -* 'I' - angle frontal (tour) -* 'J' - angle arrière (tour) -* 'Q' - orientation (tour) - -G10 L11 est identique à G10 L10 excepté qu'au lieux de fixer les valeurs -par rapport aux décalages de coordonnées courants, il les fixe de sorte que les -coordonnées courantes deviennent celles spécifiées par les paramètres si la -nouvelle compensation d'outil est rechargée et que la machine est placée dans -le système de coordonnées G59.3, système sans aucun décalage G92 actif. - -Ceci permet à l'utilisateur de fixer le système de coordonnées G59.3 à -un point fixe de la machine et d'utiliser cet emplacement pour mesurer -l'outil sans s'occuper des autres décalages courants actifs. - -C'est une erreur si: - -* La compensation d'outil est activée -* Le mot P n'est pas spécifié. -* Le mot P ne correspond pas à un numéro d'outil valide de la table d'outils. - -[[sec:G10-L20]] -== G10 L20 Établissement de l'origine d'un système de coordonnées -(((G10 L20 Établissement de l'origine d'un système de coordonnées))) - ----- -G10 L20 P- axes ----- -* 'P' - système de coordonnées (0-9) - -G10 L20 est similaire à G10 L2 excepté qu'au lieu d'ajuster les offsets à des -valeurs données, il les place à des valeurs calculées de sorte que les -coordonnées courantes deviennent les valeurs données en paramètres. - -.Exemple avec G10 L20: ----- -G10 L20 P1 X1.5 (fixe la position courante en X du système de coordonnées G54 -à 1.5) ----- - -C'est une erreur si: - -* Le nombre P n'est pas évalué comme une entier compris entre 0 et 9. -* Un axe non défini dans la configuration est programmé. - -[[sec:G17-G18-G19]] -== G17 à G19.1 Choix du plan de travail -(((G17 Plan XY))) -(((G18 Plan XZ))) -(((G19 Plan YZ))) - -Ces codes sélectionnent le plan de travail courant comme décrit ci-dessous: - -* G17 - XY (par défaut) -* G18 - ZX -* G19 - YZ -* G17.1 - UV -* G18.1 - WU -* G19.1 - VW - -Les plans UV, WU et VW ne supportent pas les arcs. Il est de bonne pratique -d'inclure la sélection du plan de travail dans le préambule du programme G-code. -Les effets de la sélection d'un plan de travail sont discutés dans la section -<>. - -[[sec:G20-G21-Unites-Machine]] -== G20, G21 Choix des unités machine -(((G20 Pouce))) -(((G21 Millimètre))) - -* 'G20' - pour utiliser le pouce comme unité de longueur. -* 'G21' - pour utiliser le millimètre comme unité de longueur. - -C'est toujours une bonne pratique de programmer soit 'G20', soit 'G21', dans -le préambule du programme, avant tout mouvement et de ne plus en changer -ailleurs dans le programme. - -[[sec:G28-G28_1-Aller-a-une-position]] -== G28, G28.1 Aller à une position prédéfinie -(((G28))) -(((G28.1))) - -[WARNING] -Pour une bonne répétabilité de la position et que la position soit correctement -enregistrée avec G28.1, faire la prise d'origine générale avant d'utiliser G28. - -G28 utilise les valeurs enregistrées dans les paramètres 5161 à 5166 comme -points finaux des mouvements des axes X Y Z A B C U V W. -Les valeurs des paramètres sont des coordonnées machine 'absolues', en unités -machine natives, telles que fixées dans le fichier ini. Tous les axes définis -dans le fichier ini seront déplacés lors d'un G28. - -* G28 - effectue un mouvement en vitesse rapide de la position courante à la -position 'absolue' enregistrée dans les paramètres 5161 à 5166. - -* 'G28 axes' - effectue un déplacement en vitesse rapide à la position -spécifiée par 'axes' y compris les décalages, puis effectuera un mouvement en -vitesse rapide aux coordonnées 'absolues' stockées dans les paramètres 5161 -à 5166 pour les axes spécifiés. - -* G28.1 - enregistre la position 'absolue' courante dans les paramètres 5161 -à 5166. - -.Exemple avec G28 ----- -G28 Z2.5 (vitesse rapide vers Z2.5 puis emplacement spécifié dans les paramètres enregistrés de G28) ----- - -C'est une erreur si: - -* La compensation d'outil est active. - -[[sec:G30-G30_1-Aller-a-une-position-predefinie]] -== G30, G30.1 Aller à une position prédéfinie -(((G30))) -(((G30.1))) - -[WARNING] -Pour une bonne répétabilité de la position et que la position soit correctement -enregistrée avec G30.1, faire la prise d'origine générale avant d'utiliser G30. - -* 'G30' - effectue un mouvement en vitesse rapide de la position courante à la -position 'absolue' stockée dans les paramètres 5181 à 5186. -Les valeurs stockées dans les paramètres font référence au système de -coordonnées absolues qui est le système de coordonnées machine. - -* 'G30 axes' - effectue un déplacement en vitesse rapide depuis la position -courante jusqu'à la position spécifiée par 'axes', y compris les décalages, -suivi d'un mouvement rapide à la position 'absolue' stockée dans les paramètres -5181 à 5186 pour les axes spécifiés. Les axes non spécifiés ne bougeront pas. - -* 'G30.1' - enregistre la position absolue courante dans les paramètres 5181 à -5186. - -[NOTE] -Les paramètres de 'G30' peuvent être utilisés pour déplacer l'outil quand un M6 -est programmé avec la variable '[TOOL_CHANGE_AT_G30]=1' dans la section -'[EMCIO]' du fichier ini. - -.Exemple avec G30 ----- -G30 Z2.5 (mvt rapide à Z2.5 puis déplacement selon les paramètres de G30 -stockés) ----- - -C'est une erreur si: - -* La compensation de d'outil est active. - -[[sec:G33-Broche-synchronisee]] -== G33 Mouvement avec broche synchronisée -(((G33 Mouvement avec broche synchronisée))) - ----- -G33 X- Y- Z- K- ----- - -* 'K' - distance par tour - -Pour un mouvement avec broche synchronisée dans une direction, programmer -'G33 X- Y- Z- K-' où K donne la longueur du mouvement en XYZ pour chaque tour -de broche. Par exemple, si il commence à 'Z=0', 'G33 Z-1 K.0625' produira -un mouvement d'un pouce de long en Z en même temps que 16 tours de broche. -Cette commande peut être la base d'un programme pour faire un filetage de -16 filets par pouce. Un autre exemple en métrique, 'G33 Z-15 K1.5' produira -un mouvement de 15mm de long pendant que la broche fera 10 tours soit un -pas de 1.5mm. - -Les mouvements avec broche synchronisée utilisent l'index de broche et les pins -'spindle at speed' pour le filetage multi-passes. Un mouvement avec 'G33' se -termine au point final programmé. - -[NOTE] -K suit la ligne d'avance décrite par 'X- Y- Z-'. K n'est pas parallèle à -l'axe Z si les points d'arrivée des axes X et Y sont utilisés, par exemple pour -réaliser un filetage conique. - -.Informations techniques[[g33-tech-info]] -Au début de chaque passe G33, LinuxCNC utilise la vitesse de broche et les -limites d'accélération de la machine pour calculer combien de temps prendra Z -pour accélérer après chaque impulsion d'index et détermine de combien de degrés -la broche tournera pendant ce temps là. Il ajoute alors cet angle à la position -de l'index puis calcule la position de Z utilisant l'angle de broche correct. -Cela signifie que Z aura atteints la position correcte juste en fin -d'accélération à la bonne vitesse, il peux immédiatement usiner le bon filetage. - -.Connections de hAL -Les pins 'motion.spindle-at-speed' et l'index 'encoder.n.phase-Z' pour la broche -doivent être connectés dans le fichier HAL pour que G33 soit opérationnel. -Voir le Manuel de l'intégrateur pour plus d'informations sur les mouvements -synchronisés avec la broche. - -.Exemple avec G33: ----- -G90 (mode distance absolue) -G0 X1 Z0.1 (positionnement en vitesse rapide) -S100 M3 (broche en rotation à 100tr/mn) -G33 Z-2 K0.125 (mouvement vers Z -2 avec une avance de 0.125 par tour) -G0 X1.25 (mouvement de dégagement en vitesse rapide) -Z0.1 (mouvement en vitesse rapide à Z0.1) -M2 (fin de programme) ----- - -* Voir les sections <>, <> -et <> pour plus d'informations. - -C'est une erreur si: - -* Tous les axes sont omis. -* La broche ne tourne pas quand cette commande est exécutée. -* Le mouvement linéaire requis excède les limites de vitesse machine -en raison de la vitesse de broche. - -[[sec:G33_1-Taraudage-rigide]] -== G33.1 Taraudage Rigide -(((G33.1 Taraudage rigide))) - ----- -G33.1 X- Y- Z- K- ----- - -* 'K' - distance par tour - -Pour un taraudage rigide avec broche synchronisée et mouvement de retour, -programmer 'G33.1 X- Y- Z- K-' où 'K-' donne la longueur du mouvement -pour chaque tour de broche. Un mouvement de taraudage rigide suit cette -séquence: - -[WARNING] -Si pour un taraudage rigide, les coordonnées X et Y spécifiées ne sont pas -les coordonnées courantes lors de l'appel de G33.1, le mouvement ne -s'effectuera pas le long de l'axe Z mais de la position courante jusqu'aux -coordonnées X et Y spécifiées. - -. Un mouvement aux coordonnées spécifiées, synchronisé avec la rotation de -la broche, avec le ratio donné et débutant à l'impulsion d'index du codeur -de broche. -. Quand le point final est atteint, la commande inverse le sens de rotation -de la broche (ex: de 300 tours/mn en sens horaire à 300 tours/mn en sens -anti-horaire) -. Le mouvement reste synchronisé en continu avec la broche, même 'au delà' -de la coordonnée du point final spécifié pendant l'arrêt de la broche et -son inversion. -. Le mouvement synchronisé se poursuit pour revenir aux coordonnées initiales. -. Quand les coordonnées initiale sont atteintes, la commande inverse la -broche une seconde fois (ex: de 300tr/mn sens anti-horaire à 300tr/mn en -sens horaire) -. Le mouvement reste synchronisé même 'au delà' des coordonnées initiales -pendant que la broche s'arrête, puis s'inverse. -. Un mouvement 'non synchronisé' ramène le mobile en arrière, aux -coordonnées initiales. - -Tous les mouvements avec broche synchronisée ont besoin d'un index de broche, -pour conserver la trajectoire prévue et que les passes se chevauchent -exactement. Un mouvement avec 'G33.1' se termine aux coordonnées initiales. -Les mots d'axes sont facultatifs, sauf au moins un qui doit être utilisé. - -.Exemple avec G33.1: ----- -G90 (mode distance absolue) -G0 X1.000 Y1.000 Z0.100 (mouvement rapide au point de départ taraudage rigide -en 20 filets par pouce) -G33.1 Z-0.750 K0.05 (et une profondeur de filet de 0.750) -M2 (fin de programme) ----- - -* Voir les sections <>, <> -et <> pour plus d'informations. - -C'est une erreur si: - -* Tous les axes sont omis. -* La broche ne tourne pas quand cette commande est exécutée. -* Le mouvement linéaire requis excède les limites de vitesse machine - en raison d'une vitesse de broche trop élevée. - -[[sec:G38-x-Palpeur]] -== G38.x Mesure au palpeur -(((G38.2 Palpeur)))(((G38.3 Palpeur)))(((G38.4 Palpeur)))(((G38.5 Palpeur))) - ----- -G38.x axes ----- - -* 'G38.2' - palpe vers la pièce, stoppe au toucher, signale une erreur en cas de -défaut. -* 'G38.3' - palpe vers la pièce, stoppe au toucher. -* 'G38.4' - palpe en quittant la pièce, stoppe en perdant le contact, signal une -erreur en cas de défaut. -* 'G38.5' - palpe en quittant la pièce, stoppe en perdant le contact. - - -[IMPORTANT] -Cette commande n'est pas utilisable si la machine n'a pas été configurée pour -exploiter un signal de sonde entre HAL et LinuxCNC. -Le signal de la sonde doit être envoyé sur une broche d'entrée puis transmis à -'motion.probe-entrée (bit, In)'. G38.x utilise la valeur de cette broche pour -déterminer quand la sonde a touché ou perdu le contact. TRUE si le contact de -la sonde est fermé (Touché), FALSE si il est ouvert. - -Programmer 'G38.x axes', pour effectuer une mesure au palpeur. Les mots d'axe -sont facultatifs excepté au moins un. Les mots d'axe définissent ensemble, -le point de destination, à partir de l'emplacement actuel, vers lequel la -sonde se déplace. Si le palpeur n'a pas déclenché avant que la destination soit -atteinte, G38.2 et G38.4 signaleront une erreur. L'outil dans la broche doit -être un palpeur ou un actionneur de contact. - -En réponse à cette commande, la machine déplace le point contrôlé -(qui est le centre de la boule du stylet du palpeur) en ligne droite, -à la vitesse travail courante, vers le point programmé. -En mode vitesse inverse du temps, la vitesse est telle que le mouvement -depuis le point courant jusqu'au point programmé, prendra le temps spécifié. -Le mouvement s'arrête (dans les limites d'accélération de la machine) -lorsque le point programmé est atteint ou quand l'entrée du palpeur -bascule dans l'état attendu selon la première éventualité. - -Le tableau de signification des différents codes de mesure. - -[[sec:Codes-de-mesure]] -.Codes de mesure - -[width="90%", options="header"] -|========================================================== -|Code | État ciblé | Sens de destination | Signal d'erreur -|G38.2 | Touché | Vers la pièce | Oui -|G38.3 | Touché | Vers la pièce | Non -|G38.4 | Quitté | Depuis la pièce | Oui -|G38.5 | Quitté | Depuis la pièce | Non -|========================================================== - -Après une mesure réussie, <> -contiendront les coordonnées des axes XYZABCUVW, pour l'emplacement du -point contrôlé à l'instant du changement d'état du palpeur. -Après une mesure manquée, ils contiendront les coordonnées du point programmé. -Le paramètre 5070 est mis à 1 si la mesure est réussie et à 0 si elle est -manquée. Si la mesure n'a pas réussi, G38.2 et G38.4 signaleront une erreur -en affichant un message à l'écran si l'interface graphique choisie le permet. - -Un commentaire de la forme '(PROBEOPEN filename.txt)' ouvrira le -fichier 'filename.txt' et y enregistrera les 9 coordonnées de -XYZABCUVW pour chaque mesure réussie. -Le fichier doit être fermé avec <> -'(PROBECLOSE)'. - -Dans le répertoire des exemples, le fichier 'smartprobe.ngc' montre -l'utilisation d'un palpeur et l'enregistrement des coordonnées de la pièce -dans un fichier. Le fichier 'smartprobe.ngc' peut être utilisé par 'ngcgui' -avec un minimum de modifications. - -C'est une erreur si: - -* Le point programmé est le même que le point courant. -* Aucun mot d'axe n'est utilisé. -* La compensation de d'outil est activée. -* La vitesse travail est à zéro. -* Le palpeur est déjà au contact de la cible. - -[[sec:G40]] -== G40 Révocation de la compensation de rayon d'outil -(((G40 Révocation de la compensation de rayon))) - -* 'G40' - révoque la compensation de rayon d'outil. Le mouvement suivant, de -sortie de compensation, doit être une droite au moins aussi longue que le -diamètre de l'outil. Ce n'est pas une erreur de désactiver la compensation -quand elle est déjà inactive. - -.Exemple avec G40 ----- -; la position courante est X1 après la fin du mvt avec compensation -G40 (révoque la compensation) -G0 X1.6 (mouvement linéaire aussi long que le diamètre d'outil) -M2 (fin de programme) ----- - -* Voir les sections <> et <> -pour plus d'informations. - -C'est une erreur si: - -* Un mouvement en arc avec G2 ou G3 suit un G40. -* Le mouvement suivant la révocation de compensation est inférieur au -diamètre de l'outil. - -[[sec:G41-G42]] -== G41, G42 Compensation de rayon d'outil -(((G41 Compensation d'outil))) -(((G42 Compensation d'outil))) - ----- -G41 (compensation à gauche du profil) -G42 (compensation à droite du profil) ----- - -* 'D' - Numéro d'outil - -Le mot D est facultatif. En son absence ou si il est à zéro, le rayon de l'outil -courant est utilisé. Si le mot D est présent, il devrait normalement correspondre -au numéro de l'outil monté dans la broche, bien que cela ne soit pas -indispensable, il doit par contre correspondre à un numéro d'outil valide. - -Pour activer la compensation d'outil à gauche du profil, -programmer 'G41'. G41 applique la compensation d'outil à gauche de la -ligne programmée vu de l'extrémité positive de l'axe perpendiculaire au plan. - -Pour activer la compensation d'outil à droite du profil, -programmer 'G42'. G42 applique la correction d'outil à droite de la -ligne programmée vu de l'extrémité positive de l'axe perpendiculaire au plan. - -Le mouvement d'entrée doit être au moins aussi long que le rayon de l'outil. -Le mouvement d'entrée peut être effectué en vitesse rapide. - -La compensation d'outil ne peut être effectuée que si le plan XY ou -le plan XZ est actif. - -Les commandes définies par l'utilisateur, M100 à M199, sont autorisées -lorsque la compensation d'outil est activée. - -Le comportement de la machine, quand la compensation d'outil est activée, -est décrit dans la section <>. - -C'est une erreur si: - -* Le nombre D ne correspond, ni à zéro, ni à un numéro d'outil valide. -* Le plan YZ est le plan de travail actif. -* La compensation d'outil est activée alors qu'elle est déjà active. - -[[sec:G41_1-G42_1]] -== G41.1, G42.1 Compensation dynamique d'outil -(((G41.1 Compensation dynamique))) -(((G42.1 Compensation dynamique))) - ----- -G41.1 D- (à gauche du profil) -G42.1 D- (à droite du profil) ----- - -* Le mot D spécifie le diamètre de l'outil. -* Le mot L spécifie l'orientation de l'outil, est à 0 par défaut si -non spécifié. - -Pour activer la compensation dynamique d'outil à gauche du profil, -programmer 'G41.1 D- L-'. - -Pour activer la compensation dynamique d'outil à droite du profil, -programmer 'G42.1 D- L-'. - -C'est une erreur si: - -* Le plan YZ est le plan de travail actif. -* La valeur de L n'est pas comprise entre 0 et 9 inclus. -* Le nombre L est utilisée alors que le plan XZ n'est pas le plan actif. -* La compensation d'outil est activée alors qu'elle est déjà active. - -Plus d'informations sur <>, sur <> et -<>. - -[[sec:G43]] -== G43 Activation de la compensation de longueur d'outil -(((G43 Activation de la compensation de longueur d'outil))) - -* 'H' - Numéro d'outil -* 'G43' - Utilise l'outil courant chargé par le dernier Tn M6. G43 modifie les -mouvements ultérieurs en décalant les coordonnées de Z et/ou de X, de la -longueur de l'outil. G43 ne provoque aucun mouvement. L'effet de la -compensation ne se produira qu'au cours du prochain mouvement des axes compensés, -de sorte que le point final de ce mouvement sera la position compensée. -* 'G43 H-' - Utilise l'offset de l'outil correspondant fourni par la table -d'outils. Ce n'est pas une erreur d'avoir la valeur de H à zéro, le numéro de -l'outil courant sera utilisé. - -.Exemple de ligne avec G43 H- ----- -G43 H1 (ajuste les offsets d'outil avec les valeurs de l'outil 1 fournies par -la table d'outils) ----- - -C'est une erreur si: - -* La valeur de H n'est pas un entier, il est négatif, ou il ne correspond, ni -à zéro, ni à un numéro d'outil valide. - -[[sec:G43_1]] -== G43.1 Compensation dynamique de longueur d'outil -(((G43.1 Compensation dynamique de longueur d'outil))) - ----- -G43.1 axes ----- - -* 'G43.1 axes' - Modifie les mouvements ultérieurs en décalant les coordonnées -de Z et/ou de X, selon les offsets stockés dans la table d'outils. G43.1 ne -provoque aucun mouvement. L'effet de la compensation ne se produira qu'au cours -du prochain mouvement des axes compensés de sorte que le point final de ce -mouvement sera la position compensée. - -.Exemple avec G43.1 ----- -G90 (passe en mode absolu) -T1 M6 G43 (charge l'outil N°1 et son offset de longueur, Z est à la position -machine 0 et la visu affiche Z1.500) -G43.1 Z0.250 (décale l'outil courant de 0.250, la visu affiche maintenant -Z1.250) -M2 (fin de programme) ----- -* Voir les sections <> & <> et -<> pour plus d'informations. - -//// -Pour utiliser la compensation dynamique de longueur d'outil depuis un -programme, utiliser 'G43.1 I- K-', où 'I-' donne la compensation de -longueur d'outil en X (pour les tours) et 'K-' donne la compensation -de longueur en Z (pour les tours et les fraiseuses). -//// - -C'est une erreur si: - -* Une commande de mouvement est sur la même ligne que 'G43.1' - -[[sec:G49-Revocation-Longueur-Outil]] -== G49 Révocation de la compensation de longueur d'outil -(((G49 Révocation de compensation de longueur d'outil))) - -Pour révoquer la compensation de longueur d'outil, programmer 'G49'. - -Ce n'est pas une erreur de programmer une compensation qui est déjà -utilisée. Ce n'est pas non plus une erreur de révoquer une compensation de -longueur d'outil alors qu'aucune n'est couramment utilisée. - -[[sec:G53-Mouvement-Coordonnees-Absolues]] -== G53 Mouvement en coordonnées absolues -(((G53 Mouvement en coordonnées absolues))) - ----- -G53 axes ----- - -Pour un déplacement exprimé en coordonnées système, programmer -'G53' sur la même ligne qu'un mouvement linéaire. 'G53' n'est pas modal, il doit -donc être programmé sur chaque ligne où il doit être actif. 'G0' ou 'G1' ne -doivent pas se trouver sur la même ligne si un d'eux est déjà actif. -Par exemple: - -.Exemple avec G53 ----- -G53 G0 X0 Y0 Z0 (mouvement linéaire rapide des axes à leur positions d'origine) -G53 X2 (mouvement linéaire rapide à la coordonnée absolue X=2) ----- - -C'est une erreur si: - -* 'G53' est utilisé sans que G0 ou G1 ne soit actif. -* 'G53' est utilisé alors que la compensation d'outil est active. - -Étudier le <> et de leurs décalages, pour bien maîtriser ces concepts. - -[[sec:G54-a-G59_3]] -== G54 à G59.3 Choix du système de coordonnées - -* 'G54' - Système de coordonnées pièce 1 -* 'G55' - Système de coordonnées pièce 2 -* 'G56' - Système de coordonnées pièce 3 -* 'G57' - Système de coordonnées pièce 4 -* 'G58' - Système de coordonnées pièce 5 -* 'G59' - Système de coordonnées pièce 6 -* 'G59.1' - Système de coordonnées pièce 7 -* 'G59.2' - Système de coordonnées pièce 8 -* 'G59.3' - Système de coordonnées pièce 9 - -Le code 'G54' est apparié avec le système de coordonnées pièce N°1, -pour le choisir programmer 'G54' et ainsi de suite pour les autres systèmes. - -Les systèmes de coordonnées stockent les valeurs de chacun des axes dans les -variables indiquées dans le tableau ci-dessous. - -.Paramètres des systèmes de coordonnées pièce[[sec:Coordonnees-Piece]] - -[width="80%", options="header", cols="<,11*^"] -|============================================================ -|Choix |CS|X |Y |Z |A |B |C |U |V |W |R -|G54 |1 |5221|5222|5223|5224|5225|5226|5227|5228|5229|5230 -|G55 |2 |5241|5242|5243|5244|5245|5246|5247|5248|5249|5250 -|G56 |3 |5261|5262|5263|5264|5265|5266|5267|5268|5269|5270 -|G57 |4 |5281|5282|5283|5284|5285|5286|5287|5288|5289|5290 -|G58 |5 |5301|5302|5303|5304|5305|5306|5307|5308|5309|5310 -|G59 |6 |5321|5322|5323|5324|5325|5326|5327|5328|5329|5330 -|G59.1 |7 |5341|5342|5343|5344|5345|5346|5347|5348|5349|5350 -|G59.2 |8 |5361|5362|5363|5364|5365|5366|5367|5368|5369|5370 -|G59.3 |9 |5381|5382|5383|5384|5385|5386|5387|5388|5389|5390 -|============================================================ - - -C'est une erreur si: - -* Un de ces G-codes est utilisé alors que la compensation d'outil est active. - -Voir la section <> -pour une vue complète. - -[[sec:G61-G61_1]] -== G61, G61.1 Contrôle de trajectoire exacte -(((G61 Trajectoire exacte))) -(((G61.1 Arrêt exact))) -(((Trajectoire contrôlée))) - -* 'G61' - Met la machine en mode de trajectoire exacte. G61 suivra exactement -la trajectoire programmée même si cela doit aboutir à un arrêt complet -momentané du mobile. -* 'G61.1' - Met la machine en mode arrêts exacts. - -[[sec:G64]] -== G64 Contrôle de trajectoire continue avec tolérance -(((Contrôle de trajectoire continue avec tolérance))) - ----- -G64 > ----- - -* 'P-' - Déviation maximale tolérée par rapport à la trajectoire programmée. -* 'Q-' - Tolérance <>. -* 'G64' - Recherche de la meilleure vitesse possible. -* 'G64 P-' - Mélange entre meilleure vitesse et tolérance de déviation. -* 'G64 P- Q-' - Est le moyen d'affiner encore pour obtenir le meilleur -compromis entre vitesse et précision de la trajectoire. La vitesse sera -réduite si nécessaire pour maintenir la trajectoire, même si ça doit aboutir -à un arrêt complet momentané. Le 'détecteur naïve cam' est activé. Quand il -y a une série de mouvements linéaires XYZ en vitesse travail, avec une -même vitesse de déplacement, inférieure à 'Q-', ils sont regroupés en -un seul segment linéaire, ainsi la vitesse s'en trouve améliorée puisqu'il -n'y a plus de décélération/arrêt/accélération aux points de jonction des -segments. Sur les mouvements G2/G3 dans le plan 'G17' (XY) lorsque le -maximum d'écart entre un arc et une ligne droite est inférieur à -la déviation maximale 'P-', la tolérance de l'arc est divisée en deux lignes -(depuis le début de l'arc jusqu'au milieu et du milieu jusqu'à la fin). Ces -deux lignes sont ensuite soumises à l'algorithme 'naïve cam'. Ainsi, les cas -ligne-arc, arc-arc et arc-ligne et le cas ligne-ligne, bénéficient de -l'algorithme 'naïve cam', ce qui améliore les performances en simplifiant -les trajectoires. Il est permis de programmer ce mode même si il est déjà actif. - -.Exemple de ligne de programme avec G64 ----- -G64 P0.015 (fixe la déviation d'usinage à 0.015 maximum de la trajectoire -programmée) ----- - -Il est de bonne pratique de spécifier un type de contrôle de trajectoire -dans le préambule de chaque programme G-code. - -[[sec:G73-Percage-avec-brise-copeaux]] -== G73 Cycle de perçage avec brise copeaux -(((G73 Cycle de perçage avec brise copeaux))) - ----- -G73 axes R- Q- ----- - -* 'R-' - Position du plan de retrait en Z -* 'Q-' - Incrément 'delta' parallèle à l'axe Z -* 'L-' - Répétition - -Le cycle 'G73' est destiné au perçage profond ou au fraisage avec brise-copeaux. -Les retraits, au cours de ce cycle, fragmentent les copeaux longs (fréquents -lors de l'usinage de l'aluminium). Ce cycle utilise la valeur 'Q-' qui -représente un incrément 'delta' parallèle à l'axe Z. Le cycle se décompose de la -manière suivante: - -. Un mouvement préliminaire. Comme décrit dans <> -. Un mouvement de l'axe Z seul, en vitesse travail, sur la position la moins -profonde entre, l'incrément 'delta' ou la position de Z programmée. -. Une petite remontée en vitesse rapide. -. Répétition des étapes 2 et 3 jusqu'à ce que la position programmée de Z -soit atteinte à l'étape 2. -. Un mouvement de l'axe Z en vitesse rapide jusqu'au plan de retrait. - -C'est une erreur si: - -* La valeur de Q est négative ou égale à zéro. -* Le nombre R n'est pas spécifié. - -[[sec:G76-Filetage]] -== G76 Cycle de filetage préprogrammé -(((G76 Cycle de filetage multi-passe))) - ----- -G76 P- Z- I- J- R- K- Q- H- E- L- ----- - -image::images/g76-threads_fr.png[] - -* 'Ligne pilote' - La ligne pilote est une ligne imaginaire, parallèle à - l'axe de la broche (Z), située en sécurité à l'extérieur du matériau à - fileter. La ligne pilote va du point initial en Z jusqu'à la fin du - filetage donnée par la valeur de 'Z' dans la commande. - -* 'P-' - Le pas du filet en distance de déplacement par tour. - -* 'Z-' - La position finale du filetage. A la fin du cycle, l'outil sera - à cette position 'Z'. - -[NOTE] -En mode diamètre G7, les valeurs 'I', 'J' et 'K' sont des mesures de diamètre. -En mode rayon G8, les valeurs 'I', 'J' et 'K' sont des mesures de rayon. - -* 'I-' - La crête du filet est une distance entre la ligne pilote et la - surface de la pièce. Une valeur négative de 'I', - indique un filetage externe et une valeur positive, indique un - filetage interne. C'est généralement à ce diamètre nominal que le - matériau est cylindré avant de commencer le cycle 'G76'. - -* 'J-' - Une valeur positive, spécifie la profondeur de la passe initiale. - La première passe sera à 'J' au delà de la crête du filet 'I'. - -* 'K-' - Une valeur positive, spécifie la profondeur finale du filet. - La dernière passe du filetage sera à 'K' au delà de la crête du filet 'I'. - -Paramètres facultatifs: - -* 'R-' - La profondeur de dégressivité. 'R1.0' spécifie une profondeur - de passe constante pour les passes successives du filetage. - 'R2.0' spécifie une surface constante. - Les valeurs comprises entre 1.0 et 2.0 spécifient - une profondeur décroissante mais une surface croissante. - Enfin, les valeurs supérieures à 2.0 sélectionnent une surface décroissante. - -[WARNING] -Les valeurs inutilement hautes de dégressivité, produiront un nombre inutilement -important de passes. (dégressivité = plongée par paliers) - -* 'Q-' - L'angle de pénétration oblique. C'est l'angle (en degrés) - décrivant de combien, les passes successives doivent être décalées - le long de l'axe Z. C'est utilisé pour faire enlever plus de matériau - d'un côté de l'outil que de l'autre. - Une valeur positive de 'Q' fait couper d'avantage le bord de l'outil. - Typiquement, les valeurs sont 29, 29.5 ou 30 degrés. - -* 'H-' - Le nombre de passes de finition. Les passes de finition sont - des passes additionnelles en fond de filet. - Pour ne pas faire de passe de finition, programmer 'H0'. - -Les entrées et sorties de filetage peuvent être programmées coniques - avec les valeurs de 'E' et 'L'. - -* 'E-' - Spécifie la longueur des parties coniques le long de l'axe Z. - L'angle du cône ira de la profondeur de la dernière passe à la - crête du filet 'I'. 'E2.0' donnera un cône d'entrée et de sortie - d'une longueur de 2.0 unités dans le sens du filetage. Pour - un cône à 45 degrés, programmer 'E' identique à 'K'. - -* 'L-' - Spécifie quelles extrémités du filetage doivent être coniques. - Programmer 'L0' pour aucune (par défaut), 'L1' pour une - entrée conique, 'L2' pour une sortie conique, ou 'L3' pour l'entrée et - la sortie coniques. - -L'outil fera une brève pause pour la synchronisation -avec l'impulsion d'index avant chaque passe de filetage. Une gorge de -dégagement sera requise à l'entrée, à moins que le début du filetage -ne soit après l'extrémité de la pièce ou qu'un cône d'entrée soit utilisé. - -À moins d'utiliser un cône de sortie, le mouvement de sortie (retour -rapide sur X initial) n'est pas synchronisé sur la vitesse de broche. -Avec une broche lente, la sortie pourrait se faire sur une petite -fraction de tour. Si la vitesse de broche est augmentée après qu'un -certain nombre de passes soient déjà faites, la sortie va prendre -une plus grande fraction de tour, il en résultera un usinage 'très -brutal' pendant ce nouveau mouvement de sortie. Ceci peut être évité en -prévoyant une gorge de sortie, ou en ne changeant pas la vitesse de -broche pendant le filetage. - -La position finale de l'outil sera à la fin de la 'ligne pilote'. -Un mouvement de sécurité peut être nécessaire avec un filetage interne, -pour sortir l'outil de la pièce. - -C'est une erreur si: - -* Le plan de travail actif n'est pas ZX. -* D'autres mots d'axes que X ou Y, sont spécifiés. -* La dégressivité 'R' est inférieure à 1.0. -* Tous les mots requis ne sont pas spécifiés. -* 'P', 'J', 'K' ou 'H' est négatif. -* 'E-' est supérieur à la moitié de la longueur de la ligne pilote. - -.Connections de HAL -Les pins 'motion.spindle-at-speed' et l'index 'encoder.n.phase-Z' doivent être -connectées dans le fichier HAL pour que G76 soit opérationnel. -Voir le Manuel de l'intégrateur pour plus d'informations sur les mouvements -synchronisés avec la broche. - -.Informations techniques -Le cycle préprogrammé G76 est basé sur le mouvement avec broche synchronisée G33, -voir les <>. - - -Un programme de filetage, 'g76.ngc' montre l'utilisation d'un cycle de -filetage G76, il peut être visualisé et exécuté sur n'importe quelle machine -utilisant la configuration 'sim/lathe.ini'. - -.Exemple de G-Code avec G76 ----- -G0 Z-0.5 X0.2 -G76 P0.05 Z-1 I-0.075 J0.008 K0.045 Q29.5 L2 E0.045 ----- - -Sur l'image ci-dessous, l'outil est à la position finale après que le cycle -G76 soit terminé. On voit que le parcours d'entrée de l'outil sur la droite, -spécifié par Q29.5 et le parcours de sortie conique à gauche comme -spécifié par L2 E0.045. Les lignes blanches sont les mouvements de coupe. - -.Parcours d'outil de l'exemple[[fig:G76-cycle-de-filetage]] - -image::images/g76-01.png[] - -[[sec:G81-a-G89]] -== Les cycles de perçage G81 à G89 -(((Cycles de perçage G81-G89))) -(((G81-G89, Cycles de perçage))) - -Les cycles de perçage de 'G81' à 'G89' et la révocation de ces cycle 'G80', -sont décrits dans cette section. Des exemples sont donnés plus bas avec -les descriptions. - -Tous les cycles de perçage sont effectués dans le respect du plan -de travail courant. N'importe lequel des six plans de travail peut être -choisi. Dans cette section, la plupart des descriptions supposeront que -le plan de travail XY est le plan courant. Le comportement reste -analogue pour les autres plans de travail et les mots corrects doivent -être utilisés. Par exemple, dans le plan G17.1, l'action de retrait -s'effectue parallèlement à l'axe W et les positions ou incréments sont -donnés avec U et W. Dans ce cas, substituer U, V, W avec X, Y, Z dans les -instructions suivantes. - -Les mots d'axes rotatifs ne sont pas autorisés dans les cycles de perçage. -Quand le plan actif est X, Y, Z, les mots d'axes U, V, W ne sont pas autorisés. -De même, si le plan actif est U, V, W, les mots d'axes X, Y, Z ne sont -pas autorisés. - -=== Mots communs - -Tous les cycles de perçage utilisent les groupes X, Y, Z ou U, V, W selon -le plan sélectionné, ainsi que le mot 'R'. La position de R- (signifiant -retrait) est perpendiculaire au plan de travail courant (axe Z pour le plan XY, -axe X pour le plan YZ, axe Y pour le plan XZ, etc.). Quelques cycles de -perçage utilisent des arguments supplémentaires. - -=== Mots 'sticky' - -Dans les cycles de perçage, un nombre est qualifié de 'sticky' (persistante, -collant) si, quand le même cycle est répété sur plusieurs lignes de code en -colonne, le nombre doit être indiqué la première fois, mais il -devient facultatif pour le reste des lignes suivantes. Les nombres -'sticky' conservent leur valeur tant qu'ils ne sont pas explicitement -programmés avec une nouvelle valeur. La valeur de R est toujours 'sticky'. - -En mode de déplacements incrémentaux (G91), les valeurs X, Y, est R -sont traitées comme des incréments depuis la position courante, Z est -un incrément depuis la position de l'axe Z avant le mouvement -impliquant l'axe Z. En mode de déplacements absolus, les valeurs de X, -Y, R, et Z sont des positions absolues dans le système de coordonnées courant. - -=== Répétition de cycle - -Le mot L est facultatif et représente le nombre de répétitions. -L=0 n'est pas permis. Si les fonctionnalités de répétition sont utilisées, -elles le sont normalement en mode relatif, de sorte que la même séquence de -mouvements se répète à plusieurs emplacements régulièrement espacés le long -d'une ligne droite. Quand L>1 en mode relatif et XY comme plan courant, -les positions X et Y sont déterminées en ajoutant les valeurs X et Y de -la commande à celles de la position courante, pour le premier trajet ou -ensuite, à celles de la position finale du précédent trajet, pour les -répétitions. Ainsi, si vous programmez `L10`, vous obtiendrez 10 cycles. -Le premier cycle sera la distance X, Y depuis la position d'origine. -Les positions de R- et Z- ne changent pas durant toutes les -répétitions. En mode absolu, L>1 signifie `faire le même cycle à la même -place plusieurs fois`, omis, le mot L est équivalent à L=1. La valeur de L -n'est pas 'sticky'. - - -=== Mode de retrait - -La hauteur du mouvement de retrait à la fin de chaque répétition -(appelée 'plan de retrait' dans les descriptions suivantes) est -déterminée par le mode de retrait: retrait sur la position initiale de -Z, si elle est au dessus de la valeur de R et que le mode de retrait -est 'G98', OLD_Z, sinon, à la position de R. Voir la section -<>. - -=== Erreurs des cycles de perçage - -Il y a une erreur si: - -* Tous les mots X, Y et Z sont manquants durant un cycle de perçage. -* Des mots d'axes de différents groupes (XYZ) (UVW) sont utilisés. -* Un nombre P est requis mais un nombre P négatif est utilisé. -* Un nombre L est utilisé mais n'est pas un entier positif. -* Un mouvement d'axe rotatif est utilisé durant un cycle de perçage. -* Une vitesse inverse du temps est activée durant un cycle de perçage. -* La compensation d'outil est activée durant un cycle de perçage. - -Quand le plan XY est actif, la valeur de Z est 'sticky', et c'est une -erreur si: - -* La valeur de Z est manquante alors qu'un même cycle de perçage n'a - pas encore été activé. -* La valeur de R est inférieure à celle de Z. - -Si un autre plan est actif, les conditions d'erreur sont analogues à -celles du plan XY décrites ci-dessus. - -[[sec:Mouvement-Preliminaire]] -=== Mouvement préliminaire et Intermédiaire - -Le mouvement préliminaire est un ensemble de mouvements commun à tous les -cycles de perçage. - -Tout au début de l'exécution d'un cycle de perçage, si la position -actuelle de Z est en dessous de la position de retrait R, l'axe Z va -à la position R. Ceci n'arrive qu'une fois, sans tenir compte de la -valeur de L. - -En plus, au début du premier cycle et à chaque répétition, un ou deux -des mouvements suivants sont faits: - -. Un déplacement en ligne droite, parallèle au plan XY, vers le position - programmée. -. Un déplacement en ligne droite, de l'axe Z seul vers la position de - retrait R, si il n'est pas déjà à cette position R. - -Si un autre plan est actif, le mouvement préliminaire et intermédiaire -est analogue. - -=== Pourquoi utiliser les cycles de perçage? - -Il y a au moins deux raisons pour utiliser les cycles de perçage. La -première est l'économie de code et la seconde la sécurité offerte par le -mouvement préliminaire qui permet de ne pas s'occuper du point de départ -du cycle. - -[[sec:G80-Revocation-modaux]] -== G80 Révocation des codes modaux - -(((G80 Révocation des codes modaux))) - -* 'G80' - Révoque, tant qu'il est actif, tous les codes de mouvements modaux du -groupe 1 auquel il appartient. Il est révoqué lui même par tout g-code du même -groupe. - -C'est une erreur si: - -* Des mots d'axes sont programmés quand G80 est actif. - -.Exemple 1 avec G80: ----- -G90 G81 X1 Y1 Z1.5 R2.8 (cycle de perçage en mode de déplacement absolu) -G80 (révoque G81) -G0 X0 Y0 Z0 (active les mouvements en vitesse rapide et déplace le -mobile en X0, Y0 et Z0) ----- - -L'exemple 1 produit les mêmes déplacements et le même état final de la machine -que l'exemple suivant: - -.Exemple avec G0: ----- -G90 G81 X1 Y1 Z1.5 R2.8 (cycle de perçage en mode de déplacement absolu) -G0 X0 Y0 Z0 (active les mouvements en vitesse rapide et déplace le -mobile en X0, Y0 et Z0) ----- - -L'avantage du premier exemple est que la ligne du G80 révoque clairement le cycle -G81. Avec ce premier programme, le programmeur doit revenir en mode -mouvement avec G0, comme c'est fait sur la ligne suivante, ou tout autre -mot G de mouvement. - - -Si un cycle de perçage n'est pas révoqué avec G80 ou un autre mot G -de mouvement, le cycle de perçage attend de se répéter en utilisant -la prochaine ligne de code contenant un ou plusieurs mots d'axe. Le fichier -suivant perce (G81) un ensemble de huit trous, tel que montré sur l'image qui -suit. - -.Exemple 2 avec G80: ----- -N100 G90 G0 X0 Y0 Z0 (coordonnées d'origine) -N110 G1 X0 G4 P0.1 -N120 G81 X1 Y0 Z0 R1 (cycle de perçage) -N130 X2 -N140 X3 -N150 X4 -N160 Y1 Z0.5 -N170 X3 -N180 X2 -N190 X1 -N200 G80 (révocation du cycle G81) -N210 G0 X0 (mouvement en vitesse rapide) -N220 Y0 -N230 Z0 -N240 M2 (fin du programme) ----- - -[NOTE] -Noter que la position de Z change après les quatre premiers trous. -C'est également un des rares cas dans lesquels les numéros de lignes sont -présents, permettant d'envoyer le lecteur sur une ligne de code spécifique. - -image::images/G81mult.png[] - -L'utilisation du G80 de la ligne N200 est facultative puisqu'il y a un G0 -sur la ligne suivante qui révoque le cycle G81. Mais utiliser G80, -comme l'exemple 2 le montre, donne une meilleure lisibilité au programme. Sans -ce G80, il ne serait pas aussi évident que tous les blocs compris entre N120 et -N200 appartiennent au cycle de perçage. - -[[sec:G81-Cycle-de-percage]] -== G81 Cycle de perçage -(((G81 Cycle de perçage))) - ----- -G81 (X- Y- Z- ) ou (U- V- W- ) R- L- ----- - -Le cycle 'G81' est destiné au perçage. - -. Un mouvement préliminaire, comme décrit <>. -. Un déplacement de l'axe Z seul à la vitesse programmée, vers la - position Z programmée. - . Retrait de l'axe Z en vitesse rapide jusqu'au plan de retrait R. - -.Exemple 1: G81 en position absolue[[sec:G81-exemple1]] - -Supposons que la position courante soit, X1, Y2, Z3 dans -le plan XY, la ligne de code suivante est interprétée: ----- -G90 G81 G98 X4 Y5 Z1.5 R2.8 ----- - -Le mode de déplacements absolus est appelé '(G90)', le plan de retrait -est positionné sur OLD_Z '(G98)', l'appel du cycle de perçage 'G81' va -lancer ce cycle une fois. La position X deviendra celle demandée, -X4. La position de Y deviendra celle demandée, Y5. La position de Z -deviendra celle demandée, Z1.5. La valeur de R fixe le plan de retrait -de Z à 2.8. La valeur de OLD_Z est 3. Les mouvements suivants vont se -produire. - -image::images/G81ex1.png[] - -* Un mouvement en vitesse rapide, parallèle au plan XY vers X4, Y5, Z3 -* Un mouvement en vitesse rapide, parallèle à l'axe Z vers X4, Y5, Z2.8 -* Un mouvement en vitesse travail, parallèle à l'axe Z vers X4, Y5, Z1.5 -* Un mouvement en vitesse rapide, parallèle à l'axe Z vers X4, Y5, Z3 - -'Exemple 2:' Supposons que la position courante soit, X1, Y2, Z3 dans -le plan XY, la ligne de codes suivante est interprétée: ----- -G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3 ----- - -Le mode de déplacements incrémentaux est appelé '(G91)', le plan de -retrait est positionné sur OLD_Z '(G98)', l'appel du cycle de perçage -'G81' demande 3 répétitions du cycle. La valeur demandée de X est 4, -la -valeur demandée de Y est 5, la valeur demandée de Z est -0.6 et le -retrait R est à 1.8. La position initiale de X sera 5 (1+4), la -position initiale de Y sera 7 (2+5), le plan de retrait sera positionné -sur 4.8 (1.8+3) et Z positionné sur 4.2 (4.8-0.6). OLD_Z est à 3. - -Le premier mouvement en vitesse rapide le long de l'axe Z vers X1, Y2, -Z4.8), puisque OLD_Z est inférieur au plan de retrait. - -La première répétition produira 3 mouvements. - -. Un déplacement en vitesse rapide, parallèle au plan XY vers X5, Y7, Z4.8 -. Un déplacement en vitesse travail, parallèle à l'axe Z vers X5, Y7, Z4.2 -. Un déplacement en vitesse rapide, parallèle à l'axe Z vers X5, Y7, Z4.8 - -La deuxième répétition produira 3 mouvements. La position de X est -augmentée de 4 et passe à 9, la position de Y est augmentée de 5 et -passe à 12. - -. Un déplacement en vitesse rapide, parallèle au plan XY vers X9, Y12, Z4.8 -. Un déplacement en vitesse travail, parallèle à l'axe Z vers X9, Y12, Z4.2 -. Un déplacement en vitesse rapide, parallèle à l'axe Z vers X9, Y12, Z4.8 - -La troisième répétition produira 3 mouvements. La position de X est -augmentée de 4 et passe à 13, la position de Y est augmentée de 5 et -passe à 17. - -. Un déplacement en vitesse rapide, parallèle au plan XY vers X13, Y17, Z4.8 -. Un déplacement en vitesse travail, parallèle à l'axe Z vers X13, Y17, Z4.2 -. Un déplacement en vitesse rapide, parallèle à l'axe Z vers X13, Y17, Z4.8 - -image::images/G81ex2.png[] - -'Exemple 3:' G81 en position relative - -Supposons maintenant que le premier g81 de la ligne de -code soit exécuté, mais de (0, 0, 0) plutôt que de (1, 2, 3). -G90 G81 G98 X4 Y5 Z1.5 R2.8 Depuis OLD_Z est inférieur à la valeur de R, -il n'ajoute rien au mouvement, mais puisque la valeur initiale de Z est -inférieure à la valeur spécifiée dans R, un premier mouvement de Z sera -effectué durant le mouvement préliminaire. - -image::images/G81.png[] - -'Exemple 4:' G81 en absolu avec R > Z - -Il s'agit de la trajectoire pour le second bloc de code de G81. ----- -G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3 ----- - -Cette trajectoire commence en (0, 0, 0), l'interpréteur ajoute les -valeurs initiales Z0 et R 1.8 et déplace le mobile en vitesse rapide -vers cet emplacement. Après ce premier déplacement initial de Z, la -répétition fonctionne de manière identique à celle de l'exemple 3 avec -le mouvement final de Z à 0.6 en dessous de la valeur de R. - -image::images/G81a.png[] - -'Exemple 5:' G81 en relatif avec R > Z ----- -G90 G98 G81 X4 Y5 Z-0.6 R1.8 ----- - -Puisque ce tracé commence en (X0, Y0, Z0), l'interpréteur ajoute R1.8 au Z0 -initial et déplace le mobile en vitesse rapide à cet emplacement, comme dans -'l'exemple 4'. Après ce mouvement initial à une hauteur Z0.6, le -mouvement en vitesse rapide se terminera en X4 Y5. -Alors la hauteur Z sera à 0.6 en dessous de la valeur de R. La fonction de -répétition fera encore déplacer Z au même emplacement. - -[[sec:G82-Cycle-de-percage]] -== G82 Cycle de perçage avec temporisation -(((G82 Cycle de perçage avec tempo))) - ----- -G82 (X- Y- Z- ) ou (U- V- W- ) R- L- P- ----- - -Le cycle 'G82' est destiné au perçage. -Les mouvements du cycle G82 ressemblent à ceux de G81 avec une -temporisation supplémentaire en fin de mouvement Z. La longueur de -cette temporisation, exprimée en secondes, est spécifiée par un mot P# -sur la ligne du G82. - -. Un mouvement préliminaire. Comme décrit <>. -. Un déplacement de l'axe Z seul en vitesse programmée, vers la position Z programmée. -. Une temporisation de 'P' secondes. -. Retrait de l'axe Z en vitesse rapide jusqu'au plan de retrait 'R'. ----- -G90 G82 G98 X4 Y5 Z1.5 R2.8 P2 ----- - -Sera équivalent à l'exemple 3 ci-dessus mais avec une temporisation de -2 secondes en fond de trou. - - -[[sec:G83-Percage-avec-debourrage]] -== G83 Cycle de perçage avec débourrage -(((G83 Cycle de perçage avec débourrage))) - ----- -G83 (X- Y- Z-) or (U- V- W-) R- L- Q- ----- - -Le cycle 'G83' est destiné au perçage profond ou au fraisage avec -brise-copeaux. Les retraits, au cours de ce cycle, dégagent les copeaux du -trou et fragmentent les copeaux longs (qui sont fréquents lors du perçage dans -l'aluminium). Ce cycle utilise la valeur 'Q' qui représente un incrément -'delta' le long de l'axe Z. - -donnera: - -. Un mouvement préliminaire, comme décrit <>. -. Un mouvement de l'axe Z seul, en vitesse travail, sur la position la - moins profonde entre, un incrément delta, ou la position de Z programmée. -. Un mouvement en vitesse rapide au plan de retrait. -. Une plongée en vitesse rapide dans le même trou, presque jusqu'au fond. -. Répétition des étapes 2, 3 et 4 jusqu'à ce que la position programmée - de Z soit atteinte à l'étape 2. -. Un mouvement de l'axe Z en vitesse rapide vers le plan de retrait. - -C'est une erreur si: - -* La valeur de Q est négative ou égale à zéro. - -[[sec:G84-Taraudage-a-droite]] -== G84 Cycle de taraudage à droite -(((G84 Cycle de taraudage))) - -Ce code n'est pas encore implémenté dans LinuxCNC. Il est accepté mais son -comportement n'est pas défini. Voir le <>. - -[[sec:G85-Alesage-retrait-travail]] -== G85 Cycle d'alésage, sans temporisation, retrait en vitesse travail -(((G85 Cycle d'alésage))) - ----- -G85 (X- Y- Z-) or (U- V- W-) R- L- ----- - -Le cycle 'G85' est destiné à l'alésage, mais peut être utilisé pour -le perçage ou le fraisage. - -. Un mouvement préliminaire, comme décrit <>. -. Un déplacement de l'axe Z seul en vitesse travail, vers la position Z programmée. -. Retrait de l'axe Z en vitesse travail vers le plan de retrait. - -[[sec:G86-Alesage-retrait-rapide]] -== G86 Cycle d'alésage, arrêt de broche, retrait en vitesse rapide -(((G86 Cycle d'alésage))) - ----- -G86 (X- Y- Z-) or (U- V- W-) R- L- P- ----- - -Le cycle 'G86' est destiné à l'alésage. Ce cycle utilise la valeur P pour -une temporisation en secondes. - -. Un mouvement préliminaire, comme décrit sur <>. -. Un déplacement de l'axe Z seul en vitesse travail, vers la position Z programmée. -. Une temporisation de P secondes. -. L'arrêt de rotation de la broche. -. Retrait de l'axe Z en vitesse rapide vers le plan de retrait. -. Reprise de la rotation de la broche dans la même direction que - précédemment. - -La broche doit tourner avant le lancement de ce cycle. C'est une -erreur si: - -- La broche ne tourne pas avant que ce cycle ne soit exécuté. - -[[sec:G87-Back-Boring]] -== G87 Alésage inverse -(((G87 Alésage inverse))) - -Ce code n'est pas encore implémenté dans LinuxCNC. Il est accepté mais son -comportement n'est pas défini. - -[[sec:G88-Alesage-Retrait-Manuel-Out]] -== G88 Alésage, arrêt de broche, retrait en manuel -(((G88 Cycle d'alésage))) - -Ce code n'est pas encore implémenté dans LinuxCNC. Il est accepté mais son -comportement n'est pas défini. - -[[sec:G89-Alesage-Tempo]] -== G89 Cycle d'alésage, temporisation, retrait en vitesse travail -(((G89 Cycle d'alésage avec tempo))) - ----- -G89 (X- Y- Z-) or (U- V- W-) R- L- P- ----- - -Le cycle 'G89' est destiné à l'alésage. Il utilise la valeur de P -pour une temporisation en secondes. - -. Un mouvement préliminaire, comme décrit <>. -. Un déplacement de l'axe Z seul en vitesse travail, vers la position Z programmée. -. Temporisation de P secondes. -. Retrait de l'axe Z en vitesse travail vers le plan de retrait. - -=== Pourquoi utiliser les cycles de perçage ? - -Il y a au moins deux raisons, la première est l'économie de code. Un -simple trou demande plusieurs lignes de code pour être exécuté. - -Nous avons montré plus haut, comment les cycles -de perçage peuvent être utilisés pour produire 8 trous avec dix -lignes de code. Le programme ci-dessous permet de produire le même jeu -de 8 trous en utilisant cinq lignes pour le cycle de perçage. Il ne -suit pas exactement le même parcours et ne perce pas dans le même ordre -que l'exemple précédent, mais le programme a été écrit de manière -économique, une bonne pratique qui devrait être courante avec les -cycles de perçage. - -'Exemple 5:' perçage de huit trous, réécrit. ----- -G90 G0 X0 Y0 Z0 (coordonnées d'origine) -G1 F10 X0 G4 P0.1 -G91 G81 X1 Y0 Z-1 R1 L4 (cycle de perçage) -G90 G0 X0 Y1 -Z0 -G91 G81 X1 Y0 Z-.5 R1 L4 (cycle de perçage) -G80 (révocation du cycle G81) -M2 (fin de programme) ----- - -image::images/eight.png[] - -'Exemple 6:' Douze trous en carré - -Cet exemple montre l'utilisation du mot L pour répéter une série -incrémentale de cycles de perçage pour des blocs de code successifs -dans le même mode mouvements G81. Ici, nous produisons 12 trous au -moyen de cinq lignes de code dans le mouvement modal. ----- -G90 G0 X0 Y0 Z0 (coordonnées d'origine) -G1 F50 X0 G4 P0.1 -G91 G81 X1 Y0 Z-0.5 R1 L4 (cycle de perçage) -X0 Y1 R0 L3 (répétition) -X-1 Y0 L3 (répétition) -X0 Y-1 L2 (répétition) -G80 (révocation du cycle G81) -G90 G0 X0 (retour vers l'origine en vitesse rapide) -Y0 -Z0 -M2 (fin de programme) ----- - -image::images/twelve.png[] - -La deuxième raison d'utiliser les cycles de perçages, c'est qu'il -produisent un mouvement préliminaire et retournent à une position -prévisible et contrôlable, quel que soit le point de départ du cycle. - -[[sec:G90-G91]] -== G90, G91: Modes de déplacement -(((G90 Mode de déplacement absolu))) -(((G91 Mode de déplacement relatif))) - -* 'G90' est le mode de déplacement absolu, les valeurs d'axes -'X, Y, Z, A, B, C, U, V, W' représentent les positions dans le système de -coordonnées courant. Les exceptions à cette règle sont décrites dans -la section <>. -* 'G91' est le mode de déplacement relatif, en mode relatif, les -valeurs d'axes représentent un incrément depuis la position courante. - -.Exemple avec G90 ----- -G90 (passe en mode de déplacement absolu) -G0 X2.5 (déplacement linéaire en vitesse rapide à la coordonnée X=2.5 en -incluant tous les offsets en cours) ----- - -.Exemple avec G91 ----- -G91 (passe en mode de déplacement relatif) -G0 X2.5 (déplacement linéaire en vitesse rapide, à +2.5 en X de la position -courante) ----- - -* Voir <> pour plus d'information. - -[[sec:G90_1-G91_1]] -== G90.1, G91.1: Mode de déplacement en arc (I, J et K) - -* 'G90.1' - Mode de déplacement absolu pour les offsets I, J et K. Quand -G90.1 est actif, I et J doivent être tous les deux spécifiés avec G2/G3 pour -le plan XY ou J et K pour le plan XZ, sinon c'est une erreur. - -* 'G91.1' - Mode de déplacement relatif pour les offsets I, J et K. G91.1 -replace I, J et K à leur fonctionnement normal. - -[[sec:G92]] -== G92 Décalage d'origine des systèmes de coordonnées -(((G92 Décalages d'origine des systèmes de coordonnées))) - ----- -G92 axes ----- - -Voir ce chapitre <> -des systèmes de coordonnées. - -G92 fixera de nouvelles valeurs de coordonnées au point actuel (sans -faire de mouvement). Les mots d'axes contiennent les valeurs souhaitées. Au -moins un mot d'axe est obligatoire, les autres sont facultatifs. Si il -n'y a pas de mot d'axe pour un axe donné, les coordonnées de cet axe -resteront inchangées. - -Quand 'G92' est exécuté, les origines de tous les systèmes de -coordonnées sont déplacées. Elles seront déplacées de sorte que les valeurs du -point contrôlé courant, dans le système de coordonnées courant, deviendront -celles spécifiées dans la ligne du G92. Les origines de tous les systèmes de -coordonnées sont décalées de la même distance. - -Par exemple, supposons que le point courant soit à X=4 et qu'aucun -décalage G92 ne soit actif. La ligne 'G92 X7' est programmée, toutes les -origines seront décalées de -3 en X, ce qui fera que le point courant -deviendra X=7. Ce -3 est enregistré dans le paramètre 5211. - -Être en mode de déplacement relatif est sans effet sur l'action de 'G92'. - -Des décalages G92 peuvent déjà être actifs quand 'G92' est appelé. Si -c'est le cas, ils seront remplacés par le nouveau décalage, de sorte que le -point courant devienne la valeur spécifiée. - -C'est une erreur si: - -* Tous les mots d'axes sont omis. - -LinuxCNC conserve les décalages G92 et les réutilise au prochain démarrage -du logiciel. Pour éviter cela, programmer un 'G92.1' qui les effacera, ou -un G92.2 qui supprimera les valeurs enregistrées. - -Voir le chapitre sur les <>. - -Voir la section sur les <>. - -Voir la section sur les <>. - -[[sec:G92_1-G92_2]] -== G92.1, G92.2 Remise à zéro des décalages des systèmes de coordonnées - -* 'G92.1' - Positionne les décalages d'axes à 0 et passe les paramètres -5211 à 5219 à zéro. -* 'G92.2' - Positionne les décalages d'axes à 0, laisse les valeurs des -paramètres inchangées, elles ne seront pas utilisées. - -[[sec:G92_3]] -== G92.3 Restauration des décalages d'axe - -* 'G92.3' - Positionne les décalages d'axes aux valeurs enregistrées dans -les paramètres 5211 à 5219. - -Il est possible de positionner les décalages d'axes dans un programme puis de -ré-utiliser les mêmes dans un autre programme. Pour cela, programmer 'G92' dans -le premier programme, ce qui positionnera les paramètres 5211 à -5219. Ne pas utiliser G92.1 dans la suite du premier programme. Les -valeurs des paramètres seront enregistrées lors de la sortie du premier -programme et rétablies au chargement du second programme. Utiliser -'G92.3' vers le début du deuxième programme, ce qui restaurera les -décalages d'axes enregistrés par le premier. - - -[[sec:G93-G94-G95-Modes]] -== G93, G94, G95: Choix des modes de vitesse -(((G93, G94, G95: Choix des modes de vitesse))) - -* 'G93' - Passe en mode inverse du temps. Dans le mode vitesse inverse du -temps, le mot 'F' signifie que le mouvement doit être terminé en '[1/F]' -minutes. Par exemple, si la valeur de 'F' est '2.0', les mouvements -doivent être terminés en '1/2' minute. -+ -Quand le mode vitesse inverse du temps est actif, le mot 'F' doit -apparaître sur chaque ligne contenant un mouvement 'G1', 'G2', ou 'G3'. Les -mots F qui sont sur des lignes sans G1, G2, ou G3 sont ignorés. Être en -mode vitesse inverse du temps est sans effet sur les mouvements G0 -(vitesse rapide). - -* 'G94' - Passe en mode unités par minute. Dans le mode vitesse en unités -par minute, le mot 'F' indique le déplacement du point contrôlé en millimètres -par minute, en pouces par minute, ou en degrés par minute, selon l'unité -utilisée. - -* 'G95' - Passe en mode unités par tour. Dans le mode vitesse en unités -par tour, le mot 'F' donne le déplacement du point contrôlé à effectuer sur -l'axe Z, en millimètres par tour de broche ou en pouces, selon l'unité utilisée. - -C'est une erreur si: - -* Le mode vitesse inverse du temps est actif et qu'une ligne avec G1, - G2, ou G3 (explicitement ou implicitement) n'a pas de mot F. -* Une nouvelle vitesse n'a pas été spécifiée après un passage en G94 ou G95. - -[[sec:G96-G97-Broche]] -== G96, G97: Modes de contrôle de la broche -(((G96, G97: Vitesse de coupe constante, Vitesse de coupe en tr/mn))) - ----- -G96 S- (vitesse de coupe constante) -G97 (mode tr/mn) ----- - -* 'D-' - Vitesse de broche maximale en tours par minute. -* 'S-' - Vitesse de coupe constante. -* 'G96 D- S-' - Passe à une vitesse de coupe constante de 'S' pieds par minute, -si G20 est actif, ou 'S' mètres par minute, si G21 est actif. D- est facultatif. -+ -Lorsque 'G96' est utilisé, s'assurer que 'X0' dans le système de coordonnées -en cours (y compris les compensations d'outils) est bien le centre de -rotation, sinon LinuxCNC ne donnera pas la vitesse de broche désirée. -'G96' n'est pas affecté par les mode rayon ou diamètre. - -* 'G97' - Vitesse de coupe en tr/mn. - -.Exemple avec G96 ----- -G96 D2500 S250 (passe à une vitesse de coupe constante de 250 m/mn maximum pour -une vitesse de broche maximale de 2500tr/mn). ----- - -C'est une erreur si: - -* S n'est pas spécifié avec G96. -* Une vitesse est spécifiée en mode G96 et la broche ne tourne pas. - -[[sec:G98-G99-Set]] -== G98, G99: Options du plan de retrait -(((G98, G99 Retrait à la position initiale, Retrait sur R))) - -Quand la broche se rétracte pendant les cycles de perçage, il -existe deux options pour indiquer comment elle doit se rétracter: - - . 'G98' Retrait perpendiculaire au plan de travail courant jusqu'à - la position qui était celle de cet axe juste avant le début du cycle de - perçage. (à moins que cette position ne soit inférieure à celle indiquée - par le mot R, auquel cas, c'est cette dernière qui serait utilisée). - -image::images/G81g98d.png[] - - - . 'G99' Retrait perpendiculaire au plan de travail courant jusqu'à la position - indiquée par le mot 'R'. - -image::images/G81ret.png[] - -Ne pas oublier que la signification du mot R change selon que le mode de -déplacement est absolu ou relatif. - -Le plan de retrait initial (G98) est annulé chaque fois que le mode de -mouvement est abandonné, que ce soit explicitement avec G80 ou implicitement -(tout code de mouvement qui n'est pas un cycle). -Basculer d'un mode de cycle à un autre, par exemple entre G81 et G83 -n'annule pas le plan de retrait initial. Il est permis de basculer entre -G98 et G99 durant une série de cycles de perçage. - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/gcode/images/G81.png b/docs/src/gcode/images/G81.png deleted file mode 100644 index 146fd3ad2aa..00000000000 Binary files a/docs/src/gcode/images/G81.png and /dev/null differ diff --git a/docs/src/gcode/images/G81a.png b/docs/src/gcode/images/G81a.png deleted file mode 100644 index 5253554344a..00000000000 Binary files a/docs/src/gcode/images/G81a.png and /dev/null differ diff --git a/docs/src/gcode/images/G81ex1.png b/docs/src/gcode/images/G81ex1.png deleted file mode 100644 index ed42fe53d18..00000000000 Binary files a/docs/src/gcode/images/G81ex1.png and /dev/null differ diff --git a/docs/src/gcode/images/G81ex2.png b/docs/src/gcode/images/G81ex2.png deleted file mode 100644 index 30dfa31913f..00000000000 Binary files a/docs/src/gcode/images/G81ex2.png and /dev/null differ diff --git a/docs/src/gcode/images/G81g98d.png b/docs/src/gcode/images/G81g98d.png deleted file mode 100644 index 82976adfc3d..00000000000 Binary files a/docs/src/gcode/images/G81g98d.png and /dev/null differ diff --git a/docs/src/gcode/images/G81mult.png b/docs/src/gcode/images/G81mult.png deleted file mode 100644 index 05cc6307740..00000000000 Binary files a/docs/src/gcode/images/G81mult.png and /dev/null differ diff --git a/docs/src/gcode/images/G81ret.png b/docs/src/gcode/images/G81ret.png deleted file mode 100644 index f9db37472b5..00000000000 Binary files a/docs/src/gcode/images/G81ret.png and /dev/null differ diff --git a/docs/src/gcode/images/G87pre.png b/docs/src/gcode/images/G87pre.png deleted file mode 100644 index 0b4b6395141..00000000000 Binary files a/docs/src/gcode/images/G87pre.png and /dev/null differ diff --git a/docs/src/gcode/images/G87s1.png b/docs/src/gcode/images/G87s1.png deleted file mode 100644 index 791f7b299ef..00000000000 Binary files a/docs/src/gcode/images/G87s1.png and /dev/null differ diff --git a/docs/src/gcode/images/G87s12.png b/docs/src/gcode/images/G87s12.png deleted file mode 100644 index 30581d5bdfe..00000000000 Binary files a/docs/src/gcode/images/G87s12.png and /dev/null differ diff --git a/docs/src/gcode/images/G87s5.png b/docs/src/gcode/images/G87s5.png deleted file mode 100644 index d3462674ddd..00000000000 Binary files a/docs/src/gcode/images/G87s5.png and /dev/null differ diff --git a/docs/src/gcode/images/ToolTable-TouchOff.png b/docs/src/gcode/images/ToolTable-TouchOff.png deleted file mode 100644 index cc8aac18866..00000000000 Binary files a/docs/src/gcode/images/ToolTable-TouchOff.png and /dev/null differ diff --git a/docs/src/gcode/images/ToolTable-TouchOff_fr.png b/docs/src/gcode/images/ToolTable-TouchOff_fr.png deleted file mode 100644 index 17bd1c8764f..00000000000 Binary files a/docs/src/gcode/images/ToolTable-TouchOff_fr.png and /dev/null differ diff --git a/docs/src/gcode/images/comp-path.dxf b/docs/src/gcode/images/comp-path.dxf deleted file mode 100644 index b945795cdf5..00000000000 --- a/docs/src/gcode/images/comp-path.dxf +++ /dev/null @@ -1,3422 +0,0 @@ -999 -dxflib 2.0.4.0 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$USERR4 - 40 -0.0 - 9 -$DIMTDEC - 70 -4 - 9 -$DIMTAD - 70 -0 - 9 -$CMLSTYLE - 2 -Standard - 9 -$VISRETAIN - 70 -1 - 9 -$TILEMODE - 70 -0 - 9 -$SHADEDIF - 70 -70 - 9 -$USERR5 - 40 -0.0 - 9 -$UCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$CHAMFERA - 40 -0.5 - 9 -$MENU - 1 -. - 9 -$DIMALTZ - 70 -0 - 9 -$CLAYER - 8 -0 - 9 -$OLESTARTUP -290 -0 - 9 -$UCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$CHAMFERB - 40 -0.5 - 9 -$DIMADEC - 70 -0 - 9 -$DIMUPT - 70 -0 - 9 -$DIMASZ - 40 -0.18 - 9 -$TRACEWID - 40 -0.05 - 9 -$REGENMODE - 70 -1 - 9 -$ORTHOMODE - 70 -0 - 9 -$EXTMIN - 10 --0.25 - 20 --0.25 - 30 -0.0 - 9 -$ENDCAPS -280 -0 - 9 -$MEASUREMENT - 70 -0 - 9 -$CMLJUST - 70 -0 - 9 -$PUCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$ANGBASE - 50 -0.0 - 9 -$USRTIMER - 70 -1 - 9 -$CHAMFERC - 40 -1.0 - 9 -$SKETCHINC - 40 -0.1 - 9 -$DIMGAP - 40 -0.09 - 9 -$DIMTFAC - 40 -1.0 - 9 -$DIMSAH - 70 -0 - 9 -$DIMALT - 70 -0 - 9 -$DIMSHO - 70 -1 - 9 -$VERSIONGUID - 2 -{8EE70426-6E5E-402E-B0EC-4E374073B37D} - 9 -$LWDISPLAY -290 -0 - 9 -$PUCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$SURFTYPE - 70 -6 - 9 -$SPLFRAME - 70 -0 - 9 -$CHAMFERD - 40 -0.0 - 9 -$DIMALTRND - 40 -0.0 - 9 -$DIMALTTD - 70 -2 - 9 -$DIMTSZ - 40 -0.0 - 9 -$LIMMIN - 10 -0.0 - 20 -0.0 - 9 -$CELWEIGHT -370 --1 - 9 -$SURFTAB1 - 70 -6 - 9 -$SPLINESEGS - 70 -8 - 9 -$AUPREC - 70 -0 - 9 -$LUNITS - 70 -2 - 9 -$DWGCODEPAGE - 3 -ANSI_1252 - 9 -$PSTYLEMODE -290 -1 - 9 -$UNITMODE - 70 -0 - 9 -$USERI1 - 70 -0 - 9 -$UCSORTHOVIEW - 70 -0 - 9 -$SURFTAB2 - 70 -6 - 9 -$TDUUPDATE - 40 -2454904.5299945492297411 - 9 -$TDUCREATE - 40 -2454903.5228196987882257 - 9 -$SKPOLY - 70 -0 - 9 -$ELEVATION - 40 -0.0 - 9 -$DIMDSEP - 70 -46 - 9 -$DIMCEN - 40 -0.09 - 9 -$DIMRND - 40 -0.0 - 9 -$INSBASE - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$INSUNITS - 70 -1 - 9 -$USERI2 - 70 -0 - 9 -$UCSORGRIGHT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$UCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PELEVATION - 40 -0.0 - 9 -$DIMEXO - 40 -0.0625 - 9 -$TEXTSIZE - 40 -0.2 - 9 -$FILLMODE - 70 -1 - 9 -$EXTMAX - 10 -2.1118033988749891 - 20 -1.4267766952966361 - 30 -0.0 - 9 -$JOINSTYLE -280 -0 - 9 -$USERI3 - 70 -0 - 9 -$PUCSORGBOTTOM - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$SURFU - 70 -6 - 9 -$ANGDIR - 70 -0 - 9 -$TDUSRTIMER - 40 -0.0322617824 - 9 -$DIMLWD - 70 --2 - 9 -$DIMTZIN - 70 -0 - 9 -$DIMTOLJ - 70 -1 - 9 -$DIMZIN - 70 -0 - 9 -$DIMDLE - 40 -0.0 - 9 -$DIMSCALE - 40 -1.0 - 9 -$WORLDVIEW - 70 -1 - 9 -$USERI4 - 70 -0 - 9 -$SURFV - 70 -6 - 9 -$DIMLWE - 70 --2 - 9 -$DIMLUNIT - 70 -2 - 9 -$DIMATFIT - 70 -3 - 9 -$DIMALTTZ - 70 -0 - 9 -$DIMJUST - 70 -0 - 9 -$QTEXTMODE - 70 -0 - 9 -$LIMMAX - 10 -12.0 - 20 -9.0 - 9 -$ACADMAINTVER - 70 -6 - 9 -$EXTNAMES -290 -1 - 9 -$PROXYGRAPHICS - 70 -1 - 9 -$USERI5 - 70 -0 - 9 -$UCSORGTOP - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PDMODE - 70 -0 - 9 -$LIMCHECK - 70 -0 - 9 -$THICKNESS - 40 -0.0 - 9 -$DIMAZIN - 70 -0 - 9 -$DIMSE1 - 70 -0 - 9 -$DIMLIM - 70 -0 - 9 -$DIMTXT - 40 -0.18 - 9 -$ATTMODE - 70 -1 - 9 -$XEDIT -290 -1 - 9 -$PEXTMAX - 10 -6.0960515758065048 - 20 -4.789321494325363 - 30 -0.0 - 9 -$PEXTMIN - 10 -0.1626486927937876 - 20 -0.1813156133809173 - 30 -0.0 - 9 -$PUCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$SPLINETYPE - 70 -6 - 9 -$TDINDWG - 40 -0.0322634028 - 9 -$LUPREC - 70 -4 - 9 -$DIMSOXD - 70 -0 - 9 -$DIMLFAC - 40 -1.0 - 9 -$DIMSE2 - 70 -0 - 9 -$DIMTOH - 70 -1 - 9 -$CELTYPE - 6 -ByLayer - 9 -$PSVPSCALE - 40 -0.0 - 9 -$FINGERPRINTGUID - 2 -{1B629E35-8239-407F-A837-5E70A2BC935C} - 9 -$PLIMCHECK - 70 -0 - 9 -$PUCSORGRIGHT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PLINEWID - 40 -0.0 - 9 -$DIMFRAC - 70 -0 - 9 -$DIMSTYLE - 2 -Standard - 9 -$DIMTVP - 40 -0.0 - 9 -$DIMASO - 70 -1 - 9 -$DIMTM - 40 -0.0 - 9 -$DIMDLI - 40 -0.38 - 9 -$DISPSILH - 70 -0 - 9 -$CECOLOR - 62 -256 - 9 -$TREEDEPTH - 70 -3020 - 9 -$PLIMMAX - 10 -8.3749997615814191 - 20 -10.8749997615814191 - 9 -$PLIMMIN - 10 --0.1249999981226883 - 20 --0.1249999981226883 - 9 -$MAXACTVP - 70 -64 - 9 -$UCSORGBACK - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$UCSORGLEFT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$TDUPDATE - 40 -2454904.2799945478327572 - 9 -$FILLETRAD - 40 -0.5 - 9 -$DIMALTU - 70 -2 - 9 -$DIMDEC - 70 -4 - 9 -$DIMCLRT - 70 -0 - 9 -$DIMALTD - 70 -2 - 9 -$DIMTIH - 70 -1 - 9 -$LTSCALE - 40 -1.0 - 9 -$CEPSNTYPE -380 -0 - 9 -$CMLSCALE - 40 -1.0 - 9 -$PINSBASE - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$USERR1 - 40 -0.0 - 9 -$PUCSORTHOVIEW - 70 -0 - 9 -$PDSIZE - 40 -0.0 - 9 -$DIMTXSTY - 7 -Standard - 9 -$DIMCLRD - 70 -0 - 9 -$DIMEXE - 40 -0.18 - 9 -$CELTSCALE - 40 -1.0 - 9 -$PSLTSCALE - 70 -1 - 9 -$PLINEGEN - 70 -0 - 9 -$SHADEDGE - 70 -3 - 9 -$USERR2 - 40 -0.0 - 9 -$PUCSORGTOP - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$UCSORGFRONT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$TDCREATE - 40 -2454903.2728196987882257 - 9 -$DIMTMOVE - 70 -0 - 9 -$DIMAUNIT - 70 -0 - 9 -$DIMSD1 - 70 -0 - 9 -$DIMCLRE - 70 -0 - 9 -$DIMTOFL - 70 -0 - 9 -$DIMALTF - 40 -25.3999999999999986 - 9 -$DIMTOL - 70 -0 - 9 -$DIMTP - 40 -0.0 - 9 -$TEXTSTYLE - 7 -Standard - 9 -$USERR3 - 40 -0.0 - 9 -$PUCSORGBACK - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PUCSORGFRONT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PUCSORGLEFT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$UCSORGBOTTOM - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$AUNITS - 70 -0 - 9 -$DIMSD2 - 70 -0 - 9 -$DIMTIX - 70 -0 - 9 -$MIRRTEXT - 70 -1 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -4 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 --3 -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -G41 - 70 -0 - 62 -1 - 6 -CONTINUOUS -370 --3 -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -G42 - 70 -0 - 62 -3 - 6 -CONTINUOUS -370 --3 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -cutter - 70 -0 - 62 -5 - 6 -CONTINUOUS -370 --3 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -2.5 - 42 -0.625 - 43 -3.75 - 44 -1.25 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -2.5 -141 -2.5 -143 -0.03937007874016 -147 -0.625 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -46 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -0.0 - 30 -0.0 - 11 -1.0 - 21 -1.0 - 31 -0.0 - 0 -LINE - 5 -47 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.0 - 20 -1.0 - 30 -0.0 - 11 -2.0 - 21 -0.5 - 31 -0.0 - 0 -CIRCLE - 5 -48 -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -0.0 - 30 -0.0 - 40 -0.25 - 0 -LINE - 5 -49 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.0 - 20 -1.0 - 30 -0.0 - 11 -1.0 - 21 -1.0 - 31 -0.0 - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -G41 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -0.0 - 30 -0.0 - 11 -0.8232233047033631 - 21 -1.1767766952966361 - 31 -0.0 - 0 -CIRCLE - 5 -4B -100 -AcDbEntity -100 -AcDbCircle - 8 -G41 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.8232233047033631 - 20 -1.1767766952966361 - 30 -0.0 - 40 -0.25 - 0 -LINE - 5 -4C -100 -AcDbEntity -100 -AcDbLine - 8 -G41 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.1118033988749889 - 20 -1.223606797749978 - 30 -0.0 - 11 -2.1118033988749891 - 21 -0.723606797749979 - 31 -0.0 - 0 -ARC - 5 -4D -100 -AcDbEntity - 8 -G41 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -1.0 - 20 -1.0 - 30 -0.0 - 40 -0.25 -100 -AcDbArc - 50 -63.4349488229219673 - 51 -134.9999999999998863 - 0 -CIRCLE - 5 -4E -100 -AcDbEntity -100 -AcDbCircle - 8 -G41 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.6118033988749889 - 20 -0.9736067977499789 - 30 -0.0 - 40 -0.25 - 0 -LINE - 5 -4F -100 -AcDbEntity -100 -AcDbLine - 8 -G42 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.0493632622705329 - 20 -0.6958098716772595 - 30 -0.0 - 11 -1.88819660112501 - 21 -0.2763932022500211 - 31 -0.0 - 0 -LINE - 5 -50 -100 -AcDbEntity -100 -AcDbLine - 8 -G42 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -0.0 - 30 -0.0 - 11 -1.0493632622705329 - 21 -0.6958098716772595 - 31 -0.0 - 0 -CIRCLE - 5 -51 -100 -AcDbEntity -100 -AcDbCircle - 8 -G42 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.0493632622705329 - 20 -0.6958098716772595 - 30 -0.0 - 40 -0.25 - 0 -CIRCLE - 5 -52 -100 -AcDbEntity -100 -AcDbCircle - 8 -G42 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.468779931697771 - 20 -0.4861015369636403 - 30 -0.0 - 40 -0.25 - 0 -LEADER - 5 -53 - 8 -cutter - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -1.0493632622705329 - 20 -0.6958098716772595 - 10 -1.2 - 20 -0.1000000000000001 - 10 -1.3 - 20 -0.1000000000000001 - 0 -LEADER - 5 -54 - 8 -cutter - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -0.8232233047033635 - 20 -1.1767766952966372 - 10 -0.4 - 20 -1.3 - 10 -0.2999999999999999 - 20 -1.3 - 0 -MTEXT - 5 -55 -100 -AcDbEntity -100 -AcDbMText - 8 -cutter - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.3999999999999999 - 20 -0.0000000000000001 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -4 - 72 -0 - 1 -Inside\~Corner\PEnd\~of\~first\~move - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -56 -100 -AcDbEntity -100 -AcDbMText - 8 -cutter - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.2 - 20 -1.3 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -6 - 72 -0 - 1 -Outside\~Corner\PEnd\~of\~first\~move - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LEADER - 5 -57 - 8 -cutter - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -0.5 - 20 -0.5 - 10 -0.2999999999999999 - 20 -0.6000000000000001 - 10 -0.2 - 20 -0.6000000000000001 - 0 -MTEXT - 5 -58 -100 -AcDbEntity -100 -AcDbMText - 8 -cutter - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.1 - 20 -0.6000000000000001 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -6 - 72 -0 - 1 -Programmed\~Path - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LEADER - 5 -59 - 8 -cutter - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -0.4872362629169401 - 20 -0.6964917975818052 - 10 -0.2999999999999999 - 20 -0.8 - 10 -0.2 - 20 -0.8 - 0 -MTEXT - 5 -5A -100 -AcDbEntity -100 -AcDbMText - 8 -cutter - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.1 - 20 -0.8 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -6 - 72 -0 - 1 -G41\~Path - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5B -100 -AcDbEntity -100 -AcDbMText - 8 -cutter - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.7 - 20 -0.0000000000000001 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -4 - 72 -0 - 1 -G42\~Path - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LEADER - 5 -5C - 8 -cutter - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -0.4167140330157996 - 20 -0.27631397845152 - 10 -0.5 - 20 -0.0000000000000001 - 10 -0.6 - 20 -0.0000000000000001 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -5D - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -5D -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -5F - 3 -HIDETEXT -350 -5E - 0 -DICTIONARYVAR - 5 -5E -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -5F -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/gcode/images/comp-path.png b/docs/src/gcode/images/comp-path.png deleted file mode 100644 index 12b170a82e6..00000000000 Binary files a/docs/src/gcode/images/comp-path.png and /dev/null differ diff --git a/docs/src/gcode/images/comp-path_fr.png b/docs/src/gcode/images/comp-path_fr.png deleted file mode 100644 index 58b83a00de6..00000000000 Binary files a/docs/src/gcode/images/comp-path_fr.png and /dev/null differ diff --git a/docs/src/gcode/images/comp-path_fr.svg b/docs/src/gcode/images/comp-path_fr.svg deleted file mode 100755 index a89a4dd8f74..00000000000 --- a/docs/src/gcode/images/comp-path_fr.svg +++ /dev/null @@ -1,441 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Parcours programmé - Parcours compensé par G42 - Parcours compensépar G41 - Position à l'extérieur de l'angle après le premier mouvement - Position à l'intérieur de l'angleaprès le premier mouvement - - - - - - - - diff --git a/docs/src/gcode/images/comp02.dxf b/docs/src/gcode/images/comp02.dxf deleted file mode 100644 index dabd84fe34d..00000000000 --- a/docs/src/gcode/images/comp02.dxf +++ /dev/null @@ -1,2866 +0,0 @@ -999 -dxflib 2.0.4.0 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMASZ - 40 -0.1 - 9 -$GRIDUNIT - 10 -0.25 - 20 -0.25 - 9 -$DIMADEC - 70 -2 - 9 -$DIMGAP - 40 -0.025 - 9 -$SPLINESEGS - 70 -8 - 9 -$AUPREC - 70 -2 - 9 -$LUNITS - 70 -2 - 9 -$DIMEXO - 40 -0.025 - 9 -$INSUNITS - 70 -1 - 9 -$DIMLUNIT - 70 -2 - 9 -$GRIDMODE - 70 -0 - 9 -$DIMTXT - 40 -0.1 - 9 -$LUPREC - 70 -4 - 9 -$PLIMMAX - 10 -8.5 - 20 -11.0 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$DIMEXE - 40 -0.05 - 9 -$DIMAUNIT - 70 -0 - 9 -$AUNITS - 70 -0 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -4 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -35 -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -comppath - 70 -0 - 62 -3 - 6 -CONTINUOUS -370 -35 -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -progpath - 70 -0 - 62 -4 - 6 -CONTINUOUS -370 -0 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -text - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -0 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -2.5 - 42 -0.625 - 43 -3.75 - 44 -1.25 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -2.5 -141 -2.5 -143 -0.03937007874016 -147 -0.625 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -CIRCLE - 5 -46 -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -0.0 - 30 -0.0 - 40 -0.25 - 0 -CIRCLE - 5 -47 -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.25 - 20 -1.0 - 30 -0.0 - 40 -0.25 - 0 -CIRCLE - 5 -48 -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.5 - 20 -1.0 - 30 -0.0 - 40 -0.25 - 0 -LEADER - 5 -49 - 8 -comppath - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -3.5 - 20 -1.0 - 10 -2.75 - 20 -1.0 - 0 -LEADER - 5 -4A - 8 -comppath - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -5.25 - 20 -1.0 - 10 -5.0 - 20 -0.0 - 0 -LEADER - 5 -4B - 8 -progpath - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -5.0 - 20 -1.25 - 10 -5.0 - 20 -0.0 - 0 -LEADER - 5 -4C - 8 -progpath - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -5.0 - 20 -1.25 - 10 -2.75 - 20 -1.25 - 0 -CIRCLE - 5 -4D -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -6.5 - 20 -1.0 - 30 -0.0 - 40 -0.25 - 0 -LEADER - 5 -4E - 8 -comppath - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -6.5 - 20 -1.0 - 10 -5.25 - 20 -1.0 - 0 -LEADER - 5 -4F - 8 -comppath - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -7.25 - 20 -1.0 - 10 -6.5 - 20 -1.0 - 0 -LINE - 5 -50 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.25 - 20 -2.0 - 30 -0.0 - 11 -7.25 - 21 -2.0 - 31 -0.0 - 0 -LEADER - 5 -51 - 8 -progpath - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -7.25 - 20 -1.25 - 10 -5.0 - 20 -1.25 - 0 -POINT - 5 -52 -100 -AcDbEntity -100 -AcDbPoint - 8 -progpath - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.5 - 20 -2.5 - 30 -0.0 - 0 -MTEXT - 5 -53 -100 -AcDbEntity -100 -AcDbMText - 8 -text - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.5 - 20 --0.25 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -4 - 72 -0 - 1 -\~X0\~Y0 - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LEADER - 5 -54 - 8 -text - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -5.0 - 20 -0.0 - 10 -5.25 - 20 --0.25 - 10 -5.5 - 20 --0.25 - 0 -LEADER - 5 -55 - 8 -text - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -5.1322992700729948 - 20 -0.5052107093978104 - 10 -5.5 - 20 -0.25 - 10 -5.75 - 20 -0.25 - 0 -MTEXT - 5 -56 -100 -AcDbEntity -100 -AcDbMText - 8 -text - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.75 - 20 -0.25 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -4 - 72 -0 - 1 -\~Lead\~in\~Move\P\~G42\~X0\~Y1 - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -57 -100 -AcDbEntity -100 -AcDbMText - 8 -text - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -2.25 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -5 - 72 -0 - 1 -Resulting\~Profile - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LEADER - 5 -58 - 8 -text - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -4.25 - 20 -1.0 - 10 -4.0 - 20 -0.5 - 10 -3.75 - 20 -0.5 - 0 -MTEXT - 5 -59 -100 -AcDbEntity -100 -AcDbMText - 8 -text - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.75 - 20 -0.5 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -6 - 72 -0 - 1 -Last\~Comp\~Move\~\~\PG1\~X0\~Y1\~\~ - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LEADER - 5 -5A - 8 -text - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -5.0 - 20 -1.25 - 10 -5.25 - 20 -1.5 - 10 -5.5 - 20 -1.5 - 0 -MTEXT - 5 -5B -100 -AcDbEntity -100 -AcDbMText - 8 -text - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.5 - 20 -1.5 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -4 - 72 -0 - 1 -\~X0\~Y1 - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -CIRCLE - 5 -5C -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -1.0 - 30 -0.0 - 40 -0.25 - 0 -LEADER - 5 -5D - 8 -comppath - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -5.0 - 20 -1.0 - 10 -3.5 - 20 -1.0 - 0 -LINE - 5 -5E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.75 - 20 -2.0 - 30 -0.0 - 11 -5.0 - 21 -2.0 - 31 -0.0 - 0 -ARC - 5 -5F -100 -AcDbEntity - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -5.0 - 20 -1.75 - 30 -0.0 - 40 -0.25 -100 -AcDbArc - 50 -59.9999999999999929 - 51 -90.0 - 0 -ARC - 5 -60 -100 -AcDbEntity - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -5.25 - 20 -1.75 - 30 -0.0 - 40 -0.25 -100 -AcDbArc - 50 -90.0 - 51 -120.0000000000000142 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -61 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -61 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -63 - 3 -HIDETEXT -350 -62 - 0 -DICTIONARYVAR - 5 -62 -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -63 -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/gcode/images/comp02.png b/docs/src/gcode/images/comp02.png deleted file mode 100644 index 98be1dcbf13..00000000000 Binary files a/docs/src/gcode/images/comp02.png and /dev/null differ diff --git a/docs/src/gcode/images/eight.png b/docs/src/gcode/images/eight.png deleted file mode 100644 index 1a77802dba0..00000000000 Binary files a/docs/src/gcode/images/eight.png and /dev/null differ diff --git a/docs/src/gcode/images/g2-3.dxf b/docs/src/gcode/images/g2-3.dxf deleted file mode 100644 index 3d838592e17..00000000000 --- a/docs/src/gcode/images/g2-3.dxf +++ /dev/null @@ -1,2750 +0,0 @@ -999 -dxflib 2.0.4.0 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMASZ - 40 -0.1 - 9 -$DIMGAP - 40 -0.025 - 9 -$DIMEXO - 40 -0.025 - 9 -$INSUNITS - 70 -1 - 9 -$DIMTXT - 40 -0.1 - 9 -$PLIMMAX - 10 -8.2677165354330722 - 20 -11.6929133858267722 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$DIMEXE - 40 -0.05 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -1 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -0 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -2.5 - 42 -0.625 - 43 -3.75 - 44 -1.25 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -2.5 -141 -2.5 -143 -0.03937007874016 -147 -0.625 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -43 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -0.0 - 30 -0.0 - 11 -3.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -44 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.0 - 20 -0.0 - 30 -0.0 - 11 -3.0 - 21 -2.0 - 31 -0.0 - 0 -LINE - 5 -45 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.0 - 20 -2.0 - 30 -0.0 - 11 -0.0 - 21 -2.0 - 31 -0.0 - 0 -LINE - 5 -46 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -2.0 - 30 -0.0 - 11 -0.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -47 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.0 - 20 -0.5 - 30 -0.0 - 11 -2.0 - 21 -1.0 - 31 -0.0 - 0 -LINE - 5 -48 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.0 - 20 -1.0 - 30 -0.0 - 11 -1.0 - 21 -1.5 - 31 -0.0 - 0 -LINE - 5 -49 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.0 - 20 -1.5 - 30 -0.0 - 11 -1.0 - 21 -0.5 - 31 -0.0 - 0 -ARC - 5 -4A -100 -AcDbEntity - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -2.0 - 20 -1.0 - 30 -0.0 - 40 -1.1180339887498949 -100 -AcDbArc - 50 -153.4349488229219958 - 51 -206.5650511770780042 - 0 -MTEXT - 5 -4B -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.7958387516254877 - 20 -1.4330299089726919 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -4 - 72 -0 - 1 -G3 - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -4C -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.7776332899869961 - 20 -0.5643693107932379 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -4 - 72 -0 - 1 -G2 - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LEADER - 5 -4D - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -1.0 - 20 -1.5 - 10 -1.1000000000000001 - 20 -1.6000000000000001 - 0 -LEADER - 5 -4E - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -1.0 - 20 -0.5 - 10 -1.1000000000000001 - 20 -0.4 - 0 -LEADER - 5 -4F - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -2.0 - 20 -1.0 - 10 -2.1000000000000001 - 20 -1.1000000000000001 - 0 -MTEXT - 5 -50 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.1391417425227568 - 20 -0.4109232769830949 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -4 - 72 -0 - 1 -X0\~Y0 - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -51 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.1287386215864759 - 20 -1.6306892067620287 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -4 - 72 -0 - 1 -X0\~Y1 - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -52 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.1482444733420025 - 20 -1.1209362808842653 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -4 - 72 -0 - 1 -X1\~Y0.5 - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LEADER - 5 -53 - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -0.7698309492847855 - 20 -1.2301690507152145 - 10 -0.834850455136541 - 20 -1.3706111833550065 - 0 -LEADER - 5 -54 - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -0.7724317295188556 - 20 -0.7386215864759428 - 10 -0.8244473342002601 - 20 -0.6059817945383615 - 0 -LEADER - 5 -55 - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -2.0 - 20 -1.5 - 10 -1.0 - 20 -1.5 - 0 -LEADER - 5 -56 - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -2.0 - 20 -1.0 - 10 -2.0 - 20 -1.5 - 0 -LEADER - 5 -57 - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -2.0 - 20 -0.5 - 10 -1.0 - 20 -0.5 - 0 -LEADER - 5 -58 - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -2.0 - 20 -1.0 - 10 -2.0 - 20 -0.5 - 0 -MTEXT - 5 -59 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.328998699609883 - 20 -1.4538361508452535 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -4 - 72 -0 - 1 -I\~offset\~1.0 - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5A -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.3420026007802341 - 20 -0.5591677503250976 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -4 - 72 -0 - 1 -I\~offset\~1.0 - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5B -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.0546163849154748 - 20 -0.7308192457737321 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -4 - 72 -0 - 1 -J\~offset\~0.5 - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5C -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.0546163849154748 - 20 -1.3342002600780234 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -4 - 72 -0 - 1 -J\~offset\~-0.5 - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -5D - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -5D -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -5F - 3 -HIDETEXT -350 -5E - 0 -DICTIONARYVAR - 5 -5E -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -5F -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/gcode/images/g2-3.png b/docs/src/gcode/images/g2-3.png deleted file mode 100644 index 320f1472251..00000000000 Binary files a/docs/src/gcode/images/g2-3.png and /dev/null differ diff --git a/docs/src/gcode/images/g2-3_fr.png b/docs/src/gcode/images/g2-3_fr.png deleted file mode 100644 index dfe88bb0a0f..00000000000 Binary files a/docs/src/gcode/images/g2-3_fr.png and /dev/null differ diff --git a/docs/src/gcode/images/g2.dxf b/docs/src/gcode/images/g2.dxf deleted file mode 100644 index 5ff6adc47d1..00000000000 --- a/docs/src/gcode/images/g2.dxf +++ /dev/null @@ -1,2404 +0,0 @@ -999 -dxflib 2.0.4.0 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMASZ - 40 -0.1 - 9 -$DIMGAP - 40 -0.025 - 9 -$INSUNITS - 70 -1 - 9 -$DIMEXO - 40 -0.025 - 9 -$DIMTXT - 40 -0.1 - 9 -$DIMSTYLE - 2 -Standard - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$PLIMMAX - 10 -8.2677165354330722 - 20 -11.6929133858267722 - 9 -$DIMEXE - 40 -0.05 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -1 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -0 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -2.5 - 42 -0.625 - 43 -3.75 - 44 -1.25 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -2.5 -141 -2.5 -143 -0.03937007874016 -147 -0.625 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -43 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -0.0 - 30 -0.0 - 11 -3.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -44 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.0 - 20 -0.0 - 30 -0.0 - 11 -3.0 - 21 -2.0 - 31 -0.0 - 0 -LINE - 5 -45 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.0 - 20 -2.0 - 30 -0.0 - 11 -0.0 - 21 -2.0 - 31 -0.0 - 0 -LINE - 5 -46 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -2.0 - 30 -0.0 - 11 -0.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -47 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.0 - 20 -0.5 - 30 -0.0 - 11 -2.0 - 21 -0.5 - 31 -0.0 - 0 -LINE - 5 -48 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.0 - 20 -0.5 - 30 -0.0 - 11 -2.0 - 21 -1.5 - 31 -0.0 - 0 -LINE - 5 -49 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.0 - 20 -1.5 - 30 -0.0 - 11 -1.0 - 21 -0.5 - 31 -0.0 - 0 -ARC - 5 -4A -100 -AcDbEntity - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -2.0 - 20 -0.5 - 30 -0.0 - 40 -1.0 -100 -AcDbArc - 50 -90.0 - 51 -180.0 - 0 -MTEXT - 5 -4B -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.540962288686606 - 20 -0.7652795838751626 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -4 - 72 -2 - 1 -G2\PDirection - 7 -romans2 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LEADER - 5 -4C - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -0.8179453836150845 - 20 -1.0227568270481147 - 10 -0.7373211963589077 - 20 -0.7990897269180756 - 0 -MTEXT - 5 -4D -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.1879063719115739 - 20 -0.3966189856957087 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -4 - 72 -0 - 1 -Arc\PCenter\PX1\~Y0 - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -4E -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.2074122236671005 - 20 -1.6254876462938888 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -4 - 72 -0 - 1 -End\PPosition\PX1\~Y1 - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -4F -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.5266579973992199 - 20 -0.2275682704811444 - 30 -0.0 - 40 -0.0625 - 41 -100.0 - 71 -4 - 72 -0 - 1 -Start\PPosition\PX0\~Y0 - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LEADER - 5 -50 - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -1.0 - 20 -0.5 - 10 -0.8062418725617688 - 20 -0.2925877763329 - 0 -LEADER - 5 -51 - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -2.0 - 20 -0.5 - 10 -2.1553966189856966 - 20 -0.3543563068920677 - 0 -LEADER - 5 -52 - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -2.0 - 20 -1.5 - 10 -2.1651495448634597 - 20 -1.6319895968790643 - 0 -DIMENSION - 5 -53 -100 -AcDbEntity - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -2.0 - 20 -0.2860858257477243 - 30 -0.0 - 11 -1.5 - 21 -0.3610858257477244 - 31 -0.0 - 70 -0 - 71 -5 - 72 -1 - 41 -1.0 - 42 -0.0 - 1 -\SFrom\~Start\~Position^\~I\~Offset\~=\~1; - 3 -Standard -100 -AcDbAlignedDimension - 13 -1.0 - 23 -0.5 - 33 -0.0 - 14 -2.0 - 24 -0.5 - 34 -0.0 - 50 -0.0 -100 -AcDbRotatedDimension - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -54 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -54 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -56 - 3 -HIDETEXT -350 -55 - 0 -DICTIONARYVAR - 5 -55 -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -56 -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/gcode/images/g2.png b/docs/src/gcode/images/g2.png deleted file mode 100644 index 45ea52c88d1..00000000000 Binary files a/docs/src/gcode/images/g2.png and /dev/null differ diff --git a/docs/src/gcode/images/g2_fr.png b/docs/src/gcode/images/g2_fr.png deleted file mode 100644 index 5acadc79080..00000000000 Binary files a/docs/src/gcode/images/g2_fr.png and /dev/null differ diff --git a/docs/src/gcode/images/g76-01.png b/docs/src/gcode/images/g76-01.png deleted file mode 100644 index 5da0878b82f..00000000000 Binary files a/docs/src/gcode/images/g76-01.png and /dev/null differ diff --git a/docs/src/gcode/images/g76-threads.dxf b/docs/src/gcode/images/g76-threads.dxf deleted file mode 100644 index fe24b9ef12b..00000000000 --- a/docs/src/gcode/images/g76-threads.dxf +++ /dev/null @@ -1,7028 +0,0 @@ -999 -dxflib 2.0.4.8 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMTAD - 70 -0 - 9 -$DIMTDEC - 70 -4 - 9 -$USERR4 - 40 -0.0 - 9 -$CLAYER - 8 -0 - 9 -$DIMALTZ - 70 -0 - 9 -$MENU - 1 -. - 9 -$CHAMFERA - 40 -0.5 - 9 -$UCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$USERR5 - 40 -0.0 - 9 -$SHADEDIF - 70 -70 - 9 -$TILEMODE - 70 -1 - 9 -$VISRETAIN - 70 -1 - 9 -$CMLSTYLE - 2 -Standard - 9 -$EXTMIN - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$ORTHOMODE - 70 -0 - 9 -$REGENMODE - 70 -1 - 9 -$TRACEWID - 40 -0.05 - 9 -$DIMASZ - 40 -0.13 - 9 -$DIMUPT - 70 -0 - 9 -$DIMADEC - 70 -0 - 9 -$CHAMFERB - 40 -0.5 - 9 -$UCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$OLESTARTUP -290 -0 - 9 -$DIMSHO - 70 -1 - 9 -$DIMALT - 70 -0 - 9 -$DIMSAH - 70 -0 - 9 -$DIMTFAC - 40 -1.0 - 9 -$DIMGAP - 40 -0.06 - 9 -$SKETCHINC - 40 -0.1 - 9 -$CHAMFERC - 40 -1.0 - 9 -$USRTIMER - 70 -1 - 9 -$ANGBASE - 50 -0.0 - 9 -$PUCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$CMLJUST - 70 -0 - 9 -$MEASUREMENT - 70 -0 - 9 -$ENDCAPS -280 -0 - 9 -$LIMMIN - 10 -0.0 - 20 -0.0 - 9 -$DIMTSZ - 40 -0.0 - 9 -$DIMALTTD - 70 -2 - 9 -$DIMALTRND - 40 -0.0 - 9 -$CHAMFERD - 40 -0.0 - 9 -$SPLFRAME - 70 -0 - 9 -$SURFTYPE - 70 -6 - 9 -$PUCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$LWDISPLAY -290 -1 - 9 -$VERSIONGUID - 2 -{FAEB1C32-E019-11D5-929B-00C0DF256EC4} - 9 -$DWGCODEPAGE - 3 -ANSI_1252 - 9 -$LUNITS - 70 -2 - 9 -$AUPREC - 70 -0 - 9 -$SPLINESEGS - 70 -8 - 9 -$SURFTAB1 - 70 -6 - 9 -$CELWEIGHT -370 --1 - 9 -$INSBASE - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMRND - 40 -0.0 - 9 -$DIMCEN - 40 -0.09 - 9 -$DIMDSEP - 70 -46 - 9 -$ELEVATION - 40 -0.0 - 9 -$SKPOLY - 70 -0 - 9 -$TDUCREATE - 40 -2455286.5277380901388824 - 9 -$TDUUPDATE - 40 -2455286.5277381017804146 - 9 -$SURFTAB2 - 70 -6 - 9 -$UCSORTHOVIEW - 70 -0 - 9 -$USERI1 - 70 -0 - 9 -$UNITMODE - 70 -0 - 9 -$PSTYLEMODE -290 -1 - 9 -$EXTMAX - 10 -11.0 - 20 -8.5 - 30 -0.0 - 9 -$FILLMODE - 70 -1 - 9 -$TEXTSIZE - 40 -0.125 - 9 -$DIMEXO - 40 -0.05 - 9 -$PELEVATION - 40 -0.0 - 9 -$UCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$UCSORGRIGHT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$USERI2 - 70 -0 - 9 -$INSUNITS - 70 -1 - 9 -$DIMSCALE - 40 -1.0 - 9 -$DIMDLE - 40 -0.0 - 9 -$DIMZIN - 70 -0 - 9 -$DIMTOLJ - 70 -1 - 9 -$DIMTZIN - 70 -0 - 9 -$DIMLWD - 70 --2 - 9 -$TDUSRTIMER - 40 -0.0000000116 - 9 -$ANGDIR - 70 -0 - 9 -$SURFU - 70 -6 - 9 -$PUCSORGBOTTOM - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$USERI3 - 70 -0 - 9 -$JOINSTYLE -280 -0 - 9 -$ACADMAINTVER - 70 -6 - 9 -$LIMMAX - 10 -11.0 - 20 -8.5 - 9 -$QTEXTMODE - 70 -0 - 9 -$DIMJUST - 70 -0 - 9 -$DIMALTTZ - 70 -0 - 9 -$DIMATFIT - 70 -3 - 9 -$DIMLUNIT - 70 -2 - 9 -$DIMLWE - 70 --2 - 9 -$SURFV - 70 -6 - 9 -$USERI4 - 70 -0 - 9 -$WORLDVIEW - 70 -1 - 9 -$ATTMODE - 70 -1 - 9 -$DIMTXT - 40 -0.125 - 9 -$DIMLIM - 70 -0 - 9 -$DIMSE1 - 70 -0 - 9 -$DIMAZIN - 70 -0 - 9 -$THICKNESS - 40 -0.0 - 9 -$LIMCHECK - 70 -0 - 9 -$PDMODE - 70 -0 - 9 -$UCSORGTOP - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$USERI5 - 70 -0 - 9 -$PROXYGRAPHICS - 70 -1 - 9 -$EXTNAMES -290 -1 - 9 -$CELTYPE - 6 -ByLayer - 9 -$DIMTOH - 70 -1 - 9 -$DIMSE2 - 70 -0 - 9 -$DIMLFAC - 40 -0.0625 - 9 -$DIMSOXD - 70 -0 - 9 -$LUPREC - 70 -3 - 9 -$TDINDWG - 40 -0.0000000116 - 9 -$SPLINETYPE - 70 -6 - 9 -$PUCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PEXTMIN - 10 -100000000000000000000.0 - 20 -100000000000000000000.0 - 30 -100000000000000000000.0 - 9 -$PEXTMAX - 10 --100000000000000000000.0 - 20 --100000000000000000000.0 - 30 --100000000000000000000.0 - 9 -$XEDIT -290 -1 - 9 -$CECOLOR - 62 -256 - 9 -$DISPSILH - 70 -0 - 9 -$DIMDLI - 40 -0.38 - 9 -$DIMTM - 40 -0.0 - 9 -$DIMASO - 70 -1 - 9 -$DIMTVP - 40 -0.0 - 9 -$DIMSTYLE - 2 -Standard - 9 -$DIMFRAC - 70 -0 - 9 -$PLINEWID - 40 -0.0 - 9 -$PUCSORGRIGHT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PLIMCHECK - 70 -0 - 9 -$FINGERPRINTGUID - 2 -{A07C9886-C5C4-4CDB-8CAA-6D12BA58FDDB} - 9 -$PSVPSCALE - 40 -0.0 - 9 -$LTSCALE - 40 -1.0 - 9 -$DIMTIH - 70 -1 - 9 -$DIMALTD - 70 -2 - 9 -$DIMCLRT - 70 -0 - 9 -$DIMDEC - 70 -4 - 9 -$DIMALTU - 70 -2 - 9 -$FILLETRAD - 40 -0.5 - 9 -$TDUPDATE - 40 -2455286.3194047678261995 - 9 -$UCSORGLEFT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$UCSORGBACK - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$MAXACTVP - 70 -64 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$PLIMMAX - 10 -12.0 - 20 -9.0 - 9 -$TREEDEPTH - 70 -3020 - 9 -$CELTSCALE - 40 -1.0 - 9 -$DIMEXE - 40 -0.125 - 9 -$DIMCLRD - 70 -0 - 9 -$DIMTXSTY - 7 -Standard - 9 -$PDSIZE - 40 --1.0 - 9 -$PUCSORTHOVIEW - 70 -0 - 9 -$USERR1 - 40 -0.0 - 9 -$PINSBASE - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$CMLSCALE - 40 -1.0 - 9 -$CEPSNTYPE -380 -0 - 9 -$TEXTSTYLE - 7 -Standard - 9 -$DIMTP - 40 -0.0 - 9 -$DIMTOL - 70 -0 - 9 -$DIMALTF - 40 -25.3999999999999986 - 9 -$DIMTOFL - 70 -0 - 9 -$DIMCLRE - 70 -0 - 9 -$DIMSD1 - 70 -0 - 9 -$DIMAUNIT - 70 -0 - 9 -$DIMTMOVE - 70 -0 - 9 -$TDCREATE - 40 -2455286.3194047571159899 - 9 -$UCSORGFRONT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PUCSORGTOP - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$USERR2 - 40 -0.0 - 9 -$SHADEDGE - 70 -3 - 9 -$PLINEGEN - 70 -0 - 9 -$PSLTSCALE - 70 -1 - 9 -$MIRRTEXT - 70 -1 - 9 -$DIMTIX - 70 -0 - 9 -$DIMSD2 - 70 -0 - 9 -$AUNITS - 70 -0 - 9 -$UCSORGBOTTOM - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PUCSORGLEFT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PUCSORGFRONT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PUCSORGBACK - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$USERR3 - 40 -0.0 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -1 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 --3 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -0.75 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -0.13 - 42 -0.05 - 43 -3.75 - 44 -0.125 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -0.125 -141 -2.5 -143 -0.03937007874016 -147 -0.06 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -BLOCK_RECORD - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*D1 -340 -0 - 0 -BLOCK_RECORD - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*D2 -340 -0 - 0 -BLOCK_RECORD - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*D3 -340 -0 - 0 -BLOCK_RECORD - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*D4 -340 -0 - 0 -BLOCK_RECORD - 5 -47 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -SW_NOTE_0 -340 -0 - 0 -BLOCK_RECORD - 5 -48 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -SW_NOTE_1 -340 -0 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -49 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*D1 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*D1 - 1 - - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -3.9734312557 - 20 -2.465030928 - 30 -0.0 - 11 -3.9734312557 - 21 -2.0876687233000002 - 31 -0.0 - 0 -LINE - 5 -4B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.9734312557000004 - 20 -2.465030928 - 30 -0.0 - 11 -7.9734312557000004 - 21 -2.0876687233000002 - 31 -0.0 - 0 -LINE - 5 -4C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -3.9734312557 - 20 -2.2126687233000002 - 30 -0.0 - 11 -5.0803672253999999 - 21 -2.2126687233000002 - 31 -0.0 - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.9734312557000004 - 20 -2.2126687233000002 - 30 -0.0 - 11 -6.6400484678999998 - 21 -2.2126687233000002 - 31 -0.0 - 0 -MTEXT - 5 -4E -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.1428672253999999 - 20 -2.1754404108999998 - 30 -0.0 - 40 -0.125 - 41 -0.0 - 71 -1 - 72 -2 - 1 -Length\~of\~Threads - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -4F -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.8358405495000003 - 20 -2.3738022045 - 30 -0.0 - 40 -0.125 - 41 -0.0 - 71 -1 - 72 -2 - 1 -Z - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -ENDBLK - 5 -50 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -51 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*D2 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*D2 - 1 - - 0 -LINE - 5 -52 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.8734163701000002 - 20 -3.3150309280000001 - 30 -0.0 - 11 -5.5314735049000001 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -53 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.6564735049000001 - 20 -2.5150309279999998 - 30 -0.0 - 11 -5.6564735049000001 - 21 -2.2650309279999998 - 31 -0.0 - 0 -LINE - 5 -54 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.6564735049000001 - 20 -3.3150309280000001 - 30 -0.0 - 11 -5.6564735049000001 - 21 -3.5650309280000001 - 31 -0.0 - 0 -MTEXT - 5 -55 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.4542336702999998 - 20 -2.8367746503000002 - 30 -0.0 - 40 -0.125 - 41 -0.0 - 71 -1 - 72 -2 - 1 -Peak - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -56 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.6256104891999996 - 20 -3.2334982375000001 - 30 -0.0 - 40 -0.125 - 41 -0.0 - 71 -1 - 72 -2 - 1 --I - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -57 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.3925402292999998 - 20 -3.0351364438999999 - 30 -0.0 - 40 -0.125 - 41 -0.0 - 71 -1 - 72 -2 - 1 -Thread - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -ENDBLK - 5 -58 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -59 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*D3 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*D3 - 1 - - 0 -LINE - 5 -5A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.5734312557000001 - 20 -3.740342928 - 30 -0.0 - 11 -5.5734312557000001 - 21 -4.5188088262999999 - 31 -0.0 - 0 -LINE - 5 -5B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -6.3734312556999999 - 20 -3.740342928 - 30 -0.0 - 11 -6.3734312556999999 - 21 -4.5188088262999999 - 31 -0.0 - 0 -LINE - 5 -5C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.5734312557000001 - 20 -4.3938088262999999 - 30 -0.0 - 11 -5.3234312557000001 - 21 -4.3938088262999999 - 31 -0.0 - 0 -LINE - 5 -5D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -6.3734312556999999 - 20 -4.3938088262999999 - 30 -0.0 - 11 -6.6234312556999999 - 21 -4.3938088262999999 - 31 -0.0 - 0 -MTEXT - 5 -5E -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.7737348642999997 - 20 -4.2573996170999999 - 30 -0.0 - 40 -0.125 - 41 -0.0 - 71 -1 - 72 -2 - 1 -Pitch - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5F -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.9389068177000004 - 20 -4.6541232044000003 - 30 -0.0 - 40 -0.125 - 41 -0.0 - 71 -1 - 72 -2 - 1 -P - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -60 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.7086481374 - 20 -4.4557614107000001 - 30 -0.0 - 40 -0.125 - 41 -0.0 - 71 -1 - 72 -2 - 1 -Thread - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -ENDBLK - 5 -61 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -62 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*D4 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*D4 - 1 - - 0 -LINE - 5 -63 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -6.8734461412999996 - 20 -3.3150309280000001 - 30 -0.0 - 11 -8.4669217223000004 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -64 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.2234312557000004 - 20 -3.8057829280000002 - 30 -0.0 - 11 -8.4669217223000004 - 21 -3.8057829280000002 - 31 -0.0 - 0 -LINE - 5 -65 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -8.3419217223000004 - 20 -3.3150309280000001 - 30 -0.0 - 11 -8.3419217223000004 - 21 -3.0650309280000001 - 31 -0.0 - 0 -LINE - 5 -66 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -8.3419217223000004 - 20 -3.8057829280000002 - 30 -0.0 - 11 -8.3419217223000004 - 21 -4.0557829280000002 - 31 -0.0 - 0 -MTEXT - 5 -67 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.7872649181 - 20 -3.5433220824 - 30 -0.0 - 40 -0.125 - 41 -0.0 - 71 -1 - 72 -2 - 1 -Thread\~Depth - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -68 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -8.3083440778999993 - 20 -3.7416838760000002 - 30 -0.0 - 40 -0.125 - 41 -0.0 - 71 -1 - 72 -2 - 1 -K - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -ENDBLK - 5 -69 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -6A -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -SW_NOTE_0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -SW_NOTE_0 - 1 - - 0 -MTEXT - 5 -6B -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -0 -370 -0 - 6 -CONTINUOUS - 10 -0.1181593222 - 20 -0.0606194548 - 30 -0.0 - 40 -0.125 - 41 -0.0 - 71 -1 - 72 -2 - 1 -Initial - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -6C -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -0 -370 -0 - 6 -CONTINUOUS - 10 -0.0197218261 - 20 --0.1037506197 - 30 -0.0 - 40 -0.125 - 41 -0.0 - 71 -1 - 72 -2 - 1 -Position - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -6D -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -0 -370 -0 - 6 -CONTINUOUS - 10 -0.1690273729 - 20 --0.2681206942 - 30 -0.0 - 40 -0.125 - 41 -0.0 - 71 -1 - 72 -2 - 1 -X&Z - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -ENDBLK - 5 -6E -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -6F -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -SW_NOTE_1 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -SW_NOTE_1 - 1 - - 0 -MTEXT - 5 -70 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -0 -370 -0 - 6 -CONTINUOUS - 10 -0.14150581 - 20 -0.0606000837 - 30 -0.0 - 40 -0.125 - 41 -0.0 - 71 -1 - 72 -2 - 1 -Final - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -71 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -0 -370 -0 - 6 -CONTINUOUS - 10 -0.0197176186 - 20 --0.1037699908 - 30 -0.0 - 40 -0.125 - 41 -0.0 - 71 -1 - 72 -2 - 1 -Position - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -ENDBLK - 5 -72 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -73 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -7.5234163700999996 - 20 -3.3150309280000001 - 30 -0.0 - 11 -7.2734052282999997 - 21 -3.748062928 - 31 -0.0 - 0 -ARC - 5 -74 -100 -AcDbEntity - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS -100 -AcDbCircle - 10 -7.1734312556999997 - 20 -3.6903429280000002 - 30 -0.0 - 40 -0.1154400000000007 -100 -AcDbArc - 50 -29.9999999999999964 - 51 -150.0 - 0 -LINE - 5 -75 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -7.0734572830999998 - 20 -3.748062928 - 30 -0.0 - 11 -6.8234461412999998 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -76 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -6.7234163700999998 - 20 -3.3150309280000001 - 30 -0.0 - 11 -6.8234461412999998 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -77 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -6.7234163700999998 - 20 -3.3150309280000001 - 30 -0.0 - 11 -6.4734052282999999 - 21 -3.748062928 - 31 -0.0 - 0 -LINE - 5 -78 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -6.2734572830999999 - 20 -3.748062928 - 30 -0.0 - 11 -6.0234461413 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -79 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -5.9234163701 - 20 -3.3150309280000001 - 30 -0.0 - 11 -6.0234461413 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -7A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -5.9234163701 - 20 -3.3150309280000001 - 30 -0.0 - 11 -5.6734052283 - 21 -3.748062928 - 31 -0.0 - 0 -ARC - 5 -7B -100 -AcDbEntity - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS -100 -AcDbCircle - 10 -5.5734312557000001 - 20 -3.6903429280000002 - 30 -0.0 - 40 -0.1154400000000003 -100 -AcDbArc - 50 -29.9999999999999964 - 51 -150.0 - 0 -LINE - 5 -7C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -5.4734572831000001 - 20 -3.748062928 - 30 -0.0 - 11 -5.2234461413000002 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -7D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -5.1234163701000002 - 20 -3.3150309280000001 - 30 -0.0 - 11 -5.2234461413000002 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -7E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -5.1234163701000002 - 20 -3.3150309280000001 - 30 -0.0 - 11 -4.8734052283000002 - 21 -3.748062928 - 31 -0.0 - 0 -ARC - 5 -7F -100 -AcDbEntity - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS -100 -AcDbCircle - 10 -4.7734312557000003 - 20 -3.6903429280000002 - 30 -0.0 - 40 -0.1154400000000003 -100 -AcDbArc - 50 -29.9999999999999964 - 51 -150.0 - 0 -LINE - 5 -80 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -4.6734572831000003 - 20 -3.748062928 - 30 -0.0 - 11 -4.4234461413000004 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -81 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -4.3234163701000003 - 20 -3.3150309280000001 - 30 -0.0 - 11 -4.0734052283000004 - 21 -3.748062928 - 31 -0.0 - 0 -ARC - 5 -82 -100 -AcDbEntity - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS -100 -AcDbCircle - 10 -3.9734312557 - 20 -3.6903429280000002 - 30 -0.0 - 40 -0.1154400000000005 -100 -AcDbArc - 50 -29.9999999999999964 - 51 -150.0 - 0 -LINE - 5 -83 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -3.8734572831 - 20 -3.748062928 - 30 -0.0 - 11 -3.6234461413000001 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -84 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -3.6234163701000002 - 20 -5.3150309279999997 - 30 -0.0 - 11 -3.6234163701000002 - 21 -3.3150309280000001 - 31 -0.0 - 0 -SPLINE - 5 -85 - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS -100 -AcDbEntity -100 -AcDbSpline - 70 -8 - 71 -3 - 72 -10 - 73 -6 - 74 -0 - 40 -0.0 - 40 -0.0 - 40 -0.0 - 40 -0.0 - 40 -0.3333333333333333 - 40 -0.6666666666666666 - 40 -1.0 - 40 -1.0 - 40 -1.0 - 40 -1.0 - 10 -7.6234163701067654 - 20 -5.315030927997066 - 30 -0.0 - 10 -7.1914396930408184 - 20 -5.4898409671301174 - 30 -0.0 - 10 -6.140369262564259 - 20 -5.9151825951346089 - 30 -0.0 - 10 -4.8638867671009924 - 20 -4.3934465329792047 - 30 -0.0 - 10 -3.964777766419405 - 20 -5.0614228316930134 - 30 -0.0 - 10 -3.6234163701067641 - 20 -5.3150309279970642 - 30 -0.0 - 0 -LINE - 5 -86 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -7.6234163701000002 - 20 -3.3950309280000002 - 30 -0.0 - 11 -7.6234163701000002 - 21 -5.3150309279999997 - 31 -0.0 - 0 -LINE - 5 -87 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -7.5434163701000001 - 20 -3.3150309280000001 - 30 -0.0 - 11 -7.6234163701000002 - 21 -3.3950309280000002 - 31 -0.0 - 0 -LINE - 5 -88 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -7.5234163700999996 - 20 -3.3150309280000001 - 30 -0.0 - 11 -7.5434163701000001 - 21 -3.3150309280000001 - 31 -0.0 - 0 -ARC - 5 -89 -100 -AcDbEntity - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS -100 -AcDbCircle - 10 -6.3734312556999999 - 20 -3.6903429280000002 - 30 -0.0 - 40 -0.1154399999999999 -100 -AcDbArc - 50 -29.9999999999999964 - 51 -150.0 - 0 -LINE - 5 -8A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -3.6234163701000002 - 20 -3.3150309280000001 - 30 -0.0 - 11 -3.6234461413000001 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -8B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -15 - 6 -CONTINUOUS - 10 -4.3234163701000003 - 20 -3.3150309280000001 - 30 -0.0 - 11 -4.4234461413000004 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -8C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -3.9734312557 - 20 -3.6903429280000002 - 30 -0.0 - 11 -3.9734312557 - 21 -2.5150309279999998 - 31 -0.0 - 0 -LINE - 5 -8D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -3.9734312557 - 20 -2.5150309279999998 - 30 -0.0 - 11 -7.9734312557000004 - 21 -2.5150309279999998 - 31 -0.0 - 0 -LEADER - 5 -8E - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -7.9734312557000004 - 20 -2.5150309279999998 - 10 -8.1774950553999997 - 20 -2.8593277426000001 - 10 -8.4274950553999997 - 20 -2.8593277426000001 - 0 -LEADER - 5 -8F - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -3.9734312557 - 20 -2.5150309279999998 - 10 -4.3141906800000003 - 20 -2.9332044223999998 - 10 -4.5641906800000003 - 20 -2.9332044223999998 - 0 -LEADER - 5 -90 - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -6.4810199511000004 - 20 -2.5150309279999998 - 10 -6.7386449190000004 - 20 -2.8885100006000002 - 10 -6.9886449190000004 - 20 -2.8885100006000002 - 0 -LINE - 5 -91 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.5734312557000001 - 20 -4.3938088262999999 - 30 -0.0 - 11 -6.3734312556999999 - 21 -4.3938088262999999 - 31 -0.0 - 0 -LINE - 5 -92 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.5734312557000001 - 20 -4.3938088262999999 - 30 -0.0 - 11 -5.7034312557 - 21 -4.4154556285041879 - 31 -0.0 - 0 -LINE - 5 -93 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.7034312557 - 20 -4.4154556285041879 - 30 -0.0 - 11 -5.7034312557 - 21 -4.3721620240958119 - 31 -0.0 - 0 -LINE - 5 -94 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.7034312557 - 20 -4.3721620240958119 - 30 -0.0 - 11 -5.5734312557000001 - 21 -4.3938088262999999 - 31 -0.0 - 0 -LINE - 5 -95 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -6.3734312556999999 - 20 -4.3938088262999999 - 30 -0.0 - 11 -6.2434312557 - 21 -4.3721620240958119 - 31 -0.0 - 0 -LINE - 5 -96 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -6.2434312557 - 20 -4.3721620240958119 - 30 -0.0 - 11 -6.2434312557 - 21 -4.4154556285041879 - 31 -0.0 - 0 -LINE - 5 -97 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -6.2434312557 - 20 -4.4154556285041879 - 30 -0.0 - 11 -6.3734312556999999 - 21 -4.3938088262999999 - 31 -0.0 - 0 -LINE - 5 -98 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.5734312557000001 - 20 -3.740342928 - 30 -0.0 - 11 -5.5734312557000001 - 21 -4.5188088262999999 - 31 -0.0 - 0 -LINE - 5 -99 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -6.3734312556999999 - 20 -3.740342928 - 30 -0.0 - 11 -6.3734312556999999 - 21 -4.5188088262999999 - 31 -0.0 - 0 -MTEXT - 5 -9A -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.9569235647500554 - 20 -4.0806518613010967 - 30 -0.0 - 40 -0.1 - 41 -30.0 - 71 -5 - 72 -2 - 1 -P\PThread\PPitch - 7 -standard - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -9B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.6564735049000001 - 20 -2.5150309279999998 - 30 -0.0 - 11 -5.6564735049000001 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -9C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.6564735049000001 - 20 -2.5150309279999998 - 30 -0.0 - 11 -5.6348267026958121 - 21 -2.6450309279999997 - 31 -0.0 - 0 -LINE - 5 -9D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.6348267026958121 - 20 -2.6450309279999997 - 30 -0.0 - 11 -5.6781203071041881 - 21 -2.6450309279999997 - 31 -0.0 - 0 -LINE - 5 -9E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.6781203071041881 - 20 -2.6450309279999997 - 30 -0.0 - 11 -5.6564735049000001 - 21 -2.5150309279999998 - 31 -0.0 - 0 -LINE - 5 -9F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.6564735049000001 - 20 -3.3150309280000001 - 30 -0.0 - 11 -5.6781203071041881 - 21 -3.1850309280000002 - 31 -0.0 - 0 -LINE - 5 -A0 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.6781203071041881 - 20 -3.1850309280000002 - 30 -0.0 - 11 -5.6348267026958121 - 21 -3.1850309280000002 - 31 -0.0 - 0 -LINE - 5 -A1 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.6348267026958121 - 20 -3.1850309280000002 - 30 -0.0 - 11 -5.6564735049000001 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -A2 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -4.0234312557000003 - 20 -2.5150309279999998 - 30 -0.0 - 11 -5.7814735049000001 - 21 -2.5150309279999998 - 31 -0.0 - 0 -LINE - 5 -A3 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.8734163701000002 - 20 -3.3150309280000001 - 30 -0.0 - 11 -5.5314735049000001 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -A4 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -8.3419217223000004 - 20 -3.3150309280000001 - 30 -0.0 - 11 -8.3419217223000004 - 21 -3.8057829280000002 - 31 -0.0 - 0 -LINE - 5 -A5 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -8.3419217223000004 - 20 -3.3150309280000001 - 30 -0.0 - 11 -8.3202749200958124 - 21 -3.445030928 - 31 -0.0 - 0 -LINE - 5 -A6 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -8.3202749200958124 - 20 -3.445030928 - 30 -0.0 - 11 -8.3635685245041884 - 21 -3.445030928 - 31 -0.0 - 0 -LINE - 5 -A7 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -8.3635685245041884 - 20 -3.445030928 - 30 -0.0 - 11 -8.3419217223000004 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -A8 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -8.3419217223000004 - 20 -3.8057829280000002 - 30 -0.0 - 11 -8.3635685245041884 - 21 -3.6757829280000003 - 31 -0.0 - 0 -LINE - 5 -A9 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -8.3635685245041884 - 20 -3.6757829280000003 - 30 -0.0 - 11 -8.3202749200958124 - 21 -3.6757829280000003 - 31 -0.0 - 0 -LINE - 5 -AA -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -8.3202749200958124 - 20 -3.6757829280000003 - 30 -0.0 - 11 -8.3419217223000004 - 21 -3.8057829280000002 - 31 -0.0 - 0 -LINE - 5 -AB -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -6.8734461412999996 - 20 -3.3150309280000001 - 30 -0.0 - 11 -8.4669217223000004 - 21 -3.3150309280000001 - 31 -0.0 - 0 -LINE - 5 -AC -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.2234312556999996 - 20 -3.8057829280000002 - 30 -0.0 - 11 -8.4669217223000004 - 21 -3.8057829280000002 - 31 -0.0 - 0 -LINE - 5 -AD -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.0083847922000002 - 20 -2.8491951877999999 - 30 -0.0 - 11 -7.0417181255333334 - 21 -2.8491951877999999 - 31 -0.0 - 0 -ARC - 5 -AE -100 -AcDbEntity - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS -100 -AcDbCircle - 10 -7.0417181255333334 - 20 -2.8714174100222221 - 30 -0.0 - 40 -0.0222222222222222 -100 -AcDbArc - 50 -270.0 - 51 -0.0 - 0 -LINE - 5 -AF -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.0639403477555556 - 20 -2.8714174100222221 - 30 -0.0 - 11 -7.0639403477555556 - 21 -2.9269729655777779 - 31 -0.0 - 0 -ARC - 5 -B0 -100 -AcDbEntity - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS -100 -AcDbCircle - 10 -7.0417181255333334 - 20 -2.9269729655777779 - 30 -0.0 - 40 -0.0222222222222222 -100 -AcDbArc - 50 -0.0 - 51 -90.0 - 0 -LINE - 5 -B1 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.0417181255333334 - 20 -2.9491951878 - 30 -0.0 - 11 -7.0083847922000002 - 21 -2.9491951878 - 31 -0.0 - 0 -LINE - 5 -B2 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.0083847922000002 - 20 -2.9491951878 - 30 -0.0 - 11 -7.0083847922000002 - 21 -2.8491951877999999 - 31 -0.0 - 0 -LINE - 5 -B3 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.0972736810888888 - 20 -2.8491951877999999 - 30 -0.0 - 11 -7.0972736810888888 - 21 -2.9158618544666668 - 31 -0.0 - 0 -LINE - 5 -B4 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.0972736810888888 - 20 -2.9158618544666668 - 30 -0.0 - 11 -7.1194959033111109 - 21 -2.9158618544666668 - 31 -0.0 - 0 -ARC - 5 -B5 -100 -AcDbEntity - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS -100 -AcDbCircle - 10 -7.1194959033111109 - 20 -2.9047507433555553 - 30 -0.0 - 40 -0.0111111111111111 -100 -AcDbArc - 50 -0.0 - 51 -90.0 - 0 -LINE - 5 -B6 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.1639403477555561 - 20 -2.8491951877999999 - 30 -0.0 - 11 -7.1639403477555561 - 21 -2.9158618544666668 - 31 -0.0 - 0 -LINE - 5 -B7 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.1639403477555561 - 20 -2.9436396322444445 - 30 -0.0 - 11 -7.1639403477555561 - 21 -2.9491951878 - 31 -0.0 - 0 -LINE - 5 -B8 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.1972736810888893 - 20 -2.9158618544666668 - 30 -0.0 - 11 -7.2194959033111115 - 21 -2.8491951877999999 - 31 -0.0 - 0 -LINE - 5 -B9 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.2194959033111115 - 20 -2.8491951877999999 - 30 -0.0 - 11 -7.2417181255333336 - 21 -2.9158618544666668 - 31 -0.0 - 0 -LINE - 5 -BA -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.2750514588666668 - 20 -2.8825285211333331 - 30 -0.0 - 11 -7.3194959033111111 - 21 -2.8825285211333331 - 31 -0.0 - 0 -LINE - 5 -BB -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.3194959033111111 - 20 -2.8825285211333331 - 30 -0.0 - 11 -7.3194959033111111 - 21 -2.8936396322444442 - 31 -0.0 - 0 -ARC - 5 -BC -100 -AcDbEntity - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS -100 -AcDbCircle - 10 -7.297273681088889 - 20 -2.8936396322444442 - 30 -0.0 - 40 -0.0222222222222222 -100 -AcDbArc - 50 -0.0 - 51 -180.0 - 0 -LINE - 5 -BD -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.2750514588666668 - 20 -2.8936396322444442 - 30 -0.0 - 11 -7.2750514588666668 - 21 -2.8658618544666665 - 31 -0.0 - 0 -ARC - 5 -BE -100 -AcDbEntity - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS -100 -AcDbCircle - 10 -7.2917181255333334 - 20 -2.8658618544666665 - 30 -0.0 - 40 -0.0166666666666667 -100 -AcDbArc - 50 -180.0 - 51 -270.0 - 0 -LINE - 5 -BF -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.2917181255333334 - 20 -2.8491951877999999 - 30 -0.0 - 11 -7.3194959033111111 - 21 -2.8491951877999999 - 31 -0.0 - 0 -LINE - 5 -C0 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.4278292366444445 - 20 -2.9491951878 - 30 -0.0 - 11 -7.4278292366444445 - 21 -2.8491951877999999 - 31 -0.0 - 0 -LINE - 5 -C1 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.4278292366444445 - 20 -2.8491951877999999 - 30 -0.0 - 11 -7.4722736810888888 - 21 -2.8491951877999999 - 31 -0.0 - 0 -LINE - 5 -C2 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.5056070144222229 - 20 -2.8491951877999999 - 30 -0.0 - 11 -7.5056070144222229 - 21 -2.9158618544666668 - 31 -0.0 - 0 -LINE - 5 -C3 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.5056070144222229 - 20 -2.9436396322444445 - 30 -0.0 - 11 -7.5056070144222229 - 21 -2.9491951878 - 31 -0.0 - 0 -LINE - 5 -C4 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.5389403477555561 - 20 -2.8491951877999999 - 30 -0.0 - 11 -7.5389403477555561 - 21 -2.9158618544666668 - 31 -0.0 - 0 -LINE - 5 -C5 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.5389403477555561 - 20 -2.9158618544666668 - 30 -0.0 - 11 -7.5667181255333338 - 21 -2.9158618544666668 - 31 -0.0 - 0 -ARC - 5 -C6 -100 -AcDbEntity - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS -100 -AcDbCircle - 10 -7.5667181255333338 - 20 -2.8991951877999997 - 30 -0.0 - 40 -0.0166666666666667 -100 -AcDbArc - 50 -0.0 - 51 -90.0 - 0 -LINE - 5 -C7 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.5833847922000004 - 20 -2.8991951877999997 - 30 -0.0 - 11 -7.5833847922000004 - 21 -2.8491951877999999 - 31 -0.0 - 0 -LINE - 5 -C8 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.6167181255333336 - 20 -2.8825285211333331 - 30 -0.0 - 11 -7.6611625699777779 - 21 -2.8825285211333331 - 31 -0.0 - 0 -LINE - 5 -C9 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.6611625699777779 - 20 -2.8825285211333331 - 30 -0.0 - 11 -7.6611625699777779 - 21 -2.8936396322444442 - 31 -0.0 - 0 -ARC - 5 -CA -100 -AcDbEntity - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS -100 -AcDbCircle - 10 -7.6389403477555557 - 20 -2.8936396322444442 - 30 -0.0 - 40 -0.0222222222222222 -100 -AcDbArc - 50 -0.0 - 51 -180.0 - 0 -LINE - 5 -CB -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.6167181255333336 - 20 -2.8936396322444442 - 30 -0.0 - 11 -7.6167181255333336 - 21 -2.8658618544666665 - 31 -0.0 - 0 -ARC - 5 -CC -100 -AcDbEntity - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS -100 -AcDbCircle - 10 -7.6333847922000002 - 20 -2.8658618544666665 - 30 -0.0 - 40 -0.0166666666666667 -100 -AcDbArc - 50 -180.0 - 51 -270.0 - 0 -LINE - 5 -CD -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.6333847922000002 - 20 -2.8491951877999999 - 30 -0.0 - 11 -7.6611625699777779 - 21 -2.8491951877999999 - 31 -0.0 - 0 -LINE - 5 -CE -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -3.9734312557000004 - 20 -2.2126687233000002 - 30 -0.0 - 11 -7.9734312557000004 - 21 -2.2126687233000002 - 31 -0.0 - 0 -LINE - 5 -CF -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -3.9734312557000004 - 20 -2.2126687233000002 - 30 -0.0 - 11 -4.1034312557000003 - 21 -2.2343155255041878 - 31 -0.0 - 0 -LINE - 5 -D0 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -4.1034312557000003 - 20 -2.2343155255041878 - 30 -0.0 - 11 -4.1034312557000003 - 21 -2.1910219210958126 - 31 -0.0 - 0 -LINE - 5 -D1 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -4.1034312557000003 - 20 -2.1910219210958126 - 30 -0.0 - 11 -3.9734312557000004 - 21 -2.2126687233000002 - 31 -0.0 - 0 -LINE - 5 -D2 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.9734312557000004 - 20 -2.2126687233000002 - 30 -0.0 - 11 -7.8434312557000005 - 21 -2.1910219210958126 - 31 -0.0 - 0 -LINE - 5 -D3 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.8434312557000005 - 20 -2.1910219210958126 - 30 -0.0 - 11 -7.8434312557000005 - 21 -2.2343155255041878 - 31 -0.0 - 0 -LINE - 5 -D4 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.8434312557000005 - 20 -2.2343155255041878 - 30 -0.0 - 11 -7.9734312557000004 - 21 -2.2126687233000002 - 31 -0.0 - 0 -LINE - 5 -D5 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -3.9734312557 - 20 -2.465030928 - 30 -0.0 - 11 -3.9734312557000004 - 21 -2.0876687233000002 - 31 -0.0 - 0 -LINE - 5 -D6 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -7.9734312557000004 - 20 -2.465030928 - 30 -0.0 - 11 -7.9734312557000004 - 21 -2.0876687233000002 - 31 -0.0 - 0 -MTEXT - 5 -D7 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.9069990768991225 - 20 -2.9470874457500917 - 30 -0.0 - 40 -0.1 - 41 -30.0 - 71 -5 - 72 -2 - 1 --I\PThread\PPeak - 7 -standard - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -D8 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -8.3494244412530971 - 20 -4.0556644184472264 - 30 -0.0 - 40 -0.1 - 41 -30.0 - 71 -5 - 72 -2 - 1 -K\PThread\~Depth - 7 -standard - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -D9 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -8.5456593222000006 - 20 -2.9199494547999998 - 30 -0.0 - 40 -0.1 - 41 -0.0 - 71 -1 - 72 -2 - 1 -Initial\PPosition\PX\~&\~Z - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -DA -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -4.5972925512079135 - 20 -3.0588420389752518 - 30 -0.0 - 40 -0.1 - 41 -0.0 - 71 -1 - 72 -2 - 1 -Cycle\PEnd\~Position - 7 -SLDTEXTSTYLE0 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -DB -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 -0 - 6 -CONTINUOUS - 10 -5.9734312557000004 - 20 -2.2122943163236251 - 30 -0.0 - 40 -0.1 - 41 -30.0 - 71 -5 - 72 -2 - 1 -Z\PLength\~of\~Threads - 7 -standard - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -DC - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -DC -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -DE - 3 -HIDETEXT -350 -DD - 0 -DICTIONARYVAR - 5 -DD -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -DE -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/gcode/images/g76-threads.png b/docs/src/gcode/images/g76-threads.png deleted file mode 100644 index dba5490738c..00000000000 Binary files a/docs/src/gcode/images/g76-threads.png and /dev/null differ diff --git a/docs/src/gcode/images/g76-threads_fr.png b/docs/src/gcode/images/g76-threads_fr.png deleted file mode 100644 index 2e3e65f87f5..00000000000 Binary files a/docs/src/gcode/images/g76-threads_fr.png and /dev/null differ diff --git a/docs/src/gcode/images/g76.dxf b/docs/src/gcode/images/g76.dxf deleted file mode 100644 index 316ce612e1b..00000000000 --- a/docs/src/gcode/images/g76.dxf +++ /dev/null @@ -1,3312 +0,0 @@ -999 -dxflib 2.0.4.0 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMASZ - 40 -2.5 - 9 -$GRIDUNIT - 10 -0.0 - 20 -0.0 - 9 -$DIMADEC - 70 -2 - 9 -$DIMGAP - 40 -0.625 - 9 -$SPLINESEGS - 70 -8 - 9 -$AUPREC - 70 -2 - 9 -$LUNITS - 70 -2 - 9 -$DIMEXO - 40 -0.625 - 9 -$INSUNITS - 70 -4 - 9 -$DIMLUNIT - 70 -2 - 9 -$DIMTXT - 40 -3.0 - 9 -$GRIDMODE - 70 -1 - 9 -$LUPREC - 70 -4 - 9 -$DIMSTYLE - 2 -Standard - 9 -$PLIMMAX - 10 -210.0 - 20 -297.0 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$DIMEXE - 40 -1.25 - 9 -$DIMAUNIT - 70 -0 - 9 -$AUNITS - 70 -0 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -1 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -13 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -2.5 - 42 -0.625 - 43 -3.75 - 44 -1.25 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -2.5 -141 -2.5 -143 -0.03937007874016 -147 -0.625 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -43 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -CONTINUOUS - 10 -71.0 - 20 -59.0 - 30 -0.0 - 11 -13.8288638909388499 - 21 -59.0 - 31 -0.0 - 0 -LINE - 5 -44 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -CONTINUOUS - 10 -11.0 - 20 -64.0 - 30 -0.0 - 11 -68.1711361090611518 - 21 -64.0 - 31 -0.0 - 0 -LINE - 5 -45 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DOTX2 - 10 -71.0 - 20 -59.0 - 30 -0.0 - 11 -68.1711361090611518 - 21 -64.0 - 31 -0.0 - 0 -LINE - 5 -46 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHDOTX2 - 10 -13.8288638909388499 - 20 -59.0 - 30 -0.0 - 11 -13.9188459520001455 - 21 -59.0 - 31 -0.0 - 0 -LINE - 5 -47 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -CONTINUOUS - 10 -68.7369088872489158 - 20 -63.0 - 30 -0.0 - 11 -11.5657727781877711 - 21 -63.0 - 31 -0.0 - 0 -LINE - 5 -48 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -CONTINUOUS - 10 -69.3026816654366939 - 20 -62.0 - 30 -0.0 - 11 -12.1315455563755403 - 21 -62.0 - 31 -0.0 - 0 -LINE - 5 -49 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -CONTINUOUS - 10 -69.8684544436244579 - 20 -61.0 - 30 -0.0 - 11 -12.6973183345633096 - 21 -61.0 - 31 -0.0 - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -CONTINUOUS - 10 -70.4342272218122361 - 20 -60.0 - 30 -0.0 - 11 -13.2630911127510789 - 21 -60.0 - 31 -0.0 - 0 -LEADER - 5 -4B - 8 -0 - 62 -256 -370 --1 - 6 -CONTINUOUS -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -11.0 - 20 -42.75 - 10 -11.0 - 20 -30.25 - 10 -16.0 - 20 -25.25 - 0 -LEADER - 5 -4C - 8 -0 - 62 -256 -370 --1 - 6 -CONTINUOUS -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -71.0 - 20 -42.75 - 10 -71.0 - 20 -30.25 - 10 -76.0 - 20 -25.25 - 0 -DIMENSION - 5 -4D -100 -AcDbEntity - 8 -0 - 62 -256 -370 --1 - 6 -CONTINUOUS -100 -AcDbDimension - 10 -80.0 - 20 -59.0 - 30 -0.0 - 11 -77.875 - 21 -51.5 - 31 -0.0 - 70 -1 - 71 -5 - 72 -0 - 41 -1.0 - 42 -0.0 - 1 -I+J - 3 -Standard -100 -AcDbAlignedDimension - 13 -71.0 - 23 -44.0 - 33 -0.0 - 14 -71.0 - 24 -59.0 - 34 -0.0 - 0 -DIMENSION - 5 -4E -100 -AcDbEntity - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -90.0 - 20 -64.0 - 30 -0.0 - 11 -87.875 - 21 -54.0 - 31 -0.0 - 70 -0 - 71 -5 - 72 -1 - 41 -1.0 - 42 -0.0 - 1 -I+K - 3 -Standard -100 -AcDbAlignedDimension - 13 -71.0 - 23 -44.0 - 33 -0.0 - 14 -68.1711361090611518 - 24 -64.0 - 34 -0.0 - 50 -90.0 -100 -AcDbRotatedDimension - 0 -DIMENSION - 5 -4F -100 -AcDbEntity - 8 -0 - 62 -256 -370 --1 - 6 -CONTINUOUS -100 -AcDbDimension - 10 -71.0 - 20 -44.0 - 30 -0.0 - 11 -6.0 - 21 -39.0 - 31 -0.0 - 70 -2 - 71 -5 - 72 -0 - 41 -1.0 - 42 -0.0 - 1 -Q - 3 -Standard -100 -AcDb2LineAngularDimension - 13 -71.0 - 23 -59.0 - 33 -0.0 - 14 -65.3422722181223037 - 24 -69.0 - 34 -0.0 - 15 -71.0 - 25 -59.0 - 35 -0.0 - 16 -71.0 - 26 -84.0 - 36 -0.0 - 0 -MTEXT - 5 -50 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -CONTINUOUS - 10 -26.0 - 20 -64.5 - 30 -0.0 - 40 -3.0 - 41 -500.0 - 71 -7 - 72 -2 - 1 -Final\~Pass - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -51 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -CONTINUOUS - 10 -26.0 - 20 -58.5 - 30 -0.0 - 40 -3.0 - 41 -500.0 - 71 -1 - 72 -2 - 1 -First\~Pass\P - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -52 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -CONTINUOUS - 10 -26.0 - 20 -43.5 - 30 -0.0 - 40 -3.0 - 41 -500.0 - 71 -1 - 72 -2 - 1 -Drive\~Line - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -53 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -CONTINUOUS - 10 -16.5 - 20 -25.9999999999999964 - 30 -0.0 - 40 -3.0 - 41 -500.0 - 71 -1 - 72 -2 - 1 -Z - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -54 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -CONTINUOUS - 10 -76.5 - 20 -26.0 - 30 -0.0 - 40 -3.0 - 41 -500.0 - 71 -1 - 72 -2 - 1 -Initial\~Point\P - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -55 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -120.0 - 20 -50.0 - 30 -0.0 - 11 -130.0 - 21 -67.3205080756887639 - 31 -0.0 - 0 -LINE - 5 -56 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -140.0 - 20 -50.0 - 30 -0.0 - 11 -150.0 - 21 -67.3205080756887639 - 31 -0.0 - 0 -LINE - 5 -57 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -50.0 - 30 -0.0 - 11 -170.0 - 21 -67.3205080756887639 - 31 -0.0 - 0 -LINE - 5 -58 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -140.0 - 20 -50.0 - 30 -0.0 - 11 -130.0 - 21 -67.3205080756887781 - 31 -0.0 - 0 -LINE - 5 -59 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -50.0 - 30 -0.0 - 11 -150.0 - 21 -67.3205080756887781 - 31 -0.0 - 0 -LINE - 5 -5A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -180.0 - 20 -50.0 - 30 -0.0 - 11 -170.0 - 21 -67.3205080756887781 - 31 -0.0 - 0 -LINE - 5 -5B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHEDX2 - 10 -130.0 - 20 -67.3205080756887639 - 30 -0.0 - 11 -136.8404028665133865 - 21 -48.5266556599706007 - 31 -0.0 - 0 -LINE - 5 -5C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHEDX2 - 10 -130.0 - 20 -67.3205080756887639 - 30 -0.0 - 11 -130.0 - 21 -47.3205080756887639 - 31 -0.0 - 0 -DIMENSION - 5 -5D -100 -AcDbEntity - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -184.0 - 20 -53.8057116186892443 - 30 -0.0 - 11 -181.875 - 21 -51.9028558093446222 - 31 -0.0 - 70 -0 - 71 -5 - 72 -1 - 41 -1.0 - 42 -0.0 - 1 -J - 3 -Standard -100 -AcDbAlignedDimension - 13 -180.0 - 23 -50.0 - 33 -0.0 - 14 -177.8027713724916907 - 24 -53.8057116186892443 - 34 -0.0 - 50 -90.0 -100 -AcDbRotatedDimension - 0 -DIMENSION - 5 -5E -100 -AcDbEntity - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -190.0 - 20 -50.0 - 30 -0.0 - 11 -187.875 - 21 -58.6602540378443891 - 31 -0.0 - 70 -0 - 71 -5 - 72 -1 - 41 -1.0 - 42 -0.0 - 1 -K - 3 -Standard -100 -AcDbAlignedDimension - 13 -170.0 - 23 -67.3205080756887781 - 33 -0.0 - 14 -180.0 - 24 -50.0 - 34 -0.0 - 50 -90.0 -100 -AcDbRotatedDimension - 0 -DIMENSION - 5 -5F -100 -AcDbEntity - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -190.0 - 20 -30.0 - 30 -0.0 - 11 -187.875 - 21 -40.0 - 31 -0.0 - 70 -0 - 71 -5 - 72 -1 - 41 -1.0 - 42 -0.0 - 1 -I - 3 -Standard -100 -AcDbAlignedDimension - 13 -180.0 - 23 -50.0 - 33 -0.0 - 14 -180.0 - 24 -30.0 - 34 -0.0 - 50 -90.0 -100 -AcDbRotatedDimension - 0 -DIMENSION - 5 -60 -100 -AcDbEntity - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -170.0 - 20 -80.0 - 30 -0.0 - 11 -160.0 - 21 -82.125 - 31 -0.0 - 70 -0 - 71 -5 - 72 -1 - 41 -1.0 - 42 -0.0 - 1 -P - 3 -Standard -100 -AcDbAlignedDimension - 13 -150.0 - 23 -67.3205080756887639 - 33 -0.0 - 14 -170.0 - 24 -67.3205080756887639 - 34 -0.0 - 50 -0.0 -100 -AcDbRotatedDimension - 0 -DIMENSION - 5 -61 -100 -AcDbEntity - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -136.8404028665133865 - 20 -48.5266556599706007 - 30 -0.0 - 11 -10.0 - 21 -20.0 - 31 -0.0 - 70 -2 - 71 -5 - 72 -1 - 41 -1.0 - 42 -0.0 - 1 -Q - 3 -Standard -100 -AcDb2LineAngularDimension - 13 -130.0 - 23 -67.3205080756887639 - 33 -0.0 - 14 -130.0 - 24 -47.3205080756887639 - 34 -0.0 - 15 -130.0 - 25 -67.3205080756887639 - 35 -0.0 - 16 -138.0 - 26 -30.0 - 36 -0.0 - 0 -MTEXT - 5 -62 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -30.0 - 20 -20.0 - 30 -0.0 - 40 -5.0 - 41 -100.0 - 71 -1 - 72 -2 - 1 -Tool\~Motions - 7 -normallatin1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -63 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -120.0 - 20 -20.0 - 30 -0.0 - 40 -5.0 - 41 -100.0 - 71 -1 - 72 -2 - 1 -Thread\~Dimensions - 7 -normallatin1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LINE - 5 -64 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -11.0 - 20 -44.0 - 30 -0.0 - 11 -71.0 - 21 -44.0 - 31 -0.0 - 0 -LINE - 5 -65 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -71.0 - 20 -44.0 - 30 -0.0 - 11 -71.0 - 21 -59.0 - 31 -0.0 - 0 -LINE - 5 -66 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -11.0 - 20 -64.0 - 30 -0.0 - 11 -11.0 - 21 -44.0 - 31 -0.0 - 0 -LINE - 5 -67 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -13.8288638909388499 - 20 -59.0 - 30 -0.0 - 11 -13.8288638909388482 - 21 -44.0 - 31 -0.0 - 0 -LINE - 5 -68 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHDOT2 - 10 -71.0 - 20 -59.0 - 30 -0.0 - 11 -65.3422722181223037 - 21 -69.0 - 31 -0.0 - 0 -LINE - 5 -69 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHDOT2 - 10 -11.0 - 20 -64.0 - 30 -0.0 - 11 -15.9242356010346704 - 21 -55.2964430406010052 - 31 -0.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -6A - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -6A -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -6C - 3 -HIDETEXT -350 -6B - 0 -DICTIONARYVAR - 5 -6B -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -6C -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/gcode/images/inside-comp.dxf b/docs/src/gcode/images/inside-comp.dxf deleted file mode 100644 index db34aad92db..00000000000 --- a/docs/src/gcode/images/inside-comp.dxf +++ /dev/null @@ -1,2870 +0,0 @@ -999 -dxflib 2.0.4.0 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMASZ - 40 -0.1 - 9 -$GRIDUNIT - 10 -0.0 - 20 -0.0 - 9 -$DIMADEC - 70 -2 - 9 -$DIMGAP - 40 -0.025 - 9 -$SPLINESEGS - 70 -64 - 9 -$AUPREC - 70 -2 - 9 -$LUNITS - 70 -2 - 9 -$DIMEXO - 40 -0.025 - 9 -$INSUNITS - 70 -1 - 9 -$DIMLUNIT - 70 -2 - 9 -$DIMTXT - 40 -0.1 - 9 -$GRIDMODE - 70 -0 - 9 -$LUPREC - 70 -4 - 9 -$DIMSTYLE - 2 -Standard - 9 -$PLIMMAX - 10 -8.5 - 20 -11.0 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$DIMEXE - 40 -0.05 - 9 -$DIMAUNIT - 70 -0 - 9 -$AUNITS - 70 -0 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -5 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -0 -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -profile - 70 -0 - 62 -6 - 6 -CONTINUOUS -370 -35 -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -rapid - 70 -0 - 62 -5 - 6 -CONTINUOUS -370 -35 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -cut - 70 -0 - 62 -1 - 6 -CONTINUOUS -370 -35 -390 -F - 0 -LAYER - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -tool - 70 -0 - 62 -3 - 6 -CONTINUOUS -370 -35 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -2.5 - 42 -0.625 - 43 -3.75 - 44 -1.25 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -2.5 -141 -2.5 -143 -0.03937007874016 -147 -0.625 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -ARC - 5 -47 -100 -AcDbEntity - 8 -profile - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -2.25 - 20 -5.75 - 30 -0.0 - 40 -0.25 -100 -AcDbArc - 50 -90.0 - 51 -180.0 - 0 -LINE - 5 -48 -100 -AcDbEntity -100 -AcDbLine - 8 -profile - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.0 - 20 -5.75 - 30 -0.0 - 11 -2.0 - 21 -2.25 - 31 -0.0 - 0 -ARC - 5 -49 -100 -AcDbEntity - 8 -profile - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -2.25 - 20 -2.25 - 30 -0.0 - 40 -0.25 -100 -AcDbArc - 50 -180.0 - 51 -270.0 - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -profile - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.25 - 20 -2.0 - 30 -0.0 - 11 -5.75 - 21 -2.0 - 31 -0.0 - 0 -ARC - 5 -4B -100 -AcDbEntity - 8 -profile - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -5.75 - 20 -2.25 - 30 -0.0 - 40 -0.25 -100 -AcDbArc - 50 -270.0 - 51 -0.0 - 0 -LINE - 5 -4C -100 -AcDbEntity -100 -AcDbLine - 8 -profile - 62 -256 -370 --1 - 6 -ByLayer - 10 -6.0 - 20 -2.25 - 30 -0.0 - 11 -6.0 - 21 -5.75 - 31 -0.0 - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -profile - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.75 - 20 -6.0 - 30 -0.0 - 11 -2.25 - 21 -6.0 - 31 -0.0 - 0 -ARC - 5 -4E -100 -AcDbEntity - 8 -profile - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -5.75 - 20 -5.75 - 30 -0.0 - 40 -0.25 -100 -AcDbArc - 50 -0.0 - 51 -90.0 - 0 -ARC - 5 -4F -100 -AcDbEntity - 8 -cut - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -5.0 - 20 -4.0 - 30 -0.0 - 40 -0.75 -100 -AcDbArc - 50 -270.0 - 51 -0.0 - 0 -LINE - 5 -50 -100 -AcDbEntity -100 -AcDbLine - 8 -cut - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.75 - 20 -4.0 - 30 -0.0 - 11 -5.75 - 21 -5.75 - 31 -0.0 - 0 -LINE - 5 -51 -100 -AcDbEntity -100 -AcDbLine - 8 -cut - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.75 - 20 -5.75 - 30 -0.0 - 11 -2.25 - 21 -5.75 - 31 -0.0 - 0 -LINE - 5 -52 -100 -AcDbEntity -100 -AcDbLine - 8 -cut - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.25 - 20 -5.75 - 30 -0.0 - 11 -2.25 - 21 -2.25 - 31 -0.0 - 0 -LINE - 5 -53 -100 -AcDbEntity -100 -AcDbLine - 8 -cut - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.25 - 20 -2.25 - 30 -0.0 - 11 -5.75 - 21 -2.25 - 31 -0.0 - 0 -LINE - 5 -54 -100 -AcDbEntity -100 -AcDbLine - 8 -cut - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.75 - 20 -2.25 - 30 -0.0 - 11 -5.75 - 21 -4.0 - 31 -0.0 - 0 -LINE - 5 -55 -100 -AcDbEntity -100 -AcDbLine - 8 -cut - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -3.25 - 30 -0.0 - 11 -4.0004879764550934 - 21 -3.25 - 31 -0.0 - 0 -ARC - 5 -56 -100 -AcDbEntity - 8 -cut - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -4.0004879764550934 - 20 -3.0 - 30 -0.0 - 40 -0.25 -100 -AcDbArc - 50 -90.0 - 51 -129.7323028719557101 - 0 -ARC - 5 -57 -100 -AcDbEntity - 8 -cut - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -5.0 - 20 -4.0 - 30 -0.0 - 40 -0.75 -100 -AcDbArc - 50 -0.0 - 51 -90.0 - 0 -MTEXT - 5 -58 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -2.6453488372093039 - 20 -1.0949612403100781 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -4 - 72 -2 - 1 -\~Rapid\~Move - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LEADER - 5 -59 - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -4.0 - 20 -2.0 - 10 -4.2999999999999998 - 20 -1.8 - 10 -4.7000000000000002 - 20 -1.8 - 0 -MTEXT - 5 -5A -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -4.7999999999999998 - 20 -1.8 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -4 - 72 -2 - 1 -\~Part\~Profile - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -CIRCLE - 5 -5B -100 -AcDbEntity -100 -AcDbCircle - 8 -tool - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.0 - 20 -1.0 - 30 -0.0 - 40 -0.25 - 0 -LINE - 5 -5C -100 -AcDbEntity -100 -AcDbLine - 8 -rapid - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.0000000000000002 - 20 -1.0 - 30 -0.0 - 11 -3.8406876022346386 - 21 -3.1922598252339851 - 31 -0.0 - 0 -LINE - 5 -5D -100 -AcDbEntity -100 -AcDbLine - 8 -rapid - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -4.75 - 30 -0.0 - 11 -1.0000000000000002 - 21 -1.0 - 31 -0.0 - 0 -MTEXT - 5 -5E -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.7000000000000004 - 20 -0.8 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -4 - 72 -2 - 1 -Tool - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LEADER - 5 -5F - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -1.2446759689922504 - 20 -0.9017550387596917 - 10 -1.4000000000000001 - 20 -0.8 - 10 -1.6000000000000001 - 20 -0.8 - 0 -LEADER - 5 -60 - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -1.8365320930232594 - 20 -1.6180787596899255 - 10 -2.2000000000000002 - 20 -1.1000000000000001 - 10 -2.6000000000000001 - 20 -1.1000000000000001 - 0 -MTEXT - 5 -61 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -4.7000000000000002 - 20 -2.8000000000000003 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -2 - 72 -2 - 1 -Compensated\PCut\~Path - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LEADER - 5 -62 - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -4.004268002067187 - 20 -3.2243062347080134 - 10 -4.7000000000000002 - 20 -2.9000000000000004 - 10 -4.7000000000000002 - 20 -2.8000000000000003 - 0 -MTEXT - 5 -63 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 --2.0 - 20 -6.0 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -1 - 72 -2 - 3 -G20\~(\~Inch\~Mode\~)\PF30\~(\~Set\~Feed\~Rate\~)\~\PG10\~L1\~P1\~R.25\~Z1\~(\~Set\~Tool\~Table\~)\PT1\~M6\~(\~Load\~the\~Tool\~)\PG0\~Z0\~(\~Move\~to\~safe\~Z\~height\~)\PG41\~(\~Start\~Cutter\~Comp\~Left\~)\PX4\~Y3\~(\~Rapid\~to\~start\~point\~)\PG - 3 -1\~X5\~Z-1\~(\~Move\~to\~cut\~height\~)\PG3\~X6\~Y4\~J1\~(\~Arc\~into\~cut\~path\~)\PG1\~Y6\~(\~Cut\~Profile\~)\PX2\PY2\PX6\PY4\PG3\~X5\~Y5\~I-1\~(\~Arc\~out\~of\~cut\~path\~)\PG0\~Z0\~(\~Move\~cutter\~to\~safe\~Z\~height\~)\PG40\~(\~Stop\~Cutter\~Co - 1 -mp\~)\PG0\~X1\~Y1\~(\~Move\~to\~safe\~position\~)\PT0\~M6\~(\~Remove\~Tool\~)\PM2\~(\~End\~Program\~) - 7 -romans2 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -64 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -64 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -66 - 3 -HIDETEXT -350 -65 - 0 -DICTIONARYVAR - 5 -65 -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -66 -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/gcode/images/inside-comp.png b/docs/src/gcode/images/inside-comp.png deleted file mode 100644 index 72c9e3d84c2..00000000000 Binary files a/docs/src/gcode/images/inside-comp.png and /dev/null differ diff --git a/docs/src/gcode/images/inside-comp_fr.png b/docs/src/gcode/images/inside-comp_fr.png deleted file mode 100644 index e6c34168060..00000000000 Binary files a/docs/src/gcode/images/inside-comp_fr.png and /dev/null differ diff --git a/docs/src/gcode/images/inside-comp_fr.svg b/docs/src/gcode/images/inside-comp_fr.svg deleted file mode 100755 index 827bfe935f5..00000000000 --- a/docs/src/gcode/images/inside-comp_fr.svg +++ /dev/null @@ -1,723 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - 0 - 1 - 2 - 3 - 1 - 2 - 3 - 0 - - - - - 4 - 5 - 4 - 5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - G-CodeF30 (Sélection de la vitesse)G10 L1 P1 R.25 Z1 (Réglages en table d'outils)T1 M6 (Chargement de l'outil 1)G0 Z0 (Dégagement de l'outil sur l'axe Z)G41 (Compensation d'outil à gauche du profil)X3 Y2 (Déplacement rapide sur point de départ)G1 X4 Z-1 (Plongée vers la profondeur de coupe)G3 X5 Y3 J1 (Arc d'entrée)G1 Y5 (Parcours sur la trajectoire de coupe)X1Y1X5Y3G3 X4 Y4 I-1 (Arc de sortie)G0 Z0 (Dégagement de l'outil sur axe Z)G40 (Désactivation de la compensation d'outil)G0 X1 Y1 (Déplacement sur position sécurisée)T0 M6 (Déchargement de l'outil)M2 (Fin de programme) - X - Y - - - Déplacement rapide - Outil - Trajectoire compensée - - - - - diff --git a/docs/src/gcode/images/lathe-tool.png b/docs/src/gcode/images/lathe-tool.png deleted file mode 100644 index 148a0ff7d5b..00000000000 Binary files a/docs/src/gcode/images/lathe-tool.png and /dev/null differ diff --git a/docs/src/gcode/images/lathe-tool_fr.png b/docs/src/gcode/images/lathe-tool_fr.png deleted file mode 100644 index 5c86c5a9897..00000000000 Binary files a/docs/src/gcode/images/lathe-tool_fr.png and /dev/null differ diff --git a/docs/src/gcode/images/lathe-tool_fr.svg b/docs/src/gcode/images/lathe-tool_fr.svg deleted file mode 100644 index 8fd9de79319..00000000000 --- a/docs/src/gcode/images/lathe-tool_fr.svg +++ /dev/null @@ -1,528 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - 1 - 4 - 2 - 3 - 5 - 8 - 9 - 6 - 7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Z+ - X+ - Cylindrage - Alésage - Dressage - Dressage - - - - - - - - - - - - diff --git a/docs/src/gcode/images/length1.png b/docs/src/gcode/images/length1.png deleted file mode 100644 index 420307aa7ef..00000000000 Binary files a/docs/src/gcode/images/length1.png and /dev/null differ diff --git a/docs/src/gcode/images/nurbs01.png b/docs/src/gcode/images/nurbs01.png deleted file mode 100644 index 28ba8f5627a..00000000000 Binary files a/docs/src/gcode/images/nurbs01.png and /dev/null differ diff --git a/docs/src/gcode/images/offsets.png b/docs/src/gcode/images/offsets.png deleted file mode 100644 index e7012960eaa..00000000000 Binary files a/docs/src/gcode/images/offsets.png and /dev/null differ diff --git a/docs/src/gcode/images/outside-comp.dxf b/docs/src/gcode/images/outside-comp.dxf deleted file mode 100644 index 5281e5dc3a6..00000000000 --- a/docs/src/gcode/images/outside-comp.dxf +++ /dev/null @@ -1,2794 +0,0 @@ -999 -dxflib 2.0.4.0 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMADEC - 70 -2 - 9 -$GRIDUNIT - 10 -0.25 - 20 -0.25 - 9 -$DIMASZ - 40 -0.1 - 9 -$DIMGAP - 40 -0.025 - 9 -$LUNITS - 70 -2 - 9 -$AUPREC - 70 -2 - 9 -$SPLINESEGS - 70 -8 - 9 -$INSUNITS - 70 -1 - 9 -$DIMEXO - 40 -0.025 - 9 -$DIMLUNIT - 70 -2 - 9 -$DIMTXT - 40 -0.1 - 9 -$GRIDMODE - 70 -0 - 9 -$LUPREC - 70 -4 - 9 -$DIMSTYLE - 2 -Standard - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$PLIMMAX - 10 -8.5 - 20 -11.0 - 9 -$DIMEXE - 40 -0.05 - 9 -$DIMAUNIT - 70 -0 - 9 -$AUNITS - 70 -0 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -6 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -0 -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -part - 70 -0 - 62 -6 - 6 -CONTINUOUS -370 -50 -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -lead - 70 -0 - 62 -5 - 6 -CONTINUOUS -370 -50 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -comp - 70 -0 - 62 -1 - 6 -CONTINUOUS -370 -50 -390 -F - 0 -LAYER - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -tool - 70 -0 - 62 -3 - 6 -CONTINUOUS -370 -50 -390 -F - 0 -LAYER - 5 -47 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -text - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -0 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -2.5 - 42 -0.625 - 43 -3.75 - 44 -1.25 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -2.5 -141 -2.5 -143 -0.03937007874016 -147 -0.625 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -48 -100 -AcDbEntity -100 -AcDbLine - 8 -part - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.0 - 20 -1.0 - 30 -0.0 - 11 -5.0 - 21 -1.0 - 31 -0.0 - 0 -LINE - 5 -49 -100 -AcDbEntity -100 -AcDbLine - 8 -part - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -1.0 - 30 -0.0 - 11 -5.0 - 21 -5.0 - 31 -0.0 - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -part - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -5.0 - 30 -0.0 - 11 -1.0 - 21 -5.0 - 31 -0.0 - 0 -LINE - 5 -4B -100 -AcDbEntity -100 -AcDbLine - 8 -part - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.0 - 20 -5.0 - 30 -0.0 - 11 -1.0 - 21 -1.0 - 31 -0.0 - 0 -CIRCLE - 5 -4C -100 -AcDbEntity -100 -AcDbCircle - 8 -tool - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -0.0 - 30 -0.0 - 40 -0.25 - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -lead - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -0.0 - 30 -0.0 - 11 -1.0 - 21 -0.75 - 31 -0.0 - 0 -LINE - 5 -4E -100 -AcDbEntity -100 -AcDbLine - 8 -lead - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.75 - 20 -1.0 - 30 -0.0 - 11 -0.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -4F -100 -AcDbEntity -100 -AcDbLine - 8 -comp - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.0 - 20 -0.75 - 30 -0.0 - 11 -5.0 - 21 -0.75 - 31 -0.0 - 0 -LINE - 5 -50 -100 -AcDbEntity -100 -AcDbLine - 8 -comp - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.25 - 20 -1.0 - 30 -0.0 - 11 -5.25 - 21 -5.0 - 31 -0.0 - 0 -LINE - 5 -51 -100 -AcDbEntity -100 -AcDbLine - 8 -comp - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -5.25 - 30 -0.0 - 11 -1.0 - 21 -5.25 - 31 -0.0 - 0 -LINE - 5 -52 -100 -AcDbEntity -100 -AcDbLine - 8 -comp - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.75 - 20 -5.0 - 30 -0.0 - 11 -0.75 - 21 -1.0 - 31 -0.0 - 0 -ARC - 5 -53 -100 -AcDbEntity - 8 -comp - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -1.0 - 20 -5.0 - 30 -0.0 - 40 -0.25 -100 -AcDbArc - 50 -90.0 - 51 -180.0 - 0 -ARC - 5 -54 -100 -AcDbEntity - 8 -comp - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -5.0 - 20 -1.0 - 30 -0.0 - 40 -0.25 -100 -AcDbArc - 50 -270.0 - 51 -0.0 - 0 -ARC - 5 -55 -100 -AcDbEntity - 8 -comp - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -5.0 - 20 -5.0 - 30 -0.0 - 40 -0.25 -100 -AcDbArc - 50 -0.0 - 51 -90.0 - 0 -LEADER - 5 -56 - 8 -text - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -0.5012919896640834 - 20 -0.3720930232558145 - 10 -0.75 - 20 -0.25 - 10 -1.0 - 20 -0.25 - 0 -LEADER - 5 -57 - 8 -text - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -2 - 10 -1.0 - 20 -1.75 - 10 -1.5 - 20 -1.75 - 0 -LEADER - 5 -58 - 8 -text - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -2.75 - 20 -0.75 - 10 -3.0 - 20 -0.25 - 10 -3.25 - 20 -0.25 - 0 -LEADER - 5 -59 - 8 -text - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -0.25 - 20 -0.0 - 10 -0.75 - 20 --0.25 - 10 -1.0 - 20 --0.25 - 0 -MTEXT - 5 -5A -100 -AcDbEntity -100 -AcDbMText - 8 -text - 62 -256 -370 --1 - 6 -ByLayer - 10 -3.25 - 20 -0.25 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -4 - 72 -2 - 1 -\~Compensated\~tool\~path - 7 -romans2 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5B -100 -AcDbEntity -100 -AcDbMText - 8 -text - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.5 - 20 -1.75 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -4 - 72 -2 - 1 -\~Part\~Outline - 7 -romans2 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5C -100 -AcDbEntity -100 -AcDbMText - 8 -text - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.0 - 20 -0.25 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -4 - 72 -2 - 1 -\~Lead\~In\~Move - 7 -romans2 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5D -100 -AcDbEntity -100 -AcDbMText - 8 -text - 62 -256 -370 --1 - 6 -ByLayer - 10 -1.0 - 20 --0.25 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -4 - 72 -2 - 1 -\~Tool - 7 -romans2 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LEADER - 5 -5E - 8 -text - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbLeader - 3 -Standard - 71 -1 - 72 -0 - 73 -3 - 74 -0 - 75 -0 - 40 -1.0 - 41 -10.0 - 76 -3 - 10 -0.3773013565891474 - 20 -0.5120518410852714 - 10 -0.0 - 20 -0.75 - 10 --0.25 - 20 -0.75 - 0 -MTEXT - 5 -5F -100 -AcDbEntity -100 -AcDbMText - 8 -text - 62 -256 -370 --1 - 6 -ByLayer - 10 --0.25 - 20 -0.75 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -6 - 72 -2 - 1 -Exit\~Move\~. - 7 -romans2 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -60 -100 -AcDbEntity -100 -AcDbMText - 8 -text - 62 -256 -370 --1 - 6 -ByLayer - 10 --3.0 - 20 -4.75 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -1 - 72 -2 - 3 -G-Code\PF25\~(\~Set\~Feed\~Rate\~)\PG40\~(\~Cancel\~Comp\~)\PG10\~L1\~P1\~R0.25\~Z1\~(\~Set\~Tool\~Table\~)\PT1\~M6\~(\~Load\~Tool\~)\PG42\~(\~Start\~Comp\~Right\~)\PG1\~X1\~Y1\~(Lead\~In\~Move)\PX5\~(\~Cut\~Path\~)\PY5\PX1\PY1\PG40\~(\~Cancel\~Comp\ - 1 -~)\PG0\~X0\~Y0\~(\~Exit\~Move\~)\PM2\~(\~End\~Program\~) - 7 -romans2 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -61 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -61 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -63 - 3 -HIDETEXT -350 -62 - 0 -DICTIONARYVAR - 5 -62 -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -63 -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/gcode/images/outside-comp.png b/docs/src/gcode/images/outside-comp.png deleted file mode 100644 index c06206d7bb0..00000000000 Binary files a/docs/src/gcode/images/outside-comp.png and /dev/null differ diff --git a/docs/src/gcode/images/outside-comp_fr.png b/docs/src/gcode/images/outside-comp_fr.png deleted file mode 100644 index fe620d615b8..00000000000 Binary files a/docs/src/gcode/images/outside-comp_fr.png and /dev/null differ diff --git a/docs/src/gcode/images/outside-comp_fr.svg b/docs/src/gcode/images/outside-comp_fr.svg deleted file mode 100755 index 995ea437d13..00000000000 --- a/docs/src/gcode/images/outside-comp_fr.svg +++ /dev/null @@ -1,891 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - 0 - 1 - 2 - 3 - 1 - 2 - 3 - 0 - X - Y - - - - - - - - - - - - - - - - - - - - - - - - - G-CodeF25 (Vitesse d'avance travail)G40 (Révocation des compensations)G10 L1 P1 R.25 Z1 (Réglages en table d'outils)T1 M6 (Appel de l'outil 1)G42 (Compensation d'outil à droite du profil)G1 X1 Y1 (Mouvement d'entrée)X3 (Parcours trajectoire de coupe)Y3X1Y1G40 (Révocation de la compensation)G0 Y0 Y0 (Dégagement de l'outil)M2 (Fin de programme) - - - - Profil à usiner - Mouvement d'entrée - Mouvement de dégagement - Outil - Trajectoire compensée - - - - diff --git a/docs/src/gcode/images/partdraw1.png b/docs/src/gcode/images/partdraw1.png deleted file mode 100644 index fad744da081..00000000000 Binary files a/docs/src/gcode/images/partdraw1.png and /dev/null differ diff --git a/docs/src/gcode/images/polar01.png b/docs/src/gcode/images/polar01.png deleted file mode 100644 index 48cb167ca60..00000000000 Binary files a/docs/src/gcode/images/polar01.png and /dev/null differ diff --git a/docs/src/gcode/images/polar02.png b/docs/src/gcode/images/polar02.png deleted file mode 100644 index 95dcc45a6bf..00000000000 Binary files a/docs/src/gcode/images/polar02.png and /dev/null differ diff --git a/docs/src/gcode/images/radius_comp.png b/docs/src/gcode/images/radius_comp.png deleted file mode 100644 index 1d2a49c2c42..00000000000 Binary files a/docs/src/gcode/images/radius_comp.png and /dev/null differ diff --git a/docs/src/gcode/images/radius_comp_arc.png b/docs/src/gcode/images/radius_comp_arc.png deleted file mode 100644 index 38f874079f5..00000000000 Binary files a/docs/src/gcode/images/radius_comp_arc.png and /dev/null differ diff --git a/docs/src/gcode/images/radius_comp_entry.png b/docs/src/gcode/images/radius_comp_entry.png deleted file mode 100644 index fe610e819bd..00000000000 Binary files a/docs/src/gcode/images/radius_comp_entry.png and /dev/null differ diff --git a/docs/src/gcode/images/radius_comp_entry_simple.png b/docs/src/gcode/images/radius_comp_entry_simple.png deleted file mode 100644 index 6e771646015..00000000000 Binary files a/docs/src/gcode/images/radius_comp_entry_simple.png and /dev/null differ diff --git a/docs/src/gcode/images/radius_comp_error.png b/docs/src/gcode/images/radius_comp_error.png deleted file mode 100644 index a7b66d89cd0..00000000000 Binary files a/docs/src/gcode/images/radius_comp_error.png and /dev/null differ diff --git a/docs/src/gcode/images/radius_comp_straight.png b/docs/src/gcode/images/radius_comp_straight.png deleted file mode 100644 index f4be9a5b20a..00000000000 Binary files a/docs/src/gcode/images/radius_comp_straight.png and /dev/null differ diff --git a/docs/src/gcode/images/twelve.png b/docs/src/gcode/images/twelve.png deleted file mode 100644 index 91a08aaa913..00000000000 Binary files a/docs/src/gcode/images/twelve.png and /dev/null differ diff --git a/docs/src/gcode/m-code.txt b/docs/src/gcode/m-code.txt deleted file mode 100644 index 8c8e6fd5cbd..00000000000 --- a/docs/src/gcode/m-code.txt +++ /dev/null @@ -1,732 +0,0 @@ -= M Codes - -[[cha:m-codes]] (((M Codes))) - -:ini: {basebackend@docbook:'':ini} -:hal: {basebackend@docbook:'':hal} -:ngc: {basebackend@docbook:'':ngc} - -== M Code Quick Reference Table [[m-code-quick-reference]] -[width="60%", options="header", cols="2^,5<"] -|======================================== -|Code | Description -|<> | Program Pause -|<> | Program End -|<> | Pallet Change Pause -|<> | Spindle Control -|<> | Tool Change -|<> | Coolant Control -|<> | Orient Spindle -|<> | Feed & Spindle Overrides Enable/Disable -|<> | Feed Override Control -|<> | Spindle Override Control -|<> | Adaptive Feed Control -|<> | Feed Stop Control -|<> | Set Current Tool Number -|<> | Output Control -|<> | Input Control -|<> | Analog Output Control -|<> | Analog Output Control -|<> | Save Modal State -|<> | Invalidate Stored Modal State -|<> | Restore Modal State -|<> | Save Autorestore Modal State -|<> | User Defined M-Codes -|======================================== - - -[[sec:M0-M1]] -== M0, M1 Program Pause -(((M0 Program Pause)))(((M1 Program Optional Pause))) - -* 'M0' - pause a running program temporarily. LinuxCNC remains - in the Auto Mode so MDI and other manual actions - are not enabled. Pressing the cycle start button - will restart the program at the following line. - -* 'M1' - pause a running program temporarily if the optional - stop switch is on. LinuxCNC remains in the Auto Mode - so MDI and other manual actions are not enabled. - Pressing the cycle start button - will restart the program at the following line. - -[NOTE] -It is OK to program 'M0' and 'M1' in MDI mode, -but the effect will probably not be noticeable, -because normal behavior in MDI mode is -to stop after each line of input anyway. - -[[sec:M2-M30]] -== M2, M30 Program End -(((M2 Program End)))(((M30 Program End))) - -* 'M2' - end the program. Pressing cycle start will - start the program at the beginning of the file. - -* 'M30' - exchange pallet shuttles and end the program. - Pressing cycle start will start the program - at the beginning of the file. - -Both of these commands have the following effects: - -. Change from Auto mode to MDI mode. -. Origin offsets are set to the default (like 'G54'). -. Selected plane is set to XY plane (like 'G17'). -. Distance mode is set to absolute mode (like 'G90'). -. Feed rate mode is set to units per minute (like 'G94'). -. Feed and speed overrides are set to ON (like 'M48'). -. Cutter compensation is turned off (like 'G40'). -. The spindle is stopped (like 'M5'). -. The current motion mode is set to feed (like 'G1'). -. Coolant is turned off (like 'M9'). - -[NOTE] -Lines of code after M2/M30 will not be executed. -Pressing cycle start will start the program -at the beginning of the file. - -[[sec:M60]] -== M60 Pallet Change Pause -(((M60 Pallet Change Pause))) - -* 'M60' - exchange pallet shuttles and then pause a running program - temporarily (regardless of the setting of the optional stop - switch). Pressing the cycle start button - will restart the program at the following line. - -[[sec:M3-M4-M5]] -== M3, M4, M5 Spindle Control -(((M3 Spindle CW)))(((M4 Spindle CCW)))(((M5 Spindle Stop))) - -* 'M3' - start the spindle clockwise at the 'S' speed. -* 'M4' - start the spindle counterclockwise at the 'S' speed. -* 'M5' - stop the spindle. - -It is OK to use 'M3' or 'M4' if the <> -spindle speed is set to zero. If this is done -(or if the speed override switch is enabled and set to zero), -the spindle will not start turning. -If, later, the spindle speed is set above zero -(or the override switch is turned up), -the spindle will start turning. -It is OK to use 'M3' or 'M4' when the spindle is already -turning or to use 'M5' when the spindle is already stopped. - -[[sec:M6-Tool-Change]] -== M6 Tool Change -(((M6-Tool-Change))) - -=== Manual Tool Change - -If the HAL component hal_manualtoolchange is loaded, -M6 will stop the spindle and prompt the user to change the tool -based on the last 'T-' number programmed. -For more information on hal_manualtoolchange see -the (<>) Section. - -=== Tool Changer - -To change a tool in the spindle from the tool currently in the spindle -to the tool most recently selected (using a T word - see Section -<>), program 'M6'. -When the tool change is complete: - -* The spindle will be stopped. -* The tool that was selected (by a T word on the same line or on any - line after the previous tool change) will be in the spindle. -* If the selected tool was not in the spindle before the tool change, - the tool that was in the spindle (if there was one) will be placed - back into the tool changer magazine. -* If configured in the .ini file some axis positions may move when a M6 - is issued. See the EMCIO section of the Integrator's Manual for more - information on tool change options. -* No other changes will be made. For example, coolant will continue to - flow during the tool change unless it has been turned off by an 'M9'. - -[WARNING] -The tool length offset is not changed by 'M6', use 'G43' after the -'M6' to change the tool length offset. - -The tool change may include axis motion. -It is OK (but not useful) to program a change to the tool already in the spindle. -It is OK if there is no tool in the selected slot; -in that case, the spindle will be empty after the tool change. -If slot zero was last selected, -there will definitely be no tool in the spindle after a tool change. The tool -changer will have to be setup to perform the tool change in hal and possibly -classicladder. - -[[sec:M7-M8-M9]] -== M7, M8, M9 Coolant Control -(((M7 Mist Coolant)))(((M8 Flood Coolant)))(((M9 Coolant Off))) - -* 'M7' - turn mist coolant on. -* 'M8' - turn flood coolant on. -* 'M9' - turn all coolant off. - -It is OK to use any of these commands, regardless of the current coolant -state. - -[[sec:M19]] -== M19 Orient Spindle -(((M19 Orient Spindle))) - -* 'M19 R- Q- [P-]' - -* 'R' Position to rotate to from 0, valid range is 0-360 degrees - -* 'Q' Number of seconds to wait until orient completes. If - motion.spindle.is_oriented does not become true within Q timeout - an error occurs. - -* 'P' Direction to rotate to position. -** '0' rotate for smallest angular movement (default) -** '1' always rotate clockwise (same as M3 direction) -** '2' always rotate counterclockwise (same as M4 direction) - - -M19 is cleared by any of M3,M4,M5. - -Spindle orientation requires a differential encoder with an index to sense the -spindle shaft position and direction of rotation. - -INI Settings in the [RS274NGC] section. - -ORIENT_OFFSET = 0-360 (fixed offset in degrees added to M19 R word) - -HAL Pins - -* 'motion.spindle-orient-angle' (out float) -Desired spindle orientation for M19. Value of the M19 R word parameter -plus the value of the [RS274NGC]ORIENT_OFFSET ini parameter. - -* 'motion.spindle-orient-mode' (out s32) -Desired spindle rotation mode. Reflects M19 P parameter word, Default = 0 - -* 'motion.spindle-orient' (out bit) -Indicates start of spindle orient cycle. Set by M19. Cleared by any of -M3,M4,M5. - If spindle-orient-fault is not zero during spindle-orient true, the -M19 command fails with an error message. - -* 'motion.spindle-is-oriented' (in bit) -Acknowledge pin for spindle-orient. Completes orient cycle. If -spindle-orient was true when spindle-is-oriented - was asserted, the spindle-orient pin is cleared and the spindle-locked -pin is asserted. Also, the spindle-brake pin is asserted. - -* 'motion.spindle-orient-fault' (in s32) - Fault code input for orient cycle. Any value other than zero will -cause the orient cycle to abort. - -* 'motion.spindle-locked' (out bit) -Spindle orient complete pin. Cleared by any of M3,M4,M5. - - -[[sec:M48-M49-Override]] -== M48, M49 Speed and Feed Override Control -(((M48, M49 Override Control))) - -* 'M48' - enable the spindle speed and feed rate override controls. -* 'M49' - disable both controls. - -It is OK to enable or disable the controls when -they are already enabled or disabled. -See the <> Section for more details. - -[[sec:M50-Feed-Override]] -== M50 Feed Override Control -(((M50 Feed Override Control))) - -* 'M50 ' - enable the feed rate override control. The P1 - is optional. -* 'M50 P0' - disable the feed rate control. - -While disabled the feed override will have no influence, -and the motion will be executed at programmed feed rate. -(unless there is an adaptive feed rate override active). - -[[sec:M51-Spindle-Override]] -== M51 Spindle Speed Override Control -(((M51 Spindle Speed Override))) - -* 'M51 ' - enable the spindle speed override control. The P1 - is optional. -* 'M51 P0' - disable the spindle speed override control program. - While disabled the spindle speed override will have - no influence, and the spindle speed will have the - exact program specified value of the S-word - (described in <> Section). - -[[sec:M52-Adaptive-Feed-Control]] -== M52 Adaptive Feed Control -(((M52 Adaptive Feed Control))) - -* 'M52 ' - use an adaptive feed. The P1 is optional. -* 'M52 P0' - stop using adaptive feed. - -When adaptive feed is enabled, some external input value is used together -with the user interface feed override value and the commanded feed rate -to set the actual feed rate. In LinuxCNC, the HAL pin 'motion.adaptive-feed' -is used for this purpose. Values on 'motion.adaptive-feed' should range -from 0 (feed hold) to 1 (full speed). - -[[sec:M53-Feed-Stop-Control]] -== M53 Feed Stop Control -(((M53 Feed Stop Control))) - -* 'M53 ' - enable the feed stop switch. The P1 is optional. - Enabling the feed stop switch will allow motion to be - interrupted by means of the feed stop control. In LinuxCNC, - the HAL pin 'motion.feed-hold' is used for this purpose. A 'true' - value will cause the motion to stop when 'M53' is active. - -* 'M53 P0' - disable the feed stop switch. The state of 'motion.feed-hold' - will have no effect on feed when M53 is not active. - - -[[sec:M61-Set-Current-Tool-Number]] -== M61 Set Current Tool Number -(((M61 Set Current Tool Number))) - -* 'M61 Q-' - change the current tool number while in MDI or Manual mode. - One use is when you power up LinuxCNC with a tool currently in - the spindle you can set that tool number without doing a tool change. - -It is an error if: - -* Q- is not 0 or greater - -[[sec:M62-M65]] -== M62 to M65 Output Control -(((M62 to M65 Output Control))) - -* 'M62 P-' - turn on digital output synchronized with motion. - The P- word specifies the digital output number. - -* 'M63 P-' - turn off digital output synchronized with motion. - The P- word specifies the digital output number. - -* 'M64 P-' - turn on digital output immediately. - The P- word specifies the digital output number. - -* 'M65 P-' - turn off digital output immediately. - The P- word specifies the digital output number. - -The P-word ranges from 0 to a default value of 3. If needed the the -number of I/O can be increased by using the num_dio parameter when loading -the motion controller. See the Integrator's Manual Configuration Section LinuxCNC and -HAL section for more information. - -The M62 & M63 commands will be queued. Subsequent commands referring -to the same output number will overwrite the older settings. More than -one output change can be specified by issuing more than one M62/M63 -command. - -The actual change of the specified outputs will happen at the -beginning of the next motion command. If there is no subsequent motion -command, the queued output changes won't happen. It's best to always -program a motion G code (G0, G1, etc) right after the M62/63. - -M64 & M65 happen immediately as they are received by the motion -controller. They are not synchronized with movement, and they will -break blending. - -[NOTE] -M62-65 will not function unless the appropriate motion.digital-out-nn pins are -connected in your hal file to outputs. - -[[sec:M66-Input-Control]] -== M66 Wait on Input -(((M66 Input Control))) - ----- -M66 P- | E- ----- -* 'P-' - specifies the digital input number from 0 to 3. -* 'E-' - specifies the analog input number from 0 to 3. -* 'L-' - specifies the wait mode type. -** 'Mode 0: IMMEDIATE' - no waiting, returns immediately. - The current value of the input is stored in parameter #5399 -** 'Mode 1: RISE' - waits for the selected input to perform a rise event. -** 'Mode 2: FALL' - waits for the selected input to perform a fall event. -** 'Mode 3: HIGH' - waits for the selected input to go to the HIGH state. -** 'Mode 4: LOW' - waits for the selected input to go to the LOW state. -* 'Q-' - specifies the timeout in seconds for waiting. If the timeout is - exceeded, the wait is interrupt, and the variable #5399 will be holding - the value -1. The Q value is ignored if the L-word is zero (IMMEDIATE). - A Q value of zero is an error if the L-word is non-zero. - -* Mode 0 is the only one permitted for an analog input. - -.M66 Example Lines ----- -M66 P0 L3 Q5 (wait up to 5 seconds for digital input 0 to turn on) ----- - -M66 wait on an input stops further execution of the program, until the -selected event (or the programmed timeout) occurs. - -It is an error to program M66 with both a P-word and an E-word (thus -selecting both an analog and a digital input). In LinuxCNC these -inputs are not monitored in real time and thus should not be used for -timing-critical applications. - -The number of I/O can be increased by using the num_dio or num_aio parameter -when loading the motion controller. See the Integrator's Manual, Core -Components Section, Motion subsection, for more information. - -[NOTE] -M66 will not function unless the appropriate motion.digital-in-nn pins or -motion.analog-in-nn pins are connected in your hal file to an input. - -.Example HAL Connection ----- -net signal-name motion.digital-in-00 <= parport.0.pin10-in ----- - -[[sec:M67-Analog-Output]] -== M67 Synchronized Analog Output -(((M67 Analog Motion Output Control))) - ----- -M67 E- Q- ----- -* 'M67' - set an analog output synchronized with motion. -* 'E-' - output number ranging from 0 to 3. -* 'Q-' - is the value to set (set to 0 to turn off). - -The actual change of the specified outputs will happen at the -beginning of the next motion command. If there is no subsequent motion -command, the queued output changes won't happen. It's best to always -program a motion G code (G0, G1, etc) right after the M67. M67 functions -the same as M62-63. - -The number of I/O can be increased by using the num_dio or num_aio parameter -when loading the motion controller. See the Integrator's Manual, Core -Components Section, Motion subsection, for more information. - -[NOTE] -M67 will not function unless the appropriate motion.analog-out-nn pins are -connected in your hal file to outputs. - -[[sec:M68-Analog-Output]] -== M68 Analog Output -(((M68 Analog Aux Output Control))) - ----- -M68 E- Q- ----- -* 'M68' - set an analog output immediately. -* 'E-' - output number ranging from 0 to 3. -* 'Q-' - is the value to set (set to 0 to turn off). - -M68 output happen immediately as they are received by the motion -controller. They are not synchronized with movement, and they will -break blending. M68 functions the same as M64-65. - -The number of I/O can be increased by using the num_dio or num_aio parameter -when loading the motion controller. See the Integrator's Manual, Core -Components Section, Motion subsection, for more information. - -[NOTE] -M68 will not function unless the appropriate motion.analog-out-nn pins are -connected in your hal file to outputs. - -== M70 Save Modal State[[sec:M70-Save-Modal-State]] -(((M70 Save Modal State))) - -To explicitly save the modal state at the current call level, program -'M70'. Once modal state has been saved with 'M70', it can be restored -to exactly that state by executing an 'M72'. - -A pair of 'M70' and 'M72' instructions will typically be used to -protect a program against inadvertant modal changes within -subroutines. - -[[saved_state_by_M70]] -The state saved consists of: - -* current G20/G21 settings (imperial/metric) -* selected plane (G17/G18/G19 G17.1,G18.1,G19.1) -* status of cutter compensation (G40,G41,G42,G41.1,G42,1) -* distance mode - relative/absolute (G90/G91) -* feed mode (G93/G94,G95) -* current coordinate system (G54-G59.3) -* tool length compensation status (G43,G43.1,G49) -* retract mode (G98,G99) -* spindle mode (G96-css or G97-RPM) -* arc distance mode (G90.1, G91.1) -* lathe radius/diameter mode (G7,G8) -* path control mode (G61, G61.1, G64) -* current feed and speed ('F' and 'S' values) -* spindle status (M3,M4,M5) - on/off and direction -* mist (M7) and flood (M8) status -* speed override (M51) and feed override (M50) settings -* adaptive feed setting (M52) -* feed hold setting (M53) - -Note that in particular, the motion mode (G1 etc) is NOT restored. - -'current call level' means either: - - * executing in the main program. There is a single storage location - for state at the main program level; if several 'M70' instructions - are executed in turn, only the most recently saved state is restored - when an 'M72' is executed. - - * executing within a G-code subroutine. The state saved with 'M70' - within a subroutine behaves exactly like a local named parameter - it - can be referred to only within this subroutine invocation with an - 'M72' and when the subroutine exits, the paramter goes away. - -A recursive invocation of a subroutine introduces a new call level. - -== M71 Invalidate Stored Modal State[[sec:M71-Invalidate-Stored-Modal-State]] -(((M71 Invalidate Stored Modal State))) - -<> or by an -<> at the current call -level is invalidated (cannot be restored from anymore). - -A subsequent 'M72' at the same call level will fail. - -If executed in a subroutine which protects modal state by an 'M73', a -subsequent return or endsub will *not* restore modal state. - -The usefulness of this feature is dubious. It should not be relied upon as it might -go away. - -== M72 Restore Modal State[[sec:M72-Restore-Modal-State]] -(((M72 Restore Modal State))) - -<> code can be -restored by executing an 'M72'. - -The handling of G20/G21 is specially treated as feeds are interpreted -differently depending on G20/G21: if length units (mm/in) are about to -be changed by the restore operation, 'M72 'will restore the distance -mode first, and then all other state including feed to make sure the -feed value is interpreted in the correct unit setting. - -It is an error to execute an 'M72' with no previous 'M70' save -operation at that level. - -The following example demonstrates saving and explicitely restoring -modal state around a subroutine call using 'M70' and 'M72'. Note that -the 'imperialsub' subroutine is not "aware" of the M7x features and can be -used unmodified: - -[source,{ngc}] ---------------------------------------------------------------------- -O sub -(DEBUG, imperial=#<_imperial> absolute=#<_absolute> feed=#<_feed> rpm=#<_rpm>) -O endsub - -O sub -g20 (imperial) -g91 (relative mode) -F5 (low feed) -S300 (low rpm) -(debug, in subroutine, state now:) -o call -O endsub - -; main program -g21 (metric) -g90 (absolute) -f200 (fast speed) -S2500 (high rpm) - -(debug, in main, state now:) -o call - -M70 (save caller state in at global level) -O call -M72 (explicitely restore state) - -(debug, back in main, state now:) -o call -m2 ---------------------------------------------------------------------- - -== M73 Save and Autorestore Modal State[[sec:M73-Save-Autorestore-Modal-State]] -(((M73 Save and Autorestore Modal State))) - -To save modal state within a subroutine, and restore state on -subroutine 'endsub' or any 'return' path, program 'M73'. - -Aborting a running program in a subroutine which has an 'M73' -operation will *not* restore state . - -Also, the normal end ('M2') of a main program which contains an 'M73' -will *not* restore state. - -The suggested use is at the beginning of a O-word subroutine as in the -following example. Using 'M73' this way enables designing subroutines -which need to modify modal state but will protect the calling program -against inadvertant modal changes. Note the use of -<> in -the 'showstate' subroutine. - -[source,{ngc}] ---------------------------------------------------------------------- -O sub -(DEBUG, imperial=#<_imperial> absolute=#<_absolute> feed=#<_feed> rpm=#<_rpm>) -O endsub - -O sub -M73 (save caller state in current call context, restore on return or endsub) -g20 (imperial) -g91 (relative mode) -F5 (low feed) -S300 (low rpm) -(debug, in subroutine, state now:) -o call - -; note - no M72 is needed here - the following endsub or an -; explicit 'return' will restore caller state -O endsub - -; main program -g21 (metric) -g90 (absolute) -f200 (fast speed) -S2500 (high rpm) -(debug, in main, state now:) -o call -o call -(debug, back in main, state now:) -o call -m2 ---------------------------------------------------------------------- - -=== Selectively restoring modal state by testing predefined parameters [[sec:Selectively-restoring-modal-state]] - -Executing an 'M72' or returning from a subroutine which contains an -'M73' will restore <>. - -If only some aspects of modal state should be preserved, an -alternative is the usage of <>, local parameters and conditional -statements. The idea is to remember the modes to be restored at the -beginning of the subroutine, and restore these before exiting. Here is -an example, based on snippet of 'nc_files/tool-length-probe.ngc': - -[source,{ngc}] ---------------------------------------------------------------------- -O sub (measure reference tool) -; -# = #<_absolute> (remember in local variable if G90 was set) -; -g30 (above switch) -g38.2 z0 f15 (measure) -g91 g0z.2 (off the switch) -#1000=#5063 (save reference tool length) -(print,reference length is #1000) -; -O if [#] - g90 (restore G90 only if it was set on entry:) -O endif -; -O endsub - ---------------------------------------------------------------------- - -[[sec:M100-to-M199]] -== M100 to M199 User Defined Commands -(((M100 to M199 User Defined Commands)))(((User Defined Commands M100-M199))) - ----- -M1-- ----- - -* 'M1--' - an integer in the range of 100 - 199. -* 'P-' - a number passed to the file as the first parameter. -* 'Q-' - a number passed to the file as the second parameter. - -[NOTE] -After creating a new 'M1nn' file you must restart the GUI so it is aware -of the new file, otherwise you will get an 'Unkown m code' error. - -The external program named 'M100' through 'M199' (no extension and a capitol M) -is executed with the optional P and Q values as its two arguments. -Execution of the G code file pauses until the external program exits. -Any valid executable file can be used. The file must be located in the search -path specificed in the ini file configuration. See the ini config section of -the Integrators Manual for more information on search paths. - -[WARNING] -Do not use a word processor to create or edit the files. A word processor -will leave unseen codes that will cause problems and may prevent a bash or -python file from working. Use a text editor like Gedit in Ubuntu or Notepad++ -in other operating systems to create or edit the files. - -The error 'Unknown M code used' denotes one of the following - -* The specified User Defined Command does not exist -* The file is not an executable file -* The file name has an extension -* The file name does not follow this format M1nn where nn = 00 through 99 -* The file name used a lower case M - -For example to open and close a collet closer that is controlled by a -parallel port pin using a bash script file using M101 and M102. Create two -files named M101 and M102. Set them as executable files (typically -right click/properties/permissions) before running LinuxCNC. Make sure the -parallel port pin is not connected to anything in a HAL file. - -.M101 Example File ----- -#!/bin/bash -# file to turn on parport pin 14 to open the collet closer -halcmd setp parport.0.pin-14-out True -exit 0 ----- - -.M102 Example File ----- -#!/bin/bash -# file to turn off parport pin 14 to open the collet closer -halcmd setp parport.0.pin-14-out False -exit 0 ----- - -To pass a variable to a M1nn file you use the P and Q option like this: - ----- -M100 P123.456 Q321.654 ----- - -.M100 Example file ----- -#!/bin/bash -voltage=$1 -feedrate=$2 -halcmd setp thc.voltage $voltage -halcmd setp thc.feedrate $feedrate -exit 0 ----- - -To display a graphic message and stop until the message window is closed -use a graphic display program like Eye of Gnome to display the graphic -file. When you close it the program will resume. - -.M110 Example file ----- -#!/bin/bash -eog /home/john/linuxcnc/nc_files/message.png -exit 0 ----- - -To display a graphic message and continue processing the G code file -suffix an ampersand to the command. - -.M110 Example display and keep going ----- -#!/bin/bash -eog /home/john/linuxcnc/nc_files/message.png & -exit 0 ----- - -// vim: set syntax=asciidoc: diff --git a/docs/src/gcode/m-code_es.txt b/docs/src/gcode/m-code_es.txt deleted file mode 100644 index 74282e81902..00000000000 --- a/docs/src/gcode/m-code_es.txt +++ /dev/null @@ -1,440 +0,0 @@ -= M Codes - -[[cha:m-codes]] (((M Codes))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== M Code Quick Reference Table [[m-code-quick-reference]] -[width="60%", options="header", cols="2^,5<"] -|======================================== -|Code | Description -|<> | Program Pause -|<> | Program End -|<> | Program Pause -|<> | Program End -|<> | Spindle Control -|<> | Tool Change -|<> | Coolant Control -|<> | Feed & Spindle Overrides -|<> | Feed Override Control -|<> | Spindle Override Control -|<> | Adaptive Feed Control -|<> | Feed Stop Control -|<> | Set Current Tool Number -|<> | Output Control -|<> | Input Control -|<> | Analog Output Control -|<> | Analog Output Control -|<> | User Defined M codes -|======================================== - - -== M0, M1 Program Pause[[sec:M0-M1]] -(((M0 Program Pause)))(((M1 Program Optional Pause))) - -* 'M0' - pause a running program temporarily. LinuxCNC remains - in the Auto Mode so MDI and other manual actions - are not enabled. Pressing the cycle start button - will restart the program at the following line. - -* 'M1' - pause a running program temporarily if the optional - stop switch is on. LinuxCNC remains in the Auto Mode - so MDI and other manual actions are not enabled. - Pressing the cycle start button - will restart the program at the following line. - -[NOTE] -It is OK to program 'M0' and 'M1' in MDI mode, -but the effect will probably not be noticeable, -because normal behavior in MDI mode is -to stop after each line of input anyway. - -== M2, M30 Program End[[sec:M2-M30]] -(((M2 Program End)))(((M30 Program End))) - -* 'M2' - end the program. Pressing cycle start will - start the program at the beginning of the file. - -* 'M30' - exchange pallet shuttles and end the program. - Pressing cycle start will start the program - at the beginning of the file. - -Both of these commands have the following effects: - -. Change from Auto mode to MDI mode. -. Origin offsets are set to the default (like 'G54'). -. Selected plane is set to XY plane (like 'G17'). -. Distance mode is set to absolute mode (like 'G90'). -. Feed rate mode is set to units per minute (like 'G94'). -. Feed and speed overrides are set to ON (like 'M48'). -. Cutter compensation is turned off (like 'G40'). -. The spindle is stopped (like 'M5'). -. The current motion mode is set to feed (like 'G1'). -. Coolant is turned off (like 'M9'). - -[NOTE] -Lines of code after M2/M30 will not be executed. -Pressing cycle start will start the program -at the beginning of the file. - -== M60 Program Pause[[sec:M60]] -(((M60 Program Pause))) - -* 'M60' - exchange pallet shuttles and then pause a running program - temporarily (regardless of the setting of the optional stop - switch). Pressing the cycle start button - will restart the program at the following line. - -== M3, M4, M5 Spindle Control[[sec:M3-M4-M5]] -(((M3 Spindle CW)))(((M4 Spindle CCW)))(((M5 Spindle Stop))) - -* 'M3' - start the spindle clockwise at the 'S' speed. -* 'M4' - start the spindle counterclockwise at the 'S' speed. -* 'M5' - stop the spindle. - -It is OK to use 'M3' or 'M4' if the <> -spindle speed is set to zero. If this is done -(or if the speed override switch is enabled and set to zero), -the spindle will not start turning. -If, later, the spindle speed is set above zero -(or the override switch is turned up), -the spindle will start turning. -It is OK to use 'M3' or 'M4' when the spindle is already -turning or to use 'M5' when the spindle is already stopped. - -== M6 Tool Change[[sec:M6-Tool-Change]] - -(((M6-Tool-Change))) - -=== Manual Tool Change - -If the HAL component hal_manualtoolchange is loaded, -M6 will stop the spindle and prompt the user to change the tool -based on the last 'T-' number programmed. -For more information on hal_manualtoolchange see -the (<>) Section. - -=== Tool Changer - -To change a tool in the spindle from the tool currently in the spindle -to the tool most recently selected (using a T word - see Section -<>), program 'M6'. -When the tool change is complete: - -* The spindle will be stopped. -* The tool that was selected (by a T word on the same line or on any - line after the previous tool change) will be in the spindle. - The T number is an integer giving the - changer slot of the tool (not its id). -* If the selected tool was not in the spindle before the tool change, - the tool that was in the spindle - (if there was one) - will be in its changer slot. -* If configured in the .ini file some axis positions may move when a M6 - is issued. See the EMCIO section of the Integrator's Manual for more - information on tool change options. -* No other changes will be made. For example, coolant will continue to - flow during the tool change unless it has been turned off by an 'M9'. - -[WARNING] -The tool length offset is not changed by 'M6', use 'G43' after the -'M6' to change the tool length offset. - -The tool change may include axis motion. -It is OK (but not useful) to program a change to the tool already in the spindle. -It is OK if there is no tool in the selected slot; -in that case, the spindle will be empty after the tool change. -If slot zero was last selected, -there will definitely be no tool in the spindle after a tool change. The tool -changer will have to be setup to perform the tool change in hal and possibly -classicladder. - -== M7, M8, M9 Coolant Control[[sec:M7-M8-M9]] -(((M7 Mist Coolant)))(((M8 Flood Coolant)))(((M9 Coolant Off))) - -* 'M7' - turn mist coolant on. -* 'M8' - turn flood coolant on. -* 'M9' - turn all coolant off. - -It is OK to use any of these commands, regardless of the current coolant -state. - -== M48, M49 Override Control[[sec:M48-M49-Override]] -(((M48, M49 Override Control))) - -* 'M48' - enable the spindle speed and feed rate override controls. -* 'M49' - disable both controls. - -It is OK to enable or disable the controls when -they are already enabled or disabled. -See the <> Section for more details. - -== M50 Feed Override Control[[sec:M50-Feed-Override]] -(((M50 Feed Override Control))) - -* 'M50 ' - enable the feed rate override control. The P1 - is optional. -* 'M50 P0' - disable the feed rate control. - -While disabled the feed override will have no influence, -and the motion will be executed at programmed feed rate. -(unless there is an adaptive feed rate override active). - -== M51 Spindle Speed Override Control[[sec:M51-Spindle-Override]] -(((M51 Spindle Speed Override))) - -* 'M51 ' - enable the spindle speed override control. The P1 - is optional. -* 'M51 P0' - disable the spindle speed override control program. - While disabled the spindle speed override will have - no influence, and the spindle speed will have the - exact program specified value of the S-word - (described in <> Section). - -== M52 Adaptive Feed Control[[sec:M52-Adaptive-Feed-Control]] -(((M52 Adaptive Feed Control))) - -* 'M52 ' - use an adaptive feed. The P1 is optional. -* 'M52 P0' - stop using adaptive feed. - -When adaptive feed is enabled, some external input value is used together -with the user interface feed override value and the commanded feed rate -to set the actual feed rate. In LinuxCNC, the HAL pin 'motion.adaptive-feed' -is used for this purpose. Values on 'motion.adaptive-feed' should range -from 0 (feed hold) to 1 (full speed). - -== M53 Feed Stop Control[[sec:M53-Feed-Stop-Control]] -(((M53 Feed Stop Control))) - -* 'M53 ' - enable the feed stop switch. The P1 is optional. - Enabling the feed stop switch will allow motion to be - interrupted by means of the feed stop control. In LinuxCNC, - the HAL pin 'motion.feed-hold' is used for this purpose. A 'true' - value will cause the motion to stop when 'M53' is active. - -* 'M53 P0' - disable the feed stop switch. The state of 'motion.feed-hold' - will have no effect on feed when M53 is not active. - - -== M61 Set Current Tool Number[[sec:M61-Set-Current-Tool-Number]] -(((M61 Set Current Tool Number))) - -* 'M61 Q-' - change the current tool number while in MDI or Manual mode. - One use is when you power up LinuxCNC with a tool currently in - the spindle you can set that tool number without doing a tool change. - -It is an error if: - -* Q- is not 0 or greater - -== M62 to M65 Output Control[[sec:M62-M65]] -(((M62 to M65 Output Control))) - -* 'M62 P-' - turn on digital output synchronized with motion. - The P- word specifies the digital output number. - -* 'M63 P-' - turn off digital output synchronized with motion. - The P- word specifies the digital output number. - -* 'M64 P-' - turn on digital output immediately. - The P- word specifies the digital output number. - -* 'M65 P-' - turn off digital output immediately. - The P- word specifies the digital output number. - -The P-word ranges from 0 to a default value of 3. If needed the the -number of I/O can be increased by using the num_dio parameter when loading -the motion controller. See the Integrator's Manual Configuration Section LinuxCNC and -HAL section for more information. - -The M62 & M63 commands will be queued. Subsequent commands referring -to the same output number will overwrite the older settings. More than -one output change can be specified by issuing more than one M62/M63 -command. - -The actual change of the specified outputs will happen at the -beginning of the next motion command. If there is no subsequent motion -command, the queued output changes won't happen. It's best to always -program a motion G code (G0, G1, etc) right after the M62/63. - -M64 & M65 happen immediately as they are received by the motion -controller. They are not synchronized with movement, and they will -break blending. - -== M66 Wait on Input[[sec:M66-Input-Control]] -(((M66 Input Control))) - ----- -M66 P- | E- ----- -* 'P-' - specifies the digital input number from 0 to 3. -* 'E-' - specifies the analog input number from 0 to 3. -* 'L-' - specifies the wait mode type. -** 'Mode 0: IMMEDIATE' - no waiting, returns immediately. - The current value of the input is stored in parameter #5399 -** 'Mode 1: RISE' - waits for the selected input to perform a rise event. -** 'Mode 2: FALL' - waits for the selected input to perform a fall event. -** 'Mode 3: HIGH' - waits for the selected input to go to the HIGH state. -** 'Mode 4: LOW' - waits for the selected input to go to the LOW state. -* 'Q-' - specifies the timeout in seconds for waiting. If the timeout is - exceeded, the wait is interrupt, and the variable #5399 will be holding - the value -1. The Q value is ignored if the L-word is zero (IMMEDIATE). - A Q value of zero is an error if the L-word is non-zero. - -* Mode 0 is the only one permitted for an analog input. - -.M66 Example Lines ----- -M66 P0 L3 (wait for digital input 0 to turn on) -M66 E1 L1 (wait for analog input 1 to rise) ----- - -M66 wait on an input stops further execution of the program, until the -selected event (or the programmed timeout) occurs. - -It is an error to program M66 with both a P-word and an E-word (thus -selecting both an analog and a digital input).In LinuxCNC these inputs are -not monitored in real time and thus should not be used for -timing-critical applications. - -The number of I/O can be increased by using the num_dio or num_aio parameter -when loading the motion controller. See the Integrator's Manual, Core -Components Section, Motion subsection, for more information. - -== M67 Synchronized Analog Output[[sec:M67-Analog-Output]] -(((M67 Analog Motion Output Control))) - ----- -M67 E- Q- ----- -* 'M67' - set an analog output synchronized with motion. -* 'E-' - output number ranging from 0 to 3. -* 'Q-' - is the value to set (set to 0 to turn off). - -The actual change of the specified outputs will happen at the -beginning of the next motion command. If there is no subsequent motion -command, the queued output changes won't happen. It's best to always -program a motion G code (G0, G1, etc) right after the M67. M67 functions -the same as M62-63. - -The number of I/O can be increased by using the num_dio or num_aio parameter -when loading the motion controller. See the Integrator's Manual, Core -Components Section, Motion subsection, for more information. - -== M68 Analog Output[[sec:M68-Analog-Output]] -(((M68 Analog Aux Output Control))) - ----- -M68 E- Q- ----- -* 'M68' - set an analog output immediately. -* 'E-' - output number ranging from 0 to 3. -* 'Q-' - is the value to set (set to 0 to turn off). - -M68 output happen immediately as they are received by the motion -controller. They are not synchronized with movement, and they will -break blending. M68 functions the same as M64-65. - -The number of I/O can be increased by using the num_dio or num_aio parameter -when loading the motion controller. See the Integrator's Manual, Core -Components Section, Motion subsection, for more information. - -== M100 to M199 User Defined Commands[[sec:M100-to-M199]] -(((M100 to M199 User Defined Commands)))(((User Defined Commands M100-M199))) - ----- -M1-- ----- - -* 'M1--' - an integer in the range of 100 - 199. -* 'P-' - a number passed to the file as the first parameter. -* 'Q-' - a number passed to the file as the second parameter. - -The external program 'M1nn' -must be in the directory named in [DISPLAY] PROGRAM_PREFIX in the ini -file and is executed with the P and Q values as its two arguments. -Execution of the RS274/NGC file pauses until the invoked program exits. -Any valid executable file can be used. - -[WARNING] -Do not use a word processor to create or edit the files. A word processor -will leave unseen codes that will cause problems and may prevent a bash or -python file from working. Use a text editor like Gedit in Ubuntu or Notepad++ -in other operating systems to create or edit the files. - -The error 'Unknown M code used' denotes one of the following - -* The specified User Defined Command does not exist -* The file is not an executable file - -For example to open and close a collet closer that is controlled by a -parallel port pin using a bash script file using M101 and M102. Create two -files named M101 and M102. Set them as executable files (typically -right click/properties/permissions) before running LinuxCNC. Make sure the -parallel port pin is not connected to anything in a HAL file. - -.M101 Example File ----- -#!/bin/bash -# file to turn on parport pin 14 to open the collet closer -halcmd setp parport.0.pin-14-out True -exit 0 ----- - -.M102 Example File ----- -#!/bin/bash -# file to turn off parport pin 14 to open the collet closer -halcmd setp parport.0.pin-14-out False -exit 0 ----- - -To pass a variable to a M1nn file you use the P and Q option like this: - ----- -M100 P123.456 Q321.654 ----- - -.M100 Example file ----- -#!/bin/bash -voltage=$1 -feedrate=$2 -halcmd setp thc.voltage $voltage -halcmd setp thc.feedrate $feedrate -exit 0 ----- - -To display a graphic message and stop until the message window is closed -use a graphic display program like Eye of Gnome to display the graphic -file. When you close it the program will resume. - -.M110 Example file ----- -#!/bin/bash -eog /home/john/linuxcnc/nc_files/message.png -exit 0 ----- - -To display a graphic message and continue processing the G code file -suffix an ampersand to the command. - -.M110 Example display and keep going ----- -#!/bin/bash -eog /home/john/linuxcnc/nc_files/message.png & -exit 0 ----- - -// vim: set syntax=asciidoc: diff --git a/docs/src/gcode/m-code_fr.txt b/docs/src/gcode/m-code_fr.txt deleted file mode 100644 index e235771f1fb..00000000000 --- a/docs/src/gcode/m-code_fr.txt +++ /dev/null @@ -1,755 +0,0 @@ -:lang: fr -:toc: - -= Les M-codes - -[[cha:M-codes]] (((Les M-codes))) - -:ini: {basebackend@docbook:'':ini} -:hal: {basebackend@docbook:'':hal} -:ngc: {basebackend@docbook:'':ngc} - -== Table des M-codes - -[width="60%", options="header", cols="2^,5<"] -|======================================================== -| Code | Description -|<> | Pause dans le programme -|<> | Fin de programme -|<> | Pause pour déchargement pièce -|<> | Contrôle de la broche -|<> | Appel d'outil n=numéro d'outil -|<> | Contrôle des arrosages -|<> | Orientation de la broche -|<> | Contrôle des correcteurs de vitesse -|<> | Contrôle du correcteur de vitesse travail -|<> | Contrôle du correcteur de vitesse de broche -|<> | Correcteur dynamique de vitesse d'avance -|<> | Contrôle de la coupure de vitesse -|<> | Correction du numéro de l'outil courant -|<> | Contrôle de sortie numérique -|<> | Contrôle d'entrée numérique et analogique -|<> | Contrôle sortie analogique synchronisée -|<> | Contrôle sortie analogique directe -|<> | Enregistre l'état modal -|<> | Invalide l'état modal enregistré -|<> | Restaure l'état modal -|<> | Enregistrement/auto-restauration de l'état modal -|<> | M-codes définis par l'utilisateur -|======================================================== - -[[sec:M0-M1]] -== M0, M1, pause dans le programme -(((M0 Pause dans le programme))) -(((M1 Pause optionnelle dans le programme))) - -* 'M0' - Effectue une pause temporaire dans le programme en cours -(quelle que soit la position du bouton d'arrêt facultatif). -LinuxCNC reste en mode automatique afin que le MDI ou -d'autres actions manuelles ne puissent pas être activés. Presser le départ -cycle après cette commande relance le programme à la ligne suivante. - -* 'M1' - Stoppe temporairement le programme en cours -(mais seulement si le bouton d'arrêt optionnel est activé). -LinuxCNC reste en mode automatique afin que le MDI ou -d'autres actions manuelles ne puissent pas être activés. Presser le départ -cycle après cette commande relance le programme à la ligne suivante. - -[NOTE] -Il est permis de programmer 'M0' et 'M1' en mode données manuelles (MDI), -mais l'effet ne sera probablement pas perceptible, -puisque le comportement normal en mode MDI est -de s'arrêter, de toute façon, à la fin de chaque ligne. - -[[sec:M2-M30]] -== M2, M30, fin de programme -(((M2 Fin de programme))) -(((M30 Fin de programme avec déchargement pièce))) - -* 'M2' - Indique la fin du programme. Presser le départ cycle après cette -commande relance le programme au début du fichier. - -* 'M30' - Décharge le porte-pièce du chargeur et termine le programme. Presser -le départ cycle après cette commande relance le programme au début du fichier. - -Les deux commandes précédentes produisent les effets suivants: - - . Changement du mode automatique au mode MDI. - . Les décalages d'axes sont mis aux valeurs par défaut (comme avec 'G54'). - . Le plan de travail actif devient XY (comme avec 'G17'). - . Le mode de déplacement devient absolu (comme avec 'G90'). - . La vitesse travail passe en unités par minute (comme avec 'G94'). - . Les correcteurs de vitesse sont activés (comme avec 'M48'). - . Les compensations d'outil sont désactivées (comme avec 'G40'). - . La broche est arrêtée (comme avec 'M5'). - . Le mode mouvement courant devient 'G1' (comme avec 'G1'). - . L'arrosage est arrêté (comme avec 'M9'). - -[NOTE] -Les lignes de code placées après un 'M2' ou un 'M30' ne sont pas exécutées. - -[[sec:M60]] -== M60, pause pour déchargement pièce -(((M60 Pause pour déchargement pièce))) - -* 'M60' - Procède au changement de porte-pièce avec le chargeur de pièces et -effectue une pause dans le programme en cours (quel que soit le réglage -du bouton d'arrêt facultatif). Presser ensuite le bouton de départ cycle pour -relancer le programme à la ligne suivante. - -[[sec:M3-M4-M5]] -== M3, M4, M5 Contrôle de la broche -(((M3 Broche en sens horaire))) -(((M4 Broche en sens anti-horaire))) -(((M5 Arrêt de broche))) - -* 'M3 Snnnnn' - Démarre la broche en sens horaire à la vitesse *nnnnn*. -* 'M4 Snnnnn' - Démarre la broche en sens anti-horaire à la vitesse *nnnnn*. -* 'M5' - Arrête la rotation de la broche. - -Il est permis d'utiliser 'M3' ou 'M4' si la vitesse de broche est à zéro. -Si cela est fait -(ou si le bouton du correcteur de vitesse est activé mais mis à zéro), -la broche ne tournera pas. -Si, plus tard la vitesse de broche est augmentée -(ou que le correcteur de vitesse est augmenté), -la broche va se mettre en rotation. -Il est permis d'utiliser 'M3' ou 'M4' quand la broche est déjà -en rotation ou d'utiliser 'M5' quand la broche est déjà arrêtée. - -[[sec:M6-Appel-Outil]] -== M6 Appel d'outil -(((M6 Appel d'outil))) - -=== Changement d'outil manuel - -Si le composant de HAL, hal_manualtoolchange est chargé, -'M6' va arrêter la broche et inviter l'utilisateur à changer l'outil. -Pour plus d'informations sur hal_manualtoolchange voir -la section <>. - -=== Changement d'outil - -Pour changer l'outil, actuellement dans la broche, par un autre, -nouvellement sélectionné en utilisant le mot T, voir la section -<>, programmer 'M6'. -Un changement d'outil complet donnera: - -* La rotation de la broche est arrêtée. -* L'outil qui a été sélectionné (par le mot T sur la même ligne ou sur - n'importe quelle ligne après le changement d'outil précédent), - sera placé dans la broche. - Le mot *T* est un nombre entier indiquant le - numéro de poche d'outil dans le carrousel (non son index). -* Si l'outil sélectionné n'est pas déjà dans la broche avant le - changement d'outil, l'outil qui était dans la broche - (s'il y en avait un) - va être replacé dans son emplacement dans le chargeur. -* Les coordonnées des axes seront arrêtées dans les mêmes positions - absolues qu'elles avaient avant le changement d'outil (mais la broche - devra peut-être être réorientée). -* Aucune autre modification ne sera apportée. Par exemple, l'arrosage - continue à couler durant le changement d'outil à moins qu'il ne soit - arrêté par 'M9'. - -[WARNING] -La longueur d'outil n'est pas modifié par 'M6', -utilisez un 'G43' après le 'M6' pour changer la longueur d'outil. - -Le changement d'outil peut inclure des mouvements d'axes pendant son exécution. -Il est permis (mais pas utile) de programmer un changement d'outil avec -le même outil que celui qui est déjà dans la broche. -Il est permis également, si il n'y a pas d'outil dans le slot sélectionné, -dans ce cas, la broche sera vide après le changement d'outil. -Si le slot zéro a été le dernier sélectionné, -il n'y aura pas d'outil dans la broche après le changement. - -[[sec:M7-M8-M9]] -== M7, M8, M9 Contrôle de l'arrosage -(((M7 Arrosage gouttelettes))) -(((M8 Arrosage fluide))) -(((M9 Arrêt des arrosages))) - -* 'M7' - Active l'arrosage par gouttelettes. -* 'M8' - Active l'arrosage fluide. -* 'M9' - Arrête tous les arrosages. - -Il est toujours permis d'utiliser une de ces commandes, -que les arrosages soient arrêtés ou non. - -[[sec:M19]] -== M19 Orientation de la broche -(((M19 Orientation de la broche))) - -* 'M19 R- Q- [P-]' - -* 'R' - Position à atteindre à partir de 0, cette valeur doit être comprise entre -0 et 360 degrés. - -* 'Q' - Durée d'attente en secondes pour compléter l'orientation. Si -'motion.spindle.is_oriented' n'est pas devenue vraie dans le temps imparti par Q, -une erreur de timeout se produira. - -* 'P' - Direction de rotation vers la position cible. -** '0' - rotation pour petit mouvement angulaire (défaut) -** '1' - rotation toujours en sens horaire (même direction qu'avec M3) -** '2' - rotation toujours en sens anti-horaire (même direction qu'avec M4) - - -M19 est révoqué par M3,M4 ou M5. - -L'orientation de la broche nécessite un codeur de position avec index, -indiquant la position de la broche ainsi que sa direction de rotation. - -Paramètres de réglage de la section [RS274NGC]. - -ORIENT_OFFSET = 0 à 360 (offset fixe en degrés, ajouté au mot R de M19) - -Broches de HAL - -* 'motion.spindle-orient-angle' (sortie float) -Orientation souhaitée pour M19. Valeur du paramètre R de M19 plus la valeur du -paramètre d'ini [RS274NGC]ORIENT_OFFSET. - -* 'motion.spindle-orient-mode' (sortie s32) -Mode de rotation de la broche souhaité. Reflète le mot P de M19, Défaut = 0 - -* 'motion.spindle-orient' (sortie bit) -Indique le début du cycle d'orientation de la broche. Positionné par M19. -Remis à zéro par M3,M4 ou M5. -Si 'spindle-orient-fault' n'est pas à zéro alors que 'spindle-orient' est vraie -la commande M19 échoue avec un message d'erreur. - -* 'motion.spindle-is-oriented' (entrée bit) -Pin de confirmation de l'orientation de la broche. Termine le cycle -d'orientation. Si 'spindle-orient' est vraie quand 'spindle-is-oriented' est -activée, la pin 'spindle-orient' est mise à zéro et la pin 'spindle-locked' -est activée. La pin 'spindle-brake' est également activée. - -* 'motion.spindle-orient-fault' (entrée s32) -Entrée de code d'erreur pour le cycle d'orientation. Toute valeur, autre que -zéro, provoquera l'abandon du cycle d'orientation. - -* 'motion.spindle-locked' (sortie bit) -Pin indiquant que le cycle de rotation est terminé. Désactivée par M3,M4 ou M5. - - -[[sec:M48-M49]] -== M48, M49 Contrôle des correcteurs de vitesse -(((M48, M49 Autoriser/Inhiber les correcteurs de vitesse))) - -* 'M48' - Autorise les curseurs de corrections de -vitesses de broche et celui de vitesse d'avance travail. -* 'M49' - Inhibe les deux curseurs. - -Il est permis d'autoriser ou d'inhiber ces curseurs quand -ils sont déjà autorisés ou inhibés. Ils peuvent aussi être activés -individuellement en utilisant les commandes 'M50' et 'M51', voir ci-dessous. - -[[sec:M50-Controle-Correcteur-Vitesse-Travail]] -== M50 Contrôle du correcteur de vitesse travail -(((M50 Contrôle du correcteur de vitesse travail))) - -* 'M50 ' - Autorise le curseur de correction de vitesse d'avance travail. Le -paramètre 'P1' est optionnel. -* 'M50 P0' - Inhibe le curseur de correction d'avance travail. - -Quand il est inhibé, le curseur de correction de -vitesse n'a plus aucune influence et les mouvements seront exécutés à la -vitesse d'avance travail programmée. (à moins que ne soit actif un -correcteur de vitesse adaptative). - -[[sec:M51-Controle-Correcteur-Vitesse-Broche]] -== M51 Contrôle du correcteur de vitesse broche -(((M51 Contrôle du correcteur de vitesse broche))) - -* 'M51 ' - Autorise le curseur de correction de vitesse de la broche. Le -paramètre 'P1' est optionnel. -* 'M51 P0' - Inhibe le curseur de correction de vitesse de broche. - -Quand il est inhibé, le curseur de correction de vitesse de broche -n'a plus aucune influence, et la broche tournera à la vitesse programmée, -en utilisant le mot 'S' comme décrit dans la section <>. - -[[sec:M52-Controle-Vitesse-Adaptative]] -== M52 Contrôle de vitesse adaptative -(((M52 Contrôle vitesse adaptative))) - -* 'M52 P1' - Utilise une vitesse adaptative. Le paramètre 'P1' est optionnel. -* 'M52 P0' - Cesse l'utilisation d'une vitesse adaptative. - -Quand la vitesse adaptative est utilisée, certaines valeurs externes sont -utilisées avec les correcteurs de vitesse de l'interface utilisateur et -les vitesses programmées pour obtenir la vitesse travail. -Dans LinuxCNC, la HAL pin 'motion.adaptive-feed' est utilisée dans ce but. -Les valeurs de 'motion.adaptive-feed' doivent être dans comprises -entre 0 (vitesse nulle) et 1 (pleine vitesse). - -[[sec:M53-Controle-Coupure-Vitesse]] -== M53 Contrôle de la coupure de vitesse -(((M53 Contrôle coupure vitesse))) - -* 'M53 P1' - Autorise le bouton de coupure de vitesse. Le paramètre 'P1' est -optionnel. Autoriser la coupure de vitesse permet d'interrompre les mouvements -par le biais d'une coupure de vitesse. Dans LinuxCNC, la HAL pin -'motion.feed-hold' est utilisée pour cette fonctionnalité. Une valeur -de 1 provoque un arrêt des mouvements quand 'M53' est actif. -* 'M53 P0' - Inhibe le bouton de coupure de vitesse. L'état de -'motion.feed-hold' est sans effet sur la vitesse quand 'M53' est inhibé. - -[[sec:M61-Correction-Numero-Outil-Courant]] -== M61 Correction du numéro de l'outil courant -(((M61 Correction du numéro de l'outil courant))) - -* 'M61 Q ' - Corrige le numéro de l'outil courant, en mode MDI ou après un -changement manuel d'outil dans la fenêtre de données manuelles. Au démarrage -de LinuxCNC avec un outil dans la broche, il est possible ainsi d'ajuster le -numéro de l'outil courant sans faire de changement d'outil. - -C'est une erreur si: - -* Q n'est pas égal où supérieur à 0 - -[[sec:M62-a-M65-Ctrl-Sortie-Numerique]] -== M62 à M65 Contrôle de bits de sortie numérique -(((M62 Contrôle un bit de sortie numérique))) - -* 'M62 P' - Active un bit de sortie numérique en synchronisme avec -un mouvement. -* 'M63 P' - Désactive un bit de sortie numérique en synchronisme avec -un mouvement. -* 'M64 P' - Active immédiatement un bit de sortie numérique. -* 'M65 P' - Désactive immédiatement un bit de sortie numérique. - -Le mot 'P' spécifie le numéro du bit de sortie numérique. Le mot P doit -être compris entre 0 et une valeur par défaut de 3. Si nécessaire, le -nombre des entrées/sorties peut être augmenté en utilisant -le paramètre 'num_dio' lors du chargement du contrôleur de mouvement. -Voir le manuel de l'intégrateur et section "LinuxCNC et HAL", -pour plus d'informations. - -Les commandes 'M62' et 'M63' seront mises en file d'attente. -Toute nouvelle commande, destinée à un bit de sortie écrasera l'ancien -réglage de ce bit. Plusieurs bits peuvent changer d'état -simultanément par l'envoi de plusieurs commandes M62/M63. - -Les nouveaux changements d'état des bits de sortie spécifiés, seront -effectifs au début du prochain mouvement commandé. S'il n'y a pas de -commande de mouvement ultérieur, les changements en attente -n'auront pas lieu. Il est préférable de toujours programmer un -G-code de mouvement (G0, G1, etc) juste après les M62/63. - -'M64' et 'M65' produisent leur effet immédiatement après être reçus par le -contrôleur de mouvement. Ils ne sont pas synchronisés avec un mouvement. - -[NOTE] -M62 à M66 ne seront opérationnels que si les pins 'motion.digital-out-nn' -appropriées sont connectées aux sorties dans le fichier HAL. - -[[sec:M66-Ctrl-Entree-Numerique-Et-Analogique]] -== M66 Contrôle d'entrée numérique et analogique -(((M66 Contrôle d'entrée numerique et analogique))) - ----- -M66 P- | E- ----- -* 'P' - Spécifie le numéro d'un bit d'entrée numérique entre 0 et 3. -* 'E' - Spécifie le numéro d'un bit d'entrée analogique entre 0 et 3. -* 'L' - Spécifie le mode d'attente. -** Mode 0: 'IMMEDIATE' - pas d'attente, retour immédiat, la valeur courante de -l'entrée est stockée dans le paramètre #5399 -** Mode 1: 'RISE' attente d'un front montant sur l'entrée. -** Mode 2: 'FALL' attente d'un front descendant sur l'entrée. -** Mode 3: 'HIGH' attente d'un état logique HAUT sur l'entrée. -** Mode 4: 'LOW' attente d'un état logique BAS sur l'entrée. -* 'Q' - Spécifie le timeout pour l'attente, en secondes. Si le timeout est -dépassé, l'attente est interrompue et la variable #5399 positionnée à -1. -* Le mode '0' est le seul autorisé pour une entrée analogique. - -.Exemple de ligne avec M66 ----- -M66 P0 L3 Q5 (attend jusqu'à 5 secondes la montée de l'entrée numérique 0) ----- - -* 'M66' attend un nouvel événement sur une entrée ou la fin de l'exécution -du programme, jusqu'à ce que l'événement sélectionné (ou le timeout -programmé) ne survienne. -C'est également une erreur de programmer 'M66' avec les deux -mots, un mot P- et un mot E- (ce qui reviendrait à sélectionner à la fois une -entrée analogique et une numérique). - -Si nécessaire, le nombre des entrées/sorties peut être augmenté en -utilisant les paramètres 'num_dio' ou 'num_aio' lors du chargement du -contrôleur de mouvement. Voir le Manuel de l'intégrateur pour -plus d'informations, section des configurations, paragraphes "LinuxCNC et HAL". - -[NOTE] -M66 ne sera opérationnel que si les pins motion.digital-in-nn ou -motion.analog-in-nn appropriées sont connectées aux entrées dans le fichier HAL. - -[[sec:M67-Ctrl-Sortie-Analogique-Synchro]] -== M67 Contrôle de sortie analogique -(((M67 Contrôle de sortie analogique synchronisée avec un mouvement))) - ----- -M67 E- Q- ----- -* 'M67' - Contrôle une sortie analogique synchronisée avec un mouvement. -* 'E' - Spécifie le numéro de la sortie, doit être compris entre 0 et 3. -* 'Q' - Spécifie la valeur à appliquer sur la sortie. - -Les changements de valeur spécifiés, seront effectifs au début du -prochain mouvement commandé. S'il n'y a pas de commande de mouvement ultérieur, -les changements en attente n'auront pas lieu. Il est préférable de toujours -programmer un G-code de mouvement (G0, G1, etc) juste après les M67. -M67 fonctionne comme M62 à M63. - -Le nombre d'entrées/sorties peut être augmenté en utilisant le paramètre -'num_aio' au chargement du contrôleur de mouvement. Voir les chapitres -"LinuxCNC et HAL" dans la section configuration du Manuel de l'intégrateur -pour plus d'informations sur le contrôleur de mouvement. - -[NOTE] -M67 ne sera opérationnel que si les pins motion.analog-out-nn appropriées sont -connectées aux sorties dans le fichier HAL. - -[[sec:M68-Ctrl-Sortie-Analogique-Directe]] -== M68 Contrôle de sortie analogique directe -(((M68 Contrôle de Sortie analogique directe))) - ----- -M68 E- Q- ----- -* 'M68' - Contrôle directement une sortie analogique. -* 'E' - Spécifie le numéro de la sortie, doit être compris entre 0 et 3. -* 'Q' - Spécifie la valeur à appliquer sur la sortie. - -M68 produit son effet immédiatement après être reçu par le -contrôleur de mouvement. Il n'est pas synchronisé avec un mouvement. -M68 fonctionne comme M64 à M65. - -Le nombre d'entrées/sorties peut être augmenté en utilisant -le paramètre 'num_aio' au chargement du contrôleur de mouvement. Voir le -chapitre "LinuxCNC et HAL" dans le Manuel de l'intégrateur pour plus -d'informations sur le contrôleur de mouvement. - -[NOTE] -M68 ne sera opérationnel que si les pins 'motion.analog-out-nn' appropriées sont -connectées aux sorties dans le fichier HAL. - -[[sec:M70-Save-Modal-State]] -== M70 Enregistrement de l'état modal -(((M70 Save Modal State))) - -Pour enregistrer explicitement l'état modal au niveau de l'appel courant, -programmer 'M70'. Une fois l'état modal enregistré avec 'M70', il peut être -restauré exactement dans le même état en exécutant un 'M72'. - -Une paire d'instructions 'M70' et 'M72' est typiquement utilisée pour protéger -un programme contre d'éventuels changements modaux pouvant se produire dans les -sous-programmes. - -[[saved_state_by_M70]] -Les états enregistrés sont les suivants: - -* unités machine courantes G20/G21 (po/mm) -* plan de travail courant (G17/G18/G19 G17.1,G18.1,G19.1) -* statut de la compensation de rayon d'outil (G40,G41,G42,G41.1,G42,1) -* mode de déplacement - relatif/absolu (G90/G91) -* mode de vitesse (G93/G94,G95) -* coordonnées système courantes (G54-G59.3) -* statut de la compensation de longueur d'outil (G43,G43.1,G49) -* options du plan de retrait (G98,G99) -* mode de contrôle de broche (G96-css ou G97-RPM) -* mode de déplacement en arc (G90.1, G91.1) -* mode diamètre/rayon des tours (G7,G8) -* mode de contrôle de trajectoire (G61, G61.1, G64) -* avance et vitesse broche courantes (valeurs 'F' et 'S') -* statut de la broche (M3,M4,M5) - on/off et direction -* statut de l'arrosage (M7) et (M8) -* réglages des correcteurs de vitesse broche (M51) et du correcteur de vitesse -travail (M50) -* réglage du contrôle de vitesse adaptative (M52) -* réglage du contrôle de la coupure de vitesse (M53) - -Noter qu'en particulier, les modes de mouvement (G1 etc) ne sont 'PAS' restaurés. - -'Le niveau de l'appel courant' signifie: - - * Exécution dans le programme principal. Il n'y a qu'un seul emplacement de -stockage pour l'état modal au niveau du programme principal; si plusieurs -instructions 'M70' sont exécutées tour à tour, seul l'état enregistré le plus -récent est restauré quand un 'M72' est exécuté. - - * Exécution dans un sous-programme G-code. L'état enregistré par 'M70' -dans un sous-programme se comporte exactement comme un paramètre nommé local - -on ne peut s'y référer qu'à l'intérieur du sous-programme en invoquant un 'M72', -à la sortie du sous-programme, le paramètre disparaît. - -Une invocation récursive d'un sous-programme introduit un nouveau niveau d'appel. - -[[sec:M71-Invalidate-Stored-Modal-State]] -== M71 Invalidation de l'état modal enregistré -(((M71 Invalidate Stored Modal State))) - -<> ou par -<> au niveau de l'appel courant est -invalidé (ne peut plus être restauré nulle part). - -Un appel ultérieur à 'M72' sur le même niveau d'appel, échouera. - -Si il est exécuté dans un sous-programme qui protège l'état modal par un 'M73', -un 'return' ou 'endsub' ultérieur ne restaurera 'PAS' l'état modal. - -L'utilité de ce dispositif est douteuse. Il ne devrait pas être invoqué quand -il peut disparaître. - -[[sec:M72-Restore-Modal-State]] -== M72 Restauration de l'état modal -(((M72 Restore Modal State))) - -<> peut être -restauré en exécutant un 'M72'. - -La gestion de G20/G21 reçoit un traitement particulier car les avances sont -interprétées différemment selon G20/G21: si les unités de longueur (mm/po) -doivent être modifiées par une opération de restauration, 'M72' va restaurer le -mode distance en premier, puis ensuite tous les autres états, y compris les -avances pour être sure que les valeurs d'avance soient interprétées selon un -réglage d'unités correct. - -C'est une erreur d'exécuter 'M72' sans enregistrement précédent avec 'M70' à -ce niveau. - -L'exemple suivant montre l'enregistrement puis la restauration de l'état modal -autour de l'appel d'un sous-programme utilisant 'M70' et 'M72'. Noter que -le sous-programme 'imperialsub' n'est pas "au courant" des caractéristiques de -M7x et peut être utilisé non modifié: - - -[source,{ngc}] ----- -O sub -(DEBUG, imperial=#<_imperial> absolute=#<_absolute> feed=#<_feed> rpm=#<_rpm>) -O endsub - -O sub -g20 (imperial) -g91 (relative mode) -F5 (low feed) -S300 (low rpm) -(debug, in subroutine, state now:) -o call -O endsub - -; programme principal -g21 (metric) -g90 (absolute) -f200 (fast speed) -S2500 (high rpm) - -(debug, in main, state now:) -o call - -M70 (save caller state in at global level) -O call -M72 (explicitely restore state) - -(debug, back in main, state now:) -o call -m2 ----- - -[[sec:M73-Save-Autorestore-Modal-State]] -== M73 Enregistrement et auto-restauration de l'état modal -(((M73 Save and Autorestore Modal State))) - - -Pour enregistrer l'état modal à l'intérieur d'un sous-programme et restaurer cet -état lors d'un 'endsub' ou autre 'return', programmer 'M73'. - -En cas d'abandon d'un programme en cours d'exécution dans un sous-programme -traitant un 'M73', l'état ne sera *PAS* restauré. - -En outre, la fin normale ('M2') d'un programme principal contenant un 'M73' ne -restaurera *pas* l'état. - -L'utilisation suggérée consiste à placer au début d'un sous-programme, un O-code -de sous-programme comme dans l'exemple ci-dessous. En utilisant 'M73', cette -manière valide le design des sous-programmes qui doivent modifier l'état modal -mais qui protège le programme appelant contre tout changement inopiné de -l'état modal. Noter l'usage de <> dans -le sous-programme 'showstate'. - -[source,{ngc}] ----- -O sub -(DEBUG, imperial=#<_imperial> absolute=#<_absolute> feed=#<_feed> rpm=#<_rpm>) -O endsub - -O sub -M73 (save caller state in current call context, restore on return or endsub) -g20 (imperial) -g91 (relative mode) -F5 (low feed) -S300 (low rpm) -(debug, in subroutine, state now:) -o call - -; note - M72 n'est pas utilisé ici - le endsub suivant ou un -; 'return' explicite restaurera l'état de l'appelant -O endsub - -; programme principal -g21 (metric) -g90 (absolute) -f200 (fast speed) -S2500 (high rpm) -(debug, in main, state now:) -o call -o call -(debug, back in main, state now:) -o call -m2 ----- - - -== Restauration sélective de l'état modal par le test de paramètres prédéfinis[[sec:Selectively-restoring-modal-state]] - -Exécuter un 'M72' ou au retour d'un sous-programme contenant un 'M73_ pour -restaurer <>. - -Si seulement certains aspects de l'état modal doivent être préservés, une -alternative consiste a utiliser les <>, paramètres locaux et états conditionnels. L'idée est de rappeler -les modes à restaurer au début du sous-programme et de restaurer ceux-ci avant -de quitter. Voici un exemple, basé sur le programme -'nc_files/tool-length-probe.ngc': - - -[source,{ngc}] ----- -O sub (measure reference tool) -; -# = #<_absolute> (remember in local variable if G90 was set) -; -g30 (above switch) -g38.2 z0 f15 (measure) -g91 g0z.2 (off the switch) -#1000=#5063 (save reference tool length) -(print,reference length is #1000) -; -O if [#] - g90 (restore G90 only if it was set on entry:) -O endif -; -O endsub - ----- - - -[[sec:M100-a-M199]] -== M100 à M199 Commandes définies par l'utilisateur -(((M100 à M199 M-codes définis par l'utilisateur))) -(((M-codes définis par l'utilisateur M100-M199))) - ----- -M1-- ----- - -* 'M1 --' - Un entier compris entre 100 et 199. -* 'P' - Un nombre passé comme premier argument au programme externe. -* 'Q' - Un nombre passé comme second argument au programme externe. - -Le programme externe, nommé 'M100' à 'M199', (avec un 'M' majuscule et aucune -extension) qui doit se trouver dans le répertoire pointé par la variable -'[DISPLAY] PROGRAM_PREFIX' du fichier ini, sera exécuté avec les valeurs -'P-' et 'Q-' comme étant ses deux arguments. L'exécution du fichier G-code -courant passera en pause jusqu'à ce que le programme invoqué soit terminé. -Tout fichier exécutable valide peut être utilisé. Le fichier doit se trouver -dans le chemin spécifié dans le fichier ini de configuration. Voir la section -sur le fichier de configuration dans le manuel de l'intégrateur. - -Après la création d'un nouveau programme M1nn, l'interface graphique doit être -redémarrée pour que le nouveau programme soit pris en compte, autrement une -erreur 'M-code inconnu' surviendra. - -[WARNING] -Ne pas utiliser un traitement de texte pour créer ou éditer ces fichiers. -Un traitement de texte ajoute des caractères invisibles qui causent des problèmes -et empêchent les scripts bash ou Python de fonctionner. Pour ces raisons, -utiliser un éditeur de texte tel que 'Gedit' dans Ubuntu ou le Notepad++ dans un -autre OS. - -Le message d'erreur 'M-code inconnu' signifie que: - -* La commande utilisateur spécifiée n'existe pas. -* Le fichier n'a pas été rendu exécutable. -* Le nom du fichier comporte une extension. -* Le nom du fichier ne suis pas le format suivant: M1nn où nn = 00 à 99. -* Le nom de fichier utilise un 'm' minuscule. - -Exemple d'utilisation, dans un programme G-code, on doit ouvrir et fermer un -mandrin automatique via une broche du port parallèle, on appellera -respectivement M101 pour ouvrir le mandrin et M102 pour le fermer. Les -deux scripts bash correspondants, appelés M101 et M102 seront créés avant -le lancement de LinuxCNC puis rendus exécutables, par exemple par un clic -droit puis 'propriétés → permissions → Exécution'. S'assurer que cette -broche du port parallèle n'est pas déjà utilisée dans un fichier de HAL. - -.Exemple de fichier pour M101 ----- -#!/bin/bash -# ce fichier met la broche 14 du port à 1 pour ouvrir le mandrin automatique -halcmd setp parport.0.pin-14-out True -exit 0 ----- - -.Exemple de fichier pour M102 ----- -#!/bin/bash -# ce fichier met la broche 14 du port à 0 pour fermer le mandrin automatique -halcmd setp parport.0.pin-14-out False -exit 0 ----- - -Pour passer des variables à un fichier M1nn, utiliser les mots facultatifs -P et Q de cette façon: - ----- -M100 P123.456 Q321.654 ----- - -.Exemple pour M100 ----- -#!/bin/bash -tension=$1 -vitesse=$2 -halcmd setp thc.voltage $tension -halcmd setp thc.feedrate $vitesse -exit 0 ----- - -Pour ouvrir un message graphique et passer en pause jusqu'à ce que la fenêtre -du message soit fermée, utiliser un programme comme 'Eye of Gnome' pour -afficher le fichier graphique. Quand la fenêtre sera fermée, le programme -reprendra. - -.Exemple pour M110, affichage d'un graphique avec passage en pause ----- -#!/bin/bash -eog /home/robert/linuxcnc/nc_files/message.png -exit 0 ----- - -Pour afficher un message graphique en continuant le traitement du fichier -G-code, ajouter un caractère esperluette à la commande. - -.Exemple pour M110, affichage d'un graphique sans passer en pause ----- -#!/bin/bash -eog /home/robert/linuxcnc/nc_files/message.png & -exit 0 ----- - -// vim: set syntax=asciidoc: diff --git a/docs/src/gcode/machining_center.txt b/docs/src/gcode/machining_center.txt deleted file mode 100644 index e7cd48fc2b2..00000000000 --- a/docs/src/gcode/machining_center.txt +++ /dev/null @@ -1,377 +0,0 @@ -= CNC Machine Overview - -[[cha:cnc-machine-overview]] (((CNC Machine Overview))) - -This section gives a brief description of how a CNC machine is viewed -from the input and output ends of the Interpreter. - -== Mechanical Components - -A CNC machine has many mechanical components that may be controlled or -may affect the way in which control is exercised. This section -describes the subset of those components that interact with the -Interpreter. Mechanical components that do not interact directly with -the Interpreter, such as the jog buttons, are not described here, even -if they affect control. - -=== Axes - -Any CNC machine has one or more Axes. Different types of CNC machines -have different combinations. For instance, a '4-axis milling machine' -may have XYZA or XYZB axes. A lathe typically has XZ axes. A -foam-cutting machine may have XYUV axes. In LinuxCNC, the case of a XYYZ -'gantry' machine with two motors for one axis is better handled by -kinematics rather than by a second linear axis. footnote:[If the -motion of mechanical components is not independent, as with -hexapod machines, the RS274/NGC language and the canonical machining -functions will still be usable, as long as the lower levels of control -know how to control the actual mechanisms to produce the same relative -motion of tool and workpiece as would be produced by independent axes. -This is called 'kinematics'.] - -.Primary Linear Axes (((axes, primary linear))) - -The X, Y, and Z axes produce linear motion in three mutually -orthogonal directions. - -.Secondary Linear Axes (((axes, secondary linear))) - -The U, V, and W axes produce linear motion in three mutually -orthogonal directions. Typically, X and U are parallel, Y and V are -parallel, and Z and W are parallel. - -.Rotational Axes (((axes, rotational))) - -The A, B and C axes produce angular motion (rotation). Typically, A -rotates around a line parallel to X, B rotates around a line parallel -to Y, and C rotates around a line parallel to Z. - -=== Spindle (((spindle))) - -A CNC machine typically has a spindle which holds one cutting tool, -probe, or the material in the case of a lathe. The spindle may or may -not be controlled by the CNC software. - -=== Coolant (((coolant))) - -If a CNC machine has components to provide mist coolant and/or flood -coolant they can be controlled by G codes. - -[[sub:Feed-and-Speed]] -=== Feed and Speed Override - -(((feed override))) -(((spindle speed override))) - -A CNC machine can have separate feed and speed override controls, -which let the operator specify that the actual feed rate or spindle -speed used in machining at some percentage of the programmed rate. - -[[sub:Block-Delete-Switch]] -=== Block Delete Switch - -(((optional block delete))) - -A CNC machine can have a block delete switch. See the -<> Section. - -[[sub:Optional-Program-Stop]] -=== Optional Program Stop Switch - -(((optional program stop))) - -A CNC machine can have an optional program stop switch. See the -<> Section. - -== Control and Data Components - -=== Linear Axes - -The X, Y, and Z axes form a standard right-handed coordinate system of -orthogonal linear axes. Positions of the three linear motion mechanisms -are expressed using coordinates on these axes. - -The U, V and W axes also form a standard right-handed coordinate -system. X and U are parallel, Y and V are parallel, and Z and W are -parallel (when A, B, and C are rotated to zero). - -=== Rotational Axes - -The rotational axes are measured in degrees as wrapped linear axes in -which the direction of positive rotation is counterclockwise when -viewed from the positive end of the corresponding X, Y, or Z-axis. By -'wrapped linear axis', we mean one on which the angular position -increases without limit (goes towards plus infinity) as the axis turns -counterclockwise and deceases without limit (goes towards minus -infinity) as the axis turns clockwise. Wrapped linear axes are used -regardless of whether or not there is a mechanical limit on rotation. - -Clockwise or counterclockwise is from the point of view of the -workpiece. If the workpiece is fastened to a turntable which turns on a -rotational axis, a counterclockwise turn from the point of view of the -workpiece is accomplished by turning the turntable in a direction that -(for most common machine configurations) looks clockwise from the point -of view of someone standing next to the machine. footnote:[If the -parallelism requirement is violated, the system builder will -have to say how to distinguish clockwise from counterclockwise.] - -[[sub:Controlled-Point]] -=== Controlled Point - -(((controlled point))) - -The controlled point is the point whose position and rate of motion -are controlled. When the tool length offset is zero (the default -value), this is a point on the spindle axis (often called the gauge -point) that is some fixed distance beyond the end of the spindle, -usually near the end of a tool holder that fits into the spindle. The -location of the controlled point can be moved out along the spindle -axis by specifying some positive amount for the tool length offset. -This amount is normally the length of the cutting tool in use, so that -the controlled point is at the end of the cutting tool. On a lathe, -tool length offsets can be specified for X and Z axes, and the -controlled point is either at the tool tip or slightly outside it -(where the perpendicular, axis-aligned lines touched by the 'front' and -'side' of the tool intersect). - -[[sub:Coordinate-Linear-Motion]] -=== Coordinated Linear Motion - -To drive a tool along a specified path, a machining center must often -coordinate the motion of several axes. We use the term 'coordinated -linear motion' to describe the situation in which, nominally, each axis -moves at constant speed and all axes move from their starting positions -to their end positions at the same time. If only the X, Y, and Z axes -(or any one or two of them) move, this produces motion in a straight -line, hence the word 'linear' in the term. In actual motions, it is -often not possible to maintain constant speed because acceleration or -deceleration is required at the beginning and/or end of the motion. It -is feasible, however, to control the axes so that, at all times, each -axis has completed the same fraction of its required motion as the -other axes. This moves the tool along same path, and we also call this -kind of motion coordinated linear motion. - -Coordinated linear motion can be performed either at the prevailing -feed rate, or at traverse rate, or it may be synchronized to the -spindle rotation. If physical limits on axis speed make the desired -rate unobtainable, all axes are slowed to maintain the desired path. - - -=== [[sub:feed-rate]]Feed Rate - -(((feed rate))) - -The rate at which the controlled point or the axes move is nominally a -steady rate which may be set by the user. In the Interpreter, the -interpretation of the feed rate is as follows unless 'inverse time -feed' or 'feed per revolution' modes are being used see Section -<>. - - . If any of XYZ are moving, F is in units per minute in the XYZ - cartesian system, and all other axes (ABCUVW) move so as to start and - stop in coordinated fashion. - . Otherwise, if any of UVW are moving, F is in units per minute in the - UVW cartesian system, and all other axes (ABC) move so as to start and - stop in coordinated fashion. - . Otherwise, the move is pure rotary motion and the F word is in rotary - units in the ABC 'pseudo-cartesian' system. - -=== Coolant (((coolant))) - -Flood coolant and mist coolant may each be turned on independently. -The RS274/NGC language turns them off together see Section -<>. - -=== Dwell (((dwell))) - -A machining center may be commanded to dwell (i.e., keep all axes -unmoving) for a specific amount of time. The most common use of dwell -is to break and clear chips, so the spindle is usually turning during a -dwell. Regardless of the Path Control Mode (see Section -<>) the machine will stop exactly at the end of -the previous programmed move, as though it was in exact path mode. - -=== Units (((units))) - -Units used for distances along the X, Y, and Z axes may be measured in -millimeters or inches. Units for all other quantities involved in -machine control cannot be changed. Different quantities use different -specific units. Spindle speed is measured in revolutions per minute. -The positions of rotational axes are measured in degrees. Feed rates -are expressed in current length units per minute, or degrees per -minute, or length units per spindle revolution, as described in Section -<>. - -=== Current Position - -The controlled point is always at some location called the 'current -position', and the controller always knows where that is. The numbers -representing the current position must be adjusted in the absence of -any axis motion if any of several events take place: - - . Length units are changed. - . Tool length offset is changed. - . Coordinate system offsets are changed. - -[[sub:Selected-Plane]] -=== Selected Plane - -There is always a 'selected plane', which must be the XY-plane, the -YZ-plane, or the XZ-plane of the machining center. The Z-axis is, of -course, perpendicular to the XY-plane, the X-axis to the YZ-plane, and -the Y-axis to the XZ-plane. - -=== Tool Carousel - -Zero or one tool is assigned to each slot in the tool carousel. - -=== Tool Change - -A machining center may be commanded to change tools. - -=== Pallet Shuttle - -The two pallets may be exchanged by command. - -[[sec:Path-Control-Mode]] -=== Path Control Mode - -(((path control mode))) - -The machining center may be put into any one of three path control -modes: (1) exact stop mode, (2) exact path mode, or (3) continuous mode -with optional tolerance. In exact stop mode, the machine stops briefly -at the end of each programmed move. In exact path mode, the machine -follows the programmed path as exactly as possible, slowing or stopping -if necessary at sharp corners of the path. In continuous mode, sharp -corners of the path may be rounded slightly so that the feed rate may -be kept up (but by no more than the tolerance, if specified). See -Sections <> and <>. - -== Interpreter Interaction with Switches - -The Interpreter interacts with several switches. This section -describes the interactions in more detail. In no case does the -Interpreter know what the setting of any of these switches is. - -=== Feed and Speed Override Switches[[feed-interaction]] - -The Interpreter will interpret RS274/NGC commands which enable 'M48' -or disable 'M49' the feed and speed override switches. For certain -moves, such as the -traverse out of the end of a thread during a threading cycle, the -switches are disabled automatically. - -LinuxCNC reacts to the speed and feed override settings when these -switches are enabled. - -See the <> section for more -information. - -[[sub:Block-Delete-Switch-Interaction]] -=== Block Delete Switch - -(((block delete))) - -If the block delete switch is on, lines of G code which start -with a slash (the block delete character) are not interpreted. If the -switch is off, such lines are interpreted. Normally the block delete -switch should be set before starting the NGC program. - -[[sub:Optional-Program-Stop-Interaction]] -=== Optional Program Stop Switch - -(((optional program stop))) - -If this switch is on and an M1 code is encountered, program execution -is paused. - -[[sub:Tool-Table]] -== Tool Table - -A tool table is required to use the Interpreter. The file tells which -tools are in which tool changer slots and what the size and type of -each tool is. The name of the tool table is defined in the ini file: - ----- -[EMCIO] - -# tool table file -TOOL_TABLE = tooltable.tbl ----- - -The default filename probably looks something like the above, but -you may prefer to give your machine its own tool table, using the -same name as your ini file, but with a tbl extension: - ----- -TOOL_TABLE = acme_300.tbl ----- - -or - ----- -TOOL_TABLE = EMC-AXIS-SIM.tbl ----- - -For more information on the specifics of the tool table format, -see the <> Section. - -[[sec:Parameters]] -== Parameters - -(((parameters))) - -In the RS274/NGC language view, a machining center maintains an array -of numerical parameters defined by a system definition -(RS274NGC_MAX_PARAMETERS). Many of them have specific uses especially -in defining coordinate systems. The number of numerical parameters can -increase as development adds support for new parameters. The parameter -array persists over time, even if the machining center is powered down. -LinuxCNC uses a parameter file to ensure persistence and gives the -Interpreter the responsibility for maintaining the file. The -Interpreter reads the file when it starts up, and writes the file when -it exits. - -All parameters are available for use in G code programs. - -The format of a parameter file is shown in the following table. -The file consists of any number of -header lines, followed by one blank line, followed by any number of -lines of data. The Interpreter skips over the header lines. It is -important that there be exactly one blank line (with no spaces or tabs, -even) before the data. The header line shown in the following table -describes the data columns, so it is -suggested (but not required) that that line always be included in the -header. - -The Interpreter reads only the first two columns of the table. The -third column, 'Comment', is not read by the Interpreter. - -Each line of the file contains the index number of a parameter in the -first column and the value to which that parameter should be set in the -second column. The value is represented as a double-precision floating -point number inside the Interpreter, but a decimal point is not -required in the file. All of the parameters shown in the following table -are required parameters and must be -included in any parameter file, except that any parameter representing -a rotational axis value for an unused axis may be omitted. An error -will be signaled if any required parameter is missing. A parameter -file may include any other parameter, as long as its number is in the -range 1 to 5400. The parameter numbers must be arranged in ascending -order. An error will be signaled if not. Any parameter included in the -file read by the Interpreter will be included in the file it writes as -it exits. The original file is saved as a backup file when the new file -is written. Comments are not preserved when the file is written. - -.Parameter File Format[[cap:Parameter-File-Format]] - -[width="75%", options="header", cols="^,^,<"] -|======================================== -|Parameter Number | Parameter Value | Comment -|5161 | 0.0 | G28 Home X -|5162 | 0.0 | G28 Home Y -|======================================== - -See the <> section for more information. - diff --git a/docs/src/gcode/machining_center_es.txt b/docs/src/gcode/machining_center_es.txt deleted file mode 100644 index 34bc7a241ca..00000000000 --- a/docs/src/gcode/machining_center_es.txt +++ /dev/null @@ -1,378 +0,0 @@ -= CNC Machine Overview - -[[cha:cnc-machine-overview]] (((CNC Machine Overview))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -This section gives a brief description of how a CNC machine is viewed -from the input and output ends of the Interpreter. - -== Mechanical Components - -A CNC machine has many mechanical components that may be controlled or -may affect the way in which control is exercised. This section -describes the subset of those components that interact with the -Interpreter. Mechanical components that do not interact directly with -the Interpreter, such as the jog buttons, are not described here, even -if they affect control. - -=== Axes - -Any CNC machine has one or more Axes. Different types of CNC machines -have different combinations. For instance, a '4-axis milling machine' -may have XYZA or XYZB axes. A lathe typically has XZ axes. A -foam-cutting machine may have XYUV axes. In LinuxCNC, the case of a XYYZ -'gantry' machine with two motors for one axis is better handled by -kinematics rather than by a second linear axis. footnote:[If the -motion of mechanical components is not independent, as with -hexapod machines, the RS274/NGC language and the canonical machining -functions will still be usable, as long as the lower levels of control -know how to control the actual mechanisms to produce the same relative -motion of tool and workpiece as would be produced by independent axes. -This is called 'kinematics'.] - -.Primary Linear Axes (((axes, primary linear))) - -The X, Y, and Z axes produce linear motion in three mutually -orthogonal directions. - -.Secondary Linear Axes (((axes, secondary linear))) - -The U, V, and W axes produce linear motion in three mutually -orthogonal directions. Typically, X and U are parallel, Y and V are -parallel, and Z and W are parallel. - -.Rotational Axes (((axes, rotational))) - -The A, B and C axes produce angular motion (rotation). Typically, A -rotates around a line parallel to X, B rotates around a line parallel -to Y, and C rotates around a line parallel to Z. - -=== Spindle (((spindle))) - -A CNC machine typically has a spindle which holds one cutting tool, -probe, or the material in the case of a lathe. The spindle may or may -not be controlled by the CNC software. - -=== Coolant (((coolant))) - -If a CNC machine has components to provide mist coolant and/or flood -coolant they can be controlled by G codes. - -=== Feed and Speed Override [[sub:Feed-and-Speed]] - -(((feed override))) -(((spindle speed override))) - -A CNC machine can have separate feed and speed override controls, -which let the operator specify that the actual feed rate or spindle -speed used in machining at some percentage of the programmed rate. - -=== Block Delete Switch[[sub:Block-Delete-Switch]] - -(((optional block delete))) - -A CNC machine can have a block delete switch. See the -<> Section. - -=== Optional Program Stop Switch[[sub:Optional-Program-Stop]] - -(((optional program stop))) - -A CNC machine can have an optional program stop switch. See the -<> Section. - -== Control and Data Components - -=== Linear Axes - -The X, Y, and Z axes form a standard right-handed coordinate system of -orthogonal linear axes. Positions of the three linear motion mechanisms -are expressed using coordinates on these axes. - -The U, V and W axes also form a standard right-handed coordinate -system. X and U are parallel, Y and V are parallel, and Z and W are -parallel (when A, B, and C are rotated to zero). - -=== Rotational Axes - -The rotational axes are measured in degrees as wrapped linear axes in -which the direction of positive rotation is counterclockwise when -viewed from the positive end of the corresponding X, Y, or Z-axis. By -'wrapped linear axis', we mean one on which the angular position -increases without limit (goes towards plus infinity) as the axis turns -counterclockwise and deceases without limit (goes towards minus -infinity) as the axis turns clockwise. Wrapped linear axes are used -regardless of whether or not there is a mechanical limit on rotation. - -Clockwise or counterclockwise is from the point of view of the -workpiece. If the workpiece is fastened to a turntable which turns on a -rotational axis, a counterclockwise turn from the point of view of the -workpiece is accomplished by turning the turntable in a direction that -(for most common machine configurations) looks clockwise from the point -of view of someone standing next to the machine. footnote:[If the -parallelism requirement is violated, the system builder will -have to say how to distinguish clockwise from counterclockwise.] - -=== Controlled Point[[sub:Controlled-Point]] - -(((controlled point))) - -The controlled point is the point whose position and rate of motion -are controlled. When the tool length offset is zero (the default -value), this is a point on the spindle axis (often called the gauge -point) that is some fixed distance beyond the end of the spindle, -usually near the end of a tool holder that fits into the spindle. The -location of the controlled point can be moved out along the spindle -axis by specifying some positive amount for the tool length offset. -This amount is normally the length of the cutting tool in use, so that -the controlled point is at the end of the cutting tool. On a lathe, -tool length offsets can be specified for X and Z axes, and the -controlled point is either at the tool tip or slightly outside it -(where the perpendicular, axis-aligned lines touched by the 'front' and -'side' of the tool intersect). - -=== Coordinated Linear Motion[[sub:Coordinate-Linear-Motion]] - -To drive a tool along a specified path, a machining center must often -coordinate the motion of several axes. We use the term 'coordinated -linear motion' to describe the situation in which, nominally, each axis -moves at constant speed and all axes move from their starting positions -to their end positions at the same time. If only the X, Y, and Z axes -(or any one or two of them) move, this produces motion in a straight -line, hence the word 'linear' in the term. In actual motions, it is -often not possible to maintain constant speed because acceleration or -deceleration is required at the beginning and/or end of the motion. It -is feasible, however, to control the axes so that, at all times, each -axis has completed the same fraction of its required motion as the -other axes. This moves the tool along same path, and we also call this -kind of motion coordinated linear motion. - -Coordinated linear motion can be performed either at the prevailing -feed rate, or at traverse rate, or it may be synchronized to the -spindle rotation. If physical limits on axis speed make the desired -rate unobtainable, all axes are slowed to maintain the desired path. - -=== Feed Rate[[sub:feed-rate]] - -(((feed rate))) - -The rate at which the controlled point or the axes move is nominally a -steady rate which may be set by the user. In the Interpreter, the -interpretation of the feed rate is as follows unless 'inverse time -feed' or 'feed per revolution' modes are being used see Section -<>. - - . If any of XYZ are moving, F is in units per minute in the XYZ - cartesian system, and all other axes (ABCUVW) move so as to start and - stop in coordinated fashion. - . Otherwise, if any of UVW are moving, F is in units per minute in the - UVW cartesian system, and all other axes (ABC) move so as to start and - stop in coordinated fashion. - . Otherwise, the move is pure rotary motion and the F word is in rotary - units in the ABC 'pseudo-cartesian' system. - -=== Coolant (((coolant))) - -Flood coolant and mist coolant may each be turned on independently. -The RS274/NGC language turns them off together see Section -<>. - -=== Dwell (((dwell))) - -A machining center may be commanded to dwell (i.e., keep all axes -unmoving) for a specific amount of time. The most common use of dwell -is to break and clear chips, so the spindle is usually turning during a -dwell. Regardless of the Path Control Mode (see Section -<>) the machine will stop exactly at the end of -the previous programmed move, as though it was in exact path mode. - -=== Units (((units))) - -Units used for distances along the X, Y, and Z axes may be measured in -millimeters or inches. Units for all other quantities involved in -machine control cannot be changed. Different quantities use different -specific units. Spindle speed is measured in revolutions per minute. -The positions of rotational axes are measured in degrees. Feed rates -are expressed in current length units per minute, or degrees per -minute, or length units per spindle revolution, as described in Section -<>. - -=== Current Position - -The controlled point is always at some location called the 'current -position', and the controller always knows where that is. The numbers -representing the current position must be adjusted in the absence of -any axis motion if any of several events take place: - - . Length units are changed. - . Tool length offset is changed. - . Coordinate system offsets are changed. - -=== Selected Plane[[sub:Selected-Plane]] - -There is always a 'selected plane', which must be the XY-plane, the -YZ-plane, or the XZ-plane of the machining center. The Z-axis is, of -course, perpendicular to the XY-plane, the X-axis to the YZ-plane, and -the Y-axis to the XZ-plane. - -=== Tool Carousel - -Zero or one tool is assigned to each slot in the tool carousel. - -=== Tool Change - -A machining center may be commanded to change tools. - -=== Pallet Shuttle - -The two pallets may be exchanged by command. - -=== Path Control Mode[[sec:Path-Control-Mode]] - -(((path control mode))) - -The machining center may be put into any one of three path control -modes: (1) exact stop mode, (2) exact path mode, or (3) continuous mode -with optional tolerance. In exact stop mode, the machine stops briefly -at the end of each programmed move. In exact path mode, the machine -follows the programmed path as exactly as possible, slowing or stopping -if necessary at sharp corners of the path. In continuous mode, sharp -corners of the path may be rounded slightly so that the feed rate may -be kept up (but by no more than the tolerance, if specified). See -Section <>. - -== Interpreter Interaction with Switches - -The Interpreter interacts with several switches. This section -describes the interactions in more detail. In no case does the -Interpreter know what the setting of any of these switches is. - -=== Feed and Speed Override Switches[[feed-interaction]] - -The Interpreter will interpret RS274/NGC commands which enable 'M48' -or disable 'M49' the feed and speed override switches. For certain -moves, such as the -traverse out of the end of a thread during a threading cycle, the -switches are disabled automatically. - -LinuxCNC reacts to the speed and feed override settings when these -switches are enabled. - -See the <> section for more -information. - -=== Block Delete Switch[[sub:Block-Delete-Switch-Interaction]] - -(((block delete))) - -If the block delete switch is on, lines of G code which start -with a slash (the block delete character) are not interpreted. If the -switch is off, such lines are interpreted. Normally the block delete -switch should be set before starting the NGC program. - -=== Optional Program Stop Switch[[sub:Optional-Program-Stop-Interaction]] - -(((optional program stop))) - -If this switch is on and an M1 code is encountered, program execution -is paused. - -== Tool Table[[sub:Tool-Table]] - -A tool table is required to use the Interpreter. The file tells which -tools are in which tool changer slots and what the size and type of -each tool is. The name of the tool table is defined in the ini file: - ----- -[EMCIO] - -# tool table file -TOOL_TABLE = tooltable.tbl ----- - -The default filename probably looks something like the above, but -you may prefer to give your machine its own tool table, using the -same name as your ini file, but with a tbl extension: - ----- -TOOL_TABLE = acme_300.tbl ----- - -or - ----- -TOOL_TABLE = EMC-AXIS-SIM.tbl ----- - -For more information on the specifics of the tool table format, -see the <> Section. - -== Parameters[[sec:Parameters]] - -(((parameters))) - -In the RS274/NGC language view, a machining center maintains an array -of numerical parameters defined by a system definition -(RS274NGC_MAX_PARAMETERS). Many of them have specific uses especially -in defining coordinate systems. The number of numerical parameters can -increase as development adds support for new parameters. The parameter -array persists over time, even if the machining center is powered down. -LinuxCNC uses a parameter file to ensure persistence and gives the -Interpreter the responsibility for maintaining the file. The -Interpreter reads the file when it starts up, and writes the file when -it exits. - -All parameters are available for use in G code programs. - -The format of a parameter file is shown in the following table. -The file consists of any number of -header lines, followed by one blank line, followed by any number of -lines of data. The Interpreter skips over the header lines. It is -important that there be exactly one blank line (with no spaces or tabs, -even) before the data. The header line shown in the following table -describes the data columns, so it is -suggested (but not required) that that line always be included in the -header. - -The Interpreter reads only the first two columns of the table. The -third column, 'Comment', is not read by the Interpreter. - -Each line of the file contains the index number of a parameter in the -first column and the value to which that parameter should be set in the -second column. The value is represented as a double-precision floating -point number inside the Interpreter, but a decimal point is not -required in the file. All of the parameters shown in the following table -are required parameters and must be -included in any parameter file, except that any parameter representing -a rotational axis value for an unused axis may be omitted. An error -will be signaled if any required parameter is missing. A parameter -file may include any other parameter, as long as its number is in the -range 1 to 5400. The parameter numbers must be arranged in ascending -order. An error will be signaled if not. Any parameter included in the -file read by the Interpreter will be included in the file it writes as -it exits. The original file is saved as a backup file when the new file -is written. Comments are not preserved when the file is written. - -.Parameter File Format[[cap:Parameter-File-Format]] - -[width="75%", options="header", cols="^,^,<"] -|======================================== -|Parameter Number | Parameter Value | Comment -|5161 | 0.0 | G28 Home X -|5162 | 0.0 | G28 Home Y -|======================================== - -See the <> section for more information. - diff --git a/docs/src/gcode/machining_center_fr.txt b/docs/src/gcode/machining_center_fr.txt deleted file mode 100644 index ae2ccf05918..00000000000 --- a/docs/src/gcode/machining_center_fr.txt +++ /dev/null @@ -1,375 +0,0 @@ -:lang: fr -:toc: - -= Aperçu global d'une machine CNC - -[[cha:Apercu-machine-CNC]] (((Aperçu machine CNC))) - -Cette section donne une description des différents organes constituant une -machine à commande numérique (CNC). - -== Composants mécaniques - -Une machine à commande numérique dispose de beaucoup de composants mécaniques -pouvant être contrôlés, ou qui peuvent avoir une incidence sur la façon -dont le contrôle de la machine s'effectue. Cette section décrit les -composants qui interagissent avec l'interpréteur. Les autres composants -mécaniques, comme les boutons de jog, ne seront pas décrits ici, même si -ils affectent le contrôle. - -=== Axes (((axes))) - -Toute machine à commande numérique dispose d'un ou de plusieurs axes. Les -différents types de machines ont différentes combinaisons d'axes. Par -exemple, une fraiseuse 4 axes peut avoir la combinaison d'axes XYZA ou -XYZB. Un tour classique aura les axes XZ. Une machine de découpe à fil -chaud aura les axes XYUV.footnote:[Si le mouvement des composants -mécaniques n'est pas indépendant, comme -sur une machine hexapode, le langage RS274/NGC et les fonctions -standards seront quand même utilisables, tant que le contrôle de bas -niveau sait comment contrôler les mécanismes actuels pour produire le -mouvement relatif de l'outil et de la pièce qui auraient été produits -par des axes indépendants. C'est appelé, la cinématique.] -footnote:[Avec LinuxCNC, le cas de la machine à portique XYYZ avec deux -moteurs pour un axe est mieux traité par la cinématique que par un -axe linéaire supplémentaire.] - -==== Axes linéaires primaires (((axes linéaires primaires))) - -Les axes X, Y et Z produisent des mouvements linéaires dans trois -directions, mutuellement orthogonales. - -==== Axes linéaires secondaires (((axes linéaires secondaires))) - -Les axes U, V et W produisent des mouvements linéaires dans trois -directions, mutuellement orthogonales. Habituellement, X et U sont -parallèles, Y et V sont parallèles et Z et W sont parallèles. - -==== Axes rotatifs (((Axes rotatifs))) - -Les axes A, B et C produisent des mouvements angulaires (rotations). -Habituellement, l'axe de rotation de A est parallèle à X, l'axe de -rotation de B est parallèle à Y et l'axe de rotation de C est parallèle -à Z. - -=== Broche (((broche))) - -Une machine à commande numérique est équipée d'une broche qui maintient un outil -coupant, un palpeur ou d'autres outils. La broche peut tourner dans les -deux sens. Elle peut être conçue pour tourner à vitesse constante mais -réglable. Excepté sur les machines dont la broche est montée sur un axe -rotatif, l'axe de la broche est maintenu parallèle à l'axe Z et il est -coïncident avec l'axe Z quand X et Y sont à zéro. La broche peut être -stoppée sur une position fixée ou non. - -=== Arrosages (((arrosage))) - -Une machine à commande numérique peut être équipée d'un système fournissant -l'arrosage fluide ou un arrosage par gouttelettes. - -=== Correcteurs de vitesse d'avance et de broche -(((correcteurs vitesse))) -(((correcteur vitesse broche))) - -Une machine à commande numérique est équipée de boutons de réglage de la vitesse -d'avance et de la vitesse de rotation de la broche, ils laissent -l'opérateur corriger les vitesses nécessaires pour la broche et -l'avance travail, il peut ainsi augmenter ou réduire les vitesses -programmées. - -=== Bouton d'effacement de bloc[[sec:Bouton-effacement-de-block]] - -(((Bouton effacement de bloc))) - -Une machine à commande numérique peut être équipée d'un bouton d'effacement de -bloc. Voir la section <>. - -=== Bouton d'arrêt optionnel du programme[[sec:arret-optionnel]] - -(((arrêt optionnel))) - -Une machine à commande numérique peut être équipée d'un bouton d'arrêt du programme. -Voir la section <>. - -== Composants de contrôle et de données - -=== Axes linéaires - -Les axes X, Y et Z forment un système de coordonnées orthogonales -standard. La position d'un axe s'exprime en utilisant ses coordonnées. - -=== Axes linéaires secondaires - -Les axes U, V et W forment également un système de coordonnées -standard. X et U sont parallèles, Y et V sont parallèles enfin Z et W -sont parallèles. - -=== Axes rotatifs - -Les axes rotatifs se mesurent en degrés. Leur sens de rotation positif -est le sens anti-horaire quand l'observateur est placé face à l'axe. -footnote:[Si les parallélismes sont particuliers, le constructeur du -système devra indiquer à quels sens de rotation correspondent -horaire et anti-horaire.] - -=== Point contrôlé[[sec:Point-controle]] - -(((point contrôlé))) - -Le point contrôlé est le point dont la position et la vitesse de -déplacement sont contrôlés. Quand la compensation de longueur d'outil -est à zéro (valeur par défaut), c'est un point situé sur l'axe de la -broche et proche de la fin de celle-ci. Cette position peut être -déplacée le long de l'axe de la broche en spécifiant une compensation -de longueur d'outil. Cette compensation correspond généralement à la -longueur de l'outil coupant courant. Ainsi, le point contrôlé est à la -pointe de l'outil. Sur un tour, les correcteurs d'outil peuvent être -spécifiés pour les axes X et Z, le point contrôlé est à la pointe de -l'outil ou (correction du rayon de bec) légèrement en retrait du point -d'intersection des droites perpendiculaires formées par l'axe des -points de tangence à la pièce, de face et sur le côté de l'outil. - -[[sec:Mouvement-lineaire-coordonne]] -=== Mouvement linéaire coordonné - -Pour mener un outil sur une trajectoire spécifiée, une machine à commande -numérique doit coordonner les mouvements de plusieurs axes. Nous utilisons le -terme 'mouvement linéaire coordonné' pour décrire une situation dans -laquelle, nominalement, chacun des axes se déplace à vitesse constante -et tous les axes se déplacent de leur point de départ à leur point -d'arrivée en même temps. Si deux des axes X, Y, Z (ou les trois) se -déplacent, ceci produit un mouvement en ligne droite, d'où le mot -'linéaire' dans le terme. Dans les véritables mouvements, ce n'est -souvent pas possible de maintenir la vitesse constante à cause des -accélérations et décélérations nécessaires en début et fin de -mouvement. C'est faisable, cependant, de contrôler les axes ainsi, -chaque axe doit en permanence faire la même fraction du mouvement -requis que les autres axes. Ceci déplace l'outil le long du même -parcours et nous appelons aussi ce genre de mouvement, mouvement -linéaire coordonné. - -Un mouvement linéaire coordonné peut être exécuté soit en vitesse -travail, soit en vitesse rapide, ou il peut être synchronisé à la -rotation de la broche. Si les limites physiques de l'axe rendent le -déplacement impossible, tous les axes seront ralentis pour maintenir -le parcours prévu. - -=== [[sub:Vitesse-d-avance]]Vitesse d'avance - -(((vitesse d'avance))) - -La vitesse à laquelle le point contrôlé se déplace est ajustable par -l'opérateur. Sauf cas particulier, vitesse inverse du temps, vitesse -par tour, voir la section <>, dans -l'interpréteur, l'interprétation des vitesses est la suivante: - - . Si le déplacement concerne un des axes XYZ, F est en unités machine - par minute dans le système Cartésien XYZ et les mouvements des autres - axes (UVWABC) sont également dans un même mode de coordonnées. - . Autrement, si le déplacement concerne un des axes UVW, F est en unités - machine par minute dans le système Cartésien UVW, tous les autres axes - (ABC) se déplacent dans un même mode de coordonnées. - . Autrement, le mouvement est purement rotatif et le mot F est en unités - de rotation dans le système pseudo-Cartésien ABC. - -=== Arrosage (((arrosage))) - -Arrosage fluide ou par gouttelettes peuvent être activés -séparément. Le langage RS274/NGC les arrête ensemble, voir la section -<>. - -=== Temporisation (((tempo))) - -Une temporisation peut être commandée (ex: pour immobiliser tous les -axes) pendant une durée spécifique. La broche n'est pas arrêtée pendant -une temporisation! Sans s'occuper <> la machine s'arrêtera exactement à la fin du -dernier mouvement avant la temporisation. - -=== Unités (((unités))) - -Les unités utilisées pour les distances le long des axes X, Y et Z -peuvent être les pouces ou les millimètres. La vitesse de rotation de -la broche est en tours par minute. Les positions des axes rotatifs sont -exprimées en degrés. Les vitesses d'avance sont exprimées en unités -machine par minute ou en degrés par minute ou en unités de longueur par -tour de broche, comme décrit dans la section -<>. - -=== Position courante - -Le point contrôlé est toujours à un emplacement appelé la 'position -courante', et le contrôleur sait toujours où est cette position. Les -valeurs représentant la position courante doivent être ajustées en -l'absence de tout mouvement des axes si un de ces événements a lieu: - - . Les unités de longueur ont changé. - . La compensation de longueur d'outil a changé. - . Le décalage d'origine a changé. - -=== Choix du plan de travail[[sec:Choix-du-plan-de-travail]] - -Il y a toujours un plan sélectionné, qui doit être le plan XY, le plan -YZ, ou le plan XZ de la machine. L'axe Z est, bien sûr, perpendiculaire -au plan XY, l'axe X perpendiculaire au plan YZ et l'axe Y -perpendiculaire au plan XZ. - -=== carrousel d'outils - -Aucun ou un outil est assigné à chaque emplacement dans le carrousel. - -=== Changeur d'outil - -Une machine à commande numérique peut commander un changeur d'outils. - -=== Chargeur de pièce - -Les deux porte-pièces peuvent être intervertis par commande. - -=== Chargeur de pièces (((chargement))) - -Une machine à commande numérique peut être équipée d'un système de chargement des -pièces. Le système se compose de deux porte-pièces sur lesquels sont -fixés les bruts des pièces à usiner. Un seul porte-pièce à la fois est -en position d'usinage. - -=== Boutons des correcteurs de vitesses - -Les boutons des correcteurs de vitesses peuvent être activés (ils -fonctionnent normalement) ou rendus inopérants (Ils n'ont plus aucun -effet). Le langage RS274/NGC dispose d'une commande qui active tous les -boutons et une autre qui les désactive. Voir l'inhibition et l'activation -<>. -Voir également <>. - -=== Modes de contrôle de trajectoire[[sec:Modes-de-controle-trajectoires]] - -La machine peut être placée dans un de ces trois modes de contrôle de -trajectoire: - -* mode arrêt exact:: - En mode arrêt exact, le mobile s'arrête brièvement à la fin de chaque mouvement - programmé. -* mode trajectoire exacte:: - En mode trajectoire exacte, le mobile suit la trajectoire - programmée aussi précisément que possible, ralentissant ou s'arrêtant - si nécessaire aux angles vifs du parcours. -* mode trajectoire continue avec tolérance optionnelle:: - En mode trajectoire continue, les angles vifs du parcours peuvent être - légèrement arrondis pour que la vitesse soit maintenue (sans dépasser la - tolérance, si elle est spécifiée). - -Voir également les G-codes <> et <> des -contrôles de trajectoire. - -[[sec:Interaction-vitesses]] (((Interraction vitesse))) -[[sec:Interaction-effacement-de-bloc]] (((effacement de bloc))) -[[sec:Interaction-arrets-optionnels]] (((Arrêts optionnels))) - -== Interaction de l'interpréteur avec les boutons - -L'interpréteur interagit avec plusieurs boutons de commande. Cette -section décrit ces interactions plus en détail. En aucun cas -l'interpréteur ne connait ce que sont les réglages de ces boutons. - -=== Boutons de correction de vitesses - -L'interpréteur de commande RS274/NGC autorise (M48) ou interdit (M49) -l'action des boutons d'ajustement des vitesses. Pour certains -mouvements, tels que la sortie de filet à la fin d'un cycle de -filetage, les boutons sont neutralisés automatiquement. - -LinuxCNC réagit aux réglages de ces boutons seulement quand ils sont -autorisés. - -=== Bouton d'effacement de bloc - -Si le bouton 'Effacement de bloc' est actif, les lignes de code -RS274/NGC commençant par le caractère barre de fraction (caractère -d'effacement de bloc) ne sont pas interprétées. Si le bouton est -désactivé, ces mêmes lignes sont interprétées. Normalement le bouton -d'effacement de bloc doit être positionné avant de lancer le programme G-code. - -=== Bouton d'arrêt optionnel du programme - -Si ce bouton est actif et qu'un code M1 est rencontré, le programme -est mis en pause. - -[[sec:Fichier-Outils]] (((Fichier d'outils))) -== Fichier d'outils - -Un fichier d'outils est requis par l'interpréteur. Le fichier indique -dans quels emplacements du carrousel sont placés les outils, la -longueur et le diamètre de chacun des outils. -Le nom de la table d'outils est défini sous cette forme dans le fichier ini: ----- -[EMCIO] - -# tool table file -TOOL_TABLE = tooltable.tbl ----- - -Il est également possible de donner à la table d'outils le même nom que le -fichier ini, mais avec une extension tbl, par exemple: ----- -TOOL_TABLE = acme_300.tbl ----- - -ou encore: ----- -TOOL_TABLE = EMC-AXIS-SIM.tbl ----- - -D'autres informations sont disponibles sur les spécificités du -<>. - -[[sec:Parametres]] (((paramètres))) -== Paramètres - -Dans le langage RS274/NGC, la machine maintient un tableau -de 5400 paramètres numériques. La plupart d'entre eux ont un usage -spécifique. Le tableau de paramètres est persistant, même quand la -machine est mise hors tension. LinuxCNC utilise un fichier de paramètres et -assure sa persistance, il donne à l'interpréteur la responsabilité -d'actualiser le fichier. L'interpréteur lit le fichier quand il démarre -et l'écrit juste avant de s'arrêter. - -Tous les paramètres sont disponibles pour une utilisation dans les -programmes de G-code. - -Un fichier de paramètres est composé d'un certain nombre de lignes d'en-tête, -suivies par une ligne vide, suivie d'un nombre quelconque de lignes de données. -Les lignes d'en-tête sont ignorées par l'interpréteur. Il est important qu'il y -ait une ligne vide (sans espace ni tabulation), avant les données. La ligne -d'en-tête montrée dans le tableau ci-dessous, décrit -les colonnes de données, il est donc proposé (mais pas obligatoire) que -cette ligne soit toujours présente. - -L'interpréteur lit seulement les deux premières colonnes du tableau. -Il ignore la troisième colonne, Commentaire. - -Chaque ligne du fichier contient le numéro d'index d'un paramètre dans -la première colonne et la valeur attribuée à ce paramètre, dans la -deuxième colonne. La valeur est représentée par une nombre flottant en -double précision à l'intérieur de l'interpréteur, mais le point décimal -n'est pas exigé dans le fichier. Le format des paramètres décrit ci-dessous, -est obligatoire et doit être utilisé pour tous les -fichiers de paramètres, à l'exception des paramètres représentant une valeur sur -un axe rotatif inutilisé, qui peuvent être omis. Une erreur sera signalée si un -paramètre requis est absent. Un fichier de paramètres peut inclure tout autre -paramètre, tant que son numéro est compris dans une fourchette de 1 à 5400. Les -numéros de paramètre doivent être disposés dans l'ordre croissant. -Sinon, une erreur sera signalée. Le fichier original est copié comme -fichier de sauvegarde lorsque le nouveau fichier est écrit. Les -commentaires ne sont pas conservés lorsque le fichier est écrit. - - -.Format d'un fichier de paramètres[[sec:Format-fichier-de-parametres]] - -[width="90%", options="header"] -|======================================== -|Numéro d'index | Valeur | Commentaire -|5161 | 0.0 | G28 pom X -|5162 | 0.0 | G28 pom Y -|======================================== - diff --git a/docs/src/gcode/main_es.txt b/docs/src/gcode/main_es.txt deleted file mode 100644 index e6cb5106b72..00000000000 --- a/docs/src/gcode/main_es.txt +++ /dev/null @@ -1,2433 +0,0 @@ -= G Código de Referencia -(((G Codes))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -//// -Just in case this document is not a product of google translate it remains. -If it is really translated delete gcode_es.txt then fix the links that will break -due to the link names being translated. -//// - -Convenciones utilizadas en esta sección - -En los prototipos Código G del guión (`-`) representa un valor real. - -El valor real puede ser: - -- Un número explícito, `4` -- Una expresión, `[2 +2]` -- Un parámetro de valor, '# 88' -- Un valor de la función unario, `acos [0] ' - -En la mayoría de los casos, es decir si el eje está dado -(Cualquiera o todos los `XYZABCUVW`), -que especifica un punto de destino. - -Número de ejes en el sistema de coordenadas activo, -a menos que explícitamente describen como -en el sistema de coordenadas absolutas. -Donde las palabras del eje son opcionales, los ejes se omite tendrá su valor actual. - -Todos los elementos en los prototipos de código G no se describe explícitamente como -opcional son obligatorios. - -Los siguientes valores se dan a menudo las letras como los números explícitos. -A menos que se indique lo contrario, los números pueden ser explícitos los valores reales. Para -ejemplo, `G-10 L2` también podría ser por escrito `G[2 * 5] L[1 +1]`. Si el -valor del parámetro 100 a los 2, `G10 L#100` también significan lo mismo. - -Si la opción `-L` está escrito en un prototipo del `-` a menudo se hace referencia -como el "número L", y así sucesivamente para cualquier otra letra. - -== Coordenadas polares -(((coordenadas polares))) - -Las coordenadas polares se puede utilizar para especificar las coordenadas XY de un movimiento. -El n @ es la distancia y ^n es el ángulo. La ventaja de esto es -para cosas como los círculos de taladros que se puede hacer muy simplemente -llegando a un punto en el centro del círculo, el establecimiento de la compensación y -luego pasar a primer agujero a continuación, ejecutar el ciclo de perforación. -Las coordenadas polares son siempre desde la posición cero de la corriente XY. -Para cambiar las coordenadas polares de cero máquina utiliza un desplazamiento -o seleccione un sistema de coordenadas. - -En el modo absoluto de la distancia y el ángulo es de la posición cero XY -y el ángulo empieza con 0 en el eje X positivo y aumenta en un CCW -dirección sobre el eje Z. El G1 de código @ 1 ^ 90 es el mismo que G1 Y1. - -En el modo relativo a la distancia y el ángulo es de cero XY -posición, pero es acumulativa. -Esto puede ser confuso al principio, cómo funciona esto en el modo incremental. - -Por ejemplo, si usted tiene el siguiente programa se puede esperar que -ser un patrón cuadrado. - - G1 F100 @ 0,5 ^ 90 - G91 @ 0,5 ^ 90 - @ 0.5 ^ 90 - @ 0.5 ^ 90 - @ 0.5 ^ 90 - G90 G0 X0 Y0 M2 - -Se puede ver en la siguiente figura que la salida no es lo que -se podría esperar. Debido a que hemos agregado 0,5 a la distancia cada vez que el -distancia desde la posición cero XY aumentó con cada línea. - -.Espiral Polar[[fig:Polar-Espiral]] - -image::images/polar01.png[] - -El siguiente código producirá nuestro patrón cuadrado. - - G1 F100 @ 0,5 ^ 90 - G91 ^ 90 - ^ 90 - ^ 90 - ^ 90 - G90 G0 X0 Y0 M2 - -Como se puede ver con sólo añadir que el ángulo de 90 grados cada vez que el -distancia de punto final es el mismo para cada línea. - -.Polar Plaza de[[fig:Polar-Plaza]] - -image::images/polar02.png[] - -Es un error si: - -- Un movimiento incremental que se inicia en el origen -- Una mezcla de Polar y X y Y o palabras se utilizan - -== Tabla de Referencia Rápida[[sec:Tabla-de-Referencia-Rapida]] - -(((Tabla de códigos G))) - -[Width="100%", options="header"] -|==================================================================== -| Código | Descripción | Sección -| G0 | movimiento coordinado recta rápida | <> -| G1 | Coordinado movimiento recto Velocidad de alimentación | <> -| G2, G3 | movimiento coordinado helicoidal velocidad de alimentación | <> -| G4 | Mora | <> -| G5.1 | cuadráticas B-Spline | <> -| G5.2, G5.3 | NURBS Bloquear | <> -| G7 | Diámetro Mode (torno) | <> -| G8 | Radio Mode (torno) | <> -| G10 L1 | Juego de herramientas de entrada de la tabla | <> -| G10 L10 | Establecer tabla de herramientas, calculado, piezas | <> -| G10 L11 | Establecer tabla de herramientas, calculado, Fixture | <> -| G10 L2 | Sistema de coordenadas Configuración de Origen | <> -| G10 L20 | Sistema de coordenadas Configuración de Origen Calculado | <> -| G17 - G19.1 | Plano Seleccionar | <> -| G20, G21 | Unidades de Medida | <> -| G28 - G28.1 | Ir a las posiciones predefinidas | <> -| G30 - G30.1 | Ir a las posiciones predefinidas | <> -| G33 | Movimiento eje sincronizado | <> -| G33.1 | Roscado | <> -| G38.2 - G38.5 | Sondeo | <> -| G40 | Compensación de corte cancelar | <> -| G41, G42 | Cortador de Compensación | <> -| G41.1, G42.1 | Compensación de corte transitorio | <> -| G43, G43.1 | El uso de herramientas desplazamiento de longitud de la tabla de Herr | <> -| G49 | Duración herramienta Cancelar offset | <> -| G53 | movimiento en la máquina del sistema de coordenadas | <> -| G54-G59 | Seleccionar sistema de coordenadas (1-6) | <> -| G59.1-G59.3 | Seleccionar sistema de coordenadas (7-9) | <> -| G61, G61.1 | modo de control de ruta | <> -| G64 | modo de control de ruta con la tolerancia opcional | <> -| G73 | Ciclo de taladrado con rotura de virutas | <> -| G76 | Multipass Threading de ciclo (Tornos) | <> -| G80 | Cancelar movimiento Modos | <> -| G81 | Ciclo de taladrado | <> -| G82 | Ciclo de taladrado con temporización | <> -| G83 | Ciclo de taladrado con Peck | <> -| G84 | Mano Derecha * Tapping ciclo (no implementada) * | <> -| G85 | Ciclo de aburrido, no de permanencia, salida de alimentación | <> -| G86 | Ciclo aburrido, Stop, salida rápida | <> -| G87 | Back-Aburrido Ciclo * (no implementada) * | <> -| G88 | Ciclo aburrido, Stop, Manl Out * (no implementada) * | <> -| G89 | Ciclo aburrido, permanencia, salida de alimentación | <> -| G90, G91 | Modo Distancia | <> -| G90.1, G91.1 | Modo Distancia Arco | <> -| G92 | de los sistemas de coordenadas y parámetros de Set | <> -| G92.1 | Compensaciones cancelar | <> -| G92.2 | Compensaciones cancelar | <> -| G92.3 | Aplicar los parámetros de compensación de sistemas de coordenadas | <> -| G93, G94, G95 | Modos de alimentación | <> -| G96 | velocidad de corte constante | <> -| G97 | RPM Mode | <> -| G98, G99 | Ciclo enlatados Z retracción Simple | <> -|==================================================================== - -[Width="100%", options="header"] -|======================================== -| Código | Descripción | Sección -| M0, M1, M2 | Programa de Control | <> -| M3, M4, M5 | Eje de Control | <> -| M6 | Herramienta de Cambio | <> -| M7, M8, M9 | Refrigerante de Control | <> -| M30, M60 | Shuttle Palet | <> -| M48 | Controles anulación | <> -| M49 | Controles anulación | <> -| M50 | Controles anulación | <> -| M51 | Controles anulación | <> -| M52 | Controles anulación | <> -| M53 | Controles anulación | <> -| M61 | Establecer Herramienta Número actual | <> -| M62-65 | Control de Salida | <> -| M66 | Entrada de control | <> -| M67 | Control de salida analógica | <> -| M68 | Control de salida analógica | <> -| M100-M199 | Definido por el usuario M-Codes | <> -| S | S | Códigos | <> -| F | Feed | <> -| S | Velocidad del eje | <> -| T | Herramienta de selección | <> -|======================================== - -== G0 movimiento rápido[[sec:G0-Rapido]] - -(((G0 Rápido))) -(((Rápido))) - - G0 ejes - -Para una rápida lineal (línea recta) de movimiento, el programa `G0 'ejes'`, donde -todas las palabras del eje son opcionales. La `G0` es opcional si la corriente -modo de movimiento es `G0`. Esto produce un movimiento coordinado lineal -el punto de destino en la actual velocidad de desplazamiento (o menos si -la máquina no va a ir tan rápido). Se espera que la reducción de -no se llevará a cabo cuando un comando `G0` se está ejecutando. - -Si la compensación de radio de la fresa está activo, el movimiento será diferente de -lo anterior, véase la sección <>. - -Si `G53` está programado en la misma línea, el movimiento también será diferente; -véase la sección <>. - -Es un error si: - -- Una carta de eje sin un valor real. - -== G1 Linear Motion[[sec:G1-lineal-de-movimiento]] - -(((G1 Linear Motion))) - - G1 ejes - -Para lineal (línea recta) de movimiento en la velocidad de avance programada (para el corte -o no), el programa `G1 'ejes'`, donde todas las palabras del eje son opcionales. -El `G1` es opcional si el modo de movimiento actual es `G1`. Esto -producir un movimiento coordinado lineal al punto de destino -en la velocidad de avance actual (o más lento si la máquina no va a ir por ese -rápido). - -Si la compensación de radio de la fresa está activo, el movimiento será diferente de -lo anterior, véase la sección <>. - -Si `G53` está programado en la misma línea, el movimiento también será diferente; -véase la sección <>. - -Es un error si: - -- No hay velocidad de avance se ha establecido. - -== G2, G3 Arco[[sec:G2-G3-Arco]] - -(((G2, G3 Arco))) - -Un arco circular o helicoidal se especifica utilizando `G2` (a la derecha -arco) o `G3` (a la izquierda del arco). La dirección (CW, CCW) es tan -visto desde el lado positivo del eje sobre el que el -movimiento circular se produce. - -El eje del círculo o espiral debe ser paralelo a la -X, Y, o Z del sistema de coordenadas máquina. -El eje (o, equivalentemente, el plano perpendicular al eje) -se selecciona con `G17` (Z-eje, plano XY), -`G18` (eje Y, XZ plano), o `G19` (eje X, YZ-avión). -Planes `17.1`, `18.1`, y `19.1` no están soportados. -Si el arco es circular, -se encuentra en un plano paralelo al plano seleccionado. - -Para programar una hélice, incluya la palabra eje perpendicular al arco -Avión: por ejemplo, si en el `G17` de avión, incluyen una `Z` word. Este -hará que la `Z` eje para pasar al valor programado en el -circular `XY` movimiento. - -Para programar un arco que da más de una vuelta completa, use un `P` word -especificando el número de vueltas, total o parcial de arco. Si `P` es -sin especificar, el comportamiento es como si `P1` se le dio, es decir, sólo una -a su vez, total o parcial dará lugar, dando un arco menor o igual a -un círculo completo. Por ejemplo, si un arco se programa con el P2, la -movimiento resultante será más que un punto de partida y un máximo de dos completa -círculos (dependiendo del punto final programado.) Multivuelta helicoidal arcos -Se apoyan y dan movimiento útil para los agujeros de la molienda o hilos. - -Si una línea de código hace un arco, e incluye el movimiento del eje giratorio, -los ejes giratorios a su vez a un ritmo constante para que la rotativa -movimiento comienza y termina cuando el movimiento de XYZ se inicia y termina. -Líneas de este tipo casi nunca son programados. - -Si la compensación de radio de la fresa está activo, el movimiento será diferente de -lo que se describe aquí. Vea la sección -<>. - -Dos formatos permitidos para especificar un arco: -Centro de Radio y formato. - -Es un error si: - -- No hay velocidad de avance se ha establecido. - -=== Centro formato arcos (formato preferido) - -En el formato de centro, las coordenadas del punto final del arco en -plano seleccionado se especifican, junto con los desplazamientos del centro -del arco desde la ubicación actual. En este formato, que está bien si la -punto final del arco es el mismo que el punto actual. - -Es un error si: - -- Cuando el arco se proyecta sobre el plano seleccionado, la distancia desde el - punto actual en el centro se diferencia de la distancia desde el extremo - punto en el centro de más de 0.0002 pulgadas (centímetros si se utilizan) - o 0.002 milímetros (mm si se utilizan). - -Cuando el plano XY se selecciona el programa: - - Ejes G2 o G3 I- J- - -Las palabras del eje son opcionales, excepto que al menos uno de X e Y -debe ser usado para programar un arco de menos de 360 ​​grados. I y J son -los desplazamientos desde la ubicación actual (en las direcciones X e Y, -respectivamente) del centro del círculo. I y J son opcionales, excepto -que al menos uno de los dos debe ser utilizado. Si sólo se especifica, -el valor de la otra se toma como 0. Si se incluye la palabra Z se -hélice. - -Es un error si: - -- I y J son omitidos. - -Cuando el plano XZ se selecciona el programa: - - G2 o G3 ejes I-K- - -Las palabras del eje son opcionales, excepto que al menos uno de X y Z -debe ser usado para programar un arco de menos de 360 ​​grados. -I y K son los desplazamientos desde la ubicación actual (en las direcciones X y Z, -respectivamente) del centro del círculo. -I y K son opcionales, excepto que al menos uno de los dos debe ser utilizado. -Si sólo se especifica, el valor de la otra se toma como 0. -En el modo de diámetro G7 I y K son todavía una cota de radio. - -Es un error si: - -- I y K son omitidos. - -Cuando el plano yz se selecciona el programa: - - Ejes G2 o G3 J- K- - -Las palabras del eje son opcionales, excepto que al menos uno de Y y Z -debe ser usado para programar un arco de menos de 360 ​​grados. J y K son -los desplazamientos desde la ubicación actual (en la Y y Z, -respectivamente) del centro del círculo. J y K son opcionales, excepto -que al menos uno de los dos debe ser utilizado. Si sólo se especifica, -el valor de la otra se toma como 0. - -Es un error si: - -- J y K son omitidos. - -=== Ejemplos - -El cálculo de arcos con la mano puede ser difícil a veces. Una opción es -dibujar el arco con un programa de CAD para obtener las coordenadas y las compensaciones. -Tenga en cuenta la tolerancia citada más arriba, puede que tenga que cambiar la -precisión de su programa de CAD para obtener los resultados deseados. Otro -opción es calcular las coordenadas y el uso de fórmulas de compensación. Como -se puede ver en las siguientes figuras de un triángulo se puede formar a partir de la -posición actual de la posición final y el centro del arco. - -En la figura siguiente se puede ver la posición de inicio es X0 Y0, el -posición final X1 Y1. La posición del centro del arco está en Y0 X1. Esto le da -nosotros un desplazamiento desde la posición inicial de 1 en el eje X y 0 en la Y -eje. En este caso sólo una compensación que se necesita. - -El código para el ejemplo: - - G2 X1 Y1 I1 F10 - -.Ejemplo G2[[fig:G2-Ejemplo]] - -image::images/g2.png[] - -En el siguiente ejemplo podemos ver la diferencia entre los desplazamientos de Y si -estamos haciendo un G2 o G3 un movimiento. Para el traslado G2 es la posición de inicio -X0 Y0, para el traslado G3 es X0 Y1. El centro del arco está en X1 Y0.5 para -ambos movimientos. La medida G2 del desplazamiento es de 0,5 J y el G3 mover el J -desplazamiento es -0,5. - -El código de g para el siguiente ejemplo: - - G2 X0 Y1 I1 J0.5 F25 - G3 X0 Y0 I1 J-0.5 F25 - -.G2-G3 ejemplo[[fig:G2/3-Example]] - -image::images/g2-3.png[] - -He aquí un ejemplo de un comando de formato de centro de molino de una hélice: - - G17 G2 X10 Y16 I3 J4 Z9 - -Eso significa que para hacer un reloj (visto desde el eje z positivo) -circular o un arco helicoidal cuyo eje es paralelo al eje Z, que termina -donde X = 10, Y = 16 y Z = 9, con la desviación en la dirección X por -3 unidades de la ubicación actual de X y el desplazamiento en la dirección Y por 4 -unidades de la ubicación actual en Y. Si la ubicación actual X = 7, Y = 7 -desde el principio, el centro estará en X = 10, Y = 11. Si el valor inicial -de Z es de 9, este es un arco circular, de lo contrario se trata de un arco helicoidal. La -radio de este arco será de 5. - -En el formato de centro, el radio del arco no se especifica, pero -se pueden encontrar fácilmente como la distancia desde el centro del círculo para -ya sea el punto actual o el punto final del arco. - -=== Completa Cañas - - G2 o G3 I- J- K- - -Para hacer un círculo completo de 360 desde la ubicación actual único programa de la I, -J o K desplazamiento de la ubicación actual del G2/G3. Para programar una 360 -hélice de grado en el plano XY basta con incluir la palabra Z. - -Es un error si: - -- El desplazamiento K se utiliza en el plano XY -- La J offset se utiliza en el plano XZ -- La compensación que se utiliza en el plano YZ - -=== Arcos Radio formato (formato desanimado) - -En el formato de radio, las coordenadas del punto final del arco en -plano seleccionado se especifican junto con el radio del arco. -Programa de `G2` ejes `R` (o usar `G3` en lugar de `G2`). R es la -radio. Las palabras del eje son opcionales, excepto que en -por lo menos una de las dos palabras de los ejes en el plano seleccionado debe ser -utilizados. El número de R es el radio. Un radio positivo indica que la -arco se convierte a través de menos de 180 grados, mientras que un radio negativo -indica un viraje de más de 180 grados. Si el arco es helicoidal, el -valor del punto final del arco sobre el paralelo del eje de coordenadas para -el eje de la hélice también se especifica. - -Es un error si: - -- Tanto de las palabras del eje de los ejes del plano seleccionado se omiten -- El punto final del arco es el mismo que el punto actual. - -No es una buena práctica arcos programa de formato de radio que son casi -círculos o semicírculos casi completa debido a que un pequeño cambio en la -ubicación del punto final se produce un cambio mucho mayor en el -ubicación del centro del círculo (y, por tanto, la mitad de la -de arco). El efecto de aumento es lo suficientemente grande que un error de redondeo en -número puede producir fuera de la tolerancia cortes. Por ejemplo, un 1% -desplazamiento del punto final de un arco de 180 grados producido un 7% -desplazamiento del punto de 90 grados a lo largo del arco. Casi círculos completos -son aún peores. Otros arcos de tamaño (en el rango de pequeña a 165 grados o -195 a 345 grados) están bien. - -He aquí un ejemplo de un comando de formato de radio a la fábrica de un arco: - - G17 G2 X10 Y15 R20 Z5 - -Eso significa que para hacer un reloj (visto desde el eje Z positivo) -circular o un arco helicoidal cuyo eje es paralelo al eje Z, que termina -donde X = 10, Y = 15, y Z = 5, con un radio de 20. Si el valor inicial -de Z es de 5, esto es un arco de círculo paralelo al plano XY; -de lo contrario, es un arco helicoidal. - -== G4 Dwell[[sec:G4-Mora]] - -(((G4 Mora))) - - G4 P[segundos] - -Para un tiempo de espera, el programa G4 P-. Esto evitará que los ejes inmóviles para la -período de tiempo en cuestión de segundos especificado por el número P. - -Es un error si: - -- El número P es negativo. - -== G5.1 cuadráticas B-spline[[sec:G5.1-B-spline-cuadratica]] - -(((G5.1 B-spline))) - - G5.1 Xn Yn I[desplazamiento X] J[desplazamiento Y] - -G5.1 crea un B-spline cuadrática en el plano XY con los ejes X e Y solamente. - -Es un error si: - -- I y J de compensación no se especifica -- El otro eje de X o Y se especifica -- El avión no está activo G17 - -== G5.2 G5.3 NURBS bloque[[sec:G5.2-G5.3-NURBs]] - -(((G5.2 G5.3 Bloque NURBs))) - -Advertencia: G5.2, G5.3 es experimental y no han sido evaluados completamente. - -G5.2 es para abrir el bloque de datos que definen una NURBS y G5.3 de -cierre el bloque de datos. En los límites entre estos dos códigos de la curva -puntos de control se definen con sus dos relacionados con "pesos" (P) y -sus parámetros (L), que determina el orden de la curva (k) y -Posteriormente, su grado (k-1). - -Usando esta definición la curva de los nudos de la curva de NURBS no son -definido por el usuario son calculados por el algoritmo en el interior, en el -misma manera que ocurre en un gran número de aplicaciones gráficas, donde -la forma de la curva sólo se puede modificar actuando sobre los puntos de control o -pesos. - -NURBS Código de ejemplo - -------------------------------------------------- - G0 X0 Y0 - F10 - G5.2 X0 Y1 P1 L3 - X2 Y2 P1 - X2 Y0 P1 - X0 Y0 P2 - G5.3 - / Los movimientos rápidos muestran el mismo camino, sin el bloque de NURBS - G0 X0 Y1 - X2 Y2 - X2 Y0 - X0 Y0 - M2 -------------------------------------------------- - -.NURBS Ejemplo de salida - -image::images/nurbs01.png [] - -Más información sobre NURBS se pueden encontrar aquí: - -http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?NURBS [http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?NURBS] - -== Modo Diámetro del G7[[sec:G7-Diametro-Modo]] - -(((Diámetro del G7))) - -Programa del G7 para entrar en el modo de diámetro para el eje X en un torno. Cuando en -el modo de diámetro en el eje X se mueve en un torno, se media la distancia -en el centro del torno. Por ejemplo X1 se trasladaría a la cortadora -0.500 "desde el centro del torno dando así un una" parte de diámetro. - -== G8 modo Radio[[sec:G8-Radio-Mode]] - -(((modo Radio del G8))) - -Programa del G8 para entrar en el modo de radio para el eje X en un torno. Cuando en -El modo de radio en el eje X se mueve en un torno, será la distancia de la -centro. Así, un corte en el X1 se traduciría en una parte que es de 2" de diámetro. -G8 es por defecto al encender el equipo. - -== G10 L1 Set de herramientas Tabla[[sec:G10-L1_]] - -(((G10 Tabla de herramientas L1))) - - G10 L1 P [número de herramientas] R [radio] - X [desplazamiento] Y [desplazamiento] Z [desplazamiento] - A [desplazamiento] B [offset] C [desplazamiento] - U [offset] V [offset] W [desplazamiento] - I [frontangle] J [backangle] Q [orientación] - -Un programa de L1 del G10 para establecer una entrada de tabla de herramientas -de un programa o la ventana MDI. -Una válida G10 L1 reescribe la tabla de herramientas. - -Es un error si: - -- Compensación de corte está en -- El número no se especifica P - -Para más información sobre la orientación de corte, -ver el <> diagrama. - -== G10 L2 conjunto de coordenadas del sistema[[sec:G10-L2_]] - -(((L2 del sistema de coordenadas))) - - G10 L2 P [sistema de coordenadas] R [rotación XY sobre Z] - X [desplazamiento] Y [desplazamiento] Z [desplazamiento] - A [desplazamiento] B [offset] C [desplazamiento] - U [offset] V [offset] W [desplazamiento] - -El sistema de coordenadas se describe en la sección <>. - -Para establecer el origen de un sistema de coordenadas, el programa `G10 L2 P-R-ejes`, -donde el número P está en el rango de 0 a 9. -Para el programa de sistema de coordenadas activo P0. -Para especificar un programa de sistema de coordenadas de 1 a 9 correspondientes a `` a `G54 G59.3`. -Opcionalmente R programa para indicar el giro del eje XY alrededor del eje Z. -Todas las palabras eje son opcionales. -El origen del sistema de coordenadas especificado por el número P -ajustado a los valores dados (en términos del sistema de coordenadas de la máquina no offset). -Sólo esas coordenadas para el que se incluye una palabra en la línea de eje se establecerá. -Estando en modo de distancia incremental (G91 ``) no tiene ningún efecto sobre 'G10' L2. -El sentido de giro es CCW como se ve desde la vista superior. - -Conceptos importantes: - -- G10 L2 Pn no cambia de un sistema de coordenadas actual a la especificada por P, - usted tiene que utilizar G54-59.3 para seleccionar un sistema de coordenadas. -- Cuando la rotación es en efecto correr un eje sólo se moverá de ese eje - en un sentido positivo o negativo, y no a lo largo del eje de rotación. - -Es un error si: - -- El número P no se evalúa como un número entero en el rango de 0 a 9. -- Un eje se programa que no está definido en la configuración. - -Si un `G92` origen de compensación estaba en vigor antes del `G10 L2`, -seguirá en vigor después. - -El sistema de coordenadas cuyo origen se establece por un comando `G10` puede ser -activo o inactivo en el momento en el `G10` se ejecuta. -Si se activa, las nuevas coordenadas en vigor inmediatamente. - -Ejemplos: - -G10 L2 P1 X3.5 Y17.2:: - Establece el origen del sistema de coordenadas primera (la seleccionada por `G54`) - que X = 3.5 y Y = 17.2. - Debido a que sólo X e Y se especifican, el punto de origen no puede ser movido en X e Y; - las coordenadas de otro no se cambian. - -G10 L2 P1 X0 Y0 Z0: - Establece las coordenadas XYZ del origen G54 al origen unoffset. - -.Establecer sistema de coordenadas[[cap:Set-Coordinar-System]] - -[Width="80%", options="header"] -|======================================== -| P Valor | Sistema de coordenadas | G Código -| 0 | Actualmente Activo | n / a -| 1 | 1 | 54 -| 2 | 2 | 55 -| 3 | 3 | 56 -| 4 | 4 | 57 -| 5 | 5 | 58 -| 6 | 6 | 59 -| 7 | 7 | 59,1 -| 8 | 8 | 59,2 -| 9 | 9 | 59.3 -|======================================== - -== G10 L10 Set Tabla de herramientas[[sec:G10-L10]] - -(((Tabla de herramientas Set))) - - G10 L10 P [número de herramientas] R [radio] - X [set_curr_sys_to] Y [set_curr_sys_to] Z [set_curr_sys_to] - A [set_curr_sys_to] B [set_curr_sys_to] C [set_curr_sys_to] - U [set_curr_sys_to] V [set_curr_sys_to] W [set_curr_sys_to] - I [frontangle] J [backangle] Q [orientación] - -G10 L10 cambia la entrada de la tabla de herramientas de P herramienta para que si el -de herramienta se vuelve a cargar con la máquina en su posición actual -y con el actual G5x y compensaciones G92 activa, las coordenadas actuales -para los ejes dado se convertirán en los valores dados. Los ejes que se -no especificado en el comando del G-10 L10 no se cambiará. - -Es un error si: - -- Compensación de corte está en - -== G10 L11 Set Tabla de herramientas[[sec:G10-L11]] - -(((Tabla de herramientas Set))) - - G10 L11 P [número de herramientas] R [radio] - X [set_curr_loc_to] Y [set_curr_loc_to] Z [set_curr_loc_to] - A [set_curr_loc_to] B [set_curr_loc_to] C [set_curr_loc_to] - U [set_curr_loc_to] V [set_curr_loc_to] W [set_curr_loc_to] - I [frontangle] J [backangle] Q [orientación] - -G10 L11 es como G-10 L10, excepto que en lugar de establecer la entrada -de acuerdo con las compensaciones actuales, se establece para que la corriente -coordenadas se convertiría en el valor dado, si la nueva herramienta de compensación -se vuelve a cargar y la máquina se coloca en la coordenada G59.3 -sistema sin ningún tipo de compensación G92 activa. - -Esto permite al usuario configurar el sistema de coordenadas G59.3 de acuerdo con un -punto fijo de la máquina, y luego usar ese aparato para medir herramientas -sin tener en cuenta otras compensaciones actualmente activa. - -Es un error si: - -- Compensación de corte está en - -== G10 L20 conjunto de coordenadas del sistema[[sec:G10-L20]] - -(((Establecer sistema de coordenadas))) - - G10 L20 P [sistema de coordenadas] R [la rotación alrededor de Z] - X [set_curr_loc_to] Y [set_curr_loc_to] Z [set_curr_loc_to] - A [set_curr_loc_to] B [set_curr_loc_to] C [set_curr_loc_to] - U [set_curr_loc_to] V [set_curr_loc_to] W [set_curr_loc_to] - -G10 L20 es similar a la del G-10 L2, excepto que en lugar de establecer la -offset / entrada a un valor dado, se establece en un valor calculado que -hace las coordenadas actuales convertido en el valor dado. - -Es un error si: - -- El número P no se evalúa como un número entero en el rango de 0 a 9. -- Un eje se programa que no está definido en la configuración. - -== G17, G18, G19, G17.1, G18.1, G19.1 Selección de Plano[[sec:G17-G18-G19]] - -(((G17 Plano XY))) -(((G18 Plano XZ))) -(((G19 Plano YZ))) - -Estos códigos de establecer el plano actual de la siguiente manera: - -[Width="60%", options="header"] -|======================================== -| G17 | XY (por defecto) -| G18 | ZX -| G19 | YZ -| G17.1 | UV -| G18.1 | WU -| G19.1 | VW -|======================================== - -Los efectos de contar con un plano seleccionado se discuten en la Sección -<> Y en la sección <> - -== G20, G21 Unidades de longitud[[sec:G20-G21-Unidades]] - -(((G20 Pulgadas))) -(((G21 Milimetros))) - -Programa G20 para uso pulgadas para unidades de longitud. + -Programa G21 para uso milímetros para las unidades de longitud. - -Por lo general es una buena idea del programa ya sea del G20 o G21, cerca de la -inicio de un programa antes de que cualquier movimiento se produce, y no utilizar -uno en el resto del programa. - -== G28, G28.1 Ir a las posiciones predefinidas[[sec:G28-G28.1]] - -(((G28))) -(((G28.1))) - -G28 utiliza los valores de los parámetros de 5161-5166, como los valores absolutos -hacer un rápido movimiento transversal a partir de la posición actual. El parámetro -Los valores se expresan en términos del sistema de coordenadas absolutas y el de la máquina -sistema de coordenadas de origen. - -`G28 ejes` hará un rápido movimiento transversal -a la posición especificada por 'ejes', -hará una rápida travesía mover a la posición predefinida -en los parámetros 5161-5166. - -G28.1 guarda la posición actual absoluta en los parámetros 5161-5166. - -Es un error si: - -- La compensación de radio se enciende - -== G30, G30.1 Ir a las posiciones predefinidas[[sec:G30-G30.1]] - -(((G30))) -(((G30.1))) - -G30 utiliza los valores de los parámetros de 5181-5186 -como los valores absolutos para hacer un rápido movimiento transversal a partir de la posición actual. -Los valores de los parámetros en términos de la -absoluta del sistema de coordenadas y el sistema de la máquina de coordenadas nativos. - -G30 'ejes' hará un rápido movimiento transversal -a la posición especificada por 'ejes', -hará una rápida travesía hacia el movimiento de las posiciones predefinidas en los parámetros 5181-5186. - -G30.1 guarda la posición actual absoluta en los parámetros 5181-5186. - -G30 parámetros se utilizan para mover la herramienta cuando el M6 está programado -si [TOOL_CHANGE_AT_G30] = 1 se encuentra en la sección [EMCIO] del archivo ini. - -Es un error si: - -- La compensación de radio se enciende - -== G33 husillo sincronizado movimiento[[sec:G33-eje-Sync]] - -(((G33 husillo sincronizado movimiento))) - - G33 X- Y- Z- K- - -Para el eje sincronizado movimiento en una dirección, el código de `G33 X- Y- Z- K-` -donde K da la distancia recorrida en XYZ para cada revolución del eje. -Por ejemplo, si empieza por `Z=0`, `G33 Z-1 K.0625` produce -un movimiento de 1 pulgada de Z más de 16 revoluciones del husillo. -Este comando puede ser parte de un programa para producir un hilo 16TPI. -Otro ejemplo en el sistema métrico, `G33 Z-15 K1.5` produce -un movimiento de 15 mm, mientras que el eje gira 10 veces por un hilo de 1,5 mm. - -Nota: K sigue la línea de la unidad descrita por `X- Y- Z-` y no es paralelo al eje Z. - -Sincronizado de huso movimientos esperar para el índice de eje, la línea pasa por lo que múltiples arriba. -`G33` extremo se mueve en el punto final programado. - -Todas las palabras que el eje son opcionales, excepto que al menos uno debe ser utilizado. - -Es un error si: - -- Todas las palabras eje se omiten. -- El eje no está girando cuando se ejecuta este comando -- El movimiento lineal solicitado excede los límites de velocidad de la máquina - debido a la velocidad del husillo - -== G33.1 roscado rígido[[sec:G33.1-rigido-Tapping]] - -(((G33.1 roscado rígido))) - - G33.1 X- Y- Z- K- - -Para el roscado rígido (husillo sincronizado con el movimiento de retorno), -código `G33.1 X-Y-Z-K-`, donde `K-` da la distancia recorrida -por cada revolución del eje. -Un movimiento de roscado rígido se compone de la siguiente secuencia: - -- El traslado a la coordenada especificada, sincronizado con el husillo en - dado la razón y comenzando con un pulso índice del husillo. -- Cuando se alcanza el punto final, un comando para invertir el eje (por ejemplo, - de las agujas del reloj a la izquierda). -- Continúa el movimiento sincronizado *más* allá de la coordenada final especificado - hasta el eje de hecho se detiene y se invierte. -- Continúa el movimiento sincronizado de nuevo a la coordenada original. -- Al llegar a la coordenada original, - un comando para invertir el eje por segunda vez - (Por ejemplo, de izquierda a derecha). -- Continúa el movimiento sincronizado *más* allá de las coordenadas originales - hasta el eje de hecho se detiene y se invierte. -- Un *sincronizados* volver a la coordenada original. - -Sincronizado de huso movimientos esperar para el índice de husillo, -por lo que múltiples pases en fila. -`G33.1` extremo se mueve en las coordenadas originales. - -Todas las palabras que el eje son opcionales, excepto que al menos uno debe ser utilizado. - -Es un error si: - -- Todas las palabras eje se omiten. -- El eje no está girando cuando se ejecuta este comando -- El movimiento lineal solicitado excede los límites de velocidad de la máquina - debido a la velocidad del husillo - -Ejemplo: - - , Se mueven a la posición inicial - G0 X1.000 Y1.000 Z0.100 - ; Rígida aprovechar un hilo 20 TPI - G33.1 Z-0.750 K0.05 - -== G38.x recto de la sonda[[sec:G38.x-Straight-Probe]] - -(((G38.2 sonda)))(((G38.3 sonda)))(((G38.4 sonda)))(((G38.5 sonda))) - -IMPORTANTE: Usted no será capaz de utilizar correctamente este comando hasta que su -máquina ha sido creada para dar una señal de la sonda a través de HAL de EMC2. -La señal de la sonda debe introducirse a través de un bit de entrada HAL, -y remitido a `motion.probe de entrada (bit, en)`. -G38.x utiliza el valor de este pin para determinar cuando la sonda ha hecho (o perdido) de contacto. -TRUE para sonda de contacto cerrado (tocar), FALSE para el contacto de la sonda abierta. - -Programa `G38.2 'ejes'`, `G38.3 'ejes'`, `G38.4 'ejes'` o -`G38.5 'ejes'` para realizar una operación de la sonda recta. -Las palabras del eje son opcionales, excepto que al menos uno de ellos debe ser utilizado. -Las palabras del eje en conjunto, definen el punto de destino de que la sonda se desplaza hacia, -a partir de la ubicación actual. -La herramienta en el cabezal tiene que ser una sonda. - -Es un error si: - -- El punto actual es el mismo que el punto programado. -- No se utiliza la palabra eje -- Compensación de radio de la fresa está activado -- La velocidad de avance es cero -- La sonda ya está en el estado de destino - -En respuesta a este comando, la máquina se mueve el punto de control -(Que debe estar en el centro de la bola de la sonda) en una línea recta en la -velocidad de avance actual hacia el punto programado. -En el modo de alimentación inversa del tiempo, la velocidad de avance es tal que todo el movimiento -desde el punto actual al punto programado se tomara el tiempo especificado. -El movimiento se detiene (dentro de los límites de aceleración de la máquina) -cuando el punto programado se alcanza, -o cuando el cambio solicitado en la entrada de la sonda se lleva a cabo, -lo que ocurra primero. - -La tabla <> muestra la importancia de -diferentes códigos de sondeo. - -.Códigos de sondeo[[cap:El-sondeo-de-codigos]] - -[Width="90%", options="header"] -|================================================ -| Código | Estado de destino | dirección deseada | señal de error -| G38.2 | Contacto | Hacia la pieza de trabajo | Sí -| G38.3 | Contacto | Hacia la pieza de trabajo | No hay -| G38.4 | No Contacto | Lejos de la pieza de trabajo | Sí -| G38.5 | No Contacto | Lejos de la pieza de trabajo | No hay -|================================================ - -Tras el éxito de sondeo, los parámetros de 5061 a 5069 se establece en el -coordenadas de XYZABCUVW de la ubicación del punto de control -en el momento de la sonda ha cambiado de estado. -Después de infructuosos sondeo, que se establecen las coordenadas del punto programado. -Parámetro 5070 está ajustado a 1 si la sonda tuvo éxito y 0 si la avería. -Si la operación de sondeo no, G38.2 G38.4 y será una señal de error -mediante la publicación de un mensaje en pantalla si la interfaz gráfica de usuario seleccionado es compatible con eso. -(Y por detener la ejecución del programa? * FIXME * TODO) - -Un comentario de la forma `(filename.txt PROBEOPEN)` se abrirá -"Archivo.txt" y almacenar las coordenadas 9-número que consta de -XYZABCUVW de cada sonda recta éxito en ella. -El archivo debe estar cerrado con `(PROBECLOSE)`. - -== G40 Compensación Off[[sec:G40]] - -(((Off G40 Compensación de radio))) - -Programa G40 para activar la compensación de radio de la fresa apagado. -El siguiente paso debe ser un movimiento recto. -Está bien que a su vez una indemnización de cuando ya está apagado. - -Es un error si: - -- Un movimiento de arco G2/G3 está programada siguiente después de un G40. - -== Compensación G41, G42 radio de la herramienta[[sec:G41-G42]] - -(((G41 Compensación de radio ))) -(((G42 Compensación de radio))) - - G41 o G42 D[herramienta] - -Para iniciar la compensación de radio a la izquierda del perfil de la pieza, utilice G41. -Comienza cortador G41 Compensación de radio a la izquierda de la línea de programa -como se ve desde el lado positivo del eje perpendicular al plano. - -Para iniciar la compensación de radio a la derecha del perfil de la pieza, utilice G42. -G42 inicia la compensación radio de la fresa a la derecha de la línea de programa -como se ve desde el lado positivo del eje perpendicular al plano. - -El plomo en movimiento debe ser al menos tan largo como el radio de la herramienta. -El plomo en movimiento puede ser una decisión rápida. - -Compensación de radio de la fresa se puede realizar si el plano XY o XZ plano está activa. - -M100-M199 usuario comandos están permitidos cuando compensación de cortador es el. - -El comportamiento del centro de mecanizado cuando la compensación de radio de la fresa -está en el se describe en la sección <> - -Cortador === compensación de radio de la tabla de herramientas - -Para activar la compensación de radio de la fresa a la izquierda (es decir, el corte se mantiene a -la izquierda de la trayectoria programada, cuando el radio de la herramienta es positivo), -programa `D-G41`. -Para activar la compensación de radio de la fresa a la derecha (es decir, el corte se mantiene a -la derecha de la trayectoria programada, cuando el radio de la herramienta es positivo), -programa `D-G42`. -La palabra D es opcional, si no hay ninguna palabra D, el radio de -la herramienta que está en el huso se utilizará. -Si se utiliza, el número D debe ser normalmente el número de ranura de -la herramienta en el eje, aunque esto no es necesario. -Está bien que el número D a cero, un valor de radio de cero se utiliza. - -Es un error si: - -- El número D no es un número entero, es negativo, o es mayor que el - número de ranuras del carrusel, -- El plano YZ es activo, -- Compensación de radio de la fresa se le ordena a su vez en cuando ya está encendida. - -== G41.1, G42.1 Compensación dinámica de radio de corte[[sec:G41.1-G42.1]] - -(((G41.1 Compensación Dinámica de Radio))) -(((G42.1 Compensación Dinámica de Radio))) - - G41.1 G42.1 o D [diámetro] - -Para activar la compensación de radio de la fresa a la izquierda, el programa `G41.1 D- L-`. - -Para activar la compensación de corte en el programa de la derecha, `G42.1 D- L-`. - -La palabra D especifica el diámetro de la fresa. -La palabra L especifica la orientación del corte, y por defecto a 0 si no se especifica. - -Es un error si: - -- El plano YZ es activo. -- El número L no está en el rango de 0 a 9. -- El número L se utiliza cuando el plano XZ no está activo. -- Compensación de corte se le ordena a su vez en cuando ya está encendida. - -Para más información sobre la orientación de corte ver el <> y -<> Y <> diagramas. - -== G43, G43.1, G49 Compensación Longitud de la herramienta[[sec:G43-G43.1-Tool]] - -(((G43 Compensación longitud de herramienta))) -(((G43.1 Compensación dinámica de longitud de herramienta))) -(((G49 Cancelar compensación longitud de herramienta))) - -=== G43, G43.1: Activar compensación de longitud - -G43 y G43.1 movimientos cambio posterior al compensar la Z y / o X -coordenadas de la longitud de la herramienta. G43 G43.1 y no causan ningún -movimiento. La próxima vez que se mueve un eje de compensación, de punto final que el eje de la -es el lugar compensado. - -==== G43: herramienta de uso corriente carga - -Para utilizar la herramienta está cargado de los últimos Tn M6 un programa G43 - -==== Hn G43: Compensación de la tabla de herramientas - -Para utilizar una longitud de herramienta de la tabla de herramientas, el programa `G43` Hn, -donde el número n es el índice que desee en la tabla de herramientas. El H -número será normalmente, pero no tiene que ser, al igual que la ranura -número de la herramienta que está en el huso. Está bien que el número H -a ser cero, un valor de desplazamiento de cero se utiliza. - -Es un error si: - -- El número H no es un número entero, es negativo, o es mayor que el - número de ranuras del carrusel. - -==== G43.1: la compensación de herramienta dinámica - -Para utilizar una longitud de herramienta del programa, use `G43.1 Xn Yn ... Wn` -para establecer cualquier TLO eje en tiempo de ejecución. - -Es un error si: - -- El movimiento es ordenado en la misma línea que `G43.1` - -=== G49: Cancelar herramienta de corrección de longitud[[sub:G49-herramientas]] - -No utilizar la corrección de longitud de herramienta, el programa G49. - -Está bien el programa con el mismo desplazamiento ya está en uso. También es -OK para programar sin usar la longitud de herramienta si no se está -utilizados. - -== Movimiento G53 en coordenadas absolutas[[sub:G53-Move-in]] - -(((G53 coordenadas absolutas))) - -Para moverse en coordenadas absolutas desde el origen de la máquina, el programa `G53` -en la misma línea como un movimiento lineal. `G53` no es modal y se debe -programados en cada línea. `G0` o `G1` no tiene que ser programado -en la misma línea si uno está activo actualmente. -Por ejemplo `G53 G0 X0 Y0 Z0` se moverá los ejes para el hogar -incluso si la actual -sistema de coordenadas seleccionado se compensa, en efecto. - -Es un error si: - -- G53 se utiliza sin G0 o G1 ser activo, -- O G53 se utiliza mientras que la remuneración es el radio de la fresa. - -== G54-G59.3 Seleccione Sistema de coordenadas[[sec:G54-G59.3]] - -(((G54 Seleccionar sistema de coordenadas 1))) -(((G55 Seleccionar sistema de coordenadas 2))) -(((G56 Seleccionar sistema de coordenadas 3))) -(((G57 Seleccionar sistema de coordenadas 4))) -(((G58 Seleccionar sistema de coordenadas 5))) -(((G59 Seleccionar sistema de coordenadas 6))) -(((G59.1 Seleccionar sistema de coordenadas 7))) -(((G59.2 Seleccionar sistema de coordenadas 8))) -(((G59.3 Seleccionar sistema de coordenadas 9))) - -Para seleccionar un sistema de coordenadas, -programa G54, -y lo mismo para otros sistemas de coordenadas. -Los pares del sistema-número de código-G son: -(1 - `G54`), (2 - `G55`), (3 - `G56`), -(4 - `G57`), (5 - `G58`), (6 - `G59`), -(7 - `G59.1`), (8 - `G59.2`) y (9 - `G59.3`). -Los sistemas de coordenadas almacenar los valores -para cada sistema en el -variables que se muestran en la siguiente tabla. - -.Sistemas de coordenadas[[cap:Coordinar-Systems]] - -[Width="100%", options="header"] -|==================================================================== -| Seleccionar | CS | X | Y | Z | A | B | C | U | V | W -| G54 | 1 | 5221 | 5222 | 5223 | 5224 | 5225 | 5226 | 5227 | 5228 | 5229 -| G55 | 2 | 5241 | 5242 | 5243 | 5244 | 5245 | 5246 | 5247 | 5248 | 5249 -| G56 | 3 | 5261 | 5262 | 5263 | 5264 | 5265 | 5266 | 5267 | 5268 | 5269 -| G57 | 4 | 5281 | 5282 | 5283 | 5284 | 5285 | 5286 | 5287 | 5288 | 5289 -| G58 | 5 | 5301 | 5302 | 5303 | 5304 | 5305 | 5306 | 5307 | 5308 | 5309 -| G59 | 6 | 5321 | 5322 | 5323 | 5324 | 5325 | 5326 | 5327 | 5328 | 5329 -| G59.1 | 7 | 5341 | 5342 | 5343 | 5344 | 5345 | 5346 | 5347 | 5348 | 5349 -| G59.2 | 8 | 5361 | 5362 | 5363 | 5364 | 5365 | 5366 | 5367 | 5368 | 5369 -| G59.3 | 9 | 5381 | 5382 | 5383 | 5384 | 5385 | 5386 | 5387 | 5388 | 5389 -|==================================================================== - -Es un error si: - -- Uno de los G-códigos se utiliza mientras que la remuneración es el radio de la fresa. - -Vea la sección <> para una descripción de coordinar -sistemas. - -== G61, G61.1, G64 Ruta del Menú de control[[sec:G61-G61.1-G64]] - -(((G61 trayectoria exacta))) -(((G61.1 parada precisa))) -(((G64 control de trayectoria))) -(((Control de desplazamiento))) -(((Control de trayectoria))) - - G61 Modo ruta exacta - G61.1 modo de parada precisa - G64 mejor velocidad posible - G64 P- (tolerancia al movimiento de mezcla) Q- (ingenua tolerancia de levas) - -G61 visita el punto programado exactamente, a pesar de que los medios -temporalmente de llegar a una parada completa. - -G64 sin P de medios para mantener la mejor velocidad posible, sin importar cómo -lejos del punto programado se termina. - -G64 P- Q- es una manera de afinar el sistema para mejor compromiso -entre velocidad y precisión. El P-tolerancia significa que el camino real -no será más que el P-lejos de la punto final programado. La velocidad -se reducirá, si es necesario para mantener la trayectoria. Además, cuando -activar G64 P- Q- se convierte en el "detector de ingenuo cam", cuando hay -una serie de alimentación lineales XYZ se mueve a la velocidad de avance mismo de que son menos -de Q- lejos de ser alineados, que se desplomó en una sola -movimiento lineal. El G2/G3 se mueve en el G17 (XY) avión cuando el máximo -desviación de un arco de la línea recta es menor que el G64 P- -la tolerancia del arco se divide en dos líneas (desde el inicio del arco -punto medio, y desde el punto medio a fin). esas líneas son sujetos a -el algoritmo ingenuo de levas para las líneas. Por lo tanto, la línea del arco, un arco de arco, y -la línea del arco de los casos, así como de línea a línea se benefician de la leva "ingenuo -detector ". Esto mejora el rendimiento mediante la simplificación de los contornos -trayectoria. Está bien para el programa de modo que ya está activa. Véase también -Sección <> para una discusión de estos modos. -Si Q no se especifica a continuación, tendrá el mismo comportamiento que antes y -utilizar el valor de P-. - -== G73 Ciclo de taladrado con rotura de la viruta[[sec:G73-Perforacion-del-ciclo]] - -(((G73 Ciclo de taladrado Quiebre Chip))) - - G73 X- Y- Z- A- B- C- R- L- Q- - -El `G73` ciclo está destinado a la perforación profunda o de fresado con rotura de la viruta. -Se retrae en este ciclo de cortar cualquier largueros de largo (que son comunes -cuando se perfora en aluminio). Este ciclo tiene una serie Q, que -representa un "delta" incremento a lo largo del eje Z. - -. Movimiento preliminar, como se describió anteriormente. -. Mover el eje Z sólo en la velocidad de alimentación de corriente a la baja en delta o - la posición Z, lo que es menos profundo. -. Rápida un poco. -. Repita los pasos 2 y 3 hasta la posición Z se alcanza en el paso 2. -. Retraer el eje Z en la velocidad de desplazamiento para borrar Z. - -Es un error si: - -- El número Q es negativo o cero. - -== G76 Roscado ciclo[[sec:G76-Threading-Canned]] - -(((G76 Threading))) - - G76 P- Z- I- J- R- K- Q- H- E- L- - -Es un error si: - -- El plano activo no es el plano ZX -- Las palabras de otro eje, como por ejemplo X o Y, se especifican -- El `R`-reducción, el valor es inferior a 1,0. -- Todas las palabras necesarias no se especifican -- `P-`,`J-`,`K-` o `H-` es negativo -- `E-` es mayor que la mitad de la longitud de la línea de impulsión - -.G76 Roscado[[fig:G76-Threading]] - -image::images/g76-threads.png [] - -Línea de unidad:: - Una línea a través de la X en paralelo posición inicial a la Z. - -P-:: - El "paso de rosca" en la distancia por vuelta. - -Z:: - La posición final de las discusiones. Al final del ciclo de la herramienta - estar en esta posición Z. - -I-:: - El "hilo pico" desplazamiento de la "línea de mando". Negativo `I` valores - son temas externos, positivos y `I` valores son las discusiones internas. - En general, el material se ha convertido - de este tamaño antes de que el `G76` ciclo. - -J-:: - Un valor positivo que especifica la "profundidad de corte inicial". La primera - cortar hilos será `J` más allá de la "cumbre hilo" posición. - -K-:: - Un valor positivo que especifica la "profundidad de la rosca completa". La final - cortar hilos será `K` más allá de la "cumbre hilo" posición. - -Los ajustes opcionales - -R-:: - La "reducción progresiva de la profundidad". `R1.0` selecciona una profundidad constante en los sucesivos - roscado pasa. `R2.0` selecciona la zona de constante. Valores entre 1.0 y - 2.0 seleccionar la disminución - profundidad, pero aumentar la superficie. Valores por encima de 2,0 seleccionar la disminución zona. - Tenga en cuenta que los valores de reducción, sin necesidad de alta causará una gran - número de pases que se utilizará. Regresividad (= un descenso por etapas o - pasos.) - -Q-:: - El "ángulo compuesto de diapositivas" es el ángulo (en grados) que describe a - lo que pasa medida sucesivos deben ser compensados ​​a lo largo de la línea de transmisión. - Esto se utiliza para que un lado de la herramienta para extraer más material del que - la otra. Un resultado positivo `Q` valor hace que el borde delantero de la herramienta para - corte en mayor medida. - Los valores típicos son 29, 29,5 o 30. - -H-:: - El número de "pases de la primavera". Pasa a la primavera se pasa a otros - profundidad de la rosca completa. Si no pasa más se desea, el programa `H0`. - -Entrada cónica y se mueve salida se puede programar el uso de `E-` y `L-`. - -E-mail:: - Especifica la distancia a lo largo de la línea de unidad utilizada para la puesta a punto. La - ángulo de la vela será así el último paso se estrecha a la cresta hilo - más de la distancia especificada con E. `E0.2` dará una vela para el - primer / último 0,2 unidades de longitud a lo largo del - hilo. Para un programa de E cono de 45 grados lo mismo que K - -L-:: - Especifica que los extremos del hilo de conseguir la puesta a punto. Programa `L0` para no - cono (por defecto), `L1` para la puesta a punto de entrada, `L2` de cono de salida, o `L3` - tanto para la entrada y salida se estrecha. Se estrecha la entrada se detendrá en la unidad - línea para sincronizar con el pulso índice se incorporarán a los principios - de la forma cónica. No cono de entrada y la herramienta será rápido a la profundidad de corte - a continuación, sincronizar y comenzar el corte. - -La herramienta se mueve a la X inicial y las posiciones de Z antes de emitir -el G76. La posición X es la "línea de mando" y es la posición de la Z -inicio de las discusiones. - -La herramienta de sincronización de una breve pausa antes de cada rosca -pasar, por lo que una ranura de desahogo se requerirá a la entrada a menos que el -comienzo de la rosca es más allá del final de la materia, o la inscripción -cono se utiliza. - -A menos que use un cono de salida, el movimiento de salida (transversal a X original) es -no está sincronizado con la velocidad de giro. Con un eje lento, la salida -medida puede tener sólo una pequeña fracción de una revolución. Si el cabezal -la velocidad es mayor después de varios pases de salida se completa, con posterioridad -mueve requerirá una mayor parte de una revolución, lo que resulta en una -corte muy fuerte durante el traslado de salida. Esto puede evitarse mediante una -alivio de la ranura en la salida, o por no cambiar la velocidad de giro, mientras que -roscado. - -La posición final de la herramienta estará en la final de la "línea de mando". -Una caja fuerte movimiento Z será necesario con una rosca interna para quitar la herramienta -del hoyo. - -El programa de ejemplo `g76.ngc` muestra el uso del ciclo de G76 en lata, -y se puede visualizar y -ejecutarse en cualquier máquina con el 'SIM / lathe.ini `configuración. - -El siguiente ejemplo muestra el resultado de la ejecución de este G-Code: - - G0 Z-0.5 X 0.2 - P0.05 G76 Z-1 I-0.075 J0.008 K0.045 Q29.5 L2 E0.045 - -La herramienta está en la posición final después de que el ciclo G76 se ha completado. -Usted puede ver la trayectoria de entrada a la derecha de la Q29.5 y salir de la -camino a la izquierda de la E0.045 L2. Las líneas blancas son el corte -se mueve. - -.Ejemplo G76 Roscado[[fig:G76-Threading-Ejemplo]] - -image::images/g76-01.png [] - -== G80 Cancelar modal de movimiento[[sec:G80-Cancelar-Modal]] - -(((G80 Cancelar modal de movimiento))) - -Programa `G80` para asegurar que no se producirá el movimiento del eje. Es un error si: - -- Las palabras del Eje se programan cuando G80 está activo, a menos que un referente - el grupo 0 Gcode está programado que usa palabras eje. - -== Los ciclos preprogramados G81-G89[[sec:G81-G89]] - -(((ciclos preprogramados G81-G89))) -(((G81-G89, Los ciclos preprogramados))) - -Los ciclos fijos `G81` a través `G89` se describen en esta sección. -Dos ejemplos se dan con la descripción de `G81` de abajo. - -Todos los ciclos fijos se llevan a cabo con respecto a la actualmente seleccionada -avión. Cualquiera de los seis aviones pueden ser seleccionados. En esta sección, -la mayoría de las descripciones de asumir el plano XY se ha seleccionado. La -comportamiento es análogo, si se selecciona otro plano, y corregir la -palabras deben ser empleadas. Por ejemplo, en el `G17.1` avión, la acción de -el ciclo fijo es a lo largo de W, y los lugares -o incrementos se dan con U y V. En este caso, sustituir U, V, W para -X, Y, Z en las instrucciones de abajo. - -Palabras de ejes giratorios no están permitidos en los ciclos enlatados. Cuando el -plano activo es uno de los familiares XYZ, las palabras no son el eje UVW -permitido. Del mismo modo, cuando el plano activo es uno de los familiares UVW, la -XYZ palabras eje no están permitidos. - -=== Palabras comunes - -Todos los ciclos enlatados usan X, Y, Z o U, V, W grupos en función de la -plano seleccionado y las palabras de R. La posición R (por lo general significa retraer) es -a lo largo del eje perpendicular al plano seleccionado en ese momento (el eje Z -de plano XY, etc) Algunos ciclos enlatados usan argumentos adicionales. - -=== Palabras Adherido - -Para los ciclos enlatados, vamos a llamar a un número "pegajosa" si, cuando el mismo -ciclo se utiliza en varias líneas de código en una fila, el número debe ser -usó la primera vez, pero es opcional en el resto de las líneas. Pegajoso -números de mantener su valor en el resto de las líneas si no se -explícitamente programado para ser diferente. El número de R es siempre pegajoso. - -En el modo incremental distancia X, Y, y los números R son tratados como -incrementos de la posición actual y Z como un incremento de la -Z-eje de la posición antes de la mudanza participación de Z se lleva a cabo. En términos absolutos -modalidad a distancia, la X, Y, R, Z y los números son posiciones absolutas en el -sistema de coordenadas actual. - -=== Repetir el ciclo - -El número L es opcional y representa el número de repeticiones. -latexmath: [L = 0] no está permitido. Si la función de repetición se utiliza, es -normalmente se utiliza en modo de distancia incremental, de modo que la misma secuencia -de los movimientos se repite en varios lugares equidistantes a lo largo de un -línea recta. Cuando L-es mayor que 1 en el modo incremental con el -XY-plano seleccionado, las posiciones X e Y se determina sumando el -dados X e Y los números ni a la actual de X y Y las posiciones (en el -primera vuelta) o en las posiciones X e Y en el final de la anterior -y al aire (en las repeticiones). Por lo tanto, si el programa `L10`, que se -obtener 10 ciclos. El primer ciclo se distancia X, Y de -la ubicación original. Las posiciones de R y Z no cambian durante el -repite. El número L no es pegajoso. En el modo de distancia absoluta, -latexmath: [L> 1] significa "hacer el mismo ciclo en el mismo lugar varios -tiempos ", omitiendo la palabra L es equivalente a especificar -latexmath: [L = 1]. - -=== Retracción modo - -La altura del movimiento de retracción al final de cada repetición (llamada -"Claro Z" en las descripciones de abajo) es determinado por el valor de -la retracción modo: o bien a la posición original Z (si es que está por encima de -la posición de R y el modo de retractarse es `G98`, OLD_Z), o bien a -la posición R. Vea la sección <> - -=== Los errores de un ciclo fijo - -Es un error si: - -- X, Y, Z y las palabras están desaparecidos durante un ciclo fijo, -- Eje palabras de los diferentes grupos (XYZ) (UVW) se usan juntos, -- Un número de P que se requiere y un número negativo P se utiliza, -- Un número L se utiliza que no se evalúa a un entero positivo, -- El movimiento del eje de giro se utiliza durante un ciclo fijo, -- Tasa inversa de alimentación vez que se activa durante un ciclo fijo, -- O compensación radio de la fresa está activa durante un ciclo fijo. - -Si el plano XY se activa, el número Z es pegajoso, y es un error -si: - -- El número Z es falta y el ciclo fijo misma no estuviera ya - activa, -- O el número de R es menor que el número Z. - -Si los aviones están activas las otras, las condiciones de error son análogos a los -XY condiciones anteriores. - -=== Preliminar y en el medio de movimiento - -En el comienzo de la ejecución de cualquiera de los ciclos fijos, si -la actual posición de Z está por debajo de la posición R, el Z-eje se desplaza -a la posición R. Esto sucede sólo una vez, independientemente del valor de -L. - -Además, al comienzo del primer ciclo y repite cada uno, el -se mueve siguiendo una o dos se hacen - -. una recta paralela al atravesar el plano XY a la posición dada XY, -. una recta transversal del eje Z sólo a la posición R, si no se - Ya en la posición R. - -Si otro avión está activa, los movimientos preliminares y en el medio, se -análoga. - -== G81 Ciclo de taladrado[[sec:G81-Perforacion-del-ciclo]] - -(((G81 Ciclo de taladrado))) - - G81 (X-Y-Z) o (U-V-W-) R-L- - -El `G81` ciclo está destinado a la perforación. - -. Movimiento preliminar, como se describió anteriormente. -. Mover el eje Z sólo en la velocidad de avance actual en la posición Z. -. Retraer el eje Z en la velocidad de desplazamiento para borrar Z. - -* Ejemplo 1.* Supongamos que la posición actual es (1, 2, 3) y el -Plano XY se ha -seleccionados, y la siguiente línea de código NC se interpreta. - - G90 G81 G98 X4 Y5 Z1.5 R2.8 - -Esto requiere el modo de distancia absoluta (`G90`) y el modo de retirar OLD_Z -(`G98`) y pide la `G81` ciclo de perforación que se realiza una vez. -El número X y la posición X son -4. Y el número y la posición Y son cinco. El número Z y la posición Z se -1.5. El número de R y Z son claras 2,8. Antiguo Z es de 3. Los siguientes movimientos -llevará a cabo. - -. un paralelo a atravesar el plano XY a (4,5,3) -. un paralelo transversal al eje Z de (4,5,2.8) -. un paralelo de alimentación a la Z-eje (4,5,1.5) -. un paralelo transversal al eje Z de (4,5,3) - -* Ejemplo 2.* Supongamos que la posición actual es (1, 2, 3) y el -Plano XY se ha -seleccionados, y la siguiente línea de código NC se interpreta. - - G91 G81 G98 X4 Y5 Z-0.6 R1.8 L3 - -Esto requiere modo de distancia incremental (`G91`) y OLD_Z retraer -modo (`G98`) y pide la `G81` ciclo de perforación que se repita -tres veces. El número de X es 4, la Y -número 5, el número Z es -0,6 y el número de R es de 1,8. La primera -X es la posición 5 (= 1 +4), la posición Y inicial es 7 (= 2 +5), la clara Z -posición es de 4,8 (= 1,8 3), y la posición Z es de 4,2 (4,8-0,6 =). Antiguo Z -3. - -El primer movimiento es una travesía a lo largo del eje Z de (1,2,4.8), desde que el viejo -Z > Y <> - -== G85 aburrido, no de permanencia, salida de alimentación[[sec:G85-aburrido-Feed-Out]] - -(((G85 aburrido, no de permanencia, salida de alimentación))) - - G85 (X-Y-Z) o (U-V-W-) R-L- - -El 'G85' ciclo está diseñado para perforar o fresar, pero podría ser utilizado -para la perforación o fresado. - -. Movimiento preliminar, como se describió anteriormente. -. Mover el eje Z sólo en la velocidad de avance actual en la posición Z. -. Retraer el eje Z en la velocidad de alimentación de corriente para limpiar Z. - -== G86 aburrido, parada del cabezal, salida rápida[[sec:G86-aburrido-Rapid-Out]] - -(((G86 parada aburrido, eje, salida rápida))) - - G86 (X- Y- Z) o (U- V- W-) R- L- P- - -El `G86` ciclo está destinado a aburrido. Este ciclo se utiliza un número de P -para el número de segundos que habitan. - -. Movimiento preliminar, como se describió anteriormente. -. Mover el eje Z sólo en la velocidad de avance actual en la posición Z. -. Morar por el número P de segundos. -. Detener el giro del cabezal. -. Retraer el eje Z en la velocidad de desplazamiento para borrar Z. -. Reinicie el cabezal en el sentido que iba. - -El eje debe estar girando antes de que este ciclo se utiliza. Se trata de un error -si: - -- El eje no está girando antes de que este ciclo se ejecuta. - -== G87 Volver aburrido[[sec:G87-Back-Aburrido]] - -(((G87 Volver aburrido))) - -Este código no está implementada en EMC2. Se acepta, pero el -comportamiento no está definido. - -== G88 aburrido, parada del cabezal, Manual de salida[[sec:G88-aburrido-Manual-Out]] - -(((G88 aburrido, eje Stop, Manual de salida))) - -Este código no está implementada en EMC2. Se acepta, pero el -comportamiento no está definido. - -== G89 aburrido, permanencia, salida de alimentación[[sec:G89-aburrido-Dwell]] - -(((G89 aburrido, permanencia, salida de alimentación))) - - G89 (X-Y-Z) o (U-V-W-) R-L-P- - -El 'G89' ciclo está destinado a aburrido. Este ciclo se utiliza un número P, -donde P especifica el número de segundos que habitan. - -. Movimiento preliminar, como se describió anteriormente. -. Mover el eje Z sólo en la velocidad de avance actual en la posición Z. -. Morar por el número P de segundos. -. Retraer el eje Z en la velocidad de alimentación de corriente para limpiar Z. - -== G90, G91 Set modalidad a distancia[[sec:G90-G91-Set]] - -(((G90, G91 modalidad a distancia Set))) - - G90 es el modo Absolute Distance + - G91 es el modo de distancia incremental - -Interpretación de G Código puede estar en uno de los dos modos de distancia: absoluta -o incremental. - -Para entrar en modo absoluto la distancia, el programa de `G90`. En términos absolutos -modalidad a distancia, los números de los ejes (X, Y, Z, A, B, C, U, V, W) -por lo general representan las posiciones en cuanto a la coordinación activa -del sistema. Cualquier excepción a esta regla se describen explícitamente en -sección <>. - -Para entrar en modo incremental la distancia, el programa de `G91`. En incremental -números de modalidad a distancia, por lo general representan el eje -incrementos de las coordenadas actual. - -== G90.1, G91.1 Arco modalidad a distancia[[sec:G90.1-G91.1]] - -(((Arco modalidad a distancia))) - -G90.1 modalidad a distancia absoluta de que, las compensaciones de I, J & K. - -- I y J tanto debe ser especificado o es un error - -G91.1 modo de distancia incremental para I, J & K compensaciones. - -- Returns I, J & K a su comportamiento normal. - -== G92, G92.1, G92.2, G92.3 compensaciones sistema de coordenadas[[sec:G92-G92.1-G92.2-G92.3]] - -(((G92, G92.1, G92.2, G92.3 compensaciones))) - - G92 X-Y-Z-A-B-C-U-V-W- - -Vea la sección <> para una descripción de coordinar -sistemas. - -Vea la sección <> para obtener más información sobre las compensaciones. - -Para hacer el punto actual de las coordenadas que desee (sin -movimiento), el programa `G92 X-Y-Z-A-B-C-U-V-W-`, donde el eje -palabras contienen los números de eje que desea. Todos los ejes -las palabras son opcionales, excepto que al menos uno debe ser utilizado. Si un eje -palabra no se utiliza para un eje dado, las coordenadas en que el eje de la -punto actual no cambia. Es un error si: - -- Eje de todas las palabras se han omitido. - -Cuando `G92` se ejecuta, el origen de todos los sistemas de coordenadas se mueven. -Se mueven -de tal manera que el valor del punto de control actual, en la actualidad -activa el sistema de coordenadas, se convierte en el valor especificado. Todas las coordenadas -orígenes del sistema se compensan esta misma distancia. - -Por ejemplo, supongamos que el punto actual en X = 4 y es allí -Actualmente no hay offset `G92` activa. A continuación, `G92` x7 está programado. Este -mueve todos los orígenes -3 en X, que hace que el -punto actual para convertirse en X = 7. Esta -3 se guarda en el parámetro 5211. - -Estando en modo de distancia incremental no tiene ningún efecto sobre la acción de `G92`. - -`G92` compensaciones pueden estar ya en vigor cuando el G92 se llama. -Si este es el caso, el desplazamiento es reemplazada por una nueva -desplazamiento que hace que el punto actual a ser el valor especificado. - -Para restablecer las compensaciones de eje a cero, el programa `G92.1` o `G92.2`. `G92.1` -establece los parámetros de 5211 a 5219 a cero, mientras que `G92.2` deja su -valores actuales solo. - -Para definir el eje de desplazamiento a los valores guardados en los parámetros de 5211 a 5219, -programa `G92.3`. - -Puede establecer las compensaciones de eje en un solo programa y el uso de las compensaciones en el mismo -otro programa. Programa `G92` en el primer programa. Esto fijará -los parámetros de 5211 a 5219. No -usar `G92.1` en el resto del primer programa. El parámetro -Los valores se -salvo cuando se sale del primer programa y restaura cuando el segundo -se pone en marcha. Use `G92.3` cerca del comienzo del segundo programa. Que -se restaurará la -compensaciones salvo en el primer programa. - -EMC2 almacena el G92 compensaciones y los reutiliza en la próxima ejecución de un -del programa. Para evitar esto, se puede programar un G92.1 (para eliminar), o -un programa de G92.2 (para eliminarlos - que se conserva aún). - -== G93, G94, G95: Feed Rate Set Mode[[sec:G93-G94-G95-modo]] - -(((G93, G94, G95: Modo de velocidad de alimentación))) - - G93 es el modo de Tiempo Inverso - G94 es el modo de unidades por minuto - G95 es el modo de unidades por la Revolución. - -Tres modos de velocidad de alimentación se reconocen: unidades por minuto, tiempo inverso, -y las unidades por revolución. Programa G94 para iniciar la unidades por minuto -modo. Programa G93 para iniciar el modo de tiempo inverso. Programa G95 para empezar -las unidades por el modo de la revolución. - -En unidades por minuto modo de avance, una palabra F se interpreta como -el punto de control debe moverse en un cierto número de pulgadas por -minutos, milímetros por minuto, o grados por minuto, dependiendo de -lo que las unidades de longitud están siendo utilizados y que el eje o ejes se están moviendo. - -En unidades por el modo de la revolución, una palabra de F se interpreta como la -punto de control debe pasar un cierto número de pulgadas por revolución -del eje, en función de las unidades de longitud que se están utilizando y que -eje o ejes están en movimiento. G95 no es apropiado para roscar, para -roscado uso G33 o G76. - -En el modo de índice inverso tiempo de alimentación, una palabra F significa que el movimiento debe ser -completado en [uno dividido por el número F] minutos. Por ejemplo, si el -Número F es de 2.0, la medida debe ser completada en medio minuto. - -Cuando el alimento de tiempo inverso modo de índice está activo, la palabra F debe aparecer -en cada línea que tiene un G1, G2, G3 o el movimiento, y una palabra de F en una línea -que no tiene G1, G2, G3 o se ignora. Estar en la alimentación de tiempo inverso -el modo de tasa no afecta G0 (marcha rápida) movimientos. - -Es un error si: - -- Alimentar a tiempo inverso modo de tasa activa y una línea con G1, G2 o G3 - (Explícita o implícitamente) no tiene una palabra F. -- Un nuevo avance no se especifica después de cambiar a G94 o G95 - -== G96, G97 del eje del modo de control[[sec:G96-G97-eje]] - -(((G96, G97 modo de control del eje))) - - G96 D [la velocidad del husillo max] S [unidades por minuto] es el modo de velocidad de corte constante + - G97 es el modo RPM - -Dos modos de la varilla de mando son reconocidos: revoluciones por minuto, y -CSS (velocidad de corte constante). Programa D-G96-S para seleccionar constante -la superficie de la velocidad de los pies por minuto S (G-20 si está en vigor) o metros por -minuto (G21 si está en vigor). La velocidad de giro máximo es fijado por el -D-número de revoluciones por minuto. - -Cuando se utiliza G96, asegurar que en X0 -el sistema de coordenadas actual (incluyendo compensaciones y longitud de la herramienta) es -el centro de rotación o de EMC no dará la velocidad de giro deseado. -G96 no se ve afectada por la radio o el modo de diámetro. - -Programa G97 para seleccionar el modo RPM. - -Es un error si: - -- S no se especifica con el G96 -- Un movimiento de alimentación se especifica en el modo G96, mientras que el eje no está girando - -== G98, G99 Ajustar los ciclos enlatados nivel de retorno[[sec:G98-G99-Set]] - -(((G98, G99 Volver ciclo fijo))) - - G98 retracción en la posición de ese eje se encontraba justo antes de esta serie - de uno o más ciclos fijos contiguos se inició. + - G99 retracción de la posición especificada por la palabra R del ciclo fijo. - -Cuando se retrae el cabezal durante los ciclos fijos, no -dos opciones para indicar la forma en que se retrae: (1) perpendicular Retiro -a la posición actual a la posición indicada por la palabra R, o (2) -Retiro perpendicular a la posición actual -a la posición de que era la de este eje justo antes del inicio de la -el ciclo fijo (a menos que la posición es inferior a -la indicada por la palabra R, en cuyo caso éste se -se utiliza). - -Para utilizar (1), el programa 'G99'. Para utilizar (2), el programa 'G98'. -Recordemos que la palabra R tiene el modo de significados diferentes -desplazamiento absoluto y modo incremental de los viajes. - -La "primera" (G98) avión se restablece cualquier ciclo de tiempo del modo de cámara está -abandonados, ya sea explícitamente (G80) o implícitamente (cualquier código de movimiento -que no es un ciclo). Cambiar entre los modos de ciclo (por ejemplo G81 -a G83) no restablece el "primer" avión. Es posible cambiar -G98 y G99 entre en una serie de ciclos. - -= M Códigos - -== M0, M1, M2, M30, M60 Programa de Detención y final[[sec:M0-M1-M2]] - -(((M0 detener el programa))) -(((M1 detener el programa opcional))) -(((M2 Fin de programa))) -(((M30 Fin del programa))) -(((M60 Fin del programa))) - -Para poner en pausa un programa en ejecución temporalmente -(Independientemente de la configuración del interruptor de parada opcional), -programa de `M0`. -EMC2 permanece en el modo automático para MDI y -otras acciones manuales no están habilitadas. - -Para poner en pausa un programa en ejecución temporalmente -(Pero sólo si el interruptor de parada opcional en), -programa de `M1`. -EMC2 permanece en el modo automático para MDI y -otras acciones manuales no están habilitadas. - -Está bien el programa `M0` y `M1` en el modo MDI, -pero el efecto probablemente no se note, -debido a un comportamiento normal en el modo MDI se -para detenerse después de cada línea de entrada de todos modos. - -Para el intercambio de transbordadores de palets y luego se detiene un programa en ejecución -temporalmente (independientemente de la configuración del interruptor de parada opcional), -programa `M60`. - -Si un programa se detiene por un `M0`,`M1`, o `M60`, al pulsar el -botón de inicio de ciclo se reiniciará el programa en la siguiente línea. - -Para finalizar un programa, el programa `M2`. -Para el intercambio de transbordadores de palets y después terminar un programa, el programa `M30`. -Ambos comandos tienen los siguientes efectos: - -. Cambio de modo automático al modo MDI. -. Las compensaciones de origen se establecen en el valor por defecto (como `G54`). -. Plano seleccionado está en el plano XY (como `G17`). -. Modalidad a distancia está en modo absoluto (como `G90`). -. El modo de alimentación tasa se establece en unidades por minuto (como `G94`). -. Anula avance y la velocidad se establece en ON (como `M48`). -. Compensación de cortador está apagado (como `G40`). -. El cabezal está parado (como `M5`). -. El modo de movimiento actual se establece en los piensos (como `G1`). -. Refrigerante se apaga (como `M9`). - -No hay más líneas de código en un archivo de RS274/NGC se ejecutará -después del comando M2 o M30 se ejecuta. -Al pulsar inicio del ciclo se iniciará el programa -en el principio del archivo. - -== M3, M4, M5 de control del eje[[sec:M3-M4-M5]] - -(((M3 eje CW))) -(((M4 eje CCW))) -(((M5 Parada del cabezal))) - -Para iniciar el huso horario en la "S" de velocidad, el programa `M3`. + -Para iniciar el cabezal a izquierdas en la "S" de velocidad, el programa `M4`. + -Para detener el eje de giro, el programa `M5`. - -No hay problema en usar `M3` o `M4` si la velocidad de giro se ajusta a cero. -Si esto se hace -(O si el interruptor de cancelación de velocidad se habilita y se puso a cero), -el eje no empezará a girar. -Si, más tarde, la velocidad de giro se encuentra por encima de cero -(O el interruptor de cancelación está activado), -el eje comenzará a girar. -No hay problema en usar `M3` o `M4` cuando el cabezal ya está -giro o el uso de `M5` cuando el cabezal se ha detenido. - -== M6 Cambio de herramienta[[sec:M6-Tool-Cambio]] - -(((M6-Tool-Change))) - -=== Cambio de herramienta manual - -Si el componente hal_manualtoolchange HAL está cargado, -M6 parará el cabezal y pedir al usuario cambiar la herramienta. -Para más información sobre hal_manualtoolchange ver -Sección (<>) - -=== Cambiador de herramientas - -Para cambiar una herramienta en el eje de la herramienta que está en el eje -a la herramienta más recientemente seleccionado (usando una palabra T - véase la Sección -<>), El programa `M6`. -Cuando el cambio de herramienta es completa: - -- El eje se detendrá. -- La herramienta que se ha seleccionado (por una palabra T en la misma línea o en cualquier - línea después del cambio de la herramienta anterior) se encuentra en el cabezal. - El número de T es un entero que indica la - cambiador de la ranura de la herramienta (no su id). -- Si la herramienta seleccionada no se encuentra en el cabezal antes de que el cambio de herramienta, - la herramienta que se encuentra en el cabezal - (Si la hubo) - estará en la ranura del cambiador. --. Si se ha configurado en el archivo ini algunas posiciones de los ejes pueden moverse cuando un M6 - se emite. Vea la sección EMCIO del Manual del Integrador para obtener más - información sobre las opciones de cambio de herramienta. -- No hay otros cambios se harán. Por ejemplo, el refrigerante continuará - flujo durante el cambio de herramienta a menos que se haya apagado por un `M9. -- La longitud de herramienta no se cambia, - utilizar G43 para cambiar la longitud de herramienta. - -El cambio de herramienta puede incluir el movimiento del eje. -Que está bien (pero no muy útiles) para programar un cambio de la herramienta ya está en el eje. -Está bien si no existe una herramienta en la ranura seleccionada; -en ese caso, el eje estará vacío después de que el cambio de herramienta. -Si es cero slot seleccionado en último lugar, -definitivamente habrá ninguna herramienta en el cabezal tras un cambio de herramienta. - -== M7, M8, M9 refrigerante de control[[sec:M7-M8-M9]] - -(((M7 niebla refrigerante ))) -(((M8 inundación de refrigerante líquido refrigerante))) -(((M9 alto de refrigerantes))) - -Para activar el refrigerante en la niebla, el programa `` M7. + -Para activar el refrigerante de inundación en, el programa 'M8'. + -A su vez, todo el refrigerante fuera, el programa `` M9. - -Siempre es conveniente usar cualquiera de estos comandos, -independientemente de lo que el refrigerante está encendido o apagado. - -== M48-M53 Anulars[[sec:Anulars]] - -=== M48, M49 anulación de control[[sub:M48-Ambos-Override]][[sub:M49-Ni-Anular]] - -(((M48, M49 control de anulación))) - -Para permitir que la velocidad de giro y los controles de velocidad de avance de invalidación, el programa `M48. -Para desactivar los controles, el programa 'M49'. -Vea la sección <> para más detalles. -Está bien para activar o desactivar los controles cuando -que ya están activados o desactivados. -Estos controles también se puede activar de forma individual -con M50 y M51 como se describe en el -secciones <> y <>. - -=== M50 Alimentación anulación de control[[sub:M50-Feed-Anular]] - -(((M50 Alimentación anulación de control))) - -Para permitir que la velocidad de avance control de anulación, -programa `M50` o `M50 P1`. -Para desactivar el control, el programa `M50 P0`. -Mientras que las personas con discapacidad anular alimentación no tendrá ninguna influencia, -y el movimiento se ejecutará al avance programado. -(A menos que haya una adaptación velocidad de alimentación anular activo). - -=== Husillo M51 de la velocidad de control[[sub:M51-eje-Anular]] - -(((husillo M51 anulación de velocidad))) - -Para habilitar el control de la velocidad de giro de invalidación, -programa `` o `M51 M51 'P1. -Para desactivar el programa de control 'M51' P0. -Mientras que la velocidad de giro con discapacidad anular -no tendrá ninguna influencia, y la velocidad del husillo -tendrá el valor exacto del programa especificado -(Con el S-palabra como se describe en <>). - -=== M52 control adaptativo de la alimentación[[sub:M52-adaptativa-Feed-Control]] - -(((M52 Feed Control Adaptativo))) - -Para utilizar una fuente de adaptación, el programa `` o `M52 M52 P1 '. -Para dejar de utilizar alimento de adaptación, el programa 'M52' P0. -Cuando el alimento de adaptación es activado, -un valor de entrada externa se utiliza junto con la -interfaz de usuario de alimentación anular el valor y -la alimentación de mando tasa para establecer la velocidad de avance real. -En EMC2, el HAL pin `motion.adaptive de alimentación 'se utiliza para este propósito. -Los valores en `motion.adaptive de alimentación` debe oscilar -de 0 (mantener alimentar) a 1 (máxima velocidad). - -=== M53 Feed Control Stop[[sub:M53-Feed-Stop-Control]] - -(((M53 tope de control de alimentación))) - -Para habilitar la parada de alimentar a cambiar, el programa `` o `M53 M53 P1 '. Para desactivar el -el programa `switch M53 P0 '. Permitiendo el interruptor de parada de alimentación le permitirá -moción para ser interrumpido por medio del control de parada de alimentación. -En EMC2, el pasador de HAL `motion.feed-hold 'se utiliza para este propósito. -Los valores de 1, hará que el movimiento se detenga (si 'M53' se activa). - -== M61 Fijación del Número de la herramienta actual[[sec:M61-Set-actual-Tool-Numero]] - -(((M61 Número Juego de herramientas actual))) - -Para cambiar el número actual de la herramienta, mientras que en inhaladores de dosis medidas o el programa de modo manual -Qxx un M61 en la ventana MDI. Un uso es cuando se enciende con una EMC -herramienta que está en el eje se puede establecer que el número de herramienta sin -hacer un cambio de herramienta. - - Es un error si: - -- Q-no es 0 o mayor - -== M62 para controlar la salida M65[[sec:M62-a-M65]] - -(((para controlar la salida M65))) - -Para controlar un poco la salida digital, el programa `M- P-`, donde el M-palabra -oscila entre 62 a 65, y los rangos de P-palabra de 0 -a un valor predeterminado de 3. Si es necesario el número de E / S se puede -aumentó con el parámetro num_dio al cargar el movimiento -controlador. Ver el Manual de configuración para los integradores de EMC y de la Sección -HAL para obtener más información. - -- El P-palabra especifica el número de salidas digitales. - -M62::(((M62))) - A su vez en la salida digital sincronizado con el movimiento - -M63::(((M63))) - Apagar la salida digital sincronizado con el movimiento - -M64::(((M64))) - A su vez en la salida digital de inmediato - -M65::(((M65))) - Desactivar la salida digital de forma inmediata - -La M62 y M63 comandos se pondrán en cola. Acciones posteriores se refiere -con el número misma salida se sobreponen a los valores anteriores. Más que -un cambio en la salida se puede especificar mediante la emisión de más de un M62/M63 -comandos. - -El cambio real de los resultados especificados va a pasar en el -principio del comando siguiente movimiento. Si no hay ningún movimiento posterior -comando, los cambios en la cola de salida no va a suceder. Lo mejor es siempre -programa de un movimiento de código G (G0, G1, etc) justo después de la M62/63. - -M64 y M65 ocurrir de inmediato, ya que son recibidos por el movimiento -controlador. Ellos no están sincronizados con el movimiento, y que -romper la mezcla. - -== M66 de entrada de control[[sec:M66-Input-Control]] - -((( M66 de control de entrada))) - -Para leer el valor de un pin de entrada analógica o digital, programa de -`M66 P-E-L-Q-', donde la palabra-P y los intervalos de la palabra E- -0 a 3. Si es necesario, el número de E / S se puede aumentar -con el parámetro num_dio o cuando num_aio -cargar el controlador de movimiento. Ver el integrador de -Manual, sección de configuración, EMC y el inciso HAL, para más -de la información. -Sólo uno de los P o palabras E deben estar presentes. -Es un error si ambos están desaparecidos. - -M66::(((M66))) - Espera en una entrada - -- El P-palabra especifica el número de entradas digitales. -- El E-palabra especifica el número de entradas analógicas. -- La L-palabra especifica el tipo de espera: - - 0:: WAIT_MODE_IMMEDIATE - sin esperas, vuelve inmediatamente. - El valor actual de la entrada se almacena en el parámetro # 5399 - 1:: WAIT_MODE_RISE - espera para la entrada seleccionada para llevar a cabo un evento de origen. - 2:: WAIT_MODE_FALL - espera para la entrada seleccionada para llevar a cabo un evento de otoño. - 3:: WAIT_MODE_HIGH - espera para la entrada seleccionada a ir al estado ALTO. - 4:: WAIT_MODE_LOW - espera para la entrada seleccionada para ir al estado BAJO. - -- El Q-palabra especifica el tiempo de espera para la espera. Si el tiempo de espera es - superado, la espera se interrumpe, y la variable # 5399 será la celebración de ser - el valor -1. El valor de Q se ignora si la L-palabra es igual a cero (inmediata). - AQ valor de cero es un error si la L-palabra no es cero. -- Modo 0 es el único permitido para una entrada analógica. - -M66 esperar en una entrada detiene la ejecución ulterior del programa, hasta que el -evento seleccionado (o el tiempo de espera programado) se produce. - -Se trata de un error de programa M66 tanto con un P-palabra y una palabra de E-(por lo tanto -seleccionar tanto una analógica y una entrada digital). EMC2 en estas entradas son -no se controla en tiempo real y por lo tanto no debe utilizarse para -momento las aplicaciones críticas. - -== M67 salida analógica[[sec:M67-analogico-de-salida]] - -(((M67 Control de la salida analógica de movimiento))) - -Para el control de una salida analógica sincronizado con el movimiento, el programa de -'M67-Q-E', donde los rangos de palabra E desde 0 hasta el máximo predeterminado -de 3 y Q es el valor de conjunto. El número de I / O se puede aumentar -utilizando el parámetro num_aio al cargar el controlador de movimiento. Ver el -"EMC2 y HAL" capítulo en la sección de configuración del integrador -Manual para obtener más información sobre el controlador de movimiento. Las funciones de la M67 -igual que M62-63. Vea la sección M62-65 para obtener información sobre colas -comandos de salida sincronizada con el movimiento. - -== M68 salida analógica[[sec:M68-analogico de salida]] - -(((M68 con mando analógico de salida Aux))) - -Para el control de una salida analógica de inmediato, el programa 'E-M68-Q, donde` -la palabra E va de 0 al máximo por defecto de 3 y Q -el valor de conjunto. El número de I / O se puede aumentar mediante el uso de la -num_aio parámetro al cargar el controlador de movimiento. Ver el EMC2 ", y -HAL "capítulo en la sección de configuración del Manual del Integrador para -más información sobre el controlador de movimiento. M68 funciona igual que -M64-65. Vea la sección M62-65 para obtener información sobre la salida inmediata -comandos. - -== M100 a M199 comandos definidos por el usuario[[sec:M100-a-M199]] - -(((M100-M199 comandos definidos por el usuario))) -(((comandos definidos por el usuario M100-M199))) - -Para invocar un comando definido por el usuario, el programa `M1nn P-Q-`, donde `P` y `-Q-` -son opcionales y debe ser un número. El programa externo "M1nn" -debe estar en el directorio con el nombre de [DISPLAY] PROGRAM_PREFIX en el ini -archivo y se ejecuta con la P y Q valores como sus dos argumentos. -La ejecución del archivo RS274NGC se detiene hasta que se sale del programa invocado. -Cualquier archivo ejecutable válido puede ser utilizado. - -El error "código M Desconocido utilizados" se refiere a uno de los siguientes - -- El comando especificado definido por el usuario no existe -- El archivo no es un archivo ejecutable - -Por ejemplo, para abrir y cerrar una pinza más cerca que está controlado por un -pin parport utilizando un archivo script bash con M101 y M102. Crear dos -archivos llamados M101 y M102. Establecer como archivos ejecutables (por lo general -botón derecho / propiedades / permisos) antes de ejecutar EMC2. Asegúrese de que el -parport pin no está conectado a nada en un archivo HAL. - -M101 (nombre de archivo) - - #!/Bin/sh - # Archivo para activar el parport pin 14 para abrir la pinza más cerca - halcmd setp parport.0.pin-14-out True - exit 0 - -M102 (nombre de archivo) - - #!/Bin/sh - # Archivo para apagar parport pin 14 para abrir la pinza más cerca - halcmd setp parport.0.pin-14-out False - exit 0 - -Para pasar una variable a un archivo M1nn utilizar el P y Q de esta opción: - - M100 P123.456 Q321.654 - -En el archivo de M100 que podría tener este aspecto: - - #!/Bin/sh - voltage = $1 - feedrate = $2 - halcmd setp thc.voltage $voltage - halcmd setp thc.feedrate $feedrate - exit 0 - -= O códigos[[cha:O-codigos]] - -(((O Códigos))) - -O-códigos de proporcionar control de flujo en los programas NC. Cada bloque tiene una -número de asociados, que es el número que se usa después de la O. Se debe tener cuidado -adecuadamente para que coincida con el número S-. O utilizar los códigos de la letra "O" no es el -número cero como primer carácter en el número como Ø100. - -El comportamiento no está definido si: - -- Otras palabras se usan en una línea con una junta palabra -- Los comentarios se utilizan en una línea con una junta palabra - -== Subrutinas: sub, endsub, return, call -(((Subrutinas: sub, endsub, return, call))) -(((sub)))(((endsub)))(((return)))(((call))) - -Subrutinas se extienden desde un `O-sub` a una 'O-endsub `. Las líneas -dentro de la subrutina (el "cuerpo") no se ejecutan en -orden, sino que se ejecutan cada vez que se llama la subrutina -con `O-llamada. - - o100 sub (subrutina para mover a la casa de máquinas) - G0 X0 Y0 Z0 - o100 endsub - (Número de líneas de intervención) - o100 call - -Dentro de una subrutina, `O-return` puede ser ejecutado. Esto inmediatamente -vuelve al código de llamada, sólo -como si `O-endsub` se encontró. - -`O-call` toma hasta 30 argumentos opcionales, que se pasan a la -subrutina -como '# 1', '# 2', ..., N. # Parámetros de # N 1 al # 30 tienen la misma -valor como en el -llamando a su contexto. Al volver de la subrutina, los valores de -parámetros del # 1 al # 30 (independientemente del número de argumentos) se -ser restaurado a los valores que tenían antes de la llamada. Parámetros # 1 - # 30 -son locales a la subrutina. - -Debido a que "`1 2 3`" se analiza como el número 123, los parámetros deben ser -encerrado en -entre corchetes. El siguiente se llama a una subrutina con tres argumentos: - - O200 llame al [1] [2] [3] - -Cuerpos subrutina no se pueden anidar. Sólo se puede llamar después de -se definen. Se les puede llamar de otras funciones, y la llamada puede -ellos mismos de forma recursiva si tiene sentido hacerlo. El máximo -el nivel de imbricación de subrutinas es de 10. - -Subrutinas no tienen "valor de retorno", pero se puede cambiar el valor -de los parámetros por encima de # 30 y esos cambios serán visibles para el -código de llamada. Subrutinas también puede cambiar el valor de nombre global -parámetros. - -== Looping: do, while, endwhile, break, continue -(((bucle: do, while, endwhile, break, continue))) -(((do)))(((while)))(((endwhile)))(((break)))(((continue))) - -El "while" tiene dos estructuras: while/endwhile, y do/while. En cada caso, -se sale del bucle cuando el "mientras" condición se evalúa como falsa. - - (Dibujar una forma de diente de sierra) - F100 - # 1 = 0 - O101 while [# 1 lt 10] - G1 X0 - G1 Y [# 1 / 10] X1 - # 1 = [# 1 +1] - O101 endwhile - -Dentro de un bucle while, `O-break` de inmediato sale del bucle, y `O-continue` seguir inmediatamente salta a la próxima evaluación del tiempo` -condición. Si es cierto, el bucle comienza de nuevo en la parte superior. Si -es falso, que sale del bucle. - -== Condicionales: if, else, endif -(((condicional: if, else, endif))) -(((if)))(((else)))(((endif))) - -El "if" condicional se ejecuta un grupo de instrucciones si una condición -es verdadera y otra si es falsa. - - (Fijar cambio de alimentación en función de una variable) - O102 if [# 2 GT 5] - F100 - O102 else - F200 - O102 endif - -== Repita/Repeat -(((Repeat))) - -La "repetición" se ejecutará las instrucciones dentro de la -repetición / endrepeat el número específico de veces. El ejemplo muestra cómo -es posible que un molino serie diagonal de formas a partir de la presente -posición. - - (Mill 5 formas en diagonal) - G91 (modo incremental) - O103 repeat [5] - ... (Insertar el código de molienda aquí) - G0 X1 Y1 (movimiento diagonal a la siguiente posición) - O103 endrepeat - G90 (modo absoluto) - -== Indirección -(((direccionamiento indirecto))) - -El O-número puede ser dada por un parámetro o el cálculo. - - O [# 101 2] llamada - -== Valores de Informática en O-palabras - -En O-es decir, los parámetros (sección <>), -Expresiones (sección <>), -Los operadores binarios (sección <>), -y funciones (tabla <>) son particularmente útiles. - -== Archivos de Llamadas -(((llamadas archivos))) - -Para llamar a un archivo separado con un nombre de subrutina el archivo de la misma -su llamada e incluyen un sub y endsub en el archivo. El archivo debe estar en -el directorio apuntado por PROGRAM_PREFIX. El nombre del archivo puede incluir -letras minúsculas, números, guión y guión bajo solamente. - - o call (un archivo llamado) -o - o123 call (número de archivo) - -En el archivo llamado se debe incluir el sub oxxx y endsub y la -archivo debe ser un archivo válido. - - myfile.ngc - o sub - ... - o endsub - M2 - -= Otros Códigos - -== F: Fijar la alimentación[[sub:F-Set-Feed]] - -(((F: Establecer Velocidad de alimentación))) - -Para configurar la velocidad de avance, el programa `F` donde "n" es un número. -La aplicación de la tasa de alimentación es como se describe en la Sección -<>, A menos que alimentar a tiempo inverso modo de índice es, en efecto, -en cuyo caso la tasa de alimentación es como se describe en -Sección <>. - -== S: Velocidad conjunto de ejes[[sub:S-Set-eje]] - -(((S: Velocidad conjunto de ejes))) - -Para establecer la velocidad en revoluciones por minuto (RPM) del cabezal, el programa `S`. -El eje gira a esa velocidad cuando se ha programado para comenzar a dar vuelta. -Está bien para programar una palabra S si el cabezal está girando o no. -Si el interruptor de cancelación de velocidad -y activado, y no a 100% -la velocidad va a ser diferente de lo que está programado. -Está bien para programar S0, el eje no se enciende si se hace eso. - -Es un error si: - -- El número S es negativo. - -Como se describe en la sección <>, si un 'G84' -(Tapping) ciclo fijo se activa y anular el avance y la velocidad -interruptores están habilitadas, el conjunto de uno en la posición más baja se -efecto. La velocidad y la velocidad de avance aún se sincronizarán. En este -caso, la velocidad puede variar de lo que está programado, aunque la velocidad -interruptor de corrección se establece en 100%. - -== T: Herramienta de selección[[sub:T-Seleccionar-Herramienta]] - -(((T:herramienta de selección))) - -Para seleccionar una herramienta, el programa `T` , donde el número es el -carrusel de ranura de la herramienta. La herramienta está -no cambió hasta que un M6 `está programado (ver Sección -<>). La palabra T puede -aparecen en la misma línea que el 'M6' o en una línea anterior. Está bien, -pero normalmente no útil, si las palabras de T -aparecen en dos o más líneas sin cambiar de herramienta. El carrusel se puede mover -mucho, pero la palabra T más reciente entrará en vigor en los próximos -herramienta de cambio. Está bien el programa 'T0'; ninguna herramienta será seleccionado. Este -es útil si desea que el husillo se vacía después de un cambio de herramienta. - -Es un error si: - -- Un número negativo se utiliza T, -- O un número de T mayor que el número de ranuras en el carrusel se utiliza. - -En algunas máquinas, el carrusel se moverá cuando una palabra T está programado, -al mismo tiempo de mecanizado que está ocurriendo. En este tipo de máquinas, la programación -las líneas T palabra varios antes de un cambio de herramienta permitirá ahorrar tiempo. Un común -práctica de programación para este tipo de máquinas es de poner la palabra T para la -siguiente herramienta que se utilizará en la línea después de un cambio de herramienta. Esto maximiza -el tiempo disponible para el carrusel de moverse. - -Se mueve rápido después de un T no se mostrará en la vista previa hasta después de AXIS -un movimiento de alimentación. Esto es para las máquinas que viajar largas distancias para el cambio -la herramienta como un torno. Esto puede ser muy confuso al principio. A su vez -esta función para el programa de cambio de la herramienta actual de un G1 sin ningún tipo de -movimiento después de la T. - -== Comentarios[[sec:Comentarios]] - -(((Comentarios))) - -Caracteres imprimibles y espacios en blanco entre paréntesis es un comentario. -Un paréntesis a la izquierda siempre se inicia un comentario. El comentario termina en el -paréntesis encontró primero a partir de entonces. Una vez que un paréntesis de apertura se -colocada en una línea, un paréntesis de juego deberá comparecer ante la -final de la línea. Los comentarios no pueden anidarse, es un error si a la izquierda -se encuentra entre paréntesis después del inicio de un comentario y antes de fin de -el comentario. He aquí un ejemplo de una línea que contiene un comentario: - -`G80 M5 (stop motion)` - -Comentarios son sólo informativos, no son la causa de una máquina de hacer nada. - -== Mensajes[[sec:Mensajes]] - -(((Mensajes))) - -Un comentario contiene un mensaje si `glutamato monosódico 'aparece después de la izquierda -paréntesis y antes de los caracteres de impresión. Las variantes de -`Glutamato monosódico que incluyen espacios en blanco y caracteres en minúsculas están permitidos. -El resto de los personajes antes del paréntesis de la derecha se consideran -ser un mensaje. Los mensajes deben ser mostrados en la pantalla de mensajes -dispositivo. Mensajes que no contienen comentarios no tienen que ser exhibidos allí. - -== Sonda de Registro[[sub: Sonda de Registro de]] - -(((la sonda de registro))) - -Un comentario también se puede utilizar para especificar un archivo de los resultados de G38.x -el sondeo. Vea la sección <>. - -A menudo, en general el registro es más útil que el registro de la sonda. Uso -generales de registro, el formato de los datos de salida se puede controlar. - -=== Registro General de[[sub: General de registro de ]] - -(((General de Registro))) - -==== (LOGOPEN, nombre de archivo) - -Abre el archivo de registro con el nombre. Si el archivo ya existe, se trunca. - -==== (LOGAPPEND, nombre de archivo) - -Abre el archivo de registro con el nombre. Si el archivo ya existe, los datos se -añade. - -==== (LOGCLOSE) - -Si el archivo de registro está abierto, se cierra. - -==== (LOG,…) - -El mensaje "…" se expande como se describe a continuación y por escrito a la -archivo de registro, si está abierta. - -=== Mensajes de depuración[[sub:mensajes-de-depuracion]] - -(((G mensajes de depuración de código))) - -Comentarios que se parecen: `(debug, el resto del comentario)` son los mismos que -comentarios como `(msg, el resto del comentario)` con la adición de especial -el manejo de los parámetros. - -Comentarios que se parecen: `(print, el resto del comentario)` se emiten a -stderr con un tratamiento especial para los parámetros. - -=== Parámetros de comentarios especiales - -En los comentarios DEBUG, Print and log, los valores de los parámetros de la -mensaje se expanden. - -Por ejemplo: para imprimir una variable llamada mundial a stderr (el valor predeterminado -ventana de la consola) añadir una línea a su Gcode como ... - - (print,fresa dia = #<_endmill_dia>) - -Dentro de estos tipos de comentarios, secuencias como `#123` se sustituyen -por el valor del parámetro 123. Secuencias como `#` -se sustituyen por el valor del parámetro con nombre. Recuerde que el nombre -parámetros se han eliminado los espacios en blanco de ellos. -Parámetro así, `#` es lo mismo que `#`. - - -// vim: set syntax=asciidoc: - - diff --git a/docs/src/gcode/mill_canned_es.txt b/docs/src/gcode/mill_canned_es.txt deleted file mode 100644 index 0f6f2c09635..00000000000 --- a/docs/src/gcode/mill_canned_es.txt +++ /dev/null @@ -1,514 +0,0 @@ -= Canned Cycle Examples[[cha:canned-cycle-examples]](((Canned Cycle Examples))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== G80 Motion Stop -G80 turns off all motion. You should think of it as the off position on a rotary switch where the other positions are the different possible motion modes. In the EMC interpreter, G80 is one of the modal codes so any other code will replace it. The result of the following lines of code is the same. - ----- -G90 G81 X1 Y1 Z1.5 R2.8 (absolute distance canned cycle) -G80 (turn off canned cycle motion) -G0 X0 Y0 Z0 (turn on rapid traverse and move to coordinate home) ----- - -produces the same final position and machine state as - ----- -G90 G81 X1 Y1 Z1.5 R2.8 (absolute distance canned cycle) -G0 X0 Y0 Z0 (turn on rapid traverse and move to coordinate home) ----- - -The advantage of the first set is that, the G80 line clearly turns off the G81 canned cycle. With the first set of blocks, the programmer must turn motion back on with G0, as is done in the next line, or any other motion mode G word. - -If a canned cycle is not turned off with G80 or another motion word, the canned cycle will attempt to repeat itself using the next block of code that contains an X, Y, or Z word. The following file drills (G81) a set of eight holes as shown in the following caption. - -.G80 Example 1 ----- -N100 G90 G0 X0 Y0 Z0 (coordinate home) -N110 G1 X0 G4 P0.1 -N120 G81 X1 Y0 Z0 R1 (canned drill cycle) -N130 X2 -N140 X3 -N150 X4 -N160 Y1 Z0.5 -N170 X3 -N180 X2 -N190 X1 -N200 G80 (turn off canned cycle) -N210 G0 X0 (rapid home moves) -N220 Y0 -N230 Z0 -N240 M2 (program end) ----- - -[NOTE] -Notice the z position change after the first four holes. -Also, this is one of the few places where line numbers have some value, -being able to point a reader to a specific line of code. - -.G80 Cycle[[cap:G80-Cycle]] - -image::images/G81mult.png[align="center"] - -The use of G80 in line N200 is optional because the G0 on the next -line will turn off the G81 cycle. But using the G80. as example 1 -shows, will provide for an easily readable canned cycle. Without it, it -is not so obvious that all of the blocks between N120 and N200 belong -to the canned cycle. - -If you use G80 and do not set another modal motion code soon after, -you may get one of the following error messages. - -.... -Cannot use axis commands with G80 - -Coordinate setting given with G80 -.... - -These should serve as a reminder that you need to write in a new -motion word. - -== G81 Drilling(((G81))) - -The G81 cycle is intended for drilling. - -The cycle functions as follows: - -. Preliminary motion to start position. - -. Move the Z-axis only at the current feed rate to the Z position. - -. Retract the Z-axis at traverse rate to clear Z. This cycle was used - in the description of G80 above but is explained in detail here. - -.Example 1 - Absolute Position G81 - -Suppose the current position is (X1, Y2, Z3) and the following line of NC -code is interpreted. - ----- -G90 G98 G81 X4 Y5 Z1.5 R2.8 ----- - -This calls for absolute distance mode (G90) and OLD_Z retract mode -(G98) and calls for the G81 drilling cycle to be performed once. - -The X value and X position are 4. - -The Y value and Y position are 5. - -The Z value and Z position are 1.5. - -The R value and clear Z are 2.8. OLD_Z is 3. - -The following moves take place: - -. a traverse parallel to the XY plane to (X4, Y5, Z3) - -. a traverse parallel to the Z-axis to (X4, Y5, Z2.8). - -. a feed parallel to the Z-axis to (X4, Y5, Z1.5) - -. a traverse parallel to the Z-axis to (X4, Y5, Z3) - -image::images/G81ex1.png[align="center"] - -.Example 2 - Relative Position G81 - -Suppose the current position is (X1, Y2, Z3) and the following line of NC -code is interpreted. - ----- -G91 G98 G81 X4 Y5 Z-0.6 R1.8 L3 ----- - -This calls for incremental distance mode (G91) and OLD_Z retract mode -(G98). It also calls for the G81 drilling cycle to be repeated three -times. The X value is 4, the Y value is 5, the Z value is -0.6 and the -R value is 1.8. The initial X position is 5 (=1+4), the initial Y -position is 7 (=2+5), the clear Z position is 4.8 (=1.8+3), and the Z -position is 4.2 (=4.8-0.6). OLD_Z is 3. - -The first preliminary move is a traverse along the Z axis to -(X1,Y2,Z4.8), since OLD_Z < clear Z. - -The first repeat consists of 3 moves. - -. a traverse parallel to the XY-plane to (X5, Y7, Z4.8) - -. a feed parallel to the Z-axis to (X5, Y7, Z4.2) - -. a traverse parallel to the Z-axis to (X5, Y7, Z4.8) - -The second repeat consists of 3 moves. The X position is reset to - 9 (=5+4) and the Y position to 12 (=7+5). - -. a traverse parallel to the XY-plane to (X9, Y12, Z4.8) - -. a feed parallel to the Z-axis to (X9, Y12, Z4.2) - -. a traverse parallel to the Z-axis to (X9, Y12, Z4.8) - -The third repeat consists of 3 moves. The X position is reset to - 13 (=9+4) and the Y position to 17 (=12+5). - -. a traverse parallel to the XY-plane to (X13, Y17, Z4.8) - -. a feed parallel to the Z-axis to (X13, Y17, Z4.2) - -. a traverse parallel to the Z-axis to (X13, Y17, Z4.8) - -image::images/G81ex2.png[align="center"] - -.Example 3 - Relative Position G81 - -Now suppose that you execute the first G81 block of code but from (X0, -Y0, Z0) rather than from (X1, Y2, Z3). - ----- -G90 G98 G81 X4 Y5 Z1.5 R2.8 ----- - -Since OLD_Z is below the R value, it adds -nothing for the motion but since the initial value of Z is less than -the value specified in R, there will be an initial Z move during the -preliminary moves. - -image::images/G81.png[align="center"] - -.Example 4 - Absolute G81 R > Z - -This is a plot of the path of motion for the second g81 block of code. - ----- -G91 G98 G81 X4 Y5 Z-0.6 R1.8 L3 ----- - -Since this plot starts with (X0, Y0, Z0), the interpreter adds the -initial Z0 and R1.8 and rapids to that location. After that initial Z -move, the repeat feature works the same as it did in example 3 with the -final Z depth being 0.6 below the R value. - -image::images/G81a.png[align="center"] - -.Example 5 - Relative position R > Z - ----- -G90 G98 G81 X4 Y5 Z-0.6 R1.8 ----- - -Since this plot starts with (X0, Y0, Z0), the interpreter adds the -initial Z0 and R1.8 and rapids to that location as in 'Example 4'. -After that initial Z move, the rapid traverse move to X4 Y5 is done. -Then the final Z depth being 0.6 below the R value. The repeat -function would make the Z move in the same location again. - -== G82 Drilling, Dwell(((G82))) - -The G82 cycle is intended for drilling. - -. Preliminary motion to start position. - -. Move the Z-axis only at the current feed rate to the Z position. - -. Dwell for the given number of seconds. - -. Retract the Z-axis at traverse rate to clear Z. The motion of a G82 -canned cycle looks just like G81 with the addition of a dwell at the -bottom of the Z move. The length of the dwell is specified by a 'P-' word -in the G82 block. - ----- -G90 G82 G98 X4 Y5 Z1.5 R2.8 P2 ----- - -Would be equivalent to 'Example 2' above with a dwell added at the -bottom of the hole. - -== G83 Deep Drilling(((G83))) - -The G83 cycle is intended for deep drilling or milling with chip -breaking. This cycle takes a Q value which represents a 'delta' -increment along the Z-axis. Machinists often refer to this as peck drilling. - -. Preliminary motion to start position. - -. Move the Z-axis only at the current feed rate downward by delta or - to the Z position, whichever is less deep. - -. Dwell for 0.25 second. - -. Retract at traverse rate to clear Z - -. Repeat steps 1 - 3 until the Z position is reached. - -. Retract the Z-axis at traverse rate to clear Z. - -G83 functions the same as G81 with the addition of peck drilling. - -== G84 Tapping (((G84))) - -The G84 cycle is intended for right-hand tapping. - -. Preliminary motion to start position. - -. Start speed-feed synchronization. - -. Move the Z-axis only at the current feed rate to the Z position. - -. Stop the spindle. - -. Start the spindle counterclockwise. - -. Retract the Z-axis at the current feed rate to clear Z. - -. If speed-feed synch was not on before the cycle started, stop it. - -. Stop the spindle. - -. Start the spindle clockwise. - -== G85 Boring (((G85))) - -The G85 cycle is intended for boring or reaming. - -. Preliminary motion to start position. - -. Move the Z-axis only at the current feed rate to the Z position. - -. Retract the Z-axis at the current feed rate to clear Z. This motion -is very similar to g81 except that the tool is retracted from the hole -at feed rate rather than rapid. - -== G86 Boring, Rapid Out (((G86))) - -The G86 cycle is intended for boring. - -. Preliminary motion to start position. - -. Move the Z-axis only at the current feed rate to the Z position. - -. Dwell for the given number of seconds. - -. Stop the spindle turning. - -. Retract the Z-axis at traverse rate to clear Z. - -. Restart the spindle in the direction it was going. This cycle is -very similar to g82 except that it stops the spindle before it retracts -the tool and restarts the spindle when it reaches the clearance value -R. - -== G87 Back Boring(((G87))) - -The G87 cycle is intended for back boring. - -The situation is that you have a through hole and you want to counter -bore the bottom of hole. To do this you put an L-shaped tool in the -spindle with a cutting surface on the UPPER side of its base. You stick -it carefully through the hole when it is not spinning and is oriented -so it fits through the hole, then you move it so the stem of the L is -on the axis of the hole, start the spindle, and feed the tool upward to -make the counter bore. Then you stop the tool, get it out of the hole, -and restart it. - -This cycle uses I and J values to indicate the position for inserting -and removing the tool. I and J will always be increments from the X -position and the Y position, regardless of the distance mode setting. -This cycle also uses a K value to specify the position along the Z-axis -of the top of counterbore. The K value is an absolute Z-value in -absolute distance mode, and an increment (from the Z position) in -incremental distance mode. - -. Preliminary motion to start position. - -. Move at traverse rate parallel to the XY-plane to the point -indicated by I and J. - -. Stop the spindle in a specific orientation. - -. Move the Z-axis only at traverse rate downward to the Z position. - -. Move at traverse rate parallel to the XY-plane to the X,Y location. - -. Start the spindle in the direction it was going before. - -. Move the Z-axis only at the given feed rate upward to the position -indicated by K. - -. Move the Z-axis only at the given feed rate back down to the Z -position. - -. Stop the spindle in the same orientation as before. - -. Move at traverse rate parallel to the XY-plane to the point -indicated by I and J. - -. Move the Z-axis only at traverse rate to the clear Z. - -. Move at traverse rate parallel to the XY-plane to the specified -X,Y location. - -. Restart the spindle in the direction it was going before. - -image::images/G87pre.png[align="center"] - -.Example 6 - Backbore - -Example 6 uses a incremental distances from (X0, Y0, Z0) so the -preliminary moves look much like those in Example 5 but they are -done using the G87 backbore canned cycle. - ----- -G91 G87 M3 S1000 X1 Y1 Z-0.4 R1.4 I-0.1 J-0.1 K-0.1 ----- - -Now the G87 canned cycle turns the spindle on and moves back up into -the bore at the programmed feed rate. This is the real cutting action -of this canned cycle. With the proper tool in a boring bar this cycle -will produce a chamfer on the bottom side of the bore. G87 can also be -used to produce a larger diameter bore on the bottom side of the bore. - -This canned cycle assumes spindle orientation which has not been -implemented in the EMC to date. The proper alignment of the tool tip to -the oriented spindle is critical to the successful insertion of the -tool through the hole to be backbored. - -== G88 Boring with Stop(((G88))) - -The G88 cycle is intended for boring. This cycle uses a P value, where -P specifies the number of seconds to dwell. - -. Preliminary motion to start position. - -. Move the Z-axis only at the current feed rate to the Z position. - -. Dwell for the given number of seconds. - -. Stop the spindle turning. - -. Stop the program so the operator can retract the spindle manually. - -. Restart the spindle in the direction it was going. It is unclear -how the operator is to manually move the tool because a change to -manual mode resets the program to the top. We will attempt to clarify -that step in this procedure. - -== G89 Boring Feed Out(((G89))) - -The G89 cycle is intended for boring. This cycle uses a P value, where -P specifies the number of seconds to dwell. - -. Preliminary motion to start position. - -. Move the Z-axis only at the current feed rate to the Z position. - -. Dwell for the given number of seconds. - -. Retract the Z-axis at the current feed rate to clear Z. This cycle -is like G82 except that the tool is drawn back at feed rate rather than -rapid. - -== G98 Retract to Origin(((G98))) - -Program a G98 and the canned cycle will use the Z position prior to -the canned cycle as the Z return position if it is higher than the R -value specified in the cycle. If it is lower then the R value will be -used. The R word has different meanings in absolute distance mode and -incremental distance mode. - -.G98 Retract to Origin ----- -G0 X1 Y2 Z3 -G90 G98 G81 X4 Y5 Z-0.6 R1.8 F10 ----- - -The G98 to the second line above means that the return move will be to -the value of Z in the first line since it is higher that the R value -specified. - -== G99 Retract(((G99))) - -Program a G99 and the canned cycle will use the R value as the Z -return position. - -== G91 with G98-99 (((G91 with G98-99))) - -Neither G98 or G99 will have any affect when in incremental distance -mode (G91) and a positive R value is specified because the R value is -added to OLD_Z and that result is used as the initial level for a G98. -The same value is the computed R value so G99 will also return to the -same place. When the value of R is less than OLD_Z and incremental -distance mode is turned on, G99 will retract the tool to OLD_Z plus the -negative R value. The return will be below OLD_Z. - -== Why use a canned cycle? - -There are at least two reasons for using canned cycles. The first is -the economy of code. A single bore would take several lines of code to -execute. - -'Example 1' above demonstrated how a canned cycle could be used to -produce 8 holes with ten lines of nc code within the canned cycle mode. -The program below will produce the same set of 8 holes using five lines -for the canned cycle. It does not follow exactly the same path nor does -it drill in the same order as the earlier example. But the program -writing economy of a good canned cycle should be obvious. - -.Example 7 Eight Holes Revisited ----- -G90 G0 X0 Y0 Z0 (move coordinate home) -G1 F10 X0 G4 P0.1 -G91 G81 X1 Y0 Z-1 R1 L4(canned drill cycle) -G90 G0 X0 Y1 -Z0 -G91 G81 X1 Y0 Z-0.5 R1 L4(canned drill cycle) -G80 (turn off canned cycle) -M2 (program end) ----- -The G98 to the second line above means that the return move will be to -the value of Z in the first line since it is higher that the R value -specified. - -image::images/eight.png[align="center"] - - -.Example 8 Twelve holes in a square - -This example demonstrates the use of the L word to repeat a set of -incremental drill cycles for successive blocks of code within the same -G81 motion mode. Here we produce 12 holes using five lines of code in -the canned motion mode. - ----- -G90 G0 X0 Y0 Z0 (move coordinate home) -G1 F50 X0 G4 P0.1 -G91 G81 X1 Y0 Z-0.5 R1 L4 (canned drill cycle) -X0 Y1 R0 L3 (repeat) -X-1 Y0 L3 (repeat) -X0 Y-1 L2 (repeat) -G80 (turn off canned cycle) -G90 G0 X0 (rapid home) -Y0 -Z0 -M2 (program end) ----- - -image::images/twelve.png[align="center"] - -The second reason to use a canned cycle is that they all produce -preliminary moves and returns that you can anticipate and control -regardless of the start point of the canned cycle. - -// vim: set syntax=asciidoc: diff --git a/docs/src/gcode/o-code.txt b/docs/src/gcode/o-code.txt deleted file mode 100644 index 69d56c5d391..00000000000 --- a/docs/src/gcode/o-code.txt +++ /dev/null @@ -1,297 +0,0 @@ -= O Codes - -[[cha:O-Codes]] (((O Codes))) - -O-codes provide for flow control in NC programs. Each block has an -associated number, which is the number used after O. Care must be taken -to properly match the O-numbers. O codes use the letter 'O' not the -number zero as the first character in the number like O100. - -.Numbering Example ----- -o100 sub -(notice that the if-endif block uses a different number) - o110 if [#2 GT 5] - (some code here) - o110 endif - (some more code here) -o100 endsub ----- - -The behavior is undefined if: - -* The same number is used for more than one block -* Other words are used on a line with an O- word -* Comments are used on a line with an O-word - -[NOTE] -Using the lower case o makes it easier to distinguish from a 0 -that might have been mistyped. For example o100 is easier to -see than O100 that it is not a 0. - -The following statements cause an error message and abort the -interpreter: - - - a `return` or `endsub` not within a sub defintion - - a label on `repeat` which is defined elsewhere - - a label on `while` which is defińed elsewhere and not referring to a `do` - - a label on `if` defined elsewhere - - a undefined label on `else` or `elseif` - - a label on `else`, `elseif` or `endif` not pointing to a matching `if` - - a label on `break` or `continue` which does not point to a matching `while` or `do` - - a label on `endrepeat` or `endwhile` no referring to a corresponding `while` or `repeat` - -To make these errors non-fatal warnings on stderr, set bit 0x20 in -the `[RS274NGC]FEATURE=` mask ini option. - -[[sec:subroutines]] -== Subroutines -(((Subroutines))) -(((sub)))(((endsub)))(((return)))(((call))) - -Subroutines extend from a 'O- sub' to an 'O- endsub' . The lines -between 'O- sub' and 'O- endsub' are not executed until -the subroutine is called with 'O- call'. - -.Subroutine Example ----- -o100 sub - G53 G0 X0 Y0 Z0 (rapid move to machine home) -o100 endsub -... -o100 call (call the subroutine here) -M2 ----- -See <> & <> & <> sections for more information. - -.O- Return -Inside a subroutine, 'O- return' can be executed. This immediately -returns to the calling code, just as though 'O- endsub' was encountered. - -.O- Return Example ----- -o100 sub - o110 if [#2 GT 5] (test if parameter #2 is greater than 5) - o100 return (return to top of subroutine if test is true) - o110 endif - (some code here that only gets executed if parameter #2 is less than 5) -o100 endsub ----- -See the <> & <> sections for more information. - -.O- Call -'O- Call' takes up to 30 optional arguments, which are passed to the -subroutine - as '#1', '#2' , ..., #N. Parameters from #N+1 to #30 have the same -value as in the -calling context. On return from the subroutine, the values of -parameters #1 through #30 (regardless of the number of arguments) will -be restored to the values they had before the call. Parameters #1 - #30 -are local to the subroutine. - -Because '1 2 3' is parsed as the number 123, the parameters must be -enclosed in -square brackets. The following calls a subroutine with 3 arguments: - -.O- Call Example ----- -o200 call [1] [2] [3] ----- - -Subroutine bodies may not be nested. They may only be called after -they are defined. They may be called from other functions, and may call -themselves recursively if it makes sense to do so. The maximum -subroutine nesting level is 10. - -Subroutines do not have 'return values', but they may change the value -of parameters above #30 and those changes will be visible to the -calling code. Subroutines may also change the value of global named -parameters. - -[[sec:looping]] -== Looping -(((Looping)))(((do)))(((while)))(((endwhile)))(((break)))(((continue))) - -The 'while loop' has two structures: 'while/endwhile', and 'do/while'. In -each case, the loop is exited when the 'while' condition evaluates to -false. The difference is when the test condition is done. The 'do/while' -loop runs the code in the loop then checks the test condition. The -'while/endwhile' loop does the test first. - -.While Endwhile Example ----- -(draw a sawtooth shape) -G0 X1 Y0 (move to start position) -#1 = 1 (assign parameter #1 the value of 0) -F25 (set a feed rate) -o101 while [#1 LT 10] - G1 X0 - G1 Y[#1/10] X1 - #1 = [#1+1] (increment the test counter) -o101 endwhile -M2 (end program) ----- - -.Do While Example ----- -#1 = 0 (assign parameter #1 the value of 0) -o100 do - (debug, parameter 1 = #1) - o110 if [#1 EQ 2] - #1 = 3 (assign the value of 3 to parameter #1) - (msg, #1 has been assigned the value of 3) - o100 continue (skip to start of loop) - o110 endif - (some code here) - #1 = [#1 + 1] (increment the test counter) -o100 while [#1 LT 3] -(msg, Loop Done!) -M2 ----- - - -Inside a while loop, 'O- break' immediately exits the loop, and 'O- -continue' immediately skips to the next evaluation of the 'while' -condition. If it is still true, the loop begins again at the top. If -it is false, it exits the loop. - -[[sec:conditional]] -== Conditional -(((Conditional: if, elseif, else, endif)))(((if)))(((else)))(((elseif)))(((endif))) - -The 'if' conditional consists of a group of statements with the same 'o' number -that start with 'if' and end with 'endif'. Optional 'elseif' and 'else' conditions -may be between the starting 'if' and the ending 'endif'. - -If the 'if' conditional evaluates to true then the group of statements -following the 'if' up to the next conditional line are executed. - -If the 'if' conditional evaluates to false then the 'elseif' conditions are -evaluated in order until one evaluates to true. If the 'elseif' condition is -true then the statements following the 'elseif' up to the next conditional -line are executed. If none of the 'if' or 'elseif' conditions evaluate to true -then the statements following the 'else' are executed. When a condition is -evaluated to true no more conditions are evaluated in the group. - -.If Endif Example ----- -o101 if [#31 EQ 3] (if parameter #31 is equal to 3 set S2000) - S2000 -o101 endif ----- - -.If ElseIf Else EndIf Example ----- -o102 if [#2 GT 5] (if parameter #2 is greater than 5 set F100) - F100 -o102 elseif [#2 LT 2] (else if parameter #2 is less than 2 set F200) - F200 -o102 else (else if parameter #2 is 2 through 5 set F150) - F150 -o102 endif ----- - -Several conditons may be tested for by 'elseif' statements until the -'else' path is finally executed if all preceding conditons are false: - -.If Elseif Else Endif Example ----- -O102 if [#2 GT 5] (if parameter #2 is greater than 5 set F100) - F100 -O102 elseif [#2 LT 2] (else if parameter #2 less than 2 set F200) - F20 -O102 else (parameter #2 between 2 and 5) - F200 -O102 endif ----- - -[[sec:repeat]] -== Repeat(((Repeat))) - -The 'repeat' will execute the statements inside of the -repeat/endrepeat the specified number of times. The example shows how -you might mill a diagonal series of shapes starting at the present -position. - -.Repeat Example ----- -(Mill 5 diagonal shapes) -G91 (Incremental mode) -o103 repeat [5] -... (insert milling code here) -G0 X1 Y1 (diagonal move to next position) -o103 endrepeat -G90 (Absolute mode) ----- - -== Indirection(((Indirection))) - -The O-number may be given by a parameter and/or calculation. - -.Indirection Example ----- -o[#101+2] call ----- - -.Computing values in O-words -For more information on computing values see the following sections - -* <> -* <> -* <> -* <> - -== Calling Files(((Calling Files))) - -To call a separate file with a subroutine name the file the same as -your call and include a sub and endsub in the file. The file must be in the -directory pointed to by 'PROGRAM_PREFIX' or 'SUBROUTINE_PATH' in the ini file. -The file name can include *lowercase* letters, numbers, dash, and underscore -only. A named subroutine file can contain only a single subroutine definition. - -.Named File Example ----- -o call ----- - -.Numbered File Example ----- -o123 call ----- - -In the called file you must include the oxxx sub and endsub and the -file must be a valid file. - -.Called File Example ----- -(filename myfile.ngc) -o sub - (code here) -o endsub -M2 ----- - -[NOTE] -The file names are lowercase letters only so 'o' is converted to 'o' -by the interpreter. More information about the search path and options for the -search path are in the INI Configuration Section. - -== Subroutine return values(((Return Values))) - -Subroutines may optionally return a value by an optional expression at -an 'endsub' or 'return' statement. - -.Return value example ----- -o123 return [#2 *5] -... -o123 endsub [3 * 4] ----- - -A subroutine return value is stored in the '#<_value>' -<> , and -the '#<_value_returned>' predefined parameter is set to 1, to indicate -a value was returned. Both paramters are global, and are cleared just -before the next subroutine call. - -// vim: set syntax=asciidoc: diff --git a/docs/src/gcode/o-code_es.txt b/docs/src/gcode/o-code_es.txt deleted file mode 100644 index b27c0198657..00000000000 --- a/docs/src/gcode/o-code_es.txt +++ /dev/null @@ -1,252 +0,0 @@ -= O Codes - -[[cha:O-Codes]] (((O Codes))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -O-codes provide for flow control in NC programs. Each block has an -associated number, which is the number used after O. Care must be taken -to properly match the O-numbers. O codes use the letter 'O' not the -number zero as the first character in the number like O100. - -.Numbering Example ----- -o100 sub -(notice that the if-endif block uses a different number) - o110 if [#2 GT 5] - (some code here) - o110 endif - (some more code here) -o100 endsub ----- - -The behavior is undefined if: - -* The same number is used for more than one block -* Other words are used on a line with an O- word -* Comments are used on a line with an O-word - -[NOTE] -Using the lower case o makes it easier to distinguish from a 0 -that might have been mistyped. For example o100 is easier to -see than O100 that it is not a 0. - -== Subroutines[[sec:subroutines]](((Subroutines))) -(((sub)))(((endsub)))(((return)))(((call))) - -Subroutines extend from a 'O- sub' to an 'O- endsub' . The lines -between 'O- sub' and 'O- endsub' are not executed until -the subroutine is called with 'O- call'. - -.Subroutine Example ----- -o100 sub - G53 G0 X0 Y0 Z0 (rapid move to machine home) -o100 endsub -... -o100 call (call the subroutine here) -M2 ----- -See <> & <> & <> sections for more information. - -.O- Return -Inside a subroutine, 'O- return' can be executed. This immediately -returns to the calling code, just as though 'O- endsub' was encountered. - -.O- Return Example ----- -o100 sub - o110 if [#2 GT 5] (test if parameter #2 is greater than 5) - o100 return (return to top of subroutine if test is true) - o110 endif - (some code here that only gets executed if parameter #2 is less than 5) -o100 endsub ----- -See the <> & <> sections for more information. - -.O- Call -'O- Call' takes up to 30 optional arguments, which are passed to the -subroutine - as '#1', '#2' , ..., #N. Parameters from #N+1 to #30 have the same -value as in the -calling context. On return from the subroutine, the values of -parameters #1 through #30 (regardless of the number of arguments) will -be restored to the values they had before the call. Parameters #1 - #30 -are local to the subroutine. - -Because '1 2 3' is parsed as the number 123, the parameters must be -enclosed in -square brackets. The following calls a subroutine with 3 arguments: - -.O- Call Example ----- -o200 call [1] [2] [3] ----- - -Subroutine bodies may not be nested. They may only be called after -they are defined. They may be called from other functions, and may call -themselves recursively if it makes sense to do so. The maximum -subroutine nesting level is 10. - -Subroutines do not have 'return values', but they may change the value -of parameters above #30 and those changes will be visible to the -calling code. Subroutines may also change the value of global named -parameters. - -== Looping[[sec:looping]](((Looping)))(((do)))(((while)))(((endwhile)))(((break)))(((continue))) - -The 'while loop' has two structures: 'while/endwhile', and 'do/while'. In -each case, the loop is exited when the 'while' condition evaluates to -false. The difference is when the test condition is done. The 'do/while' -loop runs the code in the loop then checks the test condition. The -'while/endwhile' loop does the test first. - -.While Endwhile Example ----- -(draw a sawtooth shape) -G0 X1 Y0 (move to start position) -#1 = 1 (assign parameter #1 the value of 0) -F25 (set a feed rate) -o101 while [#1 LT 10] - G1 X0 - G1 Y[#1/10] X1 - #1 = [#1+1] (increment the test counter) -o101 endwhile -M2 (end program) ----- - -.Do While Example ----- -#1 = 0 (assign parameter #1 the value of 0) -o100 do - o110 if [#1 EQ 2] - #1 = 3 (assign the value of 3 to parameter #1) - o100 continue (skip to start of loop) - o110 endif - (some code here) - #1 = [#1 + 1] (increment the test counter) -o100 while [#1 GT 3] ----- - - -Inside a while loop, 'O- break' immediately exits the loop, and 'O- -continue' immediately skips to the next evaluation of the 'while' -condition. If it is still true, the loop begins again at the top. If -it is false, it exits the loop. - -== Conditional[[sec:conditional]] -(((Conditional: if, elseif, else, endif)))(((if)))(((else)))(((elseif)))(((endif))) - -The 'if' conditional consists of a group of statements with the same 'o' number -that start with 'if' and end with 'endif'. Optional 'elseif' and 'else' conditions -may be between the starting 'if' and the ending 'endif'. - -If the 'if' conditional evaluates to true then the group of statements -following the 'if' up to the next conditional line are executed. - -If the 'if' conditional evaluates to false then the 'elseif' conditions are -evaluated in order until one evaluates to true. If the 'elseif' condition is -true then the statements following the 'elseif' up to the next conditional -line are executed. If none of the 'if' or 'elseif' conditions evaluate to true -then the statements following the 'else' are executed. When a condition is -evaluated to true no more conditions are evaluated in the group. - -.If Endif Example ----- -o101 if [#31 EQ 3] (if parameter #31 is equal to 3 set S2000) - S2000 -o101 endif ----- - -.If ElseIf Else EndIf Example ----- -o102 if [#2 GT 5] (if parameter #2 is greater than 5 set F100) - F100 -o102 elseif [#2 LT 2] (else if parameter #2 is less than 2 set F200) - F200 -o102 else (else if parameter #2 is 2 through 5 set F150) - F150 -o102 endif ----- - -== Repeat(((Repeat))) - -The 'repeat' will execute the statements inside of the -repeat/endrepeat the specified number of times. The example shows how -you might mill a diagonal series of shapes starting at the present -position. - -.Repeat Example ----- -(Mill 5 diagonal shapes) -G91 (Incremental mode) -o103 repeat [5] -... (insert milling code here) -G0 X1 Y1 (diagonal move to next position) -o103 endrepeat -G90 (Absolute mode) ----- - -== Indirection(((Indirection))) - -The O-number may be given by a parameter and/or calculation. - -.Indirection Example ----- -o[#101+2] call ----- - -.Computing values in O-words -For more information on computing values see the following sections - -* <> -* <> -* <> -* <> - -== Calling Files(((Calling Files))) - -To call a separate file with a subroutine name the file the same as -your call and include a sub and endsub in the file. The file must be in the -directory pointed to by 'PROGRAM_PREFIX' or 'SUBROUTINE_PATH' in the ini file. -The file name can include *lowercase* letters, numbers, dash, and underscore -only. A named subroutine file can contain only a single subroutine definition. - -.Named File Example ----- -o call ----- - -.Numbered File Example ----- -o123 call ----- - -In the called file you must include the oxxx sub and endsub and the -file must be a valid file. - -.Called File Example ----- -(filename myfile.ngc) -o sub - (code here) -o endsub -M2 ----- - -[NOTE] -The file names are lowercase letters only so 'o' is converted to 'o' -by the interpreter. - -// vim: set syntax=asciidoc: diff --git a/docs/src/gcode/o-code_fr.txt b/docs/src/gcode/o-code_fr.txt deleted file mode 100644 index b9bd14676e4..00000000000 --- a/docs/src/gcode/o-code_fr.txt +++ /dev/null @@ -1,268 +0,0 @@ -:lang: fr -:toc: - -= Les O-codes - -[[cha:O-codes]] (((O-codes))) - -== Utilisation des O-codes - -Les O-codes permettent le contrôle de flux dans les programmes NGC. -Ils commencent par une lettre *O*, qu'il ne faut pas confondre avec le -chiffre *0*. Chaque bloc est associé à une adresse, qui est la valeur utilisée -après la lettre *O*. Il faut prendre soin de bien faire correspondre les -adresses des O-codes. - -.Exemple de numérotation ----- -o100 sub -(noter que les blocs if - endif utilisent des numéros différents) - o110 if [#2 GT 5] - (du code ici) - o110 endif - (encore du code ici) -o100 endsub ----- - -Le comportement est indéfini si: - -* Le même nombre est utilisé pour plusieurs blocs -* D'autres mots sont utilisés sur une ligne contenant un mot O-. -* Un commentaire est utilisé sur une ligne contenant un mot O-. - -[TIP] -L'utilisation de la lettre *o* minuscule facilite la distinction avec le -chiffre *0* qui peut être tapé par erreur. Par exemple: + -*+o100+* est plus facile à distinguer de *+0100+* que *+O100+*. - -[[sec:Sous-programmes]] -== Sous-programmes: *sub*, *endsub*, *return*, *call* -(((Sous-programmes)))(((sub)))(((endsub)))(((return)))(((call))) - -Les sous-programmes s'étendent d'un 'O- sub' à un 'O- endsub'. -Les lignes, à l'intérieur du sous-programme (le corps du -sous-programme), ne sont pas exécutées dans l'ordre, mais -elles sont exécutées à chaque fois que le sous-programme -est appelé avec un 'O-call'. - -.Exemple de sous-programme ----- -O100 sub (sous-programme de mouvement rapide à l'origine) - G53 X0 Y0 Z0 -O100 endsub - (autres lignes) -O100 call (ici, appel du sous-programme) -M2 ----- - -Pour plus de détails sur ces instructions voir: - -* <>, -* <>, -* <>. - -.O- return -À l'intérieur d'un sous-programme, 'O- return' peut être exécuté, -pour retourner immédiatement au code appelant, -comme si 'O- endsub' avait été rencontré. - -.Exemple avec 'O- return' ----- -o100 sub - o110 if [#2 GT 5] (teste si le paramètre #2 est supérieur à 5) - o100 return (si le test est vrai, retourne au début du sous-programme) - o110 endif - (autre code ici, qui sera exécuté si le paramètre #2 est inférieur à 5) -o100 endsub ----- - -Voir également les sections: - -* <>, -* <>. - -.O- call -'O- call' peut prendre jusqu'à 30 arguments optionnels, qui sont -passés au sous-programme comme '#1', '#2' , ..., '#N'. Les paramètres de '#N+1' à -'#30' ont la même valeur dans le contexte de l'appel. -Au retour du sous-programme, les valeurs des -paramètres #1 jusqu'à #30 (quel que soit le nombre d'arguments) sont -restaurés aux valeurs qu'ils avaient avant l'appel. - -Parce que '1 2 3' est analysé comme le nombre 123, les paramètres -doivent être placés entre crochets. L'appel de sous-programme suivant, -s'effectue avec 3 arguments: - -.Exemple d'appel 'O-' ----- -O200 call [1] [2] [3] ----- - -Les corps de sous-programme ne peuvent pas être imbriqués. Ils ne -peuvent être appelés qu'après avoir été définis. Ils peuvent être -appelés depuis d'autres fonctions et peuvent s'appeler eux même -récursivement, s'il est judicieux de le faire. Le niveau maximum -d'imbrication des sous-programmes est de 10. - -Les sous-programmes n'ont pas de 'valeur de retour', mais ils peuvent -changer la valeur des paramètres au dessus de #30 et ces changements -sont visibles depuis le code appelant. Les sous-programmes peuvent -aussi changer la valeur des paramètres nommés globaux. - -[[sec:Boucles]] -== Boucles: *do*, *while*, *endwhile*, *break*, *continue* -(((Boucles)))(((do)))(((while)))(((endwhile)))(((break)))(((continue))) - -La boucle 'while' a deux structures possibles: 'while - endwhile' et 'do - while'. -Dans chaque cas, la boucle est quittée quand la condition du 'while' devient -fausse. La différence se trouve en fin de test de la condition. La boucle -'do - while' exécute le code dans la boucle puis test la condition. -La boucle 'while - endwhile' effectue le test d'abord. - -.Exemple avec 'while - endwhile' ----- -(dessine la forme d'une dent de scie) -G0 X1 Y0 (déplacement en position de départ) -#1 = 1 (assigne la valeur 1 au paramètre #1) -F25 (fixe la vitesse d'avance travail) -o101 while [#1 LT 10] - G1 X0 - G1 Y[#1/10] X1 - #1 = [#1+1] (incrémente le compteur de test) -o101 endwhile -M2 (fin de programme) ----- - -.Exemple avec 'do - while' ----- -#1 = 0 (assigne la valeur 0 au paramètre #1) -o100 do - (debug, paramètre 1 = #1) - o110 if [#1 EQ 2] - #1 = 3 (assigne la valeur 3 au paramètre #1) - (msg, #1 s'est vu assigné la valeur 3) - o100 continue (saute au début de la boucle) - o110 endif - (le code d'usinage ici) - #1 = [#1 + 1] (incrémente le compteur de test) -o100 while [#1 LT 3] -(msg, boucle terminée) -M2 ----- - -À l'intérieur d'une boucle while, 'O- break', quitte immédiatement -la boucle et 'O- continue', saute immédiatement à la prochaine -évaluation de la condition du 'while'. Si elle est vraie, la boucle -recommence au début. Si elle est fausse, la boucle est quittée. - -[[sec:Conditionnels]] -== Conditionnel: *if*, *elseif*, *else*, *endif* -(((Conditionnel: if, elseif, else, endif)))(((if)))(((else)))(((elseif)))(((endif))) - -Le 'if' conditionnel exécute un groupe d'instructions avec le même nombre 'O' -qui commence avec 'if' et se termine avec 'endif'. Les conditions optionnelles -'elseif' et 'else' peuvent se trouver entre le 'if' et le 'endif'. - -Si la condition du 'if' est vraie, les instructions qui suivent le 'if' seront -exécutées jusqu'à, au maximum, l'instruction conditionnelle suivante. - -Si la condition du 'if' est fausse, alors les instructions conditionnelles -'elseif' suivantes seront évaluées l'une après l'autre. Si la condition du -'elseif' est vraie alors les instructions suivant ce 'elseif' seront exécutées -jusqu'à l'instruction conditionnelle suivante. Si aucune des conditions du 'if' -ou du 'elseif' n'est vraie, alors les instructions suivant le 'else' seront -exécutées. Quand une condition est vraie, les autres instructions -conditionnelles du groupe ne sont plus évaluées. - -.Exemple avec 'if - endif' ----- -O102 if [#31 EQ 3] (si le paramètre #31 est égal à 3 alors S2000) - S2000 -O102 endif ----- - -.Exemple avec 'if - elseif - else - endif' ----- -o102 if [#2 GT 5] (si le paramètre #2 est supérieur à 5 alors F100) - F100 -o102 elseif [#2 LT 2] (sinon si le paramètre #2 est inférieur à 2 alors F200) - F200 -o102 else (sinon le paramètre #2 vaut entre 2 et 5 alors F150) - F150 -o102 endif ----- - -[[sec:Repetitions]] -== Répétition: *Repeat* -(((Repeat))) - -La répétition 'repeat', exécutera les blocs contenus entre 'repeat' et -'endrepeat' le nombre de fois spécifié entre crochets. L'exemple -suivant montre comment usiner une séries de 5 formes diagonales -commençant à la position courante. - -.Exemple avec 'repeat' ----- -(Usine 5 formes diagonales) -G91 (Mode incrémental) -O103 repeat [5] - (insérer le code d'usinage ici) - G0 X1 Y1 (Mouvement en diagonale vers la position suivante) -O103 endrepeat -G90 (Mode absolu) ----- - -== Indirection -(((Indirection))) - -L'adresse de O- peut être donnée par un paramètre ou un calcul. - -.Exemple d'indirection ----- -O[#101+2] call ----- - -.Calcul des valeurs dans les O-codes -Voici un condensé des sections utiles aux calculs des O-codes: - -* <>, -* <>, -* <>, -* <>. - -== Appel de fichier -(((Appel de fichier))) - -Pour appeler un sous-programme par son nom, ce sous-programme doit contenir -un 'sub' et un 'endsub'. Le fichier appelé doit se trouver dans le répertoire -pointé par la variable 'PROGRAM_PREFIX' ou 'SUBROUTINE_PATH' du fichier ini. -Les noms de fichiers ne peuvent inclure que des lettres *minuscules*, des -chiffres, des points et des tirets bas. Un fichier de sous-programme nommé ne -peut contenir qu'une seule définition de sous-programme. - -.Exemple: l'appel d'un fichier nommé ----- -o call (appel un fichier nommé) ----- - -.Exemple: l'appel d'un fichier numéroté ----- -o123 call (appel un fichier numéroté) ----- - -Dans le fichier appelé doit se touver le 'sub' et le 'endsub' -correspondant à l'appel. Le fichier doit être un fichier valide. - -.Exemple: le fichier 'monfichier.ngc' appelé ----- -o sub - (du code ici) -o endsub -M2 ----- - -[NOTE] -Les noms de fichiers doivent être en lettres minuscules, ainsi 'o' -sera transformé en 'o' par l'interpréteur. - -// vim: set syntax=asciidoc: diff --git a/docs/src/gcode/other-code.txt b/docs/src/gcode/other-code.txt deleted file mode 100644 index 9765fbeaf1f..00000000000 --- a/docs/src/gcode/other-code.txt +++ /dev/null @@ -1,85 +0,0 @@ -= Other Codes - -[[cha:other-codes]] (((Other Codes))) - -[[sec:F-feed-rate]] -== F: Set Feed Rate -(((F: Set Feed Rate))) - -'Fx' - set the feed rate to 'x'. 'x' is usually in machine units -(inches or millimeters) per minute. - -The application of the feed rate is as described in the -<> Section, unless inverse time feed rate -mode is in effect, in which case the feed rate is as described in the -<> Section. - -[[sec:S-spindle-speed]] -== S: Set Spindle Speed -(((S: Set Spindle Speed))) - -'Sx' - set the speed of the spindle to 'x' revolutions per minute (RPM). - -The spindle will turn at that speed when a 'M3' or 'M4' is in effect. -It is OK to program an S word whether the spindle is turning or not. -If the speed override switch is enabled and not set at 100%, -the speed will be different from what is programmed. -It is OK to program S0, the spindle will not turn if that is done. - -It is an error if: - -* the S number is negative. - -As described in the <> Section, if a 'G84' -(tapping) canned cycle is active and the feed and speed override -switches are enabled, the one set at the lower setting will take -effect. The speed and feed rates will still be synchronized. In this -case, the speed may differ from what is programmed, even if the speed -override switch is set at 100%. - -[[sec:T-Select-Tool]] -== T: Select Tool -(((T: Select Tool))) - -'Tx' - prepare to change to tool 'x'. - -The tool is not changed until an 'M6' is programmed (see Section -<>). The T word may appear on the same line as the -'M6' or on a previous line. It is OK if T words appear on two or more -lines with no tool change. Only the the most recent T word will take -effect at the next tool change. - -NOTE: When LinuxCNC is configured for a nonrandom toolchanger (see -the entry for RANDOM_TOOLCHANGER in the <>), 'T0' gets special handling: no tool will be selected. This -is useful if you want the spindle to be empty after a tool change. - -NOTE: 'T0' When LinuxCNC is configured for a random toolchanger (see -the entry for RANDOM_TOOLCHANGER in the <>), 'T0' does not get any special treatment: T0 is a valid -tool like any other. It is customary to use T0 on a random toolchanger -machine to track an empty pocket, so that it behaves like a nonrandom -toolchanger machine and unloads the spindle. - -It is an error if: - -* a negative T number is used, - -* T number is used that does not appear in the tool table file (with - the exception that T0 on nonrandom toolchangers *is* accepted, - as noted above). - -On some machines, the carousel will move when a T word is programmed, -at the same time machining is occurring. On such machines, programming -the T word several lines before a tool change will save time. A common -programming practice for such machines is to put the T word for the -next tool to be used on the line after a tool change. This maximizes -the time available for the carousel to move. - -Rapid moves after a 'T' will not show on the AXIS preview until after -a feed move. This is for machines that travel long distances to change -the tool like a lathe. This can be very confusing at first. To turn -this feature off for the current tool program a G1 without any -move after the 'T'. - -// vim: set syntax=asciidoc: diff --git a/docs/src/gcode/other-code_es.txt b/docs/src/gcode/other-code_es.txt deleted file mode 100644 index 9a163be124b..00000000000 --- a/docs/src/gcode/other-code_es.txt +++ /dev/null @@ -1,77 +0,0 @@ -= Other Codes - -[[cha:other-codes]] (((Other Codes))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== F: Set Feed Rate[[sec:F-feed-rate]] -(((F: Set Feed Rate))) - -* 'F-' - sets the feed rate. The application of the feed rate is as described in the -<> Section, unless inverse time feed rate mode is in effect, -in which case the feed rate is as described in -the <> Section. - -== S: Set Spindle Speed[[sec:S-spindle-speed]] -(((S: Set Spindle Speed))) - -* 'S-' - set the speed in revolutions per minute (RPM) of the spindle. -The spindle will turn at that speed when a 'M3' or 'M4' is in effect. -It is OK to program an S word whether the spindle is turning or not. -If the speed override switch is enabled and not set at 100%, -the speed will be different from what is programmed. -It is OK to program S0, the spindle will not turn if that is done. - -It is an error if: - -* the S number is negative. - -As described in the <> Section, if a 'G84' -(tapping) canned cycle is active and the feed and speed override -switches are enabled, the one set at the lower setting will take -effect. The speed and feed rates will still be synchronized. In this -case, the speed may differ from what is programmed, even if the speed -override switch is set at 100%. - -== T: Select Tool[[sec:T-Select-Tool]] -(((T: Select Tool))) - -* 'T-' - call tool prepare. The tool is -not changed until an 'M6' is programmed (see Section -<>). The T word may -appear on the same line as the 'M6' or on a previous line. It is OK -if T words appear on two or more lines with no tool change. Only the -the most recent T word will take effect at the next -tool change. It is OK to program 'T0'; no tool will be selected. This -is useful if you want the spindle to be empty after a tool change. - -It is an error if: - -* a negative T number is used, -* or a T number larger than the number of slots in the carousel is used. - -On some machines, the carousel will move when a T word is programmed, -at the same time machining is occurring. On such machines, programming -the T word several lines before a tool change will save time. A common -programming practice for such machines is to put the T word for the -next tool to be used on the line after a tool change. This maximizes -the time available for the carousel to move. - -Rapid moves after a 'T' will not show on the AXIS preview until after -a feed move. This is for machines that travel long distances to change -the tool like a lathe. This can be very confusing at first. To turn -this feature off for the current tool program a G1 without any -move after the 'T'. - -// vim: set syntax=asciidoc: diff --git a/docs/src/gcode/other-code_fr.txt b/docs/src/gcode/other-code_fr.txt deleted file mode 100644 index be1b9a36b65..00000000000 --- a/docs/src/gcode/other-code_fr.txt +++ /dev/null @@ -1,78 +0,0 @@ -:lang: fr -:toc: - -= Les autres codes - -[[cha:Les-autres-codes]] (((Les autres codes))) - -[[sec:F-Vitesse]] -== F: Réglage de la vitesse d'avance travail -(((F: Réglage de la vitesse d'avance travail))) - -Pour régler la vitesse d'avance, programmer 'F-'. -L'application de la vitesse est telle que décrite dans l'aperçu global d'une -machine numérique, section <>, à moins -que le mode vitesse inverse du temps ne soit activé, dans ce cas, la vitesse est -telle que décrite dans la section sur le choix des modes de <>. - -[[sec:S-Broche]] -== S: Réglage de la vitesse de rotation de la broche -(((S: Réglage de la vitesse de rotation de la broche))) - -Pour régler la vitesse en tours par minute (tr/mn) de la broche, programmer 'S-'. -La broche va tourner à cette vitesse quand elle sera programmée pour tourner. -Il est permis de programmer un mot 'S' que la broche tourne ou non. -Si le potentiomètre de correction de vitesse broche est -autorisé et n'est pas positionné sur 100%, -la vitesse de broche sera différente de celle programmée. -Il est permis de programmer 'S0', la broche ne tournera pas. - -C'est une erreur si: - -* La valeur de S est négative. - -Comme décrit dans la section <>, si un cycle de perçage 'G84' (taraudage) est actif et que -les potentiomètres de vitesse et d'avance sont autorisés, celui qui a le -réglage le plus bas sera utilisé. La vitesse de rotation et d'avance resterons -synchronisées. Dans ce cas, la vitesse peut différer de celle programmée, même -si le potentiomètre de correction de vitesse travail est sur 100%. - -[[sec:T-Choix-Outil]] -== T: Choix de l'outil -(((T: Choix de l'outil))) - -Pour sélectionner un outil, programmer 'T-', où la valeur de 'T' -correspond au numéro de la poche d'outil dans le carrousel. L'outil ne sera -appelé et changé que quand un 'M6' sera programmé voir la section -<>. Le mot 'T' peut apparaitre sur la -même ligne que le 'M6' ou sur une ligne précédente. Il est permis, mais -normalement inutile, qu'un mot T apparaisse à plus de deux lignes avant, -sans changement d'outil. Le carrousel peut bouger, seulement le plus récent mot -T ne prendra effet qu'au prochain changement d'outil. Il est permis de -programmer 'T0', aucun outil ne sera sélectionné. C'est utile pour -avoir la broche vide. - -C'est une erreur si: - -* Un valeur négative de T est utilisée. -* Une valeur de T supérieure au nombre de poches d'outils dans le - carrousel est utilisée. - -Sur certaines machines, le carrousel se déplace lorsque le mot T est -programmé, avec l'usinage en cours. Sur ces machines, programmer 'Tn', -plusieurs lignes de texte avant le changement d'outil permet de gagner -du temps. Une pratique de programmation courante pour ces types de -machines, consiste à placer le mot T pour le prochain outil sur la -ligne suivant le changement d'outil. Cela laisse au carrousel tout le -temps pour se positionner. - -Les mouvements rapides qui suivent un T n'apparaissent pas sur l'écran de -parcours d'outil d'Axis, et ce jusqu'au prochain mouvement en vitesse travail -Cela se remarque surtout sur les machines ayant de longues distances de -déplacement lors du changement d'outil, comme les tours. -Cela peut prêter à confusion au début. -Pour contourner ce dysfonctionnement pour l'outil courant, ajouter un G1 sans -mouvement juste après le T. - -// vim: set syntax=asciidoc: diff --git a/docs/src/gcode/overview.txt b/docs/src/gcode/overview.txt deleted file mode 100644 index de735c6eb06..00000000000 --- a/docs/src/gcode/overview.txt +++ /dev/null @@ -1,1286 +0,0 @@ -= G Code Overview - -[[cha:g-code-overview]] (((G Code Overview))) - -:ini: {basebackend@docbook:'':ini} -:hal: {basebackend@docbook:'':hal} -:ngc: {basebackend@docbook:'':ngc} -// begin a listing of ini/hal/ngc files like so: -//[source,{ini}] -//[source,{hal}] -//[source,{ngc}] - -== Overview - -The LinuxCNC G Code language is based on the RS274/NGC language. The G -Code language is based on lines of code. Each line (also called a -'block') may include commands to do several different things. Lines of -code may be collected in a file to make a program. - -A typical line of code consists of an optional line number at the -beginning followed by one or more 'words'. A word consists of a letter -followed by a number (or something that evaluates to a number). A word -may either give a command or provide an argument to a command. For -example, 'G1 X3' is a valid line of code with two words. 'G1' is a -command meaning 'move in a straight line at the programmed feed -rate to the programmed end point', and 'X3' provides an argument -value (the value of X should be 3 at the end of the move). -Most LinuxCNC G Code commands start with either G or M (for -General and Miscellaneous). The words for these commands are called 'G -codes' and 'M codes.' - -The LinuxCNC language has no indicator for the start of a program. The -Interpreter, however, deals with files. A single program may be in a -single file, or a program may be spread across several files. A file -may demarcated with percents in the following way. The first non-blank -line of a file may contain nothing but a percent sign, '%', possibly -surrounded by white space, and later in the file (normally at the end -of the file) there may be a similar line. Demarcating a file with -percents is optional if the file has an 'M2' or 'M30' in it, but is -required if not. An error will be signaled if a file -has a percent line at the beginning but not at the end. The useful -contents of a file demarcated by percents stop after the second percent -line. Anything after that is ignored. - -The LinuxCNC G Code language has two commands ('M2' or 'M30'), either of -which ends a program. A program may end before the end of -a file. Lines of a file that occur after the end of a program are not -to be executed. The interpreter does not even read them. - -== Format of a line - -A permissible line of input code consists of the following, in order, -with the restriction that there is a maximum (currently 256) to the -number of characters allowed on a line. - -. an optional block delete character, which is a slash '/'. -. an optional line number. -. any number of words, parameter settings, and comments. -. an end of line marker (carriage return or line feed or both). - -Any input not explicitly allowed is illegal and will cause the -Interpreter to signal an error. - -Spaces and tabs are allowed anywhere on a line of code and do not -change the meaning of the line, except inside comments. This makes some -strange-looking input legal. The line 'G0X +0. 12 34Y 7' is -equivalent to 'G0 x+0.1234 Y7', for example. - -Blank lines are allowed in the input. They are to be ignored. - -Input is case insensitive, except in comments, i.e., any letter -outside a comment may be in upper or lower case without changing the -meaning of a line. - -== Block Delete [[sub:block-delete]] (((Block Delete))) - -The optional block delete character the slash '/' when placed first on a line -can be used by some user interfaces to skip lines of code when needed. In Axis -the key combination Alt-m-/ toggles block delete on and off. When block delete -is on any lines starting with the slash '/' are skipped. - -== Line Number -(((Line Number))) - -A line number is the letter N followed by an unsigned integer, -optionally followed by a period and another unsigned integer. For -example, `N1234` and `N56.78` are valid line numbers. They may be -repeated or used out of order, although normal practice is to avoid -such usage. Line numbers may also be skipped, and that is normal -practice. A line number is not required to be used, but must be in the -proper place if used. - -== Word -(((Word))) - -A word is a letter other than N followed by a real value. - -Words may begin with any of the letters shown in the following Table. -The table includes N for completeness, even -though, as defined above, line numbers are not words. Several letters -(I, J, K, L, P, R) may have different meanings in different contexts. -Letters which refer to axis names are not valid on a machine which does -not have the corresponding axis. - -.Words and their meanings[[cap:Words-and-their]] - -[width="75%", options="header", cols="^1,<5"] -|======================================== -|Letter | Meaning -|A | A axis of machine -|B | B axis of machine -|C | C axis of machine -|D | Tool radius compensation number -|F | Feed rate -|G | General function (See table <>) -|H | Tool length offset index -|I | X offset for arcs and G87 canned cycles -|J | Y offset for arcs and G87 canned cycles -.2+|K | Z offset for arcs and G87 canned cycles. -<| Spindle-Motion Ratio for G33 synchronized movements. -|L | generic parameter word for G10, M66 and others -|M | Miscellaneous function (See table <>) -|N | Line number -.2+|P | Dwell time in canned cycles and with G4. -<| Key used with G10. -|Q | Feed increment in G73, G83 canned cycles -|R | Arc radius or canned cycle plane -|S | Spindle speed -|T | Tool selection -|U | U axis of machine -|V | V axis of machine -|W | W axis of machine -|X | X axis of machine -|Y | Y axis of machine -|Z | Z axis of machine -|======================================== - -[[sub:Number]] -== Number - -The following rules are used for (explicit) numbers. In these rules a -digit is a single character between 0 and 9. - -* A number consists of (1) an optional plus or minus sign, followed by - (2) zero to many digits, followed, possibly, by (3) one decimal point, - followed by (4) zero to many digits - provided that there is at least - one digit somewhere in the number. -* There are two kinds of numbers: integers and decimals. An integer does - not have a decimal point in it; a decimal does. -* Numbers may have any number of digits, subject to the limitation on - line length. Only about seventeen significant figures will be retained, - however (enough for all known applications). -* A non-zero number with no sign as the first character is assumed to be - positive. - -Notice that initial (before the decimal point and the first non-zero -digit) and trailing (after the decimal point and the last non-zero -digit) zeros are allowed but not required. A number written with -initial or trailing zeros will have the same value when it is read as -if the extra zeros were not there. - -Numbers used for specific purposes in RS274/NGC are often restricted -to some finite set of values or some to some range of values. In many -uses, decimal numbers must be close to integers; this includes the -values of indexes (for parameters and carousel slot numbers, for -example), M codes, and G codes multiplied by ten. A decimal number -which is supposed be close to an integer is considered close enough if -it is within 0.0001 of an integer. - - -[[sec:parameters]] -== Parameters -(Variables) -(((Parameters))) - -The RS274/NGC language supports 'parameters' - what in other -programming languages would be called 'variables'. There are several -types of parameter of different purpose and appearance, each described -in the following sections. The only value type supported by parameters -is floating-point; there are no string, boolean or integer types in -G-code like in other programming languages. However, logic expressions -can be formulated with <> -( 'AND', 'OR', 'XOR', and the comparison operators -'EQ','NE','GT','GE','LT','LE'), and the 'MOD', 'ROUND', 'FUP' and -'FIX' <> support integer arithmetic. - -Parameters differ in syntax, scope, behavior when not yet -initialized, mode, persistence and intended use. - -Syntax:: There are three kinds of syntactic appearance: -* 'numbered' - #4711 -* 'named local' - # -* 'named global' - #<_globalvalue> - -Scope:: The scope of a parameter is either global, or local within a -subroutine. Subroutine parameters and local named variables have local -scope. Global named parameters and numbered parameters starting from -number 31 are global in scope. RS274/NGC uses 'lexical scoping' - -in a subroutine only the local variables defined therein, and any -global variables are visible. The local variables of a -calling procedure are not visible in a called procedure. - -Behavior of uninitialized parameters:: - . unitialized global parameters, and unused subroutine parameters - return the value zero when used in an expression. - . unitialized named parameters signal an error when used in an expression. - -Mode:: Most parameters are read/write and may be assigned to -within an assignment statement. However, for many predefined -parameters this does not make sense, so they are are read-only - they -may appear in expressions, but not on the left-hand side of an -assignment statement. - -Persistence:: When LinuxCNC is shut down, volatile parameters lose their -values. All parameters except numbered parameters in the current -persistent range footnoteref:[persistent_range,The range of persistent -parameters may change as development progresses. This range is -currently 5161- 5390. It is defined in the '_required_parameters array' -in file the src/emc/rs274ngc/interp_array.cc .] are volatile. -Persistent parameters are saved in the .var file and -restored to their previous values when LinuxCNC is started again. Volatile -numbered parameters are reset to zero. - -Intended Use:: - . user parameters:: numbered parameters in the range 31..5000, and named -global and local parameters except predefined parameters. These are -available for general-purpose storage of floating-point values, like -intermediate results, flags etc, throughout program execution. They -are read/write (can be assigned a value). - . <> - these are used to hold the actual parameters -passed to a subroutine. - . <> - most of these are used to access offsets of -coordinate systems. - . <> - used to determine the current - running version. They are read-only. - - -=== Numbered Parameters [[sub:numbered-parameters]] - -A numbered parameter is the pound character '#' followed by an -integer between 1 and (currently) 5602 footnote:[The RS274/NGC interpreter -maintains an array of numbered parameters. Its size is defined by the -symbol `RS274NGC_MAX_PARAMETERS` in the file -src/emc/rs274ngc/interp_internal.hh). This number of numerical -parameters may also increase as development adds support for new -parameters. ]. The parameter is referred -to by this integer, and its value is whatever number is stored in the -parameter. - -A value is stored in a parameter with the = operator; for example: ----- -#3 = 15 (set parameter 3 to 15) ----- - -A parameter setting does not take -effect until after all parameter values on the same line have been -found. For example, if parameter 3 has been previously set to 15 and - the line '#3=6 G1 X#3' is interpreted, a straight move to a point -where X equals 15 will -occur and the value of parameter 3 will be 6. - -The '\#' character takes precedence over other operations, so that, for - example, '\#1+2' means the number found by adding 2 to the value of -parameter 1, not - the value found in parameter 3. Of course, '\#[1+2]' does mean the -value found in parameter 3. The '\#' character may be repeated; for -example '##2' means the value of the parameter whose index is the -(integer) value of parameter 2. - - -31-5000:: - G-Code user parameters. These parameters are global in the G Code file, - and available for general use. Volatile. - -5061-5069:: - Coordinates of a "G38.2" Probe result - X, Y, Z, A, B, C, U, V & W. - Volatile. - -5070:: - "G38" probe result - 1 if success, 0 if probe failed to close. - Used with G38.3 and G38.5. Volatile. - -5161-5169:: - "G28" Home for X, Y, Z, A, B, C, U, V & W. Persistent. - -5181-5189:: - "G30" Home for X, Y, Z, A, B, C, U, V & W. Persistent. - -5211-5219:: - "G92" offset for X, Y, Z, A, B, C, U, V & W. Persistent. - -5210:: - 1 if "G92" offset is currently applied, 0 otherwise. Persistent. - -5211-5219:: - 'G92' offset (X Y Z A B C U V W). - -5220:: - Coordinate System number 1 - 9 for G54 - G59.3. Persistent. - -5221-5230:: - Coordinate System 1, G54 for X, Y, Z, A, B, C, U, V, W & R. R denotes the XY rotation angle around the Z axis. Persistent. - -5241-5250:: - Coordinate System 2, G55 for X, Y, Z, A, B, C, U, V, W & R. Persistent. - -5261-5270:: - Coordinate System 3, G56 for X, Y, Z, A, B, C, U, V, W & R. Persistent. - -5281-5290:: - Coordinate System 4, G57 for X, Y, Z, A, B, C, U, V, W & R. Persistent. - -5301-5310:: - Coordinate System 5, G58 for X, Y, Z, A, B, C, U, V, W & R. Persistent. - -5321-5330:: - Coordinate System 6, G59 for X, Y, Z, A, B, C, U, V, W & R. Persistent. - -5341-5350:: - Coordinate System 7, G59.1 for X, Y, Z, A, B, C, U, V, W & R. Persistent. - -5361-5370:: - Coordinate System 8, G59.2 for X, Y, Z, A, B, C, U, V, W & R. Persistent. - -5381-5390:: - Coordinate System 9, G59.3 for X, Y, Z, A, B, C, U, V, W & R. Persistent. - -5399:: - Result of M66 - Check or wait for input. Volatile. - -5400:: - Tool Number. Volatile. - -5401-5409:: - Tool Offsets for X, Y, Z, A, B, C, U, V & W. Volatile. - -5410:: - Tool Diameter. Volatile. - -5411:: - Tool Front Angle. Volatile. - -5412:: - Tool Back Angle. Volatile. - -5413:: - Tool Orientation. Volatile. - -5420-5428:: - Current Position including all offsets and in the current program - units for X, Y, Z, A, B, C, U, V & W, volatile. - -5599:: - flag for controlling the output of (DEBUG,) statements. - 1=output, 0=no output; default=1. Volatile. - -5600:: - toolchanger fault indicator. Used with the iocontrol-v2 component. - 1: toolchanger faulted, 0: normal. Volatile. - -5601:: - toolchanger fault code. Used with the iocontrol-v2 component. - Reflects the value of the `toolchanger-reason` HAL pin if a fault occured. - Volatile. - - -[[sub:subroutine-parameters]] -=== Subroutine Parameters - -1-30:: - Subroutine local parameters of call arguments. These parameters are - local to the subroutine. Volatile. See also the chapter on <>. - - -[[sub:Named-Parameters]] -=== Named Parameters - -Named parameters work like numbered parameters but are easier to read. -All parameter names are converted to lower case and have spaces and -tabs removed, so '#' and '#

    ' refer to the same -parameter. Named parameters must be enclosed with `< >` marks. - -'#' is a local named parameter. By default, a -named parameter is local to -the scope in which it is assigned. You can't access a local parameter -outside of its subroutine - this is so that two subroutines can use the -same parameter names without fear of one subroutine overwriting the -values in another. - -'#<_global named parameter here>' is a global named parameter. They -are accessible from within called -subroutines and may set values within subroutines that are accessible -to the caller. As far as scope is concerned, they act just like regular -numeric parameters. They are not stored in files. - -Examples: - -* Declaration of named global variable - ----- -#<_endmill_dia> = 0.049 ----- - -* Reference to previously declared global variable - ----- -#<_endmill_rad> = [#<_endmill_dia>/2.0] ----- - -* Mixed literal and named parameters - ----- -o100 call [0.0] [0.0] [#<_inside_cutout>-#<_endmill_dia>] [#<_Zcut>] [#<_feedrate>] ----- - -Named parameters spring into existence when they are assigned a value -for the first time. Local named parameters vanish when their scope is -left: when a subroutine returns, all its local parameters are deleted -and cannot be referred to anymore. - -It is an error to use a non-existent named paramater within an -expression, or at the right-hand side of an assignment. Printing the -value of a non-existent named parameter with a DEBUG statement - like -'(DEBUG, #)' will display the string +++######+++. - -Global parameters, as well as local parameters assigned to at the -global level, retain their value once assigned even when the program -ends, and have these values when the program is run again. - -The <> tests whether a given named parameter exists. - -=== Predefined Named Parameters [[sec:Predefined-Named-Parameters]] - -The following global read only named parameters are available to -access internal state of the interpreter and machine state. They can -be used in arbitrary expressions, for instance to control flow of the -program with if-then-else statements. Note that <> can be added easily without changes to the source code. - -* `#<_vmajor>` - Major package version. If current version was 2.5.2 would return 2.5. - -* `#<_vminor>` - Minor package version. If current version was 2.6.2 it would return 0.2. - -* `#<_line>` - - Sequence number. If running a G-Code file, this returns the current line number. - -* `#<_motion_mode>` - - Return the interpreter's current motion mode: -[width="20%",options="header"] -|======================================== -|Motion mode | return value -|G1| 10 -|G2| 20 -|G3| 30 -|G33| 330 -|G38.2| 382 -|G38.3| 383 -|G38.4| 384 -|G38.5| 385 -|G5.2| 52 -|G73| 730 -|G76| 760 -|G80| 800 -|G81| 810 -|G82| 820 -|G83| 830 -|G84| 840 -|G85| 850 -|G86| 860 -|G87| 870 -|G88| 880 -|G89| 890 -|======================================== -* `#<_plane>` - - returns the value designating the current plane: -[width="20%",options="header"] -|======================================== -|Plane | return value -|G17| 170 -|G18| 180 -|G19| 190 -|G17.1| 171 -|G18.1| 181 -|G19.1| 191 -|======================================== - - -* `#<_ccomp>` - - Status of cutter compensation. Return values: -[width="20%",options="header"] -|======================================== -|Mode | return value -|G40 | 400 -|G41 | 410 -|G41.1| 411 -|G41 | 410 -|G42 | 420 -|G42.1 | 421 -|======================================== - -* `#<_metric>` - - Return 1 if G21 is on, else 0. - -* `#<_imperial>` - - Return 1 if G20 is on, else 0. - -* `#<_absolute>` - - Return 1 if G90 is on, else 0. - -* `#<_incremental>` - - Return 1 if G91 is on, else 0. - -* `#<_inverse_time>` - - Return 1 if inverse feed mode (G93) is on, else 0. - -* `#<_units_per_minute>` - - Return 1 if Units/minute feed mode (G94) is on, else 0. - -* `#<_units_per_rev>` - - Return 1 if Units/revolution mode (G95) is on, else 0. - -* `#<_coord_system>` - - Return index of the current coordinate system (G54..G59.3) -[width="20%",options="header"] -|======================================== -|Mode | return value -|G54| 0 -|G55| 1 -|G56| 2 -|G57| 3 -|G58| 4 -|G59| 5 -|G59.1|6 -|G59.2|7 -|G59.3|8 -|======================================== - -* `#<_tool_offset>` - - Return 1 if tool offset (G43) is on, else 0. - -* `#<_retract_r_plane>` - - Return 1 if G98 is set, else 0. - -* `#<_retract_old_z>` - - Return 1 if G99 is on, else 0. - -[[sub:system-parameters]] -=== System Parameters - -* `#<_spindle_rpm_mode>` - - Return 1 if spindle rpm mode (G97) is on, else 0. - -* `#<_spindle_css_mode>` - - Return 1 if constant surface speed mode (G96) is on, else 0. - -* `#<_ijk_absolute_mode>` - - Return 1 if Absolute Arc distance mode (G90.1) is on, else 0. - -* `#<_lathe_diameter_mode>` - - Return 1 if this is a lathe configuration and diameter (G7) mode is on, else 0. - -* `#<_lathe_radius_mode>` - - Return 1 if this is a lathe configuration and radius (G8) mode is on, else 0. - -* `#<_spindle_on>` - - Return 1 if spindle currently running (M3 or M4) else 0. - -* `#<_spindle_cw>` - - Return 1 if spindle direction is clockwise (M3) else 0. - -* `#<_mist>` - - Return 1 if mist (M7) is on. - -* `#<_flood>` - - Return 1 if flood (M8) is on. - -* `#<_speed_override>` - - Return 1 if feed override (M48 or M50 P1) is on, else 0. - -* `#<_feed_override>` - - Return 1 if feed override (M48 or M51 P1) is on, else 0. - -* `#<_adaptive_feed>` - - Return 1 if adaptive feed (M52 or M52 P1) is on, else 0. - -* `#<_feed_hold>` - - Return 1 if feed hold switch is enabled (M53 P1), else 0. - -* `#<_feed>` - - Return the current feed value (F). - -* `#<_rpm>` - - Return the current spindle speed (S). - -* `#<_x>` - - Return current machine X coordinate. Same as #5420. - -* `#<_y>` - - Return current machine Y coordinate. Same as #5421. - -* `#<_z>` - - Return current machine Z coordinate. Same as #5422. - -* `#<_a>` - - Return current machine A coordinate. Same as #5423. - -* `#<_b>` - - Return current machine B coordinate. Same as #5424. - -* `#<_c>` - - Return current machine C coordinate. Same as #5425. - -* `#<_u>` - - Return current machine U coordinate. Same as #5426. - -* `#<_v>` - - Return current machine V coordinate. Same as #5427. - -* `#<_w>` - - Return current machine W coordinate. Same as #5428. - -* `#<_current_tool>` - - Return number of the current tool in spindle. Same as #5400. - -* `#<_current_pocket>` - - Return pocket number of the current tool. - -* `#<_selected_tool>` - - Return number of the selected tool post a T code. Default -1. - -* `#<_selected_pocket>` - - Return number of the selected pocket post a T code. Default -1 - (no pocket selected). - -* `#<_value>` - [[param:_value]] - Return value from the last O-word `return` or `endsub`. Default - value 0 if no expression after `return` or `endsub`. Initialized - to 0 on program start. - -* `#<_value_returned>` - - 1.0 if the last O-word `return` or `endsub` returned a value, 0 - otherwise. Cleared by the next O-word call. - -* `#<_task>` - - 1.0 if the executing interpreter instance is part of milltask, 0.0 - otherwise. Sometimes it is necessary to treat this case specially - to retain proper preview, for instance when testing the success of - a probe (G38.x) by inspecting #5070, which will always fail in the - preview interpreter (e.g. Axis). - -* `#<_call_level>` - - current nesting level of O-word procedures. For debugging. - -* `#<_remap_level>` - - current level of the remap stack. Each remap in a block adds one - to the remap level. For debugging. - -[[sec:Expressions]] -== Expressions - -An expression is a set of characters starting with a left bracket '[' -and ending with a balancing right bracket ']' . In between the brackets -are numbers, parameter values, mathematical -operations, and other expressions. An expression is evaluated to -produce a number. The expressions on a line are evaluated when the line -is read, before anything on the line is executed. An example of an -expression is '[1 + acos[0] - [#3 ** [4.0/2]]]'. - -[[sec:Binary-Operators]] -== Binary Operators - -Binary operators only appear inside expressions. There are four basic -mathematical operations: addition ('+'), subtraction ('-'), -multiplication ('\*'), and division ('/'). There are three logical -operations: non-exclusive or ('OR'), exclusive or ('XOR'), and logical -and ('AND'). The eighth operation is the modulus operation ('MOD'). The -ninth operation is the 'power' operation ('**') of raising the number -on the left of the operation to the power on - the right. The relational operators are equality ('EQ'), inequality -('NE'), strictly greater than ('GT'), greater than or equal to ('GE'), -strictly less than ('LT'), and less than or equal to ('LE'). - -The binary operations are divided into several groups according to -their precedence. (see table <>) If -operations in different precedence groups are strung together (for -example in the expression '[2.0 / 3 * 1.5 - 5.5 / 11.0]'), operations -in a higher group are to be performed before operations -in a lower group. If an expression contains more than one operation - from the same group (such as the first '/' and '*' in the example), -the operation on the left is performed first. Thus, - the example is equivalent to: '[ [ [2.0 / 3] * 1.5] - [5.5 / 11.0] ]' , -which is equivalent to to '[1.0 - 0.5]' , which is '0.5'. - -The logical operations and modulus are to be performed on any real -numbers, not just on integers. The number zero is equivalent to logical -false, and any non-zero number is equivalent to logical true. - -.Operator Precedence[[cap:Operator-Precedence]](((operator precedence))) - -[width="60%", options="header", cols="2*^"] -|======================================== -|Operators | Precedence -|** | 'highest' -|* / MOD | -|+ - | -|EQ NE GT GE LT LE | -|AND OR XOR | 'lowest' -|======================================== - -=== Equality and floating-point values - -The RS274/NGC language only supports floating-point values of finite -precision. Therefore, testing for equality or inequality of two -floating-point values is inherently problematic. The interpreter -solves this problem by considering values equal if their absolute -difference is less than 0.0001 (this value is defined as -`TOLERANCE_EQUAL` in src/emc/rs274ngc/interp_internal.hh). - -[[sub:Unary-Operation-Value]] -== Functions[[sub:functions]] - -A function is either 'ATAN' followed by one expression divided by -another expression (for - example 'ATAN[2]/[1+3]') or any other function name followed by an -expression (for example 'SIN[90]'). The available functions are -shown in table <>. - Arguments to unary operations which take angle measures ('COS', 'SIN', -and 'TAN' ) are in degrees. Values returned by unary operations which -return -angle measures ('ACOS', 'ASIN', and 'ATAN') are also in degrees. - -.Functions[[cap:Functions]] - -[width="75%", options="header", cols="^,<"] -|======================================== -|Function Name | Function result -|ATAN[Y]/[X] | Four quadrant inverse tangent -|ABS[arg] | Absolute value -|ACOS[arg] | Inverse cosine -|ASIN[arg] | Inverse sine -|COS[arg] | Cosine -|EXP[arg] | e raised to the given power -|FIX[arg] | Round down to integer -|FUP[arg] | Round up to integer -|ROUND[arg] | Round to nearest integer -|LN[arg] | Base-e logarithm -|SIN[arg] | Sine -|SQRT[arg] | Square Root -|TAN[arg] | Tangent -|EXISTS[arg] | Check named Parameter -|======================================== - -The 'FIX' function rounds towards the left (less positive or more -negative) on -a number line, so that 'FIX[2.8] =2' and 'FIX[-2.8] = -3', for -example. The 'FUP' operation rounds towards the right (more positive -or less negative) -on a number line; 'FUP[2.8] = 3' and 'FUP[-2.8] = -2', for example. - -[[EXISTS-Function]]The `EXISTS` function checks for the existence of a single named -parameter. It takes only one named parameter and returns 1 if it -exists and 0 if it does not exist. It is an error if you use a -numbered parameter or an expression. Here is an example for the usage -of the EXISTS function: - -[source,{ngc}] ---------------------------------------------------------------------- -o sub -o10 if [EXISTS[#<_global>]] - (debug, _global exists and has the value #<_global>) -o10 else - (debug, _global does not exist) -o10 endif -o endsub - -o call -#<_global> = 4711 -o call -m2 ---------------------------------------------------------------------- - -== Repeated Items - -A line may have any number of G words, but two G words from the same -modal group may not appear on the -same line See the <> Section for more information. - -A line may have zero to four M words. Two M words from the same modal -group may not appear on the same line. - -For all other legal letters, a line may have only one word beginning -with that letter. - -If a parameter setting of the same parameter is repeated on a line, -'#3=15 #3=6', for example, only the last setting will take effect. -It is silly, -but not illegal, to set the same parameter twice on the same line. - -If more than one comment appears on a line, only the last one will be -used; each of the other comments will be read and its format will be -checked, but it will be ignored thereafter. It is expected that putting -more than one comment on a line will be very rare. - -== Item order - -The three types of item whose order may vary on a line (as given at -the beginning of this section) are word, parameter setting, and -comment. Imagine that these three types of item are divided into three -groups by type. - -The first group (the words) may be reordered in any way without -changing the meaning of the line. - -If the second group (the parameter settings) is reordered, there will -be no change in the meaning of the line unless the same parameter is -set more than once. In this case, only the last setting of the -parameter will take effect. For example, after the line '#3=15 #3=6' -has been interpreted, the value of parameter 3 will be 6. If the - order is reversed to '#3=6 #3=15' and the line is interpreted, the -value of parameter 3 will be 15. - -If the third group (the comments) contains more than one comment and -is reordered, only the last comment will be used. - -If each group is kept in order or reordered without changing the -meaning of the line, then the three groups may be interleaved in any -way without changing the meaning of the line. For example, the line -'g40 g1 #3=15 (foo) #4=-7.0' has five items and means exactly the -same thing in any of the 120 - possible orders (such as '#4=-7.0 g1 #3=15 g40 (foo)') for the five -items. - -== Commands and Machine Modes - -Many commands cause the controller to change from one mode to another, -and the mode stays active until some other command changes it -implicitly or explicitly. Such commands are called 'modal'. For -example, if coolant is turned on, it stays on until it is explicitly -turned off. The G codes for motion are also modal. If a G1 (straight -move) command is given on one line, for example, it will be executed -again on the next line if one or more axis words is available on the -line, unless an explicit command is given on that next line using the -axis words or canceling motion. - -'Non-modal' codes have effect only on the lines on which they occur. -For example, G4 (dwell) is non-modal. - -== Polar Coordinates -(((Polar Coordinates))) - -Polar Coordinates can be used to specify the XY coordinate of a move. -The @n is the distance and ^n is the angle. The advantage of this is -for things like bolt hole circles which can be done very simply by -moving to a point in the center of the circle, setting the offset and -then moving out to the first hole then run the drill cycle. -Polar Coordinates always are from the current XY zero position. -To shift the Polar Coordinates from machine zero use an offset -or select a coordinate system. - -In Absolute Mode the distance and angle is from the XY zero position -and the angle starts with 0 on the X Positive axis and increases in a CCW -direction about the Z axis. The code G1 @1^90 is the same as G1 Y1. - -In Relative Mode the distance and angle is also from the XY zero -position but it is cumulative. -This can be confusing at first how this works in incremental mode. - -For example if you have the following program you might expect it to -be a square pattern. - ----- -F100 G1 @.5 ^90 -G91 @.5 ^90 -@.5 ^90 -@.5 ^90 -@.5 ^90 -G90 G0 X0 Y0 M2 ----- - -You can see from the following figure that the output is not what you -might expect. Because we added 0.5 to the distance each time the -distance from the XY zero position increased with each line. - -.Polar Spiral[[fig:Polar-Spiral]] - -image::images/polar01.png[align="center"] - -The following code will produce our square pattern. - ----- -F100 G1 @.5 ^90 -G91 ^90 -^90 -^90 -^90 -G90 G0 X0 Y0 M2 ----- - -As you can see by only adding to the angle by 90 degrees each time the -end point distance is the same for each line. - -.Polar Square[[fig:Polar-Square]] - -image::images/polar02.png[align="center"] - -It is an error if: - -* An incremental move is started at the origin -* A mix of Polar and and X or Y words are used - - -[[sec:Modal-Groups]] -== Modal Groups -(((Modal Groups))) - -Modal commands are arranged in sets called 'modal groups', and only -one member of a modal group may be in force at any given time. In -general, a modal group contains commands for which it is logically -impossible for two members to be in effect at the same time - like -measure in inches vs. measure in millimeters. A machining center may be -in many modes at the same time, with one mode from each modal group -being in effect. The modal groups are shown in the following Table. - -.G-Code Modal Groups[[cap:Modal-Groups]] - -[width="100%", cols="4,6", options="header"] -|======================================== -|Modal Group Meaning | Member Words -|Non-modal codes (Group 0) | G4, G10 G28, G30, G53 G92, G92.1, G92.2, G92.3, -.2+|Motion (Group 1) | G0, G1, G2, G3, G33, G38.x, G73, G76, G80, G81 - | G82, G83, G84, G85, G86, G87, G88, G89 -|Plane selection (Group 2) | G17, G18, G19, G17.1, G18.1, G19.1 -|Distance Mode (Group 3) | G90, G91 -|Arc IJK Distance Mode (Group 4) | G90.1, G91.1 -|Feed Rate Mode (Group 5) | G93, G94, G95 -|Units (Group 6) | G20, G21 -|Cutter Diameter Compensation (Group 7)| G40, G41, G42, G41.1, G42.1 -|Tool Length Offset (Group 8) | G43, G43.1, G49 -|Canned Cycles Return Mode (Group 10) | G98, G99 -|Coordinate System (Group 12) | G54, G55, G56, G57, G58, G59, G59.1, G59.2, G59.3 -|Control Mode (Group 13) | G61, G61.1, G64 -|Spindle Speed Mode (Group 14) | G96, G97 -|Lathe Diameter Mode (Group 15) | G7, G8 -|======================================== - -.M-Code Modal Groups[[tbl:m-modal-groups]] - -[width="80%", cols="4,6", options="header"] -|======================================== -|Modal Group Meaning | Member Words -|Stopping (Group 4) | M0, M1, M2, M30, M60 -|I/O on/off (Group 5) | M6 Tn -|Tool Change (Group 6) | M6 Tn -|Spindle (Group 7) | M3, M4, M5 -|Coolant (Group 8) | (M7 M8 can both be on), M9 -|Override Switches (Group 9) | M48, M49 -|User Defined (Group 10) |M100-M199 -|======================================== - -For several modal groups, when a machining center is ready to accept -commands, one member of the group must be in effect. There are default -settings for these modal groups. When the machining center is turned on -or otherwise re-initialized, the default values are automatically in -effect. - -Group 1, the first group on the table, is a group of G codes for -motion. One of these is always in effect. That one is called the -current motion mode. - -It is an error to put a G-code from group 1 and a G-code from group 0 -on the same line if both of them use axis words. If an axis word-using -G-code from group 1 is implicitly in effect on a line (by having been -activated on an earlier line), and a group 0 G-code that uses axis -words appears on the line, the activity of the group 1 G-code is -suspended for that line. The axis word-using G-codes from group 0 are -G10, G28, G30, and G92. - -It is an error to include any unrelated words on a line with 'O-' flow -control. - -[[sec:comments]] -== Comments - -Comments can be added to lines of G code to help clear up the -intention of the programmer. Comments can be embedded in a line using -parentheses () or for the remainder of a line using a semi-colon. The -semi-colon is not treated as the start of a comment when enclosed in -parentheses. - -Comments may appear between words, but not between words and their -corresponding parameter. So, 'S100(set speed)F200(feed)' is OK while -'S(speed)100F(feed)' is not. - -[source,{ngc}] ---------------------------------------------------------------------- -G0 (Rapid to start) X1 Y1 -G0 X1 Y1 (Rapid to start; but don't forget the coolant) -M2 ; End of program. ---------------------------------------------------------------------- - -There are several 'active' comments which look like comments but cause -some action, like '(debug,..)' or '(print,..)'. If there are -several comments on a line, only the last comment will be interpreted -according to these rules. Hence, a normal comment following an active -comment will in effect disable the active comment. For example, '(foo) -(debug,#1)' will print the value of parameter '#1', however -'(debug,#1)(foo)' will not. - -A comment introduced by a semicolon is by definition the last comment -on that line, and will always be interpreted for active comment syntax. - -[[sec:messages]] -== Messages -(((Messages))) - -* '(MSG,)' - displays message if 'MSG' appears after the left - parenthesis and before any other printing characters. - Variants of 'MSG' which include white space and lower case - characters are allowed. The rest of the characters before - the right parenthesis are considered to be a message. - Messages should be displayed on the message display device - of the user interface if provided. - -.Message Example ----- -(MSG, This is a message) ----- - -[[sec:probe-logging]] -== Probe Logging -(((Probe Logging))) - -* '(PROBEOPEN filename.txt)' - will open filename.txt and store the 9-number - coordinate consisting of XYZABCUVW of each - successful straight probe in it. -* '(PROBECLOSE)' - will close the open probelog file. - -For more information on probing see the <> Section. - -[[sec:log]] -== Logging -(((Logging))) - -* '(LOGOPEN,filename.txt)' - opens the named log file. If the file - already exists, it is truncated. - -* '(LOGAPPEND,filename)' - opens the named log file. If the file already - exists, the data is appended. - -* '(LOGCLOSE)' - closes an open log file. - -* '(LOG,)' - everything past the ',' is written to the log file if it is open. - Supports expansion of parameters as described below. - -[[sec:debug-messages]] -== Debug Messages -(((Debug Messages))) - -* '(DEBUG,)' - displays a message like '(MSG,)' with the addition of - special handling for comment parameters as described below. - -[[sec:print-messages]] -== Print Messages -(((Print Messages))) - -* '(PRINT,)' - messages are output to 'stderr' with special handling - for comment parameters as described below. - -== Comment Parameters - -In the DEBUG, PRINT and LOG comments, the values of parameters in the -message are expanded. - -For example: to print a named global variable to stderr (the default -console window) add a line to your G code like... - -.Parameters Example ----- -(print,endmill dia = #<_endmill_dia>) -(print,value of variable 123 is: #123) ----- - -Inside the above types of comments, sequences like '\#123' are replaced -by the value of the parameter 123. Sequences like '\#' -are replaced by the value of the named parameter. Named parameters -will have white space removed from them. So, '\#' -will be converted to '#'. - -== File Requirements - -A G code file must contain one or more lines of G code and be terminated -with a <>. Any G code past the program end -is not evaluated. - -If a program end code is not used a pair of percent signs '%' with the first -percent sign on the first line of the file followed by one or more lines of -G code and a second percent sign. Any code past the second percent sign is not -evaluated. - -[NOTE] -The file must be created with a text editor like Gedit and not a word -processor like Open Office Word Processor. - -== File Size - -The interpreter and task are carefully written so that the only limit -on part program size is disk capacity. The TkLinuxCNC and Axis interface -both load the program text to display it to the user, though, so RAM -becomes a limiting factor. In Axis, because the preview plot is drawn -by default, the redraw time also becomes a practical limit on program -size. The preview can be turned off in Axis to speed up loading large -part programs. In Axis sections of the preview can be turned off using -<> comments. - -[[sec:Order-of-Execution]] -== G Code Order of Execution -(((G Code Order of Execution))) - -The order of execution of items on a line is defined not by the -position of each item on the line, but by the following list: - -* O-word commands (optionally followed by a comment but no other words allowed on the same line) -* Comment (including message) -* Set feed rate mode (G93, G94). -* Set feed rate (F). -* Set spindle speed (S). -* Select tool (T). -* HAL pin I/O (M62-M68). -* Change tool (M6) and Set Tool Number (M61). -* Spindle on or off (M3, M4, M5). -* Save State (M70, M73), Restore State (M72), Invalidate State (M71). -* Coolant on or off (M7, M8, M9). -* Enable or disable overrides (M48, M49,M50,M51,M52,M53). -* User-defined Commands (M100-M199). -* Dwell (G4). -* Set active plane (G17, G18, G19). -* Set length units (G20, G21). -* Cutter radius compensation on or off (G40, G41, G42) -* Cutter length compensation on or off (G43, G49) -* Coordinate system selection (G54, G55, G56, G57, G58, G59, G59.1, G59.2, G59.3). -* Set path control mode (G61, G61.1, G64) -* Set distance mode (G90, G91). -* Set retract mode (G98, G99). -* Go to reference location (G28, G30) or change coordinate system - data (G10) or set axis offsets (G92, G92.1, G92.2, G94). -* Perform motion (G0 to G3, G33, G38.x, G73, G76, G80 to G89), as modified (possibly) by G53. -* Stop (M0, M1, M2, M30, M60). - -== G Code Best Practices -(((G Code Best Practices))) - -=== Use an appropriate decimal precision - -Use at least 3 digits after the decimal when milling in millimeters, -and at least 4 digits after the decimal when milling in inches. - -=== Use consistent white space - -G-code is most legible when at least one space appears before words. -While it is permitted to insert white space in the middle of numbers, -there is no reason to do so. - -=== Use Center-format arcs - -Center-format arcs (which use 'I- J- K-' instead of 'R-' ) behave more -consistently than R-format arcs, particularly for -included angles near 180 or 360 degrees. - -=== Put important modal settings at the top of the file - -When correct execution of your program depends on modal settings, be -sure to set them at the beginning of the part program. Modes can carry -over from previous programs and from the MDI commands. - -As a good preventative measure, put a line similar to the following at -the top of all your programs: - -[source,{ngc}] ---------------------------------------------------------------------- - G17 G20 G40 G49 G54 G80 G90 G94 ---------------------------------------------------------------------- - -(XY plane, inch mode, cancel diameter compensation, cancel length -offset, coordinate system 1, cancel motion, non-incremental motion, -feed/minute mode) - -Perhaps the most critical modal setting is the distance units--If you -do not include G20 or G21, then different machines will mill the -program at different scales. Other settings, such as the return mode in -canned cycles may also be important. - -=== Don't put too many things on one line - -Ignore everything in Section <>, and instead -write no line of code that is the slightest bit ambiguous. - -=== Don't set & use a parameter on the same line - -Don't use and set a parameter on the same line, even though the -semantics are well defined. Updating a variable to a new value, such as -'#1=[#1+#2]' is OK. - -=== Don't use line numbers - -Line numbers offer no benefits. When line numbers are reported in -error messages, the numbers refer to the line number in the file, not -the N-word value. - -== Linear and Rotary Axis - -Because the meaning of an F-word in feed-per-minute mode varies -depending on which axes are commanded to move, and because the amount -of material removed does not depend only on the feed rate, it may be -easier to use G93 inverse time feed mode to achieve the desired -material removal rate. - - -== Common Error Messages - -* 'G code out of range' - A G code greater than G99 was used, the scope of G - codes in LinuxCNC is 0 - 99. Not every number between 0 and 99 is a valid - G code. -* 'Unknown g code used' - A G code was used that is not part of the LinuxCNC - G code language. -* 'i,j,k word with no Gx to use it' - i, j and k words must be used on the same - line as the G code. -* 'Cannot use axis values without a g code that uses them' - Axis values can - not be used on a line without either a modal G code in effect or a G code - on the same line. -* 'File ended with no percent sign or program end' - Every G code file must - end in a M2 or M30 or be wrapped with the percent sign %. - -[appendix] -= Numbered Parameters persistence -[[var_file_format]] - -The values of parameters in the persistent range are retained over -time, even if the machining center is powered down. LinuxCNC uses a -parameter file to ensure persistence. It is managed by the -Interpreter. The Interpreter reads the file when it starts up, and -writes the file when it exits. - -The format of a parameter file is shown in Table -<>. - -The Interpreter expects the file to have two columns. It skips any -lines which do not contain exactly two numeric values. The first -column is expected to contain an integer value (the parameter's -number). The second column contains a floating point number (this -parameter's last value). The value is represented as a -double-precision floating point number inside the Interpreter, but a -decimal point is not required in the file. - -Parameters in the user-defined range (31-5000) may be added to this -file. Such parameters will be read by the Interpreter and written to -the file as it exits. - -Missing Parameters in the persistent range will be initialized to zero -and written with their current values on the next save operation. - -The parameter numbers must be arranged in ascending order. An -`Parameter file out of order` error will be signaled if they are not in -ascending order. - -The original file is saved as a backup file when the new file -is written. - -.Parameter File Format[[sec:format-parameter-file]] - -[width="90%", options="header"] -|======================================== -|Parameter Number | Parameter Value -|5161 | 0.0 -|5162 | 0.0 -|======================================== - - - - - - - - - - - diff --git a/docs/src/gcode/overview_es.txt b/docs/src/gcode/overview_es.txt deleted file mode 100644 index a5e06957920..00000000000 --- a/docs/src/gcode/overview_es.txt +++ /dev/null @@ -1,892 +0,0 @@ -= G Code Overview - -[[cha:g-code-overview]] (((G Code Overview))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Overview - -The LinuxCNC G Code language is based on the RS274/NGC language. The G -Code language is based on lines of code. Each line (also called a -'block') may include commands to do several different things. Lines of -code may be collected in a file to make a program. - -A typical line of code consists of an optional line number at the -beginning followed by one or more 'words'. A word consists of a letter -followed by a number (or something that evaluates to a number). A word -may either give a command or provide an argument to a command. For -example, 'G1 X3' is a valid line of code with two words. 'G1' is a -command meaning 'move in a straight line at the programmed feed -rate to the programmed end point', and 'X3' provides an argument -value (the value of X should be 3 at the end of the move). -Most LinuxCNC G Code commands start with either G or M (for -General and Miscellaneous). The words for these commands are called 'G -codes' and 'M codes.' - -The LinuxCNC language has no indicator for the start of a program. The -Interpreter, however, deals with files. A single program may be in a -single file, or a program may be spread across several files. A file -may demarcated with percents in the following way. The first non-blank -line of a file may contain nothing but a percent sign, '%', possibly -surrounded by white space, and later in the file (normally at the end -of the file) there may be a similar line. Demarcating a file with -percents is optional if the file has an 'M2' or 'M30' in it, but is -required if not. An error will be signaled if a file -has a percent line at the beginning but not at the end. The useful -contents of a file demarcated by percents stop after the second percent -line. Anything after that is ignored. - -The LinuxCNC G Code language has two commands ('M2' or 'M30'), either of -which ends a program. A program may end before the end of -a file. Lines of a file that occur after the end of a program are not -to be executed. The interpreter does not even read them. - -== Format of a line - -A permissible line of input code consists of the following, in order, -with the restriction that there is a maximum (currently 256) to the -number of characters allowed on a line. - -. an optional block delete character, which is a slash '/'. -. an optional line number. -. any number of words, parameter settings, and comments. -. an end of line marker (carriage return or line feed or both). - -Any input not explicitly allowed is illegal and will cause the -Interpreter to signal an error. - -Spaces and tabs are allowed anywhere on a line of code and do not -change the meaning of the line, except inside comments. This makes some -strange-looking input legal. The line 'G0X +0. 12 34Y 7' is -equivalent to 'G0 x+0.1234 Y7', for example. - -Blank lines are allowed in the input. They are to be ignored. - -Input is case insensitive, except in comments, i.e., any letter -outside a comment may be in upper or lower case without changing the -meaning of a line. - -== Block Delete [[sub:block-delete]] (((Block Delete))) - -The optional block delete character the slash '/' when placed first on a line -can be used by some user interfaces to skip lines of code when needed. In Axis -the key combination Alt-m-/ toggles block delete on and off. When block delete -is on any lines starting with the slash '/' are skipped. - -== Line Number -(((Line Number))) - -A line number is the letter N followed by an unsigned integer. Line -numbers may be repeated or used out of order, although normal practice -is to avoid such usage. Line numbers may also be skipped, and that is -normal practice. A line number is not required to be used, but must be -in the proper place if used. - -== Word -(((Word))) - -A word is a letter other than N followed by a real value. - -Words may begin with any of the letters shown in the following Table. -The table includes N for completeness, even -though, as defined above, line numbers are not words. Several letters -(I, J, K, L, P, R) may have different meanings in different contexts. -Letters which refer to axis names are not valid on a machine which does -not have the corresponding axis. - -.Words and their meanings[[cap:Words-and-their]] - -[width="75%", options="header", cols="^1,<5"] -|======================================== -|Letter | Meaning -|A |A axis of machine -|B |B axis of machine -|C |C axis of machine -|D |Tool radius compensation number -|F |Feed rate -|G |General function (See table <>) -|H |Tool length offset index -|I |X offset for arcs and G87 canned cycles -|J |Y offset for arcs and G87 canned cycles -.2+|K |Z offset for arcs and G87 canned cycles. -<|Spindle-Motion Ratio for G33 synchronized movements. -|M |Miscellaneous function (See table <>) -|N |Line number -.2+|P |Dwell time in canned cycles and with G4. -<|Key used with G10. -|Q |Feed increment in G73, G83 canned cycles -|R |Arc radius or canned cycle plane -|S |Spindle speed -|T |Tool selection -|U |U axis of machine -|V |V axis of machine -|W |W axis of machine -|X |X axis of machine -|Y |Y axis of machine -|Z |Z axis of machine -|======================================== - -[[sub:Number]] -== Number - -The following rules are used for (explicit) numbers. In these rules a -digit is a single character between 0 and 9. - -* A number consists of (1) an optional plus or minus sign, followed by - (2) zero to many digits, followed, possibly, by (3) one decimal point, - followed by (4) zero to many digits - provided that there is at least - one digit somewhere in the number. -* There are two kinds of numbers: integers and decimals. An integer does - not have a decimal point in it; a decimal does. -* Numbers may have any number of digits, subject to the limitation on - line length. Only about seventeen significant figures will be retained, - however (enough for all known applications). -* A non-zero number with no sign as the first character is assumed to be - positive. - -Notice that initial (before the decimal point and the first non-zero -digit) and trailing (after the decimal point and the last non-zero -digit) zeros are allowed but not required. A number written with -initial or trailing zeros will have the same value when it is read as -if the extra zeros were not there. - -Numbers used for specific purposes in RS274/NGC are often restricted -to some finite set of values or some to some range of values. In many -uses, decimal numbers must be close to integers; this includes the -values of indexes (for parameters and carousel slot numbers, for -example), M codes, and G codes multiplied by ten. A decimal number -which is supposed be close to an integer is considered close enough if -it is within 0.0001 of an integer. - - -== Parameters (Variables)[[sec:parameters]](((Parameters))) - -The RS274/NGC language supports 'parameters' - what in other -programming languages would be called 'variables'. There are several -types of parameter of different purpose and appearance, each described -in the following sections. The only value type supported by parameters -is floating-point; there are no string, boolean or integer types in -G-code like in other programming languages. However, logic expressions -can be formulated with <> -( 'AND', 'OR', 'XOR', and the comparison operators -'EQ','NE','GT','GE','LT','LE'), and the 'MOD', 'ROUND', 'FUP' and -'FIX' <> support integer arithmetic. - -Parameters differ in syntax, scope, behavior when not yet -initialized, mode, persistence and intended use. - -Syntax:: There are three kinds of syntactic appearance: -* 'numbered' - #4711 -* 'named local' - # -* 'named global' - #<_globalvalue> - -Scope:: The scope of a parameter is either global, or local within a -subroutine. Subroutine parameters and local named variables have local -scope. Global named parameters and numbered parameters starting from -number 31 are global in scope. RS274/NGC uses 'lexical scoping' - -in a subroutine only the local variables defined therein, and any -global variables are visible. The local variables of a -calling procedure are not visible in a called procedure. - -Behavior of uninitialized parameters:: - . unitialized global parameters, and unused subroutine parameters - return the value zero when used in an expression. - . unitialized named parameters signal an error when used in an expression. - -Mode:: Most parameters are read/write and may be assigned to -within an assignment statement. However, for many predefined -parameters this does not make sense, so they are are read-only - they -may appear in expressions, but not on the left-hand side of an -assignment statement. - -Persistence:: When LinuxCNC is shut down, volatile parameters lose their -values. All parameters except numbered parameters in the current -persistent range footnoteref:[persistent range,The range of persistent -parameters may change as development progresses. This range is -currently 5161- 5390. It is defined in the '_required_parameters array' -in file the src/emc/rs274ngc/interp_array.cc .] are volatile. -Persistent parameters are saved in the .var file and -restored to their previous values when LinuxCNC is started again. Volatile -numbered parameters are reset to zero. - -Intended Use:: - . user parameters:: numbered parameters in the range 31..5000, and named -global and local parameters except predefined parameters. These are -available for general-purpose storage of floating-point values, like -intermediate results, flags etc, throughout program execution. They -are read/write (can be assigned a value). - . <> - these are used to hold the actual parameters -passed to a subroutine. - . <> - most of these are used to access offsets of -coordinate systems. - . <> - used to determine the current - running version. They are read-only. - - -=== Numbered Parameters [[sub:numbered-parameters]] - -A numbered parameter is the pound character '#' followed by an -integer between 1 and 5399. The parameter is referred -to by this integer, and its value is whatever number is stored in the -parameter. - -A value is stored in a parameter with the = operator; for example: ----- -#3 = 15 (set parameter 3 to 15) ----- - -A parameter setting does not take -effect until after all parameter values on the same line have been -found. For example, if parameter 3 has been previously set to 15 and - the line '#3=6 G1 X#3' is interpreted, a straight move to a point -where X equals 15 will -occur and the value of parameter 3 will be 6. - -The '#' character takes precedence over other operations, so that, for - example, '#1+2' means the number found by adding 2 to the value of -parameter 1, not - the value found in parameter 3. Of course, '#[1+2]' does mean the -value found in parameter 3. The '#' character may be repeated; for -example '##2' means the value of the parameter whose index is the -(integer) value of parameter 2. - -The interpreter maintains a number of read-only parameters for a loaded -tool: - -* '1-30' - Subroutine local parameters of call arguments. These parameters are - local to the subroutine. See the <> Section. -* '1-5000' - G-Code user parameters. These parameters are global in the G Code file. -* '5061-5070' - Result of 'G38.2' Probe (X Y Z A B C U V W) -* '5161-5169' - 'G28' Home for (X Y Z A B C U V W) -* '5181-5189' - 'G30' Home for (X Y Z A B C U V W) -* '5211-5219' - 'G92' offset (X Y Z A B C U V W) -* '5220' - Current Coordinate System number 1 - 9 for G54 - G59.3 -* '5221-5229' - Coordinate System 1, G54 (X Y Z A B C U V W) -* '5241-5249' - Coordinate System 2, G55 (X Y Z A B C U V W) -* '5261-5269' - Coordinate System 3, G56 (X Y Z A B C U V W) -* '5281-5289' - Coordinate System 4, G57 (X Y Z A B C U V W) -* '5301-5309' - Coordinate System 5, G58 (X Y Z A B C U V W) -* '5321-5329' - Coordinate System 6, G59 (X Y Z A B C U V W) -* '5341-5349' - Coordinate System 7, G59.1 (X Y Z A B C U V W) -* '5361-5369' - Coordinate System 8, G59.2 (X Y Z A B C U V W) -* '5381-5389' - Coordinate System 9, G59.3 (X Y Z A B C U V W) -* '5399' - Result of M66 - Check or wait for input -* '5400' - Current Tool Number -* '5401-5409' - Tool Offset (X Y Z A B C U V W) -* '5410' - Current Tool Diameter -* '5411' - Current Tool Front Angle -* '5412' - Current Tool Back Angle -* '5413' - Current Tool Orientation -* '5420-5428' - Current Position including offsets in current program - units (X Y Z A B C U V W) - -=== Subroutine Parameters [[sub:subroutine-parameters]] - -1-30:: - Subroutine local parameters of call arguments. These parameters are - local to the subroutine. Volatile. See also the chapter on <>. - - -[[sub:Named-Parameters]] -=== Named Parameters - -Named parameters work like numbered parameters but are easier to read. -All parameter names are converted to lower case and have spaces and -tabs removed. Named parameters must be enclosed with '< >' marks. - -'#' is a local named parameter. By default, a -named parameter is local to -the scope in which it is assigned. You can't access a local parameter -outside of its subroutine - this is so that two subroutines can use the -same parameter names without fear of one subroutine overwriting the -values in another. - -'#<_global named parameter here>' is a global named parameter. They -are accessible from within called -subroutines and may set values within subroutines that are accessible -to the caller. As far as scope is concerned, they act just like regular -numeric parameters. They are not stored in files. - -Examples: - -* Declaration of named global variable - ----- -#<_endmill_dia> = 0.049 ----- - -* Reference to previously declared global variable - ----- -#<_endmill_rad> = [#<_endmill_dia>/2.0] ----- - -* Mixed literal and named parameters - ----- -o100 call [0.0] [0.0] [#<_inside_cutout>-#<_endmill_dia>] [#<_Zcut>] [#<_feedrate>] ----- - -Notes: - -The global parameters _a, _b, _c, ... _z have been reserved for -special use. In the future, they may provide access to the last A word, -B word, C word, etc. - -[[sub:system-parameters]] -=== System Parameters - -Two global read only named parameters are available to check which -version is running from G Code. - -* '#<_vmajor>' - Major package version. If current version was 2.5.2 would return 2.5. - -* '#<_vminor>' - Minor package version. If current version was 2.5.2 would return 0.2. - -[[sec:Expressions]] -== Expressions - -An expression is a set of characters starting with a left bracket '[' -and ending with a balancing right bracket ']' . In between the brackets -are numbers, parameter values, mathematical -operations, and other expressions. An expression is evaluated to -produce a number. The expressions on a line are evaluated when the line -is read, before anything on the line is executed. An example of an -expression is '[1 + acos[0] - [#3 ** [4.0/2]]]'. - -[[sec:Binary-Operators]] -== Binary Operators - -Binary operators only appear inside expressions. There are four basic -mathematical operations: addition ('+'), subtraction ('-'), -multiplication ('\*'), and division ('/'). There are three logical -operations: non-exclusive or ('OR'), exclusive or ('XOR'), and logical -and ('AND'). The eighth operation is the modulus operation ('MOD'). The -ninth operation is the 'power' operation ('**') of raising the number -on the left of the operation to the power on - the right. The relational operators are equality ('EQ'), inequality -('NE'), strictly greater than ('GT'), greater than or equal to ('GE'), -strictly less than ('LT'), and less than or equal to ('LE'). - -The binary operations are divided into several groups according to -their precedence. (see table <>) If -operations in different precedence groups are strung together (for -example in the expression '[2.0 / 3 * 1.5 - 5.5 / 11.0]'), operations -in a higher group are to be performed before operations -in a lower group. If an expression contains more than one operation - from the same group (such as the first '/' and '*' in the example), -the operation on the left is performed first. Thus, - the example is equivalent to: '[ [ [2.0 / 3] * 1.5] - [5.5 / 11.0] ]' , -which is equivalent to to '[1.0 - 0.5]' , which is '0.5'. - -The logical operations and modulus are to be performed on any real -numbers, not just on integers. The number zero is equivalent to logical -false, and any non-zero number is equivalent to logical true. - -.Operator Precedence[[cap:Operator-Precedence]](((operator precedence))) - -[width="60%", options="header", cols="2*^"] -|======================================== -|Operators | Precedence -|** | 'highest' -|* / MOD | -|+ - | -|EQ NE GT GE LT LE | -|AND OR XOR | 'lowest' -|======================================== - -[[sub:Unary-Operation-Value]] -== Functions[[sub:functions]] - -A function is either 'ATAN' followed by one expression divided by -another expression (for - example 'ATAN[2]/[1+3]') or any other function name followed by an -expression (for example 'SIN[90]'). The available functions are -shown in table <>. - Arguments to unary operations which take angle measures ('COS', 'SIN', -and 'TAN' ) are in degrees. Values returned by unary operations which -return -angle measures ('ACOS', 'ASIN', and 'ATAN') are also in degrees. - -.Functions[[cap:Functions]] - -[width="75%", options="header", cols="^,<"] -|======================================== -|Function Name | Function result -|ATAN[Y]/[X] | Four quadrant inverse tangent -|ABS[arg] | Absolute value -|ACOS[arg] | Inverse cosine -|ASIN[arg] | Inverse sine -|COS[arg] | Cosine -|EXP[arg] | e raised to the given power -|FIX[arg] | Round down to integer -|FUP[arg] | Round up to integer -|ROUND[arg] | Round to nearest integer -|LN[arg] | Base-e logarithm -|SIN[arg] | Sine -|SQRT[arg] | Square Root -|TAN[arg] | Tangent -|EXISTS[arg] | Check named Parameter -|======================================== - -The 'FIX' function rounds towards the left (less positive or more -negative) on -a number line, so that 'FIX[2.8] =2' and 'FIX[-2.8] = -3', for -example. The 'FUP' operation rounds towards the right (more positive -or less negative) -on a number line; 'FUP[2.8] = 3' and 'FUP[-2.8] = -2', for example. - -The EXISTS function checks for the existence of a single named -parameter. It takes only one named parameter and returns 1 if it exists -and 0 if it does not exist. It is an error if you use a numbered -parameter or an expression. - -== Repeated Items - -A line may have any number of G words, but two G words from the same -modal group may not appear on the -same line See the <> Section for more information. - -A line may have zero to four M words. Two M words from the same modal -group may not appear on the same line. - -For all other legal letters, a line may have only one word beginning -with that letter. - -If a parameter setting of the same parameter is repeated on a line, -'#3=15 #3=6', for example, only the last setting will take effect. -It is silly, -but not illegal, to set the same parameter twice on the same line. - -If more than one comment appears on a line, only the last one will be -used; each of the other comments will be read and its format will be -checked, but it will be ignored thereafter. It is expected that putting -more than one comment on a line will be very rare. - -== Item order - -The three types of item whose order may vary on a line (as given at -the beginning of this section) are word, parameter setting, and -comment. Imagine that these three types of item are divided into three -groups by type. - -The first group (the words) may be reordered in any way without -changing the meaning of the line. - -If the second group (the parameter settings) is reordered, there will -be no change in the meaning of the line unless the same parameter is -set more than once. In this case, only the last setting of the -parameter will take effect. For example, after the line '#3=15 #3=6' -has been interpreted, the value of parameter 3 will be 6. If the - order is reversed to '#3=6 #3=15' and the line is interpreted, the -value of parameter 3 will be 15. - -If the third group (the comments) contains more than one comment and -is reordered, only the last comment will be used. - -If each group is kept in order or reordered without changing the -meaning of the line, then the three groups may be interleaved in any -way without changing the meaning of the line. For example, the line -'g40 g1 #3=15 (foo) #4=-7.0' has five items and means exactly the -same thing in any of the 120 - possible orders (such as '#4=-7.0 g1 #3=15 g40 (foo)') for the five -items. - -== Commands and Machine Modes - -Many commands cause the controller to change from one mode to another, -and the mode stays active until some other command changes it -implicitly or explicitly. Such commands are called 'modal'. For -example, if coolant is turned on, it stays on until it is explicitly -turned off. The G codes for motion are also modal. If a G1 (straight -move) command is given on one line, for example, it will be executed -again on the next line if one or more axis words is available on the -line, unless an explicit command is given on that next line using the -axis words or canceling motion. - -'Non-modal' codes have effect only on the lines on which they occur. -For example, G4 (dwell) is non-modal. - -== Polar Coordinates -(((Polar Coordinates))) - -Polar Coordinates can be used to specify the XY coordinate of a move. -The @n is the distance and ^n is the angle. The advantage of this is -for things like bolt hole circles which can be done very simply by -moving to a point in the center of the circle, setting the offset and -then moving out to the first hole then run the drill cycle. -Polar Coordinates always are from the current XY zero position. -To shift the Polar Coordinates from machine zero use an offset -or select a coordinate system. - -In Absolute Mode the distance and angle is from the XY zero position -and the angle starts with 0 on the X Positive axis and increases in a CCW -direction about the Z axis. The code G1 @1^90 is the same as G1 Y1. - -In Relative Mode the distance and angle is also from the XY zero -position but it is cumulative. -This can be confusing at first how this works in incremental mode. - -For example if you have the following program you might expect it to -be a square pattern. - ----- -F100 G1 @.5 ^90 -G91 @.5 ^90 -@.5 ^90 -@.5 ^90 -@.5 ^90 -G90 G0 X0 Y0 M2 ----- - -You can see from the following figure that the output is not what you -might expect. Because we added 0.5 to the distance each time the -distance from the XY zero position increased with each line. - -.Polar Spiral[[fig:Polar-Spiral]] - -image::images/polar01.png[align="center"] - -The following code will produce our square pattern. - ----- -F100 G1 @.5 ^90 -G91 ^90 -^90 -^90 -^90 -G90 G0 X0 Y0 M2 ----- - -As you can see by only adding to the angle by 90 degrees each time the -end point distance is the same for each line. - -.Polar Square[[fig:Polar-Square]] - -image::images/polar02.png[align="center"] - -It is an error if: - -* An incremental move is started at the origin -* A mix of Polar and and X or Y words are used - - -[[sec:Modal-Groups]] -== Modal Groups -(((Modal Groups))) - -Modal commands are arranged in sets called 'modal groups', and only -one member of a modal group may be in force at any given time. In -general, a modal group contains commands for which it is logically -impossible for two members to be in effect at the same time - like -measure in inches vs. measure in millimeters. A machining center may be -in many modes at the same time, with one mode from each modal group -being in effect. The modal groups are shown in the following Table. - -.G-Code Modal Groups[[cap:Modal-Groups]] - -[width="100%", cols="4,6", options="header"] -|======================================== -|Modal Group Meaning | Member Words -|Non-modal codes (Group 0) | G4, G10 G28, G30, G53 G92, G92.1, G92.2, G92.3, -.2+|Motion (Group 1) | G0, G1, G2, G3, G33, G38.x, G73, G76, G80, G81 - | G82, G83, G84, G85, G86, G87, G88, G89 -|Plane selection (Group 2) | G17, G18, G19, G17.1, G18.1, G19.1 -|Distance Mode (Group 3) | G90, G91 -|Arc IJK Distance Mode (Group 4) | G90.1, G91.1 -|Feed Rate Mode (Group 5) | G93, G94, G95 -|Units (Group 6) | G20, G21 -|Cutter Diameter Compensation (Group 7)| G40, G41, G42, G41.1, G42.1 -|Tool Length Offset (Group 8) | G43, G43.1, G49 -|Canned Cycles Return Mode (Group 10) | G98, G99 -|Coordinate System (Group 12) | G54, G55, G56, G57, G58, G59, G59.1, G59.2, G59.3 -|Control Mode (Group 13) | G61, G61.1, G64 -|Spindle Speed Mode (Group 14) | G96, G97 -|Lathe Diameter Mode (Group 15) | G7, G8 -|======================================== - -.M-Code Modal Groups[[tbl:m-modal-groups]] - -[width="80%", cols="4,6", options="header"] -|======================================== -|Modal Group Meaning | Member Words -|Stopping (Group 4) | M0, M1, M2, M30, M60 -|I/O on/off (Group 5) | M6 Tn -|Tool Change (Group 6) | M6 Tn -|Spindle (Group 7) | M3, M4, M5 -|Coolant (Group 8) | (M7 M8 can both be on), M9 -|Override Switches (Group 9) | M48, M49 -|User Defined (Group 10) |M100-M199 -|======================================== - -For several modal groups, when a machining center is ready to accept -commands, one member of the group must be in effect. There are default -settings for these modal groups. When the machining center is turned on -or otherwise re-initialized, the default values are automatically in -effect. - -Group 1, the first group on the table, is a group of G codes for -motion. One of these is always in effect. That one is called the -current motion mode. - -It is an error to put a G-code from group 1 and a G-code from group 0 -on the same line if both of them use axis words. If an axis word-using -G-code from group 1 is implicitly in effect on a line (by having been -activated on an earlier line), and a group 0 G-code that uses axis -words appears on the line, the activity of the group 1 G-code is -suspended for that line. The axis word-using G-codes from group 0 are -G10, G28, G30, and G92. - -It is an error to include any unrelated words on a line with 'O-' flow -control. - -== Comments[[sec:comments]] - -Comments can be added to lines of G code to help clear up the -intention of the programmer. Comments can be embedded in a line using -parentheses () or for the remainder of a line using a semi-colon. The -semi-colon is not treated as the start of a comment when enclosed in -parentheses. - -Comments may appear between words, but not between words and their -corresponding parameter. So, 'S100(set speed)F200(feed)' is OK while -'S(speed)100F(feed)' is not. - ----- -G0 (Rapid to start) X1 Y1 -G0 X1 Y1 (Rapid to start; but don't forget the coolant) -M2 ; End of program. ----- - -There are several 'active' comments which look like comments but cause -some action, like '(debug,..)' or '(print,..)'. If there are -several comments on a line, only the last comment will be interpreted -according to these rules. Hence, a normal comment following an active -comment will in effect disable the active comment. For example, '(foo) -(debug,#1)' will print the value of parameter '#1', however -'(debug,#1)(foo)' will not. - -A comment introduced by a semicolon is by definition the last comment -on that line, and will always be interpreted for active comment syntax. - -== Messages[[sec:messages]] -(((Messages))) - -* '(MSG,)' - displays message if 'MSG' appears after the left - parenthesis and before any other printing characters. - Variants of 'MSG' which include white space and lower case - characters are allowed. The rest of the characters before - the right parenthesis are considered to be a message. - Messages should be displayed on the message display device - of the user interface if provided. - -.Message Example ----- -(MSG, This is a message) ----- - -== Probe Logging[[sec:probe-logging]] -(((Probe Logging))) - -* '(PROBEOPEN filename.txt)' - will open filename.txt and store the 9-number - coordinate consisting of XYZABCUVW of each - successful straight probe in it. -* '(PROBECLOSE)' - will close the open probelog file. - -For more information on probing see the <> Section. - -== Logging[[sec:log]] -(((Logging))) - -* '(LOGOPEN,filename.txt)' - opens the named log file. If the file - already exists, it is truncated. - -* '(LOGAPPEND,filename)' - opens the named log file. If the file already - exists, the data is appended. - -* '(LOGCLOSE)' - closes an open log file. - -* '(LOG,)' - everything past the ',' is written to the log file if it is open. - Supports expansion of parameters as described below. - -== Debug Messages[[sec:debug-messages]] -(((Debug Messages))) - -* '(DEBUG,)' - displays a message like '(MSG,)' with the addition of - special handling for comment parameters as described below. - -== Print Messages[[sec:print-messages]] -(((Print Messages))) - -* '(PRINT,)' - messages are output to 'stderr' with special handling - for comment parameters as described below. - -== Comment Parameters - -In the DEBUG, PRINT and LOG comments, the values of parameters in the -message are expanded. - -For example: to print a named global variable to stderr (the default -console window) add a line to your G code like... - -.Parameters Example ----- -(print,endmill dia = #<_endmill_dia>) ----- - -Inside the above types of comments, sequences like '#123' are replaced -by the value of the parameter 123. Sequences like '#' -are replaced by the value of the named parameter. Named parameters -will have white space removed from them. So, '#' -will be converted to '#'. - -== File Requirements - -A G code file must contain one or more lines of G code and be terminated -with a <>. Any G code past the program end -is not evaluated. - -If a program end code is not used a pair of percent signs '%' with the first -percent sign on the first line of the file followed by one or more lines of -G code and a second percent sign. Any code past the second percent sign is not -evaluated. - -[NOTE] -The file must be created with a text editor like Gedit and not a word -processor like Open Office Word Processor. - -== File Size - -The interpreter and task are carefully written so that the only limit -on part program size is disk capacity. The TkLinuxCNC and Axis interface -both load the program text to display it to the user, though, so RAM -becomes a limiting factor. In Axis, because the preview plot is drawn -by default, the redraw time also becomes a practical limit on program -size. The preview can be turned off in Axis to speed up loading large -part programs. In Axis sections of the preview can be turned off using -<> comments. - -== G Code Order of Execution -[[sec:Order-of-Execution]] (((G Code Order of Execution))) - -The order of execution of items on a line is defined not by the -position of each item on the line, but by the following list: - -* Comment (including message) -* Set feed rate mode (G93, G94). -* Set feed rate (F). -* Set spindle speed (S). -* Select tool (T). -* HAL pin I/O (M62-M68). -* Change tool (M6) and Set Tool Number (M61). -* Spindle on or off (M3, M4, M5). -* Save State (M70, M73), Restore State (M72), Invalidate State (M71). -* Coolant on or off (M7, M8, M9). -* Enable or disable overrides (M48, M49,M50,M51,M52,M53). -* User-defined Commands (M100-M199). -* Dwell (G4). -* Set active plane (G17, G18, G19). -* Set length units (G20, G21). -* Cutter radius compensation on or off (G40, G41, G42) -* Cutter length compensation on or off (G43, G49) -* Coordinate system selection (G54, G55, G56, G57, G58, G59, G59.1, G59.2, G59.3). -* Set path control mode (G61, G61.1, G64) -* Set distance mode (G90, G91). -* Set retract mode (G98, G99). -* Go to reference location (G28, G30) or change coordinate system - data (G10) or set axis offsets (G92, G92.1, G92.2, G94). -* Perform motion (G0 to G3, G33, G73, G76, G80 to G89), as modified (possibly) by G53. -* Stop (M0, M1, M2, M30, M60). - -== G Code Best Practices -(((G Code Best Practices))) - -=== Use an appropriate decimal precision - -Use at least 3 digits after the decimal when milling in millimeters, -and at least 4 digits after the decimal when milling in inches. - -=== Use consistent white space - -G-code is most legible when at least one space appears before words. -While it is permitted to insert white space in the middle of numbers, -there is no reason to do so. - -=== Use Center-format arcs - -Center-format arcs (which use 'I- J- K-' instead of 'R-' ) behave more -consistently than R-format arcs, particularly for -included angles near 180 or 360 degrees. - -=== Put important modal settings at the top of the file - -When correct execution of your program depends on modal settings, be -sure to set them at the beginning of the part program. Modes can carry -over from previous programs and from the MDI commands. - -As a good preventative measure, put a line similar to the following at -the top of all your programs: - ----- -G17 G20 G40 G49 G54 G80 G90 G94 ----- - -(XY plane, inch mode, cancel diameter compensation, cancel length -offset, coordinate system 1, cancel motion, non-incremental motion, -feed/minute mode) - -Perhaps the most critical modal setting is the distance units--If you -do not include G20 or G21, then different machines will mill the -program at different scales. Other settings, such as the return mode in -canned cycles may also be important. - -=== Don't put too many things on one line - -Ignore everything in Section <>, and instead -write no line of code that is the slightest bit ambiguous. - -=== Don't set & use a parameter on the same line - -Don't use and set a parameter on the same line, even though the -semantics are well defined. Updating a variable to a new value, such as -'#1=[#1+#2'] is OK. - -=== Don't use line numbers - -Line numbers offer no benefits. When line numbers are reported in -error messages, the numbers refer to the line number in the file, not -the N-word value. - -== Linear and Rotary Axis - -Because the meaning of an F-word in feed-per-minute mode varies -depending on which axes are commanded to move, and because the amount -of material removed does not depend only on the feed rate, it may be -easier to use G93 inverse time feed mode to achieve the desired -material removal rate. - -== Common Error Messages - -* 'G code out of range' - A G code greater than G99 was used, the scope of G - codes in LinuxCNC is 0 - 99. Not every number between 0 and 99 is a valid - G code. -* 'Unknown g code used' - A G code was used that is not part of the LinuxCNC - G code language. -* 'i,j,k word with no Gx to use it' - i, j and k words must be used on the same - line as the G code. -* 'Cannot use axis values without a g code that uses them' - Axis values can - not be used on a line without either a modal G code in effect or a G code - on the same line. -* 'File ended with no percent sign or program end' - Every G code file must - end in a M2 or M30 or be wrapped with the percent sign %. diff --git a/docs/src/gcode/overview_fr.txt b/docs/src/gcode/overview_fr.txt deleted file mode 100644 index 4cdead8101f..00000000000 --- a/docs/src/gcode/overview_fr.txt +++ /dev/null @@ -1,1160 +0,0 @@ -:lang: fr -:toc: - -= Vue générale du langage G-codes de LinuxCNC - -[[cha:Vue-generale-G-code]] (((Vue générale du G-code de LinuxCNC))) - -:ini: {basebackend@docbook:'':ini} -:hal: {basebackend@docbook:'':hal} -:ngc: {basebackend@docbook:'':ngc} -// begin a listing of ini/hal/ngc files like so: -//[source,{ini}] -//[source,{hal}] -//[source,{ngc}] - -== Brève description du G-code de LinuxCNC - -Le G-code est le langage de programmation des machines numériques. Le G-code -utilisé par LinuxCNC est basé sur le langage RS274/NGC. Cette documentation le -décrit de manière exhaustive, c'est donc un gros morceau mais il contient -beaucoup de concepts qui seront assimilés par le lecteur dès la première lecture. -C'est notamment le cas de ce chapitre. Par la suite, l'utilisateur reviendra ici, -d'abord pour chaque détail de création de son G-code, puis plus tard, seulement -pour vérifier la syntaxe des codes les moins courants. Il aura alors perçu la -puissance de ce langage et de LinuxCNC qui le met à profit. - - -== Format des paramètres du G-code - -Le langage G-code est basé sur des lignes de code. Chaque ligne -(également appelée un 'bloc') peut inclure des commandes pour faire -produire diverses actions à la machine. Plusieurs lignes de code -peuvent être regroupées dans un fichier pour créer un programme G-code. - -Une ligne de code typique commence par un numéro de ligne optionnel -suivi par un ou plusieurs 'mots'. Un mot commence par une lettre suivie -d'un nombre (ou quelque chose qui permet d'évaluer un nombre). Un mot -peut, soit donner une commande, soit fournir un argument à une -commande. Par exemple, 'G1 X3' est une ligne de code valide avec deux -mots. 'G1' est une commande qui signifie 'déplaces toi en ligne -droite à la vitesse programmée' et 'X3' fournit la valeur d'argument -(la valeur de X doit être 3 à la fin du mouvement). La plupart des -commandes G-code commencent avec une lettre G ou M -(G pour Général et M pour Miscellaneous (auxiliaire)). -Les termes pour ces commandes sont 'G-codes' et 'M-codes.' - -Le langage G-code(((G-code))) n'a pas d'indicateur de début et de -fin de programme. L'interpréteur cependant traite les fichiers. Un -programme simple peut être en un seul fichier, mais il peut aussi être -partagé sur plusieurs fichiers. Un fichier peut être délimité par le -signe pour-cent de la manière suivante. La première ligne non vide d'un -fichier peut contenir un signe '%' seul, éventuellement encadré -d'espaces blancs, ensuite, à la fin du fichier on doit trouver une -ligne similaire. Délimiter un fichier avec des % est facultatif si le -fichier comporte un 'M2' ou un 'M30' , mais est requis sinon. Une -erreur sera signalée si un fichier a une -ligne pour-cent au début, mais pas à la fin. Le contenu utile d'un -fichier délimité par pour-cent s'arrête après la seconde ligne pour-cent. -Tout le reste est ignoré. - -Le langage G-code prévoit les deux commandes ('M2' ou 'M30' ) pour -finir un programme. Le programme peut se terminer avant la fin -du fichier. Les lignes placées après la fin d'un programme ne seront -pas exécutées. L'interpréteur ne les lit pas. - -== Format d'une ligne - -Une ligne de G-code typique est construite de la façon suivante, -dans l'ordre avec la restriction à un maximum de 256 caractères sur la même -ligne. - - . Un caractère optionnel d'effacement de bloc, qui est la barre oblique '/'. - . Un numéro de ligne optionnel. - . Un nombre quelconque de mots, valeurs de paramètres et commentaires. - . Un caractère de fin de ligne (retour chariot ou saut de ligne ou les - deux). - -Toute entrée non explicitement permise est illégale, elle provoquera -un message d'erreur de l'interpréteur. - -Les espaces sont permis ainsi que les tabulations dans une ligne de -code dont ils ne changent pas la signification, excepté dans les -commentaires. Ceci peut donner d'étranges lignes, mais elles sont -autorisées. La ligne 'g0x +0. 12 34y 7' est équivalente à'g0 -x+0.1234 y7', par exemple. - -Les lignes vides sont permises, elles seront ignorées. - -La casse des caractères est ignorée, excepté dans les commentaires. -Toutes les lettres en dehors des commentaires peuvent être, -indifféremment des majuscules ou des minuscules sans changer la -signification de la ligne. - -[[sec:effacement-de-bloc]] -== Caractère d'effacement de bloc -(((Block Delete))) - -Le caractère optionnel d'effacement de bloc qui est la barre oblique '/', -quand il est placé en premier sur une ligne, peut être utilisé par certaines -interfaces utilisateur pour sauter, si besoin, des lignes de code. Dans Axis, la -combinaison de touches 'Alt-m-/' est une bascule qui active ou désactive -l'effacement de bloc. Quand l'effacement de bloc est actif, toutes les lignes -commençant par '/' sont sautées. - -Dans Axis il est également possible de basculer l'activation d'effacement de -bloc avec l'icône: -image:../gui/images/tool_blockdelete.gif[] - -== Numéro de ligne -(((Numéro de ligne))) - -Un numéro de ligne commence par la lettre N suivie d'un nombre entier -non signé. Les numéros de ligne peuvent se suivre, être répétés ou être dans -le désordre, bien qu'une pratique normale évite ce genre d'usage. Les numéros -de ligne peuvent être sautés, c'est une pratique normale. L'utilisation d'un -numéro de ligne n'est pas obligatoire, ni même recommandée, mais si ils sont -utilisés, il doivent être placés en début de ligne. - -== Les mots -(((mots))) - -Un mot est une lettre, autre que N, suivie d'un nombre réel. - -Les mots peuvent commencer avec l'une ou l'autre des lettres indiquées -dans le tableau ci-dessous. Ce tableau inclus N pour être complet, même si, -comme défini précédemment, les numéros de lignes ne sont pas des mots. -Plusieurs lettres (I, J, K, L, P, R) peuvent avoir différentes significations -dans des contextes différents. Les lettres qui se réfèrent aux noms d'axes ne -sont pas valides sur une machine n'ayant pas les axes correspondants. - - -.Les mots et leur signification[[sec:Les-mots-et-leur-significations]] - -[width="100%", options="header"] -|======================================== -|Lettre | Signification -|A | Axe A de la machine -|B | Axe B de la machine -|C | Axe C de la machine -|D | Valeur de la compensation de rayon d'outil -|F | Vitesse d'avance travail -|G | Fonction Générale (voir la table des codes modaux) -|H | Index d'offset de longueur d'outil -|I | Décalage en X pour les arcs et dans les cycles préprogrammés G87 -|J | Décalage en Y pour les arcs et dans les cycles préprogrammés G87 -.2+|K | Décalage en Z pour les arcs et dans les cycles préprogrammés G87 -<| Distance de déplacement par tour de broche avec G33 -|M | Fonction auxiliaire (voir la table des codes modaux) -|N | Numéro de ligne -.2+|P | Temporisation utilisée dans les cycles de perçage et avec G4. -<| Mot clé utilisé avec G10. -|Q | Incrément Delta en Z dans un cycle G73, G83 -|R | Rayon d'arc ou plan de retrait dans un cycle préprogrammé -|S | Vitesse de rotation de la broche -|T | Numéro d'outil -|U | Axe U de la machine -|V | Axe V de la machine -|W | Axe W de la machine -|X | Axe X de la machine -|Y | Axe Y de la machine -|Z | Axe Z de la machine -|======================================== - -[[sec:Nombres]] -== Les nombres -(((Les nombres))) - -Les règles suivantes sont employées pour des nombres (explicites). -Dans ces règles un chiffre est un caractère simple entre 0 et 9. - -* Un nombre commence par: - -** un signe plus ou un signe moins optionnel, - suivi de -** zéro à plusieurs chiffres, peut être suivis par, -** un point décimal, suivi de -** zéro à plusieurs chiffres, il doit au moins y avoir un chiffre. - -* Il existe deux types de nombres: -** Les entiers, qui n'ont pas de point décimal. -** Les décimaux, qui ont un point décimal. -* Les nombres peuvent avoir n'importe quel nombre de chiffres, sous - réserve de la limitation de longueur d'une ligne. Seulement environ - dix-sept chiffres significatifs seront retenus, c'est toutefois - suffisant pour toutes les applications connues. -* Un nombre non nul sans autre signe que le premier caractère est - considéré positif. - -Les zéros non significatifs, ne sont pas nécessaires. - -Si un nombre utilisé dans le langage G-code est proche d'une valeur -entière à moins de quatre décimales, il est considéré comme entier, par -exemple 0.9999. - - -[[sec:parametres]] -== Paramètres (Variables) -(((Paramètres))) - -Le langage RS274/NGC supporte les 'paramètres', qui sont appelés 'variables' -dans d'autres langages de programmation. Il existe plusieurs types de paramètres -ayant différents usages et différentes formes. Le seul type de nombre supporté -par les paramètres est le flottant, il n'y a pas de string, pas de boolean ni -d'entier dans le G-code comme dans d'autres langages de programmation. Toutefois, -les expressions logiques peuvent être formulées avec -<> ('AND', 'OR', 'XOR' et les -opérateurs de comparaison -'EQ', 'NE', 'GT', 'GE', 'LT', 'LE') ainsi que 'MOD', 'ROUND', 'FUP' et 'FIX' -<> qui supportent l'arithmétique entière. - -Les paramètres différent par leur syntaxe, leur portée, leur comportement quand ils -ne sont pas encore initialisés, leur mode, leur persistance et l'usage pour lequel -ils sont prévus. - -Syntaxes:: Il y a trois sortes d'apparences syntaxiques: -* 'numéroté' - #4711 -* 'nommé local' - # -* 'nommé global' - #<_valeurglobale> - -La portée:: La portée d'un paramètre est soit globale, ou locale à l'intérieur d'un -sous-programme. Les paramètres de sous-programme et les paramètres nommés ont une -portée locale. Les paramètres nommés globaux et les paramètres numérotés -commencent par un nombre, exemple: 31 a une portée globale. RS274/NGC utilise une -'portée lexicale', dans un sous-programme, seules sont locales les variables qui -y sont définies et toutes les variables globales y sont visibles. Les variables -locales à un appel de procédure, ne sont pas visibles dans la procédure appelée. - -Le comportement des paramètres non encore initialisés:: - . Les paramètres globaux non initialisés et les paramètres de sous-programmes - inutilisés, retournent la valeur zéro quand ils sont utilisés dans une expression. - . Les paramètres nommés signalent une erreur quand ils sont utilisés dans une -expression. - -Le mode:: La plupart des paramètres sont en lecture/écriture et peuvent être -assignés dans une instruction d'affectation. Cependant, pour beaucoup de -paramètres prédéfinis, cela n'a pas de sens, ils sont alors en lecture seule. Ils -peuvent apparaître dans les expressions, mais pas sur le côté gauche d'une -instruction d'affectation. - -La persistance:: Quand LinuxCNC s'arrête, les paramètres volatiles perdent leurs -valeurs. Tous les paramètres sont volatiles, excepté les paramètres numérotés -dans l'étendue courante de persistance footnote:[L'étendue de persistance -courante des paramètres évolue en même temps qu'évolue le développement. Cette -étendue est actuellement de 5161 à 5390. Elle est définie par '_required_parameters array' -dans le fichier src/linuxcnc/rs274ngc/interp_array.cc .]. -Les paramètres persistants sont enregistrés dans un fichier '.var' et restaurés à -leurs valeurs précédentes quand LinuxCNC est relancé. Les paramètres numérotés -volatiles sont remis à zéro. - -Utilisation prévue:: - . Paramètres utilisateur:: paramètres numérotés dans l'étendue 31 à 5000, -paramètres nommés globaux et locaux excepté les paramètres prédéfinis. Sont -disponibles pour une utilisation générale de stockage de valeurs flottantes, -comme des résultats intermédiaires, des drapeaux, etc. durant l'exécution d'un -programme. Ils sont en lecture/écriture (une valeur peut leur être attribuée). - - . <> - Ils sont -utilisés pour conserver les paramètres actuels passés à un sous-programme. - - . <> - la plupart de ces -paramètres sont utilisés pour accéder aux offsets des systèmes de coordonnées. - . <> - utilisés pour -déterminer l'état de l'interpréteur et de la machine, par exemple '#<_relative>' -retourne 1 si G91 est actif et 0 si G90 est activé. Ils sont en lecture seule. - -[[sec:Parametres-Numerotes]] -== Paramètres numérotés -(((Paramètres numérotés))) - -Un paramètre numéroté commence par le caractère '#' suivi par un -entier compris entre 1 et 5399. Le paramètre est -référencé par cet entier, sa valeur est la valeur stockée dans le -paramètre. - -Une valeur est stockée dans un paramètre avec l'opérateur = par -exemple '#3 = 15' signifie que la valeur 15 est stockée dans le -paramètre numéro 3. - -Le caractère '#' a une précédence supérieure à celle des autres -opérations, ainsi par - exemple, '#1+2' signifie la valeur trouvée en ajoutant 2 à la -valeur contenue dans - le paramètre 1 et non la valeur trouvée dans le paramètre 3. Bien sûr, -'#[1+2]' signifie la valeur trouvée dans le paramètre 3. Le caractère -'#' peut être répété, par exemple '##2' signifie le paramètre dont le -numéro est égal à la valeur entière trouvée dans le paramètre 2. - -L'interpréteur maintient cette liste de paramètres, concernant l'outil courant: - -* '1-5000' - Paramètres des G-Code utilisateur. Ces paramètres sont globaux dans -le fichier G-code. -* '5061-5070' - Résultat du palpage 'G38.2' pour (X Y Z A B C U V W) -* '5161-5169' - Origine 'G28' pour (X Y Z A B C U V W) -* '5181-5189' - Origine 'G30' pour (X Y Z A B C U V W) -* '5211-5219' - Offset 'G92' pour (X Y Z A B C U V W) -* '5220' - Numéro du système de coordonnées système courant 1 à 9 pour G54 à G59.3 -* '5221-5229' - Système de coordonnées 1, G54 (X Y Z A B C U V W) -* '5241-5249' - Système de coordonnées 2, G55 (X Y Z A B C U V W) -* '5261-5269' - Système de coordonnées 3, G56 (X Y Z A B C U V W) -* '5281-5289' - Système de coordonnées 4, G57 (X Y Z A B C U V W) -* '5301-5309' - Système de coordonnées 5, G58 (X Y Z A B C U V W) -* '5321-5329' - Système de coordonnées 6, G59 (X Y Z A B C U V W) -* '5341-5349' - Système de coordonnées 7, G59.1 (X Y Z A B C U V W) -* '5361-5369' - Système de coordonnées 8, G59.2 (X Y Z A B C U V W) -* '5381-5389' - Système de coordonnées 9, G59.3 (X Y Z A B C U V W) -* '5399' - Résultat de M66 - Surveille ou attends une entrée -* '5400' - Numéro de l'outil courant -* '5401-5409' - Offset d'outil (X Y Z A B C U V W) -* '5410' - Diamètre de l'outil courant -* '5411' - Angle frontal de l'outil courant -* '5412' - Angle arrière de l'outil courant -* '5413' - Orientation de l'outil -* '5420-5428' - Positions courantes incluant les offsets, dans l'unité courante -du programme (X Y Z A B C U V W) - -[[sec:Parametres-sous-programme]] -== Paramètres de sous-programme -(((Paramètres de sous-programme))) - -* '1-30' - Paramètres d'appel d'arguments, locaux au sous-programme. Voir la -section des <>. - -[[sec:Parametres-Nommes]] -== Paramètres nommés -(((Paramètres nommés))) - -Les paramètres nommés fonctionnent comme les paramètres numérotés mais -sont plus faciles à lire. Les paramètres nommés sont convertis en -minuscules, les espaces et tabulations sont supprimés. Les paramètres -nommés doivent être encadrés des signes '<' et '>'. - -'#' est un paramètre nommé local. Par défaut, un -paramètre nommé est -local à l'étendue dans laquelle il est assigné. L'accès à un paramètre -local, en dehors de son sous-programme est impossible, de sorte que -deux sous-programmes puissent utiliser le même nom de paramètre sans -craindre qu'un des deux n'écrase la valeur de l'autre. - -'#<_un paramètre global>' est un paramètre nommé global. Ils sont -accessibles depuis des -sous-programmes appelés et peuvent placer des valeurs dans tous les -sous-programmes accessibles à l'appelant. En ce qui concerne la portée, -ils agissent comme des paramètres numérotés. Ils ne sont pas -enregistrés dans des fichiers. - -Exemples: - - - Déclaration d'une variable nommée globale ----- -#<_troisdents_dia> = 10.00 ----- - - - Référence à la variable globale précédemment déclarée ----- -#<_troisdents_rayon> = [#<_troisdents_dia>/2.0] ----- - - - Mélange de paramètres nommés et de valeurs littérales ----- -o100 call [0.0] [0.0] [#<_interieur_decoupe>-#<_troisdents_dia>][#<_Zprofondeur>] [#<_vitesse>] ----- - -[[sec:Predefined-Named-Parameters]] -== Paramètres nommés prédéfinis -(((Paramètres nommés prédéfinis))) - -Les paramètres globaux suivants sont disponibles en lecture seule, pour accéder -aux états internes de l'interpréteur et de la machine. Ils peuvent être utilisés -dans les expressions quelconques, par exemple pour contrôler le flux d'un -programme avec les instructions 'if-then-else'. - - -* '#<_vmajor>' - Version majeure de LinuxCNC. Si la version courante est 2.5.2, -2.5 est retourné. - -* '#<_vminor>' - Version mineure du LinuxCNC. Si la version courante est 2.6.2, -0.2 est retourné. - -* '#<_line>' - Numéro de séquence. Si un fichier G-code est en cours, le numéro -de la ligne courante est retourné. - -* '#<_motion_mode>' - Retourne le mode mouvement courant de l'interpréteur: - -[width="20%",options="header"] -|======================================== -|Mode mouvement | Valeur retournée -|G1| 10 -|G2| 20 -|G3| 30 -|G33| 330 -|G38.2| 382 -|G38.3| 383 -|G38.4| 384 -|G38.5| 385 -|G5.2| 52 -|G73| 730 -|G76| 760 -|G80| 800 -|G81| 810 -|G82| 820 -|G83| 830 -|G84| 840 -|G85| 850 -|G86| 860 -|G87| 870 -|G88| 880 -|G89| 890 -|======================================== -* '#<_plane>' - Retourne une valeur désignant le plan courant: -[width="20%",options="header"] -|======================================== -|Plan | Valeur retournée -|G17| 170 -|G18| 180 -|G19| 190 -|G17.1| 171 -|G18.1| 181 -|G19.1| 191 -|======================================== - -* '#<_ccomp>' - Statut de la compensation d'outil. Retourne une valeur: -[width="20%",options="header"] -|======================================== -|Mode | Valeur retournée -|G40 | 400 -|G41 | 410 -|G41.1| 411 -|G41 | 410 -|G42 | 420 -|G42.1 | 421 -|======================================== - -* '#<_metric>' - Retourne 1 si G21 est 'on', sinon 0. - -* '#<_imperial>' - Retourne 1 si G20 est 'on', sinon 0. - -* '#<_absolute>' - Retourne 1 si G90 est 'on', sinon 0. - -* '#<_incremental>' - Retourne 1 si G91 est 'on', sinon 0. - -* '#<_inverse_time>' - Retourne 1 si le mode inverse du temps (G93) est 'on', -sinon 0. - -* '#<_units_per_minute>' - Retourne 1 si le mode unités par minute (G94) est 'on', -sinon 0. - -* '#<_units_per_rev>' - Retourne 1 si le mode Unités par tour (G95) est 'on', -sinon 0. - -* '#<_coord_system>' - Retourne l'index du système de coordonnées courant (G54 à G59.3). -[width="20%",options="header"] -|======================================== -|Mode | Valeur retournée -|G54| 0 -|G55| 1 -|G56| 2 -|G57| 3 -|G58| 4 -|G59| 5 -|G59.1|6 -|G59.2|7 -|G59.3|8 -|======================================== - -* '#<_tool_offset>' - Retourne 1 si l'offset d'outil (G43) est 'on', sinon 0. - -* '#<_retract_r_plane>' - Retourne 1 si G98 est actif, sinon 0. - -* '#<_retract_old_z>' - Retourne 1 si G99 est 'on', sinon 0. - -[[sec:Parametres-Systeme]] -== Paramètres système -(((Paramètres système))) - -* `#<_spindle_rpm_mode>` - Retourne 1 si la broche est en mode tr/mn (G97), -sinon 0. - -* `#<_spindle_css_mode>` - Retourne 1 si la broche est en mode vitesse de coupe -constante (G96), sinon 0. - -* `#<_ijk_absolute_mode>` - Retourne 1 si le mode de déplacement en arc est -absolu (G90.1), sinon 0. - -* `#<_lathe_diameter_mode>` - Retourne 1 pour un tour configuré en mode diamètre -(G7), sinon 0. - -* `#<_lathe_radius_mode>` - Retourne 1 pour un tour configuré en mode rayon (G8) -, sinon 0. - -* `#<_spindle_on>` - Retourne 1 si la broche tourne (M3 ou M4 en cours), sinon 0. - -* `#<_spindle_cw>` - Retourne 1 si la broche est dans le sens horaire (M3) -sinon 0. - -* `#<_mist>` - Retourne 1 si l'arrosage par gouttelettes est activé (M7). - -* `#<_flood>` - Retourne 1 si l'arrosage fluide est activé (M8). - -* `#<_speed_override>` - Retourne 1 si un correcteur de vitesse d'avance travail -est activé (M48 ou M50 P1), sinon 0. - -* `#<_feed_override>` - Retourne 1 si un correcteur de vitesse broche est activé -(M48 ou M51 P1), sinon 0. - -* `#<_adaptive_feed>` - Retourne 1 si un correcteur de vitesse adaptative est -activé (M52 ou M52 P1), sinon 0. - -* `#<_feed_hold>` - Retourne 1 si le contrôle de coupure vitesse est activé -(M53 P1), sinon 0. - -* `#<_feed>` - Retourne la valeur courante d'avance travail (F). - -* `#<_rpm>` - Retourne la valeur courante de vitesse broche (S). - -* `#<_x>` - Retourne la coordonnée machine courante en X. Identique à #5420. - -* `#<_y>` - Retourne la coordonnée machine courante en Y. Identique à #5421. - -* `#<_z>` - Retourne la coordonnée machine courante en Z. Identique à #5422. - -* `#<_a>` - Retourne la coordonnée machine courante en A. Identique à #5423. - -* `#<_b>` - Retourne la coordonnée machine courante en B. Identique à #5424. - -* `#<_c>` - Retourne la coordonnée machine courante en C. Identique à #5425. - -* `#<_u>` - Retourne la coordonnée machine courante en U. Identique à #5426. - -* `#<_v>` - Retourne la coordonnée machine courante en V. Identique à #5427. - -* `#<_w>` -Retourne la coordonnée machine courante en W. Identique à #5428. - -* `#<_current_tool>` - Retourne le N° de l'outil courant monté dans la broche. -Identique à #5400. - -* `#<_current_pocket>` - Retourne le N° de poche de l'outil courant. - -* `#<_selected_tool>` - Retourne le N° de l'outil sélectionné par le mot T. -Par défaut -1. - -* `#<_selected_pocket>` - Retourne le N° de poche sélectionné par le mot T. -Par défaut -1 (pas de poche sélectionnée). - -* `#<_value>` - [[param:_value]] Retourne la valeur du dernier O-code `return` -ou `endsub`. Valeur 0 par défaut si pas d'expression après `return` ou `endsub`. -Initialisé à 0 au démarrage du programme. - -* `#<_value_returned>` - 1.0 si le dernier O-code `return` ou `endsub` a -retourné une valeur, 0 autrement. Effacé par le prochain appel à un O-code. - -* `#<_task>` - 1.0 si l'instance en cours d'exécution par l'interpréteur fait -partie d'une tâche de fraisage, 0.0 autrement. Il est parfois nécessaire de -traiter ce cas particulier pour conserver un chemin d'outil propre, par exemple -quand on teste le succès d'une mesure au palpeur (G38.x), en examinant #5070, -ce qui ratait toujours dans le chemin d'outil de l'interpréteur (ex: Axis). - -* `#<_call_level>` - current nesting level of O-word procedures. Pour débogage. - -* `#<_remap_level>` - current level of the remap stack. Each remap in a block adds one - to the remap level. Pour débogage. - - -[[sec:Expressions]] -== Expressions -(((Expressions))) - -Une expression est un groupe de caractères commençant avec le crochet -gauche '[' et se terminant avec le crocher droit ']' . Entre les -crochets, on trouve des nombres, des valeurs de paramètre, -des opérations mathématiques et d'autres expressions. Une expression -est évaluée pour produire un nombre. Les expressions sur une ligne sont -évaluées quand la ligne est lue et avant que quoi que ce soit ne soit -éxécuté sur cette ligne. -Un exemple d'expression: '[1 + acos[0] - [#3 ** [4.0/2]]]'. - -[[sec:Operateurs-Binaires]] -== Opérateurs binaires -(((Opérateurs binaires))) - -Les opérateurs binaires ne se rencontrent que dans les expressions. Il -y a quatre opérateurs mathématiques de base: addition _+_, -soustraction _-_, multiplication _*_ et division _/_. Il y a -trois opérateurs logiques: le 'ou (OR)', le 'ou exclusif (XOR)' et -le 'et logique (AND)'. Le huitième opérateur est le 'modulo (MOD)'. Le neuvième -opérateur est l'élévation à la puissance _(**)_ qui élève le nombre -situé à sa gauche à la puissance du nombre situé à sa droite. -Les opérateurs de relation sont: égalité _(EQ)_, non égalité _(NE)_, strictement -supérieur _(GT)_, supérieur ou égal _(GE)_, -strictement inférieur _(LT)_ et inférieur ou égal _(LE)_. - -Les opérations binaires sont divisées en plusieurs groupes selon leur -précédence. Si dans une opération se trouvent différents groupes de précédence, -par exemple dans l'expression '[2.0 / 3 * 1.5 - 5.5 / 11.0]', les opérations du -groupe supérieur seront effectuées avant celles -des groupes inférieurs. Si une expression contient plusieurs opérations - du même groupe (comme les premiers '/' et '*' dans l'exemple), -l'opération de gauche est effectuée en premier. - Notre exemple est équivalent à: -'[\[[2.0/3]*1.5]-[5.5/11.0]]', qui est équivalent à '[1.0-0.5]' , -le résultat est: '0.5' . - -Les opérations logiques et le modulo sont exécutés sur des nombres -réels et non pas seulement sur des entiers. Le zéro est équivalent à un -état logique faux (FALSE), tout nombre différent de zéro est équivalent -à un état logique vrai (TRUE). - -[[sec:Precedence-des-operateurs]] -.Précédence des opérateurs -(((Précédence des opérateurs))) - -[width="90%", options="header"] -|======================================== -|Opérateurs | Précédence -|** | 'haute' -|* / MOD | -|+ - | -|EQ NE GT GE LT LE | -|AND OR XOR | 'basse' -|======================================== - -[[sec:Fonctions]] -== Fonctions[[sec:Operations-unaires]] -(((Fonctions))) -(((Opérations unaires))) - - -Une fonction commence par son nom, ex: 'ATAN' suivi par une -expression divisée par une autre expression (par exemple 'ATAN[2]/[1+3]') ou -tout autre nom de fonction suivi par une expression (par exemple 'SIN[90]'). -Les fonctions disponibles sont visibles le tableau ci-dessous. Les arguments -pour les opérations unaires sur des angles ( 'COS', 'SIN' et 'TAN' ) sont en -degrés. Les valeurs retournées par les opérations sur les angles -( 'ACOS', 'ASIN' et 'ATAN' ) sont également en degrés. - -La fonction 'FIX' arrondi un nombre vers la gauche, (moins positif ou plus -négatif) par exemple, 'FIX[2.8]=2' et 'FIX[-2.8]=-3'. -La fonction 'FUP' à l'inverse, arrondi un nombre vers la droite (plus positif -ou moins négatif) par exemple, 'FUP[2.8]=3' et 'FUP[-2.8]=-2'. - -La fonction 'EXISTS' vérifie l'existence d'un simple paramètre nommé. Il reçoit -le paramètre à vérifier en argument, il retourne 1 si celui-ci existe et 0 sinon. -C'est une erreur si un paramètre numéroté ou une expression est utilisé. - - -.Fonctions - -[width="90%", options="header"] -|======================================== -|Nom de fonction | Fonction -|ATAN[Y]/[X] | Tangente quatre quadrants -|ABS[arg] | Valeur absolue -|ACOS[arg] | Arc cosinus -|ASIN[arg] | Arc sinus -|COS[arg] | Cosinus -|EXP[arg] | Exposant -|FIX[arg] | Arrondi à l'entier immédiatement inférieur -|FUP[arg] | Arrondi à l'entier immédiatement supérieur -|ROUND[arg] | Arrondi à l'entier le plus proche -|LN[arg] | Logarithme Néperien -|SIN[arg] | Sinus -|SQRT[arg] | Racine carrée -|TAN[arg] | Tangente -|EXISTS[arg] | Vérifie l'existence d'un paramètre nommé -|======================================== - -== Répétitions d'items - -Une ligne peut contenir autant de mots G que voulu, mais un seul du même -<>. - -Une ligne peut avoir de zéro à quatre mots M. Mais pas deux mots M du -même groupe modal. - -Pour toutes les autres lettres légales, un seul mot commençant par -cette lettre peut se trouver sur la même ligne. - -Si plusieurs valeurs de paramètre se répètent sur la même ligne, par -exemple: '#3=15 #3=6', seule la dernière valeur prendra effet. Il -est absurde, mais pas -illégal, de fixer le même paramètre deux fois sur la même ligne. - -Si plus d'un commentaire apparaît sur la même ligne, seul le dernier -sera utilisé, chacun des autres sera lu et son format vérifié, mais il -sera ignoré. Placer plusieurs commentaires sur la même ligne est très -rare. - -== Ordre des items - -Les trois types d'item dont la commande peut varier sur une ligne -(comme indiqué au début de cette section) sont les mots, les paramètres -et les commentaires. Imaginez que ces trois types d'éléments sont -divisés en trois groupes selon leur type. - -Dans le premier groupe les mots, peuvent être arrangés dans n'importe -quel ordre sans changer la signification de la ligne. - -Dans le second groupe les valeurs de paramètre, quelque soit leur -arrangement, il n'y aura pas de changement dans la signification de la -ligne sauf si le même paramètre est présent plusieurs fois. Dans ce -cas, seule la valeur du dernier paramètre prendra effet. Par exemple, -quand la ligne '#3=15 #3=6' aura été interprétée, la valeur du -paramètre 3 vaudra 6. Si l'ordre - est inversé, '#3=6 #3=15' après interprétation, la valeur du -paramètre 3 vaudra 15. - -Enfin dans le troisième groupe les commentaires, si plusieurs -commentaires sont présents sur une ligne, seul le dernier commentaire -sera utilisé. - -Si chaque groupe est laissé, ou réordonné, dans l'ordre recommandé, la -signification de la ligne ne changera pas, alors les trois groupes -peuvent être entrecroisés n'importe comment sans changer la -signification de la ligne. Par exemple, la ligne 'g40 g1 #3=15 (foo) -#4=-7.0' à cinq items est signifiera exactement la même chose dans -les 120 - ordres d'arrangement possibles des cinq items comme '#4=-7.0 g1 #3=15 -g40 (foo)'. - -== Commandes et modes machine - -En G-code, de nombreuses commandes produisent, d'un mode à un -autre, quelque chose de différent au niveau de la machine, le mode -reste actif jusqu'à ce qu'une autre commande ne le révoque, -implicitement ou explicitement. Ces commandes sont appelées 'modales'. -Par exemple, si l'arrosage est mis en marche, il y reste jusqu'à ce -qu'il soit explicitement arrêté. Les G-codes pour les mouvements sont -également modaux. Si, par exemple, une commande G1 (déplacement -linéaire) se trouve sur une ligne, elle peut être utilisée sur la ligne -suivante avec seulement un mot d'axe, tant qu'une commande explicite -est donnée sur la ligne suivante en utilisant des axes ou un arrêt de -mouvement. - -Les codes 'non modaux' n'ont d'effet que sur la ligne ou ils se -présentent. Par exemple, G4 (tempo) est non modale. - -[[sec:Coordonnees-polaires]] -== Coordonnées polaires -(((coordonnées polaires))) - -Des coordonnées polaires peuvent être utilisées pour spécifier -les coordonnées 'XY' d'un mouvement. -Le '@n' est la distance et le '^n' est l'angle. L'avantage est important, par -exemple: Pour faire très simplement un cercle de trous tangents: - - - Passer un point situé au centre du cercle - - Régler la compensation de longueur d'outil - - Déplacer l'outil vers le premier trou - - Enfin, lancer le cycle de perçage. - -Les coordonnées polaires sont toujours données à partir de la position 'X0, Y0'. -Pour décaler les coordonnées polaires machine utilisez le décalage pièce -ou sélectionnez un système de coordonnées. - -En mode absolu, la distance et l'angle sont donnés à partir de la position 'X0, Y0' -et l'angle commence à '0' sur l'axe X positif et augmente dans la direction -trigonométrique (anti-horaire) autour de l'axe Z. Le code '+G1 @1 ^90+' est la -même que '+G1 Y1+'. - -En mode relatif, la distance et l'angle sont également donnés à partir de la -position 'XY zéro', mais ils sont cumulatifs. -Ce fonctionnement en mode incrémental peut être déroutant au début. - -Par exemple: si vous avez le programme suivant, vous vous attendez à obtenir -une trajectoire carré. ----- -F100 G1 @.5 ^90 -G91 @.5 ^90 -@.5 ^90 -@.5 ^90 -@.5 ^90 -G90 G0 X0 Y0 M2 ----- - -Vous pouvez voir sur la figure suivante que la sortie n'est pas -celle à laquelle vous vous attendiez, parce-que avons ajouté -0.5 à la distance de la position XY zéro à chaque début de ligne. - -.Spirale polaire[[fig:Spirale-polaire]] - -image::images/polar01.png[] - -Le code suivant va produire notre modèle carré. ----- -F100 G1 @.5 ^90 -G91 ^90 -^90 -^90 -^90 -G90 G0 X0 Y0 M2 ----- - -Comme vous pouvez le voir, en ajoutant seulement l'angle de 90 degrés à -chaque ligne. La distance du point final est la même pour chaque ligne. - -.Carré polaire[[fig:Carre-polaire]] - -image::images/polar02.png[] - -C'est une erreur si: - - - Un mouvement incrémental est lancé à l'origine. - - Un mélange de mots polaires et de X ou Y est utilisé. - - -[[sec:Groupes-modaux]] -== Groupes modaux -(((Groupes modaux))) - -Les commandes modales sont arrangées par lots appelés 'groupes -modaux', à tout moment, un seul membre d'un groupe modal peut être -actif. En général, un groupe modal contient des commandes pour -lesquelles il est logiquement impossible que deux membres soient actifs -simultanément, comme les unités en pouces et les unités en millimètres. -Un centre d'usinage peut être dans plusieurs modes simultanément, si -un seul mode pour chaque groupe est actif. Les groupes modaux sont -visibles dans le tableau <>. - - -[[tbl:G-codes-modaux]] -.Groupes modaux des G-codes -(((G-codes modaux))) - -[width="100%", cols="4,6", options="header"] -|========================================================== -|Signification du groupe modal | Mots G -|Codes non modaux ('Groupe 0')| G4, G10, G28, G30, G53, G92, G92.1, G92.2, G92.3 -.2+|Mouvements ('Groupe 1') | G0, G1, G2, G3, G33, G38.x, G73, G80, G81, - | G82, G83, G84, G85, G86, G87, G88, G89 -|Choix du plan de travail ('Groupe 2')| G17, G18, G19, G17.1, G18.1, G19.1 -|Mode déplacement ('Groupe 3') | G90, G91 -|Mode déplacement en arc IJK ('Groupe 4') |G90.1, G91.1 -|Mode de vitesses ('Groupe 5') | G93, G94, G95 -|Unités machine ('Groupe 6') | G20, G21 -|Compensation de rayon d'outil ('Groupe 7')| G40, G41, G42, G41.1, G42.1 -|Compensation de longueur d'outil ('Groupe 8')| G43, G43.1, G49 -|Plan de retrait cycle de perçage ('Groupe 10')| G98, G99 -|Systèmes de coordonnées ('Groupe 12')| G54, G55, G56, G57, G58, G59, G59.1, G59.2, G59.3 -|Mode contrôle de trajectoire ('Groupe 13') |G61, G61.1, G64 -|Mode contrôle vitesse broche ('Groupe 14') | G96, G97 -|Mode diamètre/rayon sur les tours ('Groupe 15') | G7, G8 -|========================================================== - -[[tbl:M-codes-modaux]] -.Groupes modaux des M-codes -(((M-codes modaux))) - -[width="100%", cols="4,6", options="header"] -|========================================================== -|Signification du groupe modal | Mots M -|Types de fin de programme ('Groupe 4') | M0, M1, M2, M30, M60 -|On/Off I/O ('Groupe 5') | M6 Tn -|Appel d'outil ('Groupe 6') | M6 Tn -|Commande de broche ('Groupe 7') | M3, M4, M5 -|Arrosages ('Groupe 8') | (M7, M8, peuvent être actifs simultanément), M9 -|Boutons de correction de vitesse ('Groupe 9')| M48, M49, M50, M51 -|Définis par l'utilisateur ('Groupe 10') | M100 à M199 -|========================================================== - -Pour plusieurs groupes modaux, quand la machine est prête à accepter -des commandes, un membre du groupe doit être en vigueur. Il y a des -paramètres par défaut pour ces groupes modaux. Lorsque la machine est -mise en marche ou ré-initialisées, les valeurs par défaut sont -automatiquement actives. - -Groupe 1, le premier groupe du tableau, est un groupe de G-codes pour -les mouvements. À tout moment, un seul d'entre eux est actif. Il est -appelé le mode de mouvement courant. - -C'est une erreur que de mettre un G-code du groupe 1 et un G-code du -groupe 0 sur la même ligne si les deux utilisent les mêmes axes. Si un -mot d'axe utilisant un G-code du groupe 1 est implicitement actif sur -la ligne (en ayant été activé sur une ancienne ligne) et qu'un G-code -du groupe 0 utilisant des mots d'axes apparaît sur la même ligne, -l'activité du G-code du groupe 1 est révoquée pour le reste de la -ligne. Les mots d'axes utilisant des G-codes du groupe 0 sont G10, G28, -G30 et G92. - -C'est une erreur d'inclure des mots sans rapport sur une ligne avec le -contrôle de flux 'O'. - -[[sec:Commentaires]] -== Commentaires -(((Commentaires))) - -Des commentaires peuvent être ajoutés aux lignes de G-code pour clarifier -l'intention du programmeur. Les commentaires peuvent être placés sur une ligne -en les encadrant par des parenthèses. Ils peuvent aussi occuper tout le -reste de la ligne à partir d'un point virgule. Le point virgule -n'est pas traité comme un début de commentaire si il se trouve entre deux -parenthèses. - -Voici un exemple de programme commenté: ----- -G0 (Rapide à démarrer.) X1 Y1 -G0 X1 Y1 (Rapide à démarrer; mais n'oubliez pas l'arrosage.) -M2 ; Fin du programme. ----- - -Les commentaires peuvent se trouver entre des mots, mais pas entre des mots et -leur paramètre correspondant. Ainsi, cette ligne est correcte: ----- -S100(vitesse broche)F200(vitesse d'avance) ----- - -mais celle-ci est incorrecte: ----- -S(speed)100F(feed)200 ----- - -Les commentaires sont seulement informatifs, ils n'ont aucune -influence sur la machine. - -Il y a plusieurs commentaires 'actif' qui ressemblent à un commentaire mais qui -produit certaines actions, comme '(debug,...)' ou '(print,...)', expliqués plus -loin. Si plusieurs commentaires se trouvent sur la même ligne, seul le dernier -sera interprété selon les règles. Par conséquent, un commentaire normal suivant -un commentaire actif aura pour effet de désactiver le commentaire actif. Par -exemple, '(foo) (debug,#1)' affichera la valeur du paramètre '#1', mais -'(debug,#1) (foo)' ne l'affichera pas. - -Un commentaire commençant par un point virgule est par définition le dernier -commentaire sur cette ligne et sera toujours interprété selon la syntaxe des -commentaires actifs. - -[[sec:Messages]] -== Messages -(((Messages))) - -* '(MSG,)' - Un commentaire contient un message si 'MSG' apparaît après la - parenthèse ouvrante et avant tout autre caractère. Les variantes de - 'MSG' qui incluent un espace blanc et des minuscules sont permises. - Le reste du texte avant la parenthèse fermante est considéré comme - un message. Les messages sont affichés sur la visu de l'interface - utilisateur. - -.Exemple de message ----- -(MSG, Ceci est un message) ----- - -[[sec:Log-des-mesures]] -== Enregistrement des mesures -(((Enregistrement des mesures))) - -* '(PROBEOPEN filename.txt)' - ouvrira le fichier 'filename.txt' et y - enregistrera les 9 coordonnées de XYZABCUVW pour - chacune des mesures réussie. -* '(PROBECLOSE)'. - fermera le fichier de log palpeur. - -Voir la section <> pour d'autres -informations sur le palpage avec G38. - -[[sec:Log-general]] -== Log général -(((Log général))) - -* '(LOGOPEN,filename.txt)' - Ouvre le fichier de log 'filename.txt'. - Si le fichier existe déjà, il sera tronqué. - -* '(LOGAPPEND,filename.txt)' - Ouvre le fichier de log 'filename.txt'. - Si le fichier existe déjà, il sera ajoutées. - -* '(LOGCLOSE)' - Si le fichier est ouvert, il sera fermé. - -* '(LOG,message)' - Le 'message' placé derrière la virgule est écrit dans - le fichier de log si il est ouvert. Supporte l'extension - des paramètres comme décrit plus loin. - -[[sec:Messages-debogage]] -== Messages de débogage -(((Messages de débogage))) - -* '(DEBUG,commentaire)' sont traités de la même façon que ceux avec - '(msg,reste du commentaire)' avec l'ajout de - possibilités spéciales pour les paramètres, comme - décrit plus loin. - -* '(PRINT,commentaire)' vont directement sur la sortie 'stderr' avec des - possibilités spéciales pour les paramètres, comme - décrit plus loin. - -== Paramètres dans les commentaires - -Dans les commentaires avec DEBUG, PRINT et LOG, les valeurs des -paramètres dans le message sont étendues. - -Par exemple: pour afficher le contenu d'une variable nommée globale sur la -sortie stderr (la fenêtre de la console par défaut), ajouter une ligne au -G-code comme: - -.Exemple de paramètres en commentaire ----- -(print,diamètre fraise 3 dents = #<_troisdents_dia>) -(print,la valeur de la variable 123 est: #123) ----- - -À l'intérieur de ces types de commentaires, les séquences comme '#123' -sont remplacées par la valeur du paramètre 123. Les séquences comme -'#' sont remplacées par la valeur du paramètre nommé. -Rappelez vous que - les espaces dans les noms des paramètres nommés sont supprimés, -'#' est équivalent à '#'. - -== Exigences des fichiers - -Un programme G-code doit contenir une ou plusieurs lignes de G-code puis se -terminer par une ligne de<>. -Tout G-code, placé après cette ligne de fin de programme, sera ignoré. - -Si le programme n'utilise pas G-code de fin de programme, une paire de -signes pourcent '%' peut être utilisées. Le premier signe '%' doit dans ce cas se -trouver sur la première ligne du fichier, suivi par une ou plusieurs lignes de -G-code, puis du second signe '%'. Tout G-code placé après le second signe '%' -sera ignoré. - -[NOTE] -Les fichiers de G-code doivent être créés avec un éditeur de texte comme Gedit -et non avec un traitement de texte comme Open Office. Les traitements de -texte ajoutent de nombreux caractères de contrôle dans les fichiers, ce qui -les rends inutilisables comme programmes G-code. - -== Taille des fichiers - -L'interpréteur et le gestionnaire de tâches ont été écrits, de sorte que la -taille des fichiers n'est limité que par la capacité du disque dur. Les -interfaces graphiques TkLinuxCNC et Axis affichent tous les deux le programme G-code -à l'écran pour l'utilisateur, cependant, la RAM devient un facteur limitant. -Dans Axis, parce-que l'aperçu du parcours d'outil est affiché par défaut, le -rafraîchissement de l'écran devient une limite pratique à la taille des fichiers. -Le tracé du parcours d'outil peut être désactivé dans Axis pour accélérer le -chargement des fichiers conséquents. L'aperçu peut être désactivé en -passant un <>. - -[[sec:Ordre-d-execution]] -== Ordre d'exécution -(((Ordre d'exécution))) - -L'ordre d'exécution des éléments d'une ligne est essentiel à la -sécurité et l'efficacité d'une machine. Les éléments sont exécutés dans -l'ordre indiqué ci-dessous, si ils se trouvent sur la même ligne. - - . Commentaire (message inclus) - . Positionnement du mode de vitesses (G93, G94). - . Réglage de la vitesse travail (F). - . Réglage de la vitesse de rotation de la broche (S). - . Sélection de l'outil (T). - . Appel d'outil (M6). - . Marche/Arrêt broche (M3, M4, M5). - . Marche/Arrêt arrosages (M7, M8, M9). - . Activation/Inhibition correcteurs de vitesse (M48, M49). - . Temporisation (G4). - . Choix du plan de travail (G17, G18, G19). - . Choix de l'unité de longueur (G20, G21). - . Activation/Désactivation de la compensation de rayon d'outil (G40, G41, G42) - . Activation/Désactivation de la compensation de longueur d'outil (G43, G49) - . Sélection du système de coordonnées (G54, G55, G56, G57, G58, G59, G59.1, G59.2, G59.3). - . Réglage du mode de trajectoire (G61, G61.1, G64) - . Réglage du mode de déplacement (G90, G91). - . Réglage du type de retrait (G98, G99). - . Prise d'origine (G28, G30) ou établissement du système de - coordonnées (G10) ou encore, réglage des décalages d'axes (G92, G92.1, G92.2, G94). - . Effectuer les mouvements (G0 à G3, G33, G80 à G89), tels que modifiés - (éventuellement) par G53. - . Arrêt (M0, M1, M2, M30, M60). - -== G-Code: Bonnes pratiques -(((G-Code bonnes pratiques))) - -=== Utiliser un nombre de décimales approprié - -Utiliser au plus 3 chiffres après la virgule pour l'usinage en -millimètres et au plus 4 chiffres après la virgule pour l'usinage en -pouces. En particulier, les contrôles de tolérance des arcs sont faits -pour .001 et .0001 selon les unités actives. - -=== Utiliser les espaces de façon cohérente - -Le G-code est plus lisible quand au moins un espace apparaît avant les -mots. S'il est permis d'insérer des espaces blancs au milieu des -chiffres, il faut éviter de le faire. - -=== Préférer le 'format centre' pour les arcs - -Les arcs en format centre (qui utilisent 'I- J- K-' au lieu de 'R-' ) -se comportent de façon plus précise que ceux en format rayon, -particulièrement pour des angles proche de 180 et 360 degrés. - -=== Placer les codes modaux importants au début des programmes - -Lorsque l'exécution correcte de votre programme dépend de paramètres -modaux, n'oubliez pas de les mettre au début du programme. Des modes -incorrects peuvent provenir d'un programme précédent ou depuis des -entrées manuelles. - -Une bonne mesure préventive consiste à placer la ligne suivante au -début de tous les programmes: ----- -G17 G21 G40 G49 G54 G80 G90 G94 ----- - -(plan XY, mode mm, annulation de la compensation de rayon, et de -longueur, système de coordonnées numéro 1, arrêt des mouvements, -déplacements absolus, mode vitesse/minute) - -Peut-être que le code modal le plus important est le réglage des -unités machine. Si les codes G20 ou G21, ne sont pas inclus, selon les -machines l'échelle d'usinage sera différente. D'autres valeurs comme le -plan de retrait des cycles de perçage peuvent être importantes. - -=== Ne pas mettre trop de choses sur une ligne - -Ignorer le contenu de la section <> et -ne pas écrire de ligne de code qui laisse la moindre ambiguïté. - -=== Ne pas régler et utiliser un paramètre sur la même ligne - -Ne pas 'utiliser' et 'définir' un paramètre sur la même ligne, même si -la sémantique est bien définie. Mettre à jour une variable, à une -nouvelle valeur, telle que '#1 = [#1 + #2]' est autorisé. - -=== Ne pas utiliser les numéros de ligne - -Les numéros de ligne n'apportent rien. Quand des numéros de ligne sont -rapportés dans les messages d'erreur, ces numéros font référence aux -numéros de lignes à l'intérieur du programme, pas aux valeurs des mots N. - -=== Lorsque plusieurs systèmes de coordonnées sont déplacés - -envisager le mode vitesse inverse du temps. - -Parce que la signification d'un mot 'F' en mètres par minute varie selon -les axes à déplacer et parce que la quantité de matière enlevée ne -dépend pas que de la vitesse travail, il peut être plus simple -d'utiliser G93, vitesse inverse du temps, pour atteindre l'enlèvement de -matière souhaité. - -== Axes rotatifs et linéaires - -La signification du mot 'F-', exprimé en vitesse par minute, étant différente -selon l'axe concerné par la commande de déplacement et parce-que la quantité -de matière enlevée ne dépend pas seulement de la vitesse d'avance, il est -facile d'utiliser le mode inverse du temps 'G93' pour atteindre la quantité de -matériaux à enlever, souhaitée. - -== Messages d'erreur courants - -* 'G code hors d'étendue' - Un G-code supérieur à G99 a été utilisé. L'étendue -des G-codes dans LinuxCNC est comprise entre 0 et 99. Toutefois, les valeurs -entre 0 et 99 ne sont pas toutes celle d'un G-code valide. -* 'Utilisation d'un G code inconnu' - Un G-code à été utilisé qui n'appartient -pas aux langage G-code de LinuxCNC. -* 'Mot i, j, k sans Gx l'utilisant' - Les mots i, j et k doivent être utilisés -sur la même ligne que leur G-code. -* 'Impossible d'employer des valeurs d'axe sans G code pour les utiliser' - Les -valeurs d'axe ne peuvent pas être utilisées sur une ligne sans qu'un G-code ne -se trouve sur la même ligne ou qu'un G-code modal soit actif. -* 'Le fichier se termine sans signe pourcent ni fin de programme' - Tout fichier -G-code doit se terminer par un M2, un M30 ou être encadré par le signe '%'. - -// vim: set syntax=asciidoc: diff --git a/docs/src/gcode/rs274ngc.txt b/docs/src/gcode/rs274ngc.txt deleted file mode 100644 index d1a66b9ce74..00000000000 --- a/docs/src/gcode/rs274ngc.txt +++ /dev/null @@ -1,116 +0,0 @@ -= RS274/NGC Differences - -[[cha:rs274ngc-programs]] (((RS274/NGC Programs))) - -== Changes from RS274/NGC - -.Differences that change the meaning of RS274/NGC programs - -Location after a tool change:: - -In LinuxCNC, the machine does not return to its original position -after a tool change. This change was made because the new tool -might be longer than the old tool, and the move to the original -machine position could therefore leave the tool tip too low. - -Offset parameters are ini file units:: - -In LinuxCNC, the values stored in parameters for the G28 and G30 home -locations, the P1...P9 coordinate systems, and the G92 offset are -in "ini file units". This change was made because otherwise the -meaning of a location changed depending on whether G20 or G21 was -active when G28, G30, G10 L2, or G92.3 is programmed. - -Tool table lengths/diameters are in ini file units:: - -In LinuxCNC, the tool lengths (offsets) and diameters in the tool -table are specified in ini file units only. This change was made -because otherwise the length of a tool and its diameter would -change based on whether G20 or G21 was active when initiating -G43, G41, G42 modes. This made it impossible to run G code in the -machine's non-native units, even when the G code was simple and -well-formed (starting with G20 or G21, and didn't change units -throughout the program), without changing the tool table. - -G84, G87 not implemented:: - -G84 and G87 are not currently implemented, but may be added to a -future release of LinuxCNC. - -G28, G30 with axis words:: - -When G28 or G30 is programmed with only some axis words present, -LinuxCNC only moves the named axes. This is common on other machine -controls. To move some axes to an intermediate point and then -move all axes to the predefined point, write two lines of G code: -+ -G0 X- Y- (axes to move to intermediate point) G28 (move all axes -to predefined point) - -== Additions to RS274/NGC - -.Differences that do not change the meaning of RS274/NGC programs - -G33, G76 threading codes:: - -These codes are not defined in RS274/NGC. - -G38.2:: - -The probe tip is not retracted after a G38.2 movement. This -retraction move may be added in a future release of LinuxCNC. - -G38.3...G38.5:: - -These codes are not defined in RS274/NGC - -O-codes:: - -These codes are not defined in RS274/NGC - -M50...M53 overrides:: - -These codes are not defined in RS274/NGC - -M61..M66:: - -These codes are not defined in RS274/NGC - -G43, G43.1:: - -'Negative Tool Lengths' -+ -The RS274/NGC spec says "it is expected that" all tool lengths -will be positive. However, G43 works for negative tool lengths. -+ -'Lathe tools' -+ -G43 tool length compensation can offset the tool in both the X -and Z dimensions. This feature is primarily useful on lathes. -+ -'Dynamic tool lengths' -+ -LinuxCNC allows specification of a computed tool length through G43.1 -I K. - -G41.1, G42.1:: - -LinuxCNC allows specification of a tool diameter and, if in lathe -mode, orientation in the G code. The format is G41.1/G42.1 D L, -where D is diameter and L (if specified) is the lathe tool -orientation. - -G43 without H word:: - -In ngc, this is not allowed. In LinuxCNC, it sets length offsets for -the currently loaded tool. If no tool is currently loaded, it is -an error. This change was made so the user doesn't have to -specify the tool number in two places for each tool change, and -because it's consistent with the way G41/G42 work when the D word -is not specified. - -U, V, and W axes:: - -LinuxCNC allows machines with up to 9 axes by defining an additional -set of 3 linear axes known as U, V and W - diff --git a/docs/src/gcode/rs274ngc_es.txt b/docs/src/gcode/rs274ngc_es.txt deleted file mode 100644 index a0ba896a9b5..00000000000 --- a/docs/src/gcode/rs274ngc_es.txt +++ /dev/null @@ -1,129 +0,0 @@ -= RS274/NGC Differences - -[[cha:rs274ngc-programs]] (((RS274/NGC Programs))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Changes from RS274/NGC - -.Differences that change the meaning of RS274/NGC programs - -Location after a tool change:: - -In LinuxCNC, the machine does not return to its original position -after a tool change. This change was made because the new tool -might be longer than the old tool, and the move to the original -machine position could therefore leave the tool tip too low. - -Offset parameters are ini file units:: - -In LinuxCNC, the values stored in parameters for the G28 and G30 home -locations, the P1...P9 coordinate systems, and the G92 offset are -in "ini file units". This change was made because otherwise the -meaning of a location changed depending on whether G20 or G21 was -active when G28, G30, G10 L2, or G92.3 is programmed. - -Tool table lengths/diameters are in ini file units:: - -In LinuxCNC, the tool lengths (offsets) and diameters in the tool -table are specified in ini file units only. This change was made -because otherwise the length of a tool and its diameter would -change based on whether G20 or G21 was active when initiating -G43, G41, G42 modes. This made it impossible to run G code in the -machine's non-native units, even when the G code was simple and -well-formed (starting with G20 or G21, and didn't change units -throughout the program), without changing the tool table. - -G84, G87 not implemented:: - -G84 and G87 are not currently implemented, but may be added to a -future release of LinuxCNC. - -G28, G30 with axis words:: - -When G28 or G30 is programmed with only some axis words present, -LinuxCNC only moves the named axes. This is common on other machine -controls. To move some axes to an intermediate point and then -move all axes to the predefined point, write two lines of G code: -+ -G0 X- Y- (axes to move to intermediate point) G28 (move all axes -to predefined point) - -== Additions to RS274/NGC - -.Differences that do not change the meaning of RS274/NGC programs - -G33, G76 threading codes:: - -These codes are not defined in RS274/NGC. - -G38.2:: - -The probe tip is not retracted after a G38.2 movement. This -retraction move may be added in a future release of LinuxCNC. - -G38.3...G38.5:: - -These codes are not defined in RS274/NGC - -O-codes:: - -These codes are not defined in RS274/NGC - -M50...M53 overrides:: - -These codes are not defined in RS274/NGC - -M61..M66:: - -These codes are not defined in RS274/NGC - -G43, G43.1:: - -'Negative Tool Lengths' -+ -The RS274/NGC spec says "it is expected that" all tool lengths -will be positive. However, G43 works for negative tool lengths. -+ -'Lathe tools' -+ -G43 tool length compensation can offset the tool in both the X -and Z dimensions. This feature is primarily useful on lathes. -+ -'Dynamic tool lengths' -+ -LinuxCNC allows specification of a computed tool length through G43.1 -I K. - -G41.1, G42.1:: - -LinuxCNC allows specification of a tool diameter and, if in lathe -mode, orientation in the G code. The format is G41.1/G42.1 D L, -where D is diameter and L (if specified) is the lathe tool -orientation. - -G43 without H word:: - -In ngc, this is not allowed. In LinuxCNC, it sets length offsets for -the currently loaded tool. If no tool is currently loaded, it is -an error. This change was made so the user doesn't have to -specify the tool number in two places for each tool change, and -because it's consistent with the way G41/G42 work when the D word -is not specified. - -U, V, and W axes:: - -LinuxCNC allows machines with up to 9 axes by defining an additional -set of 3 linear axes known as U, V and W - diff --git a/docs/src/gcode/rs274ngc_fr.txt b/docs/src/gcode/rs274ngc_fr.txt deleted file mode 100644 index 55bc0711283..00000000000 --- a/docs/src/gcode/rs274ngc_fr.txt +++ /dev/null @@ -1,115 +0,0 @@ -:lang: fr -:toc: - -= Différences avec RS274/NGC - -[[cha:Programmation-rs274ngc]] (((Programmation RS274/NGC))) - -== Changements entre RS274/NGC et LinuxCNC - -=== Position après un changement d'outil - -Avec LinuxCNC, le mobile ne retourne pas sur la position de départ après un -changement d'outil. Ce mode de fonctionnement est nécessaire, car un outil peut -être plus long que l'outil précédent et dans ce cas un mouvement sur la position -précédente placerait l'outil trop bas. - -=== Les paramètres de décalage sont dans l'unité du fichier ini - -Dans LinuxCNC, les valeurs mémorisées dans les paramètres pour les positions -d'origine des commandes G28 et G30, les systèmes de coordonnées P1 à P9 et le -décalage G92 sont dans l'unité du fichier ini. -Ce changement a été fait car la position d'un point change selon que G20 ou G21 -était actif lors de la programmation d'un G28, G30, G10 L2 ou G92.3. - -=== Table d'outils, longueur et diamètre sont dans l'unité du fichier ini - -Dans LinuxCNC, les longueurs d'outil (compensation) et les diamètres sont spécifiés -seulement dans l'unité du fichier ini. Cela est nécessaire, car la longueur et -le diamètre de l'outil changent selon que G20 ou G21 étaient actifs à -l'initialisation des modes G43, G41, G42. Il était donc impossible de lancer -un G-code avec des unités machines non natives, ceci même lorsque le G-code est -simple et bien formé (débutant par G20 ou G21 et sans changement d'unité tout au -long du programme) sans changer la table d'outils. - -=== G84, G87 ne sont pas implémentés - -G84 et G87 ne sont pour le moment pas implémentés. Ils le seront dans une -version futur de LinuxCNC. - -=== G28, G30 avec des mots d'axe - -Lorsqu'un G28 ou un G30 est programmé avec seulement quelques mots d'axe présents, -LinuxCNC déplace seulement les axes nommés. Ce comportement est commun aux -contrôleurs de machine. Pour déplacer certains axes à un point intermédiaire, -puis déplacer tous les axes à un point prédéfini, écrire deux lignes de G-code: + ----- -G0 X- Y- (déplace les axes au point intermédiaire) -G28 (déplace tous les axes au point prédéfini) ----- - -== Ajouts à RS274/NGC - -Différences qui ne changent pas le déroulement des programmes en RS274/NGC. - -=== Codes de filetage G33 et G76 - -Ces codes ne sont pas définis dans RS274/NGC. - -=== G38.2 - -La pointe de touche n'est pas rétractée après un mouvement G38.2. -Ce mouvement de retrait sera ajouté dans une version futur de LinuxCNC. - -=== G38.3 à G38.5 - -Ces codes ne sont pas définis dans RS274/NGC. - -=== Les O-codes - -Ces codes ne sont pas définis dans RS274/NGC - -=== M50 à M53 Correcteurs de vitesse - -Ces codes ne sont pas définis dans RS274/NGC. - -=== M61 à M66 - -Ces codes ne sont pas définis dans RS274/NGC. - -=== G43, G43.1 - -Longueurs d'outil négatives:: - -Les spécifications RS274/NGC précisent "il est prévu que" toutes les longueurs -d'outils soient positives. Cependant, G43 fonctionne avec des longueurs d'outil -négatives. - -Outils de tournage:: - -La compensation de longueur d'outil G43 peut compenser l'outil à la fois en X et -en Z. Cette fonctionnalité est surtout utile sur les tours. - -Longueurs d'Outil dynamiques:: - -LinuxCNC permet la spécification d'une longueur d'outil calculée par G43.1 I K. - -=== G41.1, G42.1 Compensation dynamique - -LinuxCNC permet dans le G-code, la spécification d'un diamètre d'outil et en mode -tour, l'orientation est également spécifiée. Le format est G41.1/G42.1 D L, où -D est le diamètre et L (si spécifié) est l'orientation de l'outil de tournage. - -=== G43 sans le mot H - -Ce code n'est pas permis en NGC. Dans LinuxCNC, il fixe la compensation de longueur -pour l'outil actuellement chargé. Si aucun outil n'est actuellement chargé, -c'est une erreur. Ceci a été fait afin que l'utilisateur n'ait pas à spécifier, -pour chaque changement d'outil, le numéro d'outil à deux endroits et c'est -cohérent avec la manière de fonctionner de G41/G42 quand le mot D n'est pas -spécifié. - -=== U, V et W axes - -LinuxCNC peut admettre des machines ayant jusqu'à 9 axes en définissant un -ensemble supplémentaire de 3 axes linéaires, connus comme U, V et W. diff --git a/docs/src/gcode/tool_compensation.txt b/docs/src/gcode/tool_compensation.txt deleted file mode 100644 index 125a471195a..00000000000 --- a/docs/src/gcode/tool_compensation.txt +++ /dev/null @@ -1,352 +0,0 @@ -= Tool Compensation - -[[cha:tool-compensation]] (((Tool Compensation))) - -== Tool Length Offsets - -=== Touch Off(((Touch Off))) - -Using the Touch Off Screen in the AXIS interface you can update the -tool table automatically. - -Typical steps for updating the tool table: - -* After homing load a tool with 'Tn M6' where 'n' is the tool number. -* Move tool to an established point using a gauge or take a test cut and - measure. -* Click the "Touch Off" button in the Manual Control tab (or hit the - End button on your keyboard). -* Select 'Tool Table' in the Coordinate System drop down box. -* Enter the gauge or measured dimension and select OK. - -The Tool Table will be changed with the correct Z length to make the -DRO display the correct Z position and a G43 command will be issued so -the new tool Z length will be in effect. Tool table touch off is only -available when a tool is loaded with 'Tn M6'. - -.Touch Off Tool Table[[cap:Touch-Off-Tool]] - -image::images/ToolTable-TouchOff.png[align="center"] - -=== Using G10 L1/L10/L11 - -The G10 L1/L10/L11 commands can be used to set tool table offsets: - (these are just quick summaries, see the G code section for full details) - -* 'G10 L1 Pn' - Set offset(s) to a value. Current position irrelevant. - (see <> for details) - -* 'G10 L10 Pn' - Set offset(s) so current position w/ fixture 1-8 becomes a value. - (see <> for details) - -* 'G10 L11 Pn' - Set offset(s) so current position w/ fixture 9 becomes a value. - (see <> for details) - -[[sec:tool-table]] -== Tool Table - -// carried over from machining_center.txt for salvage -mah - -// === Mill Format Tool Files - -// The “mill format†of a tool file is shown in Table -// <>. - -// .Sample Tool File (mill format)[[cap:Sample-Tool-File]] - -// [width="90%", options="header"] -// |======================================== -// |Pocket | FMS | TLO | Diameter | Comment -// | | | | | -// |1 | 1 | 2.0 | 1.0 | -// |2 | 2 | 1.0 | 0.2 | -// |5 | 5 | 1.5 | 0.25 | endmill -// |10 | 10 | 2.4 | -0.3 | for testing -// |======================================== - -// Each line has five entries. The first four entries are required. The -// last entry (a comment) is optional. It makes reading easier if the -// entries are arranged in columns, as shown in the table, but the only -// format requirement is that there be at least one space or tab after -// each of the first three entries on a line and a space, tab, or newline -// at the end of the fourth entry. The meanings of the columns and the -// type of data to be put in each are as follows. - -// The “Pocket†column contains the number (unsigned integer) which -// represents the pocket number (slot number) of the tool carousel slot in -// which the tool is placed. The entries in this column must all be -// different. - -// The “FMS†column contains the number (unsigned integer) which -// represents a code number for the tool. The user may use any code for -// any tool, as long as the codes are unsigned integers. This is typically -// the same as the pocket number. - -// The “TLO†column contains a real number which represents the tool -// length offset. This number will be used if tool length offsets are -// being used and this pocket is selected. This is normally a positive -// real number, but it may be zero or any other number if it is never to -// be used. - -// The “Diameter†column contains a real number. This number is used only -// if tool radius compensation is turned on using this pocket. If the -// programmed path during compensation is the edge of the material being -// cut, this should be a positive real number representing the measured -// diameter of the tool. If the programmed path during compensation is the -// path of a tool whose diameter is nominal, this should be a small number -// (positive, negative, or zero) representing the difference between the -// measured diameter of the tool and the nominal diameter. If cutter -// radius compensation is not used with a tool, it does not matter what -// number is in this column. - -// The “Comment†column may optionally be used to describe the tool. Any -// type of description is OK. This column is for the benefit of human -// readers only. - -The 'Tool Table' is a text file that contains information about each -tool. The file is located in the same directory as your configuration -and is called 'tool.tbl'. The tools might be in a tool changer or just -changed manually. The file can be edited with a text editor or be -updated using G10 L1. See the <> -Section for an example of the lathe tool table format. -The maximum number of entries in the tool table is 56. -The maximum tool and pocket number is 99999. - -The <> or a text editor can be used to edit the -tool table. If you use a text editor make sure you reload the tool table in -the GUI. - -=== Tool Table Format -(((Tool-Table-Format))) - -.Tool Table Format - -[width="100%", options="header"] -|======================================== -|T# |P# |X |Y |Z |A |B |C |U |V |W |Dia |FA |BA |Ori |Rem -|; 15+^|(no data after opening semicolon) -|T1 |P17 |X0 |Y0 |Z0 |A0 |B0 |C0 |U0 |V0 |W0 |D0 |I0 |J0 |Q0 |;rem -|T2 |P5 |X0 |Y0 |Z0 |A0 |B0 |C0 |U0 |V0 |W0 |D0 |I0 |J0 |Q0 |;rem -|T3 |P12 |X0 |Y0 |Z0 |A0 |B0 |C0 |U0 |V0 |W0 |D0 |I0 |J0 |Q0 |;rem -|======================================== - -In general, the new tool table line format is: - - - ; - opening semicolon, no data - - T - tool number, 0-99999 (tool numbers must be unique) - - P - pocket number, 1-99999 (pocket numbers must be unique) - - X..W - tool offset on specified axis - floating-point - - D - tool diameter - floating-point, absolute value - - I - front angle (lathe only) - floating-point - - J - back angle (lathe only) - floating-point - - Q - tool orientation (lathe only) - integer, 0-9 - - ; - beginning of comment or remark - text - -The file consists of one opening semicolon on the first line, -followed by up to a maximum of 56 tool entries. -footnote:[Although tool numbers up to 99999 are allowed, the number -of entries in the tool table, at the moment, is still limited to a -maximum of 56 tools for technical reasons. The LinuxCNC developers plan -to remove that limitation eventually. If you have a very large -tool changer, please be patient.] - -Earlier versions of LinuxCNC had two different tool table formats for -mills and lathes, but since the 2.4.x release, one tool table format -is used for all machines. Just ignore the parts of the tool table -that don't pertain to your machine, or which you don't need to use. - -Each line of the tool table file after the opening semicolon contains -the data for one tool. One line may contain as many as 16 entries, -but will likely contain much fewer. - -The units used for the length, diameter, etc., are in machine units. - -You will probably want to keep the tool entries in ascending order, -especially if you are going to be using a randomizing tool changer. -Although the tool table does allow for tool numbers in any order. - -Each line may have up to 16 entries. The first two entries are required. -The last entry (a remark or comment, preceded by a semicolon) is -optional. It makes reading easier if the entries are arranged in -columns, as shown in the table, but the only format requirement is -that there be at least one space or tab after each of the entries on -a line and a newline character at the end of each entry. - -The meanings of the entries and the type of data to be put in each are -as follows. - -.Tool Number (required) -The 'T' column contains the number (unsigned integer) which -represents a code number for the tool. The user may use any code for -any tool, as long as the codes are unsigned integers. - -.Pocket Number (required) -The 'P' column contains the number (unsigned integer) which -represents the pocket number (slot number) of the tool changer slot -where the tool can be found. The entries in this column must all be -different. - -The pocket numbers will typically start at 1 and go up to the highest -available pocket on your tool changer. But not all tool changers follow -this pattern. Your pocket numbers will be determined by the numbers -that your tool changer uses to refer to the pockets. So all this is to -say that the pocket numbers you use will be determined by the numbering -scheme used in your tool changer, and the pocket numbers you use must -make sense on your machine. - -.Data Offset Numbers (optional) -The 'Data Offset' columns (XYZABCUVW) contain real numbers which -represent tool offsets in each axis. This number will be used if tool -length offsets are being used and this tool is selected. -These numbers can be positive, zero, or negative, and are in fact -completely optional. Although you will probably want to make at least -one entry here, otherwise there would be little point in making an -entry in the tool table to begin with. - -In a typical mill, you probably want an entry for Z (tool length -offset). In a typical lathe, you probably want an entry for X -(X tool offset) and Z (Z tool offset). In a typical mill using -cutter diameter compensation (cutter comp), you probably also want -to add an entry for D (cutter diameter). In a typical lathe using -tool nose diameter compensation (tool comp), you probably also want -to add an entry for D (tool nose diameter). - -A lathe also requires some additional information to describe the -shape and orientation of the tool. So you probably want to have entries -for I (tool front angle) and J (tool back angle). -You probably also want an entry for Q (tool orientation). - -A complete description of the lathe entries can be found in the lathe -section of the user manual <>. - -The 'Diameter' column contains a real number. This number is used only -if cutter compensation is turned on using this tool. If the -programmed path during compensation is the edge of the material being -cut, this should be a positive real number representing the measured -diameter of the tool. If the programmed path during compensation is the -path of a tool whose diameter is nominal, this should be a small number -(positive or negative, but near zero) representing only the difference -between the measured diameter of the tool and the nominal diameter. -If cutter compensation is not used with a tool, it does not -matter what number is in this column. - -The 'Comment' column may optionally be used to describe the tool. Any -type of description is OK. This column is for the benefit of human -readers only. The comment must be preceded by a semicolon. - -=== [[sec:Tool-Changers]] Tool Changers - -LinuxCNC supports three types of tool changers: 'manual', 'random location' -and 'fixed location'. Information about configuring an LinuxCNC tool changer -is in the Integrator Manual. - -.Manual Tool Changer - -Manual tool changer (you change the tool by hand) is treated like a -fixed location tool changer and the P number is ignored. Using the -manual tool changer only makes sense if you have tool holders that -remain with the tool (Cat, NMTB, Kwik Switch etc.) when changed thus -preserving the location of the tool to the spindle. Machines with R-8 -or router collet type tool holders do not preserve the location of the -tool and the manual tool changer should not be used. - -.Fixed Location Tool Changers - -Fixed location tool changers always return the tools to a -fixed position in the tool changer. This would also include -designs like lathe turrets. When LinuxCNC is configured for a fixed -location tool changer the 'P' number is ignored (but read, preserved -and rewritten) by LinuxCNC, so you can use P for any bookkeeping number you -want. - -.Random Location Tool Changers - -Random location tool changers swap the tool in the spindle with the -one in the changer. With this type of tool changer the tool will -always be in a different pocket after a tool change. When a tool is -changed LinuxCNC rewrites the pocket number to keep track of where the tools -are. T can be any number but P must be a number that makes sense for -the machine. - - -[[sec:cutter-compensation]] -== Cutter Compensation - -Cutter Compensation allows the programmer to program the tool -path without knowing the exact tool diameter. The only caveat is the -programmer must program the lead in move to be at least as long as the -largest tool radius that might be used. - -There are two possible paths the cutter can take while cutter -compensation is on to the left or right side of a line when facing the -direction of cutter motion from behind the cutter. To visualize this -imagine you were standing on the part walking behind the tool as it -progresses across the part. G41 is your left side of the line and G42 -is the right side of the line. - -The end point of each move depends on the next move. If the next move -creates an outside corner the move will be to the end point of the -compensated cut line. If the next move creates in an inside corner the -move will stop short so to not gouge the part. The following figure -shows how the compensated move will stop at different points depending -on the next move. - -.Compensation End Point[[cap:Compensation-End-Point]] - -image::images/comp-path.png[align="center"] - -=== Overview - -.Tool Table - -Cutter compensation uses the data from the tool table to -determine the offset needed. The data can be set at run time with G10 -L1. - -.Programming Entry Moves - -Any move that is long enough to perform the compensation will work as -the entry move. The minimum length is the cutter radius. This can be a -rapid move above the work piece. If several rapid moves are issued -after a G41/42 only the last one will move the tool to the compensated -position. - -In the following figure you can see that the entry move is compensated -to the right of the line. This puts the center of the tool to the right -of X0 in this case. If you were to program a profile and the end is at -X0 the resulting profile would leave a bump due to the offset of the -entry move. - -.Entry Move[[cap:Entry-Move]] - -image::images/comp02.png[] - -.Z Motion - -Z axis motion may take place while the contour is being followed in -the XY plane. Portions of the contour may be skipped by retracting the -Z axis above the part and by extending the Z-axis at the next start -point. - -.Rapid Moves - -Rapid moves may be programed while compensation is turned on. - -.Good Practices - - - Start a program with G40 to make sure compensation is off. - -=== Examples - -.Outside Profile - -.Outside Profile[[cap:Outside-Profile]] - -image::images/outside-comp.png[] - -.Inside Profile - -.Inside Profile[[cap:Inside-Profile]] - -image::images/inside-comp.png[] - diff --git a/docs/src/gcode/tool_compensation_es.txt b/docs/src/gcode/tool_compensation_es.txt deleted file mode 100644 index 5722a02b038..00000000000 --- a/docs/src/gcode/tool_compensation_es.txt +++ /dev/null @@ -1,301 +0,0 @@ -= Tool Compensation - -[[cha:tool-compensation]] (((Tool Compensation))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Tool Length Offsets - -=== Touch Off(((Touch Off))) - -Using the Touch Off Screen in the AXIS interface you can update the -tool table automatically. - -Typical steps for updating the tool table: - -* After homing load a tool with 'Tn M6' where 'n' is the tool number. -* Move tool to an established point using a gauge or take a test cut and - measure. -* Click the "Touch Off" button in the Manual Control tab (or hit the - End button on your keyboard). -* Select 'Tool Table' in the Coordinate System drop down box. -* Enter the gauge or measured dimension and select OK. - -The Tool Table will be changed with the correct Z length to make the -DRO display the correct Z position and a G43 command will be issued so -the new tool Z length will be in effect. Tool table touch off is only -available when a tool is loaded with 'Tn M6'. - -.Touch Off Tool Table[[cap:Touch-Off-Tool]] - -image::images/ToolTable-TouchOff.png[align="center"] - -=== Using G10 L1/L10/L11 - -The G10 L1/L10/L11 commands can be used to set tool table offsets: - (these are just quick summaries, see the G code section for full details) - -* 'G10 L1 Pn' - Set offset(s) to a value. Current position irrelevant. - (see <> for details) - -* 'G10 L10 Pn' - Set offset(s) so current position w/ fixture 1-8 becomes a value. - (see <> for details) - -* 'G10 L11 Pn' - Set offset(s) so current position w/ fixture 9 becomes a value. - (see <> for details) - -== Tool Table [[sec:tool-table]] - -The 'Tool Table' is a text file that contains information about each -tool. The file is located in the same directory as your configuration -and is called 'tool.tbl'. The tools might be in a tool changer or just -changed manually. The file can be edited with a text editor or be -updated using G10 L1. See the <> -Section for an example of the lathe tool table format. -The maximum number of entries in the tool table is 56. -The maximum tool and pocket number is 99999. - -=== Tool Table Format -(((Tool-Table-Format))) - -.Tool Table Format - -[width="100%", options="header"] -|======================================== -|T# |P# |X |Y |Z |A |B |C |U |V |W |Dia |FA |BA |Ori |Rem -|; 15+^|(no data after opening semicolon) -|T1 |P17 |X0 |Y0 |Z0 |A0 |B0 |C0 |U0 |V0 |W0 |D0 |I0 |J0 |Q0 |;rem -|T2 |P5 |X0 |Y0 |Z0 |A0 |B0 |C0 |U0 |V0 |W0 |D0 |I0 |J0 |Q0 |;rem -|T3 |P12 |X0 |Y0 |Z0 |A0 |B0 |C0 |U0 |V0 |W0 |D0 |I0 |J0 |Q0 |;rem -|======================================== - -In general, the new tool table line format is: - - - ; - opening semicolon, no data - - T - tool number, 0-99999 (tool numbers must be unique) - - P - pocket number, 1-99999 (pocket numbers must be unique) - - X..W - tool offset on specified axis - floating-point - - D - tool diameter - floating-point, absolute value - - I - front angle (lathe only) - floating-point - - J - back angle (lathe only) - floating-point - - Q - tool orientation (lathe only) - integer, 0-9 - - ; - beginning of comment or remark - text - -The file consists of one opening semicolon on the first line, -followed by up to a maximum of 56 tool entries. -footnote:[Although tool numbers up to 99999 are allowed, the number -of entries in the tool table, at the moment, is still limited to a -maximum of 56 tools for technical reasons. The LinuxCNC developers plan -to remove that limitation eventually. If you have a very large -tool changer, please be patient.] - -Earlier versions of LinuxCNC had two different tool table formats for -mills and lathes, but since the 2.4.x release, one tool table format -is used for all machines. Just ignore the parts of the tool table -that don't pertain to your machine, or which you don't need to use. - -Each line of the tool table file after the opening semicolon contains -the data for one tool. One line may contain as many as 16 entries, -but will likely contain much fewer. - -The units used for the length, diameter, etc., are in machine units. - -You will probably want to keep the tool entries in ascending order, -especially if you are going to be using a randomizing tool changer. -Although the tool table does allow for tool numbers in any order. - -Each line may have up to 16 entries. The first two entries are required. -The last entry (a remark or comment, preceded by a semicolon) is -optional. It makes reading easier if the entries are arranged in -columns, as shown in the table, but the only format requirement is -that there be at least one space or tab after each of the entries on -a line and a newline character at the end of each entry. - -The meanings of the entries and the type of data to be put in each are -as follows. - -.Tool Number (required) -The 'T' column contains the number (unsigned integer) which -represents a code number for the tool. The user may use any code for -any tool, as long as the codes are unsigned integers. - -.Pocket Number (required) -The 'P' column contains the number (unsigned integer) which -represents the pocket number (slot number) of the tool changer slot -where the tool can be found. The entries in this column must all be -different. - -The pocket numbers will typically start at 1 and go up to the highest -available pocket on your tool changer. But not all tool changers follow -this pattern. Your pocket numbers will be determined by the numbers -that your tool changer uses to refer to the pockets. So all this is to -say that the pocket numbers you use will be determined by the numbering -scheme used in your tool changer, and the pocket numbers you use must -make sense on your machine. - -.Data Offset Numbers (optional) -The 'Data Offset' columns (XYZABCUVW) contain real numbers which -represent tool offsets in each axis. This number will be used if tool -length offsets are being used and this tool is selected. -These numbers can be positive, zero, or negative, and are in fact -completely optional. Although you will probably want to make at least -one entry here, otherwise there would be little point in making an -entry in the tool table to begin with. - -In a typical mill, you probably want an entry for Z (tool length -offset). In a typical lathe, you probably want an entry for X -(X tool offset) and Z (Z tool offset). In a typical mill using -cutter diameter compensation (cutter comp), you probably also want -to add an entry for D (cutter diameter). In a typical lathe using -tool nose diameter compensation (tool comp), you probably also want -to add an entry for D (tool nose diameter). - -A lathe also requires some additional information to describe the -shape and orientation of the tool. So you probably want to have entries -for I (tool front angle) and J (tool back angle). -You probably also want an entry for Q (tool orientation). - -A complete description of the lathe entries can be found in the lathe -section of the user manual <>. - -The 'Diameter' column contains a real number. This number is used only -if tool radius compensation is turned on using this tool. If the -programmed path during compensation is the edge of the material being -cut, this should be a positive real number representing the measured -diameter of the tool. If the programmed path during compensation is the -path of a tool whose diameter is nominal, this should be a small number -(positive or negative, but near zero) representing only the difference -between the measured diameter of the tool and the nominal diameter. -If cutter radius compensation is not used with a tool, it does not -matter what number is in this column. - -The 'Comment' column may optionally be used to describe the tool. Any -type of description is OK. This column is for the benefit of human -readers only. The comment must be preceded by a semicolon. - -=== Tool Changers - -LinuxCNC supports three types of tool changers: 'manual', 'random location' -and 'fixed location'. Information about configuring an LinuxCNC tool changer -is in the Integrator Manual. - -.Manual Tool Changer - -Manual tool changer (you change the tool by hand) is treated like a -fixed location tool changer and the P number is ignored. Using the -manual tool changer only makes sense if you have tool holders that -remain with the tool (Cat, NMTB, Kwik Switch etc.) when changed thus -preserving the location of the tool to the spindle. Machines with R-8 -or router collet type tool holders do not preserve the location of the -tool and the manual tool changer should not be used. - -.Fixed Location Tool Changers - -Fixed location tool changers always return the tools to a -fixed position in the tool changer. This would also include -designs like lathe turrets. When LinuxCNC is configured for a fixed -location tool changer the 'P' number is ignored (but read, preserved -and rewritten) by LinuxCNC, so you can use P for any bookkeeping number you -want. - -.Random Location Tool Changers - -Random location tool changers swap the tool in the spindle with the -one in the changer. With this type of tool changer the tool will -always be in a different pocket after a tool change. When a tool is -changed LinuxCNC rewrites the pocket number to keep track of where the tools -are. T can be any number but P must be a number that makes sense for -the machine. - - -== Cutter Radius Compensation[[sec:cutter-radius-compensation]] - -Cutter Radius Compensation allows the programmer to program the tool -path without knowing the exact tool diameter. The only caveat is the -programmer must program the lead in move to be at least as long as the -largest tool radius that might be used. - -There are two possible paths the cutter can take while cutter radius -compensation is on to the left or right side of a line when facing the -direction of cutter motion from behind the cutter. To visualize this -imagine you were standing on the part walking behind the tool as it -progresses across the part. G41 is your left side of the line and G42 -is the right side of the line. - -The end point of each move depends on the next move. If the next move -creates an outside corner the move will be to the end point of the -compensated cut line. If the next move creates in an inside corner the -move will stop short so to not gouge the part. The following figure -shows how the compensated move will stop at different points depending -on the next move. - -.Compensation End Point[[cap:Compensation-End-Point]] - -image::images/comp-path.png[align="center"] - -=== Overview - -.Tool Table - -Cutter radius compensation uses the data from the tool table to -determine the offset needed. The data can be set at run time with G10 -L1. - -.Programming Entry Moves - -Any move that is long enough to perform the compensation will work as -the entry move. The minimum length is the cutter radius. This can be a -rapid move above the work piece. If several rapid moves are issued -after a G41/42 only the last one will move the tool to the compensated -position. - -In the following figure you can see that the entry move is compensated -to the right of the line. This puts the center of the tool to the right -of X0 in this case. If you were to program a profile and the end is at -X0 the resulting profile would leave a bump due to the offset of the -entry move. - -.Entry Move[[cap:Entry-Move]] - -image::images/comp02.png[] - -.Z Motion - -Z axis motion may take place while the contour is being followed in -the XY plane. Portions of the contour may be skipped by retracting the -Z axis above the part and by extending the Z-axis at the next start -point. - -.Rapid Moves - -Rapid moves may be programed while compensation is turned on. - -.Good Practices - - - Start a program with G40 to make sure compensation is off. - -=== Examples - -.Outside Profile - -.Outside Profile[[cap:Outside-Profile]] - -image::images/outside-comp.png[] - -.Inside Profile - -.Inside Profile[[cap:Inside-Profile]] - -image::images/inside-comp.png[] - diff --git a/docs/src/gcode/tool_compensation_fr.txt b/docs/src/gcode/tool_compensation_fr.txt deleted file mode 100644 index 9afbdad7098..00000000000 --- a/docs/src/gcode/tool_compensation_fr.txt +++ /dev/null @@ -1,879 +0,0 @@ -:lang: fr -:toc: - -= Les compensations d'outil - -[[cha:compensation-outil]] (((Compensation d'outil))) - -== Compensation de longueur d'outil - -=== Toucher -(((Toucher))) - -Dans la boîte de dialogue du bouton 'Toucher' de l'interface AXIS, il -est possible de mettre à jour automatiquement la table d'outils. - -Séquence typique pour mise à jour de la table d'outils: - -* Après la prise d'origine, charger un outil 'Tn M6' dans lequel 'n' est le - numéro de l'outil. -* Déplacer l'outil pour établir le zéro pièce, en utilisant une cale -d'épaisseur ou en faisant une petite passe puis une mesure. -* Cliquer sur le bouton 'Toucher' de l'onglet 'Controle manuel' (ou presser la -touche 'Fin' du clavier). -* Sélectionner 'Table d'outils' dans la liste déroulante des systèmes de -coordonnées. -* Entrer l'épaisseur de la cale ou la cote mesurée. -* Presser OK. - -La table d'outil sera alors modifiée avec la longueur correcte en Z de l'outil. -La visu affichera la position en Z correcte et une commande G43 sera passée pour -que la nouvelle longueur Z de l'outil soit effective. Le choix 'Table d'outils' -n'apparaitra dans la liste déroulante du 'Toucher', que si l'outil à été chargé -avec 'Tn M6'. - -.Toucher et table d'outils[[cap:Touch-Off-Tool]] - -image::images/ToolTable-TouchOff_fr.png[] - -=== Utilisation de G10 L1/L10/L11 - -Les commandes G10 L1/L10/L11 peuvent être utilisées pour ajuster les compensations -dans la table d'outils: - (Ce sera juste une brève présentation, se reporter au guide de références du -G-code pour des explications plus détaillées) - -G10 L1 Pn - (n est le N° d'outil) Fixe les offsets de l'outil. La position -courante n'est pas significative. <>. (((G10 L1))) - -G10 L10 Pn - (n est le N° d'outil) Fixe l'offset à la position courante, met -les valeurs dans un système de 1 à 8. <>.(((G10 L10))) - -G10 L11 Pn - (n est le N° d'outil) Fixe l'offset à la position courante, met -les valeurs dans le système 9. <>. (((G10 L11))) - -[[sec:Table-Outils]] -== Table d'outils - -La 'table d'outils' est un fichier texte qui contient les informations de chaque -outil. Ce fichier est placé dans le même répertoire que le fichier de -configuration. -Il est nommé 'tool.tbl'. Les outils peuvent être dans un changeur d'outils ou -changés manuellement. Le fichier peut être édité avec un éditeur de texte ou -être mis à jour avec la commande G10 L1. Voir la section spécifique au tour -pour ce qui concerne les outils de tour, avec un exemple de table. Le nombre -d'outils est limité à 56 dans une table d'outils même si la numérotation des -outils et des poches peut aller jusqu'à 99999. - -=== Format de la table d'outils[[sec:Tool-Table-Format]] -(((Format de la table d'outils))) - -.Format de la table d'outils - -[width="100%", options="header"] -|======================================== -|T# |P# |X |Y |Z |A |B |C |U |V |W |Dia |FA |BA |Ori |Rem -|; 15+^|(aucune donnée après le point-virgule) -|T1 |P17 |X0 |Y0 |Z0 |A0 |B0 |C0 |U0 |V0 |W0 |D0 |I0 |J0 |Q0 |;rem -|T2 |P5 |X0 |Y0 |Z0 |A0 |B0 |C0 |U0 |V0 |W0 |D0 |I0 |J0 |Q0 |;rem -|T3 |P12 |X0 |Y0 |Z0 |A0 |B0 |C0 |U0 |V0 |W0 |D0 |I0 |J0 |Q0 |;rem -|======================================== - -En général, le format d'une ligne de table d'outils est le suivant: - - - ; Un point-virgule comme premier caractère, aucune donnée - - T Numéro d'outil, 0-99999 (chaque numéro d'outil doit être unique) - - P Numéro de poche, 1-99999 (chaque numéro de poche doit être unique) - - X..W Offset d'outil sur les axes spécifiés - nombre à virgule flottante - - D diamètre d'outil - nombre à virgule flottante, valeur absolue - - I angle frontal (tour seulement) - nombre à virgule flottante - - J angle de dos (tour seulement) - nombre à virgule flottante - - Q orientation de l'outil (tour seulement) - entier de 0 à 9 - - ; début de commentaire ou remarque - texte - -Le fichier commence par un point-virgule en première ligne, suivi par les -caractéristiques de 56 outils au maximum. -footnote:[Bien que les numéros d'outils puissent aller jusqu'à 99999, le nombre -d'outils dans la table, en ce moment, est limité à un maximum de 56 outils pour -des raisons techniques. Les développeurs de LinuxCNC envisagent la possibilité de -faire sauter cette limitation. Si vous avez un très gros changeur d'outils, -merci d'être patient.] - -Les versions antérieures de LinuxCNC avaient deux différents formats de table -d'outils un pour les fraiseuses et un pour les tours, mais depuis la -version 2.4.x, un format unique est utilisé pour toutes les machines. Il suffi -d'ignorer les parties de la table d'outils qui ne se rapportent pas la machine -actuelle, ou que vous n'avez pas besoin d'utiliser. - -Chaque ligne du fichier de la table d'outils après le point-virgule ouvrant, -contient les données pour un seul outil. Une ligne peut contenir jusqu'à -16 entrées, mais peut aussi en contenir beaucoup moins. - -Les unités utilisées pour les longueurs, diamètres, etc. sont en unités machine. - -Vous voudrez probablement maintenir les entrées d'outils dans l'ordre croissant, -surtout si vous utilisez un changeur d'outils aléatoire. Bien que la table -d'outils permettent des numéros d'outils dans n'importe quel ordre. - -Chaque ligne peut avoir jusqu'à 16 valeurs. Les deux premières valeurs sont -requises. -La dernière valeur (un point-virgule suivi d'un commentaire) est optionnelle. -La lecture sera rendue plus facile si les valeurs sont disposées en colonnes, -comme indiqué dans le tableau, mais la seule exigence sur le format est qu'il y -ait au moins un espace ou une tabulation après chacune des valeurs sur une -ligne et un saut de ligne à la fin de chaque ligne. - -La signification des valeurs et le type de données qu'elles contiennent sont les -suivantes: - -.Numéro d'outil (requis) -La colonne 'T' contient un nombre entier non signé, qui représente -le code de l'outil. L'opérateur peut utiliser n'importe quel code pour -n'importe quel outil, tant que les codes sont des entiers non signés. - -.Numéro de poche (requis) -La colonne 'P' contient un nombre entier non signé, qui représente -le numéro de poche (numéro de slot) du changeur d'outils, poche dans laquelle -l'outil se trouve. Les entrées de cette colonne doivent être toutes différentes. -Le numéro de poche commence typiquement à 1 et va au maximum de poches -disponibles sur le changeur d'outils. Mais tous les changeurs d'outils ne -suivent pas ce modèle. Votre numéro de poche sera déterminé, par le numéro -que votre changeur d'outils utilisera pour se référer à ses poches. Tout cela -pour dire que les numéros de poche que vous utiliserez seront déterminés par -le schéma de numérotation de votre changeur d'outils. Les numéros de poche -doivent suivre la même logique que la machine. - -.Données d'offset des outils (optionnelles) -Les colonnes de données d'offset (XYZABCUVW) contiennent des nombres réels qui -représentent les offsets d'outil pour chacun des axes. Ce nombre sera utilisé -si, en usinage, les offsets de longueur d'outil sont utilisés et que l'outil -concerné est sélectionné. Ces nombres peuvent être positif, égaux à zéro ou -négatif, ils sont en fait, complètement optionnels. Bien qu'il vaudrait mieux -qu'il y ait au moins une valeur ici, sinon il n'y aurait aucun intérêt à se -servir d'une entrée complétement vide dans la table d'outils. - -Sur une fraiseuse classique, on trouvera probablement une entrée en Z -(offset de longueur d'outil). Sur un tour classique, on trouvera certainement -un entrée en X (offset d'outil en X) et une en Z (offset d'outil en Z). Sur -une fraiseuse classique utilisant la compensation de rayon d'outil, on -trouvera une valeur en D pour l'offset de diamètre. Sur un tour classique -utilisant la compensation de diamètre de bec d'outil, une valeur sera entrée -en D (diamètre de bec). - -Un tour demande encore d'autres information additionnelles pour décrire la forme -et l'orientation de l'outil. Ainsi, sans tenir compte des angles ni des faces de -l'outil, qui sont de la compétence du tourneur, on trouvera une valeur en I -(angle avant) et en J (angle de dos) ainsi qu'une valeur en Q (orientation). - -Une description complète des outils de tour <>. - -La colonne 'Diamètre' contient un nombre réel. Ce nombre est utilisé seulement -si la compensation est activée lors de l'usage de cet outil. Si la trajectoire -programmée avec la compensation active, est un des bords de la matière à usiner, -cette valeur doit être un nombre réel positif, représentant le diamètre mesuré -de l'outil. Si la trajectoire programmée, toujours avec la compensation active, -est prévue pour un diamètre nominal d'outil, ce nombre doit être très petit -(négatif ou positif, mais proche de zéro), il représente seulement la différence -entre le diamètre nominal et le diamètre mesuré de l'outil. Si la compensation -n'est pas utilisée avec un outil, cette valeur est sans importance. - -La colonne des commentaires peut optionnellement être utilisée pour décrire -l'outil. Elle commence par un point-virgule, elle peut contenir n'importe quel -texte pour le seul bénéfice de l'opérateur. - -[[sec:Outils-et-Compensations]] -= Fichier d'outils et compensations - -== Fichier d'outils - -Les longueurs et diamètres d'outils peuvent être lus -<> ou provenir d'un -mot spécifié pour activer la compensation d'outil. - -== Compensation d'outil - -La compensation d'outil peut causer beaucoup de problèmes aux -meilleurs programmeurs. Mais elle peut aussi être une aide puissante quand -elle est utilisée pour aider l'opérateur à obtenir une -pièce à la cote. En réglant la longueur et le diamètre des outils dans -une table d'outils, les décalages peuvent être utilisés pendant un -cycle d'usinage qui tient compte des variations de taille de l'outil, -ou pour des déviations mineures des trajectoires programmées. Et ces -changements peuvent être faits sans que l'opérateur n'ait à changer -quoi que ce soit dans le programme. - -Tout au long de ce module, vous trouverez occasionnellement des -références à des fonctions canoniques, là où il est nécessaire pour le -lecteur de comprendre comment fonctionne une compensation d'outil dans -une situation spécifique. Ces références ont pour but de donner au -lecteur une idée de la séquences plutôt que d'exiger qu'il comprenne la -façon dont les fonctions canoniques elles-mêmes fonctionnent dans LinuxCNC. - -[[sec:Compensation-longueur-d-outil]] -== Compensation de longueur d'outil - -Les compensations de longueur d'outil sont données comme des nombres -positifs dans la table d'outils. Une compensation d'outil est -programmée en utilisant G43 Hn, où n est le numéro d'index de l'outil -souhaité dans la table d'outil. Il est prévu que toutes les entrées -dans la table d'outils soit positives. La valeur de H est vérifiée, -elle doit être un entier non négatif quand elle est lue. L'interpréteur -se comporte comme suit: - -1. Si G43 Hn est programmé, un appel à la fonction -USE_TOOL_LENGTH_OFFSET(longueur) est fait (où longueur est l'écart de -longueur, lu dans la table d'outils, de l'outil indexé n), -tool_length_offset est repositionné dans le modèle de réglages de la -machine et la valeur de current_z dans le modèle est ajustée. Noter que -n n'a pas besoin d'être le même que le numéro de slot de l'outil -actuellement dans la broche. - -2. Si G49 est programmé, USE_TOOL_LENGTH_OFFSET(0.0) est appelée, -tool_length_offset est remis à 0.0 dans le modèle de réglages de la -machine et la valeur courante de current_z dans le modèle est ajustée. -L'effet de la compensation de longueur d'outil est illustrée dans la -capture ci-dessous. Noter que la longueur de l'outil est soustraite de -Z pour que le point contrôlé programmé corresponde à la pointe de -l'outil. Il faut également noter que l'effet de la compensation de -longueur est immédiat quand on voit la position de Z comme une -coordonnée relative mais il est sans effet sur la position actuelle de -la machine jusqu'à ce qu'un mouvement en Z soit programmé. - -Programme de test de longueur d'outil. - -L'outil #1 fait un pouce de long. ----- -N01 G1 F15 X0 Y0 Z0 -N02 G43 H1 Z0 X1 -N03 G49 X0 Z0 -N04 G0 X2 -N05 G1 G43 H1 G4 P10 Z0 X3 -N06 G49 X2 Z0 -N07 G0 X0 ----- - -image:images/length1.png[] - -Avec ce programme, dans la plupart des cas, la machine va appliquer le -décalage sous forme d'une rampe pendant le mouvement en xyz suivant le -mot G43. - -[[sec:Compensation-rayon-d-outil]] -== Compensation de rayon d'outil - -La compensation de rayon d'outil permet de suivre un parcours sans se -préoccuper du diamètre de l'outil. La seule restriction, c'est que les -'mouvements d'entrée' doivent être au moins aussi long que le rayon de -l'outil utilisé. - -Il y a deux parcours que l'outil peut prendre pour usiner un profil -quand la compensation de rayon est activée, un parcours à gauche du profil -et un à droite du profil. Pour les visualiser, il faut s'imaginer être -debout sur la pièce, marchant en suivant l'outil pendant que celui-ci -progresse dans la matière. G41 fait passer l'outil à gauche du profil et -G42 le fait passer à droite du profil. - -Le point final de chaque mouvement, dépends du mouvement suivant. -Si le mouvement suivant crée un angle extérieur, le mouvement se terminera -à l'extrémité de la ligne de coupe compensée. Si le mouvement suivant crée -un angle intérieur, l'outil s'arrêtera avant d'interférer avec la matière de -la pièce. La figure suivante montre comment le mouvement se termine à -différents endroits, dépendants du mouvement suivant. - -.Point final de la compensation[[cap:Compensation-End-Point]] - -image::images/comp-path_fr.png[] - -=== Vue générale - -==== Table d'outils - -La compensation de rayon d'outil utilise les données de la table d'outils -pour déterminer le décalage nécessaire. Les données peuvent être introduites -à la volée, avec G10 L1. - -==== Programmation des mouvements d'entrée - -Tout mouvement suffisamment long pour arriver en position compensée, sera un -mouvement d'entrée valide. La longueur minimale équivaut au rayon de l'outil. -Ça peut être un mouvement en vitesse rapide au dessus de la pièce. Si -plusieurs mouvements en vitesse rapide sont prévus après un G41/G42, seul le -dernier placera l'outil en position compensée. - -Dans la figure suivante, on voit que le mouvement d'entrée est compensé -à droite du profil. Ce qui aura pour effet, lors du mouvement d'entrée, de -déplacer le centre de l'outil, d'un rayon d'outil à droite de X0. Dans ce cas, -le mouvement d'entrée laissera un petit plot de matière en raison du décalage -de compensation et de l'arrondi de l'outil. - -.Mouvement d'entrée[[cap:Entry-Move]] - -image::images/comp02.png[] - -==== Mouvement en Z - -Un mouvement en Z est possible pendant que le contour est suivi dans le plan -XY. Des portions du contour peuvent être sautées en rétractant l'axe Z au -dessus du bloc et en amenant Z au dessus du prochain point de départ. - -==== Mouvement en vitesse rapide - -Des mouvements en vitesse rapide peuvent être programmé avec les compensations -d'outil actives. - -==== Bonne pratique - - - Débuter tout programme avec un G40 pour être sûr que la compensation est -désactivée. - -=== Exemples de profils - -==== Profil extérieur - -.Profil extérieur[[cap:Outside-Profile]] - -image::images/outside-comp_fr.png[] - -==== Profil intérieur - -.Profil intérieur[[cap:Inside-Profile]] - -image::images/inside-comp_fr.png[] - - -== Deux exposés sur les compensations d'outil - -Ces deux exposés ont été écrits par des experts de la CNC, nous pensons -que leur lecture sera très utile. - -By Jon Elson - -La compensation de rayon d'outil (également appelée compensation de -diamètre d'outil) à été ajoutée aux spécifications RS-274D à la demande -d'utilisateurs, car elle est extrêmement utile, mais son implémentation -a été assez mal pensée. L'objectif de cette fonctionnalité est de -permettre aux programmeurs de 'virtualiser' la trajectoire de l'outil, -de sorte que la machine puisse pendant toute l'exécution, déterminer le -bon décalage a apporter à la position de l'outil pour respecter les -cotes, en s'appuyant sur les diamètres d'outils existants. Si un outil -est réaffuté, son diamètre sera légèrement plus petit que celui -d'origine, il faudra également en tenir compte. - -Le problème est pour donner à la machine la trajectoire exacte où -l'outil doit usiner, sur le côté intérieur d'un parcours imaginaire, ou -sur le côté extérieur. Comme ces trajectoires ne sont pas -nécessairement fermées (même si elles peuvent l'être), il est quasiment -impossible à la machine de connaître de quel côté du profil elle doit -compenser l'outil. Il a été décidé qu'il n'y aurait que deux choix -possibles, outil à 'gauche' du profil à usiner et outil à 'droite' du -profil à usiner. Ce qui doit être interprété à gauche ou à droite du -profil à usiner en suivant l'outil le long du profil. - -=== Compensation de rayon d'outil, détails - -By Tom Kramer and Fred Proctor - -Les possibilités de compensation de rayon d'outil de l'interpréteur, -autorise le programmeur à spécifier si l'outil doit passer à gauche ou -à droite du profil à usiner. Ce profil peut être un contour ouvert ou -fermé, dans le plan XY composé de segments en arcs de cercles et en -lignes droites. Le contour peut être le pourtour d'une pièce brute ou, -il peut être une trajectoire exacte suivie par un outil mesuré avec -précision. La figure ci-dessous, montre deux exemples de trajectoires -d'usinage d'une pièce triangulaire, utilisant la compensation de rayon -d'outil. - -Dans les deux exemples, le triangle gris représente le matériau -restant après usinage et la ligne extérieure représente le parcours -suivi par le centre de l'outil. Dans les deux cas le triangle gris est -conservé. Le parcours de gauche (avec les coins arrondis) est le -parcours généralement interprété. Dans la méthode de droite (celle -marquée Not this way), l'outil ne reste pas en contact avec les angles -vifs du triangle gris. - -.[[figure:7]] -image::images/radius_comp.png[] - -Des mouvements sur l'axe Z peuvent avoir lieu pendant que le contour -est suivi dans le plan XY. Des portions du contour peuvent être -franchies avec l'axe Z en retrait au dessus de la pièce pendant la -poursuite du parcours et jusqu'au point où l'usinage doit reprendre, -l'axe Z plongera de nouveau en position. Ces dégagements de zones non -usinées peuvent être faits en vitesse travail (G1), en rapide (G0), en -vitesse inverse du temps (G93) ou en avance en unités par minute (G94) -toutes peuvent être utilisées avec la compensation de rayon d'outil. -Sous G94, la vitesse sera appliquée à la pointe de l'outil coupant, non -au contour programmé. - -==== Instructions de programmation - - - Pour activer la compensation de rayon d'outil, programmer soit, G41 - (pour maintenir l'outil à gauche du profil à usiner) soit, G42 (pour - maintenir l'outil à droite du profil). Dans la figure figure:7 précédente, - par exemple, si G41 était programmé, l'outil devrait tourner en sens - horaire autour du triangle et dans le sens contraire si G42 était - programmé. - - Pour désactiver la compensation de rayon d'outil, programmer G40. - - Si un G40, G41, ou G42 est programmé dans la même ligne qu'un - mouvement d'axe, la compensation de rayon sera activée ou désactivée - avant que le mouvement ne soit fait. Pour que le mouvement s'effectue - en premier, il doit être programmé séparément et avant. - -==== La valeur de D - -L'interpréteur actuel requiert une valeur D sur chaque ligne contenant -un mot G41 ou G42. Le nombre D doit être un entier positif. Il -représente le numéro de slot de l'outil, dont le rayon (la moitié du -diamètre d'outil indiqué dans la table d'outils) sera compensé. Il peut -aussi être égal à zéro, dans ce cas, la valeur du rayon sera aussi -égale à zéro. Toutes les poches de la table d'outils peuvent être -sélectionnés de cette façon. Le nombre D n'est pas nécessairement le -même que le numéro de poche de l'outil monté dans la broche. - -==== Table d'outils - -La compensation de rayon d'outil utilise les données fournies par la -table d'outils de la machine. Pour chaque poche d'outil dans le -carrousel, la table d'outils contient le diamètre de l'outil rangé à -cet emplacement (ou la différence entre le diamètre nominal de l'outil -placé dans cette poche et son diamètre actuel). La table d'outils est -indexée par les numéros de poche. Reportez vous à la page des 'Fichiers -d'outils' pour savoir comment remplir ces fichiers. - -==== Deux types de contour - -L'interpréteur contrôle la compensation pour deux types de contour: - - - 1) Le contour donné dans le code NC correspond au bord extérieur du - matériau après usinage. Nous l'appellerons - 'contour sur le profil du matériau'. - - 2) Le contour donné dans le code NC correspond à la trajectoire suivie - par le centre d'un outil de rayon nominal. Nous l'appellerons - 'contour sur le parcours d'outil'. - -L'interpréteur ne dispose d'aucun paramètre pour déterminer quel type -de contour est utilisé, mais la description des contours est différente -(pour la même géométrie de pièce) entre les deux types, les valeurs des -diamètres dans la table d'outils seront également différentes pour les -deux types. - -==== Contour sur le profil du matériau - -Lorsque le contour est sur le profil du matériau, c'est ce tracé qui -est décrit dans le programme NC. Pour un contour sur le profil du -matériau, la valeur du diamètre dans la table d'outils correspond au -diamètre réel de l'outil courant. Cette valeur dans la table doit être -positive. Le code NC pour ce type de contour reste toujours le même à -l'exception du diamètre de l'outil (actuel ou nominal). - -Exemple 1 : - -Voici un programme NC qui usine le matériau en suivant le profil d'un -des triangles de la figure précédente. Dans cet exemple, la -compensation de rayon est celle du rayon actuel de l'outil, soit 0.5â€. -La valeur pour le diamètre dans la table d'outil est de 1.0â€. ----- -N0010 G41 G1 X2 Y2 (active la compensation et fait le mouvement d'entrée) -N0020 Y-1 (suit la face droite du triangle) -N0030 X-2 (suit la base du triangle) -N0040 X2 Y2 (suit l'hypoténuse du triangle) -N0050 G40 (désactive la compensation) ----- - -Avec ce programme, l'outil suit cette trajectoire: un mouvement -d'entrée, puis la trajectoire montrée dans la partie gauche de la -figure, avec un déplacement de l'outil en sens horaire autour du -triangle. Noter que les coordonnées du triangle de matériau -apparaissent dans le code NC. Noter aussi que la trajectoire inclus -trois arcs qui ne sont pas explicitement programmés, ils sont générés -automatiquement. - -==== Contour sur le parcours d'outil - -Lorsque le contour est sur le parcours d'outil, la trajectoire décrite -dans le programme correspond au parcours que devra suivre le centre de -l'outil. Le bord de l'outil, à un rayon de là, (excepté durant les -mouvements d'entrée) suivra la géométrie de la pièce. La trajectoire -peut être créée manuellement ou par un post-processeur, selon la pièce -qui doit être réalisée. Pour l'interpréteur, le parcours d'outil doit -être tel que le bord de l'outil reste en contact avec la géométrie de -la pièce, comme montré à gauche de la figure 7. Si une trajectoire du -genre de celle montrée sur la droite de la figure 7 est utilisée, dans -laquelle l'outil ne reste pas en permanence au contact avec la -géométrie de la pièce, l'interpréteur ne pourra pas compenser -correctement si un outil en dessous de son diamètre nominal est -utilisé. - -Pour un contour sur le parcours d'outil, la valeur pour le diamètre de -l'outil dans la table d'outils devra être un petit nombre positif si -l'outil sélectionné est légèrement sur-dimensionné. La valeur du -diamètre sera un petit nombre négatif si l'outil est légèrement -sous-dimensionné. Si un diamètre d'outil est négatif, l'interpréteur -compense de l'autre côté du contour programmé et utilise la valeur -absolue donnée au diamètre. Si l'outil courant est à son diamètre -nominal, la valeur dans la table d'outil doit être à zéro. - -Exemple de contour sur le parcours d'outil - -Supposons que le diamètre de l'outil courant monté dans la broche est -de 0.97 et le diamètre utilisé en générant le parcours d'outil a été de -1.0 . Alors la valeur de diamètre dans la table d'outils pour cet outil -est de -0.03. Voici un programme G-code qui va usiner l'extérieur d'un -triangle de la figure 7. ----- -N0010 G1 X1 Y4.5 (mouvement d'alignement) -N0020 G41 G1 Y3.5 (active la compensation et premier mouvement d'entrée) -N0030 G3 X2 Y2.5 I1 (deuxième mouvement d'entrée) -N0040 G2 X2.5 Y2 J-0.5 (usinage le long de l'arc en haut du parcours d'outil) -N0050 G1 Y-1 (usinage le long du côté droit du parcours d'outil) -N0060 G2 X2 Y-1.5 I-0.5 (usinage de l'arc en bas à droite) -N0070 G1 X-2 (usinage de la base du parcours d'outil) -N0080 G2 X-2.3 Y-0.6 J0.5 (usinage de l'arc en bas à gauche) -N0090 G1 X1.7 Y2.4 (usinage de l'hypoténuse) -N0100 G2 X2 Y2.5 I0.3 J-0.4 (usinage de l'arc en haut à droite) -N0110 G40 (désactive la compensation) ----- - -Avec ce programme, l'outil suit cette trajectoire: un mouvement -d'alignement, deux mouvements d'entrée, puis il suit une trajectoire -légèrement intérieure au parcours d'outil montré sur la figure 7 en -tournant en sens horaire autour de la pièce. Cette compensation est à -droite de la trajectoire programmée, même si c'est G41 qui est -programmé, en raison de la valeur négative du diamètre. - -==== Erreurs de programmation et limitations - -Les messages en rapport avec la compensation de rayon d'outil, -délivrés par l'interpréteur sont les suivants: - -- Impossible de changer les décalages d'axes avec la compensation de rayon d'outil -- Impossible de changer d'unité avec la compensation de rayon d'outil -- Impossible d'activer la compensation de rayon d'outil en dehors du plan XY -- Action impossible, la compensation de rayon d'outil est déjà active -- Impossible d'utiliser G28 ou G30 avec la compensation de rayon d'outil -- Impossible d'utiliser G53 avec la compensation de rayon d'outil -- Impossible d'utiliser le plan XZ avec la compensation de rayon d'outil -- Impossible d'utiliser le plan YZ avec la compensation de rayon d'outil -- Coin concave avec la compensation de rayon d'outil -- Interférence de l'outil avec une partie finie de la pièce avec la - compensation de rayon d'outil footnote:[Le terme anglais 'gouging' - indique une interférence entre l'outil et une partie finie de la pièce ou - la paroi d'une cavité. Par extension, le terme est parfois repris pour une - interférence entre le porte-outil ou la broche et la pièce.] -- Mot D sur une ligne sans mot de commande G41 ni G42 -- Index de rayon d'outil trop grand -- Le rayon de l'outil n'est pas inférieur au rayon de l'arc avec la - compensation de rayon -- Deux G-codes du même groupe modal sont utilisés. - -Pour certains de ces messages, des explications sont données plus loin. - -Changer d'outil alors que la compensation de rayon d'outil est active -n'est pas considéré comme une erreur, mais il est peu probable que cela -soit fait intentionnellement. Le rayon d'outil utilisé lors de -l'établissement de la compensation continuera à être utilisé jusqu'à la -désactivation de la compensation, même si un nouvel outil est -effectivement utilisé. - -Quand la compensation de rayon d'outil est active, il est physiquement -possible de faire un cercle, dont le rayon est la moitié du diamètre de -l'outil donné dans la table d'outils, il sera tangent avec l'outil en -tout point de son contour. - -image:images/radius_comp_error.png[] - -En particulier, l'interpréteur traite les coins concaves et les arcs -concaves plus petits que l'outil, comme des erreurs, le cercle ne peut -pas être maintenu tangent avec le contour dans ces situations. Cette -détection de défaut, ne limite pas les formes qui peuvent être usinées, -mais elle requiert que le programmeur précise la forme exacte à usiner -(ou le parcours d'outil qui doit être suivi) et non une approximation. -A cet égard, l'interpréteur utilisé par LinuxCNC diffère des interpréteurs -utilisés dans beaucoup d'autres contrôleurs, qui passent ces erreurs -sous silence et laissent l'outil interférer avec la partie finie de la -pièce (gouging) ou arrondissent des angles qui devraient être vifs. Il -n'est pas nécessaire, de déplacer l'outil entre la désactivation de la -compensation et sa réactivation, mais le premier mouvement suivant la -réactivation sera considéré comme premier mouvement, comme déjà décrit -plus tôt. - -Il n'est pas possible de passer d'un index de rayon d'outil à un autre -alors que la compensation est active. Il est également impossible de -basculer la compensation d'un côté à l'autre avec la compensation -active. Si le prochain point de destination XY est déjà dans le -périmètre d'action de l'outil quand la compensation est activée, le -message indiquant une interférence outil/surface finie, s'affichera -quand la ligne du programme qui donne cette destination sera atteinte. -Dans ce cas, l'outil a déjà usiné dans le matériau, là où il n'aurait -pas dû... - -Si le numéro de slot programmé par le mot D est supérieur au nombre -d'emplacements disponibles dans le carrousel, un message d'erreur sera -affiché. Dans l'implémentation actuelle, le nombre d'emplacements -maximum est de 68. - -Le message d'erreur 'Deux G-codes du même groupe modal sont utilisés' -est un message générique utilisé pour plusieurs jeux de G-codes. Il -s'applique à la compensation de rayon d'outil, il signifie que plus -d'un code G40, G41 ou G42 apparaît sur la même ligne de programme NC, -ce qui n'est pas permis. - -=== Premier mouvement - -L'algorithme utilisé lors du premier déplacement, quand c'est une -ligne droite, consiste à tracer une droite, depuis le point d'arrivée, -tangente à un cercle dont le centre est le point actuel, et le rayon, -celui de l'outil. Le point de destination de la pointe de l'outil se -trouve alors au centre d'un cercle de même rayon, tangent à la ligne -droite tracée précédemment. C'est montré sur la figure 9. Si le point -programmé est situé à l'intérieur de la première section d'outil (le -cercle de gauche), une erreur sera signalée. - -image:images/radius_comp_straight.png[] - -image:images/radius_comp_arc.png[] - -Si le premier mouvement après que la compensation de rayon d'outil a -été activée est un arc, l'arc qui sera généré est dérivé d'un arc -auxiliaire, qui a son centre identique à celui du point central -programmé, passe par le point final de l'arc programmé et, est tangent -à l'outil à son emplacement courant. Si l'arc auxiliaire ne peut pas -être construit, une erreur sera signalée. L'arc généré déplacera -l'outil pour qu'il reste tangent à l'arc auxiliaire pendant tout le -mouvement. C'est ce que montre sur la figure 10. - -Indépendamment du fait que le premier déplacement est une droite ou un -arc, l'axe Z peut aussi se déplacer en même temps. Il se déplacera -linéairement, comme c'est le cas quand la compensation de rayon n'est -pas utilisée. Les mouvements des axes rotatifs (A, B et C) sont -autorisés avec la compensation de rayon d'outil, mais leur utilisation -serait vraiment très inhabituelle. - -Après les mouvements d'entrée en compensation de rayon d'outil, -l'interpréteur maintiendra l'outil tangent au contour programmé et du -côté approprié. Si un angle aigu se trouve dans le parcours, un arc est -inséré pour tourner autour de l'angle. Le rayon de cet arc sera de la -moitié du diamètre de l'outil donné dans la table d'outils. - -Quand la compensation de rayon est désactivée, aucun mouvement de -sortie particulier n'est fait. Le mouvement suivant sera ce qu'il -aurait été si la compensation n'avait jamais été activée et que le -mouvement précédent ait placé l'outil à sa position actuelle. - -==== Programmation des mouvements d'entrée - -En général, un mouvement d'alignement et deux mouvements d'entrée sont -demandés pour commencer la compensation correctement. Cependant, si le -contour programmé comporte des pointes et des angles aigus, un seul -mouvement d'entrée (plus, éventuellement, un mouvement de pré-entrée) -est demandé. La méthode générale, qui fonctionne dans toutes les -situations, est décrite en premier. Elle suppose que le programmeur -connait déjà le contour et son but est d'ajouter le mouvement d'entrée. - -==== Méthode générale - -La méthode générale de programmation comprend un mouvement -d'alignement et deux mouvements d'entrée. Les mouvements d'entrée -expliqués ci-dessus, seront repris comme exemple. Voici le code -correspondant: ----- -N0010 G1 X1 Y4.5 (mouvement d'alignement vers le point C) -N0020 G41 G1 Y3.5 (active la compensation et fait le premier mouvement -d'entrée vers le point B) -N0030 G3 X2 Y2.5 I1 (fait le second mouvement d'entrée vers le point A) ----- - -Voir la figure 11. La figure montre les deux mouvements d'entrée mais -pas le mouvement d'alignement. - -En premier, choisir un point A sur le contour où il convient -d'attacher un arc d'entrée. Spécifier un arc à l'extérieur du contour -qui commence au point B et s'achève au point A, tangent au contour (et -aller dans la même direction que celle prévue pour tourner autour du -contour). Le rayon doit être supérieur à la moitié du diamètre donné -dans la table d'outils. Ensuite, tirer une ligne tangente à l'arc, du -point B au point C, placé de telle sorte que la ligne BC fasse plus -d'un rayon de long. - -Après que la construction soit terminée, le code est écrit dans -l'ordre inverse de celui de la construction. La compensation de rayon -d'outil est activée après le mouvement d'alignement et avant le premier -mouvement d'entrée. Dans le code précédent, la ligne N0010 fait le -mouvement d'alignement, la ligne N0020 active la compensation et fait -le premier mouvement d'entrée et la ligne N0030 fait le second -mouvement d'entrée. - -image:images/radius_comp_entry.png[] - -Dans cet exemple, l'arc AB et la ligne BC sont très larges, ce n'est -pas nécessaire. Pour un contour sur parcours d'outil, le rayon de l'arc -AB demande juste à être légèrement plus grand que la variation maximale -du rayon de l'outil par rapport à son rayon nominal. Également, pour un -contour sur parcours d'outil, le côté choisi pour la compensation doit -être celui utilisé si l'outil est sur-dimensionné. Comme mentionné -précédemment, si l'outil est sous-dimensionné, l'interpréteur basculera -de l'autre côté. - -==== Méthode simple - -Si le contour est sur le profil du matériau et qu'il comprends des -angles aigus quelque part sur le contour, une méthode simple pour faire -l'entrée est possible. Voir la figure 12. - -Premièrement, choisir un angle aigu, par exemple D. Ensuite, décider -comment on va tourner autour du matériau depuis le point D. Dans notre -exemple nous maintiendrons l'outil à gauche du profil et nous -avancerons vers F. Prolonger la ligne FD (si le segment suivant du -contour est un arc, prolonger la tangente à l'arc FD depuis D) pour -diviser la surface extérieure au contour proche de D en deux parties. -S'assurer que le centre de l'outil est actuellement dans la partie du -même côté de la ligne prolongée que le matériau. Sinon, déplacer -l'outil dans cette partie. Par exemple, le point E représente la -position courante du centre de l'outil. Comme il est du même côté de la -ligne FD prolongée que le triangle gris du matériau, aucun mouvement -supplémentaire n'est nécessaire. Maintenant écrire la ligne de code NC -qui active la compensation et faire le mouvement vers le point D ----- -N0010 G41 G1 X2 Y2 (active la compensation et fait le mouvement d'entrée) ----- - -Cette méthode fonctionnera également avec un angle aigu sur un contour -sur parcours d'outil, si l'outil est sur-dimensionné, mais elle échouera -si il est sous-dimensionné. - -image:images/radius_comp_entry_simple.png[] - -==== Autres points où est exécutée la compensation de rayon d'outil - -Le jeu complet de fonctions canoniques comprend des fonctions qui -activent et désactivent la compensation de rayon d'outil, de sorte -qu'elle puisse être activée quand le contrôleur exécute une de ces -fonctions. Dans l'interpréteur cependant, ces commandes ne sont pas -utilisées. La compensation est assurée par l'interpréteur et reflétée -dans les sorties des commandes, c'est l'interpréteur qui continuera à -diriger les mouvements du centre de l'outil. Cela simplifie le travail -du contrôleur de mouvement tout en rendant le travail de l'interpréteur -un peu plus difficile. - -==== Algorithmes pour compensation de rayon d'outil - -L'interpréteur permet que les mouvements d'entrée et de sortie soient -des arcs. Le comportement pour les mouvements intermédiaires est le -même, excepté que certaines situations sont traitées comme des erreurs -par l'interpréteur alors qu'elles ne le sont pas sur d'autres -contrôleurs de machine. - -Données relatives à la compensation de rayon d'outil: - -L'interpréteur conserve trois données pour la compensation de rayon -d'outil: Le réglage lui même (gauche, droite ou arrêt), program_x et -program_y. Les deux dernières représentent les positions en X et en Y -données dans le code NC quand la compensation est active. Quand elle -est désactivée, les deux entrées sont fixées à de très petites valeurs -(10 e-20 ) dont la valeur symbolique (dans un #define) est 'unknown'. -L'interpréteur utilise, les items current_x et current_y qui -représentent, le centre de la pointe de l'outil (dans le système de -coordonnées courant), à tout moment. - -=== Exemples de Jon Elson - -Toutes les informations spécifiques au système se réfèrent au -programme LinuxCNC du NIST, mais doit aussi s'appliquer aux plus modernes -contrôleurs CNC. Ma méthode de vérification de ces programmes est -d'abord de sélectionner l'outil zéro, de sorte que les commandes de -compensation soient ignorées. Ensuite, je colle une feuille de papier -sur une plaque tenue de niveau dans l'étau, une sorte de platine. -J'installe une recharge de stylo à ressort dans la broche. C'est une -recharge standard de stylo à bille en métal avec un ressort, dans un -corps de 12mm de diamètre. Elle à un ressort pour la faire rentrer dans -le corps du stylo, et un 'collet' à l'arrière qui permet à la pointe de -se rétracter malgré le ressort, mais qui la laisse centrée à quelques -dixièmes près. Je charge le programme avec l'outil zéro sélectionné, et -il trace une ligne à l'extérieur de la pièce. (voir la figure suivante) -Alors, je sélectionne un outil avec le diamètre de l'outil que -j'envisage d'utiliser et je lance le programme une nouvelle fois. -(Noter que la coordonnée Z dans le programme ne doit pas être changée -pour éviter de plonger le stylo au travers du plateau ;-) Maintenant, -je dois voir si la compensation G41 ou G42 que je spécifie passe sur le -côté voulu de la pièce. Sinon, je modifie avec la compensation du côté -opposé, et j'édite la compensation opposée dans le programme, puis -j'essaye à nouveau. Maintenant, avec l'outil sur le côté correct de la -pièce, je peut vérifier si quelque part sur le parcours l'outil est -'trop gros' pour usiner les surfaces concaves. Ma vieille Allen-Bradley -7320 était très indulgente sur ce point, mais LinuxCNC ne tolère rien. Si -vous avez la moindre concavité où deux lignes se rencontrent à moins de -180 degrés avec un outil de taille définies, LinuxCNC va s'arrêter là, avec -un message d'erreur. Même si le gougeage est de .001mm de profondeur. -Alors, je fais toujours l'approche sur le mouvement d'entrée et le -mouvement de sortie juste sur un coin de la pièce, en fournissant un -angle de plus de 180 degrés, afin que LinuxCNC ne râle pas. Cela exige une -grande attention lors de l'ajustement des points de départ et de -sortie, qui ne sont pas compensés par le rayon d'outil, mais ils -doivent être choisis avec un rayon approximatif bien réfléchi. - -Les commandes sont: - -- G40 Annuler la compensation de rayon d'outil -- G41 Activer la compensation, outil à gauche du profil -- G42 Activer la compensation, outil à droite du profil - -Voici un petit fichier qui usine le côté d'une pièce avec de multiples -arcs convexes et concaves et plusieurs lignes droites. La plupart de -ces commandes ont été tracées depuis Bobcad/CAM, mais les lignes N15 et -N110 ont été ajoutées par moi et certaines coordonnées dans ce contour -ont été bricolées un peu par moi. ----- -N10 G01 G40 X-1.3531 Y3.4 -N15 F10 G17 G41 D4 X-0.7 Y3.1875 (ligne d'entrée) -N20 X0. Y3.1875 -N40 X0.5667 F10 -N50 G03 X0.8225 Y3.3307 R0.3 -N60 G02 X2.9728 Y4.3563 R2.1875 -N70 G01 X7.212 Y3.7986 -N80 G02 X8.1985 Y3.2849 R1.625 -N90 G03 X8.4197 Y3.1875 R0.3 -N100 G01 X9. -N110 G40 X10.1972 Y3.432 (ligne de sortie) -N220 M02 ----- - -La ligne 15 contient G41 D4, qui signifie que le diamètre de l'outil -est celui de l'outil #4 dans la table d'outils, il sera utilisé pour -décaler la broche de 1/2 diamètre, qui est, bien sûr, le rayon d'outil. -Noter que la ligne avec la commande G41 contient le point final du -mouvement dans lequel la compensation de rayon est interpolée. Cela -signifie qu'au début de ce mouvement, il n'y a aucun effet de -compensation et à la fin, l'outil est décalé de 100% du rayon de -l'outil sélectionné. Immédiatement après le G41 il y a D4, signifiant -que le décalage sera le rayon de l'outil N°4 dans la table d'outils. -Noter que les DIAMÈTRES d'outil sont entrés dans la table d'outils. (le -diamètre de l'outil de Jon est de 0.4890) - -Mais, noter qu'à la ligne 110, où il y a la commande G40, -l'interpolation de la compensation d'outil est en dehors de ce -mouvement. La manière d'obtenir ce réglage, les mouvements des lignes -15 et 110 sont presque exactement parallèles à l'axe X et la différence -dans les coordonnées Y est à la ligne où l'outil est appelé, en dehors -de la compensation d'outil. - -image:images/partdraw1.png[] - -Certaines autres choses sont à noter, le programme commence avec G40, -pour désactiver les compensations éventuellement actives. Cela évite un -tas d'ennuis quand le programme s'arrête à cause d'une erreur de -concavité, mais laisse la compensation désactivée. Noter aussi, en -ligne 15, G17 est utilisé pour spécifier le plan de travail XY pour les -interpolations circulaires. J'ai utilisé le format rayon pour les -spécifications des arcs plutôt que la forme I, J. LinuxCNC est très -pointilleux au sujet des rayons qu'il calcule à partir du format des -coordonnées I, J et il doit trouver le début et la fin du mouvement -avec 10^-11 unités internes, de sorte qu'il y a beaucoup de problèmes -avec des arcs arbitraires. Normalement, si vous avez un arc de 90 -degrés, centré sur (1.0,1.0) avec un rayon de 1", tout ira bien, mais -si le rayon ne peut pas être exprimé exactement et avec juste le nombre -de chiffres significatifs, ou si l'arc à un nombre étrange de degrés, -alors les problèmes commencent avec LinuxCNC. Le mot R supprime tous ce -désordre et il est beaucoup plus facile de travailler avec lui, de -toute façon. Si l'arc est de plus de 180 degrés, R doit être négatif. - - diff --git a/docs/src/gui/.gitignore b/docs/src/gui/.gitignore deleted file mode 100644 index 49b621baeb0..00000000000 --- a/docs/src/gui/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -axis -axis.tex -halui -halui.tex -mini -mini.tex -tkemc -tkemc.tex -image-to-gcode.tex diff --git a/docs/src/gui/axis.txt b/docs/src/gui/axis.txt deleted file mode 100644 index 2b5ccb11550..00000000000 --- a/docs/src/gui/axis.txt +++ /dev/null @@ -1,967 +0,0 @@ -= AXIS GUI - -[[cha:axis-gui]] (((Axis GUI))) - -== Introduction - -AXIS(((AXIS))) is a graphical front-end for LinuxCNC which features a live -preview and backplot. It is written in Python(((Python))) and uses -Tk(((Tk))) and OpenGL(((OpenGL))) to display its user interface. - -.AXIS Window[[cap:AXIS-Window]] - -image::images/axis-2.5.png[align="center"] - -== Getting Started - -If your configuration is not currently set up to use AXIS, -you can change it by editing the .ini file. In the -section '[DISPLAY]' change the 'DISPLAY' line to read -'DISPLAY = axis'. - -The sample configuration -'sim/axis.ini' is already configured to use AXIS as its front-end. - -=== A Typical Session - - . Start LinuxCNC. - . Reset E-STOP (F1) and turn the Machine Power (F2) on. - . Home all axes. - . Load the g-code file. - . Use the preview plot to verify that the program is correct. - . Load the material. - . Set the proper offset for each axis by jogging and using the Touch - Off button as needed. - . Run the program. - -[NOTE] -To run the same program again depends on your setup and requirements. -You might need to load more material and set offsets or move over and -set an offset then run the program again. If your material is fixtured -then you might need to only run the program again. See the -<> for more information on the run -command. - -== AXIS Display - -The AXIS window contains the following elements: - -* A display area that shows one of the following: - ** a preview of the loaded file (in this case, - 'axis.ngc'), as well as the current location of the CNC(((CNC))) - machine's 'controlled point'. Later, this area will display the path - the CNC machine has moved through, called the 'backplot' - ** a large readout showing the current position and all offsets. -* A menu bar and toolbar that allow you to perform various actions -* 'Manual Control Tab' - which allows you to make the - machine move, turn the spindle on or off, and turn the coolant on or - off if included in the ini file. -* 'MDI Tab' - where G-code programs can be entered manually, - one line at a time. This also shows the 'Active G Codes' which shows - which modal G Codes are in effect. -* 'Feed Override' - which allows you to scale - the speed of programmed motions. The default maximum is 120% - and can be set to a different - value in the ini file. See the Integrator Manual for more information - on this setting. -* 'Spindle Override' - which allows you to - scale the spindle speed up or down. -* 'Jog Speed' - which allows you to set the jog speed - within the limits set in the ini file. See the Integrator Manual for - more information on the ini file. -* 'Max Velocity' - which allows you to restrict the maximum velocity of all - programmed motions (except spindle synchronized motion). -* A text display area that shows the loaded G-Code. -* A status bar which shows the state of the machine. In this screen - shot, the machine is turned on, does not have a tool inserted, and the - displayed position is 'Relative' (showing all offsets), and 'Actual' - (showing feedback position). - -=== Menu Items - -[[sec:axis-menu]] (((Axis Menu))) - -Some menu items might be grayed out depending on how you have your -.ini file configured. For more information on configuration see the -Integrator Manual. - -.File Menu - -* 'Open...' - Opens a standard dialog box to open a g code file to load in AXIS. If - you have configured LinuxCNC to use a filter program you can also open it - up. See the Integrator manual for more information on filter programs. - -* 'Recent Files' - Displays a list of recently opened files. - -* 'Edit...' - Open the current g code file for editing if you have an editor - configured in your ini file. See the Integrator Manual for more - information on specifying an editor to use. - -* 'Reload' - Reload the current g code file. If you edited it you must reload it - for the changes to take affect. If you stop a file and want to start - from the beginning then reload the file. The toolbar reload is the same - as the menu. - -* 'Save gcode as...' - Save the current file with a new name. - -* 'Properties' - The sum of the rapid and feed moves. Does not factor in - acceleration, blending or path mode so time reported will never - be less than the actual run time. - -* 'Edit tool table...' - Same as Edit if you have defined an editor - you can open the tool table and edit it. - -* 'Reload tool table' - After editing the tool table you must reload it. - -* 'Ladder editor' - If you have loaded Classic Ladder you can edit it from - here. See the Integrator Manual on setting up Classic Ladder - -* 'Quit' - - Terminates the current LinuxCNC session. - -.Machine Menu [[sub:axis-machine-menu]] - -* 'Toggle Emergency Stop F1' - Change the state of the Emergency Stop. - -* 'Toggle Machine Power F2' - Change the state of the Machine Power if - the Emergency Stop is not on. - -* 'Run Program' - Run the currently loaded program from the beginning. - -* 'Run From Selected Line' - Select the line you want to start from first. - Use with caution as this will move the tool to the expected position before - the line first then it will execute the rest of the code. - -[WARNING] -Do not use 'Run From Selected Line' if your g code program contains subroutines. - -* 'Step' - Single step through a program. - -* 'Pause' - Pause a program. - -* 'Resume' - Resume running from a pause. - -* 'Stop' - Stop a running program. When run is selected after a stop the program - will start from the beginning. - -* 'Stop at M1' - If an M1 is reached, and this is checked, program execution - will stop on the M1 line. Press Resume to continue. - -* 'Skip lines with "/"' - If a line begins with '/' and this is checked, - the line will be skipped. - -* 'Clear MDI history' - Clears the MDI history window. - -* 'Copy from MDI history' - Copies the MDI history to the clipboard - -* 'Paste to MDI history' - Paste from the clipboard to the MDI history window - -* 'Calibration' - Starts a PID tuning assistant, which is mainly for servo systems. - Some things can be changed on a stepper system. - -* 'Show HAL Configuration' - Opens the HAL Configuration window where you can - monitor HAL Components, Pins, Parameters, Signals, Functions, and Threads. - -* 'HAL Meter' - Opens a window where you can monitor a single HAL Pin, Signal, or - Parameter. - -* 'HAL Scope' - Opens a virtual oscilloscope that allows plotting HAL values vs. time. - -* 'Show LinuxCNC Status' - Opens a window showing LinuxCNC's status. - -* 'Set Debug Level' - Opens a window where debug levels can be viewed and some can be set. - -* 'Homing' - Home one or all axes. - -* 'Unhoming' - Unhome one or all axes. - -* 'Zero Coordinate System' - Clear (set to zero) a chosen offset. - -[[sec:tool-touch-off]] (((Tool Touch Off))) - -* 'Tool touch off to workpiece' - When performing Touch Off, the value -entered is relative to the current workpiece ('G5x') coordinate system, -as modified by the axis offset ('G92'). When the Touch Off is complete, -the Relative coordinate for the chosen axis will become the value entered. -See <> in the G code chapter. - -* 'Tool touch off to fixture' - When performing Touch Off, the value entered -is relative to the ninth ('G59.3') coordinate system, with the axis offset -('G92') ignored. This is useful when there is a tool touch-off fixture at a -fixed location on the machine, with the ninth ('G59.3') coordinate system set -such that the tip of a zero-length tool is at the fixture's origin when the -Relative coordinates are 0. See <> in the G code chapter. - -.View Menu - -.It's all in your point of view -******************************************************************************* -The AXIS display pick menu 'View' refers to 'Top', 'Front', and 'Side' views. -These terms are correct if the CNC machine has its Z axis vertical, with -positive Z up. This is true for vertical mills, which is probably the most -popular application, and also true for almost all EDM machines, and even -vertical turret lathes, where the part is turning below the tool. - -The terms 'Top', 'Front', and 'Side' might be confusing however, in other -CNC machines, such as a standard lathe, where the Z axis is horizontal, or -a horizontal mill, again where the Z axis is horizontal, or even an inverted -vertical turret lathe, where the part is turning above the tool, and the Z axis -positive direction is down! - -Just remember that positive Z axis is (almost) always away from the part. -So be familiar with your machine's design and interpret the display as needed. -******************************************************************************* - -* 'Top View' - The Top View (or Z view) displays the G code looking along the Z axis from - positive to negative. This view is best for looking at X & Y. - -* 'Rotated Top View' - The Rotated Top View (or rotated Z view) also displays the G code looking - along the Z axis from positive to negative. But sometimes it's convenient - to display the X & Y axes rotated 90 degrees to fit the display better. - This view is also best for looking at X & Y. - -* 'Side View' - The Side View (or X view) displays the G code looking along the X axis from - positive to negative. This view is best for looking at Y & Z. - -* 'Front View' - The Front View (or Y view) displays the G code looking along the Y axis from - negative to positive. This view is best for looking at X & Z. - -* 'Perspective View' - The Perspective View (or P view) displays the G code looking at the part from - an adjustable point of view, defaulting to X+, Y-, Z+. The position is - adjustable using the mouse and the drag/rotate selector. This view is a - compromise view, and while it does do a good job of trying to show three - (to nine!) axes on a two-dimensional display, there will often be some - feature that is hard to see, requiring a change in viewpoint. This view - is best when you would like to see all three (to nine) axes at once. - -* 'Display Inches' - Set the AXIS display scaling for inches. - -* 'Display MM' - Set the AXIS display scaling for millimeters. - -* 'Show Program' - The preview display of the loaded G code program can be entirely - disabled if desired. - -* 'Show Program Rapids' - The preview display of the loaded G code program will always show the - feedrate moves (G1,G2,G3) in white. But the display of rapid moves (G0) - in cyan can be disabled if desired. - -* 'Alpha-blend Program' - This option makes the preview of complex programs easier to see, but - may cause the preview to display more slowly. - -* 'Show Live Plot' - The highlighting of the feedrate paths (G1,G2,G3) as the tool moves - can be disabled if desired. - -* 'Show Tool' - The display of the tool cone/cylinder can be disabled if desired. - -* 'Show Extents' - The display of the extents (maximum travel in each axis direction) - of the loaded G code program can be disabled if desired. - -* 'Show Offsets' - The selected fixture offset (G54-G59.3) origin location can be shown - as a set of three orthogonal lines, one each of red, blue, and green. - This offset origin (or fixture zero) display can be disabled if desired. - -* 'Show Machine Limits' - The machine's maximum travel limits for each axis, as set in the ini - file, are shown as a rectangular box drawn in red dashed lines. This - is useful when loading a new G code program, or when checking for how - much fixture offset would be needed to bring the G code program within - the travel limits of your machine. It can be shut off if not needed. - -* 'Show Velocity' - A display of velocity is sometimes useful to see how close your - machine is running to its design velocities. It can be disabled - if desired. - -* 'Show Distance to Go' - Distance to go is a very handy item to know when running an unknown - G code program for the first time. In combination with the rapid - override and feedrate override controls, unwanted tool - and machine damage can be avoided. Once the G code program has - been debugged and is running smoothly, the Distance to Go display - can be disabled if desired. - -* 'Clear Live Plot' - As the tool travels in the Axis display, the G code path is highlighted. - To repeat the program, or to better see an area of interest, the - previously highlighted paths can be cleared. - -* 'Show Commanded Position' - This is the position that LinuxCNC will try to go to. Once motion - has stopped, this is the position LinuxCNC will try to hold. - -* 'Show Actual Position' - Actual Position is the measured position as read back from the - system's encoders or simulated by step generators. This may differ - slightly from the Commanded Position for many reasons including PID - tuning, physical constraints, or position quantization. - -* 'Show Machine Position' - This is the position in unoffset coordinates, as established by Homing. - -* 'Show Relative Position' - This is the Machine Position modified by 'G5x', 'G92', and 'G43' offsets. - -.Help Menu - -* 'About Axis' - We all know what this is. - - -* 'Quick Reference' - Shows the keyboard shortcut keys. - -=== Toolbar buttons - -From left to right in the Axis display, the toolbar buttons (keyboard shortcuts shown [in brackets]) are: - -* image:images/tool_estop.gif[] Toggle Emergency Stop [F1] (also called E-Stop)(((ESTOP)))) - -* image:images/tool_power.gif[] Toggle Machine Power [F2](((machine on))) - -* image:images/tool_open.gif[] Open G Code file [O] - -* image:images/tool_reload.gif[] Reload current file [Ctrl-R] - -* image:images/tool_run.gif[] Begin executing the current file [R] - -* image:images/tool_step.gif[] Execute next line [T] - -* image:images/tool_pause.gif[] Pause Execution [P] Resume Execution[S] - -* image:images/tool_stop.gif[] Stop Program Execution [ESC] - -* image:images/tool_blockdelete.gif[] Toggle Skip lines with "/" [Alt-M-/] - -* image:images/tool_optpause.gif[] Toggle Optional Pause [Alt-M-1] - -* image:images/tool_zoomin.gif[] Zoom In - -* image:images/tool_zoomout.gif[] Zoom Out - -* image:images/tool_axis_z.gif[] Top view - -* image:images/tool_axis_z2.gif[] Rotated Top view - -* image:images/tool_axis_x.gif[] Side view - -* image:images/tool_axis_y.gif[] Front view - -* image:images/tool_axis_p.gif[] Perspective view - -* image:images/tool_rotate.gif[] Toggle between Drag and Rotate Mode [D] - -* image:images/tool_clear.gif[] Clear live backplot [Ctrl-K] - - -=== Graphical Display Area - -.Coordinate Display - -In the upper-left corner of the program display is the coordinate display. -It shows the position of the machine. -To the left of the axis name, an origin symbol is shown -if the axis has been homed. - -image:images/axis-homed.png[] - -A limit symbol is shown if the axis is on one of its limit switches. - -image:images/axis-limit.png[] - -To properly interpret these numbers, refer to the 'Position:' -indicator in the status bar. If the position is 'Absolute', then the -displayed number is in the machine coordinate system. If it is -'Relative', then the displayed number is in the offset coordinate -system. When the coordinates displayed are relative and an offset has -been set, the display will include a cyan 'machine origin' marker. - -image:images/axis-machineorigin.png[] - -If the position is 'Commanded', then it is the ideal position ---for instance, the exact coordinate given in a 'G0' command. -If it is 'Actual', then it is the position -the machine has actually moved to. -These values can differ for several reasons: -Following error, dead band, encoder resolution, or step size. -For instance, if you command a movement to X 0.0033 on your mill, -but one step of your stepper motor or one encoder count is 0.00125, -then the 'Commanded' position might be 0.0033, -but the 'Actual' position will be 0.0025 (2 steps) or 0.00375 (3 steps). - -.Preview Plot -(((preview plot))) - -When a file is loaded, -a preview of it is shown in the display area. -Fast moves (such as those produced by the 'G0' command) are shown as -cyan lines. Moves at a feed rate -(such as those produced by the 'G1' command) are -shown as solid white lines. Dwells -(such as those produced by the 'G4' command) -are shown as small pink 'X' marks. - -G0 (Rapid) moves prior to a feed move -will not show on the preview plot. -Rapid moves after a T (Tool Change) will not show on the -preview until after the first feed move. -To turn either of these features off -program a G1 without any moves prior to the G0 moves. - -.Program Extents -(((program extents))) - -The 'extents' of the program in each axis are shown. -At the ends, the least and greatest coordinate values are indicated. -In the middle, the difference between the coordinates is shown. - -When some coordinates exceed the 'soft limits' in the .ini file, -the relevant dimension is shown in a different color and enclosed by a box. -In figure below the maximum soft limit is exceeded on -the X axis as indicated by the box surrounding the coordinate value. -The minimum X travel of the program is -1.95, -the maximum X travel is 1.88, -and the program requires 3.83 inches of X travel. -To move the program so it's within the machine's travel in this case, -jog to the left and Touch Off X again. - -.Soft Limit[[cap:Soft-Limit]] - -image::images/axis-outofrange.png[align="center"] - -.Tool Cone -When no tool is loaded, the location of the tip of the tool is -indicated by the 'tool cone'. -The 'tool cone' does not provide guidance on the form, -length, or radius of the tool. - -When a tool is loaded (for instance, with the MDI command 'T1 M6' ), -the cone changes to a cylinder which shows the diameter of the tool -given in the tool table file. - -.Backplot - -When the machine moves, it leaves a trail called the backplot. -The color of the line indicates the type of motion: -Yellow for jogs, faint green for rapid movements, -red for straight moves at a feed rate, -and magenta for circular moves at a feed rate. - -.Grid - -Axis can optionally display a grid when in orthogonal views. Enable -or disable the grid using the 'Grid' menu under 'View'. When -enabled, the grid is shown in the top and rotated top views; when -coordinate system is not rotated, the grid is shown in the front and -side views as well. The presets in the 'Grid' menu are controlled -by the inifile item `[DISPLAY]GRIDS`; if unspecified, the default is -`10mm 20mm 50mm 100mm 1in 2in 5in 10in`. - -Specifying a very small grid may decrease performance. - -.Interacting - -By left-clicking on a portion of the preview plot, -the line will be highlighted -in both the graphical and text displays. -By left-clicking on an empty area, the highlighting will be removed. - -By dragging with the left mouse button pressed, -the preview plot will be shifted (panned). - -By dragging with shift and the left mouse button pressed, -or by dragging with the mouse wheel pressed, -the preview plot will be rotated. -When a line is highlighted, -the center of rotation is the center of the line. -Otherwise, the center of rotation is -the center of the entire program. - -By rotating the mouse wheel, -or by dragging with the right mouse button pressed, -or by dragging with control and the left mouse button pressed, -the preview plot will be zoomed in or out. - -By clicking one of the 'Preset View' icons, -or by pressing 'V', several preset views may be selected. - -=== Text Display Area - -By left-clicking a line of the program, the line will be highlighted -in both the graphical and text displays. - -When the program is running, the line currently being executed is -highlighted in red. If no line has been selected by the user, -the text display will automatically scroll to show the current line. - -.Current and Selected Lines[[cap:Current-and-Selected]] - -image::images/axis-currentandselected.png[align="center"] - -=== Manual Control -(((Manual))) - -While the machine is turned on but not running a program, -the items in the 'Manual Control' tab can be used to -move the machine or control its spindle and coolant. - -When the machine is not turned on, or when a program is running, the -manual controls are unavailable. - -Many of the items described below are not useful on all machines. -When AXIS detects that a particular pin is not connected in HAL, -the corresponding item in the Manual Control tab is removed. -For instance, if the HAL pin 'motion.spindle-brake' is not connected, -then the 'Brake' button will not appear on the screen. -If the environment variable 'AXIS_NO_AUTOCONFIGURE' is set, -this behavior is disabled and all the items will appear. - -.The Axis group - -'Axis' allows you to manually move the machine. -This action is known as 'jogging'. -First, select the axis to be moved by clicking it. -Then, click and hold the '+' or '-' button -depending on the desired direction of motion. -The first four axes can also be moved by -the arrow keys (X and Y), -PAGE UP and PAGE DOWN keys (Z), -and the [ and ] keys (A). - -If 'Continuous' is selected, the motion will continue -as long as the button or key is pressed. -If another value is selected, -the machine will move exactly the displayed distance -each time the button is clicked or the key is pressed. -By default, the available values are '0.1000, 0.0100, 0.0010, 0.0001' - -See the Configure section of the Integrator Manual for -more information on setting the increments. - -.Homing - -If your machine has home switches and a homing sequence defined for -all axes the button will read 'Home All'. The 'Home All' button or the -Ctrl-HOME key will home all axes using the homing sequence. Pressing -the HOME key will home the current axis, even if a homing sequence is -defined. - -If your machine has home switches and no homing sequence is defined or -not all axes have a homing sequence the button will read 'Home' and -will home the selected axis only. Each axis must be selected and homed -separately. - -If your machine does not have home switches defined in the -configuration the 'Home' button will set the current selected axis -current position to be the absolute position 0 for that axis and will -set the 'is-homed' bit for that axis. - -See the Integrator Manual for more information on homing. - -.Touch Off - -By pressing 'Touch Off' or the END key, the 'G54 offset' for the -current axis is changed so that the current axis value will be the -specified value. Expressions may be entered using the rules for -rs274ngc programs, except that variables may not be referred to. The -resulting value is shown as a number. - -.Touch Off[[cap:Touch-Off]] - -image::images/touchoff.png[align="center"] - -See also the 'Tool touch off to workpiece' and 'Tool touch off to fixture' -options in the Machine menu. - -.Override Limits - -By pressing Override Limits, the machine will temporarily be allowed -to jog off of a physical limit switch. This check box is only available -when a limit switch is tripped. The override is reset after one jog. If -the axis is configured with separate positive and negative limit switches, -LinuxCNC will allow the jog only in the correct direction. _Override Limits will -not allow a jog past a soft limit. The only way to disable a soft limit -on an axis is to Unhome it._ - -.The Spindle group -(((AxisUI, spindle))) - -The buttons on the first row select the direction for the spindle to -rotate: Counterclockwise, Stopped, Clockwise. Counterclockwise will -only show up if the pin 'motion.spindle-reverse' is in the HAL file (it -can be 'net trick-axis motion.spindle-reverse' ). The buttons on the -next row increase or decrease the rotation -speed. The checkbox on the third row allows the spindle brake to be -engaged or released. Depending on your machine configuration, not all -the items in this group may appear. Pressing the spindle start button -sets the 'S' speed to 1. - -.The Coolant group -(((AxisUI, coolant))) - -The two buttons allow the 'Mist' and 'Flood' coolants to be turned on -and off. Depending on your machine configuration, not all the items in -this group may appear. - -=== MDI -(((AxisUI, MDI))) - -MDI allows G-code commands to be entered manually. -When the machine is not turned on, or when a program is -running, the MDI controls are unavailable. - -.The MDI tab[[cap:The-MDI-tab]] - -image::images/axis-mdi.png[align="center"] - -* 'History' - This shows MDI commands that have been typed earlier in this session. - -* 'MDI Command' - This allows you to enter a g-code command to be executed. Execute the - command by pressing Enter or by clicking 'Go'. - -* 'Active G-Codes' - This shows the 'modal codes' that are active in the interpreter. For - instance, 'G54' indicates that the 'G54 offset' is applied to all - coordinates that are entered. When in Auto the Active G-Codes represent - the codes after any read ahead by the interpreter. - -=== Feed Override -(((AxisUI, feed override))) - -By moving this slider, the programmed feed rate can be modified. For -instance, if a program requests 'F60' and the slider is set to 120%, -then the resulting feed rate will be 72. - -=== Spindle Speed Override -(((AxisUI, spindle speed override))) - -By moving this slider, the programmed spindle speed can be -modified. For instance, if a program requests S8000 and the slider is -set to 80%, then the resulting spindle speed will be 6400. This item -only appears when the HAL pin 'motion.spindle-speed-out' is connected. - -=== Jog Speed -(((AxisUI, jog speed))) - -By moving this slider, the speed of jogs can be modified. For -instance, if the slider is set to 1 in/min, then a .01 inch jog will -complete in about .6 seconds, or 1/100 of a minute. Near the left side -(slow jogs) the values are spaced closely together, while near the -right side (fast jogs) they are spaced much further apart, allowing a -wide range of jog speeds with fine control when it is most important. - -On machines with a rotary axis, a second jog speed slider is shown. -This slider sets the jog rate for the rotary axes (A, B and C). - -=== Max Velocity -(((AxisUI, Max Velocity))) - -By moving this slider, the maximum velocity can be set. This caps the -maximum velocity for all programmed moves except spindle-synchronized -moves. - -== Keyboard Controls -(((AxisUI, keyboard shortcuts))) - -Almost all actions in AXIS can be accomplished with the keyboard. A -full list of keyboard shortcuts can be found in the AXIS Quick -Reference, which can be displayed by choosing Help > Quick Reference. -Many of the shortcuts are unavailable when in MDI mode. - -.Feed Override Keys - -The Feed Override keys behave differently when in Manual Mode. The -keys '12345678 will select an axis if it is programed. If you have 3 -axis then ' will select axis 0, 1 will select axis 1, and 2 will select -axis 2. The remainder of the number keys will still set the Feed -Override. When running a program '1234567890 will set the Feed Override -to 0% - 100%. - -The most frequently used keyboard shortcuts are shown in the following Table - -.Most Common Keyboard Shortcuts[[cap:Most-Common-Keyboard]] - -[width="80%", options="header", cols="^,<,^"] -|==================================================================== -|Keystroke | Action Taken | Mode -|F1 | Toggle Emergency Stop | All -|F2 | Turn machine on/off | All -|`, 1 .. 9, 0 | Set feed override from 0% to 100% | Varies -|X, ` | Activate first axis | Manual -|Y, 1 | Activate second axis | Manual -|Z, 2 | Activate third axis | Manual -|A, 3 | Activate fourth axis | Manual -|I | Select jog increment | Manual -|C | Continuous jog | Manual -|Control-Home | Perform homing sequence | Manual -|End | Touch off: Set G54 offset for active axis | Manual -|Left, Right | Jog first axis | Manual -|Up, Down | Jog second axis | Manual -|Pg Up, Pg Dn | Jog third axis | Manual -|[, ] | Jog fourth axis | Manual -|O | Open File | Manual -|Control-R | Reload File | Manual -|R | Run file | Manual -|P | Pause execution | Auto -|S | Resume Execution | Auto -|ESC | Stop execution | Auto -|Control-K | Clear backplot | Auto/Manual -|V | Cycle among preset views | Auto/Manual -|Shift-Left,Right | Rapid X Axis | Manual -|Shift-Up,Down | Rapid Y Axis | Manual -|Shift-PgUp, PgDn | Rapid Z Axis | Manual -|==================================================================== - -== Show LinuxCNC Status (linuxcnctop) - -AXIS includes a program called 'linuxcnctop' which shows some of the -details of LinuxCNC's state. You can run this program by invoking Machine > -Show LinuxCNC Status - -.LinuxCNC Status Window[[cap:LinuxCNC-Status-Window]] - -image::images/axis-emc-status.png[align="center"] - -The name of each item is shown in the left column. The current value -is shown in the right column. If the value has recently changed, it is -shown on a red background. - -== MDI interface - -AXIS includes a program called `mdi` which allows text-mode entry of -MDI commands to a running LinuxCNC session. You can run this program by -opening a terminal and typing - - mdi - -Once it is running, it displays the prompt 'MDI>'. When a blank line -is entered, the machine's current position is shown. -When a command is entered, it is sent to LinuxCNC to be executed. - -This is a sample session of mdi. - ----- -$ mdi -MDI> -(0.0, 0.0, 0.0, 0.0, 0.0, 0.0) -MDI> G1 F5 X1 -MDI> -(0.5928500000000374, 0.0, 0.0, 0.0, 0.0, 0.0) -MDI> -(1.0000000000000639, 0.0, 0.0, 0.0, 0.0, 0.0) ----- - -== axis-remote - -AXIS includes a program called 'axis-remote' which can send certain -commands to a running AXIS. The available commands are shown by running -'axis-remote --help' and include checking whether AXIS is running -('--ping'), loading a file by name, reloading the currently loaded -file ('--reload'), and making AXIS exit ('--quit'). - -[[sec:Manual-Tool-Change]] -== Manual Tool Change -(((Manual Tool Change))) - -LinuxCNC includes a userspace HAL component called 'hal_manualtoolchange', -which shows a window prompt telling you what tool is expected when a -'M6' command is issued. After the OK button is pressed, execution of -the program will continue. - -The HAL configuration file 'configs/sim/axis_manualtoolchange.hal' -shows the HAL commands necessary to use this component. - -hal_manualtoolchange can be used even when AXIS is not used as the GUI. -This component is most useful if you have presettable tools and -you use the tool table. - -[NOTE] -Important Note: Rapids will not show on the preview after -a T is issued until the next feed move after the M6. -This can be very confusing to most users. -To turn this feature off for the current tool change -program a G1 with no move after the T. - -.The Manual Toolchange Window[[cap:The-Manual-Toolchange]] - -image::images/manual-tool-change.png[align="center"] - -== Python modules - -AXIS(((AXIS))) includes several Python(((Python))) modules which may -be useful to others. For more information on one of these modules, use -'pydoc ' or read the source code. These modules include: - - - 'emc' provides access to the LinuxCNC command, status, and error channels - - 'gcode' provides access to the rs274ngc interpreter - - 'rs274' provides additional tools for working with rs274ngc files - - 'hal' allows the creation of userspace HAL components written in Python - - '_togl' provides an OpenGL widget that can be used in Tkinter applications - - 'minigl' provides access to the subset of OpenGL used by AXIS - -To use these modules in your own scripts, you must ensure that the -directory where they reside is on Python's module path. When running an -installed version of LinuxCNC, this should happen automatically. When -running 'in-place', this can be done by using -'scripts/rip-environment'. - -== Using AXIS in Lathe Mode -(((AXIS in lathe mode))) - -By including the line 'LATHE = 1' -in the [DISPLAY] section of the ini file, AXIS selects lathe mode. The -'Y' axis is not shown in coordinate readouts, the view is changed to -show the Z axis extending to the right and the X axis extending towards -the bottom of the screen, and several controls (such as those for -preset views) are removed. The coordinate readouts for X are replaced -with diameter and radius. - -Pressing 'V' zooms out to show the entire file, if one is loaded. - -When in lathe mode, the shape of the loaded tool (if any) is shown. - -.Lathe Tool Shape[[cap:Lathe-Tool-Shape]] - -image:images/axis-lathe-tool.png[align="center"] - -== Advanced Configuration - -For more information on ini file settings that can change how AXIS -works see the INI File/Sections/[DISPLAY] Section of Configuration -chapter in the Integrator manual. - -=== Program Filters - -AXIS has the ability to send loaded files through a 'filter program'. -This filter can do any desired task: Something as simple as making sure -the file ends with 'M2', or something as complicated as generating -G-Code from an image. - -The '[FILTER]' section of the ini file controls how filters work. -First, for each type of file, write a 'PROGRAM_EXTENSION' line. -Then, specify the program to execute for each type of file. -This program is given the name of the input file as its first argument, -and must write rs274ngc code to standard output. This output is what -will be displayed in the text area, previewed in the display area, and -executed by LinuxCNC when 'Run'. The following lines add support for the -'image-to-gcode' converter included with LinuxCNC: - ----- -[FILTER] -PROGRAM_EXTENSION = .png,.gif Greyscale Depth Image -png = image-to-gcode -gif = image-to-gcode ----- - -It is also possible to specify an interpreter: - ----- -PROGRAM_EXTENSION = .py Python Script -py = python ----- - -In this way, any Python script can be opened, and its output is -treated as g-code. One such example script is available at -'nc_files/holecircle.py'. This script creates g-code for drilling a -series of holes along the circumference of a circle. - -.Circular Holes[[cap:Circular-Holes]] - -image::images/holes.png[align="center"] - -If the environment variable AXIS_PROGRESS_BAR is set, then lines -written to stderr of the form - ----- -FILTER_PROGRESS=%d ----- - -will set the AXIS progress bar to the given percentage. This feature -should be used by any filter that runs for a long time. - -=== The X Resource Database - -The colors of most elements of the AXIS user interface can be -customized through the X Resource Database. The sample file -'axis_light_background' changes the colors of the backplot window to a -'dark lines on white -background' scheme, and also serves as a reference for the configurable -items in the display area. The sample file 'axis_big_dro' changes the -position readout to a larger size font. To use these files: - ----- -xrdb -merge /usr/share/doc/emc2/axis_light_background - -xrdb -merge /usr/share/doc/emc2/axis_big_dro ----- -For information about the other items which can be configured in Tk -applications, see the Tk man pages. - -Because modern desktop environments automatically make some settings -in the X Resource Database that adversely affect AXIS, by default these -settings are ignored. To make the X Resource Database items override -AXIS defaults, include the following line in your X Resources: - -// These asterisks are not for bold, ----- - *Axis*optionLevel: widgetDefault ----- -// in this case, we want the asterisks to actually appear. - -this causes the built-in options to be created at the option level -'widgetDefault', so that X Resources (which are level 'userDefault') -can override them. - -=== Physical jog wheels[[sub:Physical-jog-wheels]] - -To improve the interaction of AXIS with physical jog wheels, the axis -currently selected in the GUI is also reported on a pin with a name -like 'axisui.jog.x'. One of these pins is 'TRUE' at one time, and the rest are -'FALSE'. These are meant to control motion's jog-enable pins. - -After AXIS has created these HAL pins, it executes the HAL file named -in '[HAL]POSTGUI_HALFILE'. Unlike '[HAL]HALFILE', only one such file -may be used. - -=== ~./axisrc -(((.axisrc))) - -If it exists, the contents of '~/.axisrc' are executed as Python -source code just before the AXIS GUI is -displayed. The details of what may be written in the axisrc are subject -to change during the development cycle. - -The following adds Control-Q as a keyboard shortcut for Quit. - ----- -root_window.bind("", "destroy .") -help2.append(("Control-Q", "Quit")) ----- - -=== External Editor -(((External Editor))) - -The menu options File > Edit... and File > Edit Tool Table... become -available after defining the editor in the ini section [DISPLAY]. -Useful values include EDITOR=gedit and EDITOR=gnome-terminal -e vim. -For more information, see the DISPLAY section of the INI Configuration -Chapter in the Integrator Manual. - -=== Virtual Control Panel -(((Virtual Control Panel))) - -AXIS can display a custom virtual control panel in the right-hand -pane. You can program buttons, indicators, data displays and more. For -more information, see the Integrator Manual. - -=== Axis Preview Control -[[sub:axis-preview-control]](((Axis Preview Control))) - -Special comments can be inserted into the G Code file to control how -the preview of AXIS behaves. In the case where you want to limit the -drawing of the preview use these special comments. Anything between the -(AXIS,hide) and (AXIS,show) will not be drawn during the preview. The -(AXIS,hide) and (AXIS,show) must be used in pairs with the (AXIS,hide) -being first. Anything after a (AXIS,stop) will not be drawn during the -preview. - -These comments are useful to unclutter the preview display (for -instance while debugging a larger g-code file, one can disable the -preview on certain parts that are already working OK). - - - (AXIS,hide) Stops the preview (must be first) - - (AXIS,show) Resumes the preview (must follow a hide) - - (AXIS,stop) Stops the preview from here to the end of the file. - - (AXIS,notify,the_text) Displays the_text as an info display -This display can be useful in the Axis preview when (debug,message) -comments are not displayed. - - diff --git a/docs/src/gui/axis_es.txt b/docs/src/gui/axis_es.txt deleted file mode 100644 index c6dabcfdd15..00000000000 --- a/docs/src/gui/axis_es.txt +++ /dev/null @@ -1,965 +0,0 @@ -= AXIS GUI - -[[cha:axis-gui]] (((Axis GUI))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Introduction - -AXIS(((AXIS))) is a graphical front-end for LinuxCNC which features a live -preview and backplot. It is written in Python(((Python))) and uses -Tk(((Tk))) and OpenGL(((OpenGL))) to display its user interface. - -.AXIS Window[[cap:AXIS-Window]] - -image::images/axis-2.5.png[align="center"] - -== Getting Started - -If your configuration is not currently set up to use AXIS, -you can change it by editing the .ini file. In the -section '[DISPLAY]' change the 'DISPLAY' line to read -'DISPLAY = axis'. - -The sample configuration -'sim/axis.ini' is already configured to use AXIS as its front-end. - -=== A Typical Session - - . Start LinuxCNC. - . Reset E-STOP (F1) and turn the Machine Power (F2) on. - . Home all axes. - . Load the g-code file. - . Use the preview plot to verify that the program is correct. - . Load the material. - . Set the proper offset for each axis by jogging and using the Touch - Off button as needed. - . Run the program. - -[NOTE] -To run the same program again depends on your setup and requirements. -You might need to load more material and set offsets or move over and -set an offset then run the program again. If your material is fixtured -then you might need to only run the program again. See the -<> for more information on the run -command. - -== AXIS Display - -The AXIS window contains the following elements: - -* A display area that shows one of the following: - ** a preview of the loaded file (in this case, - 'axis.ngc'), as well as the current location of the CNC(((CNC))) - machine's 'controlled point'. Later, this area will display the path - the CNC machine has moved through, called the 'backplot' - ** a large readout showing the current position and all offsets. -* A menu bar and toolbar that allow you to perform various actions -* 'Manual Control Tab' - which allows you to make the - machine move, turn the spindle on or off, and turn the coolant on or - off if included in the ini file. -* 'MDI Tab' - where G-code programs can be entered manually, - one line at a time. This also shows the 'Active G Codes' which shows - which modal G Codes are in effect. -* 'Feed Override' - which allows you to scale - the speed of programmed motions. The default maximum is 120% - and can be set to a different - value in the ini file. See the Integrator Manual for more information - on this setting. -* 'Spindle Override' - which allows you to - scale the spindle speed up or down. -* 'Jog Speed' - which allows you to set the jog speed - within the limits set in the ini file. See the Integrator Manual for - more information on the ini file. -* 'Max Velocity' - which allows you to restrict the maximum velocity of all - programmed motions (except spindle synchronized motion). -* A text display area that shows the loaded G-Code. -* A status bar which shows the state of the machine. In this screen - shot, the machine is turned on, does not have a tool inserted, and the - displayed position is 'Relative' (showing all offsets), and 'Actual' - (showing feedback position). - -=== Menu Items - -Some menu items might be grayed out depending on how you have your -.ini file configured. For more information on configuration see the -Integrator Manual. - -.File Menu - -* 'Open...' - Opens a standard dialog box to open a g code file to load in AXIS. If - you have configured LinuxCNC to use a filter program you can also open it - up. See the Integrator manual for more information on filter programs. - -* 'Recent Files' - Displays a list of recently opened files. - -* 'Edit...' - Open the current g code file for editing if you have an editor - configured in your ini file. See the Integrator Manual for more - information on specifying an editor to use. - -* 'Reload' - Reload the current g code file. If you edited it you must reload it - for the changes to take affect. If you stop a file and want to start - from the beginning then reload the file. The toolbar reload is the same - as the menu. - -* 'Save gcode as...' - Save the current file with a new name. - -* 'Properties' - The sum of the rapid and feed moves. Does not factor in - acceleration, blending or path mode so time reported will never - be less than the actual run time. - -* 'Edit tool table...' - Same as Edit if you have defined an editor - you can open the tool table and edit it. - -* 'Reload tool table' - After editing the tool table you must reload it. - -* 'Ladder editor' - If you have loaded Classic Ladder you can edit it from - here. See the Integrator Manual on setting up Classic Ladder - -* 'Quit' - - Terminates the current LinuxCNC session. - -.Machine Menu [[sub:axis-machine-menu]] - -* 'Toggle Emergency Stop F1' - Change the state of the Emergency Stop. - -* 'Toggle Machine Power F2' - Change the state of the Machine Power if - the Emergency Stop is not on. - -* 'Run Program' - Run the currently loaded program from the beginning. - -* 'Run From Selected Line' - Select the line you want to start from first. - Use with caution as this will move the tool to the expected position before - the line first then it will execute the rest of the code. - -[WARNING] -Do not use 'Run From Selected Line' if your g code program contains subroutines. - -* 'Step' - Single step through a program. - -* 'Pause' - Pause a program. - -* 'Resume' - Resume running from a pause. - -* 'Stop' - Stop a running program. When run is selected after a stop the program - will start from the beginning. - -* 'Stop at M1' - If an M1 is reached, and this is checked, program execution - will stop on the M1 line. Press Resume to continue. - -* 'Skip lines with "/"' - If a line begins with '/' and this is checked, - the line will be skipped. - -* 'Clear MDI history' - Clears the MDI history window. - -* 'Copy from MDI history' - Copies the MDI history to the clipboard - -* 'Paste to MDI history' - Paste from the clipboard to the MDI history window - -* 'Calibration' - Starts a PID tuning assistant, which is mainly for servo systems. - Some things can be changed on a stepper system. - -* 'Show HAL Configuration' - Opens the HAL Configuration window where you can - monitor HAL Components, Pins, Parameters, Signals, Functions, and Threads. - -* 'HAL Meter' - Opens a window where you can monitor a single HAL Pin, Signal, or - Parameter. - -* 'HAL Scope' - Opens a virtual oscilloscope that allows plotting HAL values vs. time. - -* 'Show LinuxCNC Status' - Opens a window showing LinuxCNC's status. - -* 'Set Debug Level' - Opens a window where debug levels can be viewed and some can be set. - -* 'Homing' - Home one or all axes. - -* 'Unhoming' - Unhome one or all axes. - -* 'Zero Coordinate System' - Clear (set to zero) a chosen offset. - -* 'Tool touch off to workpiece' - When performing Touch Off, the value - entered is relative to the current workpiece ('G5x') coordinate system, - as modified by the axis offset ('G92'). When the Touch Off is complete, - the Relative coordinate for the chosen axis will become the value entered. - (See also 'G10 L10') - -* 'Tool touch off to fixture' - When performing Touch Off, the value entered - is relative to the ninth - ('G59.3') coordinate system, with the axis offset ('G92') ignored. This is - useful when there is a tool touch-off fixture at a fixed location on the - machine, with the ninth ('G59.3') coordinate system set such that the - tip of a zero-length tool is at the fixture's origin when the Relative - coordinates are 0. See also <>. - -.View Menu - -.It's all in your point of view -******************************************************************************* -The AXIS display pick menu 'View' refers to 'Top', 'Front', and 'Side' views. -These terms are correct if the CNC machine has its Z axis vertical, with -positive Z up. This is true for vertical mills, which is probably the most -popular application, and also true for almost all EDM machines, and even -vertical turret lathes, where the part is turning below the tool. - -The terms 'Top', 'Front', and 'Side' might be confusing however, in other -CNC machines, such as a standard lathe, where the Z axis is horizontal, or -a horizontal mill, again where the Z axis is horizontal, or even an inverted -vertical turret lathe, where the part is turning above the tool, and the Z axis -positive direction is down! - -Just remember that positive Z axis is (almost) always away from the part. -So be familiar with your machine's design and interpret the display as needed. -******************************************************************************* - -* 'Top View' - The Top View (or Z view) displays the gcode looking along the Z axis from - positive to negative. This view is best for looking at X & Y. - -* 'Rotated Top View' - The Rotated Top View (or rotated Z view) also displays the gcode looking - along the Z axis from positive to negative. But sometimes it's convenient - to display the X & Y axes rotated 90 degrees to fit the display better. - This view is also best for looking at X & Y. - -* 'Side View' - The Side View (or X view) displays the gcode looking along the X axis from - positive to negative. This view is best for looking at Y & Z. - -* 'Front View' - The Front View (or Y view) displays the gcode looking along the Y axis from - negative to positive. This view is best for looking at X & Z. - -* 'Perspective View' - The Perpective View (or P view) displays the gcode looking at the part from - an adjustable point of view, defaulting to X+, Y-, Z+. The position is - adjustable using the mouse and the drag/rotate selector. This view is a - compromise view, and while it does do a good job of trying to show three - (to nine!) axes on a two-dimensional display, there will often be some - feature that is hard to see, requiring a change in viewpoint. This view - is best when you would like to see all three (to nine) axes at once. - -* 'Display Inches' - Set the AXIS display scaling for inches. - -* 'Display MM' - Set the AXIS display scaling for millimeters. - -* 'Show Program' - The preview display of the loaded gcode program can be entirely - disabled if desired. - -* 'Show Program Rapids' - The preview display of the loaded gcode program will always show the - feedrate moves (G1,G2,G3) in white. But the display of rapid moves (G0) - in cyan can be disabled if desired. - -* 'Alpha-blend Program' - This option makes the preview of complex programs easier to see, but - may cause the preview to display more slowly. - -* 'Show Live Plot' - The highlighting of the feedrate paths (G1,G2,G3) as the tool moves - can be disabled if desired. - -* 'Show Tool' - The display of the tool cone/cylinder can be disabled if desired. - -* 'Show Extents' - The display of the extents (maximum travel in each axis direction) - of the loaded gcode program can be disabled if desired. - -* 'Show Offsets' - The selected fixture offset (G54-G59.3) origin location can be shown - as a set of three orthogonal lines, one each of red, blue, and green. - This offset origin (or fixture zero) display can be disabled if desired. - -* 'Show Machine Limits' - The machine's maximum travel limits for each axis, as set in the ini - file, are shown as a rectangular box drawn in red dashed lines. This - is useful when loading a new gcode program, or when checking for how - much fixture offset would be needed to bring the gcode program within - the travel limits of your machine. It can be shut off if not needed. - -* 'Show Velocity' - A display of velocity is sometimes useful to see how close your - machine is running to its design velocities. It can be disabled - if desired. - -* 'Show Distance to Go' - Distance to go is a very handy item to know when running an unknown - gcode program for the first time. In combination with the rapid - override and feedrate override controls, unwanted tool - and machine damage can be avoided. Once the gcode program has - been debugged and is running smoothly, the Distance to Go display - can be disabled if desired. - -* 'Clear Live Plot' - As the tool travels in the Axis display, the gcode path is highlighted. - To repeat the program, or to better see an area of interest, the - previously highlighted paths can be cleared. - -* 'Show Commanded Position' - This is the position that LinuxCNC will try to go to. Once motion - has stopped, this is the position LinuxCNC will try to hold. - -* 'Show Actual Position' - Actual Position is the measured position as read back from the - system's encoders or simulated by step generators. This may differ - slightly from the Commanded Position for many reasons including PID - tuning, physical constraints, or position quantization. - -* 'Show Machine Position' - This is the position in unoffset coordinates, as established by Homing. - -* 'Show Relative Position' - This is the Machine Position modified by 'G5x', 'G92', and 'G43' offsets. - -.Help Menu - -* 'About Axis' - We all know what this is. - - -* 'Quick Reference' - Shows the keyboard shortcut keys. - -=== Toolbar buttons - -From left to right in the Axis display, the toolbar buttons (keyboard shortcuts shown [in brackets]) are: - -* image:images/tool_estop.gif[] Toggle Emergency Stop [F1] (also called E-Stop)(((ESTOP)))) - -* image:images/tool_power.gif[] Toggle Machine Power [F2](((machine on))) - -* image:images/tool_open.gif[] Open G Code file [O] - -* image:images/tool_reload.gif[] Reload current file [Ctrl-R] - -* image:images/tool_run.gif[] Begin executing the current file [R] - -* image:images/tool_step.gif[] Execute next line [T] - -* image:images/tool_pause.gif[] Pause Execution [P] Resume Execution[S] - -* image:images/tool_stop.gif[] Stop Program Execution [ESC] - -* image:images/tool_blockdelete.gif[] Toggle Skip lines with "/" [Alt-M-/] - -* image:images/tool_optpause.gif[] Toggle Optional Pause [Alt-M-1] - -* image:images/tool_zoomin.gif[] Zoom In - -* image:images/tool_zoomout.gif[] Zoom Out - -* image:images/tool_axis_z.gif[] Top view - -* image:images/tool_axis_z2.gif[] Rotated Top view - -* image:images/tool_axis_x.gif[] Side view - -* image:images/tool_axis_y.gif[] Front view - -* image:images/tool_axis_p.gif[] Perspective view - -* image:images/tool_rotate.gif[] Toggle between Drag and Rotate Mode [D] - -* image:images/tool_clear.gif[] Clear live backplot [Ctrl-K] - - -=== Graphical Display Area - -.Coordinate Display - -In the upper-left corner of the program display is the coordinate display. -It shows the position of the machine. -To the left of the axis name, an origin symbol is shown -if the axis has been homed. - -image:images/axis-homed.png[] - -A limit symbol is shown if the axis is on one of its limit switches. - -image:images/axis-limit.png[] - -To properly interpret these numbers, refer to the 'Position:' -indicator in the status bar. If the position is 'Absolute', then the -displayed number is in the machine coordinate system. If it is -'Relative', then the displayed number is in the offset coordinate -system. When the coordinates displayed are relative and an offset has -been set, the display will include a cyan 'machine origin' marker. - -image:images/axis-machineorigin.png[] - -If the position is 'Commanded', then it is the ideal position ---for instance, the exact coordinate given in a 'G0' command. -If it is 'Actual', then it is the position -the machine has actually moved to. -These values can differ for several reasons: -Following error, dead band, encoder resolution, or step size. -For instance, if you command a movement to X 0.0033 on your mill, -but one step of your stepper motor or one encoder count is 0.00125, -then the 'Commanded' position might be 0.0033, -but the 'Actual' position will be 0.0025 (2 steps) or 0.00375 (3 steps). - -.Preview Plot -(((preview plot))) - -When a file is loaded, -a preview of it is shown in the display area. -Fast moves (such as those produced by the 'G0' command) are shown as -cyan lines. Moves at a feed rate -(such as those produced by the 'G1' command) are -shown as solid white lines. Dwells -(such as those produced by the 'G4' command) -are shown as small pink 'X' marks. - -G0 (Rapid) moves prior to a feed move -will not show on the preview plot. -Rapid moves after a T (Tool Change) will not show on the -preview until after the first feed move. -To turn either of these features off -program a G1 without any moves prior to the G0 moves. - -.Program Extents -(((program extents))) - -The 'extents' of the program in each axis are shown. -At the ends, the least and greatest coordinate values are indicated. -In the middle, the difference between the coordinates is shown. - -When some coordinates exceed the 'soft limits' in the .ini file, -the relevant dimension is shown in a different color and enclosed by a box. -In figure below the maximum soft limit is exceeded on -the X axis as indicated by the box surrounding the coordinate value. -The minimum X travel of the program is -1.95, -the maximum X travel is 1.88, -and the program requires 3.83 inches of X travel. -To move the program so it's within the machine's travel in this case, -jog to the left and Touch Off X again. - -.Soft Limit[[cap:Soft-Limit]] - -image::images/axis-outofrange.png[align="center"] - -.Tool Cone -When no tool is loaded, the location of the tip of the tool is -indicated by the 'tool cone'. -The 'tool cone' does not provide guidance on the form, -length, or radius of the tool. - -When a tool is loaded (for instance, with the MDI command 'T1 M6' ), -the cone changes to a cylinder which shows the diameter of the tool -given in the tool table file. - -.Backplot - -When the machine moves, it leaves a trail called the backplot. -The color of the line indicates the type of motion: -Yellow for jogs, faint green for rapid movements, -red for straight moves at a feed rate, -and magenta for circular moves at a feed rate. - -.Interacting - -By left-clicking on a portion of the preview plot, -the line will be highlighted -in both the graphical and text displays. -By left-clicking on an empty area, the highlighting will be removed. - -By dragging with the left mouse button pressed, -the preview plot will be shifted (panned). - -By dragging with shift and the left mouse button pressed, -or by dragging with the mouse wheel pressed, -the preview plot will be rotated. -When a line is highlighted, -the center of rotation is the center of the line. -Otherwise, the center of rotation is -the center of the entire program. - -By rotating the mouse wheel, -or by dragging with the right mouse button pressed, -or by dragging with control and the left mouse button pressed, -the preview plot will be zoomed in or out. - -By clicking one of the 'Preset View' icons, -or by pressing 'V', several preset views may be selected. - -=== Text Display Area - -By left-clicking a line of the program, the line will be highlighted -in both the graphical and text displays. - -When the program is running, the line currently being executed is -highlighted in red. If no line has been selected by the user, -the text display will automatically scroll to show the current line. - -.Current and Selected Lines[[cap:Current-and-Selected]] - -image::images/axis-currentandselected.png[align="center"] - -=== Manual Control -(((Manual))) - -While the machine is turned on but not running a program, -the items in the 'Manual Control' tab can be used to -move the machine or control its spindle and coolant. - -When the machine is not turned on, or when a program is running, the -manual controls are unavailable. - -Many of the items described below are not useful on all machines. -When AXIS detects that a particular pin is not connected in HAL, -the corresponding item in the Manual Control tab is removed. -For instance, if the HAL pin 'motion.spindle-brake' is not connected, -then the 'Brake' button will not appear on the screen. -If the environment variable 'AXIS_NO_AUTOCONFIGURE' is set, -this behavior is disabled and all the items will appear. - -.The Axis group - -'Axis' allows you to manually move the machine. -This action is known as 'jogging'. -First, select the axis to be moved by clicking it. -Then, click and hold the '+' or '-' button -depending on the desired direction of motion. -The first four axes can also be moved by -the arrow keys (X and Y), -PAGE UP and PAGE DOWN keys (Z), -and the [ and ] keys (A). - -If 'Continuous' is selected, the motion will continue -as long as the button or key is pressed. -If another value is selected, -the machine will move exactly the displayed distance -each time the button is clicked or the key is pressed. -By default, the available values are '0.1000, 0.0100, 0.0010, 0.0001' - -See the Configure section of the Integrator Manual for -more information on setting the increments. - -.Homing - -If your machine has home switches and a homing sequence defined for -all axes the button will read 'Home All'. The 'Home All' button or the -Ctrl-HOME key will home all axes using the homing sequence. Pressing -the HOME key will home the current axis, even if a homing sequence is -defined. - -If your machine has home switches and no homing sequence is defined or -not all axes have a homing sequence the button will read 'Home' and -will home the selected axis only. Each axis must be selected and homed -separately. - -If your machine does not have home switches defined in the -configuration the 'Home' button will set the current selected axis -current position to be the absolute position 0 for that axis and will -set the 'is-homed' bit for that axis. - -See the Integrator Manual for more information on homing. - -.Touch Off - -By pressing 'Touch Off' or the END key, the 'G54 offset' for the -current axis is changed so that the current axis value will be the -specified value. Expressions may be entered using the rules for -rs274ngc programs, except that variables may not be referred to. The -resulting value is shown as a number. - -.Touch Off[[cap:Touch-Off]] - -image::images/touchoff.png[align="center"] - -See also the 'Tool touch off to workpiece' and 'Tool touch off to fixture' -options in the Machine menu. - -.Override Limits - -By pressing Override Limits, the machine will temporarily be allowed -to jog off of a physical limit switch. This check box is only available -when a limit switch is tripped. The override is reset after one jog. If -the axis is configured with separate positive and negative limit switches, -LinuxCNC will allow the jog only in the correct direction. _Override Limits will -not allow a jog past a soft limit. The only way to disable a soft limit -on an axis is to Unhome it._ - -.The Spindle group -(((AxisUI, spindle))) - -The buttons on the first row select the direction for the spindle to -rotate: Counterclockwise, Stopped, Clockwise. Counterclockwise will -only show up if the pin 'motion.spindle-reverse' is in the HAL file (it -can be 'net trick-axis motion.spindle-reverse' ). The buttons on the -next row increase or decrease the rotation -speed. The checkbox on the third row allows the spindle brake to be -engaged or released. Depending on your machine configuration, not all -the items in this group may appear. Pressing the spindle start button -sets the 'S' speed to 1. - -.The Coolant group -(((AxisUI, coolant))) - -The two buttons allow the 'Mist' and 'Flood' coolants to be turned on -and off. Depending on your machine configuration, not all the items in -this group may appear. - -=== MDI -(((AxisUI, MDI))) - -MDI allows G-code commands to be entered manually. -When the machine is not turned on, or when a program is -running, the MDI controls are unavailable. - -.The MDI tab[[cap:The-MDI-tab]] - -image::images/axis-mdi.png[align="center"] - -* 'History' - This shows MDI commands that have been typed earlier in this session. - -* 'MDI Command' - This allows you to enter a g-code command to be executed. Execute the - command by pressing Enter or by clicking 'Go'. - -* 'Active G-Codes' - This shows the 'modal codes' that are active in the interpreter. For - instance, 'G54' indicates that the 'G54 offset' is applied to all - coordinates that are entered. When in Auto the Active G-Codes represent - the codes after any read ahead by the interpreter. - -=== Feed Override -(((AxisUI, feed override))) - -By moving this slider, the programmed feed rate can be modified. For -instance, if a program requests 'F60' and the slider is set to 120%, -then the resulting feed rate will be 72. - -=== Spindle Speed Override -(((AxisUI, spindle speed override))) - -By moving this slider, the programmed spindle speed can be -modified. For instance, if a program requests S8000 and the slider is -set to 80%, then the resulting spindle speed will be 6400. This item -only appears when the HAL pin 'motion.spindle-speed-out' is connected. - -=== Jog Speed -(((AxisUI, jog speed))) - -By moving this slider, the speed of jogs can be modified. For -instance, if the slider is set to 1 in/min, then a .01 inch jog will -complete in about .6 seconds, or 1/100 of a minute. Near the left side -(slow jogs) the values are spaced closely together, while near the -right side (fast jogs) they are spaced much further apart, allowing a -wide range of jog speeds with fine control when it is most important. - -On machines with a rotary axis, a second jog speed slider is shown. -This slider sets the jog rate for the rotary axes (A, B and C). - -=== Max Velocity -(((AxisUI, Max Velocity))) - -By moving this slider, the maximum velocity can be set. This caps the -maximum velocity for all programmed moves except spindle-synchronized -moves. - -== Keyboard Controls -(((AxisUI, keyboard shortcuts))) - -Almost all actions in AXIS can be accomplished with the keyboard. A -full list of keyboard shortcuts can be found in the AXIS Quick -Reference, which can be displayed by choosing Help > Quick Reference. -Many of the shortcuts are unavailable when in MDI mode. - -.Feed Override Keys - -The Feed Override keys behave differently when in Manual Mode. The -keys '12345678 will select an axis if it is programed. If you have 3 -axis then ' will select axis 0, 1 will select axis 1, and 2 will select -axis 2. The remainder of the number keys will still set the Feed -Override. When running a program '1234567890 will set the Feed Override -to 0% - 100%. - -The most frequently used keyboard shortcuts are shown in the following Table - -.Most Common Keyboard Shortcuts[[cap:Most-Common-Keyboard]] - -[width="80%", options="header", cols="^,<,^"] -|==================================================================== -|Keystroke | Action Taken | Mode -|F1 | Toggle Emergency Stop | All -|F2 | Turn machine on/off | All -|`, 1 .. 9, 0 | Set feed override from 0% to 100% | Varies -|X, ` | Activate first axis | Manual -|Y, 1 | Activate second axis | Manual -|Z, 2 | Activate third axis | Manual -|A, 3 | Activate fourth axis | Manual -|I | Select jog increment | Manual -|C | Continuous jog | Manual -|Control-Home | Perform homing sequence | Manual -|End | Touch off: Set G54 offset for active axis | Manual -|Left, Right | Jog first axis | Manual -|Up, Down | Jog second axis | Manual -|Pg Up, Pg Dn | Jog third axis | Manual -|[, ] | Jog fourth axis | Manual -|O | Open File | Manual -|Control-R | Reload File | Manual -|R | Run file | Manual -|P | Pause execution | Auto -|S | Resume Execution | Auto -|ESC | Stop execution | Auto -|Control-K | Clear backplot | Auto/Manual -|V | Cycle among preset views | Auto/Manual -|Shift-Left,Right | Rapid X Axis | Manual -|Shift-Up,Down | Rapid Y Axis | Manual -|Shift-PgUp, PgDn | Rapid Z Axis | Manual -|==================================================================== - -== Show LinuxCNC Status (linuxcnctop) - -AXIS includes a program called 'linuxcnctop' which shows some of the -details of LinuxCNC's state. You can run this program by invoking Machine > -Show LinuxCNC Status - -.LinuxCNC Status Window[[cap:LinuxCNC-Status-Window]] - -image::images/axis-emc-status.png[align="center"] - -The name of each item is shown in the left column. The current value -is shown in the right column. If the value has recently changed, it is -shown on a red background. - -== MDI interface - -AXIS includes a program called 'MDI' which allows text-mode entry of -MDI commands to a running LinuxCNC session. You can run this program by -opening a terminal and typing - - mdi /path/to/emc.nml - -Once it is running, it displays the prompt 'MDI>'. When a blank line -is entered, the machine's current position is shown. -When a command is entered, it is sent to LinuxCNC to be executed. - -This is a sample session of mdi. - ----- -$ MDI ~/emc2/configs/sim/emc.nml -MDI> -(0.0, 0.0, 0.0, 0.0, 0.0, 0.0) -MDI> G1 F5 X1 -MDI> -(0.5928500000000374, 0.0, 0.0, 0.0, 0.0, 0.0) -MDI> -(1.0000000000000639, 0.0, 0.0, 0.0, 0.0, 0.0) ----- - -== axis-remote - -AXIS includes a program called 'axis-remote' which can send certain -commands to a running AXIS. The available commands are shown by running -'axis-remote --help' and include checking whether AXIS is running -('--ping'), loading a file by name, reloading the currently loaded -file ('--reload'), and making AXIS exit ('--quit'). - -[[sec:Manual-Tool-Change]] -== Manual Tool Change -(((Manual Tool Change))) - -LinuxCNC includes a userspace HAL component called 'hal_manualtoolchange', -which shows a window prompt telling you what tool is expected when a -'M6' command is issued. After the OK button is pressed, execution of -the program will continue. - -The HAL configuration file 'configs/sim/axis_manualtoolchange.hal' -shows the HAL commands necessary to use this component. - -hal_manualtoolchange can be used even when AXIS is not used as the GUI. -This component is most useful if you have presettable tools and -you use the tool table. - -[NOTE] -Important Note: Rapids will not show on the preview after -a T is issued until the next feed move after the M6. -This can be very confusing to most users. -To turn this feature off for the current tool change -program a G1 with no move after the T. - -.The Manual Toolchange Window[[cap:The-Manual-Toolchange]] - -image::images/manual-tool-change.png[align="center"] - -== Python modules - -AXIS(((AXIS))) includes several Python(((Python))) modules which may -be useful to others. For more information on one of these modules, use -'pydoc ' or read the source code. These modules include: - - - 'emc' provides access to the LinuxCNC command, status, and error channels - - 'gcode' provides access to the rs274ngc interpreter - - 'rs274' provides additional tools for working with rs274ngc files - - 'hal' allows the creation of userspace HAL components written in Python - - '_togl' provides an OpenGL widget that can be used in Tkinter applications - - 'minigl' provides access to the subset of OpenGL used by AXIS - -To use these modules in your own scripts, you must ensure that the -directory where they reside is on Python's module path. When running an -installed version of LinuxCNC, this should happen automatically. When -running 'in-place', this can be done by using -'scripts/rip-environment'. - -== Using AXIS in Lathe Mode -(((AXIS in lathe mode))) - -By including the line 'LATHE = 1' -in the [DISPLAY] section of the ini file, AXIS selects lathe mode. The -'Y' axis is not shown in coordinate readouts, the view is changed to -show the Z axis extending to the right and the X axis extending towards -the bottom of the screen, and several controls (such as those for -preset views) are removed. The coordinate readouts for X are replaced -with diameter and radius. - -Pressing 'V' zooms out to show the entire file, if one is loaded. - -When in lathe mode, the shape of the loaded tool (if any) is shown. - -.Lathe Tool Shape[[cap:Lathe-Tool-Shape]] - -image:images/axis-lathe-tool.png[align="center"] - -== Advanced Configuration - -For more information on ini file settings that can change how AXIS -works see the INI File/Sections/[DISPLAY] Section of Configuration -chapter in the Integrator manual. - -=== Program Filters - -AXIS has the ability to send loaded files through a 'filter program'. -This filter can do any desired task: Something as simple as making sure -the file ends with 'M2', or something as complicated as generating -G-Code from an image. - -The '[FILTER]' section of the ini file controls how filters work. -First, for each type of file, write a 'PROGRAM_EXTENSION' line. -Then, specify the program to execute for each type of file. -This program is given the name of the input file as its first argument, -and must write rs274ngc code to standard output. This output is what -will be displayed in the text area, previewed in the display area, and -executed by LinuxCNC when 'Run'. The following lines add support for the -'image-to-gcode' converter included with LinuxCNC: - ----- -[FILTER] -PROGRAM_EXTENSION = .png,.gif Greyscale Depth Image -png = image-to-gcode -gif = image-to-gcode ----- - -It is also possible to specify an interpreter: - ----- -PROGRAM_EXTENSION = .py Python Script -py = python ----- - -In this way, any Python script can be opened, and its output is -treated as g-code. One such example script is available at -'nc_files/holecircle.py'. This script creates g-code for drilling a -series of holes along the circumference of a circle. - -.Circular Holes[[cap:Circular-Holes]] - -image::images/holes.png[align="center"] - -If the environment variable AXIS_PROGRESS_BAR is set, then lines -written to stderr of the form - ----- -FILTER_PROGRESS=%d ----- - -will set the AXIS progress bar to the given percentage. This feature -should be used by any filter that runs for a long time. - -=== The X Resource Database - -The colors of most elements of the AXIS user interface can be -customized through the X Resource Database. The sample file -'axis_light_background' changes the colors of the backplot window to a -'dark lines on white -background' scheme, and also serves as a reference for the configurable -items in the display area. The sample file 'axis_big_dro' changes the -position readout to a larger size font. To use these files: - ----- -xrdb -merge /usr/share/doc/emc2/axis_light_background - -xrdb -merge /usr/share/doc/emc2/axis_big_dro ----- -For information about the other items which can be configured in Tk -applications, see the Tk man pages. - -Because modern desktop environments automatically make some settings -in the X Resource Database that adversely affect AXIS, by default these -settings are ignored. To make the X Resource Database items override -AXIS defaults, include the following line in your X Resources: - -// These asterisks are not for bold, ----- - *Axis*optionLevel: widgetDefault ----- -// in this case, we want the asterisks to actually appear. - -this causes the built-in options to be created at the option level -'widgetDefault', so that X Resources (which are level 'userDefault') -can override them. - -=== Physical jog wheels[[sub:Physical-jog-wheels]] - -To improve the interaction of AXIS with physical jog wheels, the axis -currently selected in the GUI is also reported on a pin with a name -like 'axisui.jog.x'. One of these pins is 'TRUE' at one time, and the rest are -'FALSE'. These are meant to control motion's jog-enable pins. - -After AXIS has created these HAL pins, it executes the HAL file named -in '[HAL]POSTGUI_HALFILE'. Unlike '[HAL]HALFILE', only one such file -may be used. - -=== ~./axisrc -(((.axisrc))) - -If it exists, the contents of '~/.axisrc' are executed as Python -source code just before the AXIS GUI is -displayed. The details of what may be written in the axisrc are subject -to change during the development cycle. - -The following adds Control-Q as a keyboard shortcut for Quit. - ----- -root_window.bind("", "destroy .") -help2.append(("Control-Q", "Quit")) ----- - -=== External Editor -(((External Editor))) - -The menu options File > Edit... and File > Edit Tool Table... become -available after defining the editor in the ini section [DISPLAY]. -Useful values include EDITOR=gedit and EDITOR=gnome-terminal -e vim. -For more information, see the DISPLAY section of the INI Configuration -Chapter in the Integrator Manual. - -=== Virtual Control Panel -(((Virtual Control Panel))) - -AXIS can display a custom virtual control panel in the right-hand -pane. You can program buttons, indicators, data displays and more. For -more information, see the Integrator Manual. - -=== Axis Preview Control -[[sub:axis-preview-control]](((Axis Preview Control))) - -Special comments can be inserted into the G Code file to control how -the preview of AXIS behaves. In the case where you want to limit the -drawing of the preview use these special comments. Anything between the -(AXIS,hide) and (AXIS,show) will not be drawn during the preview. The -(AXIS,hide) and (AXIS,show) must be used in pairs with the (AXIS,hide) -being first. Anything after a (AXIS,stop) will not be drawn during the -preview. - -These comments are useful to unclutter the preview display (for -instance while debugging a larger g-code file, one can disable the -preview on certain parts that are already working OK). - - - (AXIS,hide) Stops the preview (must be first) - - (AXIS,show) Resumes the preview (must follow a hide) - - (AXIS,stop) Stops the preview from here to the end of the file. - - (AXIS,notify,the_text) Displays the_text as an info display -This display can be useful in the Axis preview when (debug,message) -comments are not displayed. - - diff --git a/docs/src/gui/axis_fr.txt b/docs/src/gui/axis_fr.txt deleted file mode 100644 index 415e3aa21c1..00000000000 --- a/docs/src/gui/axis_fr.txt +++ /dev/null @@ -1,1055 +0,0 @@ -:lang: fr -:toc: - -= L'interface graphique AXIS - -[[cha:Axis]] (((Axis))) - -== Introduction - -AXIS(((AXIS))) est une interface utilisateur graphique pour LinuxCNC, il -offre un aperçu permanent du parcours de l'outil. Il est écrit en -Python(((Python))), utilise Tk(((Tk))) et OpenGL(((OpenGL))) pour -l'affichage de l'interface graphique. - -[[cap:Fenetre-AXIS]] -.Fenêtre d'AXIS - -image::images/axis_25_fr.png[] - -== Commencer avec AXIS - -Pour choisir AXIS comme interface graphique de LinuxCNC, éditez le fichier -.ini et dans la section [DISPLAY] changez la ligne DISPLAY comme -ceci: ----- -DISPLAY = axis ----- - -Puis, lancez LinuxCNC et choisissez le fichier ini. La configuration -simplifiée _sim/axis.ini_ est déjà configurée pour utiliser AXIS comme -interface graphique. - -Quand AXIS démarre, une fenêtre telle que celle de la figure -<> s'ouvre. - -=== Une session typique avec AXIS - - . Lancer LinuxCNC et sélectionner un fichier de configuration. - . Relâcher le bouton d'arrêt d'urgence _A/U_(((A/U))) et presser - celui de _Marche_ machine. - . Faire les prises d'origine machine _POM_ pour chacun des axes. - . Charger un fichier d'usinage. - . Utiliser l'affichage du parcours d'outil pour vérifier que le - programme est correct. - . Brider le brut à usiner sur la table. - . Faire les prises d'origine pièce _POP_ de chacun des axes avec le jog - et en utilisant le bouton _Toucher_.(((Toucher))) - . Lancer le programme. - . Pour usiner le même fichier une nouvelle fois, retourner à l'étape 6. - Pour usiner un fichier différent, retourner à l'étape 4. Quand le travail - est terminé, quitter AXIS. - -== Eléments de la fenêtre d'AXIS - -La fenêtre d'AXIS contient les éléments suivants: - - - Un espace d'affichage qui montre une pré-visualisation du fichier - chargé (dans ce cas, _axis.ngc_), ainsi que la position courante du - point programmé par la machine. Plus tard, cette zone - affichera le parcours de l'outil déplacé par la machine, cette zone - est appelée le parcours d'outil (backplot) - - Une barre de menus, une barre d'outils, des curseurs et des onglets - permettant d'effectuer différentes actions. - - L'onglet _Contrôle manuel_(((Contrôle manuel))), qui permet de faire - des mouvements d'axe, de mettre la broche en rotation ou de l'arrêter, - de mettre l'arrosage en marche ou de l'arrêter. - - L'onglet _Données manuelles_ (appelé aussi MDI), (((Données manuelles))) - où les blocs de programme G-code peuvent être entrés et exécutés à - la main, une ligne à la fois. - - Les curseurs _Correcteurs de vitesse_(((Correcteurs de vitesse))), - qui permettent d'augmenter ou de diminuer la vitesse de la - fonction concernée. - - Une zone de textes qui affiche le G-code du fichier chargé. - - Une barre d'état qui affiche l'état de la machine. Dans cette capture - d'écran, la machine est en marche, aucun outil n'est monté, la position - affichée est _relative_(((Position: Relative))) à l'origine machine - (par opposition à une position _absolue_)(((Position: Absolue))) et - _actuelle_(((Position: Actuelle))) (par opposition à une position - _commandée_)(((Position: Commandée))) - -=== Options des menus - -Certaines options de menu peuvent s'afficher en grisé, c'est dépendant des -options du fichier de configuration ini. - -==== Menu Fichier - -Ouvrir...:: - C'est une boîte de dialogue standard pour ouvrir un fichier G-code - à charger dans AXIS. Si un filtre de programme a été configuré, il - peut aussi être ouvert ici. - -Fichiers récents...:: - Affiche la liste des fichiers ouverts récemment. - -Éditer...:: - Ouvre le fichier G-code courant pour édition si un éditeur a été - déclaré dans le fichier ini. - -Recharger...:: - Recharge le fichier G-code courant. Si le fichier a été édité, il doit - être rechargé pour que les modifications prennent effet. Si un programme - a été stoppé, pour le reprendre depuis le début, le recharger. - Le bouton _Recharger_ a le même effet que l'option de menu. - -Enregistrer le G-code sous...:: - Enregistre le fichier courant sous un nouveau nom. - -Propriétés...:: - Donne la somme des mouvements en vitesse rapide et celle en vitesse travail. - Ne tient pas compte des accélérations, ni des décélérations, ni des modes de - trajectoire, de sorte qu'il ne donne jamais de temps inférieur au temps réel - d'exécution. - -Éditer la table d'outils...:: - Ouvre un dialogue permettant d'éditer les valeurs de la table d'outils. - -Recharger la table d'outils...:: - Après avoir édité la table d'outil, il convient de la recharger pour que les - nouvelles valeurs soient prisent en compte. - -Éditeur de Ladder...:: - Si Classic Ladder a été chargé, il est possible de l'éditer ici. - -Quitter...:: - Termine la session courante de LinuxCNC. - -==== Menu Machine - -Arrêt d'Urgence F1...:: - (bascule) Active/désactive l'arrêt d'urgence. - -Marche/Arrêt F2...:: - (bascule) Active/désactive la puissance machine. - -Démarrer le programme...:: - Lance l'exécution du programme G-code. - -Démarrer à la ligne sélectionnée...:: - Prudence avec cette commande, respecter la démarche suivante: - Premièrement, sélectionner à la souris, la ligne à laquelle démarrer. - Déplacer ensuite manuellement, l'outil à la position de la ligne - précédente puis, cette commande exécutera le reste du code. - -Pas à pas...:: - Avance d'un seul pas de programme. - -Pause...:: - Effectue une pause dans le programme. - -Reprise...:: - Reprends la marche après une pause. - -Stopper...:: - Stoppe le programme en marche. - -Arrêt sur M1...:: - Si un M1 est rencontré et que cette option est cochée, l'exécution - du programme s'interrompra à la ligne du M1. - Presser _Reprise_ pour continuer. - -Sauter les lignes avec "/"...:: - Si une ligne commençant par / est rencontrée et que cette option est - cochée, cette ligne sera sautée. - -Vider l'historique du MDI...:: - Efface l'historique des données manuelles. - -Copier depuis l'historique du MDI...:: - Copier l'historique des données manuelles dans le presse-papier. - -Coller dans l'historique du MDI...:: - Coller le contenu du presse-papier dans la fenêtre d'historique - des données manuelles. - -Calibration...:: - Lance un assistant de réglage de PID. Cette option n'est utile qu'avec - un système à servomoteurs. - -Afficher configuration de HAL...:: - Ouvre une fenêtre sur la configuration de HAL depuis laquelle il est - possible de visualiser tous les _Components_, _Pins_, _Parameters_, - _Signals_, _Functions_ et _Threads_ de HAL. - -HAL Mètre...:: - Ouvre une fenêtre dans laquelle il est possible de visualiser un seul - _Signal, HAL Pin_, ou _Parameter_ de HAL. - -HAL Scope...:: - Ouvre un oscilloscope virtuel qui permet de tracer dans le temps, - les valeurs de HAL. - -Afficher l'état de LinuxCNC...:: - Ouvre une fenêtre montrant l'état de LinuxCNC. - -Choisir le niveau de Debug...:: - Ouvre une fenêtre dans laquelle les niveaux de débogage sont visibles - et certains réglables. - -Prise d'origine...:: - Effectue la prise d'origine machine d'un ou de tous les axes. - -Annulation OM...:: - Annule les origines d'un ou de tous les axes. - -Annulation décalage d'origine...:: - Annule les décalages d'origine du système de coordonnées choisi. - -L'outil touchera la pièce...:: - Lorsqu'un _Toucher_ est effectué, la valeur entrée est relative au - système de coordonnées pièce actuel (G5x), tel que modifié par - le décalage d'axe (G92). Quand la séquence de _Toucher_ est - complète, la coordonnée relative pour l'axe choisi prendra la valeur - entrée. (Voir aussi G10 L10) - -L'outil touchera le porte-pièce...:: - Lorsqu'un _Toucher_ est effectué, la valeur entrée est relative au 9ème - système de coordonnées (G59.3), le décalage d'axe (G92) est ignoré. - Mode destiné aux machines possédant un porte-pièce référencé à un endroit, - sur lequel s'effectue le _Toucher_. Le 9ème système de coordonnées doit - être ajusté pour que la pointe d'un outil de longueur nulle - (le nez de broche), soit à l'origine du porte-pièce quand les coordonnées - relatives sont à 0. Voir aussi <>. - -==== Menu Vues - -.Tout est dans le point de vue... -**** -Les icônes de choix du type d'affichage et du menu _Vues_ d'AXIS se référent -à des _Vue de dessus_, _Vue de face_ et _Vue de côté_. -Ces termes sont corrects si la machine CNC a un axe Z vertical, avec une valeur -de Z positive en haut. C'est vrai pour les fraiseuses verticales, qui sont -probablement les plus populaires, c'est également vrai pour toutes les machines -d'électro-érosion et aussi les tours verticaux, sur lesquels la pièce tourne -sous l'outil. - -Les termes __Vue de dessus__, __Vue de face__ et __Vue de côté__ sont cependant -source de confusion sur d'autres machines CNC, comme un tour standard, sur -lequel l'axe Z est horizontal, ou sur une fraiseuse horizontale, qui a également -l'axe Z horizontal, ou même un tour vertical inversé, sur lequel la pièce tourne -au dessus de l'outil et qui a son axe Z positif vers le bas! - -Il faut juste se rappeler que l'axe Z est toujours parallèle a la broche et -plus positif en s'éloignant de celle-ci. -Soyez familiarisé avec la cinématique de vos machines, vous interpréterez alors -l'affichage comme il se doit. -**** - -Vue de dessus...:: - La vue de dessus (ou vue de Z) affiche l'aspect du G-code vu depuis le côté - positif de l'axe Z et en regardant vers son côté négatif. Cette vue convient - bien pour visualiser les axes X et Y. - -Vue de dessus basculée...:: - La vue de dessus basculée (ou vue de Z basculé) affiche également l'aspect - du G-code vu depuis le côté positif de l'axe Z et en regardant vers son côté - négatif. Mais cette fois, les axes X et Y sont représentés pivotés de - 90 degrés pour mieux occuper l'espace d'affichage. Cette vue convient bien - également, pour visualiser les axes X et Y. - -Vue de côté...:: - La vue de côté (ou vue de X) affiche l'aspect du G-code vu depuis le côté - positif de l'axe X et en regardant vers son côté négatif. Cette vue - convient pour visualiser les axes Y et Z. - -Vue de face...:: - La vue de face (ou vue de Y) affiche l'aspect du G-code vu depuis le côté - positif de l'axe Y et en regardant vers son côté négatif. Cette vue - convient bien pour visualiser les axes X et Z. - -Vue en perspective...:: - La vue en perspective (ou vue P) affiche l'aspect du G-code en regardant - vers la pièce depuis un point de vue orientable, par défaut vers - X+, Y-, Z+. Cette position est orientable en la sélectionnant à la souris. - L'affichage est un compromis, il tente d'afficher en 3D, entre trois et - neuf axes, sur un écran en deux dimensions. Il y aura donc souvent - certaines caractéristiques difficiles à voir, ce qui requerra un - changement de point de vue. Cette vue convient bien pour voir les trois - axes à la fois. - -Affichage en pouces...:: - Ajuste l'échelle d'affichage d'AXIS pour les pouces. - -Affichage en mm...:: - Ajuste l'échelle d'affichage d'AXIS pour les millimètres. - -Afficher le programme...:: - L'affichage à l'écran de l'aspect du G-code peut être entièrement - désactivé si l'opérateur le souhaite. - -Parcours d'outil en vitesse rapide...:: - L'affichage du parcours d'outil du programme G-code courant représente - toujours les mouvements en vitesse travail (G1,G2,G3) en blanc. Mais - l'affichage des mouvements en vitesse rapide (G0) en cyan peut être - désactivé si si l'opérateur le souhaite. - -Simulation de transparence...:: - Cette option rends plus lisible le tracé des parcours affichés par les - programmes complexes, mais il peut rendre l'affichage plus lent. - -Parcours d'outil en temps réel...:: - La surbrillance des chemins d'outils en vitesse travail (G1,G2,G3) quand - l'outil se déplace peut être désactivée si l'opérateur le souhaite. - -Afficher l'outil...:: - Le symbole d'un outil, représenté par un cône ou un cylindre peut être - désactivé si l'opérateur le souhaite. - -Afficher les étendues...:: - L'affichage des étendues du programme G-code chargé (déplacements - maximum de chacun des axes), peut être désactivé si l'opérateur le souhaite. - -Afficher les offsets...:: - L'emplacement de l'origine du système de coordonnées pièce (G54 à G59.3) - peut être représenté par un jeu de trois lignes orthogonales, une - rouge, une bleue et une verte. - L'affichage de cette origine pièce (ou zéro pièce), peut être désactivé si - l'opérateur le souhaite. - -Afficher les limites machine...:: - Les limites maximales de déplacement machine pour chacun des axes, qui sont - fixées dans le fichier ini, s'affichent comme une boîte rectangulaire - en lignes pointillées rouges. Il est facile, au chargement d'un nouveau - programme G-code, de voir si la pièce est contenue dans le volume - représenté. Ou de vérifier de combien l'étau doit être décalé, pour que le - G-code puisse être usiné sans dépasser les limites de déplacements de la - machine. Cette option peut être désactivée si l'opérateur le souhaite. - -Afficher la vitesse d'avance...:: - L'affichage de la vitesse peut être utile pour voir la précision avec - laquelle la machine suit la vitesse commandée. Cette option peut être - désactivée si l'opérateur le souhaite. - -Afficher la distance restante...:: - La distance restante est une valeur très utile à suivre, au lancement - d'un programme de G-code inconnu pour la première fois. En combinaison avec - les curseurs des correcteurs de vitesse, des dégâts sur l'outil ou la - machine peuvent être évités. Quand le programme G-code sera débogué et qu'il - fonctionnera en douceur, l'affichage de la distance restante pourra être - désactivée si l'opérateur le souhaite. - -Coordonnées en police large...:: - Les coordonnées des axes et la vitesse d'avance, s'afficheront en - police large dans la vue du parcours d'outil. - -Rafraîchir le parcours d'outil...:: - Au fur et à mesure des déplacements de l'outil, les parcours s'affichent - sur l'écran d'Axis en surbrillance. Avant de répéter le programme, ou pour - avoir un affichage clair sur une zone intéressante, la surbrillance des - parcours précédents peut être rafraîchie. - -Afficher la position commandée...:: - C'est la position que LinuxCNC cherche à atteindre. Quand le mouvement est - stoppé, c'est la position que LinuxCNC cherchera à maintenir. - -Afficher la position actuelle...:: - La position actuelle est la position mesurée grâce aux informations issues - des codeurs ou simulées par le générateur de pas. Elle peut différer - légèrement de la position commandée pour diverses raisons, comme les - réglages des boucles PID, les contraintes physiques ou les efforts de coupe. - -Afficher la position machine...:: - C'est la position par rapport à l'origine machine, telle qu'établie par la - prise d'origine machine _(POM)_. - -Afficher la position relative...:: - C'est la position par rapport à l'origine pièce, telle qu'établie par la - prise d'origine pièce _(POP)_. - On peut aussi représenter cette position comme étant l'origine machine - à laquelle on a appliqué les codes de décalages des systèmes de - coordonnées G5x, G92 et G43. - -==== Menu Aide - -A propos d'Axis...:: - Donne la version et quelques informations relatives au copyright. - -Aide rapide...:: - Affiche la liste des raccourcis clavier. - -=== Boutons de la barre d'outils - -Signification des boutons de la fenêtre d'AXIS, de gauche à droite: - - . image:images/tool_estop.gif[align="center"] _Arrêt d'urgence_ (A/U) - (en Anglais, E-Stop)(((Arrêt d'urgence))) - - . image:images/tool_power.gif[] Marche/Arrêt puissance machine(((Marche/Arret))) - - . image:images/tool_open.gif[] Ouvrir un fichier - - . image:images/tool_reload.gif[] Recharger le fichier courant - - . image:images/tool_run.gif[] Départ cycle - - . image:images/tool_step.gif[] Cycle en pas à pas - - . image:images/tool_pause.gif[] Pause/Reprise - - . image:images/tool_stop.gif[] Stopper l'exécution du programme - - . image:images/tool_blockdelete.gif[] Sauter ou non les lignes commençant par */* - - . image:images/tool_optpause.gif[] Avec ou sans pause optionnelle - - . image:images/tool_zoomin.gif[] Zoom plus - - . image:images/tool_zoomout.gif[] Zoom moins - - . image:images/tool_axis_z.gif[] Vue prédéfinie *Z* (vue de dessus) - - . image:images/tool_axis_z2.gif[] Vue prédéfinie *Z basculée* - - . image:images/tool_axis_x.gif[] Vue prédéfinie *X* (vue de côté) - - . image:images/tool_axis_y.gif[] Vue prédéfinie *Y* (vue de face) - - . image:images/tool_axis_p.gif[] Vue prédéfinie *P* (vue en perspective) - - . image:images/tool_rotate.gif[align="center"] Orienter la vue avec le bouton -gauche de la souris - - . image:images/tool_clear.gif[] Rafraîchir le parcours d'outil - - -=== Zones d'affichage graphique du programme - -==== Affichage des coordonnées - -L'affichage des coordonnées est situé en haut à gauche de l'écran graphique. -Il montre les positions de la machine. -A gauche du nom de l'axe, un symbole d'origine est visible -si la prise d'origine de l'axe a été faite. - -image:images/axis-homed.png[] Symbole de prise d'origine faite. - - -A droite du nom de l'axe, un symbole de limite est visible si l'axe est sur -un de ses capteurs de limite. - -image:images/axis-limit.png[] Symbole de limite d'axe. - -Pour interpréter correctement ces valeurs, référez vous à l'indicateur -_Position_ de la barre d'état. Si la position est _Absolue_, alors les -valeurs affichées sont exprimées en coordonnées machine. Si la position -est _Relative_, alors les valeurs affichées sont exprimées en -coordonnées relatives à la pièce. Quand les coordonnées affichées sont -relatives, une marque d'origine de couleur cyan est visible pour -représenter l'origine machine. - -image:images/axis-machineorigin.png[] Symbole d'origine machine. - -Si la position est _Commandée_, alors il s'agit de la position à atteindre. -Par exemple, les coordonnées passées dans une commande *G0*. -Si la position est _Actuelle_, alors il s'agit de la position à -laquelle la machine vient de se déplacer. -Ces valeurs peuvent varier pour certaines raisons: -erreur de suivi, bande morte, résolution d'encodeur, ou taille de pas. -Par exemple, si vous demandez un mouvement à X 0.08 à votre fraiseuse, -mais un pas du moteur fait 0.03, -alors la position _Commandée_ sera de 0.08, -mais la position _Actuelle_ sera de 0.06 (2 pas) ou 0.09 (3 pas). - -==== Vue du parcours d'outil -(((Parcours d'outil))) - -Quand un fichier est chargé, -une vue du parcours d'outil qu'il produira est visible dans la zone graphique. -Les mouvements en vitesse rapide (tels ceux produits par une commande *G0*) -sont affichés en lignes pointillées vertes. -Les déplacements en vitesse travail (tels ceux produits par une commande *G1*) -sont affichés en lignes continues blanches. -Les arrêts temporisés (tels ceux produits par la commande *G4*) -sont représentés par une petite marque *X*. - -Un mouvement G0 (Vitesse rapide) avant un déplacement en vitesse travail -ne sera pas affiché sur l'écran des parcours d'outil. -Un mouvement en vitesse rapide, après un appel d'outil T, -n'apparaîtra sur l'écran des parcours d'outil qu'après le mouvement en vitesse -travail suivant. Pour contourner une de ces caractéristiques, -programmer un G1 sans déplacement, juste avant le G0. - -==== Étendues du programme -(((Étendues du programme))) - -Les _étendues_ du programme sont affichées pour chacun des axes. -Aux extrémités, les coordonnées minimales et maximales sont indiquées. -Au centres, la différence, entre ces deux coordonnées, est indiquée. - -Quand une coordonnée dépasse la limite logicielle fixée dans le fichier .ini, -la coordonnée correspondante s'affiche en rouge, entourée d'un rectangle. -Dans la figure ci-dessous, la limite maximale est dépassée -sur l'axe X, comme l'indique le rectangle entourant la valeur de la coordonnée. -Le déplacement X minimal du programme est de -1.95, la course maximale est -de 1.88 en X et le programme nécessite un déplacement en X de 3.83 pouces. -Le déplacement total demandé par le programme est donc possible. Pour cela, -se déplacer en jog vers la gauche puis _Toucher_ à nouveau pour corriger -l'origine pièce. - -.Limites logicielles[[cap:Etendues-Depassees]] - -image::images/axis-outofrange.png[] - -==== Le cône d'outil - -Si aucun outil n'est chargé, l'emplacement de la pointe de l'outil est -indiqué par le _cône d'outil_. -Le cône d'outil ne donne aucune indication sur la forme, -la longueur, ou le rayon de l'outil. - -Quand un outil est chargé, par exemple dans le MDI, avec la commande *T1 M6*, -le cône d'outil passe de conique à cylindrique, il indique alors la proportion -du diamètre de l'outil lu dans le fichier de la table d'outils. - -==== Parcours d'outil - -Quand la machine se déplace, elle laisse une trace appelée le parcours d'outil. -La couleur des lignes indique le type de mouvement: -jaune pour les mouvementq jog, vert clair pour les mouvements en vitesse rapide, -rouge pour les mouvements en vitesse d'avance programmée et magenta pour les -mouvements circulaires en vitesse d'avance programmée. - -==== Interaction avec l'affichage - -Par un clic gauche sur une portion du parcours d'outil, -la ligne sous la souris passe en surbrillance -à la fois dans le parcours d'outil et dans le texte. -Un clic droit dans une zone vide enlève la surbrillance - -En déplaçant la souris avec son bouton gauche appuyé, -la vue est glissée sur l'écran. - -En déplaçant la souris avec le bouton _Maj_ enfoncé, -ou en glissant avec la molette de la souris appuyée, la vue est tournée. -Si une ligne du tracé est en surbrillance, elle devient le centre de rotation -de la vue. Autrement, le centre de rotation est le milieu du fichier dans son -ensemble. - -En tournant la molette de la souris, ou en glissant la souris avec son -bouton droit enfoncé, ou encore en glissant la souris avec son bouton gauche -enfoncé et la touche _Ctrl_ appuyée, le tracé sera zoomé en plus ou en moins. - -En cliquant sur une des icônes de vue pré-définie de la barre d'outils, -ou en pressant la touche *V*, cette vue est sélectionnée. - -=== Zone texte d'affichage du programme - -Un clic gauche sur une ligne du programme passe la ligne en -surbrillance à la fois dans la zone texte et dans le parcours d'outil. - -Quand le programme est lancé, la ligne en cours d'exécution est en -surbrillance rouge. Si aucune ligne n'est sélectionnée par l'utilisateur, -le texte défile automatiquement pour toujours laisser la ligne courante visible. - -.Ligne courante et ligne en surbrillance - -image::images/axis-currentandselected_fr.png[] - -=== Contrôle manuel -(((Contrôle manuel))) - -Quand la machine est en marche mais qu'aucun programme n'est exécuté, -les éléments graphiques de l'onglet _Contrôle manuel_ peuvent être utilisés pour -actionner la machine ou mettre en marche et arrêter ses différents organes. - -Quand la machine n'est pas en marche, ou quand un programme est en cours -d'exécution, le contrôle manuel n'est pas disponible. - -Certains des éléments décrits plus bas ne sont pas disponibles sur toutes -les machines. Quand AXIS détecte qu'une pin particulière n'est pas connectée -dans le fichier HAL, l'élément correspondant de l'onglet _Contrôle manuel_ est -supprimé. Par exemple, si la pin HAL _motion.spindle-brake_ n'est pas connectée, -alors le bouton _Frein de broche_ n'apparaîtra pas sur l'écran. -Si la variable d'environnement AXIS_NO_AUTOCONFIGURE est mise à 1, -ce comportement est désactivé et tous les boutons sont visibles. - -==== Le groupe de cases et boutons _Axes_ - -Les cases à cocher du groupe _Axes_ permettent de choisir l'axe de la machine -à actionner manuellement. Cette action s'appelle le _jog_. -Premièrement sélectionner l'axe à actionner en cochant sa case. -Puis cliquer sur le bouton *+* ou *-* selon le sens de déplacement souhaité. -Les quatre premiers axes peuvent aussi être déplacés avec les touches fléchées -pour X et Y, avec les touches Page précédente et Page suivante pour (Z) et les -touches [ et ] pour A. - -Si _En continu_ est sélectionné, le mouvement continuera tant que la touche ou -le bouton resteront appuyés. Si une autre valeur est sélectionnée, la machine -se déplacera juste de la distance affichée à chaque fois que la touche ou le -bouton seront appuyés. Par défaut, les valeurs disponibles sont: - - 0.1000 0.0100 0.0010 0.0001 - -Voir le Manuel de l'intégrateur pour plus d'informations sur la configuration -des incréments de jog. - -==== La prise d'origine machine - -Si votre machine dispose de contacts d'origine machine et a une séquence de -prise d'origine définie dans le fichier ini, le bouton _POM générale_ lancera -cette séquence pour tous les axes, les touches _Ctrl-HOME_ auront le même effet. - -Si votre machine dispose de contacts d'origine mais n'a pas de séquence de -prise d'origine définie dans le fichier ini, le bouton _POM générale_ effectuera -uniquement la prise d'origine de l'axe sélectionné. -Cette procédure doit alors être réalisée, séparément pour chacun des axes. - -Si votre machine ne dispose d'aucun contact d'origine défini dans -la configuration, le bouton _POM générale_ définira la position actuelle de -l'axe comme étant la position d'origine machine et l'axe sera marqué comme -ayant sa prise d'origine machine faite. - -[[cap:Toucher]] -==== Toucher - -Si le bouton _Toucher_ ou la touche _FIN_ sont appuyés, le décalage -d'origine pièce de l'axe Z, sur la figure ci-dessous: P1 G54, -prendra la valeur spécifiée dans le champ de la boite de dialogue. Les -expressions peuvent être entrées en suivant les règles de programmation -rs274ngc, sauf les variables qui ne peuvent pas être utilisées. La -valeur résultante sera affichée sous le champ. Exemple, pour faire la prise -d'origine pièce, on affleure l'outil sur une cale de 5mm d'épaisseur posée -sur le bloc, on presse le bouton _Toucher_ et on saisi 5 dans le champ de la -boîte de dialogue. La pointe de l'outil sera alors référencée à 0 sur la surface -du bloc. - - -.Fenêtre du Toucher - -image::images/touchoff_fr.png[] - -Voir aussi les options du menu Machine: _Toucher la pièce_ et -_Toucher le porte-pièce_. - -==== Dépassement de limite - -En appuyant sur _Dépassement de limite_, la machine sera temporairement -autorisée à se déplacer au delà d'un contact de limite physique. -Cette case à cocher n'est disponible que lorsqu'un fin de course est pressé. -Elle est désactivée après chaque mouvement de jogging. -Si l'axe est configuré avec des contacts positifs et négatifs séparés, -LinuxCNC permettra le jogging uniquement dans le sens du dégagement. -_Dépassement de limite_ ne permettra pas un jogging au delà d'une limite -logicielle. La seule façon de désactiver une limite logicielle sur un axe -est d'annuler sa prise d'origine. - -==== Le groupe _Broche_ -(((Broche))) - -Les boutons de la première rangée permettent de sélectionner la -direction de rotation de la broche: Sens anti-horaire, Arrêt, Sens -horaire. Les boutons de la rangée suivante augmentent ou diminuent la -fréquence de rotation. La case à cocher de la troisième rangée permet -d'engager ou de relâcher le frein de broche. Selon la configuration de -votre machine, ces éléments n'apparaîtront peut être pas tous. - -==== Le groupe _Arrosage_ -(((Arrosage))) - -Ces deux boutons permettent d'activer les _gouttelettes_ et l'_Arrosage fluide_ -ou de les désactiver. Selon la configuration de votre machine, ces -boutons n'apparaîtront peut être pas tous. - -=== Données manuelles (MDI) - -L'onglet d'entrée de données manuelles (encore appelé MDI), (((MDI))) -permet d'entrer et d'exécuter manuellement et une par une, des lignes de -programme en G-code. Quand la machine n'est pas en marche, ou quand un -programme est en cours d'exécution, cet onglet n'est pas opérationnel. - -.L'onglet _Données manuelles_ - -image::images/axis-codeentry_fr.png[] - -_Historique_:: - Affiche les commandes précédemment tapées et au cours des session - précédentes. - -_Commande MDI_:: - Ce champ permet la saisie d'une ligne de commande à exécuter. La - commande sera exécutée par l'appui de la touche ou un appui sur - le bouton _Envoi_. - -_G-Codes actifs_:: - Cette fenêtre affiche les _codes modaux_ actuellement actifs dans - l'interpréteur. Par exemple, *G54* indique que le système de décalage - d'origine actuel est *G54* qu'il s'appliquera à toutes les coordonnées - qui seront entrées. - -=== Correcteurs de vitesse -(((Correcteurs de vitesse))) - -En déplaçant le curseur, la vitesse de déplacement programmée peut -être modifiée. Par exemple, si un programme requiert une vitesse à -*F600* et que le curseur est placé sur 120%, alors la vitesse -résultante sera de *F720*. - -=== Correcteur de vitesse de broche -(((Correcteur de vitesse broche))) - -En déplaçant ce curseur, la vitesse programmée de la broche peut être -modifiée. Par exemple, si un programme requiert une vitesse à F8000 et -que le curseur est placé sur 80%, alors la fréquence de rotation -résultante sera de *F6400*. Cet élément n'apparaît que si la _HAL pin_ -_motion.spindle-speed-out_ est connectée dans le fichier .hal. - -=== Vitesse de Jog -(((Vitesse de jog))) - -En déplaçant ce curseur, la vitesse de jog peut être modifiée. Par -exemple, si ce curseur est placé sur 100 mm/mn, alors un jog de 1 mm -durera .6 secondes, ou 1/100 de minute. Du côté gauche du curseur (jog -lent) l'espacement des valeurs est petit alors que du côté droit (jog -rapide) l'espacement des valeurs est plus grand, cela permet une large -étendue de vitesses de jog avec un contrôle plus fin du curseur dans -les zones les plus importantes. - -Sur les machines avec axes rotatifs, un second curseur de vitesse est -présent. Il permet d'ajuster la vitesse de rotation des axes rotatifs -(A, B et C). - -=== Vitesse Maxi -(((Vitesse maxi))) - -En déplaçant ce curseur, la vitesse maximale peut être réglée. -Ceci couvre la vitesse maximale de tous les mouvements programmés, -sauf les mouvements avec broche synchronisée. - -== Raccourcis clavier - -La plupart des actions d'AXIS sont accessibles depuis le clavier. La -liste complète des raccourcis clavier est disponible dans l'aide rapide -d'AXIS qui s'affiche en cliquant sur Aide > Aide rapide . Beaucoup de -ces raccourcis sont inaccessible en mode Entrées manuelles. - -Touches des correcteurs de vitesse. - - - Les touches des correcteurs de vitesse se comportent différemment en mode manuel. -Les touches _12345678_ sélectionneront l'axe correspondant, si il est programmé. - - Si vous avez 3 axes, alors *** sélectionnera l'axe 0, 1 sélectionnera l'axe 1, -et 2 sélectionnera l'axe 2. - - Pendant l'exécution d'un programme, les touches _1234567890_ fixeront la -correction de vitesse travail entre 10% et 100%. - -Les raccourcis clavier les plus fréquents sont visibles dans la table ci-dessous. - -.Raccourcis clavier usuels[[cap:Raccourcis-clavier-usuels]] - -[width="90%", options="header"] -|==================================================================== -|Touches | Actions produites | Mode -|F1 | Bascule l'arrêt d'urgence | Tous -|F2 | Bascule le marche/arrêt machine | Tous -|`, 1 .. 9, 0 | Correcteurs de vitesse de 10% à 100% | Varie -|X, * | Active le premier axe | Manuel -|Y, 1 | Active le deuxième axe | Manuel -|Z, 2 | Active le troisième axe | Manuel -|A, 3 | Active le quatrième axe | Manuel -|I | Sélection d'incrément du jog | Manuel -|C | jog en mode continu | Manuel -|Ctrl+origine | Lance une séquence de POM | Manuel -|Fin | Toucher: valide l'offset G54 de l'axe actif | Manuel -|Gauche, Droite | Jog du premier axe | Manuel -|Up, Down | Jog du deuxième axe | Manuel -|Pg Up, Pg Dn | Jog du troisième axe | Manuel -|[, ] | Jog du quatrième axe | Manuel -|O | Ouvrir un fichier | Manuel -|Ctrl+R | Recharger le fichier courant | Manuel -|R | Exécuter le programme | Manuel -|P | Pause dans l'exécution du programme | Auto -|S | Reprise de l'exécution du programme | Auto -|ESC | Stopper l'exécution | Auto -|Ctrl+K | Rafraichi le tracé d'outil | Auto/Manuel -|V | Défilement cyclique des vues prédéfinies | Auto/Manuel -|Maj-gauche,droite| Axe X vitesse rapide | Manuel -|Maj-haut, bas | Axe Y vitesse rapide | Manuel -|Maj-PgUp, PgDn | Axe Z vitesse rapide | Manuel -|==================================================================== - -== Affichage de l'état de LinuxCNC (LinuxCNCtop) - -AXIS inclut un programme appelé _linuxcnctop_ qui affiche en détail l'état -de LinuxCNC. Ce programme est accessible dans le menu Machine > Fenêtre -d'état de LinuxCNC. - -.Fenêtre d'état de LinuxCNC - -image::images/axis-emc-status.png[] - -Le nom de chaque entrée est affiché dans la colonne de gauche. La -valeur courante de chaque entrée s'affiche dans la colonne de droite. -Si la valeur a changé récemment, elle s'affiche en surbrillance rouge. - -== Entrée de données en texte (MDI) - -AXIS inclut un programme appelé 'mdi', il permet d'envoyer des -commandes à la session de LinuxCNC en cours, sous forme de lignes de texte. -Vous pouvez lancer ce programme en ouvrant une console et en tapant: ----- -mdi /chemin/vers/linuxcnc.nml ----- - -En cours d'exécution il affiche le prompt: _MDI>_. Quand une ligne -vide est entrée, la position courante de la machine est affichée. -Quand une commande est entrée, elle est passée à LinuxCNC qui l'exécute. - -C'est un exemple de session de MDI. - ----- -$ MDI ~/linuxcnc/configs/sim/emc.nml -MDI> -(0.0, 0.0, 0.0, 0.0, 0.0, 0.0) -MDI> G1 F5 X1 -MDI> -(0.5928500000000374, 0.0, 0.0, 0.0, 0.0, 0.0) -MDI> -(1.0000000000000639, 0.0, 0.0, 0.0, 0.0, 0.0) ----- - - -== axis-remote: Commande à distance de l'interface graphique d'AXIS - -AXIS inclut un programme appelé _axis-remote_ qui permet d'envoyer -certaines commandes vers l'application AXIS fonctionnant à distance. -Les commandes disponibles sont visibles en faisant: _axis-remote ---help_ pour vérifier qu'AXIS est en marche, inclure: (_--ping_), -charger un fichier, recharger le fichier courant avec: (_--reload_) et -quitter le programme AXIS avec: (_--quit_). - -[[sec:Changement-D-Outil-Manuel]] -== hal_manualtoolchange: Dialogue de changement d'outil manuel - -(((Changement D'Outil Manuel))) - -LinuxCNC inclut un composant userspace HAL de appelé _hal_manualtoolchange_, -il ouvre une fenêtre d'appel d'outil visible ci-dessous, -quand la commande *M6* est invoquée. Dés que le bouton _Continuer_ est -pressé, l'exécution du programme reprend. - -Le fichier de configuration HAL _configs/sim/axis_manualtoolchange.hal_ -montre les commandes HAL nécessaires pour l'utilisation de ce composant. - -hal_manualtoolchange peut être utilisé même si l'interface graphique -AXIS n'est pas en service. Cette composante est particulièrement -utile si vous avez des outils de pré-réglage et que vous utilisez la -table d'outils. - -IMPORTANT: Le parcours d'outil d'un mouvement en vitesse rapide ne sera pas -visible s'il suit un changement d'outil T et ce jusqu'au prochain mouvement -en vitesse travail. Ceci peut être source de confusion pour l'opérateur. -Pour contourner cette particularité, ajoutez toujours un G1 sans mouvement -après un M6 T. - -[[cap:Changement-manuel-d-outil]] -.La fenêtre de changement manuel d'outil - -image::images/manualtoolchange_fr.png[] - -== Modules en Python - -AXIS(((AXIS))) inclut plusieurs modules en Python(((Python))) qui -peuvent être très utiles. Pour des informations complètes sur ces -modules, faites: _pydoc ", "destroy .") -help2.append(("Control-Q", "Quit")) ----- - -=== Éditeur externe -(((Éditeur externe))) - -En définissant: [DISPLAY]EDITOR , les options de menu: _Fichier_ → -_Éditer_ ainsi que _Fichier_ → _Éditer la table d'outils_, deviennent accessibles. -Deux valeurs qui fonctionnent bien: EDITOR=gedit et -_EDITOR=gnome-terminal -e nano_. - -=== Panneau de contrôle virtuel -(((Panneau de contrôle virtuel))) - -AXIS peut afficher un panneau de commande virtuel personnalisé dans le -volet de droite. Il est possible d'y placer des boutons, des indicateurs qui -afficheront des données et plus encore. Voir le manuel de l'intégrateur. - -=== Commentaires spéciaux[[sub:Commentaires-speciaux]](((Commentaires spéciaux))) - -Les commentaires spéciaux peuvent être insérés dans le fichier de G-code pour -contrôler le comportement de l'affichage d'AXIS. Pour limiter l'aperçu au seul -affichage du parcours d'outil, utiliser ces commentaires spéciaux. Rien ne -s'affichera entre le commentaire (AXIS,hide) et le commentaire (AXIS,show) sauf -le parcours d'outil. Les (AXIS,hide) et (AXIS,show) doivent être utilisés par -paires avec le (AXIS, hide) en premier. Tout ce qui est après un (AXIS,stop) -ne sera pas visible. - -Ces commentaires sont utiles pour désencombrer l'affichage d'aperçu (Par exemple - pendant le débogage d'un grand fichier G-code, on peut désactiver l' -aperçu sur certaines parties qui sont déjà fonctionnelles). - - - (AXIS,hide) Arrête le parcours d'outil (à placer en premier) - - (AXIS,show) Reprend le parcours d'outil (il faut suivre un cache) - - (AXIS,stop) Arrête le parcours d'outil d'ici à la fin du fichier. - - (AXIS,notify,le_texte) Affiche _le_texte_ à l'écran, comme une info. -Cet affichage peut être très utile lors du pré-affichage du parcours d'outil, -quand les commentaires (debug,message) ne sont pas affichés. - - diff --git a/docs/src/gui/gladevcp.txt b/docs/src/gui/gladevcp.txt deleted file mode 100644 index 26fc356106b..00000000000 --- a/docs/src/gui/gladevcp.txt +++ /dev/null @@ -1,2442 +0,0 @@ -= Glade Virtual Control Panel - -[[cha:glade-vcp]] (((Glade Virtual Control Panel))) - -// TODO: -// - manual-example.ui layout - really bad -// - restructure faq/troubleshooting/notes section -// - check wiki vs docs -// - check other gladevcp docs branch against this -// - when emc action widgets are renamed then re-brand this chapter - - -:ini: {basebackend@docbook:'':ini} -:hal: {basebackend@docbook:'':hal} -:ngc: {basebackend@docbook:'':ngc} -// begin a listing of ini/hal/ngc files like so: -//[source,{ini}] -//[source,{hal}] -//[source,{ngc}] - - -== What is GladeVCP? - -GladeVCP is an LinuxCNC component which adds the ability to add a new user -interface panel to LinuxCNC user interfaces like: - - -Axis - -Touchy - -Gscreen - -Gmoccapy - -Unlike PyVCP, GladeVCP is not limited to displaying and setting HAL pins, -as arbitrary actions can be executed in Python code - in fact, a -complete LinuxCNC user interface could be built with GladeVCP and Python. - -GladeVCP uses the http://glade.gnome.org/[Glade] WYSIWYG user -interface editor, which makes it easy to create visually pleasing -panels. It relies on the http://www.pygtk.org/[PyGTK] bindings to the -rich http://www.gtk.org/[GTK+] widget set, and in fact all of these -may be used in a GladeVCP application - not just the specialized -widgets for interacting with HAL and LinuxCNC, which are documented here. - - -=== PyVCP versus GladeVCP at a glance - -Both support the creation of panels with 'HAL widgets' - user -interface elements like LED's, buttons, sliders etc whose values are -linked to a HAL pin, which in turn interfaces to the rest of LinuxCNC. - -*PyVCP:* - - - widget set: uses TkInter widgets - - user interface creation: "edit XML file / run result / evaluate looks" cycle - - no support for embedding user-defined event handling - - no LinuxCNC interaction beyond HAL pin I/O supported - -*GladeVCP:* - - - widget set: relies on the http://www.gtk.org/[GTK+] widget set. - - user interface creation: uses the http://glade.gnome.org/[Glade] WYSIWYG user interface editor - - any HAL pin change may be directed to call back into a user-defined Python event handler - - any GTK signal (key/button press, window, I/O, timer, network events) may be associated with user-defined handlers in Python - - direct LinuxCNC interaction: arbitrary command execution, like initiating MDI -commands to call a G-code subroutine, plus support for status change operations through Action Widgets - - several independent GladeVCP panels may be run in different tabs - - separation of user interface appearance and functionality: change appearance without touching any code - -== A Quick Tour with the Example Panel - -GladeVCP panel windows may be run in three different setups: - - - always visible integrated into Axis at the right side, exactly like PyVCP panels - - as a tab in Axis,Touchy, Gscreen, or Gmoccapy; in Axis this would create a third -tab besides the Preview and DRO tabs which must be raised explicitly - - as a standalone toplevel window, which can be iconifyed/deiconified independent of the main window. - -.Installed LinuxCNC -If you're using an installed version of LinuxCNC the examples shown below are in -the <> in the 'Sample -Configurations > apps > gladevcp' branch. - -.Git Checkout -The following instructions only apply if you're using a git checkout. Open a -terminal and change to the directory created by git then issue the commands -as shown. - -[NOTE] -For the following commands to work on your git checkout you must first run -'make' then run 'sudo make setuid' then run '. ./scripts/rip-environment'. -More information about a git checkout is on the linuxcnc wiki page. - -Run the sample GladeVCP panel integrated into Axis like PyVCP as follows: - ----- -$ cd configs/sim/axis/gladevcp -$ linuxcnc gladevcp_panel.ini ----- - -image::images/example-panel-small.png[] - -Run the same panel, but as a tab inside Axis: - ----- -$ cd configs/sim/axis/gladevcp -$ linuxcnc gladevcp_tab.ini ----- - -image::images/example-tabbed-small.png[] - -//// -To run this panel as a standalone toplevel window besides Axis, just -start Axis in the background and start gladevcp as follows: - -FIXME: I'm not sure how this is supposed to work with axis in one -directory and gladevcp in a different directory. - -FIXME: there is a conflict for motion.spindle-speed-out since it is used by both - axis.ini: sim_spindle_encoder.hal - and - manual-example.ui: manual-example.hal - -commit cd36e2 Jan 5 2012 added sim_spindle_encoder.hal to axis.ini -probably after creation of manual-example.ui ----- -$ cd configs/sim/axis -$ linuxcnc axis.ini & -$ cd gladevcp -$ gladevcp -c gladevcp -u ./hitcounter.py -H ./manual-example.hal ./manual-example.ui ----- - -image::images/example-float-small.png[] -//// - -To run this panel inside 'Touchy': - ----- -$ cd configs/sim/touchy/gladevcp -$ linuxcnc gladevcp_touchy.ini ----- - -image::images/touchy-tab-33.png[] - - -Functionally these setups are identical - they only differ in screen -real estate requirements and visibility. Since it is possible to run -several GladeVCP components in parallel (with different HAL component -names), mixed setups are possible as well - for instance a panel on -the right hand side, and one or more tabs for less-frequently used -parts of the interface. - -=== Exploring the example panel - -While running configs/sim/axis/gladevcp_panel.ini or configs/sim/axis/gladevcp_tab.ini, -explore 'Show HAL Configuration' - you will find the 'gladevcp' HAL component and may -observe their pin values while interacting with the widgets in the panel. The HAL setup can be -found in 'configs/axis/gladevcp/manual-example.hal'. - -The example panel has two frames at the bottom. The panel is -configured so that resetting ESTOP activates the Settings frame and -turning the machine on enables the Commands frame at the bottom. The HAL -widgets in the Settings frame are linked to LEDs and labels in the -'Status' frame, and to the current and prepared tool number - play -with them to see the effect. Executing the 'T' and 'M6' -commands in the MDI window will change the current and prepared tool -number fields. - -The buttons in the 'Commands' frame are 'MDI Action widgets' - -pressing them will execute an MDI command in the interpreter. The -third button 'Execute Oword subroutine' is an advanced example - it -takes several HAL pin values from the 'Settings' frame, and passes -them as parameters to the Oword subroutine. The actual parameters -received by the routine are displayed by '(DEBUG, )' commands - see -'../../nc_files/oword.ngc' for the subroutine body. - -To see how the panel is integrated into Axis, see the -'[DISPLAY]GLADEVCP' statement in configs/sim/axis/gladevcp/gladevcp_panel.ini, the -'[DISPLAY]EMBED*' statement in configs/sim/axis/gladevcp/gladevcp_tab.ini -and '[HAL]POSTGUI_HALFILE' statements in both configs/sim/axis/gladevcp/gladevcp_tab.ini -and configs/sim/axis/gladevcp/gladevcp_panel.ini - -=== Exploring the User Interface description - -The user interface is created with the glade UI editor - to explore -it, you need to have <>. To -edit the user interface, run the command - - $ glade configs/axis/gladevcp/manual-example.ui - -(The required glade program may be named glade-gtk2 on more recent systems.) - -The center window shows the appearance of the UI. All user -interface objects and support objects are found in the right top -window, where you can select a specific widget (or by clicking on it -in the center window). The properties of the selected widget are -displayed, and can be changed, in the right bottom window. - -To see how MDI commands are passed from the MDI Action widgets, -explore the widgets listed under 'Actions' in the top right window, -and in the right bottom window, under the 'General' tab, the 'MDI -command' property. - -=== Exploring the Python callback -See how a Python callback is integrated into the example: - - - in glade, see the +hits+ label widget (a plain GTK+ widget) - - in the +button1+ widget, look at the 'Signals' tab, and find the signal 'pressed' associated with the handler 'on_button_press' - - in hitcounter.py, see the method 'on_button_press' and see how it sets the label property in the 'hits' object - -The is just touching upon the concept - the callback mechanism will be -handled in more detail in the <> section. - -== Creating and Integrating a Glade user interface - -[[gladevcp:Prerequisites]] -=== Prerequisite: Glade installation -To view or modify Glade UI files, you need glade installed - it is not -needed just to run a GladeVCP panel. If the glade command is missing, -install it with the command: - - $ sudo apt-get install glade - -Verify the version number to be greater than 3.6.7: - - $ glade --version - glade3 3.6.7 - -(On recent systems, the required glade package is glade-gtk2) - -=== Running Glade to create a new user interface -This section just outlines the initial LinuxCNC-specific steps. For more -information and a tutorial on glade, see http://glade.gnome.org. Some -glade tips & tricks may also be found on -http://www.youtube.com[youtube]. - -Either modify an existing UI component by running +glade .ui+ -or start a new one by just running the +glade+ command from the shell. - -- If LinuxCNC was not installed from a package, the LinuxCNC shell environment needs to be set up with -+. /scripts/rip-environment+, otherwise glade won't find the LinuxCNC-specific widgets. -- When asked for unsaved Preferences, just accept the defaults and hit 'Close'. -- From 'Toplevel' (left pane), pick 'Window' (first icon) as top level window, which -by default will be named 'window1'. Do not change this name - GladeVCP relies on it. -- In the left tab, scroll down and expand 'HAL Python' and 'EMC Actions'. -- add a container like a HAL_Box or a HAL_Table from 'HAL Python' to the frame -- pick and place some elements like LED, button, etc. within a container - -This will look like so: - -image::images/glade-manual-small.png[] - -Glade tends to write a lot of messages to the shell window, which -mostly can be ignored. Select 'File→Save as', give it a name like -'myui.ui' and make sure it's saved as 'GtkBuilder' file (radio button -left bottom corner in Save dialog). GladeVCP will also process the -older 'libglade' format correctly but there is no point in using it. The -convention for GtkBuilder file extension is '.ui'. - -=== Testing a panel -You're now ready to give it a try (while LinuxCNC, e.g. Axis is running) it with: - - gladevcp myui.ui - -GladeVCP creates a HAL component named like the basename of the UI -file - 'myui' in this case - unless overriden by the +-c + option. If running Axis, just try 'Show HAL configuration' and -inspect its pins. - -You might wonder why widgets contained a 'HAL_Hbox' or 'HAL_Table' appear -greyed out (inactive). HAL containers have an associated HAL pin which -is off by default, which causes all contained widgets to render -inactive. A common use case would be to associate these container HAL -pins with +halui.machine.is-on+ or one of the +halui.mode.+ signals, -to assure some widgets appear active only in a certain state. - -To just activate a container, execute the HAL command +setp gladevcp. 1+. - -=== Preparing the HAL command file -The suggested way of linking HAL pins in a GladeVCP panel is to -collect them in a separate file with extension +.hal+. This file is -passed via the +POSTGUI_HALFILE=+ option in the +HAL+ section of your -ini file. - -CAUTION: Do not add the GladeVCP HAL command file to the Axis +[HAL]HALFILE=+ ini -section, this will not have the desired effect - see the following sections. - -=== Integrating into Axis like PyVCP - -Place the GladeVCP panel in the righthand side panel by specifying the -following in the ini file: - -[source,{ini}] ----- -[DISPLAY] -# add GladeVCP panel where PyVCP used to live: -GLADEVCP= -u ./hitcounter.py ./manual-example.ui - -[HAL] -# HAL commands for GladeVCP components in a tab must be executed via POSTGUI_HALFILE -POSTGUI_HALFILE = ./manual-example.hal - -[RS274NGC] -# gladevcp Demo specific Oword subs live here -SUBROUTINE_PATH = ../../nc_files/gladevcp_lib ----- -The HAL component name of a GladeVCP application started with the GLADEVCP option is fixed: +gladevcp+. -The command line actually run by Axis in the above configuration is as follows: - - halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID} - -This means you may add arbitrary gladevcp options here, as long as -they dont collide with the above command line options. - -[NOTE] -The file specifiers like ./hitcounter.py, ./manual-example.ui, etc. indicate that the files -are located in the same directory as the ini file. You might have to copy them to you -directory (alternatively, specify a correct absolute or relative path to the file(s)) - -[NOTE] -The +[RS274NGC]SUBROUTINE_PATH=+ option is only set so the example -panel will find the Oword subroutine (oword.ngc) for the MDI Command widget. It -might not be needed in your setup. The relative path specifier ../../nc_files/gladevcp_lib -is constructed to work with directories copied by the configuration picker and when -using a run-in-place setup. - -=== Integrating into Axis as a tab next to DRO and Preview - -To do so, edit your .ini file and add to the DISPLAY and HAL sections of ini -file as follows: - -[source,{ini}] ----- -[DISPLAY] -# add GladeVCP panel as a tab next to Preview/DRO: -EMBED_TAB_NAME=GladeVCP demo -EMBED_TAB_COMMAND=halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID} -u ./gladevcp/hitcounter.py ./gladevcp/manual-example.ui - -[HAL] -# HAL commands for GladeVCP components in a tab must be executed via POSTGUI_HALFILE -POSTGUI_HALFILE = ./gladevcp/manual-example.hal - -[RS274NGC] -# gladevcp Demo specific Oword subs live here -SUBROUTINE_PATH = ../../nc_files/gladevcp_lib ----- - -Note the 'halcmd loadusr' way of starting the tab command - this -assures that 'POSTGUI_HALFILE' will only be run after the HAL -component is ready. In rare cases you might run a a command here which -uses a tab but does not have an associated HAL component. Such a -command can be started without 'halcmd loadusr', and this signifies to -Axis that it does not have to wait for a HAL component since there is -none. - -When changing the component name in the above example, note that the -names used in +-Wn + and +-c + must be -identical. - -Try it out by running Axis - there should be a new tab called -'GladeVCP demo' near the DRO tab. Select that tab, you should see the -example panel nicely fit within Axis. - -[NOTE] -Make sure the UI file is the last option passed to GladeVCP in -both the +GLADEVCP=+ and +EMBED_TAB_COMMAND=+ statements. - -=== Integrating into Touchy -To do add a GladeVCP tab to 'Touchy', edit your .ini file as follows: - -[source,{ini}] ----- -[DISPLAY] -# add GladeVCP panel as a tab -EMBED_TAB_NAME=GladeVCP demo -EMBED_TAB_COMMAND=gladevcp -c gladevcp -x {XID} -u ./hitcounter.py -H ./gladevcp-touchy.hal ./manual-example.ui - -[RS274NGC] -# gladevcp Demo specific Oword subs live here -SUBROUTINE_PATH = ../../nc_files/gladevcp_lib ----- - -[NOTE] -The file specifiers like ./hitcounter.py, ./manual-example.ui, etc. indicate that the files -are located in the same directory as the ini file. You might have to copy them to you -directory (alternatively, specify a correct absolute or relative path to the file(s)) - - -Note the following differences to the Axis tab setup: - - - The HAL command file is slightly modified since 'Touchy' does not - use the 'halui' components so its signals are not available and some - shortcuts have been taken. - - - there is no 'POSTGUI_HALFILE=' ini option, but passing the HAL command file on the 'EMBED_TAB_COMMAND=' line is ok - - - the 'halcmd loaduser -Wn ...' incantation is not needed. - -== GladeVCP command line options - -See also 'man gladevcp' . These are the gladevcp command line options: - -Usage: gladevcp [options] myfile.ui - -Options: - --h, --help:: - show this help message and exit - --c NAME:: - Set component name to NAME. Default is base name of UI file - --d:: - Enable debug output - --g GEOMETRY:: - Set geometry WIDTHxHEIGHT+XOFFSET+YOFFSET. Values are in pixel units, - XOFFSET/YOFFSET is referenced from top left of screen. - Use -g WIDTHxHEIGHT for just setting size or -g +XOFFSET+YOFFSET for just - position - --H FILE:: - execute hal statements from FILE with halcmd after the - component is set up and ready - --m MAXIMUM:: - force panel window to maximize. Together with the -g geometry option - one can move the panel to a second monitor and force it to use all of the screen - --t THEME:: - set gtk theme. Default is system theme. Different panels can have different themes. - An example theme can be found in the http://wiki.linuxcnc.org/cgi-bin/wiki.pl?GTK_Themes[EMC Wiki]. - --x XID:: - Re-parent GladeVCP into an existing window XID instead of creating a - new top level window - --u FILE:: - Use File's as additional user defined modules with handlers - --U USEROPT:: - pass USEROPTs to Python modules - -== Understanding the gladeVCP startup process - -The integration steps outlined above look a bit tricky, and they -are. It does therefore help to understand the startup process of -LinuxCNC and how this relates to gladeVCP. - -The normal LinuxCNC startup process does the following: - -- the realtime environment is started -- all HAL components are loaded -- the HAL components are linked together through the .hal cmd scripts -- task, iocontrol and eventually the user interface is started -- pre-gladeVCP the assumption was: by the time the UI starts, all of HAL is loaded, plumbed and ready to go - -The introduction of gladeVCP brought the following issue: - -- gladeVCP panels need to be embedded in a master GUI window setup, e.g. Axis, or Touchy, Gscreen, or Gmoccapy (embedded window or as an embedded tab) -- this requires the master GUI to run before the gladeVCP window can be hooked into the master GUI -- however gladeVCP is also a HAL component, and creates HAL pins of its own. -- as a consequence, all HAL plumbing involving gladeVCP HAL pins as source or destination must be run *after* the GUI has been set up - -This is the purpose of the `POSTGUI_HALFILE`. This ini option is -inspected by the GUIs. If a GUI detects this option, it runs the -corresponding HAl file after any embedded gladVCP panel is set -up. However, it does not check whether a gladeVCP panel is actually -used, in which case the HAL cmd file is just run normally. So if you -do NOT start gladeVCP through `GLADEVCP` or `EMBED_TAB` etc, but later -in a separate shell window or some other mechanism, a HAL -command file in `POSTGUI_HALFILE` will be executed too early. Assuming -gladeVCP pins are referenced herein, this will fail with an error -message indicating that the gladeVCP HAL component is not available. - -So, in case you run gladeVCP from a separate shell window (i.e. not -started by the GUI in an embedded fashion): - -- you cannot rely on the `POSTGUI_HALFILE` ini option causing the HAL -commands being run 'at the right point in time', so comment that out -in the ini file -- explicitly pass the HAL command file which refers to gladeVCP pins -to gladeVCP with the '-H ' option (see previous section). - - -== HAL Widget reference - -GladeVcp includes a collection of Gtk widgets with attached HAL pins -called HAL Widgets, intended to control, display or otherwise interact -with the LinuxCNC HAL layer. They are intended to be used with the Glade -user interface editor. With proper installation, the HAL Widgets should -show up in Glade's 'HAL Python' widget group. Many HAL specific fields -in the Glade 'General' section have an associated mouse-over tool tip. - -HAL signals come in two variants, bits and numbers. Bits are off/on -signals. Numbers can be "float", "s32" or "u32". For more information -on HAL data types see the <>. The GladeVcp -widgets can either display the value of the signal with an indicator -widget, or modify the signal value with a control widget. Thus there -are four classes of GladeVcp widgets that you can connect to a HAL -signal. Another class of helper widgets allow you to organize and -label your panel. - - - Widgets for indicating "bit" signals: <> - - Widgets for controlling "bit" signals: <> - - Widgets for indicating "number" signals: <>, - <>, - <>, <> - - Widgets for controlling "number" signals: <>, - <>, <> - - Sensitive control widgets: <> - - Tool Path preview: <> - - Widgets to show axis positions: <>, - <> - - Widgets for file handling: <> - - Widgets for display/edit of all axes offsets: <> - - Widgets for display/edit of all tool offsets: <> - - Widget for Gcode display and edit: <> - - widget for MDI input and history display: <> - -=== Widget and HAL pin naming - -Most HAL widgets have a single associated HAL pin with the same HAL name -as the widget (glade: General→Name). - -Exceptions to this rule currently are. - -- 'HAL_Spinbutton' and 'HAL_ComboBox', which have two pins: a +-f+ (float) and a +-s+ (s32) pin -- 'HAL_ProgressBar', which has a +-value+ input pin, and a +-scale+ input pin. - -=== Python attributes and methods of HAL Widgets - -HAL widgets are instances of GtKWidgets and hence inherit the methods, -properties and signals of the applicable GtkWidget class. For -instance, to figure out which GtkWidget-related methods, properties -and signals a 'HAL_Button' has, lookup the description of -http://www.pygtk.org/docs/pygtk/class-gtkbutton.html[GtkButton] in the -http://www.pygtk.org/docs/pygtk[PyGtk Reference Manual]. - -An easy way to find out the inheritance relationship of a given HAL -widget is as follows: run glade, place the widget in a window, and -select it; then choose the 'Signals' tab in the 'Properties' -window. For example, selecting a 'HAL_LED' widget, this will show that -a 'HAL_LED' is derived from a 'GtkWidget', which in turn is derived -from a 'GtkObject', and eventually a 'GObject'. - -HAL Widgets also have a few HAL-specific Python attributes: - -hal_pin:: - the underlying HAL pin Python object in case the widget has a - single pin type - -hal_pin_s, hal_pin_f:: - the S32 and float pins of the 'HAL_Spinbutton' and - 'HAL_ComboBox' widgets - note these widgets do not have a - 'hal_pin' attribute! - -hal_pin_scale:: - the float input pin of 'HAL_ProgressBar' widget representing - the maximum absolute value of input. - -The are several HAL-specific methods of HAL Widgets, but the only -relevant method is: - -.get():: - Retrieve the value of the current HAL pin, where '' is - the applicable HAL pin name listed above. - - -=== Setting pin and widget values - -As a general rule, if you need to set a HAL output widget's value from -Python code, do so by calling the underlying Gtk 'setter' (e.g. -+set_active()+, +set_value()+) - do not try to set the associated pin's -value by +halcomp[pinname] = value+ directly because the widget will not -take notice of the change!. - -It might be tempting to 'set HAL widget input pins' programmatically. -Note this defeats the purpose of an input pin in the first place - it -should be linked to, and react to signals generated by other HAL -components. While there is currently no write protection on writing to -input pins in HAL Python, this doesn't make sense. You might use setp -pinname value in the associated halfile for testing though. - -It is perfectly OK to set an output HAL pin's value with -+halcomp[pinname] = value+ provided this HAL pin is not associated with a -widget, that is, has been created by the -+hal_glib.GPin(halcomp.newpin(,,)+ method (see -GladeVCP Programming for an example). - -[[gladevcp::hal-pin-changed_signal]] -=== The hal-pin-changed signal - -Event-driven programming means that the UI tells your code when "something -happens" - through a callback, like when a button was pressed. The -output HAL widgets (those which display a HAL pin's value) like LED, -Bar, VBar, Meter etc, support the 'hal-pin-changed' signal which may -cause a callback into your Python code when - well, a HAL pin changes -its value. This means there's no more need for permanent polling of HAL -pin changes in your code, the widgets do that in the background and let -you know. - -Here is an example how to set a +hal-pin-changed+ signal for a HAL_LED -in the Glade UI editor: - -image::images/hal-pin-change-66.png[] -The example in +configs/apps/gladevcp/complex+ shows how -this is handled in Python. - -[[gladevcp:HAL_Buttons]] -=== Buttons - -This group of widgets are derived from various Gtk buttons and consists -of HAL_Button, HAL_ToggleButton, HAL_RadioButton and CheckButton -widgets. All of them have a single output BIT pin named identical to -the widget. Buttons have no additional properties compared to their -base Gtk classes. - - - HAL_Button: instantaneous action, does not retain state. Important - signal: +pressed+ - - HAL_ToggleButton, HAL_CheckButton: retains on/off state. Important - signal: +toggled+ - - HAL_RadioButton: a one-of-many group. Important signal: +toggled+ (per - button). - - Important common methods: +set_active()+, +get_active()+ - - Important properties: +label+, +image+ - - -// .Buttons -Check button: -image:images/checkbutton.png[] -Radio buttons: -image:images/radiobutton.png[] -Toggle button: -image:images/button.png[] -. - -[TIP] -====================================== -Defining radio button groups in Glade: - -- decide on default active button - -- in the other button's 'General→Group' select the default active -button's name in the 'Choose a Radio Button in this project' dialog. - -See +configs/apps/gladevcp/by-widget/+ for a GladeVCP applications -and UI file for working with radio buttons. -====================================== - -[[gladevcp:HAL_Scales]] -=== Scales - -HAL_HScale and HAL_VScale are derived from the GtkHScale and GtkVScale -respectively. They have one output FLOAT pin with name equal to widget -name. Scales have no additional properties. - -To make a scale useful in Glade, add an 'Adjustment' -(General→Adjustment→New or existing adjustment) and edit the -adjustment object. It defines the default/min/max/increment -values. Also, set adjustment 'Page size' and 'Page increment' to zero -to avoid warnings. - -Example HAL_HScale: -image:images/hscale.png[] -. - -[[gladevcp:HAL_SpinButton]] -=== SpinButton - -HAL SpinButton is derived from GtkSpinButton and holds two pins: - --f:: - out FLOAT pin --s:: - out S32 pin - -To be useful, Spinbuttons need an adjustment value like scales, -see above. - -Example SpinButton: -image:images/spinbutton.png[] -. -[[gladevcp:JogWheel]] -=== Jog Wheel - -The jogwheel widget simulates a real jogwheel. + -It can be operated with the mouse. You can just use the mouse wheel, while the mouse cursor is over the JogWheel widget, + -or you push the left mouse button and move the cursor in circular direction to increase or degrease the counts. + - - * Counterclockwise = reduce counts - * Clockwise = increase counts - * Wheel up = increase counts - * Wheel down = reduce counts - -As moving the mouse the drag and drob way may be faster than the widget can update itself, you may loose counts turning to fast. -It is recommended to use the mouse wheel, and only for very rough movements the drag and drob way. -==== -JogWheel exports it's count value as hal pin: - --s:: - out S32 pin -==== - -It has the following properties: -===== -size:: - Sets the size in pixel of the widget, allowed values are in the range of 100 to 500 - default = 200 -cpr:: - Sets the Counts per Revolution, allowed values are in the range from 25 to 100 - default = 40 -show_counts:: - Set this to False, if you want to hide the counts display in the middle of the widget. -label:: - Set the content of the label witch may be shown over the counts value. The purpose is to give the user an idea about the usage of that jogwheel. If the label given is longer than 12 Characters, it will be cut to 12 Characters. -===== - -Direct program control:: -====== - There a couple ways to directly control the widget using Python. - - Using goobject to set the above listed properties: - [widget name].set_property("size",int(value)) - [widget name].set_property("cpr",int(value)) - [widget name].set_property("show_counts, True) - - There are two python methods: - [widget name].get_value() - Will return the counts value as integer - [widget name].set_label("string") - Sets the label content with "string" -====== -Example JogWheel: - -image::images/JogWheel.png[] - -[[gladevcp:HAL_Label]] -=== Label - -HAL_Label is a simple widget based on GtkLabel which represents a HAL -pin value in a user-defined format. - -label_pin_type:: - The pin's HAL type (0:S32, 1:float, 2:U32), see also the tooltip - on 'General→HAL pin type '(note this is different from PyVCP which has - three label widgets, one for each type). - -text_template:: - Determines the text displayed - a Python - format string to convert the pin value to text. Defaults to +%s+ (values - are converted by the str() function) but may contain any legit as an - argument to Pythons format() method. + - Example: +Distance: %.03f+ will display the text and the pin value with - 3 fractional digits padded with zeros for a FLOAT pin. - -[[gladevcp:HAL_Table]] -=== Containers: HAL_HideTable HAL_Table State_Sensitive_Table and HAL_HBox - -These containers are meant to be used to sensitize (grey out) or hide their children. + -Insensitived children will not respond to input. + -HAL_HideTable has one HAL BIT input pin which controls if it's child widgets are hidden or not. + -If the pin is low then child widgets are visible which is the default state. + -HAL_Table and HAL_Hbox have one HAL BIT input pin which controls if their child widgets are sensitive or not. + -If the pin is low then child widgets are inactive which is the default state. + -State_Sensitive_table responds to the state to linuxcnc's interpreter. + -optionally selectable to respond to 'must-be-all-homed','must-be-on' and 'must-be-idle' + -You can combine them. It will always be insensitive at Estop. + - + -* HAL_Hbox is depreceiated - use HAL_Table. + -If current panels use it it won't fail. You just won't find it in the GLADE editor anymore. + -Future vesions of gladeVCP may remove this widget completely and then you will need to update the panel. + - -[TIP] -If you find some part of your GladeVCP application is 'grayed -out' (insensitive), see whether a HAL_Table pin is unset or unconnected. - -[[gladevcp:HAL_LED]] -=== LED - -The hal_led simulates a real indicator LED. + -It has a single input BIT pin which controls it's state: ON or OFF. + -LEDs have several properties which control their look and feel: + - -on_color:: - a String defining ON color of LED. May be any valid - gtk.gdk.Color name. Not working on Ubuntu 8.04. -off_color:: - String defining OFF color of LED. May be any valid - gtk.gdk.Color name or special value `dark`. `dark` means that OFF color - will be set to 0.4 value of ON color. Not working on Ubuntu 8.04. -pick_color_on, pick_color_off:: - Colors for ON and OFF states may be - represented as `#RRRRGGGGBBBB` strings. These are optional properties - which have precedence over `on_color` and `off_color`. -led_size:: - LED radius (for square - half of LED's side) -led_shape:: - LED Shape. Valid values are 0 for round, 1 for oval and 2 - for square shapes. -led_blink_rate:: - if set and LED is ON then it's blinking. Blink - period is equal to "led_blink_rate" specified in milliseconds. -create hal pin:: - select/deselect making of HAL pin to control LED. With no HAL pin created - LED can be controlled with a python function. -As an input widget, LED also supports the +hal-pin-changed signal+. If -you want to get a notification in your code when the LED's HAL pin was -changed, then connect this signal to a handler, for example -+on_led_pin_changed+ and provide the handler as follows: - -[source,python] ----------------------------------- -def on_led_pin_changed(self,hal_led,data=None): - print "on_led_pin_changed() - HAL pin value:",hal_led.hal_pin.get() ----------------------------------- - -This will be called at any edge of the signal and also during program -start up to report the current value. - -Example LEDs: -image:images/leds.png[] -. - -[[gladevcp:HAL_ProgressBar]] -=== ProgressBar - -[NOTE] -This widget might go away. Use the HAL_HBar and HAL_VBar widgets -instead. - -The HAL_ProgressBar is derived from gtk.ProgressBar and has two float -HAL input pins: - -:: - the current value to be displayed --scale:: - the maximum absolute value of input - -It has the following properties: - -scale:: - value scale. set maximum absolute value of input. Same as - setting the .scale pin. A float, range from - -2^24 to +2^24. -green_limit:: - green zone limit lower limit -yellow_limit:: - yellow zone limit lower limit -red_limit:: - red zone limit lower limit -text_template:: - Text template to display the current value of the - ++ pin. Python formatting may be used for dict - +{"value":value}+ - -Example HAL_ProgressBar: -image:images/progressbar2.png[] -. - -[[gladevcp:HAL_ComboBox]] -=== ComboBox - -HAL_ComboBox is derived from gtk.ComboBox. It enables choice of a -value from a dropdown list. - -It exports two HAL pins: - - -f:: - the current value, type FLOAT - -s:: - the current value, type S32 - -It has the following property which can be set in Glade: - -column:: - the column index, type S32, defaults to -1, range from -1..100 . - -In default mode this widgets sets the pins to the index of the chosen -list entry. So if your widget has three labels, it may only assume -values 0,1 and 2. - -In column mode (column > -1), the value reported is chosen from the -ListStore array as defined in Glade. So typically your widget -definition would have two columns in the ListStore , one with text -displayed in the dropdown, and an int or float value to use for that -choice. - -There's an example in -+configs/apps/by-widget/combobox.{py,ui}+ which uses column -mode to pick a float value from the ListStore. - -If you're confused like me about how to edit ComboBox ListStores and -CellRenderer, see http://www.youtube.com/watch?v=Z5_F-rW2cL8. - -[[gladevcp:HAL_Bars]] -=== Bars - -HAL Bar and VBar widgets for horizontal and vertical bars representing -float values. They have one input FLOAT hal pin. Both bars have the -following properties: - -invert:: - Swap min and max direction. An inverted HBar grows from right - to left, an inverted VBar from top to bottom. -min, max:: - Minimum and maximum value of desired range. It is not an - error condition if the current value is outside this range. -show limits:: - Used to select/deselect the limits text on bar. -zero:: - Zero point of range. If it's inside of min/max range then the - bar will grow from that value and not from the left (or right) side of - the widget. Useful to represent values that may be both positive or - negative. -force_width, force_height:: - Forced width or height of widget. If not - set then size will be deduced from packing or from fixed widget size - and bar will fill whole area. -text_template:: - Like in Label sets text format for min/max/current - values. Can be used to turn off value display. -value:: - Sets the bar display to the value entered: used only for testing in - GLADE editor. The vaue will be set from A HAL pin. -target value:: - Sets the target line to the value entered: used only for testing in - GLADE editor. The value will can be set in a Python function -target_width:: - Width of the line that marks the target value. -bg_color:: - Background (inactive) color of bar. -target_color:: - Color of the the target line. -z0_color, z1_color, z2_color:: - Colors of different value zones. - Defaults are `green`, `yellow` and `red`. For description of zones see - `z*_border` properties. -z0_border, z1_border:: - Define up bounds of color zones. By default - only one zone is enabled. If you want more then one zone set - `z0_border` and `z1_border` to desired values so zone 0 will fill from - 0 to first border, zone 1 will fill from first to second border and - zone 2 -- from last border to 1. Borders are set as fractions, values - from 0 to 1. - -Horizontal bar: -image:images/hal_hbar.png[] -Vertical bar: -image:images/vscale.png[] -. - -[[gladevcp:HAL_Meter]] -=== Meter - -HAL Meter is a widget similar to PyVCP meter - it represents a float value and has -one input FLOAT hal pin. HAL Meter has the following properties: - -min, max:: - Minimum and maximum value of desired range. It is not an - error condition if the current value is outside this range. -force_size:: - Forced diameter of widget. If not set then size will be - deduced from packing or from fixed widget size and meter will fill all - available space with respect to aspect ratio. -text_template:: - Like in Label sets text format for current value. Can - be used to turn off value display. -label:: - Large label above center of meter. -sublabel:: - Small label below center of meter. -bg_color:: - Background color of meter. -z0_color, z1_color, z2_color:: - Colors of different value - zones. Defaults are `green`, `yellow` and `red`. For description of - zones see `z*_border` properties. -z0_border, z1_border:: - Define up bounds of color zones. By default only - one zone is enabled. If you want more then one zone set `z0_border` and - `z1_border` to desired values so zone 0 will fill from min to first - border, zone 1 will fill from first to second border and zone 2 -- from - last border to max. Borders are set as values in range min-max. - -Example HAL Meters: -image:images/hal_meter.png[] -. -=== HAL_Graph - -This widget is for plotting values over time. - -[[gladevcp:HAL_Gremlin]] -=== Gremlin tool path preview for .ngc files - -Gremlin is a plot preview widget similar to the Axis preview window. -It assumes a running LinuxCNC environment like Axis or Touchy. To connect to -it, inspects the INI_FILE_NAME environment variable. Gremlin displays -the current .ngc file - it does monitor for changes and reloads the ngc -file if the file name in Axis/Touchy changes. If you run it in a -GladeVCP application when LinuxCNC is not running, you might get a traceback -because the Gremlin widget can't find LinuxCNC status, like the current file -name. - -Gremlin does not export any HAL pins. It has the following properties: - -show tool speed:: - This displays the tool speed. Defaults true -show commanded:: - This selects the DRO to use commanded or actual values. Defaults true -use metric units:: - This selects the DRO to use metric or imperial units. Defaults true -show rapids:: - This tells the plotter to show the rapid moves. Defaults true -show DTG:: - This selects the DRO to display the distance-to-go value. Defaults true -show relative:: - This selects the DRO to show values relative to user system or machine - cordinates. Defaults true -show live plot:: - This tells the plotter to draw or not. Defaults true -show limits:: - This tells the plotter to show the machine's limits. Defaults true -show lathe radius:: - This selects the DRO to display the X axis in radius or diameter, if in lathe - mode (selectable in the INI file with LATHE = 1). Defaults false -show extents:: - This tells the plotter to show the extents. Defaults true -show tool:: - This tells the plotter to draw the tool. Defaults true -show program:: - TODO -use joints mode:: - Used in non trivialkins machines (eg robots). Defaults false -grid size:: - Sets the size of the grid. which is only visible in the X, Y and Z view. - Defaults to 0 -use default mouse controls:: - This disables the default mouse controls. This is most useful when using a - touchscreen as the default controls do not work well. You can programically - add controls using python and the handler file technique. Defaults to 'True' -view :: - may be any of `x`, `y`, 'y2' , `z`, 'z2' , `p` (perspective) . Defaults to - `z` view. -enable_dro :: - boolean; whether to draw a DRO on the plot or not. - Defaults to `True` -mouse_btn_mode :: - integer; mouse button handling, leads to different functions of the button - 0 = default: left rotate, middle move, right zoom - 1 = left zoom, middle move, right rotate - 2 = left move, middle rotate, right zoom - 3 = left zoom, middle rotate, right move - 4 = left move, middle zoom, right rotate - 5 = left rotate, middle zoom, right move - -Direct program control:: - - There a couple ways to directly control the widget using Python. - - Using goobject to set the above listed properties: - [widget name].set_property('view','P') - [widget name].set_property('metric_units',False) - [widget name].set_property('use_default_controls',False) - [widget name].set_property('enable_dro' False)) - [widget name].set_property('show_program', False) - [widget name].set_property('show_limits', False) - [widget name].set_property('show_extents_option', False) - [widget name].set_property('show_live_plot', False) - [widget name].set_property('show_tool', False) - [widget name].set_property('show_lathe_radius',True) - [widget name].set_property('show_dtg',True) - [widget name].set_property('show_velocity',False) - [widget name].set_property('mouse_btn_mode', 4) - - There are python methods: - [widget name].show_offsets = True - [widget name].grid_size = .75 - [widget name].select_fire(event.x,event.y) - [widget name].select_prime(event.x,event.y) - [widget name].start_continuous_zoom(event.y) - [widget name].set_mouse_start(0,0) - [widget name].gremlin.zoom_in() - [widget name].gremlin.zoom_out() - [widget name].get_zoom_distance() - [widget name].set_zoom_distance(dist) - [widget name].clear_live_plotter() - [widget name].rotate_view(x,y) - [widget name].pan(x,y) - -Hints:: - - If you set all the plotting options false but show_offsets true you get an - offsets page instead of a graphics plot. - - - If you get the zoom distance before changing the view then reset the zoom - distance, it's much more user friendly. - - - if you select an element in the preview, the selected element will be used - as rotation center point - -Example: -image:images/gremlin.png[] - -[[gladevcp::HAL_Offset]] -=== HAL_Offset -The HAL_Offset widget is used to display the offset of a single axis. -It has the following properties: - -Joint Number:: - Used to select which axis (technically which joint) is displayed. - On a trivialkins machine (mill, lathe, router) axis vrs joint number are: - - 0:X 1:Y 2:Z 3:A 4:B 5:C 6:U 7:V 8:W -Text template for metric units:: - You can use python formatting to display the position with different precision. -Text template for imperial units:: - You can use python formatting to display the position with different precision. -Reference Type:: - 0:G5x 1:tool 2:G92 3:Rotation around Z - -[[gladevcp::DRO_widget]] -=== DRO widget -The DRO widget is used to display the current axis position. -It has the following properties: - -Actual Position:: - select actual (feedback) position or commanded position. -Text template for metric units:: - You can use python formatting to display the position with different precision. -Text template for imperial units:: - You can use python formatting to display the position with different precision. -Reference Type:: - Absolute (machine origin), Relative (to current user coordinate origin - G5x) - or Distance-to-go (relative to current user coordinate origin) -Joint Number:: - Used to select which axis (technically which joint) is displayed. - On a trivialkins machine (mill, lathe, router) axis vrs joint number are: - - 0:X 1:Y 2:Z 3:A 4:B 5:C 6:U 7:V 8:W - -Display units:: - Used to toggle the display units between metric and imperial. - -Hints:: - - If you want the display to be right justified, set the X align to 1.0 - - - If you want different colors or size or text change the attributes in the - glade editor (eg scale is a good way to change the size of the text) - - - The background of the widget is actually see through - so if you place if over - an image the DRO numbers will show on top of it with no backgroud. There is a - special technique to do this. See the animated function diagrams below. - - - The DRO widget is a modified gtk label widget. As such much or what can be - done to a gtk label can be done to DRO widget. - -Direct program control:: - - There a couple ways to directly control the widget using Python. - - Using goobject to set the above listed properties: - [widget name].set_property("display_units_mm",True) - [widget name].set_property("actual",True) - [widget name].set_property("mm_text_template","%f") - [widget name].set_property("imperial_text_template","%f") - [widget name].set_property("Joint_number",3) - [widget name].set_property("reference_type",3) - - There are two python methods: - [widget name].set_dro_inch() - [widget name].set_dro_metric() - -[[gladevcp::Combi_DRO]] -=== Combi_DRO widget -The Combi_DRO widget is used to display the current , the relative axis position and the distance to go in one DRO. + -By clicking on the DRO the Order of the DRO will toggle around. + -In Relative Mode the actual coordinate system will be displayed. - -It has the following properties: -==== -joint_number:: - Used to select which axis (technically which joint) is displayed. + - On a trivialkins machine (mill, lathe, router) axis vrs. joint number are: + - '0:X 1:Y 2:Z etc' - -actual:: - select actual (feedback) or commanded position. - -metric_units:: - Used to toggle the display units between metric and imperial. - -auto_units:: - Units will toggle between metric and imperial according to the - active gcode being G20 or G21 - -diameter:: - Whether to display position as diameter or radius, in diameter mode - the DRO will display the joint value multiplied by 2 - -mm_text_template:: - You can use python formatting to display the position with different precision. + - default is "%10.3f" - -imperial_text_template:: - You can use python formatting to display the position with different precision. + - default is "%9.4f" - -homed_color:: - The foreground color of the DRO numbers if the joint is homed + - default is green - -unhomed_color:: - The foreground color of the DRO numbers if the joint is not homed + - default is red - -abs_color:: - the background color of the DRO, if main DRO shows absolute coordinates + - default is blue - -rel_color:: - the background color of the DRO, if main DRO shows relative coordinates + - default is black - -dtg_color:: - the background color of the DRO, if main DRO shows distance to go + - default is yellow - -font_size:: - The font size of the big numbers, the small ones will be 2.5 times smaller, - the value must be an integer in the range of 8 to 96, + - default is 25 -==== - -Direct program control:: -====== -Using goobject to set the above listed properties: - - [widget name].set_property(property,value) - -There are several python methods to control the widget: - - [widget name].set_to_inch(state) - sets the DRO to show imperial units - state = boolean (True or False) - - [widget name].set_auto_units(state) - if True the DRO will change units according to active gcode (G20 / G21) - state = boolean (True or False) - Default is True - - [widget name].set_to_diameter(state) - if True the DRO will show the diameter not the radius, specially needed for lathes - the DRO will display the axis value multiplied by 2 - state = boolean (True or False) - Default is False - - [widget name].toggle_readout() - toggles the order of the DRO in the widget - - [widget name].change_axisletter(letter) - changes the automatically given axis letter - very useful to change an lathe DRO from X to R or D - letter = string - - [widget name].get_order() - returns the order of the DRO in the widget mainly used to maintain them consistent - the order will also be transmitted with the clicked signal - returns a list containing the order - - [widget name].set_order(order) - sets the order of the DRO, mainly used to maintain them consistent - order = list object, must be one of - ["Rel", "Abs", "DTG"] - ["DTG", "Rel", "Abs"] - ["Abs", "DTG", "Rel"] - Default = ["Rel", "Abs", "DTG"] - - [widget name].get_position() - returns the position of the DRO as a list of floats - the order is independent of the order shown on the DRO - and will be given as [Absolute , relative , DTG] - Absolute = the machine coordinates, depends on the actual property - will give actual or commanded position - Relative = will be the coordinates of the actual coordinate system - DTG = the distance to go, will mostly be 0, as this function should not be used - while the machine is moving, because of time delays - -The widget will emit the following signals: - - clicked - This signal is emitted, when the user has clicked on the Combi_DRO widget, - it will send the following data: - widget = widget object = The widget object that sends the signal - joint_number = integer = The joint number of the DRO, where '0:X 1:Y 2:Z etc' - order = list object = the order of the DRO in that widget - the order may be used to set other Combi_DRO widgets to the same order with [widget name].set_order(order) - - units_changed - This signal is emitted, if the DRO units are changed, it will send the following data: - widget = widget object = The widget object that sends the signal - metric_units = boolean = True if the DRO does display metric units, False in case of imperial display - - system_changed - This signal is emitted, if the DRO units are changed, it will send the following data: - widget = widget object = The widget object that sends the signal - system = string = The actual coordinate system. Will be one of - G54 G55 G56 G57 G58 G59 G59.1 G59.2 G59.3 - or Rel if non has been selected at all, what will only happen in Glade with no linuxcnc running - -There are some information you can get through commands, witch may be of ineterst for you: - - [widget name].system - The actual system, as mentioned in the system_changed signal - - [widget name].homed - True if the joint is homed - - [widget name].machine_units - 0 if Imperial, 1 if Metric - -====== - -Example, Three Combi_DRO in a window + -X = Relative Mode + -Y = Absolute Mode + -Z = DTG Mode + - -image::images/combi_dro.png[] - -[[gladevcp::IconView]] -=== IconView (File selection) widget - -This is touch screen friendly widget to select a file and to change directories. - -The widget has the following properties: -==== - -icon_size:: - Sets the size of the displayed icon. + - Allowed values are integers in the range from 12 to 96 + - default is 48 - -start_dir:: - Sets the directory to start in when the widget is shown first time, + - must be a string, containing a valid directory path, + - default is "/" - -jump_to_dir:: - Sets the directory "jump to" directory, witch is selected by the corresponding - button in the bottom button list, the 5th button counting from the left, + - must be a string, containing a valid directory path, + - default is "~" - -filetypes:: - Sets the file filter for the objects to be shown + - Must be a string containing a comma separated list of extensions to be shown + - Default is "ngc,py" - -sortorder:: - Sets the sorting order of the displayed icon - must be an integer value from 0 to 3, where + - 0 = ASCENDING (sorted according to file names) + - 1 = DESCENDING (sorted according to file names) + - 2 = FOLDERFIRST (show the folders first, then the files) + - 3 = FILEFIRST (show the files first, then the folders), + - Default = 2 = FOLDERFIRST - -==== - -Direct program control:: -====== -Using goobject to set the above listed properties: - - [widget name].set_property(property,Value) - -There are python methods to control the widget: - - [widget name].show_buttonbox(state) - if False the bottom button box will be hidden, this is helpful in custom screens, - with special buttons layouts to not alter the layout of the GUI, good example - for that is gmoccapy - state = boolean (True or False) - Default is True - - [widget name].show_filelabel(state) - if True the file label (between the IconView window and the bottom button box will be shown. - Hiding this label may save place, but showing it is very useful for debugging reasons, - state = boolean (True or False) - Default is True - - [widget name].set_icon_size(iconsize) - sets the icon size - must be an integer in the range from 12 to 96 - Default = 48 - - [widget name].set_directory(directory) - Allows to set an directory to be shown - directory = string (a valid file path) - - [widget name].set_filetypes(filetypes) - sets the file filter to be used, only files with the given extensions will be shown - filetypes = string containing a comma separated list of extensions - Default = "ngc,py" - - [widget name].get_selected() - Returns the path of the selected file, or None if an directory has been selected - - [widget name].refresh_filelist() - Refreshes the filelist, needed if you add a file without changing the directory - -If the button box has been hidden, you can reach the functions of this button -through it's clicked signals like so: - - [widget name].btn_home.emit("clicked") - [widget name].btn_jump_to.emit("clicked") - [widget name].btn_sel_prev.emit("clicked") - [widget name].btn_sel_next.emit("clicked") - [widget name].btn_get_selected.emit("clicked") - [widget name].btn_dir_up.emit("clicked") - [widget name].btn_exit.emit("clicked") - -The widget will emit the following signals: - - selected - This signal is emitted, when the user selects an icon, it will return a string containing a - file path if a file has been selected, or None if an directory has been selected - exit - This signal is Emmit, when the exit button has been pressed to close the IconView - mostly needed if the application is started as stand alone. - -====== - -Example: - -image::images/iconview.png[] - -=== Calculator widget - -This is a simple calculator widget, that can be used for numerical input. + -You can preset the display and retrieve the result or that preset value. + -It has the following properties: - -Is editable:: - This allows the entry display to be typed into from a keyboard. -Set Font:: - This allows you to set the font of the display. - -Direct program control:: - - There a couple ways to directly control the widget using Python. - - Using goobject to set the above listed properties: - [widget name].set_property("is_editable",True) - [widget name].set_property("font","sans 25") - - There are python methods: - [widget name].set_value(2.5) - This presets the display and is recorded. - [widget name].set_font("sans 25") - [widget name].set_editable(True) - [widget name].get_value() - Returns the calculated value - a float. - [widget name].set_editable(True) - [widget name].get_preset_value() - Returns the recorded value: a float. - -[[gladevcp::tooledit]] -=== Tooleditor widget - -This is a tooleditor widget for displaying and modifying a tool editor file. + -It checks the current file once a second to see if linuxcnc updated it. + -It has the following properties: - -Hidden Columns:: - This will hide the given columns: The columns are designated (in order) as such: + - s,t,p,x,y,z,a,b,c,u,v,w,d,i,j,q,; + - You can hide any number of columns including the select and comments + -Direct program control:: - - There a couple ways to directly control the widget using Python. - - using goobject to set the above listed properties: - [widget name].set_properties('hide_columns','uvwijq') - This would hide the uvwij and q columns and show all others. - - There are python methods: - [widget name].set_visible("ijq",False) - Would hide ij and Q columns and leave the rest as they were. - [widget name].set_filename(path_to_file) - Sets and loads the tool file. - [widget name].reload(None) - Reloads the current toolfile - -image::images/gtk-tooledit.png[] - -[[gladevcp::Offsetpage]] -=== Offsetpage - -The Offsetpage widget is used to display/edit the offsets of all the axes. + -It has convience buttons for zeroing G92 and Rotation-Around-Z offsets. + -It will only allow you to select the edit mode when the machine is on and idle. + -You can directly edit the offsets in the table at this time. Unselect the edit + -button to allow the OffsetPage to reflect changes. - -It has the following properties: - -Hidden Columns:: - A no-space list of columns to hide: The columns are designated (in order) as such: + - xyzabcuvwt + - You can hide any of the columns. -Hidden Rows:: - A no-space list of rows to hide: the rows are designated (in order) as such + - 0123456789abc + - You can hide any of the rows. -Pango Font:: - Sets text font type and size -HighLight color:: - when editing this is the high light color -Active color:: - when OffsetPage detects an active user coordinate system it will use this + - color for the text -Text template for metric units:: - You can use python formatting to display the position with different precision. -Text template for imperial units:: - You can use python formatting to display the position with different precision. - -Direct program control:: - - There a couple ways to directly control the widget using Python. - - Using goobject to set the above listed properties: - [widget name].set_property("highlight_color",gtk.gdk.Color('blue')) - [widget name].set_property("foreground_color",gtk.gdk.Color('black')) - [widget name].set_property("hide_columns","xyzabcuvwt") - [widget name].set_property("hide_rows","123456789abc") - [widget name].set_property("font","sans 25") - - There are python methods to control the widget: - [widget name].set_filename("../../../configs/sim/gscreen/gscreen_custom/sim.var") - [widget name].set_col_visible("Yabuvw",False) - [widget name].set_row_visible("456789abc",False) - [widget name].set_to_mm() - [widget name].set_to_inch() - [widget name].hide_button_box(True) - [widget name].set_font("sans 20") - [widget name].set_highlight_color("violet") - [widget name].set_foreground_color("yellow") - [widget name].mark_active("G55") - Allows you to directly set a row to highlight. - (eg in case you wish to use your own navigation controls. See Gmoccapy - [widget name].selection_mask = ("Tool","Rot","G5x") - These rows are NOT selectable in edit mode. - [widget name].set_names([['G54','Default'],["G55","Vice1"],['Rot','Rotational']]) - This allows you to set the text of the 'T' column of each/any row. - This is a list of a list of offset-name/user-name pairs. - The default text is the same as the offset name. - [widget name].get_names() - This returns a list of a list of row-keyword/user-name pairs. - The user name column is editable, so saving this list is user friendly. - see set_names above. - -image::images/offsetpage.png[] - -[[gladevcp::HAL_sourceview]] -=== HAL_sourceview widget - -This is for displaying and simple editing of Gcode. + -It looks for .ngc highlight specs in ~/share/gtksourceview-2.0/language-specs/ -The current running line will be highlighted. + -With external python glue code: + - *It can search for text, undo and redo changes. + - *It can be used for program line selection. + - - -Direct program control:: - - There are python methods to control the widget: - - [widget name].redo() - redo one level of changes. - [widget name].undo() - undo one level of changes - [widget name].text_search(direction=True,mixed_case=True,text='G92') - Searches forward (direction = True) or back, + - Searches with mixed case (mixed_case = True) or exact match - [widget name].set_line_number(linenumber) - Sets the line to high light. Uses the sourceview line numbers. - [widget name].get_line_number() - returns the currenly high lighted line. - [widget name].line_up() - Moves the High lighted line up one line - [widget name].line_down() - Moves the High lighted line down one line - [widget name].load_file('filename') - loads a file. Using None (not a filename string) will reload the same program. - [widget name].get_filename() - -image::images/hal_sourceview.png[] - -[[gladevcp:MDI_History]] -=== MDI history - -This is for displaying and entering MDI codes. + -It will automatically grey out when MDI is not available. + -Eg during Estop and program running. - -=== Animated function diagrams: HAL widgets in a bitmap - -For some applications it might be desirable to have background image - -like a functional diagram - and position widgets at appropriate places -in that diagram. A good combination is setting a bitmap background -image, like from a .png file, making the gladevcp window fixed-size, -and use the glade Fixed widget to position widgets on this image. - -The code for the below example can be found in +configs/apps/gladevcp/animated-backdrop+: - -image:images/small-screenshot.png[] - -== Action Widgets reference - -GladeVcp includes a collection of "canned actions" called EMC Action -Widgets for the Glade user interface editor. Other than HAL widgets, -which interact with HAL pins, EMC Actions interact with LinuxCNC and the -G-code interpreter. - -EMC Action Widgets are derived from the Gtk.Action widget. The Action -widget in a nutshell: - - - it is an object available in Glade - - it has no visual appearance by itself - - it's purpose: associate a visible, sensitive UI component like menu, - toolbutton, button with a command. See these widget's 'General→Related - Action' property. - - the "canned action" will be executed when the associated UI component - is triggered (button press, menu click..) - - it provides an easy way to execute commands without resorting to - Python programming. - -The appearance of EMC Actions in Glade is roughly as follows: - -image::images/emc-actions.png[] - -Tooltip hovers provide a description. - - -=== EMC Action widgets - -EMC Action widgets are one-shot type widgets. They implement a single action and -are for use in simple buttons, menu entries or radio/check groups. - -=== EMC ToggleAction widgets - -These are bi-modal widgets. They implement two actions or use a second -(usually pressed) state to indicate that currently an action is -running. Toggle actions are aimed for use in ToggleButtons, -ToggleToolButtons or toggling menu items. A simplex example is the -ESTOP toggle button. - -Currently the following widgets are available: - - - The ESTOP toggle sends ESTOP or ESTOP_RESET commands to LinuxCNC depending - on it's state. - - The ON/OFF toggle sends STATE_ON and STATE_OFF commands. - - Pause/Resume sends AUTO_PAUSE or AUTO_RESUME commands. - -The following toggle actions have only one associated command and use -the 'pressed' state to indicate that the requested operation is -running: - - - The Run toggle sends an AUTO_RUN command and waits in the pressed - state until the interpreter is idle again. - - The Stop toggle is inactive until the interpreter enters the active - state (is running G-code) and then allows user to send AUTO_ABORT - command. - - The MDI toggle sends given MDI command and waits for its completion in - 'pressed' inactive state. - -=== The Action_MDI Toggle and Action_MDI widgets - -These widgets provide a means to execute arbitrary MDI commands. The -Action_MDI widget does not wait for command completion as the -Action_MDI Toggle does, which remains disabled until command complete. - -=== A simple example: Execute MDI command on button press - -+configs/apps/gladevcp/mdi-command-example/whoareyou.ui+ is a Glade UI file which conveys the basics: - -Open it in Glade and study how it's done. Start Axis, and then start -this from a terminal window with `gladevcp whoareyou.ui`. See the -+hal_action_mdi1+ Action and it's +MDI command+ property - this just -executes +(MSG, "Hi, I'm an EMC_Action_MDI")+ so there should be a -message popup in Axis like so: - -image::images/whoareyou.png[] - -You'll notice that the button associated with the Action_MDI action is -grayed out if the machine is off, in E-Stop or the interpreter is running. -It will automatically become active when the machine is turned on and -out of E-Stop, and the program is idle. - -=== Parameter passing with Action_MDI and ToggleAction_MDI widgets - -Optionally, 'MDI command' strings may have parameters substituted -before they are passed to the interpreter. Parameters currently may be -names of HAL pins in the GladeVCP component. This is how it works: - - - assume you have a 'HAL SpinBox' named +speed+, and you want to pass it's - current value as a parameter in an MDI command. - - The HAL SpinBox will have a float-type HAL pin named speed-f (see - HalWidgets description). - - To substitute this value in the MDI command, insert the HAL pin name - enclosed like so: `${pin-name}` - - for the above HAL SpinBox, we could use `(MSG, "The speed is: - ${speed-f}")` just to show what's happening. - -The example UI file is +configs/apps/gladevcp/mdi-command-example/speed.ui+. Here's what you get when running it: - - -image::images/speed.png[] - -=== An advanced example: Feeding parameters to an O-word subroutine - -It's perfectly OK to call an O-word subroutine in an MDI command, and -pass HAL pin values as actual parameters. An example UI file -is in +configs/apps/gladevcp/mdi-command-example/owordsub.ui+. - -Place +nc_files/gladevcp_lib/oword.ngc+ so Axis can find it, and run `gladevcp owordsub.ui` from -a terminal window. This looks like so: - -image::images/oword.png[] - -=== Preparing for an MDI Action, and cleaning up afterwards - -The LinuxCNC G-Code interpreter has a single global set of variables, like -feed, spindle speed, relative/absolute mode and others. If you use G -code commands or O-word subs, some of these variables might get changed -by the command or subroutine - for example, a probing subroutine will -very likely set the feed value quite low. With no further precautions, -your previous feed setting will be overwritten by the probing -subroutine's value. - -To deal with this surprising and undesirable side effect of a given -O-word subroutine or G-code statement executed with an LinuxCNC -ToggleAction_MDI, you might associate pre-MDI and post-MDI handlers -with a given LinuxCNC ToggleAction_MDI. These handlers are optional and -provide a way to save any state before executing the MDI Action, and to -restore it to previous values afterwards. The signal names are +mdi-command-start+ -and +mdi-command-stop+; the handler names can be set in Glade like any -other handler. - -Here's an example how a feed value might be saved and restored by such -handlers (note that LinuxCNC command and status channels are available as -+self.linuxcnc+ and +self.stat+ through the EMC_ActionBase class: - -[source,python] ----------------------------------- - def on_mdi_command_start(self, action, userdata=None): - action.stat.poll() - self.start_feed = action.stat.settings[1] - - def on_mdi_command_stop(self, action, userdata=None): - action.linuxcnc.mdi('F%.1f' % (self.start_feed)) - while action.linuxcnc.wait_complete() == -1: - pass ----------------------------------- - -Only the Action_MDI Toggle widget supports these signals. - -[NOTE] -In a later release of LinuxCNC, the new M-codes M70-M72 are available which -make it saving state before a subroutine call, and restoring state on return much easier. - -=== Using the LinuxCNC Stat object to deal with status changes - -Many actions depend on LinuxCNC status - is it in manual, MDI or auto mode? -is a program running, paused or idle? You cannot start an MDI command -while a G-code program is running, so this needs to be taken care of. -Many LinuxCNC actions take care of this themselves, and related buttons and -menu entries are deactivated when the operation is currently -impossible. - -When using Python event handlers - which are at a lower level than -Actions - one needs to take care of dealing with status dependencies -oneself. For this purpose, there's the LinuxCNC Stat widget: to associate -LinuxCNC status changes with event handlers. - -LinuxCNC Stat has no visible component - you just add it to your UI with -Glade. Once added, you can associate handlers with its following -signals: - -* state-related: emitted when E-Stop condition occurs, is reset, machine is turned on, or is turned off - - +state-estop+ - - +state-estop-reset+ - - +state-on+, - - +state-off+ -* mode-related: emitted when LinuxCNC enters that particular mode - - +mode-manual+ - - +mode-mdi+ - - +mode-auto+ -* interpreter-related: emitted when the G-code interpreter changes into that mode - - +interp-run+ - - +interp-idle+ - - +interp-paused+ - - +interp-reading+ - - +interp-waiting+ - - +file-loaded+ - - +line-changed+ -* homing-related: emitted when linuxcnc is homed or not - - +all-homed+ - - +not-all-homed+ - -[[gladevcp:GladeVCP_Programming]] -== GladeVCP Programming - -=== User Defined Actions - -Most widget sets, and their associated user interface editors, support -the concept of callbacks - functions in user-written code which are -executed when 'something happens' in the UI - events like mouse clicks, -characters typed, mouse movement, timer events, window hiding and -exposure and so forth. - -HAL output widgets typically map input-type events like a button press -to a value change of the associated HAL pin by means of such a - -predefined - callback. Within PyVCP, this is really the only type of event -handling supported - doing something more complex, like executing MDI -commands to call a G-code subroutine, is not supported. - -Within GladeVCP, HAL pin changes are just one type of the general -class of events (called signals) in GTK+. Most widgets may originate such -signals, and the Glade editor supports associating such a signal with a -Python method or function name. - -If you decide to use user-defined actions, your job is to write a -Python module whose class methods - or in the simple case, just -functions - can be referred to in Glade as event handlers. GladeVCP -provides a way to import your module(s) at startup and will -automatically link your event handlers with the widget signals as set -in the Glade UI description. - -=== An example: adding custom user callbacks in Python - -This is just a minimal example to convey the idea - details are laid -out in the rest of this section. - -GladeVCP can not only manipulate or display HAL pins, you can also -write regular event handlers in Python. This could be used, among -others, to execute MDI commands. Here's how you do it: - -Write a Python module like so and save as e.g. handlers.py: - -[source,python] ----------------------------------- -nhits = 0 -def on_button_press(gtkobj,data=None): - global nhits nhits += 1 gtkobj.set_label("hits: %d" % nhits) ----------------------------------- - -In Glade, define a button or HAL button, select the 'Signals' tab, and -in the GtkButton properties select the 'pressed' line. Enter -'on_button_press' there, and save the Glade file. - -Then add the option '-u handlers.py' to the gladevcp command line. If -your event handlers are spread over several files, just add multiple -'-u ' options. - -Now, pressing the button should change its label since it's set in the -callback function. - -What the +-u+ flag does: all Python functions in this file are -collected and setup as potential callback handlers for your Gtk widgets -- they can be referenced from Glade 'Signals' tabs. The callback -handlers are called with the particular object instance as parameter, -like the GtkButton instance above, so you can apply any GtkButton -method from there. - -Or do some more useful stuff, like calling an MDI command! - -=== HAL value change events - -HAL input widgets, like a LED, automatically associate their HAL pin state -(on/off) with the optical appearance of the widget (LED lit/dark). - -Beyond this builtin functionality, one may associate a change -callback with any HAL pin, including those of predefined HAL -widgets. This fits nicely with the event-driven structure of a typical -widget application: every activity, be it mouse click, key, timer -expired, or the change of a HAL pin's value, generates a callback and -is handled by the same orthogonal mechanism. - -For user-defined HAL pins not associated with a particular HAL widget, -the signal name is 'value-changed'. See the -<> section below for -details. - -HAL widgets come with a pre-defined signal called 'hal-pin-changed'. See the -<> for details. - - -=== Programming model - -The overall approach is as follows: - - - design your UI with Glade, and set signal handlers where you want - actions associated with a widget - - write a Python module which contains callable objects (see 'handler - models' below) - - pass your module's path name to gladevcp with the '-u ' option - - gladevcp imports the module, inspects it for signal handlers and - connects them to the widget tree - - the main event loop is run. - -==== The simple handler model - -For simple tasks it's sufficient to define functions named after the -Glade signal handlers. These will be called when the corresponding -event happens in the widget tree. Here's a trivial example - it assumes -that the 'pressed' signal of a Gtk Button or HAL Button is linked to a -callback called 'on_button_press': - -[source,python] ----------------------------------- -nhits = 0 -def on_button_press(gtkobj,data=None): - global nhits - nhits += 1 - gtkobj.set_label("hits: %d" % nhits) ----------------------------------- - -Add this function to a Python file and run as follows: - - gladevcp -u .py mygui.ui - -Note communication between handlers has to go through global -variables, which does not scale well and is positively un-pythonic. -This is why we came up with the class-based handler model. - -==== The class-based handler model - -The idea here is: handlers are linked to class methods. The underlying -class(es) are instantiated and inspected during GladeVCP startup and -linked to the widget tree as signal handlers. So the task now is to -write: - - - one or more several class definition(s) with one or several methods, - in one module or split over several modules, - - a function 'get_handlers' in each module which will return a list of - class instances to GladeVCP - their method names will be linked to - signal handlers - -Here is a minimum user-defined handler example module: - -[source,python] ----------------------------------- -class MyCallbacks : - def on_this_signal(self,obj,data=None): - print "this_signal happened, obj=",obj - -def get_handlers(halcomp,builder,useropts): - return [MyCallbacks ()] ----------------------------------- - -Now, 'on_this_signal' will be available as signal handler to your -widget tree. - -==== The get_handlers protocol - -If during module inspection GladeVCP finds a function `get_handlers`, -it calls it as follows: - - get_handlers(halcomp,builder,useropts) - -the arguments are: - - - halcomp - refers to the HAL component under construction - - builder - widget tree - result of reading the UI definition (either - referring to a GtkBuilder or libglade-type object) - - useropts - a list of strings collected from the gladevcp - command line `-U ` option - -GladeVCP then inspects the list of class instances and retrieves their -method names. Qualifying method names are connected to the widget tree -as signal handlers. Only method names which do not begin with an '_' -(underscore) are considered. - -Note that regardless whether you're using the libglade or the new -GtkBuilder format for your Glade UI, widgets can always be referred to -as `builder.get_object()`. Also, the complete list of -widgets is available as `builder.get_objects()` regardless of UI -format. - -=== Initialization sequence - -It is important to know in which state of affairs your `get_handlers()` -function is called so you know what is safe to do there and what not. -First, modules are imported and initialized in command line order. -After successful import, `get_handlers()` is called in the following -state: - - - the widget tree is created, but not yet realized (no toplevel - `window.show()` has been executed yet) - - the halcomp HAL component is set up and all HAL widget's pins have - already been added to it - - it is safe to add more HAL pins because `halcomp.ready()` has not yet - been called at this point, so you may add your own pins, for instance - in the class `__init__()` method. - -Once all modules have been imported and method names extracted, the -following steps happen: - - - all qualifying method names will be connected to the widget tree with - `connect_signals()/signal_autoconnect()` (depending on the type of UI - imported - GtkBuilder vs the old libglade format). - - the HAL component is finalized with halcomp.ready() - - if a window ID was passed as argument, the widget tree is re-parented - to run in this window, and Glade's toplevel window1 is abandoned (see - FAQ) - - if a HAL command file was passed with `-H halfile`, it is executed - with halcmd - - the Gtk main loop is run. - -So when your handler class is initialized, all widgets are existent -but not yet realized (displayed on screen). And the HAL component isn't -ready as well, so its unsafe to access pins values in your `__init__()` -method. - -If you want to have a callback to execute at program start after it is -safe to access HAL pins, then a connect a handler to the realize signal -of the top level window1 (which might be its only real purpose). At -this point GladeVCP is done with all setup tasks, the halfile has been -run, and GladeVCP is about to enter the Gtk main loop. - -=== Multiple callbacks with the same name - -Within a class, method names must be unique. However, it is OK to have -multiple class instances passed to GladeVCP by get_handlers() with -identically named methods. When the corresponding signal occurs, these -methods will be called in definition order - module by module, and -within a module, in the order class instances are returned by -`get_handlers()`. - -=== The GladeVCP `-U ` flag - -Instead of extending GladeVCP for any conceivable option which could -potentially be useful for a handler class, you may use the -U - flag (repeatedly if you wish). This flag collects a list -of strings. This list is passed to the get_handlers() -function (useropts argument). Your code is free to interpret these -strings as you see fit. An possible usage would be to pass them to the -Python exec function in your `get_handlers()` as follows: - -[source,python] ----------------------------------- -debug = 0 -... -def get_handlers(halcomp,builder,useropts): - ... - global debug # assuming there's a global var - for cmd in useropts: - exec cmd in globals() ----------------------------------- - -This way you can pass arbitrary Python statements to your module -through the gladevcp -U option, for example: - - gladevcp -U debug=42 -U "print 'debug=%d' % debug" ... - -This should set debug to 2 and confirm that your module actually did it. - -=== Persistent variables in GladeVCP - -A annoying aspect of GladeVCP in its earlier form and pyvcp is the -fact that you may change values and HAL pins through text entry, -sliders, spin boxes, toggle buttons etc, but their settings are not -saved and restored at the next run of LinuxCNC - they start at the default -value as set in the panel or widget definition. - -GladeVCP has an easy-to-use mechanism to save and restore the state of -HAL widgets, and program variables (in fact any instance attribute of -type int, float, bool or string). - -This mechanism uses the popular '.ini' file format to save and reload -persistent attributes. - -==== Persistence, program versions and the signature check - -Imagine renaming, adding or deleting widgets in Glade: -an .ini file lying around from a previous program version, or an -entirely different user interface, would be not be able to restore the -state properly since variables and types might have changed. - -GladeVCP detects this situation by a signature which depends on all -object names and types which are saved and to be restored. In the case -of signature mismatch, a new .ini file with default settings is -generated. - -=== Using persistent variables - -If you want any of Gtk widget state, HAL widgets output pin's values -and/or class attributes of your handler class to be retained across -invocations, proceed as follows: - - - import the +gladevcp.persistence+ module - - decide which instance attributes, and their default values you want to - have retained, if any - - decide which widgets should have their state retained - - describe these decisions in your handler class' +__init__()+ method - through a nested dictionary as follows: - -[source,python] ----------------------------------- -def __init__(self, halcomp,builder,useropts): - self.halcomp = halcomp - self.builder = builder - self.useropts = useropts - self.defaults = { - # the following names will be saved/restored as method attributes - # the save/restore mechanism is strongly typed - the variables type will be derived from the type of the - # initialization value. Currently supported types are: int, float, bool, string - IniFile.vars : { 'nhits' : 0, 'a': 1.67, 'd': True ,'c' : "a string"}, - # to save/restore all widget's state which might remotely make sense, add this: - IniFile.widgets : widget_defaults(builder.get_objects()) - # a sensible alternative might be to retain only all HAL output widgets' state: - # IniFile.widgets: widget_defaults(select_widgets(self.builder.get_objects(), hal_only=True,output_only = True)), - } ----------------------------------- - -Then associate an .ini file with this descriptor: - -[source,python] ----------------------------------- -self.ini_filename = __name__ + '.ini' -self.ini = IniFile(self.ini_filename,self.defaults,self.builder) -self.ini.restore_state(self) ----------------------------------- - -After `restore_state()`, self will have attributes set if as running the -following: - -[source,python] ----------------------------------- -self.nhits = 0 -self.a = 1.67 -self.d = True -self.c = "a string" ----------------------------------- - -Note that types are saved and preserved on restore. This example -assumes that the ini file didn't exist or had the default values from -self.defaults. - -After this incantation, you can use the following IniFil methods: - -ini.save_state(obj):: - saves objs's attributes as per IniFil.vars - dictionary and the widget state as described in IniFile.widgets in - self.defaults -ini.create_default_ini():: - create a .ini file with default values -ini.restore_state(obj):: - restore HAL out pins and obj's attributes as - saved/initialized to default as above - -=== Saving the state on Gladvcp shutdown - -To save the widget and/or variable state on exit, proceed as follows: - -- select some interior widget (type is not important, for instance a -table). -- in the 'Signals' tab, select 'GtkObject'. It should show a 'destroy' -signal in the first column. -- add the handler name, e.g. 'on_destroy' to the second column. -- add a Python handler like below: - -[source,python] ----------------------------------- -import gtk -... -def on_destroy(self,obj,data=None): - self.ini.save_state(self) ----------------------------------- - -This will save state and shutdown GladeVCP properly, regardless -whether the panel is embedded in Axis, or a standalone window. - -CAUTION: Do not use +window1+ (the toplevel window) to connect a -+destroy+ event. Due to the way a GladeVCP panel interacts with Axis -if a panel is embedded within Axis, *window1 will not receive destroy -events properly*. However, since on shutdown all widgets are -destroyed, anyone will do. Recommended: use a second-level widget - -for instance, if you have a table container in your panel, use -that. - -Next time you start the GladeVCP application, the widgets should come -up in the state when the application was closed. - -CAUTION: The 'GtkWidget' line has a similarly sounding 'destroy-event' - -*dont use that to connect to the 'on_destroy' handler, it wont work* - -make sure you use the 'destroy' event from the 'GtkObject' line. - -=== Saving state when Ctrl-C is pressed - -By default, the reaction of GladeVCP to a Ctrl-C event is to just exit -- +without+ saving state. To make sure that this case is covered, add -a handler call +on_unix_signal+ which will be automatically be called -on Ctrl-C (actuall on the SIGINT and SIGTERM signals). Example - - -[source,python] ----------------------------------- -def on_unix_signal(self,signum,stack_frame): - print "on_unix_signal(): signal %d received, saving state" % (signum) - self.ini.save_state(self) ----------------------------------- - -=== Hand-editing .ini files - -You can do that, but note that the values in self.defaults override -your edits if there is a syntax or type error in your edit. The error -is detected, a console message will hint about that happened, and the -bad inifile will be renamed to have the .BAD suffix. Subsequent bad ini -files overwrite earlier .BAD files. - -[[gladevcp:Adding_HAL_pins]] -=== Adding HAL pins - -If you need HAL pins which are not associated with a specific HAL -widget, add them as follows: - -[source,python] ----------------------------------- -import hal_glib -... -# in your handler class __init__(): -self.example_trigger = hal_glib.GPin(halcomp.newpin('example-trigger', hal.HAL_BIT, hal.HAL_IN)) ----------------------------------- - -To get a callback when this pin's value changes, associate a -+value-change+ callback with this pin, add: - -[source,python] ----------------------------------- -self.example_trigger.connect('value-changed', self._on_example_trigger_change) ----------------------------------- - -and define a callback method (or function, in this case leave out the -+self+ parameter): - -[source,python] ----------------------------------- -# note '_' - this method will not be visible to the widget tree -def _on_example_trigger_change(self,pin,userdata=None): - print "pin value changed to:" % (pin.get()) ----------------------------------- - -=== Adding timers - -Since GladeVCP uses Gtk widgets which rely on the -http://www.pygtk.org/pygtk2reference/gobject-functions.html[GObject] -base class, the full glib functionally is available. Here is an -example for a timer callback: - -[source,python] ----------------------------------- -def _on_timer_tick(self,userdata=None): - ... - return True # to restart the timer; return False for on-shot -... -# demonstrate a slow background timer - granularity is one second -# for a faster timer (granularity 1 ms), use this: -# glib.timeout_add(100, self._on_timer_tick,userdata) # 10Hz -glib.timeout_add_seconds(1, self._on_timer_tick) ----------------------------------- - -=== Setting HAL widget properties programmatically - -With glade, widget properties are typically set fixed while editing. -You can, however, set widget properties at runtime, for instance from -ini file values, which would typically be done in the handler -initialisation code. Setting properties from HAL pin values is -possible, too. - -In the following example (assuming a HAL Meter widget called `meter`), the -meter's min value is set from an INI file parameter at startup, and the max value -is set via a HAL pin, which causese the widget's scale to readjust dynamically: - -[source,python] ----------------------------------- -import linuxcnc -import os -import hal -import hal_glib - -class HandlerClass: - - def _on_max_value_change(self,hal_pin,data=None): - self.meter.max = float(hal_pin.get()) - self.meter.queue_draw() # force a widget redraw - - def __init__(self, halcomp,builder,useropts): - self.builder = builder - - # hal pin with change callback. - # When the pin's value changes the callback is executed. - self.max_value = hal_glib.GPin(halcomp.newpin('max-value', hal.HAL_FLOAT, hal.HAL_IN)) - self.max_value.connect('value-changed', self._on_max_value_change) - - inifile = linuxcnc.ini(os.getenv("INI_FILE_NAME")) - mmin = float(inifile.find("METER", "MIN") or 0.0) - self.meter = self.builder.get_object('meter') - self.meter.min = mmin - - -def get_handlers(halcomp,builder,useropts): - return [HandlerClass(halcomp,builder,useropts)] ----------------------------------- - - -=== Examples, and rolling your own GladeVCP application - -Visit +linuxcnc_root_directory/configs/apps/gladevcp+ for running -examples and starters for your own projects. - - -== FAQ - -[qanda] - -I get an unexpected unmap event in my handler function right after startup. What's this?:: - - This is a consequence of your Glade UI file - having the window1 Visible property set to True, together with - re-parenting the GladeVCP window into Axis or touchy. The GladeVCP - widget tree is created, including a top level window, and then - 'reparented into Axis', leaving that toplevel window laying around - orphaned. To avoid having this useless empty window hanging around, it - is unmapped (made invisible), which is the cause of the unmap signal - you get. Suggested fix: set window1.visible to False, and ignore an - initial unmap event. - -My GladeVCP program starts, but no window appears where I expect it to be?:: - - The window Axis allocates for GladeVCP will obtain the 'natural - size' of all its child widgets combined. It's the child widget's job to - request a size (width and/or height). However, not all widgets do - request a width greater than 0, for instance the Graph widget in its - current form. If there's such a widget in your Glade file and it's the - one which defines the layout you might want to set its width - explicitly. Note that setting the window1 width and height properties - in Glade does not make sense because this window will be orphaned - during re-parenting and hence its geometry will have no impact on - layout (see above). The general rule is: if you manually run a UI file - with 'gladevcp ' and its window has reasonable geometry, it - should come up in Axis properly as well. - -I want a blinking LED, but it wont blink:: - - I ticked the checkbutton to let it blink with 100msec interval. It - wont blink, and I get a startup warning: Warning: value "0" of type - `gint' is invalid or out of range for property `led-blink-rate' of - type `gint'? This seems to be a glade bug. Just type over the blink - rate field, and save again - this works for me. - -My gladevcp panel in Axis doesnt save state when I close Axis, although I defined an on_destroy handler linked to the window destroy signal:: - Very likely this handler is linked to window1, - which due to reparenting isnt usable for this purpose. Please link - the on_destroy handler to the destroy signal of an interior - window. For instance, I have a notebook inside window1, and linked - on_destroy to the notebooks destroy signal, and that works fine. It - doesnt work for window1. - - -I want to set the background color or text of a HAL_Label widget depending on its HAL pin value:: - - - See the example in configs/apps/gladevcp/colored-label. Setting the - background color of a GtkLabel widget (and HAL_Label is derived - from GtkLabel) is a bit tricky. The GtkLabel widget has no window - object of its own for performance reasons, and only window objects - can have a background color. The solution is to enclose the Label - in an EventBox container, which has a window but is otherwise - invisible - see the coloredlabel.ui file. - - -I defined a `hal_spinbutton` widget in glade, and set a default `value` property in the corresponding adjustment. It comes up with zero?:: - - - this is due to a bug in the old Gtk version distributed with Ubuntu - 8.04 and 10.04, and is likely to be the case for all widgets using - adjustment. The workaround mentione for instance in - http://osdir.com/ml/gtk-app-devel-list/2010-04/msg00129.html does - not reliably set the HAL pin value, it is better to set it - explicitly in an `on_realize` signal handler during widget creation. - See the example in `configs/apps/gladevcp/by-widget/spinbutton.{ui,py}`. - - -== Troubleshooting - - - make sure you have the development version of LinuxCNC installed. You - don't need the axisrc file any more, this was mentioned in the old - GladeVcp wiki page. - - run GladeVCP or Axis from a terminal window. If you get Python errors, - check whether there's still a +/usr/lib/python2.6/dist-packages/hal.so+ - file lying around besides the newer - +/usr/lib/python2.6/dist-packages/_hal.so+ (note underscore); if yes, - remove the +hal.so+ file. It has been superseded by hal.py in the same - directory and confuses the import mechanism. - - if you're using run-in-place, do a 'make clean' to remove any - accidentally left over hal.so file, then 'make'. - - if you're using 'HAL_table' or 'HAL_HBox' widgets, be aware they have - an HAL pin associated with it which is off by default. This pin - controls whether these container's children are active or not. - -== Implementation note: Key handling in Axis - -We believe key handling works OK, but since it is new code, we're -telling about it you so you can watch out for problems; please let us -know of errors or odd behavior. This is the story: - -Axis uses the TkInter widget set. GladeVCP applications use Gtk -widgets and run in a separate process context. They are hooked into -Axis with the Xembed protocol. This allows a child application like -GladeVCP to properly fit in a parent's window, and - in theory - have -integrated event handling. - -However, this assumes that both parent and child application properly -support the Xembed protocol, which Gtk does, but TkInter doesn't. A -consequence of this is that certain keys would not be forwarded from a -GladeVCP panel to Axis properly under all circumstances. One of these -situations was the case when an Entry, or SpinButton widget had focus: -in this case, for instance an Escape key would not have been forwarded -to Axis and cause an abort as it should, with potentially disastrous -consequences. - -Therefore, key events in GladeVCP are explicitly handled, and -selectively forwarded to Axis, to assure that such situations cannot -arise. For details, see the `keyboard_forward()` function in -`lib/python/gladevcp/xembed.py`. - -== Adding Custom Widgets - -The LinuxCNC Wiki has information on adding custom widgets to GladeVCP. -link:http://wiki.linuxcnc.org/cgi-bin/wiki.pl?GladeVCP_Custom_Widgets[GladeVCP Custom Widgets] diff --git a/docs/src/gui/gladevcp_es.txt b/docs/src/gui/gladevcp_es.txt deleted file mode 100644 index b9aae16d549..00000000000 --- a/docs/src/gui/gladevcp_es.txt +++ /dev/null @@ -1,1544 +0,0 @@ -= Glade Virtual Control Panel - -[[cha:glade-vcp]] (((Glade Virtual Control Panel))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -// TODO: -// - manual-example.ui layout - really bad -// - restructure faq/troubleshooting/notes section -// - check wiki vs docs -// - check other gladevcp docs branch against this -// - when emc action widgits are renamed then re-brand this chapter - - -:ini: {basebackend@docbook:'':ini} -:hal: {basebackend@docbook:'':hal} -:ngc: {basebackend@docbook:'':ngc} -// begin a listing of ini/hal/ngc files like so: -//[source,{ini}] -//[source,{hal}] -//[source,{ngc}] - - -== What is GladeVCP? - -GladeVCP is an LinuxCNC component which adds the ability to add a new user -interface panel to LinuxCNC user interfaces like Axis or Touchy. Unlike -PyVCP, GladeVCP is not limitied to displaying and setting HAL pins, as -arbitrary actions can be executed in Python code - in fact, a -complete LinuxCNC user interface could be built with GladeVCP and Python. - -GladeVCP users the http://glade.gnome.org/[Glade] WYSIWYG user -interface editor, which makes it easy to create visually pleasing -panels. It relies on the http://www.pygtk.org/[PyGTK] bindings to the -rich http://www.gtk.org/[GTK+] widget set, and in fact all of these -may be used in a GladeVCP application - not just the specialized -widgets for interacting with HAL and LinuxCNC, which are documented here. - - -=== PyVCP versus GladeVCP at a glance - -Both support the creation of panels with 'HAL widgets' - user -interface elements like LED's, buttons, sliders etc whose values are -linked to a HAL pin, which in turn interfaces to the rest of LinuxCNC. - -*PyVCP:* - - - widget set: uses TkInter widgets - - user interface creation: "edit XML file / run result / evaluate looks" cycle - - no support for embedding user-defined event handling - - no LinuxCNC interaction beyond HAL pin I/O supported - -*GladeVCP:* - - - widget set: relies on the http://www.gtk.org/[GTK+] widget set. - - user interface creation: uses the http://glade.gnome.org/[Glade] WYSIWYG user interface editor - - any HAL pin change may be directed to call back into a user-defined Python event handler - - any GTK signal (key/button press, window, I/O, timer, network events) may be associated with user-defined handlers in Python - - direct LinuxCNC interaction: arbitrary command execution, like initiating MDI -commands to call a G-code subroutine, plus support for status change operations through Action Widgets - - several independent GladeVCP panels may be run in different tabs - - separation of user interface appearance and functionality: change appearance without touching any code - -== A Quick Tour with the Example Panel - -GladeVCP panel windows may be run in three different setups: - - - always visible integrated into Axis at the right side, exactly like PyVCP panels - - as a tab in Axis and Touchy; in Axis this would create a third tab besides the Preview and DRO tabs which must be raised explicitly - - as a standalone toplevel window, which can be iconifyed/deiconified independent of the main window. - -Run the sample GladeVCP panel integrated into Axis like PyVCP as follows: - - $ cd configs/sim - $ emc gladevcp_panel.ini - -image::images/example-panel-small.png[] - -Run the same panel, but as a tab inside Axis: - - $ cd configs/sim - $ emc gladevcp_tab.ini - -image::images/example-tabbed-small.png[] - -To run this panel as a standalone toplevel window besides Axis, just -start Axis in the background and start gladevcp as follows: - - $ cd configs/sim - $ emc axis.ini & - $ gladevcp -c gladevcp -u ../gladevcp/hitcounter.py -H ../gladevcp/manual-example.hal ../gladevcp/manual-example.ui - -image::images/example-float-small.png[] - -To run this panel inside 'Touchy': - - $ cd configs/sim - $ emc gladevcp_touchy.ini - -image::images/touchy-tab-33.png[] - - -Functionally these setups are identical - they only differ in screen -real estate requirements and visibility. Since it is possible to run -several GladeVCP components in parallel (with different HAL component -names), mixed setups are possible as well - for instance a panel on -the right hand side, and one or more tabs for less-frequently used -parts of the interface. - -=== Exploring the example panel - -While running Axis, explore 'Show HAL Configuration' - you will find -the 'gladevcp' HAL component and may observe their pin values while -interacting with the widgets in the panel. The HAL setup can be -found in 'configs/gladevcp/manual-example.hal'. - -The example panel has two frames at the bottom. The panel is -configured so that resetting ESTOP activates the Settings frame and -turning the machine on enables the Commands frame at the bottom. The HAL -widgets in the Settings frame are linked to LEDs and labels in the -'Status' frame, and to the current and prepared tool number - play -with them to see the effect. Executing the 'T' and 'M6' -commands in the MDI window will change the current and prepared tool -number fields. - -The buttons in the 'Commands' frame are 'MDI Action widgets' - -pressing them will execute an MDI command in the interpreter. The -third button 'Execute Oword subroutine' is an advanced example - it -takes several HAL pin values from the 'Settings' frame, and passes -them as parameters to the Oword subroutine. The actual parameters -received by the routine are displayed by '(DEBUG, )' commands - see -'configs/gladevcp/nc_files/oword.ngc' for the subroutine body. - -To see how the panel is integrated into Axis, see the -'[DISPLAY]GLADEVCP' statements in gladevcp_panel.ui, and the -'[DISPLAY]EMBED*' and '[HAL]POSTGUI_HALFILE' statements in -gladevcp_tab.ini respectively. - -=== Exploring the User Interface description - -The user interface is created with the glade UI editor - to explore -it, you need to have <>. To -edit the user interface, run the command - - $ glade configs/gladevcp/manual-example.ui - -The center window shows the appearance of the UI. All user -interface objects and support objects are found in the right top -window, where you can select a specific widget (or by clicking on it -in the center window). The properties of the selected widget are -displayed, and can be changed, in the right bottom window. - -To see how MDI commands are passed from the MDI Action widgets, -explore the widgets listed under 'Actions' in the top right window, -and in the right bottom window, unter the 'General' tab, the 'MDI -command' property. - -=== Exploring the Python callback -See how a Python callback is integrated into the example: - - - in glade, see the +hits+ label widget (a plain GTK+ widget) - - in the +button1+ widget, look at the 'Signals' tab, and find the signal 'pressed' associated with the handler 'on_button_press' - - in ../gladevcp/hitcounter.py, see the method 'on_button_press' and see how it sets the label property in the 'hits' object - -The is just touching upon the concept - the callback mechanism will be -handled in more detail in the <> section. - -== Creating and Integrating a Glade user interface - -[[gladevcp:Prerequisites]] -=== Prerequisite: Glade installation -To view or modify Glade UI files, you need glade installed - it is not -needed just to run a GladeVCP panel. If the glade command is missing, -install it with the command: - - $ sudo apt-get install glade - -Verify the version number to be greater than 3.6.7: - - $ glade --version - glade3 3.6.7 - -=== Running Glade to create a new user interface -This section just outlines the initial LinuxCNC-specific steps. For more -information and a tutorial on glade, see http://glade.gnome.org. Some -glade tips & tricks may also be found on -http://www.youtube.com[youtube]. - -Either modify an existing UI component by running +glade .ui+ -or start a new one by just running the +glade+ command from the shell. - -- If LinuxCNC was not installed from a package, the LinuxCNC shell environment needs to be set up with -+. /scripts/rip-environment+, otherwise glade won't find the LinuxCNC-specific widgets. -- When asked for unsaved Preferences, just accept the defaults and hit 'Close'. -- From 'Toplevel' (left pane), pick 'Window' (first icon) as top level window, which -by default will be named 'window1'. Do not change this name - GladeVCP relies on it. -- In the left tab, scroll down and expand 'HAL Python' and 'EMC Actions'. -- add a container like a HAL_Box or a HAL_Table from 'HAL Python' to the frame -- pick and place some elements like LED, button, etc. within a container - -This will look like so: - -image::images/glade-manual-small.png[] - -Glade tends to write a lot of messages to the shell window, which -mostly can be ignored. Select 'File→Save as', give it a name like -'myui.ui' and make sure it's saved as 'GtkBuilder' file (radio button -left bottom corner in Save dialog). GladeVCP will also process the -older 'libglade' format correctly but there is no point in using it. The -convention for GtkBuilder file extension is '.ui'. - -=== Testing a panel -You're now ready to give it a try (while LinuxCNC, e.g. Axis is running) it with: - - gladevcp myui.ui - -GladeVCP creates a HAL component named like the basename of the UI -file - 'myui' in this case - unless overriden by the +-c + option. If running Axis, just try 'Show HAL configuration' and -inspect its pins. - -You might wonder why widgets contained a 'HAL_Hbox' or 'HAL_Table' appear -greyed out (inactive). HAL containers have an associated HAL pin which -is off by default, which causes all contained widgets to render -inactive. A common use case would be to associate these container HAL -pins with +halui.machine.is-on+ or one of the +halui.mode.+ signals, -to assure some widgets appear active only in a certain state. - -To just activate a container, execute the HAL command +setp gladevcp. 1+. - -=== Preparing the HAL command file -The suggested way of linking HAL pins in a GladeVCP panel is to -collect them in a separate file with extension +.hal+. This file is -passed via the +POSTGUI_HALFILE=+ option in the +HAL+ section of your -ini file. - -CAUTION: Do not add the GladeVCP HAL command file to the Axis +[HAL]HALFILE=+ ini -section, this will not have the desired effect - see the following sections. - -=== Integrating into Axis like PyVCP - -Place the GladeVCP panel in the righthand side panel by specifying the -following in the ini file: - -[source,{ini}] ----- -[DISPLAY] -# add GladeVCP panel where PyVCP used to live: -GLADEVCP= -u ../gladevcp/hitcounter.py ../gladevcp/manual-example.ui - -[HAL] -# HAL commands for GladeVCP components in a tab must be executed via POSTGUI_HALFILE -POSTGUI_HALFILE = ../gladevcp/manual-example.hal - -[RS274NGC] -# gladevcp Demo specific Oword subs live here -SUBROUTINE_PATH = ../gladevcp/nc_files/ ----- - -The HAL component name of a GladeVCP application started with the the GLADEVCP option is fixed: +gladevcp+. -The command line actually run by Axis in the above configuration is as follows: - - halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID} - -This means you may add arbitrary gladevcp options here, as long as -they dont collide with the above command line options. - -[NOTE] -The +[RS274NGC]SUBROUTINE_PATH=+ option is only set so the example -panel will find the Oword subroutine for the MDI Command widget. It -might not be needed in your setup. - -=== Integrating into Axis as a tab next to DRO and Preview - -To do so, edit your .ini file and add to the DISPLAY and HAL sections of ini -file as follows: - -[source,{ini}] ----- -[DISPLAY] -# add GladeVCP panel as a tab next to Preview/DRO: -EMBED_TAB_NAME=GladeVCP demo -EMBED_TAB_COMMAND=halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID} -u ../gladevcp/hitcounter.py ../gladevcp/manual-example.ui - -[HAL] -# HAL commands for GladeVCP components in a tab must be executed via POSTGUI_HALFILE -POSTGUI_HALFILE = ../gladevcp/manual-example.hal - -[RS274NGC] -# gladevcp Demo specific Oword subs live here -SUBROUTINE_PATH = ../gladevcp/nc_files/ ----- - -Note the 'halcmd loadusr' way of starting the tab command - this -assures that 'POSTGUI_HALFILE' will only be run after the HAL -component is ready. In rare cases you might run a a command here which -uses a tab but does not have an associated HAL component. Such a -command can be started without 'halcmd loadusr', and this signifies to -Axis that it does not have to wait for a HAL component since there is -none. - -When changing the component name in the above example, note that the -names used in +-Wn + and +-c + must be -identical. - -Try it out by running Axis - there should be a new tab called -'GladeVCP demo' near the DRO tab. Select that tab, you should see the -example panel nicely fit within Axis. - -[NOTE] -Make sure the UI file is the last option passed to GladeVCP in -both the +GLADEVCP=+ and +EMBED_TAB_COMMAND=+ statements. - -=== Integrating into Touchy -To do add a GladeVCP tab to 'Touchy', edit your .ini file as follows: - -[source,{ini}] ----- -[DISPLAY] -# add GladeVCP panel as a tab -EMBED_TAB_NAME=GladeVCP demo -EMBED_TAB_COMMAND=gladevcp -c gladevcp -x {XID} -u ../gladevcp/hitcounter.py -H ../gladevcp/gladevcp-touchy.hal ../gladevcp/manual-example.ui - -[RS274NGC] -# gladevcp Demo specific Oword subs live here -SUBROUTINE_PATH = ../gladevcp/nc_files/ ----- - -Note the following differences to the Axis tab setup: - - - The HAL command file is slightly modified since 'Touchy' does not - use the 'halui' components so its signals are not available and some - shortcuts have been taken. - - - there is no 'POSTGUI_HALFILE=' ini option, but passing the HAL command file on the 'EMBED_TAB_COMMAND=' line is ok - - - the 'halcmd loaduser -Wn ...' incantation is not needed. - -== GladeVCP command line options - -See also 'man gladevcp' . These are the gladevcp command line options: - -Usage: gladevcp [options] myfile.ui - -Options: - --h, --help:: - show this help message and exit - --c NAME:: - Set component name to NAME. Default is base name of UI file - --d:: - Enable debug output - --g GEOMETRY:: - Set geometry WIDTHxHEIGHT+XOFFSET+YOFFSET. Values are in pixel units, - XOFFSET/YOFFSET is referenced from top left of screen. - Use -g WIDTHxHEIGHT for just setting size or -g +XOFFSET+YOFFSET for just - position - --H FILE:: - execute hal statements from FILE with halcmd after the - component is set up and ready - --m MAXIMUM:: - force panel window to maximize. Together with the -g geometry option - one can move the panel to a second monitor and force it to use all of the screen - --t THEME:: - set gtk theme. Default is system theme. Different panels can have different themes. - An example theme can be found in the http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?GTK_Themes[EMC Wiki]. - --x XID:: - Re-parent GladeVCP into an existing window XID instead of creating a - new top level window - --u FILE:: - Use File's as additional user defined modules with handlers - --U USEROPT:: - pass USEROPTs to Python modules - -== HAL Widget reference - -GladeVcp includes a collection of Gtk widgets with attached HAL pins -called HAL Widgets, intended to control, display or otherwise interact -with the LinuxCNC HAL layer. They are intended to be used with the Glade -user interface editor. With proper installation, the HAL Widgets should -show up in Glade's 'HAL Python' widget group. Many HAL specific fields -in the Glade 'General' section have an associated mouse-over tool tip. - -HAL signals come in two variants, bits and numbers. Bits are off/on -signals. Numbers can be "float", "s32" or "u32". For more information -on HAL data types see the <>. The GladeVcp -widgets can either display the value of the signal with an indicator -widget, or modify the signal value with a control widget. Thus there -are four classes of GladeVcp widgets that you can connect to a HAL -signal. Another class of helper widgets allow you to organize and -label your panel. - - - Widgets for indicating "bit" signals: <> - - Widgets for controlling "bit" signals: <>, - <>, - <> - - Widgets for indicating "number" signals: <>, - <>, - <>, <>, - <> - - Widgets for controlling "number" signals: <>, - <>, - <> - - Helper widgets: <>, <> - - Tool Path preview: <> - -HAL Widgets inherit methods, properties and signals from the -underlying Gtk widgets, so it is helpful to consult the -http://www.gtk.org/[GTK+] and http://www.pygtk.org/[PyGTK bindings] -documentation as well. - - -=== Widget and HAL pin naming - -Most HAL widgets have a single associated HAL pin with the same name -as the widget (glade: General→Name). - -Exceptions to this rule currently are. - -- 'HAL_Spinbutton' and 'HAL_ComboBox', which have two pins: a +-f+ (float) and a +-s+ (s32) pin -- 'HAL_ProgressBar', which has a +-value+ input pin, and a +-scale+ input pin. - -=== Setting pin and widget values - -As a general rule, if you need to set a HAL output widget's value from -Python code, do so by calling the underlying Gtk 'setter' (e.g. -+set_active()+, +set_value()+) - do not try to set the associated pin's -value by +halcomp[pinname] = value+ directly because the widget will not -take notice of the change!. - -It might be tempting to 'set HAL widget input pins' programmatically. -Note this defeats the purpose of an input pin in the first place - it -should be linked to, and react to signals generated by other HAL -components. While there is currently no write protection on writing to -input pins in HAL Python, this doesn't make sense. You might use setp -pinname value in the associated halfile for testing though. - -It is perfectly OK to set an output HAL pin's value with -+halcomp[pinname] = value+ provided this HAL pin is not associated with a -widget, that is, has been created by the -+hal_glib.GPin(halcomp.newpin(,,)+ method (see -GladeVCP Programming for an example). - -[[gladevcp::hal-pin-changed_signal]] -=== The hal-pin-changed signal - -Event-driven programming means that the UI tells your code when "something -happens" - through a callback, like when a button was pressed. The -output HAL widgets (those which display a HAL pin's value) like LED, -Bar, VBar, Meter etc, support the 'hal-pin-changed' signal which may -cause a callback into your Python code when - well, a HAL pin changes -its value. This means there's no more need for permanent polling of HAL -pin changes in your code, the widgets do that in the background and let -you know. - -Here is an example how to set a +hal-pin-changed+ signal for a HAL_LED -in the Glade UI editor: - -image::images/hal-pin-change-66.png[] -The example in +configs/gladevcp/examples/complex+ shows how -this is handled in Python. - - -[[gladevcp:HAL_Button]] -=== Button - -[[gladevcp:HAL_RadioButton]] -=== RadioButton - -[[gladevcp:HAL_CheckButton]] -=== CheckButton - -This group of widgets are derived from various Gtk buttons and consists -of HAL_Button, HAL_ToggleButton, HAL_RadioButton and CheckButton -widgets. All of them have a single output BIT pin named identical to -the widget. Buttons have no additional properties compared to their -base Gtk classes. - - - HAL_Button: instantaneous action, does not retain state. Important - signal: +pressed+ - - HAL_ToggleButton, HAL_CheckButton: retains on/off state. Important - signal: +toggled+ - - HAL_RadioButton: a one-of-many group. Important signal: +toggled+ (per - button). - - Important common methods: +set_active()+, +get_active()+ - - Important properties: +label+, +image+ - - -// .Buttons -Check button: -image:images/checkbutton.png[] -Radio buttons: -image:images/radiobutton.png[] -Toggle button: -image:images/button.png[] -. - -[TIP] -====================================== -Defining radio button groups in Glade: - -- decide on default active button - -- in the other button's 'General→Group' select the default active -button's name in the 'Choose a Radio Button in this project' dialog. - -See +configs/gladevcp/by-widget/radiobutton+ for a GladeVCP application -and UI file for working with radio buttons. -====================================== - - -[[gladevcp:HAL_HScale]] -=== HScale - -[[gladevcp:HAL_VScale]] -=== VScale - -HAL_HScale and HAL_VScale are derived from the GtkHScale and GtkVScale -respectively. They have one output FLOAT pin with name equal to widget -name. Scales have no additional properties. - -To make a scale useful in Glade, add an 'Adjustment' -(General→Adjustment→New or existing adjustment) and edit the -adjustment object. It defines the default/min/max/increment -values. Also, set adjustment 'Page size' and 'Page increment' to zero -to avoid warnings. - -Example HAL_HScale: -image:images/hscale.png[] -. - -[[gladevcp:HAL_SpinButton]] -=== SpinButton - -HAL SpinButton is derived from GtkSpinButton and holds two pins: - --f:: - out FLOAT pin --s:: - out S32 pin - -To be useful, Spinbuttons need an adjustment value like scales, -see above. - -Example SpinButton: -image:images/spinbutton.png[] -. - -[[gladevcp:HAL_Label]] -=== Label - -HAL_Label is a simple widget based on GtkLabel which represents a HAL -pin value in a user-defined format. - -label_pin_type:: - The pin's HAL type (0:S32, 1:float, 2:U32), see also the tooltip - on 'General→HAL pin type '(note this is different from PyVCP which has - three label widgets, one for each type). - -text_template:: - Determines the text displayed - a Python - format string to convert the pin value to text. Defaults to +%s+ (values - are converted by the str() function) but may contain any legit as an - argument to Pythons format() method. + - Example: +Distance: %.03f+ will display the text and the pin value with - 3 fractional digits padded with zeros for a FLOAT pin. - - -[[gladevcp:HAL_HBox]] -=== Container: HAL_Box - -[[gladevcp:HAL_Table]] -=== Container: HAL_Table - -Compared to their Gtk counterparts they have one input BIT pin which -controls if their child widgets are sensitive or not. If the pin is low -then child widgets are inactive which is the default. - -[TIP] -If you find some part of your GladeVCP application is 'grayed -out' (insensitive), see whether a container's pin is unset. - -[[gladevcp:HAL_LED]] -=== LED - -The hal_led simulates a real indicator LED. It has a single input BIT -pin which controls it's state: ON or OFF. LEDs have several properties -which control their look and feel: - -on_color:: - a String defining ON color of LED. May be any valid - gtk.gdk.Color name. Not working on Ubuntu 8.04. -off_color:: - String defining OFF color of LED. May be any valid - gtk.gdk.Color name or special value `dark`. `dark` means that OFF color - will be set to 0.4 value of ON color. Not working on Ubuntu 8.04. -pick_color_on, pick_color_off:: - Colors for ON and OFF states may be - represented as `#RRRRGGGGBBBB` strings. These are optional properties - which have precedence over `on_color` and `off_color`. -led_size:: - LED radius (for square - half of LED's side) -led_shape:: - LED Shape. Valid values are 0 for round, 1 for oval and 2 - for square shapes. -led_blink_rate:: - if set and LED is ON then it's blinking. Blink - period is equal to "led_blink_rate" specified in milliseconds. - -As an input widget, LED also supports the +hal-pin-changed signal+. If -you want to get a notification in your code when the LED's HAL pin was -changed, then connect this signal to a handler, for example -+on_led_pin_changed+ and provide the handler as follows: - -[source,python] ----------------------------------- -def on_led_pin_changed(self,hal_led,data=None): - print "on_led_pin_changed() - HAL pin value:",hal_led.hal_pin.get() ----------------------------------- - -This will be called at any edge of the signal and also during program -start up to report the current value. - -Example LEDs: -image:images/leds.png[] -. - -[[gladevcp:HAL_ProgressBar]] -=== ProgressBar - -[NOTE] -This widget might go away. Use the HAL_HBar and HAL_VBar widgets -instead. - -The HAL_ProgressBar is derived from gtk.ProgressBar and has two float -HAL input pins: - -:: - the current value to be displayed --scale:: - the maximum absolute value of input - -It has the following properties: - -scale:: - value scale. set maximum absolute value of input. Same as - setting the .scale pin. A float, range from - -2^24 to +2^24. -green_limit:: - green zone limit lower limit -yellow_limit:: - yellow zone limit lower limit -red_limit:: - red zone limit lower limit -text_template:: - Text template to display the current value of the - ++ pin. Python formatting may be used for dict - +{"value":value}+ - -Example HAL_ProgressBar: -image:images/progressbar2.png[] -. - -[[gladevcp:HAL_ComboBox]] -=== ComboBox - -HAL_ComboBox is derived from gtk.ComboBox. It enables choice of a -value from a dropdown list. - -It exports two HAL pins: - - -f:: - the current value, type FLOAT - -s:: - the current value, type S32 - -It has the following property which can be set in Glade: - -column:: - the column index, type S32, defaults to -1, range from -1..100 . - -In default mode this widgets sets the pins to the index of the chosen -list entry. So if your widget has three labels, it may only assume -values 0,1 and 2. - -In column mode (column > -1), the value reported is chosen from the -ListStore array as defined in Glade. So typically your widget -definition would have two columns in the ListStore , one with text -displayed in the dropdown, and an int or float value to use for that -choice. - -There's an example in -+configs/gladevcp/by-widget/combobox/combobox.{py,ui}+ which uses column -mode to pick a float value from the ListStore. - -If you're confused like me about how to edit ComboBox ListStores and -CellRenderer, see http://www.youtube.com/watch?v=Z5_F-rW2cL8. - - -[[gladevcp:HAL_HBar]] -=== HBar - - -[[gladevcp:HAL_VBar]] -=== VBar - -HAL Bar and VBar widgets for horizontal and vertical bars representing -float values. They have one input FLOAT hal pin. Both bars have the -following properties: - -invert:: - Swap min and max direction. An inverted HBar grows from right - to left, an inverted VBar from top to bottom. -min, max:: - Minimum and maximum value of desired range. It is not an - error condition if the current value is outside this range. -zero:: - Zero point of range. If it's inside of min/max range then the - bar will grow from that value and not from the left (or right) side of - the widget. Useful to represent values that may be both positive or - negative. -force_width, force_height:: - Forced width or height of widget. If not - set then size will be deduced from packing or from fixed widget size - and bar will fill whole area. -text_template:: - Like in Label sets text format for min/max/current - values. Can be used to turn off value display. -bg_color:: - Background (inactive) color of bar. -z0_color, z1_color, z2_color:: - Colors of different value zones. - Defaults are `green`, `yellow` and `red`. For description of zones see - `z*_border` properties. -z0_border, z1_border:: - Define up bounds of color zones. By default - only one zone is enabled. If you want more then one zone set - `z0_border` and `z1_border` to desired values so zone 0 will fill from - 0 to first border, zone 1 will fill from first to second border and - zone 2 -- from last border to 1. Borders are set as fractions, values - from 0 to 1. - -Horizontal bar: -image:images/hal_hbar.png[] -Vertical bar: -image:images/vscale.png[] -. - -[[gladevcp:HAL_Meter]] -=== Meter - -HAL Meter is a widget similar to PyVCP meter - it represents a float value and has -one input FLOAT hal pin. HAL Meter has the following properties: - -min, max:: - Minimum and maximum value of desired range. It is not an - error condition if the current value is outside this range. -force_size:: - Forced diameter of widget. If not set then size will be - deduced from packing or from fixed widget size and meter will fill all - available space with respect to aspect ratio. -text_template:: - Like in Label sets text format for current value. Can - be used to turn off value display. -label:: - Large label above center of meter. -sublabel:: - Small label below center of meter. -bg_color:: - Background color of meter. -z0_color, z1_color, z2_color:: - Colors of different value - zones. Defaults are `green`, `yellow` and `red`. For description of - zones see `z*_border` properties. -z0_border, z1_border:: - Define up bounds of color zones. By default only - one zone is enabled. If you want more then one zone set `z0_border` and - `z1_border` to desired values so zone 0 will fill from min to first - border, zone 1 will fill from first to second border and zone 2 -- from - last border to max. Borders are set as values in range min-max. - -Example HAL Meters: -image:images/hal_meter.png[] -. - -[[gladevcp:HAL_Gremlin]] -=== Gremlin tool path preview for .ngc files - -Gremlin is a plot preview widget similar to the Axis preview window. -It assumes a running LinuxCNC environment like Axis or Touchy. To connect to -it, inspects the INI_FILE_NAME environment variable. Gremlin displays -the current .ngc file - it does monitor for changes and reloads the ngc -file if the file name in Axis/Touchy changes. If you run it in a -GladeVCP application when LinuxCNC is not running, you might get a traceback -because the Gremlin widget can't find LinuxCNC status, like the current file -name. - -Gremlin does not export any HAL pins. It has the following properties: - -view :: - may be any of `x`, `y`, `z`, `p` (perspective) . Defaults to - `z` view. -enable_dro :: - boolean; whether to draw a DRO on the plot or not. - Defaults to `True`. - -Example: -image:images/gremlin.png[] - - -=== Animated function diagrams: HAL widgets in a bitmap - -For some applications it might be desirable to have background image - -like a functional diagram - and position widgets at appropriate places -in that diagram. A good combination is setting a bitmap background -image, like from a .png file, making the gladevcp window fixed-size, -and use the glade Fixed widget to position widgets on this image. - -The code for the below example can be found in +configs/gladevcp/animated-backdrop+: - -image:images/small-screenshot.png[] - -== Action Widgets reference - -GladeVcp includes a collection of "canned actions" called EMC Action -Widgets for the Glade user interface editor. Other than HAL widgets, -which interact with HAL pins, EMC Actions interact with LinuxCNC and the -G-code interpreter. - -EMC Action Widgets are derived from the Gtk.Action widget. The Action -widget in a nutshell: - - - it is an object available in Glade - - it has no visual appearance by itself - - it's purpose: associate a visible, sensitive UI component like menu, - toolbutton, button with a command. See these widget's 'General→Related - Action' property. - - the "canned action" will be executed when the associated UI component - is triggered (button press, menu click..) - - it provides an easy way to execute commands without resorting to - Python programming. - -The appearance of EMC Actions in Glade is roughly as follows: - -image::images/emc-actions.png[] - -Tooltip hovers provide a description. - - -=== EMC Action widgets - -EMC Action widgets are one-shot type widgets. They implement a single action and -are for use in simple buttons, menu entries or radio/check groups. - -=== EMC ToggleAction widgets - -These are bi-modal widgets. They implement two actions or use a second -(usually pressed) state to indicate that currently an action is -running. Toggle actions are aimed for use in ToggleButtons, -ToggleToolButtons or toggling menu items. A simplex example is the -ESTOP toggle button. - -Currently the following widgets are available: - - - The ESTOP toggle sends ESTOP or ESTOP_RESET commands to LinuxCNC depending - on it's state. - - The ON/OFF toggle sends STATE_ON and STATE_OFF commands. - - Pause/Resume sends AUTO_PAUSE or AUTO_RESUME commands. - -The following toggle actions have only one associated command and use -the 'pressed' state to indicate that the requested operation is -running: - - - The Run toggle sends an AUTO_RUN command and waits in the pressed - state until the interpreter is idle again. - - The Stop toggle is inactive until the interpreter enters the active - state (is running G-code) and then allows user to send AUTO_ABORT - command. - - The MDI toggle sends given MDI command and waits for its completion in - 'pressed' inactive state. - -=== The Action_MDI Toggle and Action_MDI widgets - -These widgets provide a means to execute arbitrary MDI commands. The -Action_MDI widget does not wait for command completion as the -Action_MDI Toggle does, which remains disabled until command complete. - -=== A simple example: Execute MDI command on button press - -+configs/gladevcp/mdi-command-example/whoareyou.ui+ is a Glade UI file which conveys the basics: - -Open it in Glade and study how it's done. Start Axis, and then start -this from a terminal window with `gladevcp whoareyou.ui`. See the -+hal_action_mdi1+ Action and it's +MDI command+ property - this just -executes +(MSG, "Hi, I'm an EMC_Action_MDI")+ so there should be a -message popup in Axis like so: - -image::images/whoareyou.png[] - -You'll notice that the button associated with the Action_MDI action is -grayed out if the machine is off, in E-Stop or the interpreter is running. -It will automatically become active when the machine is turned on and -out of E-Stop, and the program is idle. - -=== Parameter passing with Action_MDI and ToggleAction_MDI widgets - -Optionally, 'MDI command' strings may have parameters substituted -before they are passed to the interpreter. Parameters currently may be -names of HAL pins in the GladeVCP component. This is how it works: - - - assume you have a 'HAL SpinBox' named +speed+, and you want to pass it's - current value as a parameter in an MDI command. - - The HAL SpinBox will have a float-type HAL pin named speed-f (see - HalWidgets description). - - To substitute this value in the MDI command, insert the HAL pin name - enclosed like so: `${pin-name}` - - for the above HAL SpinBox, we could use `(MSG, "The speed is: - ${speed-f}")` just to show what's happening. - -The example UI file is +configs/gladevcp/mdi-command-example/speed.ui+. Here's what you get when running it: - - -image::images/speed.png[] - -=== An advanced example: Feeding parameters to an O-word subroutine - -It's perfectly OK to call an O-word subroutine in an MDI command, and -pass HAL pin values as actual parameters. An example UI file -is in +configs/gladevcp/mdi-command-example/owordsub.ui+. - -Place +configs/gladevcp/nc_files/oword.ngc+ so Axis can find it, and run `gladevcp owordsub.ui` from -a terminal window. This looks like so: - -image::images/oword.png[] - -=== Preparing for an MDI Action, and cleaning up afterwards - -The LinuxCNC G-Code interpreter has a single global set of variables, like -feed, spindle speed, relative/absolute mode and others. If you use G -code commands or O-word subs, some of these variables might get changed -by the command or subroutine - for example, a probing subroutine will -very likely set the feed value quite low. With no further precautions, -your previous feed setting will be overwritten by the probing -subroutine's value. - -To deal with this surprising and undesirable side effect of a given -O-word subroutine or G-code statement executed with an LinuxCNC -ToggleAction_MDI, you might associate pre-MDI and post-MDI handlers -with a given LinuxCNC ToggleAction_MDI. These handlers are optional and -provide a way to save any state before executing the MDI Action, and to -restore it to previous values afterwards. The signal names are +mdi-command-start+ -and +mdi-command-stop+; the handler names can be set in Glade like any -other handler. - -Here's an example how a feed value might be saved and restored by such -handlers (note that LinuxCNC command and status channels are available as -+self.emc+ and +self.stat+ through the EMC_ActionBase class: - -[source,python] ----------------------------------- - def on_mdi_command_start(self, action, userdata=None): - action.stat.poll() - self.start_feed = action.stat.settings[1] - - def on_mdi_command_stop(self, action, userdata=None): - action.emc.mdi('F%.1f' % (self.start_feed)) - while action.emc.wait_complete() == -1: - pass ----------------------------------- - -Only the Action_MDI Toggle widget supports these signals. - -[NOTE] -In a later release of LinuxCNC, the new M-codes M70-M72 are available which -make it saving state before a subroutine call, and restoring state on return much easier. - -=== Using the LinuxCNC Stat object to deal with status changes - -Many actions depend on LinuxCNC status - is it in manual, MDI or auto mode? -is a program running, paused or idle? You cannot start an MDI command -while a G-code program is running, so this needs to be taken care of. -Many LinuxCNC actions take care of this themselves, and related buttons and -menu entries are deactivated when the operation is currently -impossible. - -When using Python event handlers - which are at a lower level than -Actions - one needs to take care of dealing with status dependencies -oneself. For this purpose, there's the LinuxCNC Stat widget: to associate -LinuxCNC status changes with event handlers. - -LinuxCNC Stat has no visible component - you just add it to your UI with -Glade. Once added, you can associate handlers with its following -signals: - -* state-related: emitted when E-Stop condition occurs, is reset, machine is turned on, or is turned off - - +state-estop+ - - +state-estop-reset+ - - +state-on+, - - +state-off+ -* mode-related: emitted when LinuxCNC enters that particular mode - - +mode-manual+ - - +mode-mdi+ - - +mode-auto+ -* interpreter-related: emitted when the G-code interpreter changes into that mode - - +interp-run+ - - +interp-idle+ - - +interp-paused+ - - +interp-reading+ - - +interp-waiting+ - - - -[[gladevcp:GladeVCP_Programming]] -== GladeVCP Programming - -=== User Defined Actions - -Most widget sets, and their associated user interface editors, support -the concept of callbacks - functions in user-written code which are -executed when 'something happens' in the UI - events like mouse clicks, -characters typed, mouse movement, timer events, window hiding and -exposure and so forth. - -HAL output widgets typically map input-type events like a button press -to a value change of the associated HAL pin by means of such a - -predefined - callback. Within PyVCP, this is really the only type of event -handling supported - doing something more complex, like executing MDI -commands to call a G-code subroutine, is not supported. - -Within GladeVCP, HAL pin changes are just one type of the general -class of events (called signals) in GTK+. Most widgets may originate such -signals, and the Glade editor supports associating such a signal with a -Python method or function name. - -If you decide to use user-defined actions, your job is to write a -Python module whose class methods - or in the simple case, just -functions - can be referred to in Glade as event handlers. GladeVCP -provides a way to import your module(s) at startup and will -automatically link your event handlers with the widget signals as set -in the Glade UI description. - -=== An example: adding custom user callbacks in Python - -This is just a minimal example to convey the idea - details are laid -out in the rest of this section. - -GladeVCP can not only manipulate or display HAL pins, you can also -write regular event handlers in Python. This could be used, among -others, to execute MDI commands. Here's how you do it: - -Write a Python module like so and save as e.g. handlers.py: - -[source,python] ----------------------------------- -nhits = 0 -def on_button_press(gtkobj,data=None): - global nhits nhits += 1 gtkobj.set_label("hits: %d" % nhits) ----------------------------------- - -In Glade, define a button or HAL button, select the 'Signals' tab, and -in the GtkButton properties select the 'pressed' line. Enter -'on_button_press' there, and save the Glade file. - -Then add the option '-u handlers.py' to the gladevcp command line. If -your event handlers are spread over several files, just add multiple -'-u ' options. - -Now, pressing the button should change its label since it's set in the -callback function. - -What the +-u+ flag does: all Python functions in this file are -collected and setup as potential callback handlers for your Gtk widgets -- they can be referenced from Glade 'Signals' tabs. The callback -handlers are called with the particular object instance as parameter, -like the GtkButton instance above, so you can apply any GtkButton -method from there. - -Or do some more useful stuff, like calling an MDI command! - -=== HAL value change events - -HAL input widgets, like a LED, automatically associate their HAL pin state -(on/off) with the optical appearance of the widget (LED lit/dark). - -Beyond this builtin functionality, one may associate a change -callback with any HAL pin, including those of predefined HAL -widgets. This fits nicely with the event-driven structure of a typical -widget application: every activity, be it mouse click, key, timer -expired, or the change of a HAL pin's value, generates a callback and -is handled by the same orthogonal mechanism. - -For user-defined HAL pins not associated with a particular HAL widget, -the signal name is 'value-changed'. See the -<> section below for -details. - -HAL widgets come with a pre-defined signal called 'hal-pin-changed'. See the -<> for details. - - -=== Programming model - -The overall approach is as follows: - - - design your UI with Glade, and set signal handlers where you want - actions associated with a widget - - write a Python module which contains callable objects (see 'handler - models' below) - - pass your module's path name to gladevcp with the '-u ' option - - gladevcp imports the module, inspects it for signal handlers and - connects them to the widget tree - - the main event loop is run. - -==== The simple handler model - -For simple tasks it's sufficient to define functions named after the -Glade signal handlers. These will be called when the corresponding -event happens in the widget tree. Here's a trivial example - it assumes -that the 'pressed' signal of a Gtk Button or HAL Button is linked to a -callback called 'on_button_press': - -[source,python] ----------------------------------- -nhits = 0 -def on_button_press(gtkobj,data=None): - global nhits - nhits += 1 - gtkobj.set_label("hits: %d" % nhits) ----------------------------------- - -Add this function to a Python file and run as follows: - - gladevcp -u .py mygui.ui - -Note communication between handlers has to go through global -variables, which does not scale well and is positively un-pythonic. -This is why we came up with the class-based handler model. - -==== The class-based handler model - -The idea here is: handlers are linked to class methods. The underlying -class(es) are instantiated and inspected during GladeVCP startup and -linked to the widget tree as signal handlers. So the task now is to -write: - - - one or more several class definition(s) with one or several methods, - in one module or split over several modules, - - a function 'get_handlers' in each module which will return a list of - class instances to GladeVCP - their method names will be linked to - signal handlers - -Here is a minimum user-defined handler example module: - -[source,python] ----------------------------------- -class MyCallbacks : - def on_this_signal(self,obj,data=None): - print "this_signal happened, obj=",obj - def get_handlers(halcomp,builder,useropts): - return [MyCallbacks ()] ----------------------------------- - -Now, 'on_this_signal' will be available as signal handler to your -widget tree. - -==== The get_handlers protocol - -If during module inspection GladeVCP finds a function `get_handlers`, -it calls it as follows: - - get_handlers(halcomp,builder,useropts) - -the arguments are: - - - halcomp - refers to the HAL component under construction - - builder - widget tree - result of reading the UI definition (either - referring to a GtkBuilder or libglade-type object) - - useropts - a list of strings collected from the gladevcp - command line `-U ` option - -GladeVCP then inspects the list of class instances and retrieves their -method names. Qualifying method names are connected to the widget tree -as signal handlers. Only method names which do not begin with an '_' -(underscore) are considered. - -Note that regardless whether you're using the libglade or the new -GtkBuilder format for your Glade UI, widgets can always be referred to -as `builder.get_object()`. Also, the complete list of -widgets is available as `builder.get_objects()` regardless of UI -format. - -=== Initialization sequence - -It is important to know in which state of affairs your `get_handlers()` -function is called so you know what is safe to do there and what not. -First, modules are imported and initialized in command line order. -After successful import, `get_handlers()` is called in the following -state: - - - the widget tree is created, but not yet realized (no toplevel - `window.show()` has been executed yet) - - the halcomp HAL component is set up and all HAL widget's pins have - already been added to it - - it is safe to add more HAL pins because `halcomp.ready()` has not yet - been called at this point, so you may add your own pins, for instance - in the class `__init__()` method. - -Once all modules have been imported and method names extracted, the -following steps happen: - - - all qualifying method names will be connected to the widget tree with - `connect_signals()/signal_autoconnect()` (depending on the type of UI - imported - GtkBuilder vs the old libglade format). - - the HAL component is finalized with halcomp.ready() - - if a window ID was passed as argument, the widget tree is re-parented - to run in this window, and Glade's toplevel window1 is abandoned (see - FAQ) - - if a HAL command file was passed with `-H halfile`, it is executed - with halcmd - - the Gtk main loop is run. - -So when your handler class is initialized, all widgets are existent -but not yet realized (displayed on screen). And the HAL component isn't -ready as well, so its unsafe to access pins values in your `__init__()` -method. - -If you want to have a callback to execute at program start after it is -safe to access HAL pins, then a connect a handler to the realize signal -of the top level window1 (which might be its only real purpose). At -this point GladeVCP is done with all setup tasks, the halfile has been -run, and GladeVCP is about to enter the Gtk main loop. - -=== Multiple callbacks with the same name - -Within a class, method names must be unique. However, it is OK to have -multiple class instances passed to GladeVCP by get_handlers() with -identically named methods. When the corresponding signal occurs, these -methods will be called in definition order - module by module, and -within a module, in the order class instances are returned by -`get_handlers()`. - -=== The GladeVCP `-U ` flag - -Instead of extending GladeVCP for any conceivable option which could -potentially be useful for a handler class, you may use the -U - flag (repeatedly if you wish). This flag collects a list -of strings. This list is passed to the get_handlers() -function (useropts argument). Your code is free to interpret these -strings as you see fit. An possible usage would be to pass them to the -Python exec function in your `get_handlers()` as follows: - -[source,python] ----------------------------------- -debug = 0 -... -def get_handlers(halcomp,builder,useropts): - ... - global debug # assuming there's a global var - for cmd in useropts: - exec cmd in globals() ----------------------------------- - -This way you can pass arbitrary Python statements to your module -through the gladevcp -U option, for example: - - gladevcp -U debug=42 -U "print 'debug=%d' % debug" ... - -This should set debug to 2 and confirm that your module actually did it. - -=== Persistent variables in GladeVCP - -A annoying aspect of GladeVCP in its earlier form and pyvcp is the -fact that you may change values and HAL pins through text entry, -sliders, spin boxes, toggle buttons etc, but their settings are not -saved and restored at the next run of LinuxCNC - they start at the default -value as set in the panel or widget definition. - -GladeVCP has an easy-to-use mechanism to save and restore the state of -HAL widgets, and program variables (in fact any instance attribute of -type int, float, bool or string). - -This mechanism uses the popular '.ini' file format to save and reload -persistent attributes. - -==== Persistence, program versions and the signature check - -Imagine renaming, adding or deleting widgets in Glade: -an .ini file lying around from a previous program version, or an -entirely different user interface, would be not be able to restore the -state properly since variables and types might have changed. - -GladeVCP detects this situation by a signature which depends on all -object names and types which are saved and to be restored. In the case -of signature mismatch, a new .ini file with default settings is -generated. - -=== Using persistent variables - -If you want any of Gtk widget state, HAL widgets output pin's values -and/or class attributes of your handler class to be retained across -invocations, proceed as follows: - - - import the +gladevcp.persistence+ module - - decide which instance attributes, and their default values you want to - have retained, if any - - decide which widgets should have their state retained - - describe these decisions in your handler class' +__init__()+ method - through a nested dictionary as follows: - -[source,python] ----------------------------------- -def __init__(self, halcomp,builder,useropts): - self.halcomp = halcomp - self.builder = builder - self.useropts = useropts - self.defaults = { - # the following names will be saved/restored as method attributes - # the save/restore mechanism is strongly typed - the variables type will be derived from the type of the - # initialization value. Currently supported types are: int, float, bool, string - IniFile.vars : { 'nhits' : 0, 'a': 1.67, 'd': True ,'c' : "a string"}, - # to save/restore all widget's state which might remotely make sense, add this: - IniFile.widgets : widget_defaults(builder.get_objects()) - # a sensible alternative might be to retain only all HAL output widgets' state: - # IniFile.widgets: widget_defaults(select_widgets(self.builder.get_objects(), hal_only=True,output_only = True)), - } ----------------------------------- - -Then associate an .ini file with this descriptor: - -[source,python] ----------------------------------- -self.ini_filename = __name__ + '.ini' -self.ini = IniFile(self.ini_filename,self.defaults,self.builder) -self.ini.restore_state(self) ----------------------------------- - -After `restore_state()`, self will have attributes set if as running the -following: - -[source,python] ----------------------------------- -self.nhits = 0 -self.a = 1.67 -self.d = True -self.c = "a string" ----------------------------------- - -Note that types are saved and preserved on restore. This example -assumes that the ini file didn't exist or had the default values from -self.defaults. - -After this incantation, you can use the following IniFil methods: - -ini.save_state(obj):: - saves objs's attributes as per IniFil.vars - dictionary and the widget state as described in IniFile.widgets in - self.defaults -ini.create_default_ini():: - create a .ini file with default values -ini.restore_state(obj):: - restore HAL out pins and obj's attributes as - saved/initialized to default as above - -To save the widget and/or variable state on exit, connect a signal -handler to the +window1+ (toplevel) destroy event: - -[source,python] ----------------------------------- -def on_destroy(self,obj,data=None): - self.ini.save_state(self) ----------------------------------- - -Next time you start the GladeVCP application, the widgets should come -up in the state when the application was closed. - -=== Hand-editing .ini files - -You can do that, but note that the values in self.defaults override -your edits if there is a syntax or type error in your edit. The error -is detected, a console message will hint about that happened, and the -bad inifile will be renamed to have the .BAD suffix. Subsequent bad ini -files overwrite earlier .BAD files. - -[[gladevcp:Adding_HAL_pins]] -=== Adding HAL pins - -If you need HAL pins which are not associated with a specific HAL -widget, add them as follows: - -[source,python] ----------------------------------- -import hal_glib -... -# in your handler class __init__(): -self.example_trigger = hal_glib.GPin(halcomp.newpin('example-trigger', hal.HAL_BIT, hal.HAL_IN)) ----------------------------------- - -To get a callback when this pin's value changes, associate a -+value-change+ callback with this pin, add: - -[source,python] ----------------------------------- -self.example_trigger.connect('value-changed', self._on_example_trigger_change) ----------------------------------- - -and define a callback method (or function, in this case leave out the -+self+ parameter): - -[source,python] ----------------------------------- -# note '_' - this method will not be visible to the widget tree -def _on_example_trigger_change(self,pin,userdata=None): - print "pin value changed to:" % (pin.get()) ----------------------------------- - -=== Adding timers - -Since GladeVCP uses Gtk widgets which rely on the -http://www.pygtk.org/pygtk2reference/gobject-functions.html[GObject] -base class, the full glib functionally is available. Here is an -example for a timer callback: - -[source,python] ----------------------------------- -def _on_timer_tick(self,userdata=None): - ... - return True # to restart the timer; return False for on-shot -... -# demonstrate a slow background timer - granularity is one second -# for a faster timer (granularity 1 ms), use this: -# glib.timeout_add(100, self._on_timer_tick,userdata) # 10Hz -glib.timeout_add_seconds(1, self._on_timer_tick) ----------------------------------- - -=== Examples, and rolling your own GladeVCP application - -Visit +emc2/configs/gladevcp+ for running examples and starters for your own projects. - - -== FAQ - -[qanda] -I get an unexpected unmap event in my handler function right after startup. What's this?:: - This is a consequence of your Glade UI file - having the window1 Visible property set to True, together with - re-parenting the GladeVCP window into Axis or touchy. The GladeVCP - widget tree is created, including a top level window, and then - 'reparented into Axis', leaving that toplevel window laying around - orphaned. To avoid having this useless empty window hanging around, it - is unmapped (made invisible), which is the cause of the unmap signal - you get. Suggested fix: set window1.visible to False, and ignore an - initial unmap event. -My GladeVCP program starts, but no window appears where I expect it to be?:: - The window Axis allocates for GladeVCP will obtain the 'natural - size' of all its child widgets combined. It's the child widget's job to - request a size (width and/or height). However, not all widgets do - request a width greater than 0, for instance the Graph widget in its - current form. If there's such a widget in your Glade file and it's the - one which defines the layout you might want to set its width - explicitly. Note that setting the window1 width and height properties - in Glade does not make sense because this window will be orphaned - during re-parenting and hence its geometry will have no impact on - layout (see above). The general rule is: if you manually run a UI file - with 'gladevcp ' and its window has reasonable geometry, it - should come up in Axis properly as well. - -I want a blinking LED, so I ticked the checkbutton to let it blink with 100msec interval. -It wont blink, and I get a startup warning: Warning: value "0" of type `gint' is -invalid or out of range for property `led-blink-rate' of type `gint'?:: - This seems to be a glade bug. Just type over the blink rate field, and save again - this works for me. - -My gladevcp panel in Axis doesnt save state when I close Axis, although I defined -an on_destroy handler linked to the window destroy signal:: - Very likely this handler is linked to window1, - which due to reparenting isnt usable for this purpose. Please link - the on_destroy handler to the destroy signal of an interior - window. For instance, I have a notebook inside window1, and linked - on_destroy to the notebooks destroy signal, and that works fine. It - doesnt work for window1. - -// FIXME this is out of date -== Troubleshooting - - - make sure your have the development version of LinuxCNC installed. You - don't need the axisrc file any more, this was mentioned in the old - GladeVcp wiki page. - - run GladeVCP or Axis from a terminal window. If you get Python errors, - check whether there's still a +/usr/lib/python2.6/dist-packages/hal.so+ - file lying around besides the newer - +/usr/lib/python2.6/dist-packages/_hal.so+ (note underscore); if yes, - remove the +hal.so+ file. It has been superseded by hal.py in the same - directory and confuses the import mechanism. - - if you're using run-in-place, do a 'make clean' to remove any - accidentally left over hal.so file, then 'make'. - - if you're using 'HAL_table' or 'HAL_HBox' widgets, be aware they have - an HAL pin associated with it which is off by default. This pin - controls whether these container's children are active or not. - -== Implementation note: Key handling in Axis - -We believe key handling works OK, but since it is new code, we're -telling about it you so you can watch out for problems; please let us -know of errors or odd behavior. This is the story: - -Axis uses the TkInter widget set. GladeVCP applications use Gtk -widgets and run in a separate process context. They are hooked into -Axis with the Xembed protocol. This allows a child application like -GladeVCP to properly fit in a parent's window, and - in theory - have -integrated event handling. - -However, this assumes that both parent and child application properly -support the Xembed protocol, which Gtk does, but TkInter doesn't. A -consequence of this is that certain keys would not be forwarded from a -GladeVCP panel to Axis properly under all circumstances. One of these -situations was the case when an Entry, or SpinButton widget had focus: -in this case, for instance an Escape key would not have been forwarded -to Axis and cause an abort as it should, with potentially disastrous -consequences. - -Therefore, key events in GladeVCP are explicitly handled, and -selectively forwarded to Axis, to assure that such situations cannot -arise. For details, see the `keyboard_forward()` function in -`lib/python/gladevcp/xembed.py`. diff --git a/docs/src/gui/gladevcp_fr.txt b/docs/src/gui/gladevcp_fr.txt deleted file mode 100644 index 4e8e92fe732..00000000000 --- a/docs/src/gui/gladevcp_fr.txt +++ /dev/null @@ -1,1582 +0,0 @@ -:lang: fr -:toc: - -= Création d'interfaces graphiques avec GladeVCP - -[[cha:GladeVCP]] (((GladeVCP))) - - -== Qu'est-ce que GladeVCP? - -GladeVCP est un composant de LinuxCNC qui donne la possibilité d'ajouter -de nouvelles interfaces graphiques utilisateur à LinuxCNC telles qu'Axis ou -Touchy. À la différence de PyVCP, GladeVCP n'est pas limité à l'affichage et -aux réglages des pins de HAL, toutes les actions peuvent être exécutées en code -Python. En fait, une interface utilisateur LinuxCNC complète peut être -construite avec GladeVCP et Python. - -GladeVCP utilise l'environnement graphique et WYSIWYG -http://glade.gnome.org/[Glade] qui simplifie l'édition et la création -visuelle de panneaux esthétiquement très réussis. Il s'appuie sur les -liaisons entre http://www.pygtk.org/[PyGTK] et le riche jeu de widgets -http://www.gtk.org/[GTK+], finalement, tous peuvent être utilisés dans -une application GladeVCP et pas seulement les widgets spécialisés pour -interagir avec HAL et LinuxCNC présentés ici. - -=== PyVCP par rapport à GladeVCP - -Tous les deux supportent la création de panneaux avec des _widgets de HAL_, des -éléments utilisateur visuels tels que boutons, Leds, curseurs etc. dont les -valeurs sont liées à des pins de HAL qui à leur tour, sont des interfaces pour -le reste de LinuxCNC. - -PyVCP:: -* Jeu de widgets: utilise les widgets TkInter. -* Cycle de création d'interfaces utilisateur: -** Éditer les fichiers XML -** Lancer -** Évaluer le look. -* Pas de support pour intégrer une gestion des événements définie par -l'utilisateur. -* Pas d'interaction avec LinuxCNC au-delà des interactions avec les -pins d'E/S de HAL supportées. - -GladeVCP:: -* Jeu de widgets: Liaison avec le jeu de widgets de http://www.gtk.org/[GTK+]. -* Création d'interface utilisateur: utilise l'interface graphique -http://glade.gnome.org/[Glade] qui est un éditeur WYSIWYG. -* Tout changement sur une pin de HAL peut diriger un appel vers une -gestion d'événements définie en Python par l'utilisateur. -* Tous les signaux GTK (touches/appui sur un bouton, fenêtre, E/S, timer, -événements réseau) peuvent être associés avec la gestion d'événements -définie en Python par l'utilisateur. -* Interaction directe avec LinuxCNC: exécution de commandes, telle -qu'initialiser une commande MDI pour appeler un sous-programme G-code. -* Plusieurs panneaux GladeVCP indépendants peuvent tourner dans des -onglets différents. -* Séparation entre l'apparence de l'interface et les fonctionnalités: -change d'apparence sans passer par aucun code. - -== Description du fonctionnement, avec un exemple de panneau - -Une fenêtre de panneau GladeVCP peut démarrer avec trois différentes -configuration: - -* Toujours visible, intégré dans Axis, du côté droit, exactement comme -un panneau PyVCP. -* Dans un onglet dans Axis ou Touchy; dans Axis un troisième onglet sera créé - à côté des deux d'origine, ils doivent être choisis explicitement. -* Comme une fenêtre indépendante, qui peut être iconisée ou agrandie, - indépendamment de la fenêtre principale. - -Lancer un panneau GladeVCP simple, intégré dans Axis comme PyVCP, taper les -commandes suivantes: - ----- -$ cd configs/sim/gladevcp - -$ linuxcnc gladevcp_panel.ini ----- - -image::images/example-panel-small.png[] - -Lancer le même panneau, mais dans un onglet d'Axis avec: - ----- -$ cd configs/sim/gladevcp - -$ linuxcnc gladevcp_tab.ini ----- - -image::images/example-tabbed-small.png[] - -Pour lancer ce même panneau comme une fenêtre autonome à côté d'Axis, démarrer -Axis en arrière plan puis démarrer gladevcp de la manière suivante: - ----- -$ cd configs/sim/gladevcp - -$ linuxcnc axis.ini & - -$ gladevcp -c gladevcp -u ../gladevcp/hitcounter.py -H -../gladevcp/manual-example.hal ../gladevcp/manual-example.ui ----- - -image::images/example-float-small.png[] - -Pour lancer ce panneau dans _Touchy_: - ----- -$ cd configs/sim - -$ linuxcnc gladevcp_touchy.ini ----- - -image::images/touchy-tab-33.png[] - -:showcomments: -// Ces deux derniers exemples ne fonctionnent pas pour le moment. - -Fonctionnellement, ces configurations sont identiques. La seule différence -porte sur l'état et la visibilité de l'écran. Puisqu'il est possible de lancer -plusieurs composants GladeVCP en parallèle (avec des noms de modules -de HAL différents), le mélange des configurations est également possible. -Par exemple, un panneau sur le côté droit et un ou plusieurs en onglets pour des -parties d'interface moins souvent utilisées. - -=== Description de l'exemple de panneau - -Pendant qu'Axis est en marche, explorons _Afficher configuration de HAL_ dans -lequel nous trouvons le composant de HAL _gladevcp_ et dont nous pouvons -observer la valeur des pins pendant l'interaction avec les widgets du panneau. -La configuration de HAL peut être trouvée dans _configs/gladevcp/manual-example.hal_. - -Usage des deux cadres en partie basse. Le panneau est configuré pour que, quand -l'Arrêt d'Urgence est désactivé, le cadre _Settings_ s'active et mette la -machine en marche, ce qui active à son tour le cadre _Commandes_ du dessous. -Les widgets de HAL du cadre _Settings_ sont liés aux Leds et labels du cadre -_Status_ ainsi qu'au numéros de l'outil courant et à celui de l'outil préparé. -Les utiliser pour bien voir leur effet. L'exécution des commandes -_T_ et _M6_ dans la fenêtre du MDI aura pour effet de changer -les numéros de l'outil courant et de l'outil préparé dans les champs respectifs. - -Les boutons du cadre _Commandes_ sont des _widgets d'action MDI_. Les presser -exécutera une commande MDI dans l'interpréteur. Le troisième bouton -_Execute Oword subroutine_ est un exemple avancé, il prends plusieurs pins de HAL -du cadre _Settings_ et leur passe comme paramètres, le _sous-programme Oword_. -Les paramètres actuels reçus par la routine sont affichés par une commande -_(DEBUG, )_. Voir _configs/gladevcp/nc_files/oword.ngc_ pour le corps du -sous-programme. - -Pour voir comment le panneau est intégré dans Axis, voir la déclaration de -_[DISPLAY]GLADEVCP_ dans gladevcp_panel.ui, ainsi que les déclarations de -_[DISPLAY]EMBED_ et de _[HAL]POSTGUI_HALFILE_ dans _gladevcp_tab.ini_, -respectivement. - -=== Description de l'éditeur de Glade - -L'interface utilisateur est créée avec l'éditeur graphique de Glade. Pour -l'essayer il faut avoir le pré-requis nécessaire, -<>. -Pour éditer l'interface utilisateur, lancer la commande: - ----- -$ glade configs/gladevcp/manual-example.ui ----- - -La zone centrale de la fenêtre montre l'apparence de l'interface en création. -Tous les objets de l'interface et les objets supportés se trouvent dans la partie -haute à droite de la fenêtre, où il est possible de choisir un widget spécifique -(ou en cliquant sur lui au centre de la fenêtre). Les propriétés du widget choisi -sont affichées et peuvent être modifiées, dans le bas à droite de la fenêtre. - -Pour voir comment les commandes MDI sont passées depuis les widgets d'action MDI, -explorer la liste des widgets sous _Actions_ en haut à droite de la fenêtre, -et dans le bas à droite de la fenêtre, sous l'onglet _Général_, les propriétés -des _commandes MDI_. - -=== Explorer la fonction de rappel de Python -Voici comment une fonction de rappel Python est intégrée dans l'exemple: - - - Dans glade, regarder le label du widget +hits+ (un widget GTK+). - - Dans le widget +button1+, regarder dans l'onglet _Signaux_ et trouver le - signal _pressed_ associé avec le gestionnaire _on_button_press_. - - Dans ../gladevcp/hitcounter.py, regarder la méthode _on_button_press_ - et comment elle place la propriété du label dans l'objet _hits_. - -C'était juste pour toucher le concept du doigt. Le mécanisme de fonction de rappel -sera détaillé plus en détails dans la section <>. - -== Créer et intégrer une interface utilisateur Glade - -[[gladevcp:Pre-requis]] -=== Pré-requis: Installation de Glade - -Pour visualiser ou modifier les fichiers d'une interface Glade, Glade doit -être installé. Ce n'est pas nécessaire pour seulement essayer un panneau GladeVCP. -Si la commande _glade_ est manquante, l'installer de la manière suivante: - ----- -$ sudo apt-get install glade ----- - -Vérifier ensuite la version installée, qui doit être égale ou supérieure à 3.6.7: - ----- -$ glade --version ----- - -*+glade3 3.6.7+* - -=== Lancer Glade pour créer une nouvelle interface utilisateur -Cette section souligne juste les étapes initiales spécifiques à LinuxCNC. -Pour plus d'informations et un tutoriel sur Glade, voir http://glade.gnome.org. -Certains trucs & astuces sur Glade, peuvent aussi être trouvés -sur http://www.youtube.com[youtube]. - -Soit modifier une interface existante en lançant +glade .ui+ ou, -démarrer une nouvelle en lançant juste la commande +glade+ depuis un terminal. - -* Si LinuxCNC n'a pas été installé depuis un paquetage, l'environnement -LinuxCNC du shell doit être configuré avec -_. /scripts/rip-environment_, autrement Glade ne trouverait pas -les widgets spécifiques à LinuxCNC. -* Quand l'éditeur demande pour enregistrer les préférences, accepter ce qui est -proposé par défaut et presser _Close_. -* Depuis les _Niveaux supérieurs_ (cadre de gauche), choisir _Fenêtre_ (première icône) -en haut des Niveaux supérieurs, par défaut cette fenêtre sera nommée _window1_. -Ne pas changer ce nom, GladeVCP lui est relié. -* Dans le bas des onglets de gauche, dérouler _HAL Python_ et _LinuxCNC Actions_. -* Ajouter au nouveau cadre, un conteneur comme une boîte HAL_Box ou une -HAL_Table depuis _HAL Python_. -* Pointer et placer dans un conteneur d'autres éléments, comme une LED, un bouton, etc. - -Le résultat pourrait ressembler à cela: - -image::images/glade-manual-small.png[] - -Glade a tendance à écrire beaucoup de messages dans la fenêtre du terminal, la -plupart peuvent être ignorés. Sélectionner _Fichier → Enregistrer sous_, donner lui -un nom comme _myui.ui_ et bien vérifier qu'il sera enregistré comme un fichier -_GtkBuilder_ (bouton radio en bas à gauche du dialogue d'enregistrement). -GladeVCP peut aussi traiter correctement l'ancien format _libglade_ mais il n'y -a aucune raison de l'utiliser. Par convention, l'extension des fichier GtkBuilder -est _.ui_. - -=== Tester un panneau -Vous êtes maintenant prêt à faire un essai (avec LinuxCNC, par exemple Axis en marche) -faites: - ----- -gladevcp myui.ui ----- - -GladeVCP crée le composant de HAL portant le nom qui a été donné au fichier, par -exemple, le très original _myui.ui_ dans notre cas, à moins qu'il n'ait été -surchargé pat l'option +-c +. Si Axis est en marche, essayer -de trouver le composant dans _Afficher configuration de HAL_ et inspecter ses pins. - -Vous vous demandez peut être pourquoi les widgets conteneurs comme _HAL_Hbox_ ou -_HAL_Table_ apparaissent grisés (inactifs). Les conteneurs HAL ont une pin de HAL -associée qui est désactivée par défaut, c'est ce qui cause ce rendu grisé des -widgets conteneurs inactifs. Un cas d'utilisation courante pourrait être pour -associer les pins de HAL du conteneur +halui.machine.is-on+ ou un des signaux -+halui.mode.+, pour s'assurer que certains widgets n'apparaissent actifs que dans -un certain état. - -Pour activer un conteneur, exécuter la commande HAL +setp gladevcp. 1+. - -=== Préparer le fichier de commande HAL -La voie suggérée pour lier les pins de HAL dans un panneau GladeVCP consiste à -les collecter dans un fichier séparé portant l'extension +.hal+. Ce fichier est -passé via l'option +POSTGUI_HALFILE=+, dans la section +[HAL]+ du fichier de -configuration. - -ATTENTION: Ne pas ajouter le fichier de commandes HAL de GladeVCP à la section -ini d'Axis +[HAL]HALFILE=+, ça n'aurait pas l'effet souhaité. Voir les sections -suivantes. - -=== Intégration dans Axis, comme pour PyVCP - -Pour placer le panneau GladeVCP dans la partie droite d'Axis, ajouter les lignes -suivantes dans le fichier ini: - -[source,{ini}] ----- -[DISPLAY] -# ajouter le panneau GladeVCP à l'emplacement de PyVCP: -GLADEVCP= -u ../gladevcp/hitcounter.py ../gladevcp/manual-example.ui - -[HAL] -# Les commandes HAL pour les composants GladeVCP dans un onglet, doivent être -exécutées via POSTGUI_HALFILE -POSTGUI_HALFILE = ../gladevcp/manual-example.hal - -[RS274NGC] -# les sous-programmes Oword spécifiques à gladevcp se placent ici -SUBROUTINE_PATH = ../gladevcp/nc_files/ ----- - -Le nom de composant HAL d'une application GladeVCP lancé avec l'option GLADEVCP -est toujours: +gladevcp+. -La ligne de commande actuellement lancée par Axis dans la configuration ci-dessous -est la suivante: ----- -halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID} ----- - -Ce qui veux dire que n'importe quelle option gladevcp, peut être ajoutée ici, tant -qu'elle n'entre pas en collision avec les options des lignes de commande suivantes. - -[NOTE] -L'option +[RS274NGC]SUBROUTINE_PATH=+ est fixée seulement pour que l'exemple de -panneau puisse trouver le sous-programme Oword pour le widget de commande MDI. Il -n'est peut être pas nécessaire dans votre configuration. - -=== Intégration dans un nouvel onglet d'Axis, à la suite des autres - -Pour cela, éditer le fichier .ini et ajouter dans les sections DISPLAY et HAL, -les lignes suivantes: -[source,{ini}] ----- -[DISPLAY] -# ajoute le panneau GladeVCP dans un nouvel onglet: -EMBED_TAB_NAME=GladeVCP demo -EMBED_TAB_COMMAND=halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID} -u -../gladevcp/hitcounter.py ../gladevcp/manual-example.ui - -[HAL] -# commandes HAL pour le composant GladeVCP dans un onglet doit être exécuté via -POSTGUI_HALFILE -POSTGUI_HALFILE = ../gladevcp/manual-example.hal - -[RS274NGC] -# les sous-programmes Oword spécifiques à gladevcp se placent ici -SUBROUTINE_PATH = ../gladevcp/nc_files/ ----- - -Noter le _halcmd loadusr_ pour charger la commande d'onglet, elle assure que -_POSTGUI_HALFILE_ ne sera lancé que seulement après que le composant de HAL ne soit -prêt. Dans de rares cas, une commande pourrait être lancée ici, pour utiliser -un onglet sans être associée à un composant de HAL. Une telle commande pourrait -être lancée sans _halcmd loadusr_, ce qui indiquerait à Axis qu'il ne doit plus -attendre un composant de HAL, puisqu'il n'existe pas. - -Noter que quand le nom du composant est changé dans l'exemple suivant, les noms -utilisés dans +-Wn + et +-c + doivent être identiques. - -Essayer en lançant Axis, il doit avoir un nouvel onglet appelé _GladeVCP demo_ -à droite de l'onglet de la visu. Sélectionner cet onglet, le panneau de l'exemple -devrait être visible, bien intégré à Axis. - -[NOTE] -Bien vérifier que le fichier de l'interface est la dernière option passée à -GladeVCP dans les deux déclarations +GLADEVCP=+ et +EMBED_TAB_COMMAND=+. - -=== Intégration dans Touchy -Pour ajouter un onglet GladeVCP à _Touchy_, éditer le fichier .ini comme cela: - -[source,{ini}] ----- -[DISPLAY] -# ajoute un panneau GladeVCP dans un onglet -EMBED_TAB_NAME=GladeVCP demo -EMBED_TAB_COMMAND=gladevcp -c gladevcp -x {XID} -u ../gladevcp/hitcounter.py -H -../gladevcp/gladevcp-touchy.hal ../gladevcp/manual-example.ui - -[RS274NGC] -# les sous-programmes Oword spécifiques à gladevcp se placent ici -SUBROUTINE_PATH = ../gladevcp/nc_files/ ----- - -Noter les différences suivantes avec la configuration de l'onglet d'Axis: - - - Le fichier de commandes HAL est légèrement modifié puisque _Touchy_ n'utilise - pas le composant _halui_, ses signaux ne sont donc pas disponibles et certains - raccourcis ont été pris. - - - Il n'y a pas d'option _POSTGUI_HALFILE=_, mais il est correct, de passer -le fichier de commandes HAL, + - par la ligne _EMBED_TAB_COMMAND=_. - - - L'appel _halcmd loaduser -Wn ..._ n'est pas nécessaire. - -== Options de GladeVCP en ligne de commande - -Voir également, _man gladevcp_. Ce sont les options pour cette ligne de -commande: - -Usage: gladevcp [options] myfile.ui - -Options: - --h, --help:: - Affiche ce message d'aide et sort. - --c NAME:: - Fixe le nom du composant à NAME. Par défaut, le nom de base des fichiers UI - --d:: - Active la sortie débogage - --g GEOMETRY:: - Fixe la géométrie à WIDTHxHEIGHT+XOFFSET+YOFFSET. Les valeurs sont en pixels, + - XOFFSET/YOFFSET est référencé à partir du coin haut, à gauche de l'écran. + - Utilise -g WIDTHxHEIGHT pour fixer une taille ou -g +XOFFSET+YOFFSET pour fixer une position - --H FILE:: - exécute les déclarations de HAL depuis FILE, avec halcmd après que le composant - soit chargé et prêt - --m MAXIMUM:: - force la fenêtre du panneau à se maximiser. Toutefois avec l'option -g geometry - le panneau est déplaçable d'un moniteur à un autre en le forçant à utiliser - toute l'écran - --t THEME:: - fixe le thème gtk. Par défaut, le thème système. Différents panneaux peuvent - avoir différents thèmes. - Un exemple de thème peut être trouvé sur le - http://wiki.linuxcnc.org/cgi-bin/wiki.pl?GTK_Themes[Wiki de LinuxCNC]. - --x XID:: - Redonne un parent GladeVCP dans une fenêtre existante XID au lieu d'en - créer une nouvelle au niveau supérieur - --u FILE:: - Utilise les FILE comme modules définis par l'utilisateur avec le gestionnaire - --U USEROPT:: - passe les modules python USEROPT - -== Références des Widgets HAL - -GladeVcp inclus une collection de widgets Gtk qui ont des pins de HAL attachées, -appelés widgets HAL, il sont destinés à contrôler, à afficher et à avoir d'autres -interactions avec la couche HAL de LinuxCNC. Il sont destinés à être utilisés avec les -interfaces créées par l'éditeur de Glade. Avec une installation correcte, les -widgets HAL devraient être visibles, dans l'éditeur Glade, dans le groupe des -Widgets _HAL Python_. Beaucoup de champs spécifiques à HAL dans l'onglet _Général_ -affichent une infobulle au survol de la souris. - -Il y a deux variantes de signaux de HAL, bits et nombres. Les signaux -bits sont les on/off. Les nombres peuvent être des "float", des "s32" ou -des "u32". Pour plus d'informations sur les types de données de HAL, -voir le manuel de HAL. Les widgets GladeVcp peuvent soit, -afficher la valeur d'un signal avec un widget d'indication, soit, modifier la -valeur d'un signal avec un widget de contrôle. Ainsi, il existe quatre classes -de widgets gladvcp qui peuvent être connectés à un signal de HAL. Une autre -classe de widgets d'aide permettent d'organiser et d'étiqueter les panneaux. - - - Widgets d'indications "bit" signals: <> - - Widgets de contrôle "bit" signals: <>, - <>, - <> - - Widgets d'indications "nombre" signals: <>, - <>, - <>, <>, - <> - - Widgets de contrôle "nombre" signals: <>, - <>, - <> - - widgets d'aide: <>, <> - - Tracé du parcours d'outil: <> - -Les widgets HAL héritent des méthodes, propriétés et signaux des widgets Gtk -sous-jacents, il est donc utile de consulter le site du http://www.gtk.org/[GTK+] -ainsi que la documentation pour les liaisons avec http://www.pygtk.org/[PyGTK]. - -=== Nommage des Widgets HAL et de leurs pins - -La plupart des widgets HAL on une simple pin de HAL associée et portant le même -nom que le widget (glade: Général→Nom). - -Les exceptions à cette règle sont actuellement: - -- _HAL_Spinbutton_ et _HAL_ComboBox_, qui ont deux pins: une pin + - +-f+ (float) et une pin +-s+ (s32) -- _HAL_ProgressBar_, qui a une pin d'entrée +-value+, et une pin -d'entrée +-scale+. - -=== Donner des valeurs aux Widgets HAL et à leurs pins - -En règle générale, si une valeur doit être attribuée à la sortie d'un widget HAL -depuis un code Python, le faire en appelant le _setter_ Gtk sous-jacent (par -exemple +set_active()+, +set_value()+), ne pas essayer de donner directement la -valeur à la pin associée par un +halcomp[nompin] = value+, parce-que le widget -ne verra jamais le changement!. - -Il pourrait être tentant de _fixer une pin d'entrée de widget HAL_ par programme. -Noter que cela va à l'encontre du but premier d'une pin d'entrée. Elle devrait -être attachée à un autre composant de HAL et réagir au signal qu'il génère. Bien -qu'aucune protection, empêchant d'écrire sur les pins d'entrée HAL Python, ne soit -présente actuellement, cela n'aurait aucun sens. Il faut utiliser +setp nompin valeur+ -dans un fichier Hal associé, pour les essais. - -Il est par contre, parfaitement autorisé de mettre une valeur sur une pin de -sortie de Hal avec +halcomp[nompin] = valeur+ à condition que cette pin ne soit -pas déjà associée avec un autre widget, ce qui aurait pu être créé par la méthode + -+hal_glib.GPin(halcomp.newpin(,,)+. -Voir la <> pour -d'autres exemples. - -[[gladevcp::hal-pin-changed_signal]] -=== Le signal _hal-pin-changed_ - -La programmation événementielle signifie que l'interface graphique indique au -code quand "quelque chose se produit", grâce à une fonction de rappel, comme quand un -bouton est pressé, la sortie du widget HAL (ceux qui affichent la valeur des pins -de HAL) comme une LED, une barre, une VBar, un indicateur à aiguille etc, -supportent le signal _hal-pin-changed_ qui peut provoquer une fonction de rappel -dans le code Python quand une pin de HAL change de valeur. Cela veut dire qu'il n'est -plus nécessaire d'interroger en permanence les pins de HAL dans le code pour -connaitre les changements, les widgets font ça en arrière plan et le font savoir. - -Voici un exemple montrant comment régler un signal +hal-pin-changed+ pour -une Hal Led, dans l'éditeur de Glade: - -image::images/hal-pin-change-66.png[] -L'exemple dans +configs/gladevcp/examples/complex+ montre comment c'est géré -en Python. - -[[gladevcp:HAL_Button]] -=== Les boutons (HAL Button) - -Ce groupe de widgets est dérivé de divers boutons Gtk, ce sont les widgets -HAL_Button, HAL_ToggleButton, HAL_RadioButton et CheckButton. Tous ont une seule -pin de sortie BIT portant un nom identique au widget. Les boutons n'ont pas d'autres -propriétés additionnelles, contrairement à leurs classes de base Gtk. - - - HAL_Button: Action instantanée, ne retient pas l'état. - Signal important: +pressed+. - - HAL_ToggleButton, HAL_CheckButton: Retiennent l'état on/off. - Signal important: +toggled+. - - HAL_RadioButton: Un parmi un groupe. Signal important: +toggled+ (par bouton). - - Importantes méthodes communes: +set_active()+, +get_active()+ - - Importantes propriétés: +label+, +image+ - - -// .Boutons - -Case à cocher: -image:images/checkbutton.png[] - -Boutons radio: -image:images/radiobutton.png[] - -Bouton à bascule: -image:images/button.png[] - - -[TIP] -==== -Définir les groupes de boutons radio dans Glade: - -- Décider du bouton actif par défaut - -- Dans les boutons radio, _Général→Groupe_ sélectionner le nom du bouton actif - par défaut dans le dialogue _Choisir un Bouton radio pour ce projet_. - -Voir +configs/gladevcp/by-widget/radiobutton+ pour une application GladeVCP avec -un fichier d'interface utilisateur, pour travailler sur les boutons radio. -==== - -[[gladevcp:HAL_VScale]] - -[[gladevcp:HAL_HScale]] -=== Les échelles (Scales) - -HAL_HScale et HAL_VScale sont respectivement dérivées de GtkHScale et GtkVScale. -Elles ont une pin de sortie FLOAT portant le même nom que le widget. Les échelles -n'ont pas de propriété additionnelle. - -Pour créer une échelle fonctionnelle dans Glade, ajouter un _Ajustement_ -(Général→Ajustement→Nouveau ou existant) et éditer l'objet ajustement. Il défini -les valeurs défaut/min/max/incrément. Fixer la _Sensibilité de l'incrément_ de -l'ajustement sur automatique pour éviter les warnings. - -Exemple d'échelle (HAL_hscale): -image:images/hscale.png[] - - -[[gladevcp:HAL_SpinButton]] -=== La boîte d'incrément (SpinButton) - -La boîte d'incrément de HAL est dérivée de GtkSpinButton, elle a deux pins de sortie: - --f:: - out FLOAT pin --s:: - out S32 pin - -Pour être fonctionnelle, Spinbutton doit avoir une valeur d'ajustement comme -l'échelle, vue précédemment. - -Exemple de boîte d'incrément: -image:images/spinbutton.png[] - - -[[gladevcp:HAL_Label]] -=== Les labels - -Le Label HAL est un simple widget basé sur GtkLabel qui représente la valeur -d'une pin de HAL dans un format défini par l'utilisateur. - -HAL pin type:: - Les pins de HAL sont des types (0:S32, 1:float ou 2:U32), voir aussi l'infobulle - d'info sur _Général → HAL pin type_, (noter que c'est différent de PyVCP qui - lui, a trois widgets label, un pour chaque type). - -text template:: - Détermine le texte à afficher, une chaine au format Python pour convertir - la valeur de la pin en texte. Par défauts, à +%s+ (les valeurs sont - converties par la fonction str()), mais peut contenir n'importe quel argument - légal pour la méthode format() de Python. - Exemple: +Distance: %.03f+ va afficher le texte et la valeur de la pin avec - 3 digits fractionnaires remplis avec des zéros pour une pin FLOAT. - - -[[gladevcp:HAL_Table]] - -[[gladevcp:HAL_HBox]] -=== Les conteneurs: HAL_HBox et HAL_Table - -Comparés à leurs contreparties Gtk ils ont une pin d'entrée BIT qui contrôle si -les enfants des widgets sont sensitifs ou non. Si la pin est basse, alors -les widgets enfants sont inactifs, ce qui est le comportement par défaut. - -[TIP] -Si vous trouvez que certaines parties de votre application GladeVCP sont _grisées_ -(insensible), vérifiez que les pins d'un conteneur ne soient pas inutilisées. - -[[gladevcp:HAL_LED]] -=== Les Leds - -La Led hal simule un vrai indicateur à Led. Elle a une seule pin d'entrée BIT -qui contrôle son état: ON ou OFF. Les Leds ont quelques propriétés pour -contrôler leur aspect: - -on_color:: - Une chaine définissant la couleur ON de la Led. Peut être tout nom valide de - gtk.gdk.Color. Ne fonctionne pas sous Ubuntu 8.04. -off_color:: - Un chaine définissant la couleur OFF de la Led. Peut être tout nom valide de - gtk.gdk.Color ou la valeur spéciale _dark_. _dark_ signifie que la couleur OFF - sera fixée à 0.4 valeur de la couleur ON. Ne fonctionne pas sous Ubuntu 8.04. -pick_color_on, pick_color_off:: - Couleurs pour les états ON et OFF peuvent être représentées par une chaine - comme _#RRRRGGGGBBBB_. Ces propriétés optionnelles ont la précédence sur - _on_color_ et _off_color_. -led_size:: - Rayon de la Led (pour une Led carrée, 1/2 côté) -led_shape:: - Forme de la Led Shape. Les valeurs permises sont 0 pour ronde, 1 pour ovale - et 2 pour carrée. -led_blink_rate:: - Si utilisée et que la Led est ON, alors la Led clignotera. La fréquence du - clignotement est égal à la valeur de "led_blink_rate", spécifiée en millisecondes. - -Comme un widget d'entrée, la Led aussi supporte le +hal-pin-changed signal+. Si -vous voulez avoir une notification dans votre code quand les pins des Leds HAL -ont changé d'état, alors connectez ce signal au gestionnaire, par exemple -+on_led_pin_changed+ et passez ce qui suit au gestionnaire: - -[source,python] ----- -def on_led_pin_changed(self,hal_led,data=None): - print "on_led_pin_changed() - HAL pin value:",hal_led.hal_pin.get() ----- - -Ce code sera appelé à chaque front du signal et également au démarrage du programme -pour reporter la valeur courante. - -Exemple de Leds: -image:images/leds.png[] - -[[gladevcp:HAL_ProgressBar]] -=== La barre de progression (ProgressBar) - -[NOTE] -Ce widget pourrait disparaître. Utilisez les widgets HAL_HBar et HAL_VBar à sa -place. - -La HAL_ProgressBar est dérivée de gtk.ProgressBar et a deux pins d'entrée de HAL float: - -:: - la valeur courante à afficher. --scale:: - la valeur maximum absolue en entrée. - -Elle a les propriétés suivantes: - -scale:: - Valeur d'échelle. fixe la valeur maximum absolue en entrée. Pareil que la - configuration de la pin .scale. Un flottant, compris entre - _-2^24^_ et _+2^24^_. -green_limit:: - Limite basse de la zone verte -yellow_limit:: - Limite basse de la zone jaune -red_limit:: - Limite basse de la zone rouge -text_template:: - Texte modèle pour afficher la valeur courante de la pin ++. - Formaté pour Python, peut être utilisé pour dict +{"valeur":valeur}+. - -Exemple de barre de progression: -image:images/progressbar2.png[] - - -[[gladevcp:HAL_ComboBox]] -=== La boîte combinée (ComboBox) - -La comboBox HAL est dérivée de gtk.ComboBox. Elle valide le choix d'une valeur -dans une liste déroulante. - -Elle exporte deux pins de HAL: - - -f:: - La valeur courante, de type FLOAT - -s:: - La valeur courante, de type S32 - -Elle a la propriété suivante, qui est configurable dans Glade: - -column:: - L'index de colonne, type S32, défaut à -1, échelle de -1 à 100. - -En mode par défaut, ces réglages du widget mettent les pins à la valeur d'index -de l'entrée choisie dans la liste. Aussi, si le widget a trois labels, il peut -seulement assumer les valeurs 0, 1 et 2. - -En mode colonne (colonne > -1), la valeur reportée est choisie dans le tableau -de stockage de liste défini dans Glade. Ainsi, typiquement la définition du -widget devrait comprendre deux colonnes dans le tableau de stockage, une avec -le texte affiché dans la liste déroulante, l'autre une valeur entière ou flottante -correspondante au choix. - -Il y a un exemple dans -+configs/gladevcp/by-widget/combobox/combobox.{py,ui}+ qui utilise le mode -colonne pour prendre une valeur flottante dans un stockage de liste. - -Si comme moi, vous êtes désorienté pour éditer une liste de stockage de ComboBox -ou de CellRenderer, voyez http://www.youtube.com/watch?v=Z5_F-rW2cL8. - -[[gladevcp:HAL_VBar]] - -[[gladevcp:HAL_HBar]] -=== Les barres - -Les widgets HAL, HBar et VBar pour barres Horizontale et Verticale, représentent -des valeurs flottantes. Elles ont une pin d'entrée de HAL FLOAT. Chaque barre a -les propriétés suivantes: - -invert:: - Inverse les directions min avec max. Une HBar inversée croît de la droite - vers la gauche, un VBar inversée croît du haut vers le bas. -min, max:: - Valeurs minimum et maximum de l'étendue souhaitée. Ce n'est pas une erreur si - la valeur courante dépasse cette étendue. -zero:: - Point le plus bas de l'étendue. Si il est entre min et max, alors la barre - croît à partir de cette valeur et non de la gauche du widget (ou de sa droite). - Utile pour représenter des valeurs qui peuvent être à la fois, positives ou - négatives. -force_width, force_height:: - Force la largeur ou la hauteur du widget. Si inutilisés, la taille sera déduite - du conteneur ou de la taille des widgets et des barres qui remplissent la zone. -text_template:: - Détermine le texte à afficher, comme pour le Label, pour les valeurs - min/max/courante. Peut être utilisé pour arrêter l'affichage de la valeur. -bg_color:: - Couleur de fond pour la barre (inactive). -z0_color, z1_color, z2_color:: - Couleurs des zones des différentes valeurs. - Par défaut, _green_, _yellow_ et _red_. Pour une description des zones voir - propriétés des _z _border_. -z0_border, z1_border:: - Définissent les limites des zones de couleur. Par défaut, seule une zone est validée. - Pour en activer plus d'une, fixer _z0_border_ et _z1_border_ aux valeurs - souhaitées. Ainsi, zone 0 va remplir depuis 0 à la première bordure, zone 1 va - remplir de la première à la seconde bordure et zone 2 depuis la dernière bordure - jusqu'à 1. Les bordures se règlent comme des fractions, les valeurs vont de 0 à 1. - -Barre horizontale: -image:images/hal_hbar.png[] -Barre verticale: -image:images/vscale.png[] - - -[[gladevcp:HAL_Meter]] -=== L'indicateur (HAL Meter) - -L'indicateur est un widget similaire à celui de PyVCP, -il représente une valeur flottante et a une pin d'entrée de HAL FLOAT. -L'indicateur a les deux propriétés suivantes: - -min, max:: - Valeurs minimum et maximum de l'étendue souhaitée. Ce n'est pas une erreur si - la valeur courante dépasse cette étendue. -force_size:: - Force le diamètre du widget. Si inutilisé, alors la taille sera déduite du - conteneur ou des dimensions d'un widget à taille fixe. L'indicateur - occupera alors l'espace le plus grand disponible, tout en respectant les - proportions. -text_template:: - Détermine le texte à afficher, comme pour le Label, pour la valeur - courante. Peut être utilisé pour arrêter l'affichage de la valeur. -label:: - Label large au dessus du centre de l'indicateur. -sublabel:: - Petit label, sous le centre de l'indicateur. -bg_color:: - Couleur de fond de l'indicateur. -z0_color, z1_color, z2_color:: - Valeurs des couleurs des différentes zones. Par défaut, _green_, _yellow_ et _red_. - For description of - zones see _z _border_ properties. -z0_border, z1_border:: - Définissent les limites externes des zones de couleur. Par défaut, une seule zone - de couleur est définie. Pour en activer plus d'une, fixer _z0_border_ et - _z1_border_ aux valeurs souhaitées. Ainsi, zone 0 va remplir depuis min à la - première bordure, zone 1 va remplir de la première à la seconde bordure et - zone 2 depuis la dernière bordure jusqu'à max. Les bordures se règlent sur une - étendue comprise en min et max. - -Exemples d'indicateurs: - -image::images/hal_meter.png[] - - -[[gladevcp:HAL_Gremlin]] -=== Gremlin, visualiseur de parcours d'outil pour fichiers .ngc - -Gremlin est un traceur de parcours d'outil similaire à celui d'Axis. -Il demande un environnement LinuxCNC en fonctionnement, comme Axis ou Touchy. -Pour se connecter à lui, inspecter la variable d'environnement INI_FILE_NAME. -Gremlin affiche le fichiers .ngc courant. Si le fichier ngc est modifié, -il doit être rechargé pour actualiser le tracé. Si il est lancé dans une application -GladeVCP quand LinuxCNC n'est pas en marche, un message va être affiché parce-que -le widget Gremlin ne trouve pas le statut de LinuxCNC, comme le nom du fichier courant. - -Gremlin n'exporte aucune pin de HAL. Il a les propriétés suivantes: - -view :: - Peut être la vue en _x_, _y_, _z_, _p_ (perspective) . Par défaut, vue en _z_. -enable_dro :: - Booléen; afficher une visu sur le tracé ou non. - Par défaut,à _True_. - -Exemple: - -image::images/gremlin.png[] - - -=== Fonction de diagrammes animés: Widgets HAL dans un bitmap - -Pour certaines applications, il est intéressant d'avoir une image de fond, -comme un diagramme fonctionnel et positionner les widgets aux endroits appropriés -dans le diagramme. Une bonne combinaison consiste à placer une image de fond -comme un fichier .png, mettre la fenêtre GladeVCP en taille fixe, et utiliser -Glade pour fixer la position du widget sur cette image. - -Le code pour l'exemple ci-dessus peut être trouvé dans +configs/gladevcp/animated-backdrop+: - -image::images/small-screenshot.png[] - -== Références des Widgets LinuxCNC Action - -GladeVcp inclus une collection d'actions préprogrammées appelées widgets _LinuxCNC Action_ -qui sont des Widgets pour l'éditeur Glade. À la différence des widgets HAL, -qui interagissent avec les pins de HAL, les widgets LinuxCNC Actions, interagissent -avec LinuxCNC et son interpréteur de G-code. - -Les widgets LinuxCNC Action sont dérivés du widget Gtk.Action. Le widget LinuxCNC Action -en quelques mots: - - - C'est un objet disponible dans l'éditeur Glade. - - Il n'a pas d'apparence visuelle par lui-même. - - Son but: associer à un composant d'interface visible, à un composant - d'interface sensitif, comme un menu, un bouton outil, un bouton avec une - commande. Voir les propriétés des widgets Action dans _Général → Related - Action_ de l'éditeur. - - L'action préprogrammée sera exécutée quand l'état du composant associé basculera - (bouton pressé, menu cliqué...) - - Ils fournissent une voie facile pour exécuter des commandes sans avoir à faire - appel à la programmation en Python. - -L'apparence des LinuxCNC Actions dans Glade est approximativement la suivante: - -image::images/emc-actions.png[] - -Le survol de la souris donne une infobulle. - -=== Les widgets LinuxCNC Action - -Les widgets LinuxCNC Action sont des widgets de type simple état. Ils implémentent -une seule action par l'usage, d'un seul bouton, d'une option de menu, d'un -bouton radio ou d'une case à cocher. - -=== Les widgets LinuxCNC bascule action (ToggleAction) - -Ce sont des widgets double état. Ils implémentent deux actions ou utilisent un -second état (habituellement, _pressé_) pour indiquer qu'une action est actuellement -en cours. Les bascules action sont prévues pour être utilisées avec les boutons -à bascule (ToggleButtons) et les boutons à bascule d'outil (ToggleToolButtons) ou -encore, pour basculer les items de menu. Un exemple simple est le bouton à bascule -d'Arrêt d'Urgence (EStop). - -Actuellement, les widgets suivants sont disponibles: - - - La bascule _d'Arrêt d'Urgence_ (ESTOP) envoie la commande ESTOP ou ESTOP_RESET - à LinuxCNC, selon l'état courant. - - La bascule _ON/OFF_ envoie la commande STATE_ON ou STATE_OFF. - - La bascule _Pause/Reprise_ envoie la commande AUTO_PAUSE ou AUTO_RESUME. - -Les bascules action suivantes ont seulement une commande associée et utilisent -l'état _pressé_ pour indiquer que l'opération demandée est lancée: - - - La bascule _Run_ envoie la commande AUTO_RUN et attends dans l'état pressé - jusqu'à ce que l'interpréteur soit de nouveau au repos. - - La bascule _Stop_ est inactive jusqu'à ce que l'interpréteur passe à l'état actif - (Un G-code est lancé) et permet alors à l'utilisateur d'envoyer la commande - AUTO_ABORT. - - La bascule _MDI_ envoie la commande passée dans le MDI et attends sa complétion - dans l'état inactif _pressé_. - -=== La bascule Action_MDI et les widgets Action_MDI - -Ces widgets fournissent le moyen d'exécuter des commandes MDI. Le widget Action_MDI -n'attends pas la complétion de la commande, comme le fait la bascule Action_MDI, -qui reste elle, désactivée tant que la commande n'est pas terminée. - -=== Un exemple simple: Exécuter une commande MDI lors de l'appui sur un bouton. - -+configs/gladevcp/mdi-command-example/whoareyou.ui+ est un fichier UI Glade qui -transmet cette action basique: - -L'ouvrir dans Glade et étudier comment il est fait. Lancer Axis puis dans un -terminal faire: _+gladevcp whoareyou.ui+_. Voir l'action +hal_action_mdi1+ et les -propriétés de +MDI command+ qui exécute juste +(MSG, "Hi, I'm an LinuxCNC_Action_MDI")+ -ce qui ouvre un popup de message dans Axis, comme ci-dessous: - -image::images/whoareyou.png[] - -Noter que le bouton, associé à l'Action_MDI, est grisé si la machine est arrêtée, -en A/U ou si l'interpréteur est déjà en marche. Il deviendra automatiquement actif -quand la machine sera mise en marche donc, sortie de l'A/U (E-Stop), et que le -programme est au repos. - -=== Paramètres passés avec les widgets Action_MDI et ToggleAction_MDI - -Optionnellement, la chaine _MDI command_ peut avoir des paramètres substitués -avant d'être passée à l'interpréteur. Ces paramètres sont actuellement les noms -des pins de HAL dans les composants GladeVCP. Voici comment cela fonctionne: - - - Supposons que nous avons une _SpinBox HAL_ nommée +speed+, nous voulons passer - sa valeur courante comme paramètre dans une commande MDI. - - La SpinBox HAL aura une pin de HAL de type flottant, nommée speed-f (voir - la description des Widgets Hal). - - Pour substituer cette valeur dans la commande MDI, insérons le nom de la pin de HAL - encadré de cette manière: _${pin-name}_ - - Pour la spinbox HAL précédente, il aurait été possible d'utiliser - _(MSG, "La vitesse est: ${speed-f}")_ juste pour montrer ce qui se passe. - -L'exemple de fichier UI est +configs/gladevcp/mdi-command-example/speed.ui+. -Voici ce qui ce qui est obtenu en le lançant: - -image::images/speed.png[] - -=== Un exemple plus avancé: Passer des paramètres à un sous-programme O-word - -Il est parfaitement permis d'appeler un sous-programme O-word dans une commande -MDI et passer la valeur des pins de HAL comme paramètres actuels. Un exemple de - fichier UI est dans +configs/gladevcp/mdi-command-example/owordsub.ui+. - -Placer +configs/gladevcp/nc_files/oword.ngc+ de sorte qu'Axis puisse le trouver, -et lancer _gladevcp owordsub.ui_ depuis un terminal. Ce qui devrait ressembler à celà: - -image::images/oword.png[] - -=== Préparation d'une Action_MDI - -L'interpréteur de G-code de LinuxCNC dispose d'un simple jeu de variables globales, -comme la vitesse travail, la vitesse broche, le mode relatif/absolu et autres. -Si on utilise des commandes G-code ou des sous-programmes O-word, certaines de -ces variables doivent être modifiées par la commande ou le sous-programme. -Par exemple, un sous-programme de sonde a très probablement besoin de définir -la vitesse d'avance à une valeur très faible. Sans autres précautions, le -réglage de vitesse précédent serait écrasé par la valeur du sous-programme de sonde. - -Pour faire avec ce surprenant, autant qu'indésirable effet de bord produit par -un sous-programme O-word ou un G-code exécuté avec une bascule Action MDI, -le gestionnaire pré-MDI et post-MDI doit être associé avec une bascule Action_MDI -donnée. Ces gestionnaires sont optionnels et fournissent une voie pour sauver tous -les états avant d'exécuter l'action MDI et pour les restaurer ensuite aux valeurs -précédentes. Les noms de signaux sont +mdi-command-start+ et +mdi-command-stop+, -les noms de gestionnaire peuvent être fixés dans Glade comme tout autre gestionnaire. - -Voici un exemple, montrant comment la valeur de la vitesse d'avance est sauvée -puis restaurée par de tels gestionnaires, noter que la commande LinuxCNC et le statut -des voies sont disponibles comme +self.emc+ et +self.stat+ à travers la classe -LinuxCNC_ActionBase: - -[source,python] ----- - def on_mdi_command_start(self, action, userdata=None): - action.stat.poll() - self.start_feed = action.stat.settings[1] - - def on_mdi_command_stop(self, action, userdata=None): - action.emc.mdi('F%.1f' % (self.start_feed)) - while action.emc.wait_complete() == -1: - pass ----- - -Seule le widget de la bascule Action_MDI, supporte ces signaux. - -[NOTE] -Dans une prochaine version de LinuxCNC, les nouveaux M-codes M70 à M72 seront disponibles, -ils enregistreront l'état avant l'appel du sous-programme, la restauration de l'état -au retour sera plus aisée. - -=== Utiliser l'objet LinuxCNC Stat pour traiter les changements de statut - -Beaucoup d'actions dépendent du statut de LinuxCNC, est-il en mode manuel, en mode MDI -ou en mode auto ? Un programme est-il en cours d'exécution, est-il en pause -ou au repos ? Il est impossible de lancer une commande MDI tant qu'un programme -G-code est en cours d'exécution, cela doit donc être pris en compte. -Beaucoup d'actions LinuxCNC prennent cela en compte d'elle même, les boutons et les -options de menu sont désactivés quand leurs actions sont rendues impossibles. - -Avec l'utilisation des gestionnaires d'événements Python, qui sont à un niveau -inférieur aux Actions, on doit prendre soin de traiter les dépendances de statut -soit-même. À cette fin, existe le widget _LinuxCNC Stat_, il associe les changements de -statut de LinuxCNC avec les gestionnaires d'événements. - -LinuxCNC Stat n'a pas de composant visible, il suffi de l'ajouter dans l'éditeur Glade. -Une fois ajouté, vous pouvez associer des gestionnaires avec les signaux suivants: - -* relatif au statut: émis quand l'arrêt d'urgence est activé, ou désactivé, - - +state-estop+ la machine est totalement arrêtée, puissance coupée. - - +state-estop-reset+ la machine passe à l'arrêt. - - +state-on+, la machine est mise en marche - - +state-off+ la machine passe à l'arrêt. -* relatif au mode: émis quand LinuxCNC entre dans un de ces modes particuliers - - +mode-manual+ - - +mode-mdi+ - - +mode-auto+ -* relatif à l'interpréteur: émis quand l'interpréteur de G-code passe dans un de ces modes - - +interp-run+ - - +interp-idle+ - - +interp-paused+ - - +interp-reading+ - - +interp-waiting+ - - -[[gladevcp:GladeVCP_Programming]] -== Programmation de GladeVCP - -=== Actions définies par l'utilisateur - -La plupart des jeux de widgets, par le biais de l'éditeur Glade, supportent le -concept de fonction de rappel, fonctions écrites par l'utilisateur, qui sont -exécutées quand 'quelque chose arrive' dans l'UI, événements tels que clics -de souris, caractère tapé, mouvement de souris, événements d'horloge, fenêtre -iconisée ou agrandie et ainsi de suite. - -Les widgets de sortie HAL, typiquement, scrutent les événements de type _entrée_, -tels qu'un bouton pressé, provoquant un changement de la valeur d'une pin HAL -associée par le biais d'une telle fonction de rappel prédéfinie. Dans PyVCP, -c'est réellement le seul type d'événement qui peut être défini à la main. Faire -quelque chose de plus complexe, comme exécuter une commande MDI pour appeler un -sous-programme G-code, n'est pas supporté. - -Dans GladeVCP, les changement sur les pins de HAL sont juste un type de la classe -générale d'événements (appelés signaux) dans GTK+. La plupart des widgets peuvent -générer de tels signaux et l'éditeur de Glade supporte l'association de ces -signaux avec une méthode Python ou nom de fonction. - -Si vous décidez d'utiliser les actions définies par l'utilisateur, votre travail -consistera à écrire un module Python dont la méthode, une fonction suffit -dans les cas simples, peut être référencée à un gestionnaire d'événements dans -Glade. GladeVCP fournit un moyen d'importer votre module au démarrage, il sera -alors lié automatiquement au gestionnaire d'événements avec les signaux de -widget comme un ensemble dans la description de l'éditeur Glade. - -=== Un exemple: ajouter une fonction de rappel en Python - -Ceci est juste un exemple minimal pour exprimer l'idée, les détails sont donnés -dans le reste de cette section. - -GladeVCP peut, non seulement manipuler ou afficher les pins de HAL, il est possible -aussi d'écrire des gestionnaires d'événements en Python. Ce qui peut être utilisé, -entre autre, pour exécuter des commandes MDI. Voici comment faire: - -Écrire un module Python comme le suivant, et l'enregistrer sous le nom handlers.py - -[source,python] ----- -nhits = 0 -def on_button_press(gtkobj,data=None): - global nhits nhits += 1 gtkobj.set_label("hits: %d" % nhits) ----- - -Dans Glade, définir un bouton ou un bouton HAL, sélectionner l'onglet _Signal_, -et dans les propriétés GtkButton sélectionner la ligne _pressed_. Entrer -_on_button_press_ ici, puis enregistrer le fichier Glade. - -Ensuite, ajouter l'option _-u handlers.py_ à la ligne de commande de gladevcp. -Si les gestionnaires d'événements son répartis sur plusieurs fichiers, ajouter de -multiples options _-u _. - -Maintenant, presser le bouton devrait modifier son label car il est défini dans -la fonction de rappel. - -Que fait le drapeau +-u+: toutes les fonctions Python dans ce fichier sont -collectées et configurées comme des gestionnaires de fonction de rappel potentiels -pour les widgets Gtk, ils peuvent être référencés depuis l'onglet _Signaux_ de Glade. -Le gestionnaire de fonction de rappel est appelé avec l'instance de l'objet -particulier comme paramètre, comme l'instance du GtkButton précédente, ainsi, -il est possible d'appliquer n'importe quelle méthode GtkButton depuis ici. - -Ou faire des choses plus utiles, par exemple, appeler une commande MDI! - -=== L'événement valeur de HAL modifiée - -Les widgets d'entrée HAL, comme la Led, ont l'état de leur pin de HAL (on/off), -automatiquement associé avec l'apparence optique du widget (Led allumée/éteinte). - -Au delà de cette fonctionnalité primitive, on peut associer n'importe quelle pin -de HAL avec une fonction de rappel, y compris les widgets de HAL prédéfinis. -Cela correspond bien avec la structure événementielle de l'application typique -du widget: chaque activité, qu'elle soit un simple clic de souris, une touche -pressée, une horloge expirée ou le changement de valeur d'une pin de HAL, -générera une fonction de rappel et sera gérée par le même mécanisme. - -Pour les pins de HAL définies par l'utilisateur, non associées à un widget de -HAL particulier, le nom du signal est _value-changed_. Voir la section -<> pour plus de détails. - -Les widgets HAL sont fournis avec un signal prédéfini appelé _hal-pin-changed_. -Voir la section sur <> pour -d'autres détails. - -=== Modèle de programmation - -L'approche globale est la suivante: - - - Concevoir l'interface graphique avec Glade, fixer les gestionnaires de signaux - associés aux widgets action. - - Écrire un module Python qui contient des objets appelables (voir 'gestionnaire - de modèles, plus loin) - - Passer le chemin du modules à gladevcp avec l'option _-u _. - - gladevcp importe le module, inspecte les gestionnaires de signaux et - les connecte à l'arbre des widgets. - - La boucle principale d'événements est exécutée. - -==== Modèle du gestionnaire simple - -Pour des tâches simple, il est suffisant de définir des fonctions nommées -après les gestionnaires de signaux de Glade. Elles seront appelées quand -l'événement correspondant se produira dans l'arbre des widgets. Voici un exemple -très simple, il suppose que le signal _pressed_ d'un bouton Gtk ou d'un bouton HAL -est lié à une fonction de rappel appelée _on_button_press_: - -[source,python] ----- -nhits = 0 -def on_button_press(gtkobj,data=None): - global nhits - nhits += 1 - gtkobj.set_label("hits: %d" % nhits) ----- - -Ajouter cette fonction dans un fichier Python et le lancer avec: - ----- -gladevcp -u .py mygui.ui ----- - -Noter que la communication entre les gestionnaires doit passer par des variables -globales, qui s'adaptent mal est ne sont pas très "pythonique". -C'est pourquoi nous en arrivons au gestionnaire de classes. - -==== Modèle de gestionnaire basé sur les classes - -L'idée ici est la suivante: les gestionnaires sont liés aux méthodes de classe. -La classe sous-jacente est instanciée et inspectée durant le démarrage -de GladeVCP et liée à l'arbre des widgets comme gestionnaire de signaux. -Donc, la tâche est maintenant d'écrire: - -* Une ou plusieurs définitions de classe avec une ou plusieurs méthodes, dans - un module ou répartis sur plusieurs modules. -* Une fonction _get_handlers_ dans chaque module, qui retournera la liste - des instances de classe à GladeVCP, leurs noms de méthode seront liés aux - gestionnaires de signaux. - -Voici un exemple minimaliste de module de gestionnaire définit par -l'utilisateur: - -[source,python] ----- -class MyCallbacks : - def on_this_signal(self,obj,data=None): - print "this_signal happened, obj=",obj - def get_handlers(halcomp,builder,useropts): - return [MyCallbacks ()] ----- - -Maintenant, _on_this_signal_ est disponible comme gestionnaire de signal dans -l'arbre des widgets. - -==== Le protocole get_handlers - -Si durant l'inspection du module GladeVCP trouve une fonction _get_handlers_, -Il l'appelle de la manière suivante: - - get_handlers(halcomp,builder,useropts) - -Les arguments sont: - - - halcomp - Se réfère au composant de HAL en construction. - - builder - arbre du widget - résulte de la lecture de la définition de l'UI - (soit, en référence à un objet de type GtkBuilder ou de type libglade). - - useropts - Une liste de chaines collectée par l'option de la ligne de - commande de gladevcp _-U _. - -GladeVCP inspecte alors la liste des instances de classe et récupère leurs noms. -Les noms de méthode sont connectés à l'arbre des widgets comme gestionnaire de -signaux. Seuls, les noms de méthode ne commençant pas par un *_* -(tiret bas) sont considérés. - -Noter que peu importe si la libglade ou le nouveau format GtkBuilder est utilisé -pour l'UI Glade, les widgets peuvent toujours être soumis au -_builder.get_object()_. En outre, la liste complète des widgets est -disponible par _builder.get_objects()_, indépendamment du format de l'UI. - -=== Séquence d'initialisation - -Il est important de connaitre pour quoi faire, la fonction _get_handlers()_ -est appelée, et connaitre ce qui est sûr et ce qui ne l'est pas. -Tout d'abord, les modules sont importés et initialisés dans leur ordre -d'apparition sur la ligne de commande. -Après le succès de l'importation, _get_handlers()_ est appelé selon les étapes -suivantes: - - - L'arbre du widget est créé, mais pas encore réalisé (pas tant que le niveau - supérieur _window.show()_ n'aura pas été exécuté) - - Le composant de HAL, halcomp, est configuré et toutes les pins de HAL des - widgets lui sont ajoutées. - - Il est sûr d'ajouter plus de pins de HAL parce-que _halcomp.ready()_ n'a pas - encore été appelé à ce point, ainsi, on peut ajouter ses propres pins, par - exemple, dans la méthode de classe ___init__()_. - -Après que tous les modules ont été importés et que les noms des méthodes ont -été extraits, les étapes suivantes se produisent: - - - Tous les noms de méthode qualifiés seront connectés à l'arbre du widget - avec _connect_signals() ou signal_autoconnect()_ (selon le type de l'UI - importée, format GtkBuilder ou l'ancien libglade). - - Le composant de HAL est finalisé avec halcomp.ready(). - - Si un ID de fenêtre est passé comme argument, l'arbre du widget est re-apparenté - pour démarrer dans cette fenêtre, et la fenêtre de niveau supérieur de Glade, - window1 est abandonnée (voir la FAQ) - - Si un fichier de commandes de HAL, est passé avec _-H halfile_, il est exécuté - avec halcmd. - - La boucle principal de Gtk est lancée. - -Ainsi, lorsque le gestionnaire de classe est initialisé, tous les widgets sont -existants mais pas encore réalisés (affichés à l'écran). Et le composant de HAL -n'est pas prêt non plus, de sorte qu'il n'est pas sûr d'accéder aux valeurs des -pins dans la méthode ___init__()_. - -Si on doit avoir une fonction de rappel à exécuter au démarrage du programme -mais, après qu'il soit sûr d'accéder aux pins de HAL, alors connecter un -gestionnaire au signal de la fenêtre de niveau supérieur réalisée, window1 -(qui pourrait être sa seule raison d'être). A ce point, GladeVCP en a terminé -avec toutes les configurations, le halfile a bien été lancé et GladeVCP est -sur le point d'entrer dans la boucle principale Gtk. - -=== Multiple fonctions de rappel avec le même nom - -Dans une classe, les noms de méthode doivent être unique. Cependant, il est permis -d'avoir de multiples instances de classe passées à GladeVCP par get_handlers() -avec des méthodes portant le même nom. Lorsque le signal correspondant survient, -les méthodes sont appelées dans l'ordre dans lequel elles ont été définies, -module par module et dans un module, dans l'ordre des instances de classe -retourné _get_handlers()_. - -=== Le drapeau GladeVCP *-U * - -Au lieu d'étendre GladeVCP à toutes les options concevables qui pourraient -potentiellement être utilisées par un gestionnaire de classe, on peut utiliser -le drapeau -U (répétitivement si nécessaire). Ce drapeau collecte la -liste des chaines de . Cette liste est passée à la fonction get_handlers() -(argument useropts). Le code est libre d'interpréter ces chaines comme bon -lui semble. Un utilisation possible serait de les passer à la fonction exec de -Python dans le _get_handlers()_, comme suit: - -[source,python] ----- -debug = 0 -... -def get_handlers(halcomp,builder,useropts): - ... - global debug # suppose qu'il y a une variable globale - pour cmd dans useropts: - exec cmd in globals() ----- - -De cette façon, on peut passer des déclarations Python arbitraires au module -grâce à l'option gladevcp -U, Par exemple: - ----- -gladevcp -U debug=42 -U "print 'debug=%d' % debug" ... ----- - -Debug devrait être mis à 2, et confirmer ce que le module fait actuellement. - -=== Variables persistantes dans GladeVCP - -Un aspect gênant de GladeVCP dans sa forme initiale avec pyvcp est le fait qu'on -peut changer les valeurs des pins de HAL au travers du texte saisi, -curseurs, bouton tournant, bouton à bascule etc, mais leurs paramètres ne sont -pas enregistrés ni restaurés à la prochaine exécution de LinuxCNC. Ils commencent aux -valeurs par défaut fixées dans le panneau ou la définition du widget. - -GladeVCP dispose d'un mécanisme facile à utiliser pour enregistrer et restaurer -l'état des widgets de HAL, ainsi que les variables du programme -(en fait, n'importe quel attribut d'instance de type int, float, bool ou string). - -Ce mécanisme utilise le format du populaire fichier _.ini_ pour enregistrer et -recharger les attributs persistants. - -==== Examen de la persistance, de la version et de la signature du programme - -Imaginons renommer, ajouter ou supprimer des widgets dans Glade: -un fichier .ini qui traîne depuis une version précédente du programme, ou une -interface utilisateur entièrement différente, ne serait pas en mesure de restaurer -correctement l'état des variables et des types puisqu'ils ont changé depuis. - -GladeVCP détecte cette situation par la signature qui dépends de tous les noms -d'objets et de types qui ont été enregistrés et qui doivent être restaurés. -Dans le cas de signatures incompatibles, un nouveau fichier .ini avec la -configuration pas défaut est généré. - -=== Utilisation des variables persistantes - -Pour que tous les états des widgets Gtk, que toutes les valeurs des pins de -sortie des widget HAL et/ou que tous les attributs de classe du gestionnaire de -classe soient conservés entre les invocations, procéder comme suit: - - - Importer le module +gladevcp.persistence+. - - Décider quels attributs d'instance et leurs valeurs par défaut doivent être - conservés, le cas échéant, - - décider quels widgets doivent avoir leur état conservé. - - Décrire ces décisions dans le gestionnaire de classe par la méthode - +__init__()+ grâce à un dictionnaire imbriqué comme suit: - -[source,python] ----- -def __init__(self, halcomp,builder,useropts): - self.halcomp = halcomp - self.builder = builder - self.useropts = useropts - self.defaults = { - # les noms suivants seront enregistrés/restaurés comme attributs de méthode, - # le mécanisme d'enregistrement/restauration est fortement typé, - # les types de variables sont dérivés depuis le type de la valeur initiale. - # les types couramment supportées sont: int, float, bool, string - IniFile.vars : { 'nhits' : 0, 'a': 1.67, 'd': True ,'c' : "a string"}, - # pour enregistrer/restaurer l'état de tous les widgets pour lesquels - # c'est sensé, ajouter cela: - IniFile.widgets : widget_defaults(builder.get_objects()) - # une alternative sensée pourrait être de ne retenir que l'état de - # tous les widgets de sortie HAL: - # IniFile.widgets: widget_defaults(select_widgets(self.builder.get_objects(), -hal_only=True,output_only = True)), - } ----- - -Puis associer un fichier .ini avec ce descripteur: - -[source,python] ----- -self.ini_filename = __name__ + '.ini' -self.ini = IniFile(self.ini_filename,self.defaults,self.builder) -self.ini.restore_state(self) ----- - -Ensuite _restore_state()_, aura automatiquement les attributs définis si ce qui -suit a été exécuté: - -[source,python] ----- -self.nhits = 0 -self.a = 1.67 -self.d = True -self.c = "a string" ----- - -Noter que les types sont enregistrés et conservés lors de la restauration. Cet -exemple suppose que le fichier .ini n'existe pas ou qu'il contient les valeurs -par défaut depuis self.defaults. - -Après cette incantation, on peut utiliser les méthodes IniFil suivantes: - -ini.save_state(obj):: - enregistre les attributs des objets depuis le dictionnaire IniFil.vars - l'état du widget comme décrit par IniFile.widgets dans self.defaults -ini.create_default_ini():: - crée un fichier .ini avec les valeurs par défaut -ini.restore_state(obj):: - restaure les pins de HAL et les attributs des objets enregistrés/initialisés - par défaut comme précédemment - -Pour enregistrer le widget et/ou l'état des variables en quittant, connecter un -gestionnaire de signal à la fenêtre de niveau supérieur +window1+, détruire -l'événement: - -[source,python] ----- -def on_destroy(self,obj,data=None): - self.ini.save_state(self) ----- - -La prochaine fois que l'application GladeVCP démarrera, les widgets doivent -retrouver l'état qu'ils avaient à la fermeture de l'application. - -=== Édition manuelle des fichiers .ini - -Il est possible de faire cela, mais noter que les valeurs dans self.defaults -écraseront votre édition si il y a erreur de frappe ou de syntaxe. Une erreur -détectée, un message émis dans la console, donneront des indices sur ce qui s'est -passé et le mauvais fichier ini sera renommé avec le suffixe .BAD. Après une -mauvaise initialisation, les fichiers .BAD les plus anciens seront écrasés. - -[[gladevcp:Adding_HAL_pins]] -=== Ajouter des pins de HAL - -Si il faut des pins de HAL non associées avec un widget HAL, les ajouter comme -ci-dessous: - -[source,python] ----- -import hal_glib -... -# dans le gestionnaire de classe __init__(): -self.example_trigger = hal_glib.GPin(halcomp.newpin('example-trigger', hal.HAL_BIT, hal.HAL_IN)) ----- - -Pour appeler une fonction de rappel quand la valeur de cette pin change il faut -associer une fonction de rappel +value-changed+ avec cette pin, ajouter pour -cela: - -[source,python] ----- -self.example_trigger.connect('value-changed', self._on_example_trigger_change) ----- - -et définir une méthode de fonction de rappel (ou une fonction, dans ce cas -laisser tomber le paramètre +self+): - -[source,python] ----- -# noter *_* - cette méthode n'est pas visible dans l'arbre du widget -def _on_example_trigger_change(self,pin,userdata=None): - print "pin value changed to:" % (pin.get()) ----- - -=== Ajout de timers - -Depuis que GladeVCP utilise les widgets Gtk qui se rattachent sur les classes -de base http://www.pygtk.org/pygtk2reference/gobject-functions.html[GObject], -la totalité des fonctionnalités de la glib est disponible. Voici un exemple d' -horloge de fonction de rappel: - -[source,python] ----- -def _on_timer_tick(self,userdata=None): - ... - return True # pour relancer l'horloge; return False pour un monostable -... -# démonstration d'une horloge lente en tâche de fond - la granularité est de une seconde -# pour une horloge rapide (granularité 1 ms), utiliser cela: -# glib.timeout_add(100, self._on_timer_tick,userdata) # 10Hz -glib.timeout_add_seconds(1, self._on_timer_tick) ----- - -=== Exemples, et lancez votre propre application GladeVCP - -Visiter +linuxcnc/configs/gladevcp+ pour des exemples prêt à l'emploi et points de -départ de vos propres projets. - - -== Questions & réponses - -[qanda] -Je reçois un événement unmap inattendu dans ma fonction de gestionnaire juste après le démarrage, qu'est-ce que c'est?:: - C'est la conséquence d'avoir dans votre fichier d'UI Glade la propriété de - la fenêtre window1 visible fixée à True, il y a changement de parents de - la fenêtre GladeVCP dans Axis ou touchy. L'arbre de widget de GladeVCP est - créé, incluant une fenêtre de niveau supérieur puis 're-aparenté dans Axis', - laissant trainer les orphelins de la fenêtre de niveau supérieur. - Pour éviter d'avoir cette fenêtre vide qui traine, elle est unmapped - (rendue invisible) et la cause du signal unmap que vous avez eux. - Suggestion pour fixer le problème: fixer window1.visible à False et ignorer - le message initial d'événement unmap. - -Mon programme GladeVCP démarre, mais aucune fenêtre n'apparait alors qu'elle devrait.:: - La fenêtre allouée par Axis pour GladeVCP obtient la 'taille naturelle' - de tous ses enfants combinés. C'est au widget enfant a réclamer une taille - (largeur et/ou hauteur). Cependant, toutes le fenêtres ne demandent pas une - plus grande que 0, par exemple, le widget Graph dans sa forme courante. - Si il y a un tel widget dans votre fichier Glade et que c'est lui qui - défini la disposition vous devrez fixer sa largeur explicitement. - Noter que la largeur et la hauteur de la fenêtre window1 dans Glade n'a pas - de sens puisque cette fenêtre sera orpheline lors du changement de parent - et donc sa géométrie n'aura aucun impact sur les mise en page (voir ci-dessus). - La règle générale est la suivante: si vous exécutez manuellement un fichier - UI avec _gladevcp _ et que sa fenêtre a une géométrie raisonnable, - elle devrait apparaitre correctement dans Axis. - -Je veux une Led clignotante, alors j'ai coché une case pour la laisser clignoter avec un intervalle de 100ms. Elle devrait clignoter, mais je reçois un :Warning: value '0' le type 'gint' est invalide ou hors de l'étendue pour les propriétés de 'led-blink-rate', c'est quoi le type gint?:: - Il semble qu'il s'agisse d'un bug de Glade. Il faut re-saisir une valeur sur - le champ de la fréquence de clignotement et enregistrer à nouveau. - Ça a marché pour moi. - -Mon panneau gladevcp ne marche pas dans Axis, il n'enregistre pas les états quand je ferme Axis, j'ai pourtant défini un gestionnaire on_destroy attaché au signal destroy de la fenêtre.:: - Ce gestionnaire est très probablement lié à window1, - qui en raison du changement de parent ne peux pas assurer cette fonction. - Attachez le gestionnaire on_destroy handler au signal destroy d'une - fenêtre intérieure. Par exemple: J'ai un notebook dans window1, attaché - on_destroy au signal destroy de notebooks et ça marche bien. Il ne marcherait - pas pour window1. - - -== Troubleshooting - -// FIXME this is out of date - - make sure your have the development version of LinuxCNC installed. You - don't need the axisrc file any more, this was mentioned in the old - GladeVcp wiki page. - - run GladeVCP or Axis from a terminal window. If you get Python errors, - check whether there's still a +/usr/lib/python2.6/dist-packages/hal.so+ - file lying around besides the newer - +/usr/lib/python2.6/dist-packages/_hal.so+ (note underscore); if yes, - remove the +hal.so+ file. It has been superseded by hal.py in the same - directory and confuses the import mechanism. - - if you're using run-in-place, do a 'make clean' to remove any - accidentally left over hal.so file, then 'make'. - - if you're using 'HAL_table' or 'HAL_HBox' widgets, be aware they have - an HAL pin associated with it which is off by default. This pin - controls whether these container's children are active or not. - -== Notes d'implémentation: la gestion des touches dans Axis - -Nous pensons que la gestion des touches fonctionne bien, mais comme c'est un -nouveau code, nous devons vous informer à ce propos pour que vous -puissiez surveiller ces problèmes; S'il vous plaît, faites nous savoir -si vous connaissez des erreurs ou des choses bizarres. Voici l'histoire: - -Axis utilise le jeu de widget de TkInter. L'application GladeVCP utilise -les widgets Gtk et démarre dans un contexte de processus différent. -Ils sont attachés dans Axis avec le protocole Xembed. Ce qui permet à une -application enfant comme GladeVCP de bien tenir proprement dans la -fenêtre d'un parent et, en théorie, d'être intégrée au gestionnaire -d'événements. - -Toutefois, cela suppose que parent et enfant supportent tous les deux proprement -le protocole Xembed, c'est le cas avec Gtk, pas avec TkInter. Une -conséquence de cela, c'est que certaines touches ne sont pas transmises -correctement dans toutes les circonstances depuis un panneau GladeVCP vers -Axis. Une d'elle est la touche _Entrée_. Ou quand le widget SpinButton a -le focus, dans ce cas, par exemple la touche Échap n'est pas bien transmise à -Axis et cause un abandon avec des conséquences potentiellement désastreuses. - -Par conséquent, les événements touches dans GladeVCP, sont traités explicitement, -et sélectivement transmises à Axis, pour assurer que de telles situations ne -puissent pas survenir. Pour des détails, voir la fonction _keyboard_forward()_ -dans la _lib/python/gladevcp/xembed.py_. diff --git a/docs/src/gui/halui.txt b/docs/src/gui/halui.txt deleted file mode 100644 index 0a58fe2a0e8..00000000000 --- a/docs/src/gui/halui.txt +++ /dev/null @@ -1,266 +0,0 @@ -= HAL User Interface - -[[cha:hal-user-interface]] (((HAL User Interface))) - -== Introduction[[sec:HaluiIntroduction]] - -Halui is a HAL based user interface for LinuxCNC, it connects HAL pins to -NML commands. Most of the functionality (buttons, indicators etc.) that -is provided by a traditional GUI (mini, Axis, etc.), is provided by HAL -pins in Halui. - -The easiest way to add halui is to add the following to the [HAL] -section of the ini file. - ----- -HALUI = halui ----- - -An alternate way to invoke it is to include the following in your .hal -file. Make sure you use the actual path to your ini file. - ----- -loadusr halui -ini /path/to/inifile.ini ----- - -[[sec:Halui-pin-reference]] -== Halui pin reference - -.Abort - -* 'halui.abort' (bit, in) - pin to send an abort message (clears out most errors) - -.Axis - -* 'halui.axis.n.pos-commanded' (float, out) - Commanded axis position in machine coordinates -* 'halui.axis.n.pos-feedback' (float, out) - Feedback axis position in machine coordinates -* 'halui.axis.n.pos-relative' (float, out) - Commanded axis position in relative coordinates - -.E-Stop - -* 'halui.estop.activate' (bit, in) - pin for requesting E-Stop -* 'halui.estop.is-activated' (bit, out) - indicates E-stop reset -* 'halui.estop.reset' (bit, in) - pin for requesting E-Stop reset - -.Feed Override - -* 'halui.feed-override.count-enable' (bit, in) - must be true for 'counts' or -'direct-value' to work. -* 'halui.feed-override.counts' (s32, in) - counts * scale = FO percentage. Can -be used with an encoder or 'direct-value'. -* 'halui.feed-override.decrease' (bit, in) - pin for decreasing the FO (-=scale) -* 'halui.feed-override.increase' (bit, in) - pin for increasing the FO (+=scale) -* 'halui.feed-override.direct-value' (bit, in) - false when using encoder to -change counts, true when setting counts directly. The 'count-enable' pin must -be true. -* 'halui.feed-override.scale' (float, in) - pin for setting the scale for - increase and decrease of 'feed-override'. -* 'halui.feed-override.value' (float, out) - current FO value - -.Mist - -* 'halui.mist.is-on' (bit, out) - indicates mist is on -* 'halui.mist.off' (bit, in) - pin for requesting mist off -* 'halui.mist.on' (bit, in) - pin for requesting mist on - -.Flood - -* 'halui.flood.is-on' (bit, out) - indicates flood is on -* 'halui.flood.off' (bit, in) - pin for requesting flood off -* 'halui.flood.on' (bit, in) - pin for requesting flood on - -.Homing - -* 'halui.home-all' (bit, in) - pin for requesting all axis to home. This - pin will only be there if HOME_SEQUENCE is set in the ini file. - -.Jog - - is a number between 0 and 8 and 'selected'. - -* 'halui.jog-deadband' (float, in) - deadband for analog jogging (smaller - jogging speed requests are not performed) -* 'halui.jog-speed' (float, in) - pin for setting jog speed for minus/plus jogging -* 'halui.jog..analog' (float, in) - analog velocity input for jogging - (useful with joysticks or other analog devices) -* 'halui.jog..increment' (float,in) - pin for setting the jog increment for - axis when using increment-minus or increment-plus to jog. -* 'halui.jog..increment-minus' (bit, in) - pin for moving the axis one - increment in the minus direction for each off to on transition. -* 'halui.jog..increment-plus' (bit, in) - pin for moving the axis one - increment in the plus direction for each off to on transition. -* 'halui.jog..minus' (bit, in) - pin for jogging axis in negative - direction at the halui.jog.speed velocity -* 'halui.jog..plus' (bit, in) - pin for jogging axis in positive - direction at the halui.jog.speed velocity -* 'halui.jog.selected.increment' (float,in) - pin for setting the jog increment - for the selected axis when using increment-minus or incremet-plus to jog. -* 'halui.jog.selected.increment-minus' (bit, in) - pin for moving the selected axis - one increment in the minus direction for each off to on transition. -* 'halui.jog.selected.increment-plus' (bit, in) - pin for moving the selected axis - one increment in the plus direction for each off to on transition. -* 'halui.jog.selected.minus' (bit, in) - pin for jogging the selected axis - in negative direction at the halui.jog.speed velocity -* 'halui.jog.selected.plus' (bit, in) - pin for jogging the selected axis - in positive direction at the halui.jog.speed velocity - -.Joint - - is a number between 0 and 8 and 'selected'. - -* 'halui.joint..has-fault' (bit, out) - status pin telling the joint - has a fault -* 'halui.joint..home' (bit, in) - pin for homing the specific joint -* 'halui.joint..is-homed' (bit, out) - status pin telling that the joint is homed -* 'halui.joint..is-selected bit' (bit, out) - status pin a joint is selected* internal halui -* 'halui.joint..on-hard-max-limit' (bit, out) - status pin telling - joint is on the positive hardware limit switch -* 'halui.joint..on-hard-min-limit' (bit, out) - status pin telling - joint is on the negative hardware limit switch -* 'halui.joint..on-soft-max-limit' (bit, out) - status pin telling - joint is at the positive software limit -* 'halui.joint..on-soft-min-limit' (bit, out) - status pin telling - joint is at the negative software limit -* 'halui.joint..select' (bit, in) - select joint (0..8) - internal halui -* 'halui.joint..unhome' (bit, in) - unhomes this joint -* 'halui.joint.selected' (u32, out) - selected joint (0..8) - internal halui -* 'halui.joint.selected.has-fault' (bit, out) - status pin telling that - the joint has a fault -* 'halui.joint.selected.home' (bit, in) - pin for homing the selected joint -* 'halui.joint.selected.is-homed' (bit, out) - status pin telling that the - selected joint is homed -* 'halui.joint.selected.on-hard-max-limit' (bit, out) - status pin telling - that the selected joint is on the positive hardware limit -* 'halui.joint.selected.on-hard-min-limit' (bit, out) - status pin telling - that the selected joint is on the negative hardware limit -* 'halui.joint.selected.on-soft-max-limit' (bit, out) - status pin telling - that the selected joint is on the positive software limit -* 'halui.joint.selected.on-soft-min-limit' (bit, out) - status pin telling - that the selected joint is on the negative software limit -* 'halui.joint.selected.unhome' (bit, in) - pin for unhoming the selected joint. - -.Lube - -* 'halui.lube.is-on' (bit, out) - indicates lube is on -* 'halui.lube.off' (bit, in) - pin for requesting lube off -* 'halui.lube.on' (bit, in) - pin for requesting lube on - -.Machine - -* 'halui.machine.is-on' (bit, out) - indicates machine on -* 'halui.machine.off' (bit, in) - pin for requesting machine off -* 'halui.machine.on' (bit, in) - pin for requesting machine on - -.Max Velocity - -The maximum linear velocity can be adjusted from 0 to the MAX_VELOCITY -that is set in the [TRAJ] section of the ini file. - -* 'halui.max-velocity.count-enable' (bit, in) - must be true for 'counts' or -'direct-value' to work. -* 'halui.max-velocity.counts' (s32, in) - counts * scale = MV percentage. Can -be used with an encoder or 'direct-value'. -* 'halui.max-velocity.direct-value' (bit, in) - false when using encoder to -change counts, true when setting counts directly. The 'count-enable' pin must -be true. -* 'halui.max-velocity.decrease' (bit, in) - pin for decreasing max velocity -* 'halui.max-velocity.increase' (bit, in) - pin for increasing max velocity -* 'halui.max-velocity.scale' (float, in) - the amount applied to the - current maximum velocity with each transition from off to on of the - increase or decrease pin in machine units per second. -* 'halui.max-velocity.value' (float, out) - is the maximum linear velocity - in machine units per second. - -[[sub:MDI]] -.MDI -(((MDI))) - -Sometimes the user wants to add more complicated tasks to be performed -by the activation of a HAL pin. This is possible using the following -MDI commands scheme: - -* The MDI_COMMAND is added to the ini file in the [HALUI] section. - ----- -[HALUI] -MDI_COMMAND = G0 X0 ----- - -* When halui starts it will read the MDI_COMMAND fields in the ini, and - export pins from 00 to the number of MDI_COMMAND's found in the ini up - to a maximum of 64 commands. -* 'halui.mdi-command-' (bit, in) - halui will try to send the MDI - command defined in the ini. This will not always succeed, depending on - the operating mode LinuxCNC is in (e.g. while in AUTO halui can't - successfully send MDI commands). If the command succeeds then it will - place LinuxCNC in the MDI mode and then back to Manual mode. - -.Joint Selection - -* 'halui.joint.select' (u32, in) - select joint (0..8) - internal halui -* 'halui.joint.selected' (u32, out) - joint (0..8) selected* internal halui -* 'halui.joint.x.select bit' (bit, in) - pins for selecting a joint* internal halui -* 'halui.joint.x.is-selected bit' (bit, out) - indicates joint selected* internal halui - -.Mode - -* 'halui.mode.auto' (bit, in) - pin for requesting auto mode -* 'halui.mode.is-auto' (bit, out) - indicates auto mode is on -* 'halui.mode.is-joint' (bit, out) - indicates joint by joint jog mode is on -* 'halui.mode.is-manual' (bit, out) - indicates manual mode is on -* 'halui.mode.is-mdi' (bit, out) - indicates mdi mode is on -* 'halui.mode.is-teleop' (bit, out) - indicates coordinated jog mode is on -* 'halui.mode.joint' (bit, in) - pin for requesting joint by joint jog mode -* 'halui.mode.manual' (bit, in) - pin for requesting manual mode -* 'halui.mode.mdi' (bit, in) - pin for requesting mdi mode -* 'halui.mode.teleop' (bit, in) - pin for requesting coordinated jog mode - -.Program - -* 'halui.program.block-delete.is-on' (bit, out) - status pin telling that block delete is on -* 'halui.program.block-delete.off' (bit, in) - pin for requesting that block delete is off -* 'halui.program.block-delete.on' (bit, in) - pin for requesting that block delete is on -* 'halui.program.is-idle' (bit, out) - status pin telling that no program is running -* 'halui.program.is-paused' (bit, out) - status pin telling that a program is paused -* 'halui.program.is-running' (bit, out) - status pin telling that a program is running -* 'halui.program.optional-stop.is-on' (bit, out) - status pin telling that the optional stop is on -* 'halui.program.optional-stop.off' (bit, in) - pin requesting that the optional stop is off -* 'halui.program.optional-stop.on' (bit, in) - pin requesting that the optional stop is on -* 'halui.program.pause' (bit, in) - pin for pausing a program -* 'halui.program.resume' (bit, in) - pin for resuming a paused program -* 'halui.program.run' (bit, in) - pin for running a program -* 'halui.program.step' (bit, in) - pin for stepping in a program -* 'halui.program.stop' (bit, in) - pin for stopping a program - -.Spindle Override - -* 'halui.spindle-override.count-enable' (bit, in) - must be true for 'counts' or -'direct-value' to work. -* 'halui.spindle-override.counts' (s32, in) - counts * scale = SO percentage -* 'halui.spindle-override.decrease' (bit, in) - pin for decreasing the SO (-=scale) -* 'halui.spindle-override.direct-value' (bit, in) - false when using encoder to change counts, -true when setting counts directly. The 'count-enable' pin must be true. -* 'halui.spindle-override.increase' (bit, in) - pin for increasing the SO (+=scale) -* 'halui.spindle-override.scale' (float, in) - pin for setting the scale on changing the SO -* 'halui.spindle-override.value' (float, out) - current SO value - -.Spindle - -* 'halui.spindle.brake-is-on' (bit, out) - indicates brake is on -* 'halui.spindle.brake-off' (bit, in) - pin for deactivating spindle/brake -* 'halui.spindle.brake-on' (bit, in) - pin for activating spindle-brake -* 'halui.spindle.decrease' (bit, in) - decreases spindle speed -* 'halui.spindle.forward' (bit, in) - starts the spindle with CW motion -* 'halui.spindle.increase' (bit, in)- increases spindle speed -* 'halui.spindle.is-on' (bit, out) - indicates spindle is on (either direction) -* 'halui.spindle.reverse' (bit, in)- starts the spindle with a CCW motion -* 'halui.spindle.runs-backward' (bit, out) - indicates spindle is on, and in reverse -* 'halui.spindle.runs-forward' (bit, out) - indicates spindle is on, and in forward -* 'halui.spindle.start' (bit, in) - starts the spindle -* 'halui.spindle.stop' (bit, in) - stops the spindle - -.Tool - -* 'halui.tool.length-offset' (float, out) - indicates current applied tool-length-offset -* 'halui.tool.number' (u32, out) - indicates current selected tool - diff --git a/docs/src/gui/halui_es.txt b/docs/src/gui/halui_es.txt deleted file mode 100644 index aa3168d2c48..00000000000 --- a/docs/src/gui/halui_es.txt +++ /dev/null @@ -1,276 +0,0 @@ -= HAL User Interface - -[[cha:hal-user-interface]] (((HAL User Interface))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Introduction[[sec:HaluiIntroduction]] - -Halui is a HAL based user interface for LinuxCNC, it connects HAL pins to -NML commands. Most of the functionality (buttons, indicators etc.) that -is provided by a traditional GUI (mini, Axis, etc.), is provided by HAL -pins in Halui. - -The easiest way to add halui is to add the following to the [HAL] -section of the ini file. - ----- -HALUI = halui ----- - -An alternate way to invoke it is to include the following in your .hal -file. Make sure you use the actual path to your ini file. - ----- -loadusr halui -ini /path/to/inifile.ini ----- - -[[sec:Halui-pin-reference]] -== Halui pin reference - -.Abort - -* 'halui.abort' (bit, in) - pin to send an abort message (clears out most errors) - -.Axis - -* 'halui.axis.n.pos-commanded' (float, out) - Commanded axis position in machine coordinates -* 'halui.axis.n.pos-feedback' (float, out) - Feedback axis position in machine coordinates -* 'halui.axis.n.pos-relative' (float, out) - Commanded axis position in relative coordinates - -.E-Stop - -* 'halui.estop.activate' (bit, in) - pin for requesting E-Stop -* 'halui.estop.is-activated' (bit, out) - indicates E-stop reset -* 'halui.estop.reset' (bit, in) - pin for requesting E-Stop reset - -.Feed Override - -* 'halui.feed-override.count-enable' (bit, in) - must be true for counts to work. -* 'halui.feed-override.counts' (s32, in) - counts * scale = FO percentage -* 'halui.feed-override.decrease' (bit, in) - pin for decreasing the FO (-=scale) -* 'halui.feed-override.increase' (bit, in) - pin for increasing the FO (+=scale) -* 'halui.feed-override.direct-value' (bit, in) - false when using encoder - to change counts, true when setting counts directly. + - The 'count-enable' pin must be true. footnote:[This function had been released, - but is currently withdrawn for further development. It may or may not be - present in your version of LinuxCNC.] -* 'halui.feed-override.scale' (float, in) - pin for setting the scale for - increase and decrease -* 'halui.feed-override.value' (float, out) - current FO value - -.Mist - -* 'halui.mist.is-on' (bit, out) - indicates mist is on -* 'halui.mist.off' (bit, in) - pin for requesting mist off -* 'halui.mist.on' (bit, in) - pin for requesting mist on - -.Flood - -* 'halui.flood.is-on' (bit, out) - indicates flood is on -* 'halui.flood.off' (bit, in) - pin for requesting flood off -* 'halui.flood.on' (bit, in) - pin for requesting flood on - -.Homing - -* 'halui.home-all' (bit, in) - pin for requesting all axis to home. This - pin will only be there if HOME_SEQUENCE is set in the ini file. - -.Jog - - is a number between 0 and 8 and 'selected'. - -* 'halui.jog-deadband' (float, in) - deadband for analog jogging (smaller - jogging speed requests are not performed) -* 'halui.jog-speed' (float, in) - pin for setting jog speed for minus/plus jogging -* 'halui.jog..analog' (float, in) - analog velocity input for jogging - (useful with joysticks or other analog devices) -* 'halui.jog..increment' (float,in) - pin for setting the jog increment for - axis when using increment-minus or increment-plus to jog. -* 'halui.jog..increment-minus' (bit, in) - pin for moving the axis one - increment in the minus direction for each off to on transition. -* 'halui.jog..increment-plus' (bit, in) - pin for moving the axis one - increment in the plus direction for each off to on transition. -* 'halui.jog..minus' (bit, in) - pin for jogging axis in negative - direction at the halui.jog.speed velocity -* 'halui.jog..plus' (bit, in) - pin for jogging axis in positive - direction at the halui.jog.speed velocity -* 'halui.jog.selected.increment' (float,in) - pin for setting the jog increment - for the selected axis when using increment-minus or incremet-plus to jog. -* 'halui.jog.selected.increment-minus' (bit, in) - pin for moving the selected axis - one increment in the minus direction for each off to on transition. -* 'halui.jog.selected.increment-plus' (bit, in) - pin for moving the selected axis - one increment in the plus direction for each off to on transition. -* 'halui.jog.selected.minus' (bit, in) - pin for jogging the selected axis - in negative direction at the halui.jog.speed velocity -* 'halui.jog.selected.plus' (bit, in) - pin for jogging the selected axis - in positive direction at the halui.jog.speed velocity - -.Joint - - is a number between 0 and 8 and 'selected'. - -* 'halui.joint..has-fault' (bit, out) - status pin telling the joint - has a fault -* 'halui.joint..home' (bit, in) - pin for homing the specific joint -* 'halui.joint..is-homed' (bit, out) - status pin telling that the joint is homed -* 'halui.joint..is-selected bit' (bit, out) - status pin a joint is selected* internal halui -* 'halui.joint..on-hard-max-limit' (bit, out) - status pin telling - joint is on the positive hardware limit switch -* 'halui.joint..on-hard-min-limit' (bit, out) - status pin telling - joint is on the negative hardware limit switch -* 'halui.joint..on-soft-max-limit' (bit, out) - status pin telling - joint is at the positive software limit -* 'halui.joint..on-soft-min-limit' (bit, out) - status pin telling - joint is at the negative software limit -* 'halui.joint..select' (bit, in) - select joint (0..8) - internal halui -* 'halui.joint..unhome' (bit, in) - unhomes this joint -* 'halui.joint.selected' (u32, out) - selected joint (0..8) - internal halui -* 'halui.joint.selected.has-fault' (bit, out) - status pin telling that - the joint has a fault -* 'halui.joint.selected.home' (bit, in) - pin for homing the selected joint -* 'halui.joint.selected.is-homed' (bit, out) - status pin telling that the - selected joint is homed -* 'halui.joint.selected.on-hard-max-limit' (bit, out) - status pin telling - that the selected joint is on the positive hardware limit -* 'halui.joint.selected.on-hard-min-limit' (bit, out) - status pin telling - that the selected joint is on the negative hardware limit -* 'halui.joint.selected.on-soft-max-limit' (bit, out) - status pin telling - that the selected joint is on the positive software limit -* 'halui.joint.selected.on-soft-min-limit' (bit, out) - status pin telling - that the selected joint is on the negative software limit -* 'halui.joint.selected.unhome' (bit, in) - pin for unhoming the selected joint. - -.Lube - -* 'halui.lube.is-on' (bit, out) - indicates lube is on -* 'halui.lube.off' (bit, in) - pin for requesting lube off -* 'halui.lube.on' (bit, in) - pin for requesting lube on - -.Machine - -* 'halui.machine.is-on' (bit, out) - indicates machine on -* 'halui.machine.off' (bit, in) - pin for requesting machine off -* 'halui.machine.on' (bit, in) - pin for requesting machine on - -.Max Velocity - -The maximum linear velocity can be adjusted from 0 to the MAX_VELOCITY -that is set in the [TRAJ] section of the ini file. - -* 'halui.max-velocity.count-enable' (bit, in) - when TRUE, modify max - velocity when counts changes -* 'halui.max-velocity.counts' (s32, in) - lets you hook up an encoder to - change the max velocity -* 'halui.max-velocity.decrease' (bit, in) - pin for decreasing max velocity -* 'halui.max-velocity.increase' (bit, in) - pin for increasing max velocity -* 'halui.max-velocity.scale' (float, in) - the amount applied to the - current maximum velocity with each transition from off to on of the - increase or decrease pin in machine units per second. -* 'halui.max-velocity.value' (float, out) - is the maximum linear velocity - in machine units per second. - -[[sub:MDI]] -.MDI -(((MDI))) - -Sometimes the user wants to add more complicated tasks to be performed -by the activation of a HAL pin. This is possible using the following -MDI commands scheme: - -* The MDI_COMMAND is added to the ini file in the [HALUI] section. - ----- -[HALUI] -MDI_COMMAND = G0 X0 ----- - -* When halui starts it will read the MDI_COMMAND fields in the ini, and - export pins from 00 to the number of MDI_COMMAND's found in the ini up - to a maximum of 64 commands. -* 'halui.mdi-command-' (bit, in) - halui will try to send the MDI - command defined in the ini. This will not always succeed, depending on - the operating mode LinuxCNC is in (e.g. while in AUTO halui can't - successfully send MDI commands). If the command succeeds then it will - place LinuxCNC in the MDI mode and then back to Manual mode. - -.Joint Selection - -* 'halui.joint.select' (u32, in) - select joint (0..8) - internal halui -* 'halui.joint.selected' (u32, out) - joint (0..8) selected* internal halui -* 'halui.joint.x.select bit' (bit, in) - pins for selecting a joint* internal halui -* 'halui.joint.x.is-selected bit' (bit, out) - indicates joint selected* internal halui - -.Mode - -* 'halui.mode.auto' (bit, in) - pin for requesting auto mode -* 'halui.mode.is-auto' (bit, out) - indicates auto mode is on -* 'halui.mode.is-joint' (bit, out) - indicates joint by joint jog mode is on -* 'halui.mode.is-manual' (bit, out) - indicates manual mode is on -* 'halui.mode.is-mdi' (bit, out) - indicates mdi mode is on -* 'halui.mode.is-teleop' (bit, out) - indicates coordinated jog mode is on -* 'halui.mode.joint' (bit, in) - pin for requesting joint by joint jog mode -* 'halui.mode.manual' (bit, in) - pin for requesting manual mode -* 'halui.mode.mdi' (bit, in) - pin for requesting mdi mode -* 'halui.mode.teleop' (bit, in) - pin for requesting coordinated jog mode - -.Program - -* 'halui.program.block-delete.is-on' (bit, out) - status pin telling that block delete is on -* 'halui.program.block-delete.off' (bit, in) - pin for requesting that block delete is off -* 'halui.program.block-delete.on' (bit, in) - pin for requesting that block delete is on -* 'halui.program.is-idle' (bit, out) - status pin telling that no program is running -* 'halui.program.is-paused' (bit, out) - status pin telling that a program is paused -* 'halui.program.is-running' (bit, out) - status pin telling that a program is running -* 'halui.program.optional-stop.is-on' (bit, out) - status pin telling that the optional stop is on -* 'halui.program.optional-stop.off' (bit, in) - pin requesting that the optional stop is off -* 'halui.program.optional-stop.on' (bit, in) - pin requesting that the optional stop is on -* 'halui.program.pause' (bit, in) - pin for pausing a program -* 'halui.program.resume' (bit, in) - pin for resuming a paused program -* 'halui.program.run' (bit, in) - pin for running a program -* 'halui.program.step' (bit, in) - pin for stepping in a program -* 'halui.program.stop' (bit, in) - pin for stopping a program - -.Spindle Override - -* 'halui.spindle-override.count-enable' (bit, in) - when TRUE, modify - spindle override when counts changes. -* 'halui.spindle-override.counts' (s32, in) - counts * scale = SO percentage -* 'halui.spindle-override.decrease' (bit, in) - pin for decreasing the SO (-=scale) -* 'halui.spindle-override.direct-value' (bit, in) - false when using encoder to change counts, - true when setting counts directly. The 'count-enable' pin must be true. -* 'halui.spindle-override.increase' (bit, in) - pin for increasing the SO (+=scale) -* 'halui.spindle-override.scale' (float, in) - pin for setting the scale on changing the SO -* 'halui.spindle-override.value' (float, out) - current SO value - -.Spindle - -* 'halui.spindle.brake-is-on' (bit, out) - indicates brake is on -* 'halui.spindle.brake-off' (bit, in) - pin for deactivating spindle/brake -* 'halui.spindle.brake-on' (bit, in) - pin for activating spindle-brake -* 'halui.spindle.decrease' (bit, in) - decreases spindle speed -* 'halui.spindle.forward' (bit, in) - starts the spindle with CW motion -* 'halui.spindle.increase' (bit, in)- increases spindle speed -* 'halui.spindle.is-on' (bit, out) - indicates spindle is on (either direction) -* 'halui.spindle.reverse' (bit, in)- starts the spindle with a CCW motion -* 'halui.spindle.runs-backward' (bit, out) - indicates spindle is on, and in reverse -* 'halui.spindle.runs-forward' (bit, out) - indicates spindle is on, and in forward -* 'halui.spindle.start' (bit, in) - starts the spindle -* 'halui.spindle.stop' (bit, in) - stops the spindle - -.Tool - -* 'halui.tool.length-offset' (float, out) - indicates current applied tool-length-offset -* 'halui.tool.number' (u32, out) - indicates current selected tool - diff --git a/docs/src/gui/image-to-gcode.txt b/docs/src/gui/image-to-gcode.txt deleted file mode 100644 index 6cfbfeb18c7..00000000000 --- a/docs/src/gui/image-to-gcode.txt +++ /dev/null @@ -1,183 +0,0 @@ -= Image to G Code - -[[cha:image-to-g-code]] (((Image to G Code))) - -image::images/image-to-gcode.png[align="center"] - -== What is a depth map? - -A depth map is a greyscale image where the brightness of each pixel -corresponds to the depth (or height) of the object at each point. - -== Integrating image-to-gcode with the AXIS user interface - -Add the following lines to the '[FILTER]' section of your .ini file -to make AXIS automatically invoke -image-to-gcode when you open a .png, .gif, or .jpg image - ----- -PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image -png = image-to-gcode -gif = image-to-gcode -jpg = image-to-gcode ----- - -The standard 'sim/axis.ini' configuration file is already configured -this way. - -== Using image-to-gcode - -Start image-to-gcode either by opening an image file in AXIS, or by -invoking image-to-gcode from the terminal, as follows: - ----- -image-to-gcode torus.png > torus.ngc ----- - -Verify all the settings in the right-hand column, then press OK to -create the gcode. Depending on the image size and options chosen, this -may take from a few seconds to a few minutes. If you are loading the -image in AXIS, the gcode will automatically be loaded and previewed -once image-to-gcode completes. In AXIS, hitting reload will show the -image-to-gcode option screen again, allowing you to tweak them. - -== Option Reference - -=== Units - -Specifies whether to use G20 (inches) or G21 (mm) in the generated -g-code and as the units for each option labeled '(units)'. - -=== Invert Image - -If “noâ€, the black pixel is the lowest point and the white pixel is -the highest point. If “yesâ€, the black pixel is the highest point and -the white pixel is the lowest point. - -=== Normalize Image - -If 'yes', the darkest pixel is remapped to black, the lightest pixel -is remapped to white. - -=== Expand Image Border - -If 'None', the input image is used as-is, and details which are at the -very edges of the image may be cut off. If 'White' or 'Black', then a -border of pixels equal to the tool diameter is added on all sides, and -details which are at the very edges of the images will not be cut off. - -=== Tolerance (units) - -When a series of points are within 'tolerance' of being a straight -line, they are output as a straight line. -Increasing tolerance can lead to better contouring performance in LinuxCNC, -but can also remove or blur small details in the image. - -=== Pixel Size (units) - -One pixel in the input image will be this many units--usually this -number is much smaller than 1.0. For instance, to mill a 2.5x2.5-inch -object from a 400x400 image file, use a pixel size of .00625, because -2.5 / 400 = .00625. - -=== Plunge Feed Rate (units per minute) - -The feed rate for the initial plunge movement. - -=== Feed Rate (units per minute) - -The feed rate for other parts of the path. - -=== Spindle Speed (RPM) - -The spindle speed S code that should be put into the gcode file. - -=== Scan Pattern - -Possible scan patterns are: - - - Rows - - Columns - - Rows, then Columns - - Columns, then Rows - -=== Scan Direction - -Possible scan directions are: - - - Positive: Start milling at a low X or Y axis value, and move towards a - high X or Y axis value - - Negative: Start milling at a high X or Y axis value, and move towards - a low X or Y axis value - - Alternating: Start on the same end of the X or Y axis travel that the - last move ended on. This reduces the amount of traverse movements - - Up Milling: Start milling at low points, moving towards high points - - Down Milling: Start milling at high points, moving towards low points - -=== Depth (units) - -The top of material is always at 'Z=0'. The deepest cut into the -material is 'Z=-depth.' - -=== Step Over (pixels) - -The distance between adjacent rows or columns. To find the number of -pixels for a given units distance, compute 'distance/pixel size' and -round to the nearest whole number. For example, if 'pixel size=.006' -and the desired step over 'distance=.015', then use a Step Over of 2 or -3 pixels, because '.015/.006=2.5''.' - -=== Tool Diameter - -The diameter of the cutting part of the tool. - -=== Safety Height - -The height to move to for traverse movements. image-to-gcode always -assumes the top of material is at 'Z=0'. - -=== Tool Type - -The shape of the cutting part of the tool. Possible tool shapes are: - - - Ball End - - Flat End - - 45 degree “vee†- - 60 degree “vee†- -=== Lace bounding - -This controls whether areas that are relatively flat along a row or -column are skipped. This option only makes sense when both rows and -columns are being milled. Possible bounding options are: - - - None: Rows and columns are both fully milled. - - Secondary: When milling in the second direction, areas that do not - strongly slope in that direction are skipped. - - Full: When milling in the first direction, areas that strongly slope - in the second direction are skipped. When milling in the second - direction, areas that do not strongly slope in that direction are - skipped. - -=== Contact angle - -When 'Lace bounding' is not 'None', slopes greater than 'Contact angle' -are considered to be 'strong' slopes, and slopes less than that angle -are considered to be weak slopes. - -=== Roughing offset and depth per pass - -Image-to-gcode can optionally perform rouging passes. The depth of -successive roughing passes is given by 'Roughing depth per pass'. For -instance, entering 0.2 will perform the first roughing pass with a -depth of 0.2, the second roughing pass with a depth of 0.4, and so on -until the full Depth of the image is reached. No part of any roughing -pass will cut closer than Roughing Offset to the final part. The following -figure shows a tall vertical feature being milled. -In this image, Roughing depth per pass is 0.2 inches and roughing -offset is 0.1 inches. - -.Roughing passes and final pass[[roughing-passes]] - -image::images/i2g-roughing.png[] - diff --git a/docs/src/gui/image-to-gcode_es.txt b/docs/src/gui/image-to-gcode_es.txt deleted file mode 100644 index e18aa8620cd..00000000000 --- a/docs/src/gui/image-to-gcode_es.txt +++ /dev/null @@ -1,196 +0,0 @@ -= Image to G Code - -[[cha:image-to-g-code]] (((Image to G Code))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -image::images/image-to-gcode.png[align="center"] - -== What is a depth map? - -A depth map is a greyscale image where the brightness of each pixel -corresponds to the depth (or height) of the object at each point. - -== Integrating image-to-gcode with the AXIS user interface - -Add the following lines to the '[FILTER]' section of your .ini file -to make AXIS automatically invoke -image-to-gcode when you open a .png, .gif, or .jpg image - ----- -PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image -png = image-to-gcode -gif = image-to-gcode -jpg = image-to-gcode ----- - -The standard 'sim/axis.ini' configuration file is already configured -this way. - -== Using image-to-gcode - -Start image-to-gcode either by opening an image file in AXIS, or by -invoking image-to-gcode from the terminal, as follows: - ----- -image-to-gcode torus.png > torus.ngc ----- - -Verify all the settings in the right-hand column, then press OK to -create the gcode. Depending on the image size and options chosen, this -may take from a few seconds to a few minutes. If you are loading the -image in AXIS, the gcode will automatically be loaded and previewed -once image-to-gcode completes. In AXIS, hitting reload will show the -image-to-gcode option screen again, allowing you to tweak them. - -== Option Reference - -=== Units - -Specifies whether to use G20 (inches) or G21 (mm) in the generated -g-code and as the units for each option labeled '(units)'. - -=== Invert Image - -If “noâ€, the black pixel is the lowest point and the white pixel is -the highest point. If “yesâ€, the black pixel is the highest point and -the white pixel is the lowest point. - -=== Normalize Image - -If 'yes', the darkest pixel is remapped to black, the lightest pixel -is remapped to white. - -=== Expand Image Border - -If 'None', the input image is used as-is, and details which are at the -very edges of the image may be cut off. If 'White' or 'Black', then a -border of pixels equal to the tool diameter is added on all sides, and -details which are at the very edges of the images will not be cut off. - -=== Tolerance (units) - -When a series of points are within 'tolerance' of being a straight -line, they are output as a straight line. -Increasing tolerance can lead to better contouring performance in LinuxCNC, -but can also remove or blur small details in the image. - -=== Pixel Size (units) - -One pixel in the input image will be this many units--usually this -number is much smaller than 1.0. For instance, to mill a 2.5x2.5-inch -object from a 400x400 image file, use a pixel size of .00625, because -2.5 / 400 = .00625. - -=== Plunge Feed Rate (units per minute) - -The feed rate for the initial plunge movement. - -=== Feed Rate (units per minute) - -The feed rate for other parts of the path. - -=== Spindle Speed (RPM) - -The spindle speed S code that should be put into the gcode file. - -=== Scan Pattern - -Possible scan patterns are: - - - Rows - - Columns - - Rows, then Columns - - Columns, then Rows - -=== Scan Direction - -Possible scan directions are: - - - Positive: Start milling at a low X or Y axis value, and move towards a - high X or Y axis value - - Negative: Start milling at a high X or Y axis value, and move towards - a low X or Y axis value - - Alternating: Start on the same end of the X or Y axis travel that the - last move ended on. This reduces the amount of traverse movements - - Up Milling: Start milling at low points, moving towards high points - - Down Milling: Start milling at high points, moving towards low points - -=== Depth (units) - -The top of material is always at 'Z=0'. The deepest cut into the -material is 'Z=-depth.' - -=== Step Over (pixels) - -The distance between adjacent rows or columns. To find the number of -pixels for a given units distance, compute 'distance/pixel size' and -round to the nearest whole number. For example, if 'pixel size=.006' -and the desired step over 'distance=.015', then use a Step Over of 2 or -3 pixels, because '.015/.006=2.5''.' - -=== Tool Diameter - -The diameter of the cutting part of the tool. - -=== Safety Height - -The height to move to for traverse movements. image-to-gcode always -assumes the top of material is at 'Z=0'. - -=== Tool Type - -The shape of the cutting part of the tool. Possible tool shapes are: - - - Ball End - - Flat End - - 45 degree “vee†- - 60 degree “vee†- -=== Lace bounding - -This controls whether areas that are relatively flat along a row or -column are skipped. This option only makes sense when both rows and -columns are being milled. Possible bounding options are: - - - None: Rows and columns are both fully milled. - - Secondary: When milling in the second direction, areas that do not - strongly slope in that direction are skipped. - - Full: When milling in the first direction, areas that strongly slope - in the second direction are skipped. When milling in the second - direction, areas that do not strongly slope in that direction are - skipped. - -=== Contact angle - -When 'Lace bounding' is not 'None', slopes greater than 'Contact angle' -are considered to be 'strong' slopes, and slopes less than that angle -are considered to be weak slopes. - -=== Roughing offset and depth per pass - -Image-to-gcode can optionally perform rouging passes. The depth of -successive roughing passes is given by 'Roughing depth per pass'. For -instance, entering 0.2 will perform the first roughing pass with a -depth of 0.2, the second roughing pass with a depth of 0.4, and so on -until the full Depth of the image is reached. No part of any roughing -pass will cut closer than Roughing Offset to the final part. The following -figure shows a tall vertical feature being milled. -In this image, Roughing depth per pass is 0.2 inches and roughing -offset is 0.1 inches. - -.Roughing passes and final pass[[roughing-passes]] - -image::images/i2g-roughing.png[] - diff --git a/docs/src/gui/image-to-gcode_fr.txt b/docs/src/gui/image-to-gcode_fr.txt deleted file mode 100644 index eccacb2700e..00000000000 --- a/docs/src/gui/image-to-gcode_fr.txt +++ /dev/null @@ -1,189 +0,0 @@ -:lang: fr -:toc: - -= Image-to-gcode: Usiner un depth maps - -image::images/image-to-gcode.png[] - -== Qu'est-ce qu'un _depth map_? - -Il s'agit d'une image en échelle de gris dont la luminosité de chaque -pixel corresponds à la profondeur (ou hauteur) de chaque point de -l'objet. - -== Intégrer image-to-gcode dans l'interface utilisateur d'AXIS - -Ajoutez les lignes suivantes dans la section: _[FILTER]_ de votre -fichier .ini pour qu'AXIS invoque automatiquement -image-to-gcode à l'ouverture d'une image .png, .gif, ou .jpg: ----- -PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image ----- - -Le fichier de configuration: _sim/axis.ini_ est déjà configuré de -cette façon. - -== Utilisation d'image-to-gcode - -image-to-gcode peut être démarré soit en ouvrant une image dans AXIS, -soit en invoquant image-to-gcode dans une console, de la manière -suivante: ----- -image-to-gcode torus.png > torus.ngc ----- - -Ajustez les réglages dans la colonne de droite, puis pressez _OK_ pour -créer le G-code. Selon la taille de l'image et les options choisies, le -traitement peut durer de quelques secondes à quelques minutes. Quand -une image est appelée, le G-code sera automatiquement chargé et -visualisé dans AXIS une fois le traitement terminé. Dans AXIS, faites -_Recharger_ pour afficher de nouveau l'écran d'options d' -image-to-gcode, vous pourrez ainsi travailler en boucle. - -== Les différentes options - -=== Unités - -Spécifie quelle unité sera utilisée dans le G-code généré G20 (pouces) -ou G21 (mm), ce sera également l'unité utilisée par toutes les options -marquées: _(units)_. - -=== Invert Image - -Si _no_, le pixel noir sera le point le plus bas et le pixel blanc le -point le plus haut. Si _yes_, le pixel noir sera le point le plus haut -et le pixel blanc le point le plus bas. - -=== Normalize Image - -Si _yes_, le pixel le plus sombre est ramené au noir, le pixel le plus -lumineux est ramené au blanc. - -=== Expand Image Border - -Si _None_, l'image entrée sera utilisée telle-quelle, les détails les -plus aux bords de l'image pourraient être coupés. Si _White_ ou -_Black_, alors une bordure de pixels égale au diamètre de l'outil sera -ajoutée sur tout le pourtour pour éviter ce risque. - -=== Tolerance (unités) - -Quand une série de points est proche d'une ligne droite au point -d'être dans la _tolerance_ , elle sera traitée comme une ligne droite -en sortie. Augmenter la -tolérance peut donner de meilleures performances de contourage avec -LinuxCNC, mais peut aussi estomper ou gommer les détails les plus fins de -l'image. - -=== Pixel Size (unités) - -Il y a beaucoup d'unités pour un pixel dans l'image entrée. -Habituellement ce nombre est beaucoup plus petit que 1.0. Par exemple, -pour usiner un objet de 50x50mm depuis une image de 400x400 pixels, -utiliser un _pixel size_ de 0.125, parce que 50 / 400 = 0.125. - -=== Plunge Feed Rate (unités par minute) - -Vitesse du mouvement de plongée initial. - -=== Feed Rate (unités par minute) - -Vitesse d'avance pour le reste de l'usinage. - -=== Spindle Speed (RPM) - -Vitesse de rotation de la broche, en tours/mn - -=== Scan Pattern - -Modèles de balayage possibles: - - - Rangées - - Colonnes - - Rangées puis colonnes - - Colonnes puis rangées - -=== Scan Direction - -Directions de balayage possibles: - - - Positive: le fraisage commence à de petites valeurs de X ou Y et se - poursuit avec des valeurs croissantes. - - Négative: le fraisage commence à des valeurs élevées de X ou Y et se - poursuit avec des valeurs décroissantes. - - Alternative: le fraisage commence aux valeurs de X ou Y où s'est - terminé le dernier mouvement. Cela réduit les déplacements _en l'air_. - - Up Milling: le fraisage commence en points bas et se poursuit vers les - points hauts. - - Down Milling: le fraisage commence en points hauts et se poursuit vers - les points bas. - -=== Depth (unités) - -Le dessus du bloc est toujours à _Z=0_. La profondeur d'usinage dans -le matériau est de _Z=-depth._ - -=== Step Over (pixels) - -Distance entre rangées ou colonnes adjacentes. Pour trouver le nombre -en pixels pour une distance donnée en unités, calculez: _distance/pixel -size_ et arrondissez au nombre le plus proche'.' Par exemple: si _pixel -size=.006_ et le pas souhaité sur la _distance=.015_, alors utilisez un -Step Over de 2 ou 3 pixels, parce que _.015/.006=2.5_'.' - -=== Tool Diameter - -Le diamètre du taillant de l'outil. - -=== Safety Height - -La hauteur à laquelle les mouvements de traversée. image-to-gcode -considère toujours le dessus du matériau comme étant: _Z=0_. - -=== Tool Type - -La forme du taillant de l'outil. Les formes possibles sont: - - - Hémisphèrique - - Plate - - Vé à 45 degrés - - Vé à 60 degrés - -=== Lace bounding - -Contrôle si les zones relativement plates le long d'une colonne ou -d'une rangée peuvent être ignorées. Ces options n'ont de sens que pour -un fraisage dans les deux directions. Trois choix sont possibles: - - - None: toutes les rangées et les colonnes seront entièrement fraisées. - - Secondary: lors du fraisage dans la deuxième direction, les zones qui - ne présentent pas une forte pente dans cette direction seront ignorées. - - Full: lors du fraisage dans la première direction, les zones qui - présentent une forte pente dans la deuxième direction seront ignorées. - Lors du fraisage dans la deuxième direction, les zones qui ne - présentent pas une forte pente dans cette direction seront ignorées. - -=== Contact angle - -Quand _Lace bounding_ n'est pas None, les pentes qui présentent une -pente supérieure à _Contact angle_ seront considérées comme de -_fortes_ pentes et celles en dessous de -cet angle considérées comme de faible pentes. - -=== Offset d'ébauche et profondeur par passe d'ébauche - -Image-to-gcode peut optionnellement produire des passes d'ébauche. La -profondeur des passes d'ébauche successives est fixée par _Roughing -depth per pass_. Par exemple, entrer 0.2 pour une première passe -d'ébauche d'une profondeur de 0.2, la seconde passe d'ébauche aura une -profondeur de 0.4 et ainsi de suite, jusqu'à-ce que la profondeur -totale Depth de l'image soit atteinte. Aucune des passes d'ébauche -n'usinera plus près de la partie finale que Roughing Offset. La figure -ci-dessous montre une grande profondeur verticale à -usiner. Sur cette image, la profondeur des passes d'ébauche est de 0.2 -pouces et Roughing Offset de 0.1 pouces. - -.Passes d'ébauche[[cap:Passes-Ebauche]] - -image::images/i2g-roughing.png[] - diff --git a/docs/src/gui/images/JogWheel.png b/docs/src/gui/images/JogWheel.png deleted file mode 100644 index e4ec31a361e..00000000000 Binary files a/docs/src/gui/images/JogWheel.png and /dev/null differ diff --git a/docs/src/gui/images/axis-2.5.png b/docs/src/gui/images/axis-2.5.png deleted file mode 100644 index fe50f6a9113..00000000000 Binary files a/docs/src/gui/images/axis-2.5.png and /dev/null differ diff --git a/docs/src/gui/images/axis-codeentry_fr.png b/docs/src/gui/images/axis-codeentry_fr.png deleted file mode 100644 index a4fc97f57b6..00000000000 Binary files a/docs/src/gui/images/axis-codeentry_fr.png and /dev/null differ diff --git a/docs/src/gui/images/axis-currentandselected.png b/docs/src/gui/images/axis-currentandselected.png deleted file mode 100644 index 77bd0efa59b..00000000000 Binary files a/docs/src/gui/images/axis-currentandselected.png and /dev/null differ diff --git a/docs/src/gui/images/axis-currentandselected_fr.png b/docs/src/gui/images/axis-currentandselected_fr.png deleted file mode 100644 index 37d854ade81..00000000000 Binary files a/docs/src/gui/images/axis-currentandselected_fr.png and /dev/null differ diff --git a/docs/src/gui/images/axis-emc-status.png b/docs/src/gui/images/axis-emc-status.png deleted file mode 100644 index 9b18b707ec7..00000000000 Binary files a/docs/src/gui/images/axis-emc-status.png and /dev/null differ diff --git a/docs/src/gui/images/axis-gladevcp.png b/docs/src/gui/images/axis-gladevcp.png deleted file mode 100644 index f5705efd18e..00000000000 Binary files a/docs/src/gui/images/axis-gladevcp.png and /dev/null differ diff --git a/docs/src/gui/images/axis-homed.png b/docs/src/gui/images/axis-homed.png deleted file mode 100644 index 11008628c43..00000000000 Binary files a/docs/src/gui/images/axis-homed.png and /dev/null differ diff --git a/docs/src/gui/images/axis-lathe-tool.png b/docs/src/gui/images/axis-lathe-tool.png deleted file mode 100644 index b943c9ab491..00000000000 Binary files a/docs/src/gui/images/axis-lathe-tool.png and /dev/null differ diff --git a/docs/src/gui/images/axis-limit.png b/docs/src/gui/images/axis-limit.png deleted file mode 100644 index 55b501dc867..00000000000 Binary files a/docs/src/gui/images/axis-limit.png and /dev/null differ diff --git a/docs/src/gui/images/axis-machineorigin.png b/docs/src/gui/images/axis-machineorigin.png deleted file mode 100644 index 39d776da242..00000000000 Binary files a/docs/src/gui/images/axis-machineorigin.png and /dev/null differ diff --git a/docs/src/gui/images/axis-mdi.png b/docs/src/gui/images/axis-mdi.png deleted file mode 100644 index e8d575eb303..00000000000 Binary files a/docs/src/gui/images/axis-mdi.png and /dev/null differ diff --git a/docs/src/gui/images/axis-outofrange.png b/docs/src/gui/images/axis-outofrange.png deleted file mode 100644 index 5e360d1e83f..00000000000 Binary files a/docs/src/gui/images/axis-outofrange.png and /dev/null differ diff --git a/docs/src/gui/images/axis_25_fr.png b/docs/src/gui/images/axis_25_fr.png deleted file mode 100644 index c7509aea7e5..00000000000 Binary files a/docs/src/gui/images/axis_25_fr.png and /dev/null differ diff --git a/docs/src/gui/images/button.png b/docs/src/gui/images/button.png deleted file mode 100644 index 2f61765bb5f..00000000000 Binary files a/docs/src/gui/images/button.png and /dev/null differ diff --git a/docs/src/gui/images/checkbutton.png b/docs/src/gui/images/checkbutton.png deleted file mode 100644 index 9e784e3e283..00000000000 Binary files a/docs/src/gui/images/checkbutton.png and /dev/null differ diff --git a/docs/src/gui/images/combi_dro.png b/docs/src/gui/images/combi_dro.png deleted file mode 100644 index 9579584f959..00000000000 Binary files a/docs/src/gui/images/combi_dro.png and /dev/null differ diff --git a/docs/src/gui/images/emc-actions.png b/docs/src/gui/images/emc-actions.png deleted file mode 100644 index 55a4aeee448..00000000000 Binary files a/docs/src/gui/images/emc-actions.png and /dev/null differ diff --git a/docs/src/gui/images/example-float-small.png b/docs/src/gui/images/example-float-small.png deleted file mode 100644 index 6bdf74e5ea6..00000000000 Binary files a/docs/src/gui/images/example-float-small.png and /dev/null differ diff --git a/docs/src/gui/images/example-float.png b/docs/src/gui/images/example-float.png deleted file mode 100644 index 170d0605fe3..00000000000 Binary files a/docs/src/gui/images/example-float.png and /dev/null differ diff --git a/docs/src/gui/images/example-panel-small.png b/docs/src/gui/images/example-panel-small.png deleted file mode 100644 index 603d8d3621e..00000000000 Binary files a/docs/src/gui/images/example-panel-small.png and /dev/null differ diff --git a/docs/src/gui/images/example-panel.png b/docs/src/gui/images/example-panel.png deleted file mode 100644 index aa09f82dda9..00000000000 Binary files a/docs/src/gui/images/example-panel.png and /dev/null differ diff --git a/docs/src/gui/images/example-tabbed-small.png b/docs/src/gui/images/example-tabbed-small.png deleted file mode 100644 index bd2f5bf7a20..00000000000 Binary files a/docs/src/gui/images/example-tabbed-small.png and /dev/null differ diff --git a/docs/src/gui/images/example-tabbed.png b/docs/src/gui/images/example-tabbed.png deleted file mode 100644 index b17285aed01..00000000000 Binary files a/docs/src/gui/images/example-tabbed.png and /dev/null differ diff --git a/docs/src/gui/images/glade-manual-small.png b/docs/src/gui/images/glade-manual-small.png deleted file mode 100644 index 6233668d7b7..00000000000 Binary files a/docs/src/gui/images/glade-manual-small.png and /dev/null differ diff --git a/docs/src/gui/images/glade-manual.png b/docs/src/gui/images/glade-manual.png deleted file mode 100644 index a6e621e95f7..00000000000 Binary files a/docs/src/gui/images/glade-manual.png and /dev/null differ diff --git a/docs/src/gui/images/glade-myui.png b/docs/src/gui/images/glade-myui.png deleted file mode 100644 index 4dd1c048913..00000000000 Binary files a/docs/src/gui/images/glade-myui.png and /dev/null differ diff --git a/docs/src/gui/images/gremlin.jpg b/docs/src/gui/images/gremlin.jpg deleted file mode 100644 index a79769a0e4d..00000000000 Binary files a/docs/src/gui/images/gremlin.jpg and /dev/null differ diff --git a/docs/src/gui/images/gremlin.png b/docs/src/gui/images/gremlin.png deleted file mode 100644 index a48faf9423b..00000000000 Binary files a/docs/src/gui/images/gremlin.png and /dev/null differ diff --git a/docs/src/gui/images/gtk-tooledit.png b/docs/src/gui/images/gtk-tooledit.png deleted file mode 100644 index 99390e093e0..00000000000 Binary files a/docs/src/gui/images/gtk-tooledit.png and /dev/null differ diff --git a/docs/src/gui/images/hal-pin-change-66.png b/docs/src/gui/images/hal-pin-change-66.png deleted file mode 100644 index 8f6f0e08877..00000000000 Binary files a/docs/src/gui/images/hal-pin-change-66.png and /dev/null differ diff --git a/docs/src/gui/images/hal-pin-change-cut.png b/docs/src/gui/images/hal-pin-change-cut.png deleted file mode 100644 index 3827fef191e..00000000000 Binary files a/docs/src/gui/images/hal-pin-change-cut.png and /dev/null differ diff --git a/docs/src/gui/images/hal-pin-change.png b/docs/src/gui/images/hal-pin-change.png deleted file mode 100644 index 517487c37c1..00000000000 Binary files a/docs/src/gui/images/hal-pin-change.png and /dev/null differ diff --git a/docs/src/gui/images/hal_hbar.png b/docs/src/gui/images/hal_hbar.png deleted file mode 100644 index 3f581b2c362..00000000000 Binary files a/docs/src/gui/images/hal_hbar.png and /dev/null differ diff --git a/docs/src/gui/images/hal_meter.png b/docs/src/gui/images/hal_meter.png deleted file mode 100644 index 4984773846c..00000000000 Binary files a/docs/src/gui/images/hal_meter.png and /dev/null differ diff --git a/docs/src/gui/images/hal_sourceview.png b/docs/src/gui/images/hal_sourceview.png deleted file mode 100644 index 77dcba3e42e..00000000000 Binary files a/docs/src/gui/images/hal_sourceview.png and /dev/null differ diff --git a/docs/src/gui/images/holes.png b/docs/src/gui/images/holes.png deleted file mode 100644 index ed935bb87c0..00000000000 Binary files a/docs/src/gui/images/holes.png and /dev/null differ diff --git a/docs/src/gui/images/hscale.png b/docs/src/gui/images/hscale.png deleted file mode 100644 index 204ee585cd7..00000000000 Binary files a/docs/src/gui/images/hscale.png and /dev/null differ diff --git a/docs/src/gui/images/i2g-roughing.png b/docs/src/gui/images/i2g-roughing.png deleted file mode 100644 index ef0df35ef18..00000000000 Binary files a/docs/src/gui/images/i2g-roughing.png and /dev/null differ diff --git a/docs/src/gui/images/iconview.png b/docs/src/gui/images/iconview.png deleted file mode 100644 index 16a9802c44c..00000000000 Binary files a/docs/src/gui/images/iconview.png and /dev/null differ diff --git a/docs/src/gui/images/image-to-gcode.png b/docs/src/gui/images/image-to-gcode.png deleted file mode 100644 index e2d607bb41a..00000000000 Binary files a/docs/src/gui/images/image-to-gcode.png and /dev/null differ diff --git a/docs/src/gui/images/keystick.png b/docs/src/gui/images/keystick.png deleted file mode 100644 index 63e7cdbc7ef..00000000000 Binary files a/docs/src/gui/images/keystick.png and /dev/null differ diff --git a/docs/src/gui/images/leds.png b/docs/src/gui/images/leds.png deleted file mode 100644 index bd38678ec84..00000000000 Binary files a/docs/src/gui/images/leds.png and /dev/null differ diff --git a/docs/src/gui/images/manual-tool-change.png b/docs/src/gui/images/manual-tool-change.png deleted file mode 100644 index fe56c1127cd..00000000000 Binary files a/docs/src/gui/images/manual-tool-change.png and /dev/null differ diff --git a/docs/src/gui/images/manualtoolchange_fr.png b/docs/src/gui/images/manualtoolchange_fr.png deleted file mode 100644 index 237dc0a6c50..00000000000 Binary files a/docs/src/gui/images/manualtoolchange_fr.png and /dev/null differ diff --git a/docs/src/gui/images/mini01.png b/docs/src/gui/images/mini01.png deleted file mode 100644 index 6a146e71c43..00000000000 Binary files a/docs/src/gui/images/mini01.png and /dev/null differ diff --git a/docs/src/gui/images/mini01_fr.png b/docs/src/gui/images/mini01_fr.png deleted file mode 100644 index bbcae4d943a..00000000000 Binary files a/docs/src/gui/images/mini01_fr.png and /dev/null differ diff --git a/docs/src/gui/images/mini02.png b/docs/src/gui/images/mini02.png deleted file mode 100644 index 3da0df1abe7..00000000000 Binary files a/docs/src/gui/images/mini02.png and /dev/null differ diff --git a/docs/src/gui/images/mini_fr.png b/docs/src/gui/images/mini_fr.png deleted file mode 100644 index 3ed1295717e..00000000000 Binary files a/docs/src/gui/images/mini_fr.png and /dev/null differ diff --git a/docs/src/gui/images/miniauto.png b/docs/src/gui/images/miniauto.png deleted file mode 100644 index a391c14aa97..00000000000 Binary files a/docs/src/gui/images/miniauto.png and /dev/null differ diff --git a/docs/src/gui/images/miniauto_fr.png b/docs/src/gui/images/miniauto_fr.png deleted file mode 100644 index ccf531eb497..00000000000 Binary files a/docs/src/gui/images/miniauto_fr.png and /dev/null differ diff --git a/docs/src/gui/images/minibkplot.png b/docs/src/gui/images/minibkplot.png deleted file mode 100644 index d80f3a92dc8..00000000000 Binary files a/docs/src/gui/images/minibkplot.png and /dev/null differ diff --git a/docs/src/gui/images/minibkplot_fr.png b/docs/src/gui/images/minibkplot_fr.png deleted file mode 100644 index efcbc7ea331..00000000000 Binary files a/docs/src/gui/images/minibkplot_fr.png and /dev/null differ diff --git a/docs/src/gui/images/miniedit.png b/docs/src/gui/images/miniedit.png deleted file mode 100644 index 3cbaba3d15b..00000000000 Binary files a/docs/src/gui/images/miniedit.png and /dev/null differ diff --git a/docs/src/gui/images/miniedit_fr.png b/docs/src/gui/images/miniedit_fr.png deleted file mode 100644 index 96bdc9c8802..00000000000 Binary files a/docs/src/gui/images/miniedit_fr.png and /dev/null differ diff --git a/docs/src/gui/images/miniman.png b/docs/src/gui/images/miniman.png deleted file mode 100644 index 58c41ce011e..00000000000 Binary files a/docs/src/gui/images/miniman.png and /dev/null differ diff --git a/docs/src/gui/images/miniman_fr.png b/docs/src/gui/images/miniman_fr.png deleted file mode 100644 index de22c8afd29..00000000000 Binary files a/docs/src/gui/images/miniman_fr.png and /dev/null differ diff --git a/docs/src/gui/images/minioffsets.png b/docs/src/gui/images/minioffsets.png deleted file mode 100644 index 4d1e03ff0e2..00000000000 Binary files a/docs/src/gui/images/minioffsets.png and /dev/null differ diff --git a/docs/src/gui/images/minioffsets_fr.png b/docs/src/gui/images/minioffsets_fr.png deleted file mode 100644 index 7d2d60d19e3..00000000000 Binary files a/docs/src/gui/images/minioffsets_fr.png and /dev/null differ diff --git a/docs/src/gui/images/minitool.png b/docs/src/gui/images/minitool.png deleted file mode 100644 index c00bd2e0a94..00000000000 Binary files a/docs/src/gui/images/minitool.png and /dev/null differ diff --git a/docs/src/gui/images/minitool_fr.png b/docs/src/gui/images/minitool_fr.png deleted file mode 100644 index 534e50ef528..00000000000 Binary files a/docs/src/gui/images/minitool_fr.png and /dev/null differ diff --git a/docs/src/gui/images/ngcgui-db25-1.png b/docs/src/gui/images/ngcgui-db25-1.png deleted file mode 100644 index 1cd0bf0e54a..00000000000 Binary files a/docs/src/gui/images/ngcgui-db25-1.png and /dev/null differ diff --git a/docs/src/gui/images/ngcgui-db25-1_fr.png b/docs/src/gui/images/ngcgui-db25-1_fr.png deleted file mode 100644 index c7bcb925dad..00000000000 Binary files a/docs/src/gui/images/ngcgui-db25-1_fr.png and /dev/null differ diff --git a/docs/src/gui/images/ngcgui-db25-2.png b/docs/src/gui/images/ngcgui-db25-2.png deleted file mode 100644 index 18ab2c08c57..00000000000 Binary files a/docs/src/gui/images/ngcgui-db25-2.png and /dev/null differ diff --git a/docs/src/gui/images/ngcgui-db25-2_fr.png b/docs/src/gui/images/ngcgui-db25-2_fr.png deleted file mode 100644 index 5a7f51b020c..00000000000 Binary files a/docs/src/gui/images/ngcgui-db25-2_fr.png and /dev/null differ diff --git a/docs/src/gui/images/ngcgui-db25-3.png b/docs/src/gui/images/ngcgui-db25-3.png deleted file mode 100644 index a8a0a20da70..00000000000 Binary files a/docs/src/gui/images/ngcgui-db25-3.png and /dev/null differ diff --git a/docs/src/gui/images/ngcgui-db25-3_fr.png b/docs/src/gui/images/ngcgui-db25-3_fr.png deleted file mode 100644 index f5b724213cf..00000000000 Binary files a/docs/src/gui/images/ngcgui-db25-3_fr.png and /dev/null differ diff --git a/docs/src/gui/images/ngcgui.png b/docs/src/gui/images/ngcgui.png deleted file mode 100644 index 8ef01b2d99c..00000000000 Binary files a/docs/src/gui/images/ngcgui.png and /dev/null differ diff --git a/docs/src/gui/images/ngcgui_fr.png b/docs/src/gui/images/ngcgui_fr.png deleted file mode 100644 index 93ccdf9ef1a..00000000000 Binary files a/docs/src/gui/images/ngcgui_fr.png and /dev/null differ diff --git a/docs/src/gui/images/offsetpage.png b/docs/src/gui/images/offsetpage.png deleted file mode 100644 index 9fa842bbf65..00000000000 Binary files a/docs/src/gui/images/offsetpage.png and /dev/null differ diff --git a/docs/src/gui/images/oword.png b/docs/src/gui/images/oword.png deleted file mode 100644 index 28fd103e0ee..00000000000 Binary files a/docs/src/gui/images/oword.png and /dev/null differ diff --git a/docs/src/gui/images/progressbar2.png b/docs/src/gui/images/progressbar2.png deleted file mode 100644 index 45c95cf56d7..00000000000 Binary files a/docs/src/gui/images/progressbar2.png and /dev/null differ diff --git a/docs/src/gui/images/radiobutton.png b/docs/src/gui/images/radiobutton.png deleted file mode 100644 index 8cc8c4185c6..00000000000 Binary files a/docs/src/gui/images/radiobutton.png and /dev/null differ diff --git a/docs/src/gui/images/small-screenshot.png b/docs/src/gui/images/small-screenshot.png deleted file mode 100644 index 90c1d43b513..00000000000 Binary files a/docs/src/gui/images/small-screenshot.png and /dev/null differ diff --git a/docs/src/gui/images/speed.png b/docs/src/gui/images/speed.png deleted file mode 100644 index ea477341fc0..00000000000 Binary files a/docs/src/gui/images/speed.png and /dev/null differ diff --git a/docs/src/gui/images/spinbutton.png b/docs/src/gui/images/spinbutton.png deleted file mode 100644 index c1a30852c92..00000000000 Binary files a/docs/src/gui/images/spinbutton.png and /dev/null differ diff --git a/docs/src/gui/images/tkemc-interp.png b/docs/src/gui/images/tkemc-interp.png deleted file mode 100644 index 9d3f37e1c52..00000000000 Binary files a/docs/src/gui/images/tkemc-interp.png and /dev/null differ diff --git a/docs/src/gui/images/tkemc-mdi.png b/docs/src/gui/images/tkemc-mdi.png deleted file mode 100644 index a90cab1d7d8..00000000000 Binary files a/docs/src/gui/images/tkemc-mdi.png and /dev/null differ diff --git a/docs/src/gui/images/tkemc-override-limits.png b/docs/src/gui/images/tkemc-override-limits.png deleted file mode 100644 index 246a7ae5d61..00000000000 Binary files a/docs/src/gui/images/tkemc-override-limits.png and /dev/null differ diff --git a/docs/src/gui/images/tkemc.png b/docs/src/gui/images/tkemc.png deleted file mode 100644 index a36ce063ba1..00000000000 Binary files a/docs/src/gui/images/tkemc.png and /dev/null differ diff --git a/docs/src/gui/images/tklinuxcnc_fr.png b/docs/src/gui/images/tklinuxcnc_fr.png deleted file mode 100644 index 1b0a571d382..00000000000 Binary files a/docs/src/gui/images/tklinuxcnc_fr.png and /dev/null differ diff --git a/docs/src/gui/images/tklinuxcnc_interp_fr.png b/docs/src/gui/images/tklinuxcnc_interp_fr.png deleted file mode 100644 index 705fd3c64df..00000000000 Binary files a/docs/src/gui/images/tklinuxcnc_interp_fr.png and /dev/null differ diff --git a/docs/src/gui/images/tool_axis_p.gif b/docs/src/gui/images/tool_axis_p.gif deleted file mode 100644 index 62dc7b81297..00000000000 Binary files a/docs/src/gui/images/tool_axis_p.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_axis_x.gif b/docs/src/gui/images/tool_axis_x.gif deleted file mode 100644 index 0a8d633124b..00000000000 Binary files a/docs/src/gui/images/tool_axis_x.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_axis_y.gif b/docs/src/gui/images/tool_axis_y.gif deleted file mode 100644 index 069372d0219..00000000000 Binary files a/docs/src/gui/images/tool_axis_y.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_axis_z.gif b/docs/src/gui/images/tool_axis_z.gif deleted file mode 100644 index 49bdf7f2f61..00000000000 Binary files a/docs/src/gui/images/tool_axis_z.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_axis_z2.gif b/docs/src/gui/images/tool_axis_z2.gif deleted file mode 100644 index b63b4951f11..00000000000 Binary files a/docs/src/gui/images/tool_axis_z2.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_blockdelete.gif b/docs/src/gui/images/tool_blockdelete.gif deleted file mode 100644 index 3253e8a0d9c..00000000000 Binary files a/docs/src/gui/images/tool_blockdelete.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_clear.gif b/docs/src/gui/images/tool_clear.gif deleted file mode 100644 index bd532284341..00000000000 Binary files a/docs/src/gui/images/tool_clear.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_estop.gif b/docs/src/gui/images/tool_estop.gif deleted file mode 100644 index 0c951d2f467..00000000000 Binary files a/docs/src/gui/images/tool_estop.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_open.gif b/docs/src/gui/images/tool_open.gif deleted file mode 100644 index b3472261450..00000000000 Binary files a/docs/src/gui/images/tool_open.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_optpause.gif b/docs/src/gui/images/tool_optpause.gif deleted file mode 100644 index 93e7ad63a64..00000000000 Binary files a/docs/src/gui/images/tool_optpause.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_pause.gif b/docs/src/gui/images/tool_pause.gif deleted file mode 100644 index 23aed7c23ff..00000000000 Binary files a/docs/src/gui/images/tool_pause.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_power.gif b/docs/src/gui/images/tool_power.gif deleted file mode 100644 index 338e3301422..00000000000 Binary files a/docs/src/gui/images/tool_power.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_reload.gif b/docs/src/gui/images/tool_reload.gif deleted file mode 100644 index a1e5441735a..00000000000 Binary files a/docs/src/gui/images/tool_reload.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_rotate.gif b/docs/src/gui/images/tool_rotate.gif deleted file mode 100644 index 329d902a4f6..00000000000 Binary files a/docs/src/gui/images/tool_rotate.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_run.gif b/docs/src/gui/images/tool_run.gif deleted file mode 100644 index 644df33f39e..00000000000 Binary files a/docs/src/gui/images/tool_run.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_step.gif b/docs/src/gui/images/tool_step.gif deleted file mode 100644 index 043365e64a1..00000000000 Binary files a/docs/src/gui/images/tool_step.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_stop.gif b/docs/src/gui/images/tool_stop.gif deleted file mode 100644 index bea62330194..00000000000 Binary files a/docs/src/gui/images/tool_stop.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_zoomin.gif b/docs/src/gui/images/tool_zoomin.gif deleted file mode 100644 index 2a1245f4321..00000000000 Binary files a/docs/src/gui/images/tool_zoomin.gif and /dev/null differ diff --git a/docs/src/gui/images/tool_zoomout.gif b/docs/src/gui/images/tool_zoomout.gif deleted file mode 100644 index 050cbe3ccda..00000000000 Binary files a/docs/src/gui/images/tool_zoomout.gif and /dev/null differ diff --git a/docs/src/gui/images/tooledit-columns.png b/docs/src/gui/images/tooledit-columns.png deleted file mode 100644 index 498b556496b..00000000000 Binary files a/docs/src/gui/images/tooledit-columns.png and /dev/null differ diff --git a/docs/src/gui/images/tooledit-columns_fr.png b/docs/src/gui/images/tooledit-columns_fr.png deleted file mode 100644 index 077f587a6a1..00000000000 Binary files a/docs/src/gui/images/tooledit-columns_fr.png and /dev/null differ diff --git a/docs/src/gui/images/tooledit-sort.png b/docs/src/gui/images/tooledit-sort.png deleted file mode 100644 index b9729753f75..00000000000 Binary files a/docs/src/gui/images/tooledit-sort.png and /dev/null differ diff --git a/docs/src/gui/images/tooledit-sort_fr.png b/docs/src/gui/images/tooledit-sort_fr.png deleted file mode 100644 index 04d1b9fce6d..00000000000 Binary files a/docs/src/gui/images/tooledit-sort_fr.png and /dev/null differ diff --git a/docs/src/gui/images/tooledit-warning_fr.png b/docs/src/gui/images/tooledit-warning_fr.png deleted file mode 100644 index 9088a48a53b..00000000000 Binary files a/docs/src/gui/images/tooledit-warning_fr.png and /dev/null differ diff --git a/docs/src/gui/images/tooledit.png b/docs/src/gui/images/tooledit.png deleted file mode 100644 index d7e8676f8af..00000000000 Binary files a/docs/src/gui/images/tooledit.png and /dev/null differ diff --git a/docs/src/gui/images/tooledit_fr.png b/docs/src/gui/images/tooledit_fr.png deleted file mode 100644 index 1d34fb318f7..00000000000 Binary files a/docs/src/gui/images/tooledit_fr.png and /dev/null differ diff --git a/docs/src/gui/images/touchoff.png b/docs/src/gui/images/touchoff.png deleted file mode 100644 index c7834b4dcb3..00000000000 Binary files a/docs/src/gui/images/touchoff.png and /dev/null differ diff --git a/docs/src/gui/images/touchoff_fr.png b/docs/src/gui/images/touchoff_fr.png deleted file mode 100644 index fa5649aa111..00000000000 Binary files a/docs/src/gui/images/touchoff_fr.png and /dev/null differ diff --git a/docs/src/gui/images/touchy-tab-33.png b/docs/src/gui/images/touchy-tab-33.png deleted file mode 100644 index f14b03ffe85..00000000000 Binary files a/docs/src/gui/images/touchy-tab-33.png and /dev/null differ diff --git a/docs/src/gui/images/touchy-tab-small.png b/docs/src/gui/images/touchy-tab-small.png deleted file mode 100644 index 6fc91cf73ed..00000000000 Binary files a/docs/src/gui/images/touchy-tab-small.png and /dev/null differ diff --git a/docs/src/gui/images/touchy-tab.png b/docs/src/gui/images/touchy-tab.png deleted file mode 100644 index 1c48df12103..00000000000 Binary files a/docs/src/gui/images/touchy-tab.png and /dev/null differ diff --git a/docs/src/gui/images/touchy.png b/docs/src/gui/images/touchy.png deleted file mode 100644 index 5d60c795415..00000000000 Binary files a/docs/src/gui/images/touchy.png and /dev/null differ diff --git a/docs/src/gui/images/touchy_fr.png b/docs/src/gui/images/touchy_fr.png deleted file mode 100644 index 3dfb78b353e..00000000000 Binary files a/docs/src/gui/images/touchy_fr.png and /dev/null differ diff --git a/docs/src/gui/images/vscale.png b/docs/src/gui/images/vscale.png deleted file mode 100644 index 3f6dc384206..00000000000 Binary files a/docs/src/gui/images/vscale.png and /dev/null differ diff --git a/docs/src/gui/images/whoareyou.png b/docs/src/gui/images/whoareyou.png deleted file mode 100644 index 175a4e6d9f3..00000000000 Binary files a/docs/src/gui/images/whoareyou.png and /dev/null differ diff --git a/docs/src/gui/keystick.txt b/docs/src/gui/keystick.txt deleted file mode 100644 index a497444dc60..00000000000 --- a/docs/src/gui/keystick.txt +++ /dev/null @@ -1,27 +0,0 @@ -= KEYSTICK GUI - -[[cha:keystick-gui]] (((KEYSTICK))) - - -== Introduction - -.The Mini Graphical Interface[[fig:keystick]] -image::images/keystick.png[align="center"] - -Keystick is a minimal text based interface. - -== Installing - -To use keystick change the 'DISPLAY' setting in the ini file setting to: - ----- -DISPLAY = keystick ----- - -== Using - -Keystick is very simple to use. In the MDI Mode you simply start -typing the g code and it shows up in the bottom text area. The '?' key -toggles help. - - diff --git a/docs/src/gui/keystick_es.txt b/docs/src/gui/keystick_es.txt deleted file mode 100644 index 6a93d4e93e5..00000000000 --- a/docs/src/gui/keystick_es.txt +++ /dev/null @@ -1,40 +0,0 @@ -= KEYSTICK GUI - -[[cha:keystick-gui]] (((KEYSTICK))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - - -== Introduction - -.The Mini Graphical Interface[[fig:keystick]] -image::images/keystick.png[align="center"] - -Keystick is a minimal text based interface. - -== Installing - -To use keystick change the 'DISPLAY' setting in the ini file setting to: - ----- -DISPLAY = keystick ----- - -== Using - -Keystick is very simple to use. In the MDI Mode you simply start -typing the g code and it shows up in the bottom text area. The '?' key -toggles help. - - diff --git a/docs/src/gui/keystick_fr.txt b/docs/src/gui/keystick_fr.txt deleted file mode 100644 index 10bc2da6019..00000000000 --- a/docs/src/gui/keystick_fr.txt +++ /dev/null @@ -1,35 +0,0 @@ -:lang: fr -:toc: - -= L'interface textuelle KEYSTICK - -[[cha:keystick-gui]] (((KEYSTICK))) - -== Introduction - -.L'interface utilisateur minimale[[fig:startkeystick]] -image::images/keystick.png[] - -Keystick est une interface minimaliste textuelle. - -== Installation - -Pour utiliser «keystick» modifier la section DISPLAY du fichier ini de -la manière suivante: - --------------------- -[DISPLAY] - -DISPLAY = keystick --------------------- - -== Utilisation - -Keystick est extrêmement simple à utiliser. Dans le mode MDI vous -pouvez directement taper le G-code et il sera visible dans la partie -supérieur. La touche «?» bascule avec ou sans aide. - -footnote:[ndt: keystick a été conçu pour être minimaliste, par -conséquent son interface n'est pas traductible.] - - diff --git a/docs/src/gui/mini.txt b/docs/src/gui/mini.txt deleted file mode 100644 index adeb4ad37fd..00000000000 --- a/docs/src/gui/mini.txt +++ /dev/null @@ -1,592 +0,0 @@ -= MINI GUI - -[[cha:mini-gui]] (((Mini GUI))) - -== Introduction - -.The Mini Graphical Interface (upon starting)[[fig:startmini]] - -image::images/mini01.png[align="center"] - -Mini was designed to be a full screen graphical interface. -It was first written for the Sherline(((Sherline))) CNC but is -available for anyone to use, copy, and distribute under the terms of -the GPL copyright. - -Rather than popup new windows for each thing that an operator might -want to do, Mini allows you to display these within the regular screen. -Parts of this chapter are copied from the instructions that were -written for that mill by Joe Martin and Ray Henry. -footnote:[Much of this chapter quotes from a chapter of the Sherline CNC -Operators Manual.] - -== Screen layout - -.Mini Display for a Running LinuxCNC[[fig:runmini]] - -image::images/mini02.png[align="center"] - -The Mini screen is laid out in several sections. These include a menu -across the top, a set of main -control buttons just below the menu, and two rather large columns of -information that show the state of your machine and allow you to enter -commands or programs. - -When you compare starting screen with run screen -you will see many differences. In the second figure - -* each axis has been homed -- the display numbers are dark green -* the LinuxCNC mode is auto -- the auto button has a light green background -* the backplotter has been turned on -- backplot is - visible in the pop-in window -* the tool path from the program is showing in the display. - -Once you start working with Mini you will quickly discover how easily -it shows the conditions of the LinuxCNC and allows you to make changes to it. - -== Menu Bar - -The first row is the menu bar across the top. Here you can configure -the screen to display additional information. Some of the items in this -menu are very different from what you may be accustomed to with other -programs. You should take a few minutes and look under each menu item -in order to familiarize yourself with the features that are there. - -The menu includes each of the following sections and subsections. - -* 'Program' - This menu includes both reset and exit functions. Reset will return - the LinuxCNC to the condition that it was in when it started. Some startup - configuration items like the normal program units can be specified in - the ini file. - -* 'View' - This menu includes several screen elements that can be added so that - you can see additional information during a run. These include - -** 'Position_Type' - This menu item adds a line above the main position displays that - shows whether the displays are in inches or metric and whether - they are Machine or Relative location and if they are - Actual positions or Commanded positions. These can be changed - using the Settings menu described below. - -** 'Tool_Info' - This adds a line immediately below the main position displays that - shows which tool has been selected and the length of offset applied. - -** 'Offset_Info' - adds a line immediately below the tool info that shows what offsets - have been applied. This is a total distance for each axis from - machine zero. - -** 'Show_Restart' - adds a block of buttons to the right of the program display in auto - mode. These allow the operator to restart a program after an abort - or estop. These will pop in whenever estop or abort is pressed but - can be shows by the operator anytime auto mode is active by - selecting this menu item. - -** 'Hide_Restart' - removes the block of buttons that control the restart of a program - that has been aborted or estopped. - -** 'Show_Split_Right' - changes the nature of the right hand column so that it shows both - mode and pop-in information. - -** 'Show_Mode_Full' - changes the right hand column so that the mode buttons or displays - fill the entire right side of the screen. In manual mode, running - with mode full you will see spindle and lube control buttons as well as - the motion buttons. - -** 'Show_Popin_Full' - changes the right hand column so that the popin fills the entire - right side of the screen. - -* 'Settings' - These menu items allow the operator to control certain parameters - during a run. - -** 'Actual_Position' - sets the main position displays to actual(machine based) values. - -** 'Commanded_Position' - sets the main position displays to the values that they were - commanded to. - -** 'Machine_Position' - sets the main position displays to the absolute distance from where - the machine was homed. - -** 'Relative_Position' - sets the main position displays to show the current position - including any offsets like part zeros that are active. For more - information on offsets see the chapter on coordinate systems. - -* 'Info' - lets you see a number of active things by writing their values into - the MESSAGE pad. - -** 'Program_File' - will write the currently active program file name. - -** 'Editor_File' - will write the currently active file if the editor pop in is active - and a file has been selected for editing. - -** 'Parameter_File' - will write the name of the file being used for program - parameters. You can find more on this in the chapters on offsets - and using variables for programming. - -** 'Tool_File' - will write the name of the tool file that is being used during - this run. - -** 'Active_G-Codes' - will write a list of all of the modal program codes that are active - whenever this item is selected. For more information about modal - codes see the introductory part programming chapter. - -* 'Help' - opens a text window pop in that displays the contents of the help file. - -You will notice between the info menu and the help menu there are a -set of four buttons. These are called check buttons because they have a -small box that shows red if they have been selected. These four -buttons, Editor, Backplot, Tools, and Offsets pop in each of these -screens. If more than one pop-in is active (button shown as red) you -can toggle between these pop-ins by right clicking your mouse. - -== Control Button Bar - -Below the menu line is a horizontal line of control buttons. These are -the primary control buttons for the interface. Using these buttons you -can change mode from [MANUAL] to [AUTO] to [MDI] (Manual Data Input). -These buttons show a light green background whenever that mode is -active. - -You can also use the [FEEDHOLD], [ABORT], and [ESTOP] buttons to -control a programmed move. - -=== MANUAL (((Manual))) - -This button or pressing sets the LinuxCNC to Manual mode and displays -an abbreviated set of buttons the operator can use to issue manual -motion commands. The labels of the jog buttons change to match the -active axis. Whenever Show_Mode_Full is active in in manual mode, you -will see spindle and lube control buttons as well as the motion -buttons. A keyboard or will switch from continuous jog to -incremental jog. Pressing that key again will toggle the increment size -through the available sizes. - -.Manual Mode Buttons[[cap:Manual-Mode-Buttons]] - -image::images/miniman.png[align="center"] - -.From the Sherline CNC Operators Manual: -*********************************************************************** -A button has been added to designate the present position as the home -position. We felt that a machine of this type (Sherline 5400) would -be simpler to operate if it didn't use a machine home position. -This button will zero out any offsets and will home all axes right -where they are. - -Axis focus is important here. Notice in <> -that in manual mode you see a line or 'groove' around the X axis to -highlight its position display. This groove says that X is the active -axis. It will be the target for jog moves made with the 'plus' and -'minus' jog buttons. You can change axis focus by clicking on any -other axis display. You can also change axis focus in manual mode if -you press its name key on your keyboard. Case is not important here. -[Y] or [y] will shift the focus to the Y axis. [A] or [a] will shift -the focus to the A axis. To help you remember which axis will jog -when you press the jog buttons, the active axis name is displayed on -them. - -LinuxCNC can jog (move a particular axis) as long as you hold the button -down when it is set for 'continuous', or it can jog for a preset -distance when it is set for 'incremental'. You can also jog the -active axis by pressing the plus [+] or minus [-] keys on the -keyboard. Again, case is not important for keyboard jogs. The two -small buttons between the large jog buttons let you set which kind -of jog you want. When you are in incremental mode, the distance -buttons come alive. You can set a distance by pressing it with the -mouse. You can toggle between distances by pressing [i] or [I] on the -keyboard. Incremental jog has an interesting and often unexpected -effect. If you press the jog button while a jog is in progress, it -will add the distance to the position it was at when the second jog -command was issued. Two one-inch jog presses in close succession will -not get you two inches of movement. You have to wait until the first -one is complete before jogging again. - -Jog speed is displayed above the slider. It can be set using the -slider by clicking in the slider's open slot on the side you want it -to move toward, or by clicking on the [Default] or [Rapid] buttons. -This setting only affects the jog move while in manual mode. Once a -jog move is initiated, jog speed has no effect on the jog. As an -example of this, say you set jog mode to 'incremental' and the -increment to 1 inch. Once you press the [Jog] button it will travel -that inch at the rate at which it started. -*********************************************************************** - -=== AUTO (((Auto))) - -When the Auto button is pressed, or on the keyboard, and LinuxCNC is -set to that mode, a set of the traditional auto operation buttons -is displayed, and a small text window opens to show a part program. -During run the active line will be displayed as white lettering on a -red background. - -In the auto mode, many of the keyboard keys are bound to controls. -For example, the numbers above the qwerty keys are bound to feed rate -override. The 0 sets 100%, 9 sets 90% and such. Other keys work much -the same as they do with the tkLinuxCNC graphical interface. - -.Auto Mode[[cap:Auto-Mode]] - -image::images/miniauto.png[align="center"] - -Auto mode does not normally display the active or modal codes. If the -operator wishes to check these, use menu Info→Active_G-Codes. This -will write all modal codes onto the message scratch pad. - -If abort or estop is pressed during a run, a set of buttons will -display to the right of the text that allow the operator to shift the -restart line forward or backward. If the restart line is not the last -active line, it will be highlighted as white letters on a blue -background. Caution, a very slow feed rate, and a finger poised over -the pause button is advised during any program restart. - -.From the Sherline CNC Operators Manual: -*********************************************************************** -The real heart of CNC machine tool work is the auto mode. Sherline's -auto mode displays the typical functions that people have come to -expect from LinuxCNC. Along the top are a set of buttons which control -what is happening in auto mode. Below them is the window that shows -the part of the program currently being executed. As the program runs, -the active line shows in white letters on a red background. The first -three buttons, [Open], [Run], and [Pause] do about what you'd expect. -[Pause] will stop the run right where it is. The next button, [Resume], -will restart motion. They are like feedhold if used this way. Once -[Pause] is pressed and motion has stopped, [Step] will resume motion -and continue it to the end of the current block. Press [Step] again to -get the motion of the next block. Press [Resume] and the interpreter -goes back to reading ahead and running the program. The combination -of [Pause] and [Step] work a lot like single block mode on many -controllers. The difference is that [Pause] does not let motion -continue to the end of the current block. Feed rate Override ... can -be very handy as you approach a first cut. Move in quickly at 100 -percent, throttle back to 10% and toggle between [Feedhold] and 10% -using the pause button. When you are satisfied that you've got it -right, hit the zero to the right of nine (feedrate=100%) and go. - -The [Verify] button runs the interpreter through the code without -initiating any motion. If Verify finds a problem it will stop the -read near the problem block and put up some sort of message. Most of -the time you will be able to figure out the problem with your program -by reading the message and looking in the program window at the -highlighted line. Some of the messages are not very helpful. -Sometimes you will need to read a line or two ahead of the highlight -to see the problem. Occasionally the message will refer to something -well ahead of the highlight line. This often happens if you forget -to end your program with an acceptable code like %, M2, M30, or M60. -*********************************************************************** - - -=== MDI - -The MDI button or sets the Manual Data Input mode. This mode -displays a single line of text for block entry and shows the currently -active modal codes for the interpreter. - -.From the Sherline CNC Operators Manual: -*********************************************************************** -MDI mode allows you to enter single blocks and have the interpreter -execute them as if they were part of a program (kind of like a one-line -program). You can execute circles, arcs, lines and such. You can even -test sets of program lines by entering one block, waiting for that -motion to end, and then enter the next block. Below the entry window, -there is a listing of all of the current modal codes. This listing can -be very handy. I often forget to enter a g00 before I command a motion. -If nothing happens I look down there to see if g80 is in effect. G80 -stops any motion. If it's there I remember to issue a block like g00 x0 -y0 z0. In MDI you are entering text from the keyboard so none of the -main keys work for commands to the running machine. [F1] will Estop the -control. -*********************************************************************** - -Since many of the keyboard keys are needed for entry, most of the -bindings that were available in auto mode are not available here. - -=== [FEEDHOLD] -- [CONTINUE] - -Feedhold is a toggle. When the LinuxCNC is ready to handle or is handling a -motion command this button shows the feedhold label on a red -background. If feedhold has been pressed then it will show the -continue label. Using it to pause motion has the advantage of being -able to restart the program from where you stopped it. Feedhold will -toggle between zero speed and whatever feed rate override was active -before it was pressed. This button and the function that it activates -is also bound to the pause button on most keyboards. - -=== [ABORT] - -The abort button stops any motion when it is pressed. It also removes -the motion command from the LinuxCNC. No further motions are cued up after -this button is pressed. If you are in auto mode, this button removes -the rest of the program from the motion cue. It also records the number -of the line that was executing when it was pressed. You can use this -line number to restart the program after you have cleared up the -reasons for pressing it. - -=== [ESTOP] - -The estop button is also a toggle but it works in three possible -settings. - - - When Mini starts up it will show a raised button with red background - with black letters that say 'ESTOP PUSH'. This is the correct state of - the machine when you want to run a program or jog an axis. Estop is - ready to work for you when it looks like this. - - If you push the estop button while a motion is being executed, you - will see a recessed gray button that says 'ESTOPPED'. You will not be - able to move an axis or do any work from the Mini gui when the estop - button displays this way. Pressing it with your mouse will return Mini - to normal ready condition. - - A third view is possible here. A recessed green button means that - estop has been take off but the machine has not been turned on. - Normally this only happens when estop has been pressed but - has not been pressed. - -Joe Martin says, "When all else fails press a software [ESTOP]." This -does everything that abort does but adds in a reset so that the LinuxCNC -returns to the standard settings that it wakes up on. If you have an -external estop circuit that watches the relevant parallel port or DIO -pin, a software estop can turn off power to the motors. - -.From the Sherline CNC Operators Manual: -*********************************************************************** -Most of the time, when we abort or E-Stop it's because something went -wrong. Perhaps we broke a tool and want to change it. We switch to -manual mode and raise the spindle, change tools, and assuming that we -got the length the same, get ready to go on. If we return the tool to -the same place where the abort was issued, LinuxCNC will work perfectly. -It is possible to move the restart line back or ahead of where the -abort happened. If you press the [Back] or [Ahead] buttons you will see -a blue highlight that shows the relationship between the abort line and -the one on which LinuxCNC will start up again. By thinking through what -is happening at the time of the restart you can place the tool tip -where it will resume work in an acceptable manner. You will need to -think through things like tool offsets, barriers to motion along a -diagonal line, and such, before you press the [Restart] button. -*********************************************************************** - -== Left Column - -There are two columns below the control line. The left side of the -screen displays information of interest to the operator. There are very -few buttons to press here. - -=== Axis Position Displays - -The axis position displays work exactly like they do with tkLinuxCNC. The -color of the letters is important. - - - Red indicates that the machine is sitting on a limit switch or the - polarity of a min or max limit is set wrong in the ini file. - - Yellow indicates that the machine is ready to be homed. - - Green indicates that the machine has been homed. - -The position can be changed to display any one of several values by -using the menu settings. The startup or default settings can be changed -in the ini file so these displays wake up just the way that you want -them. - -=== Feed rate Override (((feed override))) - -Immediately below the axis position displays is the feed rate override -slider. You can operate feed rate override and feedhold in any mode of -operation. Override will change the speed of jogs or feed rate in -manual or MDI modes. You can adjust feed rate override by grabbing the -slider with your mouse and dragging it along the groove. You can also -change feed rate a percent at a time by clicking in the slider's -groove. In auto mode you can also set feed override in 10% increments -by pressing the top row of numbers. This slider is a handy visual -reference to how much override is being applied to programmed feed -rate. - -=== Messages - -The message display located under the axis positions is a sort of -scratch pad for LinuxCNC. If there are problems it will report them -there. If you try to home or move an axis when the [ESTOP] button is -pressed, you'll get a message that says something about commanding -motion when LinuxCNC is not ready. If an axis faults out for something -like falling behind, the message pad will show what happened. If you -want to remind an operator to change a tool, for example, you can add a -line of code to your program that will display in the message box. An -example might be (msg, change to tool #3 and press resume). This line -of code, included in a program, will display 'change to tool #3 and -press resume' in the message box. The word msg, (with comma included) -is the command to make this happen; without 'msg,' the message -wouldn't be displayed. It will still show in the auto -modes' display of the program file. - -To erase messages simply click the message button at the top of the -pad or, on the keyboard, hold down the [Alt] key and press the [m] key. - -== Right Column - -The right column is a general purpose place to display and work. Here -you can see the modal buttons and text entry or displays. Here you can -view a plot of the tool path that will be commanded by your program. -You can also write programs and control tools and offsets here. The -modal screens have been described above. Each of the popin displays are -described in detail below. - -=== Program Editor - -.Mini Text Editor[[cap:Mini-Text-Editor]] - -image::images/miniedit.png[align="center"] - -The editor is rather limited compared to many modern text editors. It -does not have 'undo' nor 'paste' between windows with the clipboard. -These were eliminated because of interaction with a running program. -Future releases will replace these functions so that it will work the -way you've come to expect from a text editor. It is included because -it has the rather nice feature of being able to number and renumber -lines in the way that the interpreter expects of a file. -It will also allow you to cut and paste from one part of a file to -another. In addition, it will allow you to save your changes and -submit them to the LinuxCNC interpreter with the same menu click. -You can work on a file in here for a while and then save and -load if the LinuxCNC is in Auto mode. If you have been running a file and -find that you need to edit it, that file will be placed in the editor -when you click on the editor button on the top menu. - -=== Backplot Display(((backplot))) - -.Minis Backplotter[[cap:Minis-Backplotter]] - -image::images/minibkplot.png[align="center"] - -Backplot [Backplot] will show the tool path that can be viewed from a -chosen direction. '3-D' is the default. Other choices and controls are -displayed along the top and right side of the pop-in. If you are in the -middle of a cut when you press one of these control buttons the machine -will pause long enough to re-compute the view. - -Along the right side of the pop-in there is a small pyramid shaped -graphic that tries to show the angle you are viewing the tool path -from. Below it are a series of sliders that allow you to change the -angle of view and the size of the plot. You can rotate the little -position angle display with these. They take effect when you press the -[Refresh] button. The [Reset] button removes all of the paths from the -display and readies it for a new run of the program but retains your -settings for that session. - -If backplot is started before a program is started, it will try to use -some color lines to indicate the kind of motion that was used to make -it. A green line is a rapid move. A black line is a feed rate move. -Blue and red indicate arcs in counterclockwise and clockwise -directions. - -The backplotter with Mini allows you to zoom and rotate views after -you have run your program but it is not intended to store a tool path -for a long period of time. - -=== Tool Page - -The tool page is pretty much like the others. You can set length and -diameter values here and they become effective when you press the -[Enter] key. You will need to set up your tool information before you -begin to run a program. You can't change tool offsets while the program -is running or when the program is paused. - -.Mini Tool Display[[cap:Mini-Tool-Display]] - -image::images/minitool.png[align="center"] - -The [Add Tools] and [Remove Tools] buttons work on the bottom of the -tool list so you will want to fill in tool information in descending -order. Once a new tool has been added, you can use it in a program with -the usual G-code commands. There is a 32 tool limit in the current LinuxCNC -configuration files but you will run out of display space in Mini long -before you get there. - -[TIP] -You can use Menu > View > Show Popin Full to see more tools if you need. - -=== Offset Page - -The offset page can be used to display and setup work offsets. The -coordinate system is selected along the left hand side of the window. -Once you have selected a coordinate system you can enter values or move -an axis to a teach position. - -.Mini Offset Display[[cap:Mini-Offset-Display]] - -image::images/minioffsets.png[align="center"] - -You can also teach using an edgefinder by adding the radius and length -to the offset_by widgets. When you do this you may need to add or -subtract the radius depending upon which surface you choose to touch -from. This is selected with the add or subtract radiobuttons below the -offset windows. - -The zero all for the active coordinate system button will remove any -offsets that you have showing but they are not set to zero in the -variable file until you press the write and load file button as well. -This write and load file button is the one to use when you have set all -of the axis values that you want for a coordinate system. - -== Keyboard Bindings - -A number of the bindings used with tkLinuxCNC have been preserved with -mini. A few of the bindings have been changed to extend that set or to -ease the operation of a machine using this interface. Some keys operate -the same regradless of the mode. Others change with the mode that LinuxCNC -is operating in. - -=== Common Keys - -* 'Pause' - Toggle feedhold -* 'Escape' - abort motion -* 'F1' - toggle estop/estop reset state -* 'F2' - toggle machine off/machine on state -* 'F3' - manual mode -* 'F4' - auto mode -* 'F5' - MDI mode -* 'F6' - reset interpreter - -The following only work for machines using auxiliary I/O - -* 'F7' - toggle mist on/mist off -* 'F8' - toggle flood on/flood off -* 'F9' - toggle spindle forward/off -* 'F10' - toggle spindle reverse/off -* 'F11' - decrease spindle speed -* 'F12' - increase spindle speed - -=== Manual Mode (((Manual))) - -* '1-9 0' - set feed override to 10%-90%, 0 is 100% -* '~' - set feed override to 0 or feedhold -* 'x' - select X axis -* 'y' - select Y axis -* 'z' - select Z axis -* 'a' - select A axis -* 'b' - select B axis -* 'c' - select C axis -* 'Left Right Arrow' - jog X axis -* 'Up Down Arrow' - jog Y axis -* 'Page Up Down' - jog Z axis -* '- _' - jog the active axis in the minus direction -* '+ =' - jog the active axis in the plus direction. -* 'Home' - home selected axis -* 'i I' - toggle through jog increments - -The following only work with a machine using auxiliary I/O - -* 'b' - take spindle brake off -* 'Alt-b' - put spindle brake on - -=== Auto Mode (((Auto))) - -* '1-9,0' - set feed override to 10%-90%, 0 is 100% -* '~' - set feed override to 0 or feedhold -* 'o/O' - open a program -* 'r/R' - run an opened program -* 'p/P' - pause an executing program -* 's/S' - resume a paused program -* 'a/A' - step one line in a paused program - -== Misc - -One of the features of Mini is that it displays any axis above number -2 as a rotary and will display degree units for it. It also converts to -degree units for incremental jogs when a rotary axis has the focus. - - diff --git a/docs/src/gui/mini_es.txt b/docs/src/gui/mini_es.txt deleted file mode 100644 index 53597729ac8..00000000000 --- a/docs/src/gui/mini_es.txt +++ /dev/null @@ -1,605 +0,0 @@ -= MINI GUI - -[[cha:mini-gui]] (((Mini GUI))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Introduction - -.The Mini Graphical Interface (upon starting)[[fig:startmini]] - -image::images/mini01.png[align="center"] - -Mini was designed to be a full screen graphical interface. -It was first written for the Sherline(((Sherline))) CNC but is -available for anyone to use, copy, and distribute under the terms of -the GPL copyright. - -Rather than popup new windows for each thing that an operator might -want to do, Mini allows you to display these within the regular screen. -Parts of this chapter are copied from the instructions that were -written for that mill by Joe Martin and Ray Henry. -footnote:[Much of this chapter quotes from a chapter of the Sherline CNC -Operators Manual.] - -== Screen layout - -.Mini Display for a Running LinuxCNC[[fig:runmini]] - -image::images/mini02.png[align="center"] - -The Mini screen is laid out in several sections. These include a menu -across the top, a set of main -control buttons just below the menu, and two rather large columns of -information that show the state of your machine and allow you to enter -commands or programs. - -When you compare starting screen with run screen -you will see many differences. In the second figure - -* each axis has been homed -- the display numbers are dark green -* the LinuxCNC mode is auto -- the auto button has a light green background -* the backplotter has been turned on -- backplot is - visible in the pop-in window -* the tool path from the program is showing in the display. - -Once you start working with Mini you will quickly discover how easily -it shows the conditions of the LinuxCNC and allows you to make changes to it. - -== Menu Bar - -The first row is the menu bar across the top. Here you can configure -the screen to display additional information. Some of the items in this -menu are very different from what you may be accustomed to with other -programs. You should take a few minutes and look under each menu item -in order to familiarize yourself with the features that are there. - -The menu includes each of the following sections and subsections. - -* 'Program' - This menu includes both reset and exit functions. Reset will return - the LinuxCNC to the condition that it was in when it started. Some startup - configuration items like the normal program units can be specified in - the ini file. - -* 'View' - This menu includes several screen elements that can be added so that - you can see additional information during a run. These include - -** 'Position_Type' - This menu item adds a line above the main position displays that - shows whether the displays are in inches or metric and whether - they are Machine or Relative location and if they are - Actual positions or Commanded positions. These can be changed - using the Settings menu described below. - -** 'Tool_Info' - This adds a line immediately below the main position displays that - shows which tool has been selected and the length of offset applied. - -** 'Offset_Info' - adds a line immediately below the tool info that shows what offsets - have been applied. This is a total distance for each axis from - machine zero. - -** 'Show_Restart' - adds a block of buttons to the right of the program display in auto - mode. These allow the operator to restart a program after an abort - or estop. These will pop in whenever estop or abort is pressed but - can be shows by the operator anytime auto mode is active by - selecting this menu item. - -** 'Hide_Restart' - removes the block of buttons that control the restart of a program - that has been aborted or estopped. - -** 'Show_Split_Right' - changes the nature of the right hand column so that it shows both - mode and pop-in information. - -** 'Show_Mode_Full' - changes the right hand column so that the mode buttons or displays - fill the entire right side of the screen. In manual mode, running - with mode full you will see spindle and lube control buttons as well as - the motion buttons. - -** 'Show_Popin_Full' - changes the right hand column so that the popin fills the entire - right side of the screen. - -* 'Settings' - These menu items allow the operator to control certain parameters - during a run. - -** 'Actual_Position' - sets the main position displays to actual(machine based) values. - -** 'Commanded_Position' - sets the main position displays to the values that they were - commanded to. - -** 'Machine_Position' - sets the main position displays to the absolute distance from where - the machine was homed. - -** 'Relative_Position' - sets the main position displays to show the current position - including any offsets like part zeros that are active. For more - information on offsets see the chapter on coordinate systems. - -* 'Info' - lets you see a number of active things by writing their values into - the MESSAGE pad. - -** 'Program_File' - will write the currently active program file name. - -** 'Editor_File' - will write the currently active file if the editor pop in is active - and a file has been selected for editing. - -** 'Parameter_File' - will write the name of the file being used for program - parameters. You can find more on this in the chapters on offsets - and using variables for programming. - -** 'Tool_File' - will write the name of the tool file that is being used during - this run. - -** 'Active_G-Codes' - will write a list of all of the modal program codes that are active - whenever this item is selected. For more information about modal - codes see the introductory part programming chapter. - -* 'Help' - opens a text window pop in that displays the contents of the help file. - -You will notice between the info menu and the help menu there are a -set of four buttons. These are called check buttons because they have a -small box that shows red if they have been selected. These four -buttons, Editor, Backplot, Tools, and Offsets pop in each of these -screens. If more than one pop-in is active (button shown as red) you -can toggle between these pop-ins by right clicking your mouse. - -== Control Button Bar - -Below the menu line is a horizontal line of control buttons. These are -the primary control buttons for the interface. Using these buttons you -can change mode from [MANUAL] to [AUTO] to [MDI] (Manual Data Input). -These buttons show a light green background whenever that mode is -active. - -You can also use the [FEEDHOLD], [ABORT], and [ESTOP] buttons to -control a programmed move. - -=== MANUAL (((Manual))) - -This button or pressing sets the LinuxCNC to Manual mode and displays -an abbreviated set of buttons the operator can use to issue manual -motion commands. The labels of the jog buttons change to match the -active axis. Whenever Show_Mode_Full is active in in manual mode, you -will see spindle and lube control buttons as well as the motion -buttons. A keyboard or will switch from continuous jog to -incremental jog. Pressing that key again will toggle the increment size -through the available sizes. - -.Manual Mode Buttons[[cap:Manual-Mode-Buttons]] - -image::images/miniman.png[align="center"] - -.From the Sherline CNC Operators Manual: -*********************************************************************** -A button has been added to designate the present position as the home -position. We felt that a machine of this type (Sherline 5400) would -be simpler to operate if it didn't use a machine home position. -This button will zero out any offsets and will home all axes right -where they are. - -Axis focus is important here. Notice in <> -that in manual mode you see a line or 'groove' around the X axis to -highlight its position display. This groove says that X is the active -axis. It will be the target for jog moves made with the 'plus' and -'minus' jog buttons. You can change axis focus by clicking on any -other axis display. You can also change axis focus in manual mode if -you press its name key on your keyboard. Case is not important here. -[Y] or [y] will shift the focus to the Y axis. [A] or [a] will shift -the focus to the A axis. To help you remember which axis will jog -when you press the jog buttons, the active axis name is displayed on -them. - -LinuxCNC can jog (move a particular axis) as long as you hold the button -down when it is set for 'continuous', or it can jog for a preset -distance when it is set for 'incremental'. You can also jog the -active axis by pressing the plus [+] or minus [-] keys on the -keyboard. Again, case is not important for keyboard jogs. The two -small buttons between the large jog buttons let you set which kind -of jog you want. When you are in incremental mode, the distance -buttons come alive. You can set a distance by pressing it with the -mouse. You can toggle between distances by pressing [i] or [I] on the -keyboard. Incremental jog has an interesting and often unexpected -effect. If you press the jog button while a jog is in progress, it -will add the distance to the position it was at when the second jog -command was issued. Two one-inch jog presses in close succession will -not get you two inches of movement. You have to wait until the first -one is complete before jogging again. - -Jog speed is displayed above the slider. It can be set using the -slider by clicking in the slider's open slot on the side you want it -to move toward, or by clicking on the [Default] or [Rapid] buttons. -This setting only affects the jog move while in manual mode. Once a -jog move is initiated, jog speed has no effect on the jog. As an -example of this, say you set jog mode to 'incremental' and the -increment to 1 inch. Once you press the [Jog] button it will travel -that inch at the rate at which it started. -*********************************************************************** - -=== AUTO (((Auto))) - -When the Auto button is pressed, or on the keyboard, and LinuxCNC is -set to that mode, a set of the traditional auto operation buttons -is displayed, and a small text window opens to show a part program. -During run the active line will be displayed as white lettering on a -red background. - -In the auto mode, many of the keyboard keys are bound to controls. -For example, the numbers above the qwerty keys are bound to feed rate -override. The 0 sets 100%, 9 sets 90% and such. Other keys work much -the same as they do with the tkLinuxCNC graphical interface. - -.Auto Mode[[cap:Auto-Mode]] - -image::images/miniauto.png[align="center"] - -Auto mode does not normally display the active or modal codes. If the -operator wishes to check these, use menu Info→Active_G-Codes. This -will write all modal codes onto the message scratch pad. - -If abort or estop is pressed during a run, a set of buttons will -display to the right of the text that allow the operator to shift the -restart line forward or backward. If the restart line is not the last -active line, it will be highlighted as white letters on a blue -background. Caution, a very slow feed rate, and a finger poised over -the pause button is advised during any program restart. - -.From the Sherline CNC Operators Manual: -*********************************************************************** -The real heart of CNC machine tool work is the auto mode. Sherline's -auto mode displays the typical functions that people have come to -expect from LinuxCNC. Along the top are a set of buttons which control -what is happening in auto mode. Below them is the window that shows -the part of the program currently being executed. As the program runs, -the active line shows in white letters on a red background. The first -three buttons, [Open], [Run], and [Pause] do about what you'd expect. -[Pause] will stop the run right where it is. The next button, [Resume], -will restart motion. They are like feedhold if used this way. Once -[Pause] is pressed and motion has stopped, [Step] will resume motion -and continue it to the end of the current block. Press [Step] again to -get the motion of the next block. Press [Resume] and the interpreter -goes back to reading ahead and running the program. The combination -of [Pause] and [Step] work a lot like single block mode on many -controllers. The difference is that [Pause] does not let motion -continue to the end of the current block. Feed rate Override ... can -be very handy as you approach a first cut. Move in quickly at 100 -percent, throttle back to 10% and toggle between [Feedhold] and 10% -using the pause button. When you are satisfied that you've got it -right, hit the zero to the right of nine (feedrate=100%) and go. - -The [Verify] button runs the interpreter through the code without -initiating any motion. If Verify finds a problem it will stop the -read near the problem block and put up some sort of message. Most of -the time you will be able to figure out the problem with your program -by reading the message and looking in the program window at the -highlighted line. Some of the messages are not very helpful. -Sometimes you will need to read a line or two ahead of the highlight -to see the problem. Occasionally the message will refer to something -well ahead of the highlight line. This often happens if you forget -to end your program with an acceptable code like %, M2, M30, or M60. -*********************************************************************** - - -=== MDI - -The MDI button or sets the Manual Data Input mode. This mode -displays a single line of text for block entry and shows the currently -active modal codes for the interpreter. - -.From the Sherline CNC Operators Manual: -*********************************************************************** -MDI mode allows you to enter single blocks and have the interpreter -execute them as if they were part of a program (kind of like a one-line -program). You can execute circles, arcs, lines and such. You can even -test sets of program lines by entering one block, waiting for that -motion to end, and then enter the next block. Below the entry window, -there is a listing of all of the current modal codes. This listing can -be very handy. I often forget to enter a g00 before I command a motion. -If nothing happens I look down there to see if g80 is in effect. G80 -stops any motion. If it's there I remember to issue a block like g00 x0 -y0 z0. In MDI you are entering text from the keyboard so none of the -main keys work for commands to the running machine. [F1] will Estop the -control. -*********************************************************************** - -Since many of the keyboard keys are needed for entry, most of the -bindings that were available in auto mode are not available here. - -=== [FEEDHOLD] -- [CONTINUE] - -Feedhold is a toggle. When the LinuxCNC is ready to handle or is handling a -motion command this button shows the feedhold label on a red -background. If feedhold has been pressed then it will show the -continue label. Using it to pause motion has the advantage of being -able to restart the program from where you stopped it. Feedhold will -toggle between zero speed and whatever feed rate override was active -before it was pressed. This button and the function that it activates -is also bound to the pause button on most keyboards. - -=== [ABORT] - -The abort button stops any motion when it is pressed. It also removes -the motion command from the LinuxCNC. No further motions are cued up after -this button is pressed. If you are in auto mode, this button removes -the rest of the program from the motion cue. It also records the number -of the line that was executing when it was pressed. You can use this -line number to restart the program after you have cleared up the -reasons for pressing it. - -=== [ESTOP] - -The estop button is also a toggle but it works in three possible -settings. - - - When Mini starts up it will show a raised button with red background - with black letters that say 'ESTOP PUSH'. This is the correct state of - the machine when you want to run a program or jog an axis. Estop is - ready to work for you when it looks like this. - - If you push the estop button while a motion is being executed, you - will see a recessed gray button that says 'ESTOPPED'. You will not be - able to move an axis or do any work from the Mini gui when the estop - button displays this way. Pressing it with your mouse will return Mini - to normal ready condition. - - A third view is possible here. A recessed green button means that - estop has been take off but the machine has not been turned on. - Normally this only happens when estop has been pressed but - has not been pressed. - -Joe Martin says, "When all else fails press a software [ESTOP]." This -does everything that abort does but adds in a reset so that the LinuxCNC -returns to the standard settings that it wakes up on. If you have an -external estop circuit that watches the relevant parallel port or DIO -pin, a software estop can turn off power to the motors. - -.From the Sherline CNC Operators Manual: -*********************************************************************** -Most of the time, when we abort or E-Stop it's because something went -wrong. Perhaps we broke a tool and want to change it. We switch to -manual mode and raise the spindle, change tools, and assuming that we -got the length the same, get ready to go on. If we return the tool to -the same place where the abort was issued, LinuxCNC will work perfectly. -It is possible to move the restart line back or ahead of where the -abort happened. If you press the [Back] or [Ahead] buttons you will see -a blue highlight that shows the relationship between the abort line and -the one on which LinuxCNC will start up again. By thinking through what -is happening at the time of the restart you can place the tool tip -where it will resume work in an acceptable manner. You will need to -think through things like tool offsets, barriers to motion along a -diagonal line, and such, before you press the [Restart] button. -*********************************************************************** - -== Left Column - -There are two columns below the control line. The left side of the -screen displays information of interest to the operator. There are very -few buttons to press here. - -=== Axis Position Displays - -The axis position displays work exactly like they do with tkLinuxCNC. The -color of the letters is important. - - - Red indicates that the machine is sitting on a limit switch or the - polarity of a min or max limit is set wrong in the ini file. - - Yellow indicates that the machine is ready to be homed. - - Green indicates that the machine has been homed. - -The position can be changed to display any one of several values by -using the menu settings. The startup or default settings can be changed -in the ini file so these displays wake up just the way that you want -them. - -=== Feed rate Override (((feed override))) - -Immediately below the axis position displays is the feed rate override -slider. You can operate feed rate override and feedhold in any mode of -operation. Override will change the speed of jogs or feed rate in -manual or MDI modes. You can adjust feed rate override by grabbing the -slider with your mouse and dragging it along the groove. You can also -change feed rate a percent at a time by clicking in the slider's -groove. In auto mode you can also set feed override in 10% increments -by pressing the top row of numbers. This slider is a handy visual -reference to how much override is being applied to programmed feed -rate. - -=== Messages - -The message display located under the axis positions is a sort of -scratch pad for LinuxCNC. If there are problems it will report them -there. If you try to home or move an axis when the [ESTOP] button is -pressed, you'll get a message that says something about commanding -motion when LinuxCNC is not ready. If an axis faults out for something -like falling behind, the message pad will show what happened. If you -want to remind an operator to change a tool, for example, you can add a -line of code to your program that will display in the message box. An -example might be (msg, change to tool #3 and press resume). This line -of code, included in a program, will display 'change to tool #3 and -press resume' in the message box. The word msg, (with comma included) -is the command to make this happen; without 'msg,' the message -wouldn't be displayed. It will still show in the auto -modes' display of the program file. - -To erase messages simply click the message button at the top of the -pad or, on the keyboard, hold down the [Alt] key and press the [m] key. - -== Right Column - -The right column is a general purpose place to display and work. Here -you can see the modal buttons and text entry or displays. Here you can -view a plot of the tool path that will be commanded by your program. -You can also write programs and control tools and offsets here. The -modal screens have been described above. Each of the popin displays are -described in detail below. - -=== Program Editor - -.Mini Text Editor[[cap:Mini-Text-Editor]] - -image::images/miniedit.png[align="center"] - -The editor is rather limited compared to many modern text editors. It -does not have 'undo' nor 'paste' between windows with the clipboard. -These were eliminated because of interaction with a running program. -Future releases will replace these functions so that it will work the -way you've come to expect from a text editor. It is included because -it has the rather nice feature of being able to number and renumber -lines in the way that the interpreter expects of a file. -It will also allow you to cut and paste from one part of a file to -another. In addition, it will allow you to save your changes and -submit them to the LinuxCNC interpreter with the same menu click. -You can work on a file in here for a while and then save and -load if the LinuxCNC is in Auto mode. If you have been running a file and -find that you need to edit it, that file will be placed in the editor -when you click on the editor button on the top menu. - -=== Backplot Display(((backplot))) - -.Minis Backplotter[[cap:Minis-Backplotter]] - -image::images/minibkplot.png[align="center"] - -Backplot [Backplot] will show the tool path that can be viewed from a -chosen direction. '3-D' is the default. Other choices and controls are -displayed along the top and right side of the pop-in. If you are in the -middle of a cut when you press one of these control buttons the machine -will pause long enough to re-compute the view. - -Along the right side of the pop-in there is a small pyramid shaped -graphic that tries to show the angle you are viewing the tool path -from. Below it are a series of sliders that allow you to change the -angle of view and the size of the plot. You can rotate the little -position angle display with these. They take effect when you press the -[Refresh] button. The [Reset] button removes all of the paths from the -display and readies it for a new run of the program but retains your -settings for that session. - -If backplot is started before a program is started, it will try to use -some color lines to indicate the kind of motion that was used to make -it. A green line is a rapid move. A black line is a feed rate move. -Blue and red indicate arcs in counterclockwise and clockwise -directions. - -The backplotter with Mini allows you to zoom and rotate views after -you have run your program but it is not intended to store a tool path -for a long period of time. - -=== Tool Page - -The tool page is pretty much like the others. You can set length and -diameter values here and they become effective when you press the -[Enter] key. You will need to set up your tool information before you -begin to run a program. You can't change tool offsets while the program -is running or when the program is paused. - -.Mini Tool Display[[cap:Mini-Tool-Display]] - -image::images/minitool.png[align="center"] - -The [Add Tools] and [Remove Tools] buttons work on the bottom of the -tool list so you will want to fill in tool information in descending -order. Once a new tool has been added, you can use it in a program with -the usual G-code commands. There is a 32 tool limit in the current LinuxCNC -configuration files but you will run out of display space in Mini long -before you get there. - -[TIP] -You can use Menu > View > Show Popin Full to see more tools if you need. - -=== Offset Page - -The offset page can be used to display and setup work offsets. The -coordinate system is selected along the left hand side of the window. -Once you have selected a coordinate system you can enter values or move -an axis to a teach position. - -.Mini Offset Display[[cap:Mini-Offset-Display]] - -image::images/minioffsets.png[align="center"] - -You can also teach using an edgefinder by adding the radius and length -to the offset_by widgets. When you do this you may need to add or -subtract the radius depending upon which surface you choose to touch -from. This is selected with the add or subtract radiobuttons below the -offset windows. - -The zero all for the active coordinate system button will remove any -offsets that you have showing but they are not set to zero in the -variable file until you press the write and load file button as well. -This write and load file button is the one to use when you have set all -of the axis values that you want for a coordinate system. - -== Keyboard Bindings - -A number of the bindings used with tkLinuxCNC have been preserved with -mini. A few of the bindings have been changed to extend that set or to -ease the operation of a machine using this interface. Some keys operate -the same regradless of the mode. Others change with the mode that LinuxCNC -is operating in. - -=== Common Keys - -* 'Pause' - Toggle feedhold -* 'Escape' - abort motion -* 'F1' - toggle estop/estop reset state -* 'F2' - toggle machine off/machine on state -* 'F3' - manual mode -* 'F4' - auto mode -* 'F5' - MDI mode -* 'F6' - reset interpreter - -The following only work for machines using auxiliary I/O - -* 'F7' - toggle mist on/mist off -* 'F8' - toggle flood on/flood off -* 'F9' - toggle spindle forward/off -* 'F10' - toggle spindle reverse/off -* 'F11' - decrease spindle speed -* 'F12' - increase spindle speed - -=== Manual Mode (((Manual))) - -* '1-9 0' - set feed override to 10%-90%, 0 is 100% -* '~' - set feed override to 0 or feedhold -* 'x' - select X axis -* 'y' - select Y axis -* 'z' - select Z axis -* 'a' - select A axis -* 'b' - select B axis -* 'c' - select C axis -* 'Left Right Arrow' - jog X axis -* 'Up Down Arrow' - jog Y axis -* 'Page Up Down' - jog Z axis -* '- _' - jog the active axis in the minus direction -* '+ =' - jog the active axis in the plus direction. -* 'Home' - home selected axis -* 'i I' - toggle through jog increments - -The following only work with a machine using auxiliary I/O - -* 'b' - take spindle brake off -* 'Alt-b' - put spindle brake on - -=== Auto Mode (((Auto))) - -* '1-9,0' - set feed override to 10%-90%, 0 is 100% -* '~' - set feed override to 0 or feedhold -* 'o/O' - open a program -* 'r/R' - run an opened program -* 'p/P' - pause an executing program -* 's/S' - resume a paused program -* 'a/A' - step one line in a paused program - -== Misc - -One of the features of Mini is that it displays any axis above number -2 as a rotary and will display degree units for it. It also converts to -degree units for incremental jogs when a rotary axis has the focus. - - diff --git a/docs/src/gui/mini_fr.txt b/docs/src/gui/mini_fr.txt deleted file mode 100644 index cc9c61f2c6c..00000000000 --- a/docs/src/gui/mini_fr.txt +++ /dev/null @@ -1,729 +0,0 @@ -:lang: fr -:toc: - -= L'interface graphique MINI - -[[cha:Mini]] (((Mini))) - -== Introduction - -footnote:[Une grande partie de ce chapitre provient du manuel Sherline CNC -operators.] - -[[fig:startminif]] -.L'interface graphique Mini -image::images/mini01_fr.png[] - -Mini(((mini))) a été prévu pour être une interface graphique plein -écran. Il a été écrit initialement pour Sherline(((Sherline))) -CNC(((CNC))) mais est disponible pour ceux qui veulent l'utiliser, le -copier le distribuer selon les termes de la GPL. - -Au lieu d'ouvrir une nouvelle fenêtre pour chaque chose que -l'opérateur veux faire, Mini permet de les afficher toutes dans la même -fenêtre. Certaines parties de ce chapitre sont des copies des -instructions écrites par Joe Martin et Ray Henry. - -== L'écran - -[[fig:runminif]] -.Affichage de Mini lors du fonctionnement de LinuxCNC -image:images/mini_fr.png[] - -L'écran de Mini est visible dans plusieurs sections, voir la figure -ci-dessus. Il inclu une barre de menu, un jeu de boutons de -contrôle juste en dessous et deux larges colonnes d'information -montrant l'état de la machine et permettant à l'opérateur d'entrer des -commandes ou des programmes. - -Quand on compare <> et <>, des différences apparaissent. Sur la -seconde image: - - - Chaque axe a été référencé sur son origine -- L'affichage de la visu est vert - sombre - - LinuxCNC est en mode auto(((Auto))) -- le bouton est vert clair - - Le parcours d'outil a été activé -- le parcours (((parcours outil))) - est visible dans la fenêtre - - Le bloc de G-code en cours est en surbrillance blanche sur fond rouge - parmi les lignes défilantes du programme. - -Dès le début de l'utilisation de Mini on découvre combien il est -facile de visualiser le fonctionnement de LinuxCNC et d'agir sur lui. - -== Barre de menu - -La première ligne est occupée par la barre de menu. Elle permet de -configurer les informations optionnelles que l'écran doit afficher. -Certains des items du menu sont très différents de ce qu'il est coutume -de rencontrer avec d'autres programmes. Il faut prendre quelques -minutes pour regarder chaque item du menu et se familiariser avec les -possibilités qu'il offre. - -Le menu inclus chacune des sections et sous-sections suivantes: - -Programme:: - ce menu inclus les deux fonctions _reset_ et _quitter_. Reset renvoie - LinuxCNC dans l'état dans lequel il était quand il à démarré. Certains items - de conditions de démarrage comme les unités du programme peuvent être - spécifiés dans le fichier ini. - -Vues:: - ce menu inclus plusieurs éléments d'affichage pouvant être ajoutés - pendant qu'un programme s'exécute, pour donner des information - supplémentaires. Ce qui inclus: - - Type_de_position;; - cet item ajoute une ligne, au dessus de l'afficheur principal de - position, qui indique si la position affichée est en coordonnées - machine (absolues) ou en coordonnées pièce (relatives), si la - position affichée est actuelle ou commandée et si l'unité et - le pouce le millimètre. Ce qui peut être modifié en agissant - sur le menu _Réglages_ décrit plus loin. - - Informations_outil;; - cet item ajoute une ligne immédiatement sous l'afficheur principal, - elle affiche quel outil est selectionné et la valeur de l'offset - appliqué. - - Informations_offset;; - ajoute une ligne immédiatement sous celle des informations outil, - elle affiche les offsets de travail actuellement appliqués. C'est la - distance totale pour chaque axe depuis son point d'origine machine. - - Afficher_Reprise;; - ajoute, en mode Auto, un bloc de boutons en bas à droite de - l'affichage du programme. Ces boutons permettent à l'opérateur de - relancer un programme après un A/U ou un Abandon. Le programme est - figé lorsqu'un A/U ou un Abandon est engagé, mais l'opérateur peut ici - choisir le bloc sur lequel redémarrer dans le mode Auto, en activant - cet item de menu. - - Masquer_Reprise;; - enlève le bloc de boutons contrôlant la reprise d'un programme - stoppé par Abandon ou Arrêt d'Urgence. - - Diviser_la_vue_droite;; - modifie la nature de l'affichage de la colonne de droite pour qu'il - montre plus d'informations. - - Afficher_en_mode_complet;; - modifie l'affichage de la colonne de droite, soit en mode boutons - et la colonne divisée, soit affichage sur la colonne entière. En mode - manuel et en utilisant ce mode entier, les boutons de la broche et - du lubrifiant sont visibles en plus des boutons de mouvement. - - Afficher_dans_toute_la_fenêtre;; - modifie l'affichage dans la colonne de droite pour qu'elle soit - remplie entièrement. - -Réglages:: - Les items de ce menu permettent à l'opérateur de contrôler certains - paramètres en cours d'usinage. - - Position_Actuelle;; - régle l'afficheur principal sur des valeurs de position actuelle - (basées sur la machine). - - Position_Commandée;; - régle l'afficheur principal sur des valeurs de position commandée - (positions cibles). - - Position_Machine;; - régle l'afficheur principal sur des valeurs de position absolue, - distance depuis le point d'origine machine. - - Position_Relative;; - régle l'affichage principal pour qu'il affiche les valeurs de la - position courante en incluant tous les offsets comme les origines - pièces qui seraient actives. Pour plus de détails voir le chapitre - sur les _Systèmes de coordonnées_. - -Informations:: - Indique diverses activités en affichant des valeurs dans la zône MESSAGES. - - Fichier_programme;; - Indique le nom du fichier programme actif. - - Editeur_de_Fichiers;; - Indique le nom de l'éditeur de texte lancé quand un fichier est - choisi pour être édité. - - Fichier_de_paramètres;; - Indique le nom du fichier devant être utilisé pour enregistrer les - paramètres du programme. Il est possible d'avoir plus d'informations - dans le chapitre sur les offsets et l'utilisation des paramètres - dans les programmes. - - Fichiers_d'outils;; - Indique le nom du fichier d'outils utilisé pour l'usinage en cours. - - G-Codes_actifs;; - Indique la liste des G-codes modaux actifs au moment ou cet item - a été sélectionné. Pour plus d'informations sur les codes modaux, se - reporter aux chapitres sur la programmation. - -Aide:: - Ouvre une fenêtre de texte contenant un fichier d'aide. - -Noter que entre le menu informations et le menu d'aide il y a un jeu -de quatre cases à cocher. Elles sont appelées cases sélectionnables car -elles passent au rouge si elles sont sélectionnées. Ces quatre cases, -Editeur, Parcours d'outil, Outils et Offsets activent les différents -écrans. Si plus d'une de ces cases est validée (case en rouge) il est -possible de passer de l'un à l'autre des écrans surgissant par un clic -droit de la souris. - -== Barre de boutons de contrôle - -Sous la ligne de menu se trouve une ligne de boutons de contrôle. Ce -sont les boutons principaux de l'interface. En utilisant ces boutons il -est possible de changer de mode cycliquement entre _MANUEL_ puis _AUTO_ -puis _MDI_ (Manual Data Input). Ces boutons ont un fond vert clair -quand le mode correspondant est actif. - -Il est également possible d'utiliser les boutons _VITESSE-0_, -_ABANDON_ et _A/U_ pour contrôler les mouvements du programme. - -=== MANUEL (((Manuel))) - -Ce bouton, ou la touche *F3* placent LinuxCNC en mode Manuel et affiche un -jeu condensé de boutons que l'opérateur peut utiliser pour effectuer -des commandes de mouvements manuels. Les labels des boutons de jog -varient pour refléter l'axe actif. Quand en plus de ce mode manuel, la -vue en mode complet est activée, les boutons de la broche et du -lubrifiant sont visibles en plus de ceux de mouvement. La touche *i* ou -*I* basculera entre jog en continu et jog par incréments. Presser cette -touche plusieurs fois provoquera le changement cyclique de la taille de -l'incrément de jog. - -.Boutons du mode Manuel - -image::images/miniman_fr.png[] - -Un bouton à été ajouté pour désigner la position actuelle comme étant -la position d'origine. Une machine simple telle que la Sherline 5400 -serait facile à utiliser sans avoir de position d'origine. Ce bouton -met les offsets de tous les axes à zéro et place l'origine de tous les -axes au point courant. - -Ce concentrer sur les axes est important ici. Noter que sur la capture -<> qui est en mode manuel, -on voit un cadre autour de l'axe X pour mettre son affichage en évidence. Ce -cadre (le focus) indique que l'axe X est l'axe actif. Il est l'axe cible -pour les mouvements de jog faits par appui sur les boutons 'plus' ou 'moins'. -Il est possible de changer l'axe actif en cliquant sur l'affichage -d'un autre axe. C'est également possible en mode manuel en pressant la -touche de son nom sur le clavier. La casse n'a pas d'importance *Y* ou -*y* donneront le focus à l'axe Y. *A* ou *a* le donneront à l'axe A. -Pour aider à se rappeller quel est l'axe actif avant de faire un jog, -son nom est indiqué sur les boutons de jog. - -LinuxCNC peut faire un jog (mouvement d'un axe particulier) aussi longtemps -que le bouton est maintenu pressé, si le jog est réglé sur _continu_ , -ou il peut se déplacer d'une valeur prédéfinie, quand il est réglé -sur _incrément_ s. Il est aussi possible de faire un jog de l'axe -actif en pressant les touches *+* ou moins *-* du clavier. De nouveau, -la casse n'a pas d'importance pour les jogs au clavier. Les deux petits -boutons situés entre les deux gros du jog, permettent de choisir quel type -de jog est souhaîté. Quand on est en mode incréments, les boutons de taille -d'incréments sont accessibles. La sélection d'une taille d'incrément se -fait par clic sur la case à cocher avec la souris ou cycliquement en -pressant la touche *i* ou *I* sur le clavier. Le jog par incréments -présente quelques effets intéressants autant qu'inattendus. Si vous -pressez le bouton de jog alors qu'un mouvement de jog est déjà en -cours, la distance à laquelle il était lorsqu'est arrivée la commande -du second jog, sera ajoutée à la position. Deux pressions successives -rapides de 10mm d'incrément ne donneront pas 20mm de mouvement. Vous -devez attendre que le premier soit terminé avant d'envoyer le second. - -La vitesse de jog est affichée au dessus du curseur. Il est possible -de régler le curseur en cliquant dans la glissière du curseur, du côté -où vous voulez son déplacement, ou en cliquant sur les boutons -_Défaut_ ou _Rapide_. Ces réglages n'affectent que les mouvements de -jog en mode manuel. Tant qu'un mouvement de jog est en cours, un -changement de la vitesse de jog est sans effet sur le jog. Par exemple, -disons que vous avez réglé le jog par incréments de 10mm. Même si vous -pressez le bouton _Jog_, le déplacement de dix millimètres se finira à -la vitesse à laquelle il a commencé. - -=== AUTO (((Auto))) - -Quand le bouton Auto est pressé, ou *F4* sur le clavier, LinuxCNC passe -dans ce mode, un jeu de boutons traditionnels des opérations en auto -est affiché et une petite fenêtre textuelle s'ouvre, montrant une -partie du programme. Durant un usinage, la ligne active est affichée en -surbrillance blanche sur fond rouge. - -Dans le mode auto, beaucoup de touches sont liées aux contrôles. Par -exemple, les touches numérotées au dessus du clavier sont liées aux -réglages du correcteur de vitesse d'avance travail. Le *0* l'ajuste à -100%, le *9* l'ajuste à 90% etc. D'autres touches fonctionnent de la -même manière qu'avec l'interface TkLinuxCNC. - -.Mode Auto - -image::images/miniauto_fr.png[] - -Le mode Auto n'affiche normalement pas les G-codes actifs ou modaux. -Si l'opérateur veut les voir, il doit utiliser le menu _Informations → -G-codes actifs_ et afficher ainsi la liste des codes modaux dans la -zône de texte MESSAGES. - -Si un Arrêt d'Urgence ou un Abandon est pressé pendant un usinage, un -jeu de boutons s'affiche en bas et à droite, ils permettent à -l'opérateur de décaler la ligne de reprise vers l'avant ou vers -l'arrière. Si la ligne de reprise n'est pas la dernière ligne active, -elle sera mise en surbrillance blanche sur fond bleu. ATTENTION, une -vitesse très faible et un doigt collé sur le bouton de pause est -prudent pendant toute reprise de programme! - -Ce qui est le mieux avec une machine CNC, c'est le mode auto. Le mode -auto affiche les fonctions typiques que tout le monde espère utiliser -avec LinuxCNC. Au dessus de la fenêtre un jeu de boutons qui contrôlent ce -qui se passe en mode auto. En dessous, la fenêtre montrant la partie du -programme en cours d'exécution. Quand le programme est lancé, la ligne -active s'affiche en surbrillance blanche sur fond rouge. Les trois -premiers boutons, _Ouvrir_, _Lancer_ et _Pause_ font ce que leurs noms -indiquent. _Pause_ stoppe le programme en cours d'exécution là où il -est. Le bouton suivant, _Reprise_, reprend le mouvement. Le résultat -est le même si le bouton _Vitesse-0_ était pressé au lieu du bouton -_Pause_, le mouvement est stoppé, _Pas à pas_ reprend aussi le -mouvement, mais il ne continue que jusqu'à la fin du bloc courant. -Presser une nouvelle fois _Pas à pas_ exécutera le mouvement du bloc -suivant. Presser _Reprise_ à ce moment là et l'interpréteur reviendra -en arrière lire et relancer le programme. La combinaison entre _Pause_ -et _Pas à pas_ marche un peu comme un seul bloc dans plusieurs -interpréteurs. Avec la différence que _Pause_ ne laisse pas le -mouvement se poursuivre jusqu'à la fin du bloc courant. Le correcteur -de vitesse d'avance travail peut se révéler très pratique pour -s'approchez de la matière pour un premièr usinage. Le placer sur 100% -pour les déplacements rapides, le régler sur 10% et basculez entre -_Vitesse-0_ et 10% en utilisant le bouton _Pause_. Quand vous êtes -satisfait et que les choses se présentent bien, pressez le zéro à la -droite du neuf en haut du clavier, et c'est parti. - -Le bouton _Vérifier_ passe le code dans l'interpréteur sans production -de mouvements. Si Vérifier trouve un problème il stoppe la lecture -juste derrière le bloc posant problème et affiche un message. La -plupart du temps vous serez en mesure de régler le problème avec votre -programme par la lecture du message et en vérifiant la ligne de code en -surbrillance dans la fenêtre du programme. Certains messages, -toutefois, ne sont pas d'un grand secours. Parfois vous devrez lire une -ou deux lignes en avant de celle en surbrillance pour voir le problème. -Occasionnellement le message fait référence à quelque chose très en -avant de la ligne en surbrillance. Le plus souvent ça se produit si -vous oubliez de terminer votre programme par un code correct comme %, -M2, M30, ou M60. - -=== MDI[[sub:MDI]](((MDI))) - -Le bouton MDI ou la touche *F5* activent le mode d'entrée de données -en manuel (Manual Data Input). Ce mode affiche un simple champ de -saisie d'une ligne de texte et montre les codes modaux actuellement -actifs dans l'interpréteur. - -Le mode MDI vous permet d'entrer de simples blocs et de les faire -exécuter par l'interpréteur comme si ils étaient une partie d'un -programme (Une sorte de programme d'une seule ligne). Vous pouvez -exécuter des cercles, des arcs, des lignes et autres. Vous pouvez aussi -mettre au point une ligne de programme en entrant cette ligne comme un -seul bloc, attendre que le mouvement se termine et entrer le bloc -suivant. Sous la fenêtre d'entrée, se trouve une liste des codes modaux -courants. Cette liste peut être très pratique. J'oublie parfois -d'entrer un G0 avant une commande de mouvement. Si rien ne se passe je -regarde dans la liste si G80 est actif. G80 stoppe tous les mouvements. -Si il y est je me rappelle de mettre un bloc comme G00 X0 Y0 Z0. Dans -le MDI, vous entrez du texte depuis le clavier, ainsi toutes les -touches principales ne fonctionnent pas comme raccourcis clavier pour -les commandes machine. *F1* engage l'Arrêt d'Urgence. - -Puisque les touches du clavier sont nécessaires à la saisie du texte, -beaucoup des raccourcis clavier disponibles en mode auto ne le sont pas -ici. - -=== VITESSE-0 et CONTINUER - -Vitesse-0 est une bascule. Quand LinuxCNC est prêt pour exécuter, ou qu'il -exécute une commande de mouvement, ce bouton affiche son label -_VITESSE-0_ sur fond rouge. Si Vitesse-0 a été pressé il affiche le -label _CONTINUER_. Utiliser ce bouton pour faire une pause dans un -mouvement présente l'avantage d'être capable de relancer le programme -d'où il a été stoppé. Vitesse-0 bascule simplement entre vitesse zéro -et la vitesse d'avance travail avec l'éventuel correcteur qui était -actif au moment de l'arrêt. Ce bouton et la fonction qu'il active sont -également liés à la touche pause de la plupart des claviers. - -=== ABANDON - -Le bouton Abandon stoppe tous les mouvements quand il est pressé. Il -désactive aussi la commande de marche de LinuxCNC. Plus aucun mouvement ne -survient après l'appui sur ce bouton. Si vous êtes en mode auto, ce -bouton enlève le reste du programme du planificateur de mouvements. Il -enregistre aussi le numéro de la ligne qui s'exécutait quand il a été -pressé. Vous pouvez vous servir de ce numéro de ligne pour redémarrer -le programme après avoir supprimé la raison de l'appui... - -=== Arrêt d'Urgence(((ESTOP))) - -Le bouton d'Arrêt d'Urgence est une bascule mais il a trois -fonctionnements possibles. - - - Au démarrage de Mini c'est un bouton avec le texte _A/U_ écrit en noir - sur fond rouge. C'est état de la machine est correct pour charger un - programme ou faire un jog sur un axe. L'Arrêt d'Urgence est libéré - quand il s'affiche dans cet état. - - Si vous pressez sur le bouton d'Arrêt d'Urgence pendant qu'un - mouvement est exécuté, le texte sur le bouton devient _A/U Engagé_ sur - fond gris et le bouton s'enfonce. Plus aucun mouvement n'est possible - et plus rien ne réagi sur l'interface Mini tant que l'Arrêt d'Urgence - est dans cet état. Le presser à nouveau à la souris le fera repasser en - conditions normales de fonctionnement. - - Un troisième état est encore possible. Un bouton enfoncé portant le - texte _A/U Libéré_ sur fond vert signifie que l'A/U a bien été libéré - mais que la machine n'a pas été mise en marche. Normalement cet état - apparaît quand l'A/U était libéré mais que la touche Marche Machine - *F2* a été pressée. - -Joe Martin disait, _Quand tout le reste a échoué, pressez -un Arrêt d'Urgence software_. Si vous avez un circuit externe qui -gère l'A/U en surveillant une broche du port parallèle ou celle -d'une carte d'entrées/sorties, un arrêt d'urgence software pourra -couper la puissance sur les moteurs. - -La plupart du temps, quand un Abandon ou un Arrêt d'Urgence est engagé -c'est parce que quelque chose se passe mal. Peut être un outil cassé et -qui doit être changé. On passe alors en mode manual et on arrête la -broche, on change l'outil et en supposant que sa longueur reste la -même, on est prêt pour relancer le programme. Si on renvoie l'outil à -la même place ou il était avant, LinuxCNC va fonctionner parfaitement. Il -est aussi possible de se déplacer sur la ligne suivante ou précédente -de celle ou c'est produit l'abandon. Si vous pressez le bouton -_Arrière_ ou _Avant_ vous voyez une ligne en surbrillance bleue -montrant l'écart entre la ligne sur laquelle l'abandon s'est produit -(restée en surbrillance rouge) et la ligne à laquelle LinuxCNC va -redémarrer. En réfléchissant à ce qui va se produire au moment de la -reprise vous serez en mesure de placer l'arête de l'outil là où la -reprise pourra se faire de manière acceptable. Vous aurez peut être à -solutionner certaines difficultés comme celles créées par les -compensations de rayon d'outil le long d'une ligne diagonale et vous -devrez être sûr de vous avant de presser sur le bouton _Reprise_. - -== Colonne de gauche - -Il y a deux colonnes sous la barre de contrôle. La colonne de gauche -affiche les informations intéressant l'opérateur. Il y a seulement deux -boutons dans cette zône. - -=== Afficheurs de position des axes - -Ces afficheurs se comportent exactement comme ceux de TkeLinuxCNC. La -couleur des afficheurs est importante. - - - Rouge, elle indique que la machine est en appui sur un contact de fin - de course ou que la polarité d'une limite est mal positionnée dans le - fichier ini. - - Jaune, elle indique que la machine est prête pour faire ses prises - d'origine. - - Verte, elle indique que la machine a bien été référencée sur ses - points d'origine. - -Le type de position affichée peut varier, selon les options choisies -dans le menus _Réglages_. Les réglages par défaut, ou de démarrage, -peuvent être changés dans le fichier ini pour correspondre à vos -besoins. - -=== Correcteur de vitesse travail(((correcteur vitesse))) - -Immédiatement sous les afficheurs de position on trouve un curseur, -c'est le correcteur de vitesse travail. Vous pouvez agir sur le -correcteur de vitesse et sur le bouton Vitesse-0 dans tous les modes de -marche. Le correcteur agit sur la vitesse de jog et sur la vitesse -d'avance travail dans les modes manuel ou MDI. Il est possible de -modifier la position du curseur en le déplaçant à la souris le long de -sa glissière. Il est également possible de modifier le correcteur de 1% -à chaque fois qu'un clic de souris est fait dans la glissière du -curseur. En mode Manuel il est possible d'ajuster le correcteur par -incréments de 10% avec les touches chiffrées du haut du clavier. Le -curseur est une référence visuelle très pratique pour estimer la -correction appliquée sur la vitesse d'avance programmée. - -=== Messages - -L'affichage des messages situé sous le curseur du correcteur de -vitesse est une sorte de bloc-notes pour LinuxCNC. Si un problème survient, -il est reporté sur ce bloc-notes. Si vous essayez de déplacer un axe -alors que l'Arrêt d'Urgence est engagé, vous recevez un message qui dit -quelques choses à propos des conditions de marche empêchant LinuxCNC de -répondre à la commande de mouvement. Si un axe est en défaut, par -exemple un dépassement de limite, le message affiché sur le bloc-notes -indiquera ce qui se passe. Pour demander à l'opérateur de changer -d'outil par exemple, vous pouvez aussi ajouter une ligne de code dans -le programme qui s'affichera sur l'écran, dans la boîte de messages. Un -exemple pourrait être: (msg, Montez l'outil N°3 puis pressez Reprise). -Cette ligne de code, incluse dans un programme, va -afficher _Montez l'outil 3 puis pressez Reprise_ dans la boîte -de messages. Le mot msg, (avec la virgule) est la commande qui fait -apparaître le commentaire, sans _msg_, le message ne serait pas affiché. - -Pour effacer les messages cliquer simplement sur le bandeau ---MESSAGES-- au dessus du bloc-notes ou au clavier, presser *m* tout en -maintenant la touche _Alt_ appuyée. - -== Colonne de droite - -La colonne de droite est l'emplacement sur lequel seront affichés les -différents éléments résultants des choix de l'utilisateur. C'est ici -que seront visibles les différentes entrées de texte, les différents -affichages et les boutons du mode manuel. C'est ici que le parcours -d'outil sera affiché pendant l'exécution d'un programme. C'est -également ici que l'éditeur de texte s'ouvrira pour permettre l'édition -des programmes, l'édition des tables d'outils ou d'offsets. L'écran du -mode manuel a déjà été décrit précédemment. Chaque écran surgissant va -être décrit en détail ci-dessous. - -=== Editeur de texte - -.Editeur de texte de Mini - -image::images/miniedit_fr.png[] - -L'éditeur de texte de Mini peut sembler un peu limité par rapport aux -éditeurs de texte modernes. Il a été inclus parce qu'il comporte -l'excellente possibilité de numéroter et renuméroter un programme de la -même manière que l'interpréteur le fait avec un fichier. Il permet -également le couper/coller d'une partie vers une autre du fichier. En -plus, il permet d'enregistrer les changements faits dans le programme -et de soumettre celui-ci à l'interpréteur de LinuxCNC depuis le même menu. Il -est possible de travailler sur un fichier ouvert dans cet éditeur puis -de l'enregistrer et de le recharger si LinuxCNC est en mode Auto. Si vous -avez lancé un fichier et que vous avez besoin de l'éditer, ce fichier -sera placé dans l'éditeur quand vous cliquez sur le bouton _Editeur_ du -menu. - -=== Parcours d'outil(((trace d'outil ))) - -.Parcours d'outil de Mini - -image::images/minibkplot_fr.png[] - -Le bouton _Parcours d'outil_ du menu, affiche un tracé produit par le -cheminement de l'outil pendant l'usinage. Cette trace est affichable -selon plusieurs plans et en *3-D* qui est le mode par défaut. Les choix -sont affichés au dessus et à droite de cette fenêtre. Si l'usinage est -déjà en cours depuis un certain temps quand cette fenêtre est activée, -il lui faudra un peu de temps pour recalculer la vue du parcours. - -Sur le côté droit de la fenêtre une petite pyramide graphique montre -l'angle depuis lequel l'opérateur voit le tracé du parcours d'outil. En -dessous, une série de curseurs permettent de modifier les angles et la -taille de la vue. Il est possible de contrôler les modifications en -regardant l'attitude de la petite pyramide. Les modifications ne -prendront effet qu'après appui sur le bouton _Rafraîchir_. Le bouton -_Reset_ efface toutes les traces du parcours affiché et prépare la -fenêtre pour un nouveau lancement du programme, il conserve toutefois -les orientations et le niveau de zoom actuellement définis. - -Si un parcours d'outil est lancé avant qu'un programme ne soit -démarré, il va afficher quelques lignes de couleur pour indiquer le -type de tracé qui sera utilisé. Une ligne verte représente un mouvement -en vitesse d'avance rapide. Une ligne noire, un mouvement en vitesse -d'avance travail. Une ligne bleue et une ligne rouge indiquent -respectivement un arc en sens anti-horaire et un arc en sens horaire. - -Le tracé du parcours d'outil de Mini permet de zoomer et d'orienter -les vues du programme en cours d'exécution mais il n'est pas conçu pour -enregistrer un chemin d'outil sur une longue période de temps. - -=== Page des outils - -La page des outils permet d'ajuster la longueur et le diamètre des -outils, ces valeurs deviennent effectives dès l'appui sur la touche -_Entrée_. Il est nécessaire de définir les paramètres des outils avant -de lancer le programme. Les offsets d'outils ne peuvent pas être -modifiés une fois le programme démarré ni quand il est en pause. - -.Affichage de la table d'outils de Mini - -image::images/minitool_fr.png[] - -Les boutons _Ajouter un outil_ et _Enlever le dernier outil_ portent -sur la fin de la liste des outils de sorte que l'ajout d'outils -s'effectuent vers le bas. Quand un nouvel outil est ajouté, il est -utilisable dans le programme avec la commande G-code habituelle. Le -nombre maximum d'outils est de 32 dans le fichier de configuration -de LinuxCNC mais vous serez arrivé au bout des possibilités d'affichage de -Mini bien avant celà. A la place vous pouvez utiliser le _menu → -Vues → Afficher dans toute la fenêtre_ pour voir plus d'outils si -nécessaire. - -=== Page des offsets - -La page des offsets peut être utilisée pour afficher et ajuster les -décalages d'origine des différents systèmes de coordonnées. Le système -de coordonnées est choisi dans la colonne de gauche, par sélection -d'une case à cocher. Quand un système de coordonnées est choisi il est -possible d'entrer directement les valeurs ou de déplacer l'axe à une -position d'apprentissage. - -.Mini Offset Display - -image::images/minioffsets_fr.png[] - -Il est également possible d'utiliser une pinnule puis d'ajouter le -rayon et la longueur par le bouton _Apprentissage_. Pour celà, il peur -être nécessaire d'ajouter ou de soustraire le rayon de la pinnule selon -la surface qui est touchée. C'est la case à cocher _Soustraire_ ou -_Ajouter_ qui permet ce choix. - -Le bouton _Tous les Gxx à zéro_ enléve tous les décalages du système -courant visibles sur l'écran mais ne modifie pas les variables dans le -fichier tant que le bouton __écrire et recharger_ n'est pas pressé. Le -bouton _écrire et recharger_ est à presser pour valider et recharger -tous les changements effectués sur les valeurs des systèmes de -coordonnées. - -== Raccourcis clavier - -Un certain nombre de raccourcis clavier utilisés avec TkLinuxCNC ont été -conservés avec Mini. Quelques uns ont changé pour étendre leurs -fonctions ou pour faciliter les opérations sur une machine utilisant -cette interface. Certaines touches opérent de la même manière quelque -soit le mode. D'autres change en fonction du mode de travail de LinuxCNC. - -=== Touches courantes - -Pause:: - Bascule du correcteur de vitesse travail - -Echap:: - Abandonne le mouvement - -F1:: - Bascule l'état de l'Arrêt d'Urgence - -F2:: - Marche/Arrêt machine - -F3:: - Mode manuel - -F4:: - Mode Auto - -F5:: - Mode MDI - -F6:: - Réinitialise l'interpréteur - -Ces touches fonctionnent seulement pour une machine utilisant des -entrées sorties auxiliaires - -F7:: - Marche/Arrêt du brouillard - -F8:: - Marche/Arrêt arrosage - -F9:: - Marche/Arrêt broche sens horaire - -F10:: - Marche/Arrêt broche sens anti-horaire - -F11:: - Diminue la vitesse de broche - -F12:: - Augmente la vitesse de broche - -=== Mode Manuel (((Manuel))) - -1-9 0:: - Positionne le correcteur de vitesse d'avance travail de 10% en 10%, de - 0 à 100% - -~:: - Positionne le correcteur de vitesse à 0 - -x:: - Sélectionne l'axe X - -y:: - Sélectionne l'axe Y - -z:: - Sélectionne l'axe Z - -a:: - Sélectionne l'axe A - -b:: - Sélectionne l'axe B - -c:: - Sélectionne l'axe C - -Gauche Droite:: - jog de l'axe X - -Haut Bas:: - jog de l'axe Y - -Pg.préc Pg.suiv:: - jog de l'axe Z - -- _:: - jog de l'axe actif dans la direction moins - -+ =:: - jog l'axe actif dans la direction plus - -Origine:: - POM de l'axe actif - -i I:: - Bascule cyclique des incréments de jog - -Les touches suivantes ne fonctionnent que sur les machines utilisant -des entrées sorties auxiliaires - -b:: - Relâcher le frein de broche - -Alt-b:: - Engager le frein de broche - -=== Mode Auto (((Auto))) - -1-9,0:: - Positionne le correcteur de vitesse d'avance travail de 10% en 10%, de - 0 à 100% - -~:: - Positionne le correcteur de vitesse à 0 - -o/O:: - Ouvre un programme - -r/R:: - Lance le programme ouvert - -p/P:: - Met le programme en pause - -s/S:: - Reprise d'un programme en pause - -a/A:: - Avance d'une ligne dans un programme en pause - -== Divers - -Une des possibilités de Mini est d'afficher n'importe quel axe, au -delà de 2, comme étant un axe rotatif, il affiche alors des degrés pour -celui-ci. Il converti également les unités en degrés quand un axe -rotatif a le focus. - - diff --git a/docs/src/gui/ngcgui.txt b/docs/src/gui/ngcgui.txt deleted file mode 100644 index e78b448d147..00000000000 --- a/docs/src/gui/ngcgui.txt +++ /dev/null @@ -1,877 +0,0 @@ -= NGCGUI - -[[cha:ngcgui]] (((NGCGUI))) - -image::images/ngcgui.png[] - -== Overview - -* 'NGCGUI' is a tcl application for using LinuxCNC subroutines. -* 'NGCGUI' can run as a standalone application or can be embedded in - multiple tab pages in the axis gui -* 'PYNGCGUI' is an alternate, python implementation of ngcgui. -* 'PYNGCGUI' can run as a standalone application or can be embedded as - a tab page (with its own set of multiple subroutine tabs) in any - gui that supports embedding of gladevcp applications. Example guis include: - axis, touchy, gscreen and gmoccapy - -Using NGCGUI or PYNGCGUI: - -* Tab pages are provided for subroutines specified in the INI file -* New subroutines tab pages can be added using Custom tab pages -* Each subroutine tab page provides entry boxes for all subroutine parameters -* The entry boxes can have a default value and an label that - are identified by special comments in the subroutine file -* Subroutine invocations are concatenated together to form a multiple step program -* Any single-file gcode subroutine that conforms to ngcgui conventions can be used -* Any gcmc (Gcode-meta-compiler) program that conforms to ngcgui conventions - for tagging variables can be used. (The gcmc executable must be installed - separately, see: http://www.vagrearg.org/content/gcmc) - -[NOTE] -NGCGUI and PYNGCGUI implement the same functions and both process .ngc and .gcmc -files that conform to a few ngcgui-specific conventions. In this document, -the tern NGCGUI generally refers to either application. - -== Demonstration Configurations - -A number of demonstration configurations are located in the sim directory -of the Sample Configurations offered by the LinuxCNC configuration picker. The -configuration picker is on the system's main menu: - - Applications > CNC > LinuxCNC - -Examples are included for the axis, touchy, gscreen, and gmoccapy guis. -These examples demonstrate both 3-axis (XYZ) cartesian configurations -(like mills) and lathe (XZ) setups. Some examples show the use of a -popupkeyboard for touch screen systems and other examples demonstrate -the use of files created for the gcmc (Gcode Meta Compiler) application. -The touchy examples also demonstrate incorporation of a gladevcp backplot -viewer (gremlin_view). - -The simplest application is found as: - - Sample Configurations / sim / axis / ngcgui /ngcgui_simple - -A comprehensive example showing gcmc compatibility is at: - - Sample Configurations / sim / axis / ngcgui / ngcgui_gcmc - -A comprehensive example embedded as a gladevcp app and using gcmc is at: - - Sample Configurations / sim / gscreen / ngcgui / pyngcgui_gcmc - - -The example sim configurations make use of library files that provide -example gcode subroutine (.ngc) files and Gcode-meta-compiler (.gcmc) files: - -* 'nc_files/ngcgui_lib' -** 'arc1.ngc' - basic arc using cutter radius compensation -** 'arc2.ngc' - arc speced by center, offset, width, angle (calls arc1) -** 'backlash.ngc' - routine to measure an axis backlash with dial indicator -** 'db25.ngc' - creates a DB25 plug cutout -** 'gosper.ngc' - a recursion demo (flowsnake) -** 'helix.ngc' - helix or D-hole cutting -** 'helix_rtheta.ngc' - helix or D-hole positioned by radius and angle -** 'hole_circle.ngc' - equally spaced holes on a circle -** 'ihex.ngc' - internal hexagon -** 'iquad.ngc' - internal quadrilateral -** 'ohex.ngc' - outside hexagon -** 'oquad.ngc' - outside quadrilateral -** 'qpex_mm.ngc' - demo of qpockets (mm based) -** 'qpex.ngc' - demo of qpockets (inch based) -** 'qpocket.ngc' - quadrilateral pocket -** 'rectangle_probe.ngc' - probe a rectangular area -** 'simp.ngc' - a simple subroutine example that creates two circles -** 'slot.ngc' - slot from connecting two endpoints -** 'xyz.ngc' - machine exerciser constrained to a box shape - -* 'nc_files/ngcgui_lib/lathe' -** 'g76base.ngc' - gui for g76 threading -** 'g76diam.ngc' - threading speced by major, minor diameters -** 'id.ngc' - bores the inside diameter -** 'od.ngc' - turns the outside diameter -** 'taper-od.ngc' - turns a taper on the outside diameter - -* 'nc_files/gcmc_lib' -** 'drill.gcmc' - drill holes in rectangle pattern -** 'square.gcmc' - simple demo of variable tags for gcmc files -** 'star.gcmc' - gcmc demo illustrating functions and arrays -** 'wheels.gcmc' - gcmc demo of complex patterns - -To try a demonstration, select a sim configuration and start -the linuxCNC program. - -If using the axis gui, press the 'E-Stop' -image:images/tool_estop.gif[] then 'Machine Power' -image:images/tool_power.gif[] then 'Home All'. Pick a ngcgui tab, fill in -any empty blanks with sensible values and press -'Create Feature' then 'Finalize'. Finally press the 'Run' -image:images/tool_run.gif[] button to watch it run. Experiment -by creating multiple features and features from different tab pages. - -Other guis will have similar functionality but the buttons and names -may be different. - -.Notes -[NOTE] -=============================== -The demonstration configs create tab pages for just a few of the provided -examples. Any gui with a Custom tab page can open any of the library -example subroutines or any user file if it is in the linuxCNC subroutine -path. - -To see special key bindings, click inside an ngcgui tab page to get -focus and then presss Control-k. - -The demonstration subroutines should run on the simulated -machine configurations included in the distribution. A user -should always understand the behavior and purpose of a program -before running on a real machine. -=============================== - -== Library Locations - -In linuxCNC installations installed from deb packages, the simulation configs -for ngcgui use symbolic links to non-user-writable LinuxCNC libraries for: - -* 'nc_files/ngcgui_lib' ngcgui-compatible subfiles -* 'nc_files/ngcgui_lib/lathe' ngcgui-compatible lathe subfiles -* 'nc_files/gcmc_lib' ngcgui-gcmc-compatible programs -* 'nc_files/ngcgui_lib/utilitysubs' Helper subroutines -* 'nc_files/ngcgui_lib/mfiles' User M files - -These libraries are located by ini file items that specify the search -paths used by linuxCNC (and ngcgui): - ----- -[RS274NGC] -SUBROUTINE_PATH = ../../nc_files/ngcgui_lib:../../nc_files/gcmc_lib:../../nc_files/ngcgui_lib/utilitysubs -USER_M_PATH = ../../nc_files/ngcgui_lib/mfiles ----- - -[NOTE] -These are long lines (not continued on multiple lines) -that specify the directories used in a search patch. The -directory names are separated by colons (:). No spaces should -occur between directory names. - -A user can create new directories for their own subroutines and -M-files and add them to the search path(s). - -For example, a user could create directories from the terminal with the commands: ----- -mkdir /home/myusername/mysubs -mkdir /home/myusername/mymfiles ----- - -And then create or copy system-provided files to these user-writable directories. -For instance, a user might create a ngcgui-compatible subfile named: - ----- -/home/myusername/mysubs/example.ngc ----- - -To use files in new directories, the ini file must be edited to include the new -subfiles and to augment the search path(s). For this example: - ----- -[RS274NGC] -... -SUBROUTINE_PATH = /home/myusername/mysubs:../../nc_files/ngcgui_lib:../../nc_files/gcmc_lib:../../nc_files/ngcgui_lib/utilitysubs -USER_M_PATH = /home/myusername/mymfiles:../../nc_files/ngcgui_lib/mfiles - -[DISPLAY] -... -NGCGUI_SUBFILE = example.ngc -... ----- - -LinuxCNC (and ngcgui) use the first file found when searching -directories in the search path. With this behavior, you can -supersede an ngcgui_lib subfile by placing a subfile with an -identical name in a directory that is found earlier in the path -search. More information can be found in the INI chapter of the -Integrators Manual. - - -== Standalone Usage -=== Standalone NGCGUI -For usage, type in a terminal: ----- -ngcgui --help -Usage: - ngcgui --help | -? - ngcgui [Options] -D nc_files_directory_name - ngcgui [Options] -i LinuxCNC_inifile_name - ngcgui [Options] - - Options: - [-S subroutine_file] - [-p preamble_file] - [-P postamble_file] - [-o output_file] - [-a autosend_file] (autosend to axis default:auto.ngc) - [--noauto] (no autosend to axis) - [-N | --nom2] (no m2 terminator (use %)) - [--font [big|small|fontspec]] (default: "Helvetica -10 normal") - [--horiz|--vert] (default: --horiz) - [--cwidth comment_width] (width of comment field) - [--vwidth varname_width] (width of varname field) - [--quiet] (fewer comments in outfile) - [--noiframe] (default: frame displays image) ----- -[NOTE] -As a standalone application, ngcgui handles a single subroutine file which -can be invoked multiple times. Multiple standalone ngcgui applications -can be started independently. - -=== Standalone PYNGCGUI -For usage, type in a terminal: ----- -pyngcgui --help -Usage: -pyngcgui [Options] [sub_filename] -Options requiring values: - [-d | --demo] [0|1|2] (0: DEMO standalone toplevel) - (1: DEMO embed new notebook) - (2: DEMO embed within existing notebook) - [-S | --subfile sub_filename] - [-p | --preamble preamble_filename] - [-P | --postamble postamble_filename] - [-i | --ini inifile_name] - [-a | --autofile autoauto_filename] - [-t | --test testno] - [-H | --height height_of_entry widget] (typ 20-40) - [-K | --keyboardfile glade_file] (use custom popupkeyboard glade file) -Solo Options: - [-v | --verbose] - [-D | --debug] - [-N | --nom2] (no m2 terminator (use %)) - [-n | --noauto] (save but do not automatically send result) - [-k | --keyboard] (use default popupkeybaord) - [-s | --sendtoaxis] (send generated ngc file to axis gui) -Notes: - A set of files is comprised of a preamble, subfile, postamble. - The preamble and postamble are optional. - One set of files can be specified from cmdline. - Multiple sets of files can be specified from an inifile. - If --ini is NOT specified: - search for a running linuxCNC and use it's inifile ----- - -[NOTE] -As a standalone application, pyngcgui can read an ini file (or a -running linuxCNC application) to create tab pages for multiple -subfiles. - -== Embedding NGCGUI -=== Embedding NGCGUI in Axis -The following INI file items go in the [DISPLAY] section. (See additional -sections below for additional items needed) - -* 'TKPKG = Ngcgui 1.0' - the NGCGUI package -* 'TKPKG = Ngcguittt 1.0' - the True Type Tracer package for generating text - for engraving (optional, must follow TKPKG = Ngcgui). -* 'TTT = truetype-tracer' - name of the truetype tracer program (it must be in user PATH) -* 'TTT_PREAMBLE = in_std.ngc' - Optional, specifies filename for preamble used for - ttt created subfiles. (alternate: mm_std.ngc) - -[NOTE] -The optional truetype tracer items are used to specify an ngcgui-compatible tab page -that uses the application truetype-tracer. The truetype-tracer application must -be installed independently and located in the user PATH. - -=== Embedding PYNGCGUI as a gladevcp tab page in a gui -The following INI file items go in the [DISPLAY] section for use with the -axis, gscreen, or touchy guis. (See additional sections below for additional -items needed) - -.EMBED_ Items -.... -EMBED_TAB_NAME = Pyngcgui - name to appear on embedded tab -EMBED_TAB_COMMAND = gladevcp -x {XID} pyngcgui_axis.ui - invokes gladevcp -EMBED_TAB_LOCATION = name_of_location - where the embeded page is located -.... - -[NOTE] -The EMBED_TAB_LOCATION specifier is not used for the axis gui. While -pyngcgui can be embedded in axis, integration is more complete when using -ngcgui (using TKPKG = Ngcgui 1.0). To specify the EMBED_TAB_LOCATION -for other guis, see the example ini files. - -[NOTE] - The truetype tracer gui front-end is not currently available for gladevcp -applications. - -=== Additional INI File items required for ngcgui or pyngcgui -The following INI file items go in the [DISPLAY] section for any gui -that embeds either ngcgui or pyngcgui. - -* 'NGCGUI_FONT = Helvetica -12 normal' - specifices the font name,size, normal|bold -* 'NGCGUI_PREAMBLE = in_std.ngc' - the preamble file to be added in front of the - subroutines. When concatenating several common subroutine invocations, this preamble - is only added once. For mm-based machines, use mm_std.ngc -* 'NGCGUI_SUBFILE = filename1.ngc' - creates a tab from the filename1 subroutine -* 'NGCGUI_SUBFILE = filename2.ngc' - creates a tab from the filename2 subroutine -* '... etc' -* 'NGCGUI_SUBFILE = gcmcname1.gcmc' - creates a tab from the gcmcname1 file -* 'NGCGUI_SUBFILE = gcmcname2.gcmc' - creates a tab from the gcmcname2 file -* '... etc' -* 'NGCGUI_SUBFILE = ""' - creates a custom tab that can open any subroutine in the search path -* 'NGCGUI_OPTIONS = opt1 opt2 ...' - NGCGUI options -** 'nonew' - disallow making a new custom tab -** 'noremove' - disallow removing any tab page -** 'noauto' - no autosend (use makeFile, then save or manually send) -** 'noiframe' - no internal image, display images on separate top level widget -** 'nom2' - do not terminate with m2, use % terminator. This option eliminates all - the side effects of m2 termination -* 'GCMC_INCLUDE_PATH = dirname1:dirname2' - search directories for gcmc include files - -This is an example of embedding NGCGUI into Axis. The subroutines need to be -in a directory specified by the [RS274NGC]SUBROUTINE_PATH. Some example -subroutines use other subroutines so check to be sure you have the -dependences, if any, in a SUBROUTINE_PATH directory. Some subroutines may -use custom Mfiles which must be in a directory specified by the -[RS274NGC]USER_M_PATH. - -The Gcode-meta-compiler (gcmc) can include statements like: - include("filename.inc.gcmc"); -By default, gcmc includes the current directory which, for linuxCNC, will be -the directory containing the linuxCNC ini file. Additional directories can be -prepended to the gcmc search order with the GCMC_INCLUDE_PATH item. - -.Sample axis-gui-based INI ----- -[RS274NGC] -... -SUBROUTINE_PATH = ../../nc_files/ngcgui_lib:../../ngcgui_lib/utilitysubs -USER_M_PATH = ../../nc_files/ngcgui_lib/mfiles - -[DISPLAY] -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 -# Ngcgui must precede Ngcguittt - -NGCGUI_FONT = Helvetica -12 normal -# specify filenames only, files must be in [RS274NGC]SUBROUTINE_PATH -NGCGUI_PREAMBLE = in_std.ngc -NGCGUI_SUBFILE = simp.ngc -NGCGUI_SUBFILE = xyz.ngc -NGCGUI_SUBFILE = iquad.ngc -NGCGUI_SUBFILE = db25.ngc -NGCGUI_SUBFILE = ihex.ngc -NGCGUI_SUBFILE = gosper.ngc -# specify "" for a custom tab page -NGCGUI_SUBFILE = "" -#NGCGUI_SUBFILE = "" use when image frame is specified if -# opening other files is required -# images will be put in a top level window -NGCGUI_OPTIONS = -#NGCGUI_OPTIONS = opt1 opt2 ... -# opt items: -# nonew -- disallow making a new custom tab -# noremove -- disallow removing any tab page -# noauto -- no auto send (makeFile, then manually send) -# noiframe -- no internal image, image on separate top level -GCMC_INCLUDE_PATH = /home/myname/gcmc_includes - -TTT = truetype-tracer -TTT_PREAMBLE = in_std.ngc - -PROGRAM_PREFIX = ../../nc_files ----- - -[NOTE] -The above is not a complete axis gui INI -- the items show are those -used by ngcgui. Many additional items are required by LinuxCNC to have -a complete INI file. - - -=== Truetype Tracer - -Ngcgui_ttt provides support for truetype-tracer (v4). It creates an axis tab -page which allows a user to create a new ngcgui tab page after entering text -and selecting a font and other parameters. (Truetype-tracer must be installed -independently). - -To embed ngcgui_ttt in axis, specify the following items in addition to ngcgui items: -.... -Item: [DISPLAY]TKPKG = Ngcgui_ttt version_number -Example: [DISPLAY]TKPKG = Ngcgui_ttt 1.0 -Note: Mandatory, specifies loading of ngcgui_ttt in an axis tab page named ttt. - Must follow the TKPKG = Ngcgui item. - -Item: [DISPLAY]TTT = path_to_truetype-tracer -Example: [DISPLAY]TTT = truetype-tracer -Note: Optional, if not specified, attempt to use /usr/local/bin/truetype-tracer. - Specify with absolute pathname or as a simple executable name - in which case the user PATH environment will used to find the program. - -Item: [DISPLAY]TTT_PREAMBLE = preamble_filename -Example: [DISPLAY]TTT_PREAMBLE = in_std.ngc -Note: Optional, specifies filename for preamble used for ttt created subfiles. -.... - -=== INI File Path Specifications - -Ngcgui uses the linuxCNC search path to find files. - -The search path begins with the standard directory specified by: - - [DISPLAY]PROGRAM_PREFIX = directory_name - -followed by multiple directories specfied by: - - [RS274NGC]SUBROUTINE_PATH = directory1_name:directory1_name:directory3_name ... - -Directories may be specifed as absolute paths or relative paths. -.... -Example: [DISPLAY]PROGRAM_PREFIX = /home/myname/linuxcnc/nc_files -Example: [DISPLAY]PROGRAM_PREFIX = ~/linuxcnc/nc_files -Example: [DISPLAY]PROGRAM_PREFIX = ../../nc_files -.... - -An absolute path beginning with a "/" specifies a complete filesystem -location. A path beginning with a "\~/" specifies a path starting -from the user's home directory. A path beginning with "~username/" -specifies a path starting in username's home directory. - -.Relative Paths -Relative paths are based on the startup directory which is the directory -containing the INI file. Using relative paths can facilitate relocation of -configurations but requires a good understanding of linux path specifiers. - -.... - ./d0 is the same as d0, e.g., a directory named d0 in the startup directory - ../d1 refers to a directory d1 in the parent directory - ../../d2 refers to a directory d2 in the parent of the parent directory - ../../../d3 etc. -.... - -Multiple directories can be specified with [RS274NGC]SUBROUTINE_PATH by -separating them with colons. The following example illustrates the format -for multiple directories and shows the use of relative and absolute paths. - -.Multiple Directories Example: ----- -[RS274NGC]SUBROUTINE_PATH = ../../nc_files/ngcgui_lib:../../nc_files/ngcgui_lib/utilitysubs:/tmp/tmpngc` ----- - -This is one long line, do not continue on multiple lines. When linuxCNC and/or -ngcgui searches for files, the first file found in the search is used. - -LinuxCNC (and ngcgui) must be able to find all subroutines including helper routines -that are called from within ngcgui subfiles. It is convenient to place -utility subs in a separate directory as indicated in the example above. - -The distribution includes the ngcgui_lib directory and demo files for -preambles, subfiles, postambles and helper files. To modify the behavior -of the files, you can copy any file and place it in an earlier part of the -search path. The first directory searched is [DISPLAY]PROGRAM_PREFIX. You -can use this directory but it is better practice to create dedicated -directory(ies) and put them at the beginning of the [RS274NGC]SUBROUTINE_PATH. - -In the following example, files in /home/myname/linuxcnc/mysubs will be found before -files in ../../nc_files/ngcgui_lib. - -.Adding User Directory Example: ----- -[RS274NGC]SUBROUTINE_PATH = /home/myname/linuxcnc/mysubs:../../nc_files/ngcgui_lib:../../nc_files/ngcgui_lib/utilitysubs` ----- - -New users may inadvertently try to use files that are not structured to be -compatible with ngcgui requirements. Ngcgui will likely report numerous errors -if the files are not coded per its conventions. Good practice suggests that -ngcgui-compatible subfiles should be placed in a directory dedicated to that -purpose and that preamble, postamble, and helper files should be in separate -directory(ies) to discourage attempts to use them as subfiles. Files not intended -for use as subfiles can include a special comment: "(not_a_subfile)" so that -ngcgui will reject them automatically with a relevant message. - -=== Summary of INI File item details for NGCGUI usage -.... -Item: [RS274NGC]SUBROUTINE_PATH = dirname1:dirname2:dirname3 ... -Example: [RS274NGC]SUBROUTINE_PATH = ../../nc_files/ngcgui_lib:../../nc_files/ngcgui_lib/utilitysubs -Note: Optional, but very useful to organize subfiles and utility files - -Item: [RS274NGC]USER_M_PATH = dirname1:dirname2:dirname3 ... -Example: [RS274NGC]USER_M_PATH = ../../nc_files/ngcgui_lib/mfiles -Note: Optional, needed to locate custom user mfiles - - -Item: [DISPLAY]EMBED_TAB_NAME = name to display on embedded tab page -Example: [DISPLAY]EMBED_TAB_NAME = Pyngcgui -Note: The entries: EMBED_TAB_NAME,EMBED_TAB_COMMAND,EMBED_TAB_LOCATION - define an embedded application for several linuxCNC guis - -Item: [DISPLAY]EMBED_TAB_COMMAND = programname followed by arguments -Example: [DISPLAY]EMBED_TAB_COMMAND = gladevcp -x {XID} pyngcgui_axis.ui -Note: For gladevcp applications, see the man page for gladevcp - -Item: [DISPLAY]EMBED_TAB_LOCATION = name_of_location -Example: [DISPLAY]EMBED_TAB_LOCATION = notebook_main -Note: See example INI files for possible locations - Not required for the axis gui - - -Item: [DISPLAY]PROGRAM_PREFIX = dirname -Example: [DISPLAY]PROGRAM_PREFIX = ../../nc_files -Note: Mandatory and needed for numerous linuxCNC functions - It is the first directory used in the search for files - - -item: [DISPLAY]TKPKG = Ngcgui version_number -Example: [DISPLAY]TKPKG = Ngcgui 1.0 -Note: Required only for axis gui embedding, specifies loading of ngcgui axis tab pages - - -Item: [DISPLAY]NGCGUI_FONT = font_descriptor -Example: [DISPLAY]NGCGUI_FONT = Helvetica -12 normal -Note: Optional, font_descriptor is a tcl-compatible font specifier - with items for fonttype -fontsize fontweight - Default is: Helvetica -10 normal - Smaller font sizes may be useful for small screens - Larger font sizes may be helpful for touch screen applications - -Item: [DISPLAY]NGCGUI_SUBFILE = subfile_filename -Example: [DISPLAY]NGCGUI_SUBFILE = simp.ngc -Example: [DISPLAY]NGCGUI_SUBFILE = square.gcmc -Example: [DISPLAY]NGCGUI_SUBFILE = "" -Note: Use one or more items to specify ngcgui-compatible - subfiles or gcmc programs that require a tab page on startup. - A "Custom" tab will be created when the filename is "". - A user can use a "Custom" tab to browse the file system - and identify preamble, subfile, and postamble files. - -Item: [DISPLAY]NGCGUI_PREAMBLE = preamble_filename -Example: [DISPLAY]NGCGUI_PREAMBLE = in_std.ngc -Note: Optional, when specified, the file is prepended to a subfile. - Files created with "Custom" tab pages use the preamble specified - with the page. - -Item: [DISPLAY]NGCGUI_POSTAMBLE = postamble_filename -Example: [DISPLAY]NGCGUI_POSTAMBLE = bye.ngc -Note: Optional, when specified, the file is appended to a subfiles. - Files created with "Custom" tab pages use the postamble specified - with the page. - -Item: [DISPLAY]NGCGUI_OPTIONS = opt1 opt2 ... -Example: [DISPLAY]NGCGUI_OPTIONS = nonew noremove -Note: Multiple options are separated by blanks. - By default, ngcgui configures tab pages so that: - 1) a user can make new tabs - 2) a user can remove tabs (except for the last remaining one) - 3) finalized files are automatically sent to linuxCNC - 4) an image frame (iframe) is made available to display - an image for the subfile (if an image is provided) - 5) the ngcgui result file sent to linuxCNC is terminated with - an m2 (and incurs m2 side-effects) - - The options nonew, noremove, noauto, noiframe, nom2 respectively - disable these default behaviors. - - By default, if an image (.png,.gif,jpg,pgm) file - is found in the same directory as the subfile, the - image is displayed in the iframe. Specifying - the noiframe option makes available additional buttons - for selecting a preamble, subfile, and postamble and - additional checkboxes. Selections of the checkboxes - are always available with special keys: - Ctrl-R Toggle "Retain values on Subfile read" - Ctrl-E Toggle "Expand subroutine" - Ctrl-a Toggle "Autosend" - (Ctrl-k lists all keys and functions) - - If noiframe is specified and an image file is found, - the image is displayed in a separate window and - all functions are available on the tab page. - - The NGCGUI_OPTIONS apply to all ngcgui tabs except that the - nonew, noremove, and noiframe options are not applicable - for "Custom" tabs. Do not use "Custom" tabs if you want - to limit the user's ability to select subfiles or create - additional tab pages. - -Item: [DISPLAY]GCMC_INCLUDE_PATH = dirname1:dirname2:... -Example: [DISPLAY]GCMC_INCLUDE_PATH = /home/myname/gcmc_includes:/home/myname/gcmc_includes2 -Note: Optional, each directory will be included when gcmc is invoked - using the option: --include dirname - -.... - -== File Requirements for NGCGUI Compatibility -=== Single-File Gcode (.ngc) Subroutine Requirements - -An NGCGUI-compatible subfile contains a single subroutine definition. The name -of the subroutine must be the same as the filename (not including the .ngc -suffix). LinuxCNC supports named or numbered subroutines, but only named -subroutines are compatible with NGCGUI. For more information see the -<> Chapter. - -The first non-comment line should be a sub statement. -The last non-comment line should be a endsub statement. - -.examp.ngc: ----- -(info: info_text_to_appear_at_top_of_tab_page) -; comment line beginning with semicolon -( comment line using parentheses) -o sub - BODY_OF_SUBROUTINE -o endsub -; comment line beginning with semicolon -( comment line using parentheses) ----- - -The body of the subroutine should begin with a set of statements that define -local named parameters for each positional parameter expected for the -subroutine call. These definitions must be consecutive beginning with #1 and -ending with the last used parameter number. Definitions must be provided for -each of these parameters (no omissions). - -.Parameter Numbering ----- -# = #1 -# = #2 -# = #3 ----- - -LinuxCNC considers all numbered parameters in the range #1 thru #30 to be calling -parameters so ngcgui provides entry boxes for any occurence of parameters in -this range. It is good practice to avoid use of numbered parameters #1 through -#30 anywhere else in the subroutine. Using local, named parameters is -recommended for all internal variables. - -Each defining statement may optionally include a special comment and a default -value for the parameter. - -.Statement Prototype ----- -# = #n (=default_value) -or -# = #n (comment_text) -or -# = #n (=default_value comment_text) ----- - -.Parameter Examples ----- -# = #1 (=0.0) -# = #2 (Ystart) -# = #3 (=0.0 Z start setting) ----- - -If a default_value is provided, it will be entered in the entry box -for the parameter on startup. - -If comment_text is included, it will be used to identify the input -instead of the parameter name. - -.Global Named Parameters -Notes on global named parameters and ngcgui: - -(global named parameters have a leading underscore in the name, like -#<_someglobalname>) - -As in many programming languages, use of globals is powerful but can often lead -to unexpected consequences. In LinuxCNC, existing global named parameters will be -valid at subroutine execution and subroutines can modify or create global named -parameters. - -Passing information to subroutines using global named parameters is discouraged -since such usage requires the establishment and maintenance of a well-defined -global context that is difficult to maintain. Using numbered parameters #1 -thru #30 as subroutine inputs should be sufficient to satisfy a wide range of -design requirements. - -While input global named parameters are discouraged, linuxCNC subroutines must use -global named parameters for returning results. Since ngcgui-compatible -subfiles are aimed at gui usage, return values are not a common requirement. -However, ngcgui is useful as a testing tool for subroutines which do return -global named parameters and it is common for ngcgui-compatible subfiles to call -utility subroutine files that return results with global named parameters. - -To support these usages, ngcgui ignores global named parameters that include a -colon (:) character in their name. Use of the colon (:) in the name prevents -ngcgui from making entryboxes for these parameters. - -.Global Named Parameters ----- -o sub -... -#<_examp:result> = #5410 (return the current tool diameter) -... -o call [#] [#] (call a subroutine) -# = #<_helper:answer> (immediately localize the helper global result) -#<_helper:answer> = 0.0 (nullify global named parameter used by subroutine) -... -o endsub ----- - -In the above example, the utility subroutine will be found in a separate file -named helper.ngc. The helper routine returns a result in a global -named parameter named #<_helper:answer. - -For good practice, the calling subfile immediately localizes the result for use -elsewhere in the subfile and the global named parameter used for returning the -result is nullified in an attempt to mitigate its inadvertent use elsewhere in -the global context. (A nullification value of 0.0 may not always be a good -choice). - -Ngcgui supports the creation and concatenation of multiple features for a -subfile and for multiple subfiles. It is sometimes useful for subfiles to -determine their order at runtime so ngcgui inserts a special global parameter -that can be tested within subroutines. The parameter is named #<_feature:>. -Its value begins with a value of 0 and is incremented for each added feature. - -.Additional Features -A special 'info' comment can be included anywhere in an ngcgui-compatible -subfile. The format is: - ----- -(info: info_text) ----- - -The info_text is displayed near the top of the ngcgui tab page in axis. - -Files not intended for use as subfiles can include a special comment -so that ngcgui will reject them automatically with a relevant message. - ----- -(not_a_subfile) ----- - -An optional image file (.png,.gif,.jpg,.pgm) can accompany a subfile. The -image file can help clarify the parameters used by the subfile. The image file -should be in the same directory as the subfile and have the same name with an -appropriate image suffix, e.g. the subfile example.ngc could be accompanied by an -image file examp.png. Ngcgui attempts to resize large images by subsampling -to a size with maximum width of 320 and maximum height of 240 pixels. - -None of the conventions required for making an ngcgui-compatible subfile -preclude its use as general purpose subroutine file for LinuxCNC. - -The LinuxCNC distribution includes a library (ngcgui_lib directory) that -includes both example ngcgui-compatible subfiles and utility files -to illustrate the features of LinuxCNC subroutines and ngcgui usage. -Another libary (gcmc_lib) provides examples for subroutine files for -the Gcode meta compiler (gcmc) - -Additional user sumitted subroutines can be found on the Forum in the -Subroutines Section. - -=== Gcode-meta-compiler (.gcmc) file requirements -Files for the Gcode-meta-compiler (gcmc) are read by ngcgui and it -creates entry boxes for variables tagged in the file. When a feature -for the file is finalized, ngcgui passes the file as input to the gcmc -compiler and, if the compile is successful, the resulting gcode file -is sent to linuxCNC for execution. The resulting file is formatted as -single-file subroutine; .gcmc files and .ngc files can be intermixed -by ngcgui. - -The variables identified for inclusion in ngcgui are tagged with lines -that will appear as comments to the gcmc compiler. - -.Example variable tags formats ----- -//ngcgui: varname1 = -//ngcgui: varname2 = value2 -//ngcgui: varname3 = value3, label3; ----- - -.Examples: ----- -//ngcgui: zsafe = -//ngcgui: feedrate = 10 -//ngcgui: xl = 0, x limit ----- -For these examples, the entry box for varname1 will have no default, -the entry box for varname2 will have a default of value2, and the -entry box for varname 3 will have a default of value 3 and a label -label3 (instead of varname3). The default values must be numbers. - -To make it easier to modify valid lines in a gcmc file, alternate -tag line formats accepted. The alternate formats ignore trailing -semicolons (;) and trailing comment markers (//) With this provision, -it is often makes it possible to just add the //ngcgui: tag to -existing lines in a .gcmc file. - -.Alternate variable tag formats ----- -//ngcgui: varname2 = value2; -//ngcgui: varname3 = value3; //, label3; ----- -.Examples: ----- -//ngcgui: feedrate = 10; -//ngcgui: xl = 0; //, x limit ----- - -An info line that will appear at the top of a tab page may be optionally -included with a line tagged as: - -.Info tag ----- -//ngcgui: info: text_to_appear_at_top_of_tab_page ----- - -When required, options can be passed to the gcmc compiler with a line tagged: - -.Option line tag format ----- -//ngcgui: -option_name [ [=] option_value] ----- -.Examples: ----- -//ngcgui: -I -//ngcgui: --imperial -//ngcgui: --precision 5 -//ngcgui: --precision=6 ----- - -Options for gcmc are available with the terminal command: ----- -gcmc --help ----- - -A gcmc program by default uses metric mode. The mode can be -set to inches with the option setting: - ----- -//ngcgui: --imperial ----- - -A preamble file, if used, can set a mode (g20 or g21) that -conflicts with the mode used by a gcmc file. To ensure that -the gcmc program mode is in effect, include the following -statement in the .gcmc file: - ----- -include("ensure_mode.gcmc") ----- - -and provide a proper path for gcmc include_files in the ini file, -for example: - ----- -[DISPLAY] -GCMC_INCLUDE_PATH = ../../nc_files/gcmc_lib ----- - -== DB25 Example - -The following shows the DB25 subroutine. In the first photo you see where you -fill in the blanks for each variable. - -image::images/ngcgui-db25-1.png[] - -This photo shows the backplot of the DB25 subroutine. - -image::images/ngcgui-db25-2.png[] - -This photo shows the use of the new button and the custom tab to create -three DB25 cutouts in one program. - -image::images/ngcgui-db25-3.png[] - diff --git a/docs/src/gui/ngcgui_es.txt b/docs/src/gui/ngcgui_es.txt deleted file mode 100644 index 4d40ce5ab72..00000000000 --- a/docs/src/gui/ngcgui_es.txt +++ /dev/null @@ -1,548 +0,0 @@ -= NGCGUI - -[[cha:ngcgui]] (((NGCGUI))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -image::images/ngcgui.png[] - -== Overview - -* 'NGCGUI' is a utility for using LinuxCNC subroutines. -* 'NGCGUI' can run as a standalone application or be embedded in - multiple tab pages in the axis gui -* Multiple copies of the same subroutine can be created -* Subroutines can be concatenated together to form a complete multiple - step program -* New subroutines can be added on the fly - -NGCGUI is a powerful tool for building g-code programs from subroutines -on the fly. -Subroutines can be concatenated to build a complete program. Multiple -instances of a subroutine can be used to perform the same task in different -locations on the part. Any valid g-code can be used in the subroutine. - -== Demo Configs - -Three demo configurations are are located in the sim directory of the -LinuxCNC configuration picker. The configuration picker is on the main menu -Applications > CNC > LinuxCNC. - -* 'ngcgui' - a comprehensive example that contains these subroutines -** 'simp' - a simple subroutine example that creates two circles -** 'xyz' - creates a box based on two opposite corners -** 'iquad' - creates an internal quadrilateral -** 'db25' - creates a DB25 plug cutout -** 'ihex' - creates an interal hexagon -** 'gosper' - a recursion demo -** 'Custom' - load other ngcgui-compatible subfiles -** 'ttt' - True Type Tracer creates text for engraving - -* 'ngcgui-lathe' - an example with lathe subroutines -** 'id' - bores the inside diameter -** 'od' - turns the outside diameter -** 'taper-od' - turns a taper on the outside diameter -** 'Custom' - creates custom tabs - -* 'ngcgui-simple' - a simple example -** 'simp' - a simple subroutine example that creates two circles -** 'xyz' - creates a box based on two opposite corners - -To view the demonstration subroutines press the 'E-Stop' -image:images/tool_estop.gif[] then 'Machine Power' -image:images/tool_power.gif[] then 'Home All'. Pick a ngcgui tab and press -'Create Feature' then 'Finalize'. Now press the 'Run' -image:images/tool_run.gif[] button to watch it run. - -[NOTE] -The demonstration subroutines should run on the simualated -machine configurations included in the distribution. A user -should always understand the behavior and purpose of a program -before running on a real machine. - -== Libraries - -The simulation configs for ngcgui use links to non-user-writable -LinuxCNC libraries for: - -* 'ngcgui-compatible subfiles' - ngcgui_lib -* 'Helper subroutines' - ngcgui_lib/utilitysubs -* 'User M files' - ngcgui_lib/mfiles - -These libraries are defined by the ini file items: - ----- -[RS274NGC] -SUBROUTINE_PATH = ../../../nc_files/ngcgui_lib:../../../nc_files/ngcgui_lib/utilitysubs -USER_M_PATH = ../../../nc_files/ngcgui_lib/mfiles ----- - -[NOTE] -These are long lines (not continued on multiple lines) -that specify the directories used in a search patch. The -directory names are separated by colons (:) - -A user can create new directories for their own subroutines and -M-files and add them to the search path(s). - -For example, a user could create directories from the terminal. - ----- -mkdir /home/myusername/mysubs -mkdir /home/myusername/mymfiles ----- - -And then create or copy files to these user-writable directories. -For instance, a user might create a ngcgui-compatible subfile named: - ----- -/home/myusername/mysubs/example.ngc ----- - -The ini file must be edited to include new subfiles and to -augment the path(s). For this example: - ----- -[RS274NGC] -SUBROUTINE_PATH = /home/myusername/mysubs:../../../nc_files/ngcgui_lib:../../../nc_files/ngcgui_lib/utilitysubs -USER_M_PATH = /home/myusername/mymfiles:../../../nc_files/ngcgui_lib/mfiles - -[DISPLAY] -NGCGUI_SUBFILE = example.ngc ----- - -LinuxCNC and ngcgui use the first file found when searching -directories in a search path. With this behavior, you can -supersede an ngcgui_lib subfile by placing a subfile with an -identical name in a directory that is found earlier in the path -search. More information can be found in the INI chapter of the -Integrators Manual. - - -== Embedding NGCGUI in Axis - -Several NGCGUI examples are included with LinuxCNC and are located in the sim/ngcgui -directory. - -=== INI File - -The following INI file items for NGCGUI go in the [DISPLAY] section. - -* 'TKPKG = Ngcgui 1.0' - the main NGCGUI package (must precede Ngcguittt) -* 'TKPKG = Ngcguittt 1.0' - the True Type Tracer package for generating text - for engraving. -* 'NGCGUI_FONT = Helvetica -12 normal' - specifices the font -* 'NGCGUI_PREAMBLE = in_std.ngc' - the preamble file to be added in front of the - subroutines. When concatenating several subroutines this is only added once. -* 'NGCGUI_SUBFILE = simp.ngc' - creates a tab from the named subroutine -* 'NGCGUI_SUBFILE = ""' - creates a custom tab -* 'NGCGUI_OPTIONS = opt1 opt2 ...' - NGCGUI options -** 'nonew' - disallow making a new custom tab -** 'noremove' - disallow removing any tab page -** 'noauto' - no auto send (makeFile, then manually send) -** 'noiframe' - no internal image, image on separate top level -* 'TTT = truetype-tracer' - the truetype tracer program -* 'TTT_PREAMBLE = in_std.ngc' - Optional, specifies filename for preamble used for - ttt created subfiles - -This is an example of embedding NGCGUI into Axis. The subroutines need to be -in a directory specified by the [RS274NGC]SUBROUTINE_PATH. Some example -subroutines use other subroutines so check to be sure you have the -dependences, if any, in a SUBROUTINE_PATH directory. Some subroutines may -use custom Mfiles which must be in a directory specified by the -[RS274NGC]USER_M_PATH. - -.Sample INI ----- -[RS274NGC] -SUBROUTINE_PATH = ../../../nc_files/ngcgui_lib:../../../ngcgui_lib/utilitysubs -USER_M_PATH = ../../../nc_files/ngcgui_lib/mfiles - -[DISPLAY] -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 -# Ngcgui must precede Ngcguittt - -NGCGUI_FONT = Helvetica -12 normal -# specify filenames only, files must be in [RS274NGC]SUBROUTINE_PATH -NGCGUI_PREAMBLE = in_std.ngc -NGCGUI_SUBFILE = simp.ngc -NGCGUI_SUBFILE = xyz.ngc -NGCGUI_SUBFILE = iquad.ngc -NGCGUI_SUBFILE = db25.ngc -NGCGUI_SUBFILE = ihex.ngc -NGCGUI_SUBFILE = gosper.ngc -# specify "" for a custom tab page -NGCGUI_SUBFILE = "" -#NGCGUI_SUBFILE = "" use when image frame is specified if -# opening other files is required -# images will be put in a top level window -NGCGUI_OPTIONS = -#NGCGUI_OPTIONS = opt1 opt2 ... -# opt items: -# nonew -- disallow making a new custom tab -# noremove -- disallow removing any tab page -# noauto -- no auto send (makeFile, then manually send) -# noiframe -- no internal image, image on separate top level - -TTT = truetype-tracer -TTT_PREAMBLE = in_std.ngc - -PROGRAM_PREFIX = ../../nc_files ----- - -=== Truetype Tracer - -Ngcgui_ttt provides support for truetype-tracer (v4). It creates an axis tab -page which allows a user to create a new ngcgui tab page after entering text -and selecting a font and other parameters. (Truetype-tracer must be installed -independently). - -To embed ngcgui_ttt in axis, specify the following items in addition to ngcgui items: -.... -Item: [DISPLAY]TKPKG = Ngcgui_ttt version_number -Example: [DISPLAY]TKPKG = Ngcgui_ttt 1.0 -Note: Mandatory, specifies loading of ngcgui_ttt in an axis tab page named ttt. - Must follow the TKPKG = Ngcgui item. - -Item: [DISPLAY]TTT = path_to_truetype-tracer -Example: [DISPLAY]TTT = truetype-tracer -Note: Optional, if not specified, attempt to use /usr/local/bin/truetype-tracer. - Specify with absolute pathname or as a simple executable name - in which case the user PATH environment will used to find the program. - -Item: [DISPLAY]TTT_PREAMBLE = preamble_filename -Example: [DISPLAY]TTT_PREAMBLE = in_std.ngc -Note: Optional, specifies filename for preamble used for ttt created subfiles. -.... - -=== INI Examples - -Ngcgui uses the EMC search path to find files. - -The search path begins with the standard directory specified by: - - [DISPLAY]PROGRAM_PREFIX - -followed by multiple directories specfied by: - - [RS274NGC]SUBROUTINE_PATH - -.Directories -Directories may be specifed as absolute paths or relative paths. -.... -Example: [DISPLAY]PROGRAM_PREFIX = /home/myname/emc2/nc_files -Example: [DISPLAY]PROGRAM_PREFIX = ~/emc2/nc_files -Example: [DISPLAY]PROGRAM_PREFIX = ../../../nc_files -.... - -An absolute path beginning with a "/" specifies a complete filesystem -location. A path beginning with a "\~/" specifies a path starting -from the user's home directory. A path beginning with "~username/" -specifies a path starting in username's home directory. - -.Relative Paths -Relative paths are based on the startup directory which is the directory -containing the ini file. Using relative paths can facilitate relocation of -configurations but requires a good understanding of linux path specifiers. - -.... - ./d0 is the same as d0, e.g., a directory named d0 in the startup directory - ../d1 refers to a directory d1 in the parent directory - ../../d2 refers to a directory d2 in the parent of the parent directory - ../../../d3 etc. -.... - -Multiple directories can be specified with [RS274NGC]SUBROUTINE_PATH by -separating them with colons. The following example illustrates the format -for multiple directories and shows the use of relative and absolute paths. - -`Example: [RS274NGC]SUBROUTINE_PATH = ../../../nc_files/ngcgui_lib:../../../nc_files/ngcgui_lib/utilitysubs:/tmp/tmpngc` - -This is one long line, do not continue on multiple lines. When emc and/or -ngcgui searches for files, the first file found in the search is used. - -EMC (and NGCGUI) must be able to find all subroutines including helper routines -that are called from within NGCGUI subfiles. It is convenient to place -utility subs in a separate directory as indicated in the example above. - -The distribution includes the ngcgui_lib directory and demo files for -preambles, subfiles, postambles and helper files. To modify the behavior -of the files, you can copy any file and place it in an earlier part of the -search path. The first directory searched is [DISPLAY]PROGRAM_PREFIX. You -can use this directory but it is better practice to create dedicated -directory(ies) and put them at the beginning of the [RS274NGC]SUBROUTINE_PATH. - -In the following example, files in /home/myname/emc2/mysubs will be found before -files in ../../../nc_files/ngcgui_lib. - -`Example: [RS274NGC]SUBROUTINE_PATH = /home/myname/emc2/mysubs:../../../nc_files/ngcgui_lib:../../../nc_files/ngcgui_lib/utilitysubs` - -New users may inadvertently try to use files that are not structured to be -compatible with ngcgui requirements. Ngcgui will likely report numerous errors -if the files are not coded per its conventions. Good practice suggests that -ngcgui-compatible subfiles should be placed in a directory dedicated to that -purpose and that preamble, postamble, and helper files should be in separate -directory(ies) to discourage attempts to use them as subfiles. Files not intended -for use as subfiles can include a special comment: "(not_a_subfile)" so that -ngcgui will reject them automatically with a relevant message. - -To embed ngcgui in axis, specify the following items in the inifile: -.... -Item: [DISPLAY]PROGRAM_PREFIX = dirname -Example: [DISPLAY]PROGRAM_PREFIX = ../../../nc_files -Note: Mandatory and needed for numerous emc functions - It is the first directory used in the search for files - -Item: [RS274NGC]SUBROUTINE_PATH = dirname1:dirname2:dirname3 ... -Example: [RS274NGC]SUBROUTINE_PATH = ../../../nc_files/ngcgui_lib:../../../nc_files/ngcgui_lib/utilitysubs -Note: Optional, but very useful to organize subfiles and utility files - -otem: [DISPLAY]TKPKG=Ngcgui version_number -Example: [DISPLAY]TKPKG=Ngcgui 1.0 -Note: Mandatory, specifies loading of ngcgui axis tab pages - -Item: [DISPLAY]NGCGUI_FONT = font_descriptor -Example: [DISPLAY]NGCGUI_FONT = Helvetica -12 normal -Note: Optional, font_descriptor is a tcl-compatible font specifier - with items for fonttype -fontsize fontweight - Default is: Helvetica -10 normal - -Item: [DISPLAY]NGCGUI_SUBFILE = subfile_filename -Example: [DISPLAY]NGCGUI_SUBFILE = simp.ngc -Example: [DISPLAY]NGCGUI_SUBFILE = xyz.ngc -Example: [DISPLAY]NGCGUI_SUBFILE = "" -Note: Use one or more items to specify ngcgui-compatible - subfiles that require an axis tab page on startup. - A "Custom" tab will be created when the filename is "". - A user can use a "Custom" tab to browse the file system - and identify preamble, subfile, and postamble files. - -Item: [DISPLAY]NGCGUI_PREAMBLE = preamble_filename -Example: [DISPLAY]NGCGUI_PREAMBLE = in_std.ngc -Note: Optional, when specified, the file is prepended to all subfiles. - Files created with "Custom" tab pages use the preamble specified - with the page. - -Item: [DISPLAY]NGCGUI_POSTAMBLE = postamble_filename -Example: [DISPLAY]NGCGUI_POSTAMBLE = bye.ngc -Note: Optional, when specified, the file is appended to all subfiles. - Files created with "Custom" tab pages use the postamble specified - with the page. - -Item: [DISPLAY]NGCGUI_OPTIONS = opt1 opt2 ... -Example: [DISPLAY]NGCGUI_OPTIONS = nonew noremove -Note: Multiple options are separated by blanks. - By default, ngcgui configures tab pages so that: - 1) a user can make new tabs - 2) a user can remove tabs (except for the last remaining one) - 3) finalized files are automatically sent to axis - 4) an image frame (iframe) is made available to display - an image for the subfile - - The options nonew, noremove, noauto, noiframe respectively - disable these default behaviors. - - By default, if an image (.png,.gif,jpg,pgm) file - is found in the same directory as the subfile, the - image is displayed in the iframe. Specifying - the noiframe option makes available additional buttons - for selecting a preamble, subfile, and postamble and - additional checkboxes. Selections of the checkboxes - are always available with special keys: - Ctrl-R Toggle "Retain values on Subfile read" - Ctrl-E Toggle "Expand subroutine" - Ctrl-a Toggle "Autosend" - (Ctrl-k lists all keys and functions) - - If noiframe is specified and an image file is found, - the image is displayed in a separate window and - all functions are available on the tab page. - - The NGCGUI_OPTIONS apply to all ngcgui tabs except that the - nonew, noremove, and noiframe options are not applicable - for "Custom" tabs. Do not use "Custom" tabs if you want - to limit the user's ability to select subfiles or create - additional tab pages. -.... - -== Subroutine Requirements - -An NGCGUI-compatible subfile contains a single subroutine definition. The name -of the subroutine must be the same as the filename (not including the .ngc -suffix). LinuxCNC supports named or numbered subroutines, but only named -subroutines are compatible with NGCGUI. For more information see the -<> Chapter. - -The first non-comment line should be a sub statement. -The last non-comment line should be a endsub statement. - -.examp.ngc: ----- -o sub - BODY_OF_SUBROUTINE -o endsub ----- - -The body of the subroutine should begin with a set of statements that define -local named parameters for each positional parameter expected for the -subroutine call. These definitions must be consecutive beginning with #1 and -ending with the last used parameter number. Definitions must be provided for -each of these parameters (no omissions). - -.Parameter Numbering ----- -# = #1 -# = #2 -# = #3 ----- - -LinuxCNC considers all numbered parameters in the range #1 thru #30 to be calling -parameters so ngcgui provides entry boxes for any occurence of parameters in -this range. It is good practice to avoid use of numbered parameters #1 through -#30 anywhere else in the subroutine. Using local, named parameters is -recommended for all internal variables. - -Each defining statement may optionally include a special comment and a default -value for the parameter. - -.Statement Prototype ----- -# = #n (=default_value) -or -# = #n (comment_text) -or -# = #n (=default_value comment_text) ----- - -.Parameter Examples ----- -# = #1 (=0.0) -# = #2 (Ystart) -# = #3 (=0.0 Z start setting) ----- - -If a default_value is provided, it will be entered in the entry box -for the parameter on startup. - -If comment_text is included, it will be used to identify the input -instead of the parameter name. - -.Global Named Parameters -Notes on global named parameters (#<_globalname>) and ngcgui: - -As in many programming languages, use of globals is powerful but can often lead -to unexpected consequences. In LinuxCNC, existing global named parameters will be -valid at subroutine execution and subroutines can modify or create global named -parameters. - -The use of global named parameters as inputs to subroutines is discouraged -because such usage requires the establishment and maintenance of a well-defined -global context that is problematic to maintain. Using numbered parameters #1 -thru #30 as subroutine inputs should be sufficient to satisfy a wide range of -design requirements. - -Ngcgui includes some support for global named input parameters but usage -is deprecated and not documented here. - -While input global named parameters are discouraged, emc subroutines must use -global named parameters for returning results. Since ngcgui-compatible -subfiles are aimed at gui usage, return values are not a common requirement. -However, ngcgui is useful as a testing tool for subroutines which do return -global named parameters and it is common for ngcgui-compatible subfiles to call -utility subroutine files that return results with global named parameters. - -To support these usages, ngcgui ignores global named parameters that include a -colon (:) character in their name. Use of the colon (:) in the name prevents -ngcgui from making entryboxes for these parameters. - -.Global Named Parameters ----- -o sub -... -#<_examp:result> = #5410 (return the current tool diameter) -... -o call [#] [#] (call a subroutine) -# = #<_helper:answer> (localize immediately the helper result) -#<_helper:answer> = 0.0 (nullify global named parameter used by subroutine) -... -o endsub ----- - -In the above example, the utility subroutine will be found in a separate file -named helper.ngc. The helper routine returns a result in a global -named parameter named #<_helper:answer. - -For good practice, the calling subfile immediately localizes the result for use -elsewhere in the subfile and the global named parameter used for returning the -result is nullified in an attempt to mitigate its inadvertent use elsewhere in -the global context. (A nullification value of 0.0 may not always be a good -choice). - -Ngcgui supports the creation and concatenation of multiple features for a -subfile and for multiple subfiles. It is sometimes useful for subfiles to -determine their order at runtime so ngcgui inserts a special global parameter -that can be tested within subroutines. The parameter is named #<_feature:>. -Its value begins with a value of 0 and is incremented for each added feature. - -.Additional Features -A special 'info' comment can be included anywhere in an ngcgui-compatible -subfile. The format is: - ----- -(info: info_text) ----- - -The info_text is displayed near the top of the ngcgui tab page in axis. - -Files not intended for use as subfiles can include a special comment -so that ngcgui will reject them automatically with a relevant message. - ----- -(not_a_subfile) ----- - -An optional image file (.png,.gif,.jpg,.pgm) can accompany a subfile. The -image file can help clarify the parameters used by the subfile. The image file -should be in the same directory as the subfile and have the same name with an -appropriate image suffix, e.g. the subfile examp.ngc could be accompanied by an -image file examp.png. Ngcgui attempts to resize large images by subsampling -to a size with maximum width of 320 and maximum height of 240 pixels. - -None of the conventions required for making an ngcgui-compatible subfile -preclude its use as general purpose subroutine file for LinuxCNC. - -The LinuxCNC distribution includes a library (ngcgui_lib directory) that -includes both example ngcgui-compatible subfiles and utility files -to illustrate the features of LinuxCNC subroutines and ngcgui usage. - -Additional user sumitted subroutines can be found on the Forum in the -Subroutines Section. - -== DB25 Example - -The following shows the DB25 subroutine. In the first photo you see where you -fill in the blanks for each variable. - -image::images/ngcgui-db25-1.png[] - -This photo shows the backplot of the DB25 subroutine. - -image::images/ngcgui-db25-2.png[] - -This photo shows the use of the new button and the custom tab to create -three DB25 cutouts in one program. - -image::images/ngcgui-db25-3.png[] - diff --git a/docs/src/gui/ngcgui_fr.txt b/docs/src/gui/ngcgui_fr.txt deleted file mode 100644 index 5dd1dd8c50b..00000000000 --- a/docs/src/gui/ngcgui_fr.txt +++ /dev/null @@ -1,610 +0,0 @@ -:lang: fr -:toc: - -= L'utilitaire graphique NGCGUI - -[[cha:ngcgui]] (((NGCGUI))) - -image::images/ngcgui_fr.png[] - -== Vue d'ensemble - -* NGCGUI est un utilitaire pour écrire et utiliser les sous-programmes avec -LinuxCNC. -* NGCGUI peut être utilisé en autonome ou intégré, dans ce dernier cas, -il crée des onglets multiples sur la page de l'interface graphique Axis. - -Ngcgui est un outil puissant pour construire les programmes de G-code en -sous-programmes. - -* Les sous-programmes peuvent être concaténés pour fournir un programme de -G-code complet. -* De multiples instances d'un sous-programme peuvent être utilisées pour -fournir la même tâche à différents emplacements sur la même pièce. -* N'importe quel G-code valide peut être utilisé dans un sous-programme. -* De nouveaux sous-programmes peuvent être ajoutés à la volée. - -== Configurations fournies en exemple. - -Trois configurations sont fournies, elles se trouve dans le répertoire _sim_ -du sélecteur de configuration de LinuxCNC. Le sélecteur de configuration se -trouve quand à lui dans le menu _Applications → CNC → LinuxCNC_. - -* _ngcgui_ - Un exemple facile à comprendre utilisant ces sous-programmes: -** _simp_ - Un exemple simple créant deux cercles. -** _xyz_ - Crée une boîte basée sur deux coins opposés. -** _iquad_ - Crée un quadrilatère interne. -** _db25_ - Crée la découpe pour une fiche DB25. -** _ihex_ - Crée un hexagone interne. -** _gosper_ - Une démo sur la récursion. -** _Custom_ - Crée des onglets personnalisés. -** _ttt_ - Traceur True Type, pour créer des textes à graver. - -* _ngcgui-lathe_ - Un exemple de sous-programme pour un tour: -** _id_ - Alésage intérieur. -** _od_ - Cylindrage extérieur. -** _taper-od_ - Tourne un cône mâle. -** _Custom_ - Crée des onglets personnalisés. - -* _ngcgui-simple_ - Un exemple simple: -** _simp_ - Un exemple simple créant deux cercles. -** _xyz_ - Crée une boîte basée sur deux coins opposés. - -Pour visualiser les sous-programmes presser l'_**A**rrêt d'**U**rgence_ -image:images/tool_estop.gif[] puis, activer la _Marche Machine_ -image:images/tool_power.gif[] et réaliser la _Prise d'origine générale_. -Cliquer sur un onglet de ngcgui et presser _Créer la fonction_ -puis _Finaliser_. Enfin, presser sur le bouton -image:images/tool_run.gif[] _Départ cycle_ pour exécuter le G-code. - -[NOTE] -Les sous-programmes d'exemples fournis avec la distribution doivent tous -fonctionner avec la configuration de la machine simulée. Un utilisateur doit -toujours comprendre le comportement et les implications d'un programme avant -de tenter de l'exécuter sur une machine réelle. - -== Librairies - -Les configurations en simulation pour ngcgui utilisent les liens suivants vers -des librairies de LinuxCNC protégées en écriture: - -* _Sous-fichiers compatibles ngcgui_ - ngcgui_lib -* _Sous-programme d'aide_ - ngcgui_lib/utilitysubs -* _Fichiers M utilisateurs_ - ngcgui_lib/mfiles - -Ces librairies sont définies dans le fichier ini par les items: - ----- -[RS274NGC] -SUBROUTINE_PATH = ../../../nc_files/ngcgui_lib:../../../nc_files/ngcgui_lib/utilitysubs -USER_M_PATH = ../../../nc_files/ngcgui_lib/mfiles ----- - -C'est une longue ligne (ne pas continuer sur de multiples lignes) qui spécifie -les répertoires utilisés dans le chemin de recherche. Les noms de répertoires -sont séparés par le caractère (:). - -L'utilisateur peut créer de nouveaux répertoires pour ses propres -sous-programmes et fichiers M et les ajouter dans le chemin de recherche. - -Par exemple, un utilisateur pourrait créer ces répertoires à partir de la -console. - ----- -mkdir /home/myusername/mysubs -mkdir /home/myusername/mymfiles ----- - -Puis y créer ou y copier des fichiers qui lui seront accessibles en écriture. -Par exemple, créer un sous-fichier compatible ngcgui nommé: - ----- -/home/myusername/mysubs/exemple.ngc ----- - -Le fichier ini doit être édité pour lui inclure les nouveaux sous-fichiers et -les ajouter au chemin. Pour cet exemple: - ----- -[RS274NGC] -SUBROUTINE_PATH = /home/myusername/mysubs:../../../nc_files/ngcgui_lib:../../../nc_files/ngcgui_lib/utilitysubs -USER_M_PATH = /home/myusername/mymfiles:../../../nc_files/ngcgui_lib/mfiles - -[DISPLAY] -NGCGUI_SUBFILE = exemple.ngc ----- - -LinuxCNC et ngcgui utilisent le premier fichier trouvé lors d'une recherche -dans les répertoires du chemin de recherche. Avec ce comportement, Il est -possible de substituer un sous-fichier ngcgui_lib en plaçant un sous-fichier -avec un nom identique plus tôt dans le chemin de recherche pour qu'il soit -trouvé avant. Plus d'informations peuvent être trouvées au chapitre INI dans le -Manuel de l'intégrateur. - -== Intégration de ngcgui dans Axis - -D'autres exemples de sous-programmes se trouvent dans le répertoire sim/ngcgui - - -Les items de fichier INI pour NGCGUI vont dans la section [DISPLAY]. - -* _TKPKG_ = Ngcgui 1.0 - Le paquet principal de NGCGUI (doit -précéder Ngcguittt). -* _TKPKG_ = Ngcguittt 1.0 - Le paquet du traceur True Type pour -générer des textes à graver. -* _NGCGUI_FONT_ = Helvetica -12 normal - Spécifie la police utilisée. -* _NGCGUI_PREAMBLE_ = in_std.ngc - Le fichier de préambule à ajouter au début -du sous-programme. Quand plusieurs sous-programmes sont concaténés, un seul -est ajouté. -* _NGCGUI_SUBFILE_ = simp.ngc - Crée un onglet depuis le sous-programme nommé. -* _NGCGUI_SUBFILE_ = "" - Crée un onglet personnalisé. -* _#NGCGUI_OPTIONS_ = opt1 opt2 ... - Options Ngcgui -** # opt items: -*** # nonew -- interdit la création d'un nouvel onglet personnalisé -*** # noremove -- interdit l'effacement d'une page d'onglet -*** # noauto -- pas d'envoi auto (makeFile, puis envoi manuel) -*** # noiframe -- no internal image, image on separate top level -* _TTT_ = Le programme True-type Tracer -* _TTT_PREAMBLE_ = in_std.ngc - Optionnel, spécifie le nom de fichier de -préambule utilisé par ttt pour créer les sous-fichiers. - - -Voici un exemple d'intégration de NGCGUI dans Axis. Les sous-programmes doivent -être placés dans un répertoire spécifié par la variable -[RS274NGC]SUBROUTINE_PATH. Certains exemples de sous-programmes utilisent -d'autres sous-programmes, bien vérifier pour être sur d'avoir les bonnes -dépendances, le cas échéant, dans un répertoire SUBROUTINE_PATH. Certains -sous-programmes peuvent utiliser des fichiers M (Mfiles) personnalisés qui -doivent se trouver dans un répertoire spécifié par [RS274NGC]USER_M_PATH. - -[NOTE] -Il ne s'agit pas d'un fichier ini complet, les items montrés sont ceux utilisés -par ngcgui. D'autres items sont requis par LinuxCNC pour obtenir un fichier ini -complet. - -.Simple fichier.ini - ----- -[RS274NGC] -SUBROUTINE_PATH = ../../../nc_files/ngcgui_lib:../../../ngcgui_lib/utilitysubs -USER_M_PATH = ../../../nc_files/ngcgui_lib/mfiles - -[DISPLAY] -TKPKG = Ngcgui 1.0 -TKPKG = Ngcguittt 1.0 -# Ngcgui must precede Ngcguittt - -NGCGUI_FONT = Helvetica -12 normal -# specifie seulement les noms de fichiers, doit être dans [RS274NGC]SUBROUTINE_PATH -NGCGUI_PREAMBLE = in_std.ngc -NGCGUI_SUBFILE = simp.ngc -NGCGUI_SUBFILE = xyz.ngc -NGCGUI_SUBFILE = iquad.ngc -NGCGUI_SUBFILE = db25.ngc -NGCGUI_SUBFILE = ihex.ngc -NGCGUI_SUBFILE = gosper.ngc -# specifie "" pour une page d'onglet personnalisée -NGCGUI_SUBFILE = "" -#NGCGUI_SUBFILE = "" utilisé quand une trame d'image est spécifiée si -# ouvrir d'autres fichiers est requis -# les images seront mises dans une fenêtre de haut niveau -NGCGUI_OPTIONS = -#NGCGUI_OPTIONS = opt1 opt2 ... -# opt items: -# nonew -- interdit la création d'un nouvel onglet personnalisé -# noremove -- interdit l'effacement d'une page d'onglet -# noauto -- pas d'envoi auto (makeFile, puis envoi manuel) -# noiframe -- no internal image, image on separate top level - -TTT = truetype-tracer -TTT_PREAMBLE = in_std.ngc - -PROGRAM_PREFIX = ../../nc_files ----- - -=== Traceur Truetype - -Ngcgui_ttt fourni le support pour truetype-tracer (v4). Il crée un onglet -sur Axis qui permet à l'utilisateur de créer ses propres textes dans de -nouveaux onglets ngcgui et en choisissant leurs fontes et autres paramètres. -(Truetype-tracer doit être installé indépendamment). - -L'intégration de ngcgui_ttt dans Axis, nécessite les items suivants en plus de -ceux de ngcgui: -.... -Item: [DISPLAY]TKPKG = Ngcgui_ttt numéro_de_version -Exemple: [DISPLAY]TKPKG = Ngcgui_ttt 1.0 -Note: Obligatoire, spécifie le chargement de ngcgui_ttt dans un onglet -d'Axis nommé ttt. Doit suivre l'item TKPKG = Ngcgui. - -Item: [DISPLAY]TTT = chemein_de_truetype-tracer -Exemple: [DISPLAY]TTT = truetype-tracer -Note: Optionnel, s'il n'est pas spécifié, utilisera -/usr/local/bin/truetype-tracer. Spécifier avec un chemin absolut ou simplement -le nom de l'exécutable, dans ce cas, la variable d'environnement PATH de -l'utilisateur sera utilisée pour rechercher le programme. - -Item: [DISPLAY]TTT_PREAMBLE = nom_fichier_préambule -Exemple: [DISPLAY]TTT_PREAMBLE = in_std.ngc -Note: Optionnel, spécifie le nom du fichier de préambule utilisé pour -les sous-fichiers créés par ttt. -.... - -=== Exemples d'INI - -Ngcgui utilise le chemin de recherche de LinuxCNC pour chercher les fichiers. - -Le chemin de recherche commence avec le répertoire standard spécifié par: - - [DISPLAY]PROGRAM_PREFIX - -suivi par les répertoires multiples spécifiés par: - - [RS274NGC]SUBROUTINE_PATH - -.Répertoires -Les répertoires peuvent être spécifiés comme des chemins absolus ou des -chemins relatifs. -.... -Exemple: [DISPLAY]PROGRAM_PREFIX = /home/myname/linuxcnc/nc_files -Exemple: [DISPLAY]PROGRAM_PREFIX = ~/linuxcnc/nc_files -Exemple: [DISPLAY]PROGRAM_PREFIX = ../../../nc_files -.... - -.Chemins absolus -Un chemin absolu commence avec un "/" qui indique un emplacement par rapport au -système de fichiers complet. Un chemin qui commence par "\~/" indique un -chemin commençant _depuis_ le répertoire home de l'utilisateur. Un chemin qui -commence par "~nomutilisateur/" indique un chemin commençant _dans_ le -répertoire utilisateur. - -.Chemins relatifs -Un chemin relatif commence dans le répertoire de démarrage qui est celui -contenant le fichier ini. L'usage des chemins relatifs facilite l'accès aux -configurations mais requiert une bonne compréhension de la façon dont les -chemins sont spécifiés sous Linux. - -.... -./d0 est le même que d0, ex: un répertoire nommé d0 dans le répertoire de -départ. -../d1 se réfère au répertoire d1 dans le répertoire parent. -../../d2 se réfère au répertoire d2 dans le répertoire parent du parent. -../../../d3 etc. -.... - -Des répertoires multiples peuvent être spécifiés par la variable: -[RS274NGC]SUBROUTINE_PATH suivie des chemins séparés par le signe ":". -L'exemple suivant illustre le format utilisé pour les chemins multiples et -montre l'utilisation de répertoires relatifs et absolus. - -Exemple: -_[RS274NGC]SUBROUTINE_PATH = ../../../nc_files/ngcgui_lib: -../../../nc_files/ngcgui_lib/utilitysubs:/tmp/tmpngc_ - -C'est une longue ligne, ne pas continuer sur de multiples lignes. Quand -LinuxCNC et/ou Ngcgui cherchent un fichier, c'est le premier trouvé qui est -utilisé. - -LinuxCNC (et NGCGUI) doivent pouvoir trouver tous les sous-programmes avec -les routines additionnelles qui sont appelées depuis les sous-fichiers NGCGUI. -Il est pratique de placer les fichiers utilitaires dans un répertoire séparé -comme indiqué dans l'exemple précédent. - -La distribution inclus le répertoire ngcgui_lib et les fichiers de préambule -, sous-fichiers, postambule et fichiers d'aide pour les démos. Pour modifier -le comportement des fichiers, il est possible de copier n'importe quel fichier -et de le placer en avant du chemin de recherche. Le premier répertoire -recherché est: [DISPLAY]PROGRAM_PREFIX. Il est possible de l'utiliser mais -c'est une meilleure pratique de créer un répertoire dédié en le plaçant au -début du chemin donné par [RS274NGC]SUBROUTINE_PATH. - -Dans l'exemple suivant, les fichiers dans /home/myname/emc2/mysubs seront -trouvés avant ceux étant dans ../../../nc_files/ngcgui_lib. - -Exemple: -_[RS274NGC]SUBROUTINE_PATH = /home/myname/emc2/mysubs:../../../nc_files/ -ngcgui_lib:../../../nc_files/ngcgui_lib/utilitysubs_ - -Les débutants pourraient essayer par inadvertance d'utiliser des -fichiers non structurés comme le nécessite ngcgui. Ngcgui déclencherait alors -rapidement de nombreuses erreurs si les fichiers ne répondent pas à ses -conventions. Une bonne pratique suggère que les sous-fichiers compatibles -ngcgui doivent être placés dans un répertoire dédié à cette fin et que -les préambules, postambules et fichiers d'aide doivent être dans un répertoire -séparés pour dissuader toute tentative d'utilisation de ces sous-fichiers. - -Pour intégrer ngcgui dans Axis, spécifier les items suivants dans le fichier -ini: -.... -Item: [DISPLAY]PROGRAM_PREFIX = dirname -Exemple: [DISPLAY]PROGRAM_PREFIX = ../../../nc_files -Note: Obligatoire et nécessaire pour de nombreuses fonctions de LinuxCNC. - C'est le premier répertoire utilisé lors de la recherche de fichiers. - -Item: [RS274NGC]SUBROUTINE_PATH = dirname1:dirname2:dirname3 ... -Exemple: [RS274NGC]SUBROUTINE_PATH = ../../../nc_files/ngcgui_lib:../../../nc_files/ngcgui_lib/utilitysubs -Note: Optionnel, mais très utile pour organiser les sous-fichiers et les - fichiers utilitaires. - -Item: [DISPLAY]TKPKG=Ngcgui version_number -Exemple: [DISPLAY]TKPKG=Ngcgui 1.0 -Note: Obligatoire, spécifie le chargement des onglets ngcgui dans axis. - -Item: [DISPLAY]NGCGUI_FONT = font_descriptor -Exemple: [DISPLAY]NGCGUI_FONT = Helvetica -12 normal -Note: Optionnel, descripteur de fontes compatible avec celui de Tcl. - Avec des items pour le type de fonte -fontsize fontweight - Par défaut c'est la police: Helvetica -10 normal - -Item: [DISPLAY]NGCGUI_SUBFILE = subfile_filename -Exemple: [DISPLAY]NGCGUI_SUBFILE = simp.ngc -Exemple: [DISPLAY]NGCGUI_SUBFILE = xyz.ngc -Exemple: [DISPLAY]NGCGUI_SUBFILE = "" -Note: Utilise un ou plusieurs items pour spécifier les fichiers compatibles - avec les sous-fichiers ngcgui qui requiert un onglet dans Axis au - départ. Un onglet "personnalisé" est créé quand le nom de fichier est "". - Un utilisateur peut utiliser l'onglet "Personnalisé" pour lire un - fichier système et identifier un préambule, un sous-fichier ou un - postambule. - -Item: [DISPLAY]NGCGUI_PREAMBLE = preamble_filename -Exemple: [DISPLAY]NGCGUI_PREAMBLE = in_std.ngc -Note: Optionnel, si spécifié, alors ce fichier sera prépondérant à tous les - sous-fichiers. Les fichiers créés avec l'onglet "Personnalisé" - utilisent le préambule spécifié avec cette page. - -Item: [DISPLAY]NGCGUI_POSTAMBLE = postamble_filename -Exemple: [DISPLAY]NGCGUI_POSTAMBLE = bye.ngc -Note: Optionnel, si spécifié, le fichier est ajouté à tous les sous-fichiers. - Les fichiers créés avec l'onglet "Personnalisé" utilisent le postambule - spécifié avec cette page. - -Item: [DISPLAY]NGCGUI_OPTIONS = opt1 opt2 ... -Exemple: [DISPLAY]NGCGUI_OPTIONS = nonew noremove -Note: De multiples options séparées par des blancs. - Par défaut, ngcgui gère les onglets de cette manière: - 1) Un utilisateur peut créer de nouveaux onglets. - 2) Un utilisateur peut enlever des onglets (excepté le dernier - restant) - 3) La finalisation envoie automatiquement les fichiers à Axis. - 4) Une trame d'image (iframe) est rendue disponible pour afficher - une image pour le sous-fichier. - - Les options _nonew_, _noremove_, _noauto_, _noiframe_ respectivement, - désactivent ces comportements par défaut. - - Par défaut, Si un fichier d'image (.png, .gif, .jpg, .pgm) - est trouvé dans le même répertoire que le sous-fichier, l'image - est affichée dans une iframe. Spécifier l'option - _noiframe_ rendra disponibles d'autres boutons pour sélectionner - un préambule, un sous-fichier ou un postambule et - des cases à cocher additionnelles. Les cases à cocher sont toujours - disponibles avec les touches spéciales suivantes: - Ctrl-R Bascule "Conserver les valeurs à la lecture du sous-fichier" - Ctrl-E Bascule "Déployer le sous-programme" - Ctrl-a Bascule "EnvoiAuto" - (Ctrl-k lists all keys and functions) - - Si _noiframe_ est spécifié et qu'un fichier image est trouvé, - l'image est affichée dans une fenêtre séparée et - toutes les fonctions sont disponibles dans la page de l'onglet. - - Les _NGCGUI_OPTIONS_ s'appliquent à tous les onglets ngcgui excepté - ceux sur lesquels les options _nonew_, _noremove_, et _noiframe_ ne - sont pas applicables pour l'onglet "Personnalisé". - Ne pas utiliser l'onglet "Personnalisé" si les utilisateurs doivent - avoir des possibilités de sélection de sous-fichiers et de création - d'onglet additionnels limitées. -.... -:showcomments: -// FIX-ME Keyboard shortcuts do not work in version _fr. - -== Besoins des sous-programmes - -Un sous-fichiers compatible NGCGUI contient une simple définition de -sous-programme. Le nom du sous-programme doit être le même que celui du -fichier (non inclus l'extension .ngc). LinuxCNC supporte les sous-programmes -nommés ou numérotés, mais seuls les sous-programmes nommés sont compatible -avec NGCGUI. Pour plus d'informations voir le chapitre sur les -<>. - -La première ligne, autre qu'un commentaire, doit être une déclaration _sub_. -La dernière ligne, autre qu'un commentaire, doit être une déclaration _endsub_. - -.exemple.ngc: ----- -o sub - CORPS DU SOUS-PROGRAMME -o endsub ----- - -Le corps du sous-programme doit commencer par un jeu de déclarations -définissant les paramètres nommés locaux pour chaque paramètre positionnel -attendu pour l'appel du sous-programme. Ces définitions doivent être -consécutives, commencer par #1 et finir avec le numéro du dernier paramètre -utilisé. Les définitions doivent être fournies pour chacun de ces paramètres -(aucune omissions). - -.Numérotation des paramètres ----- -# = #1 -# = #2 -# = #3 ----- - -LinuxCNC considère tous les paramètres numérotés entre #1 est #30 comme étant -des paramètres appelables, de même, ngcgui fourni des dialogues de saisie pour -n'importe quel paramètres dans cette fourchette. Il est de bonne pratique -d'éviter d'utiliser un paramètre numéroté de #1 jusqu'à #30 n'importe où -ailleurs dans le sous-programme. L'utilisation de paramètres nommés locaux est -recommandée pour toutes le variables internes. - -Chaque définition de déclaration peut optionnellement inclure un commentaire -spécial et une valeur par défaut pour le paramètre. - -.Prototypage de déclaration ----- -# = #n (=valeur_par_défaut) -ou -# = #n (texte_de_commentaire) -ou -# = #n (=valeur_par_défaut texte_de_commentaire) ----- - -.Exemples de paramètres ----- -# = #1 (=0.0) -# = #2 (Ystart) -# = #3 (=0.0 Z start setting) ----- - -Si une valeur_par_défaut est donnée, elle sera placée au démarrage, dans la -boîte de saisie pour le paramètre. - -Si un texte_de_commentaire est inclus, il sera utilisé pour identifier l'entrée -à la place du nom du paramètre. - -.Paramètres nommés globaux -Note sur les paramètres nommés globaux (#) avec ngcgui: - -Comme dans de nombreux langages de programmation, l'utilisation de variables -globales est puissante, mais peut souvent mener à des conséquences inattendues. -Dans LinuxCNC, les paramètres nommés globaux existants seront valides lors de -l'exécution du sous-programme et les sous-programmes peuvent les modifier ou -en créer. - -L'utilisation de paramètres nommé globaux comme entrées dans un sous-programme -est déconseillé parce-que de tels usages requiert l'établissement et la -maintenance d'un contexte global bien défini, ce qui est problématique à -maintenir. L'utilisation de paramètres numérotés en #1 et #30 devrait être -suffisant pour satisfaire les besoins les plus exigeants. - -Ngcgui supporte quelques entrées par paramètres nommés globaux mais leurs usage -est obsolète et non documenté ici. - -Bien que les entrées par paramètres nommés globaux soient déconseillées, les -sous-programmes LinuxCNC doivent utiliser des paramètres nommés globaux pour -retourner les résultats. Puisque les sous-fichiers compatibles ngcgui sont -destinés à l'usage de l'interface graphique, les valeurs de retour n'ont pas -d'exigence commune. Toutefois, ngcgui est utile comme outil de test pour les -sous-programmes qui ne retournent pas de paramètres nommés globaux et il est -commun pour les sous-fichiers compatibles ngcgui d'appeler des fichiers de -sous-programmes utilitaires qui eux retournent des résultats avec des paramètres -nommés globaux. - -Pour supporter ces usages, ngcgui ignore les paramètres nommés globaux qui -incluent le caractère (:) dans leur nom. Utilisation des deux points (:) dans -un nom prévient ngcgui de créer une bîte de saisie pour ces paramètres. - -.Paramètres nommés globaux ----- -o sub -... -#<_exemp:result> = #5410 (retourne le diamètre de l'outil courant) -... -o call [#] [#] (appel d'un sous-programme) -# = #<_helper:answer> (localise immédiatement le résultat du -fichier d'aide) -#<_helper:answer> = 0.0 (rend nul le paramètre nommé global utilisé par le -sous-programme) -... -o endsub ----- - -Dans l'exemple précédent, le sous-programme utilitaire sera trouvé dans un -fichier séparé nommé helper.ngc. Le sous-programme d'aide retourne un résultat -dans un paramètre nommé global nommé #<_helper:answer>. - -Pour une bonne pratique, le sous-fichier appelant localise immédiatement -le résultat pour une utilisation ailleurs dans le sous-fichier et le paramètre -nommé global, utilisé pour retourner le résultat est mis à zéro pour diminuer -les chances qu'il soit utilisé par inadvertance ailleurs dans le contexte -global. (La mise à zéro avec 0.0 n'est pas toujours le meilleur choix). - -Ngcgui supporte la création et la concaténation de multiples fonctions pour -un sous-fichier et pour de multiples sous-fichiers. Il est parfois pratique -pour les sous-fichiers de déterminer leur ordre au début de l'exécution afin -que ngcgui insère un paramètre global spécial qui pourra être testé par tous -les sous-programmes. Ce paramètre est nommé #<_feature:>. -Sa valeur commence avec 0 et est incrémentée avec chaque fonction qui lui est -ajoutée. - -.Fonctions additionelles -Un commentaire spécial 'info' peut être inclus quelque part dans les -sous-fichier compatibles ngcgui. Le format est le suivant: - ----- -(info: info_text) ----- - -La chaine _info_text_ est affichée vers le haut de la page de l'onglet ngcgui -dans Axis. - -Les fichiers non destinés à servir de sous-fichiers peuvent inclure le -commentaire spécial: "(not_a_subfile)" de sorte que ngcgui les rejette -automatiquement avec un message explicatif. - ----- -(not_a_subfile) ----- - -Un fichier image optionnel (.png, .gif, .jpg, .pgm) peut accompagner un -sous-fichier. Le fichier image peut aider à clarifier les paramètres utilisés - par le sous-fichier. Le fichier image doit être dans le même répertoire que le -sous-fichier et doit avoir le même nom avec une extension appropriée au fichier -image, ex: le sous-fichier exemp.ngc doit être accompagné par l'image exemp.png. -Ngcgui tente de redimensionner de grandes images par sous-échantillonnage à -une largeur maximale de 320 et une hauteur maximum de 240 pixels. - -Aucune des conventions nécessaires pour faire une sous-fichier compatible -ngcgui n'empêche son utilisation en tant que fichier de sous-programme pour -LinuxCNC. - -La distribution LinuxCNC inclus une librairie (répertoire ngcgui_lib) qui -contient plusieurs exemples de sous-fichiers et de fichiers utilitaires -compatibles ngcgui pour illustrer les fonctions des sous-programmes de LinuxCNC -et l'usage de ngcgui. - -Des sous-programmes additionnels soumis par les utilisateurs se trouvent dans -le forum dans la section _Subroutines_. - - -== Exemple, découpe pour DB25 - -L'exemple ci-dessous montre l'utilisation du sous-programme DB25. -Dans la première image on voit les champs remplis pour chaque variable. - -image::images/ngcgui-db25-1_fr.png[] - -Cette image montre le parcours d'outil du sous-programme DB25. - -image::images/ngcgui-db25-2_fr.png[] - -Cette image montre l'action du bouton _Nouveau_ et de l'onglet personnalisé pour -créer très facilement la découpe de trois DB25 en un seul programme. - -image::images/ngcgui-db25-3_fr.png[] - -== Création d'un sous-programme - -* Pour la création d'un sous-programme à utiliser avec Ngcgui, le nom de fichier - et le nom du sous-programme doivent être les mêmes. -* Le fichier doit être placé dans le sous-répertoire pointé dans le fichier ini. -* À la première ligne peut se trouver un commentaires de type info: qui doit - être placé au début du sous-programme. -* Le sous-programme doit être entouré par les balises `sub` et `endsub`. -* Les variables utilisées doivent être des variables numérotées et ne doivent pas - sauter de numéro. -* Des commentaires et presets peuvent être inclus. ----- -(info: simp -- simple exemple de sous-programme -- Ctrl-U pour éditer) -o sub - # = #1 (=.6 Rayon A) ;Example de paramètre avec un commentaire - # = #2 (=0.4) ;Example de paramètre sans commentaire - # = #3 (Feedrate) ;Example de paramètre sans preset - g0x0y0z1 - g3 i# f# - g3 i[0-#] -o endsub ----- - diff --git a/docs/src/gui/selector.txt b/docs/src/gui/selector.txt deleted file mode 100644 index d501446dc4f..00000000000 --- a/docs/src/gui/selector.txt +++ /dev/null @@ -1,99 +0,0 @@ -= CONFIGURATION SELECTOR - -[[cha:selector]] (((CONFIGURATION SELECTOR))) - -The Configuraton Selector gui is activated from the system main -menu when CNC / LinuxCNC is selected. - -The Configuration Selector offers a selection of configurations -organized: - - My Configurations -------- User configurations - - Sample Configurations ---- Sample configurations that - can be copied to 'My Configurations' - - sim ------------------- simulation configurations. These - can be used for testing or learning - - by_interface ---------- configurations organized by interface - - by_machine ------------ configurations organized by machine - - apps ------------------ applications that do not require - starting linuxcnc but may be useful - for testing or trying applications - like pyvcp or gladevcp - - attic ----------------- obsolete or historical configurations - - -The sim configurations are often the most useful starting point for -new users and are organized around supported guis: - - axis - gmoccapy - gscreen - low_graphics - tklinuxcnc - touchy - -A gui configuration directory may contain subdirectories with -configurations that illustrate special situations or the embedding -of other applications. - -The by_interface configurations are organized around common, supported -interfaces like: - - general mechatronics - mesa - parport - pico - pluto - servotogo - vigilant - vitalsystems - -Related hardware may be required to use these configurations as -starting points for a system. - - -The by_machine configurations are organized around complete, known -systems like: - - boss - cooltool - sherline - smithy - tormach - -A complete system may be required to use these configurations. - -The apps items are typically 1) utilities that don't require -starting linuxcnc or 2) demonstrations of applications that can -be used with linuxcnc: - - info ------ creates a file with system information that - may be useful for problem diagnosis - gladevcp -- example gladevcp applications - halrun --- starts halrun in an terminal - latency --- applications to investigate latency - parport --- applications to test parport - pyvcp ----- example pyvcp applications - xhc-hb04 -- applications to test an xhc-hb04 USB wireless MPG - - -The attic directory stores obsolete or historical configurations. - - -When started, the Configuration Selector allows the user to pick one -of their existing configurations (My Configurations) or select -a new one (from the Sample Configurations) to be copied to their -home directory. Copied configurations will appear under My Configurations -on the next invocation of the Configuration Selector. - -[NOTE] -Under the Apps directory, only applications that are usefully modified -by the user are offered for copying to the user's directory. - - diff --git a/docs/src/gui/tklinuxcnc.txt b/docs/src/gui/tklinuxcnc.txt deleted file mode 100644 index 4c40f3b51f3..00000000000 --- a/docs/src/gui/tklinuxcnc.txt +++ /dev/null @@ -1,262 +0,0 @@ -= TkLinuxCNC GUI - -[[cha:tklinuxcnc-gui]] (((TkLinuxCNC GUI))) - -== Introduction - -TkLinuxCNC(((tkLinuxCNC))) is one of the first graphical front-ends -for LinuxCNC. It is written in Tcl and uses the Tk toolkit -for the display. Being written in Tcl makes it very portable (it runs on a -multitude of platforms). A separate backplot window can be displayed as -shown. - -.TkLinuxCNC Window[[cap:TkLinuxCNC-Window]] - -image::images/tkemc.png[align="center"] - -== Getting Started - -To select TkLinuxCNC as the front-end for LinuxCNC, edit the .ini file. In the -section '[DISPLAY]' change the 'DISPLAY' line to read - ----- -DISPLAY = tklinuxcnc ----- - -Then, start LinuxCNC and select that ini file. The sample configuration -'sim/tklinuxcnc/tklinuxcnc.ini' is already configured to use TkLinuxCNC as its front-end. - -=== A typical session with TkLinuxCNC - -. Start LinuxCNC and select a configuration file. -. Clear the 'E-STOP' condition and turn the machine on (by - pressing F1 then F2). -. 'Home' each axis. -. Load the file to be milled. -. Put the stock to be milled on the table. -. Set the proper offsets for each axis by jogging and either homing - again or right-clicking an axis name and entering an offset value. - footnote:[For some of these actions it might be necessary to change the - mode LinuxCNC is currently running in.] -. Run the program. -. To mill the same file again, return to step 6. To mill a different - file, return to step 4. When you're done, exit LinuxCNC. - -== Elements of the TkLinuxCNC window - -The TkLinuxCNC window contains the following elements: - -* A menubar that allows you to perform various actions -* A set of buttons that allow you to change the current working mode, - start/stop spindle and other relevant I/O -* Status bar for various offset related displays -* Coordinate display area -* A set of sliders which control 'Jogging speed', 'Feed Override' - , and 'Spindle speed Override' which allow you to increase or - decrease those settings -* Manual data input text box 'MDI' -* Status bar display with active G-codes, M-codes, F- and S-words -* Interpreter related buttons -* A text display area that shows the G-code source of the loaded file - -=== Main buttons - -From left to right, the buttons are: - -* Machine enable: 'ESTOP' > 'ESTOP RESET' > 'ON' -* Toggle mist coolant -* Decrease spindle speed -* Set spindle direction 'SPINDLE OFF' > 'SPINDLE FORWARD' . - 'SPINDLE REVERSE' -* Increase spindle speed -* Abort - -then on the second line: - -* Operation mode: 'MANUAL' > 'MDI' > 'AUTO' -* Toggle flood coolant -* Toggle spindle brake control - -=== Offset display status bar - -The Offset display status bar displays the currently selected tool -(selected with Txx M6), the tool length offset (if active), and the -work offsets (set by right-clicking the coordinates). - -=== Coordinate Display Area - -The main part of the display shows the current position of the tool. -The color of the position readout depends on the state of the axis. If -the axis is unhomed the axis will be displayed in yellow letters. Once -homed it will be displayed in green letters. If there is an error with -the current axis TkLinuxCNC will use red letter to show that. (for example -if an hardware limit switch is tripped). - -To properly interpret these numbers, refer to the radio boxes on the -right. If the position is 'Machine', then the displayed number is in -the machine coordinate system. If it is 'Relative', then the displayed -number is in the offset coordinate system. Further down the choices can -be 'actual' or 'commanded'. Actual refers to the feedback coming from -encoders (if you have a servo machine), and the 'commanded' refers to -the position command send out to the motors. These values can differ -for several reasons: Following error, deadband, encoder resolution, or -step size. For instance, if you command a movement to X 0.0033 on your -mill, but one step of your stepper motor is 0.00125, then the -'Commanded' position will be 0.0033 but the 'Actual' position will be -0.0025 (2 steps) or 0.00375 (3 steps). - -Another set of radio buttons allows you to choose between 'joint' and -'world' view. These make little sense on a normal type of machine (e.g. -trivial kinematics), but help on machines with non-trivial kinematics -like robots or stewart platforms. (you can read more about kinematics -in the Integrator Manual). - -==== Backplot - -When the machine moves, it leaves a trail called the backplot. You can -start the backplot window by selecting View→Backplot. - -=== Automatic control - -==== Buttons for control - -The buttons in the lower part of TkLinuxCNC are used to control the execution of a -program: 'Open' to load a program, 'Verify' to -check it for errors, 'Run' to start the actual cutting, -'Pause' to stop it while running, 'Resume' to -resume an already paused program, 'Step' to advance one line -in the program and 'Optional Stop' to toggle the -optional stop switch (if the button is green the program execution will -be stopped on any M1 encountered). - -.TkLinuxCNC Interpreter / program control[[cap:TkLinuxCNC-Interpreter]] -image::images/tkemc-interp.png[align="center"] - -==== Text Program Display Area - -When the program is running, the line currently being executed is -highlighted in white. The text display will automatically scroll to -show the current line. - -=== Manual Control - -==== Implicit keys - -TkLinuxCNC allows you to manually move the machine. This action is known as -'jogging'. First, select the axis to be moved by clicking it. Then, -click and hold the '+' or '-' button depending on the desired direction -of motion. The first four axes can also be moved by the keyboard arrow keys -(X and Y), the PAGE UP and PAGE DOWN keys (Z) and the '[' and ']' keys (A/4th). - -If 'Continuous' is selected, the motion will continue as long as the -button or key is pressed. If another value is selected, the machine -will move exactly the displayed distance each time the button is -clicked or the key is pressed. The available values are: -'1.0000, 0.1000, 0.0100, 0.0010, 0.0001' - -By pressing 'Home' or the HOME key, the selected axis will be homed. -Depending on your configuration, this may just set the axis value to be -the absolute position 0.0, or it may make the machine move to a -specific home location through use of 'home switches'. See the -Integrator Manual for more information on homing. - -By pressing 'Override Limits', the machine will temporarily be -permitted to jog outside the limits defined in the .ini file. (Note: if -'Override Limits' is active the button will be displayed using a red -color). - -.TkLinuxCNC Override Limits & Jogging increments example[[cap:Override-Limits]] - -image::images/tkemc-override-limits.png[align="center"] - -==== The Spindle group - -The button on the first row selects the direction for the spindle to -rotate: Counterclockwise, Stopped, Clockwise. The buttons next to it -allow the user to increase or decrease the rotation speed. The button -on the second row allows the spindle brake to be engaged or released. -Depending on your machine configuration, not all the items in this -group may have an effect. - -==== The Coolant group - -The two buttons allow the 'Mist' and 'Flood' coolants to be turned on -and off. Depending on your machine configuration, not all the items in -this group may appear. - -=== Code Entry - -Manual Data Input (also called MDI), allows G-code programs to be -entered manually, one line at a time. When the machine is not turned -on, and not set to MDI mode, the code entry controls are unavailable. - -.The Code Entry tab[[cap:The-Code-Entry]] - -image::images/tkemc-mdi.png[align="center"] - -==== MDI: - -This allows you to enter a g-code command to be executed. Execute the -command by pressing Enter. - -==== Active G-Codes - -This shows the 'modal codes' that are active in the interpreter. For -instance, 'G54' indicates that the 'G54 offset' is applied to all -coordinates that are entered. - -=== Jog Speed - -By moving this slider, the speed of jogs can be modified. The numbers -above refer to axis units / second. The text box with the number is -clickable. Once clicked a popup window will appear, allowing for a -number to be entered. - -=== Feed Override - -By moving this slider, the programmed feed rate can be modified. For -instance, if a program requests 'F60' and the slider is set to 120%, -then the resulting feed rate will be -72. The text box with the number is clickable. Once clicked a popup -window will appear, allowing for a number to be entered. - -=== Spindle speed Override - -The spindle speed override slider works exactly like the feed override -slider, but it controls to the spindle speed. If a program requested -S500 (spindle speed 500 RPM), and the slider is set to 80%, then the -resulting spindle speed will be 400 RPM. This slider has a minimum and -maximum value defined in the ini file. If those are missing the slider -is stuck at 100%. The text box with the number is clickable. Once -clicked a popup window will appear, allowing for a number to be -entered. - -== Keyboard Controls - -Almost all actions in TkLinuxCNC can be accomplished with the keyboard. -Many of the shortcuts are unavailable when in MDI mode. - -The most frequently used keyboard shortcuts are shown in the -following table. - -.Most Common Keyboard Shortcuts[[cap:TkLinuxCNC-Common-Keyboard]] - -[width="75%", options="header", cols="1^,3<"] -|======================================== -|Keystroke | Action Taken -|F1 | Toggle Emergency Stop -|F2 | Turn machine on/off -|`, 1 .. 9, 0 | Set feed override from 0% to 100% -|X, ` | Activate first axis -|Y, 1 | Activate second axis -|Z, 2 | Activate third axis -|A, 3 | Activate fourth axis -|Home | Send active axis Home -|Left, Right | Jog first axis -|Up, Down | Jog second axis -|Pg Up, Pg Dn | Jog third axis -|[, ] | Jog fourth axis -|ESC | Stop execution -|======================================== - - diff --git a/docs/src/gui/tklinuxcnc_es.txt b/docs/src/gui/tklinuxcnc_es.txt deleted file mode 100644 index de7aab37b6b..00000000000 --- a/docs/src/gui/tklinuxcnc_es.txt +++ /dev/null @@ -1,275 +0,0 @@ -= TkLinuxCNC GUI - -[[cha:tklinuxcnc-gui]] (((TkLinuxCNC GUI))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Introduction - -TkLinuxCNC(((tkLinuxCNC))) is one of the first graphical front-ends -for LinuxCNC. It is written in Tcl and uses the Tk toolkit -for the display. Being written in Tcl makes it very portable (it runs on a -multitude of platforms). A separate backplot window can be displayed as -shown. - -.TkLinuxCNC Window[[cap:TkLinuxCNC-Window]] - -image::images/tkemc.png[align="center"] - -== Getting Started - -To select TkLinuxCNC as the front-end for LinuxCNC, edit the .ini file. In the -section '[DISPLAY]' change the 'DISPLAY' line to read - ----- -DISPLAY = tklinuxcnc ----- - -Then, start LinuxCNC and select that ini file. The sample configuration -'sim/tklinuxcnc/tklinuxcnc.ini' is already configured to use TkLinuxCNC as its front-end. - -=== A typical session with TkLinuxCNC - -. Start LinuxCNC and select a configuration file. -. Clear the 'E-STOP' condition and turn the machine on (by - pressing F1 then F2). -. 'Home' each axis. -. Load the file to be milled. -. Put the stock to be milled on the table. -. Set the proper offsets for each axis by jogging and either homing - again or right-clicking an axis name and entering an offset value. - footnote:[For some of these actions it might be necessary to change the - mode LinuxCNC is currently running in.] -. Run the program. -. To mill the same file again, return to step 6. To mill a different - file, return to step 4. When you're done, exit LinuxCNC. - -== Elements of the TkLinuxCNC window - -The TkLinuxCNC window contains the following elements: - -* A menubar that allows you to perform various actions -* A set of buttons that allow you to change the current working mode, - start/stop spindle and other relevant I/O -* Status bar for various offset related displays -* Coordinate display area -* A set of sliders which control 'Jogging speed', 'Feed Override' - , and 'Spindle speed Override' which allow you to increase or - decrease those settings -* Manual data input text box 'MDI' -* Status bar display with active G-codes, M-codes, F- and S-words -* Interpreter related buttons -* A text display area that shows the G-code source of the loaded file - -=== Main buttons - -From left to right, the buttons are: - -* Machine enable: 'ESTOP' > 'ESTOP RESET' > 'ON' -* Toggle mist coolant -* Decrease spindle speed -* Set spindle direction 'SPINDLE OFF' > 'SPINDLE FORWARD' . - 'SPINDLE REVERSE' -* Increase spindle speed -* Abort - -then on the second line: - -* Operation mode: 'MANUAL' > 'MDI' > 'AUTO' -* Toggle flood coolant -* Toggle spindle brake control - -=== Offset display status bar - -The Offset display status bar displays the currently selected tool -(selected with Txx M6), the tool length offset (if active), and the -work offsets (set by right-clicking the coordinates). - -=== Coordinate Display Area - -The main part of the display shows the current position of the tool. -The color of the position readout depends on the state of the axis. If -the axis is unhomed the axis will be displayed in yellow letters. Once -homed it will be displayed in green letters. If there is an error with -the current axis TkLinuxCNC will use red letter to show that. (for example -if an hardware limit switch is tripped). - -To properly interpret these numbers, refer to the radio boxes on the -right. If the position is 'Machine', then the displayed number is in -the machine coordinate system. If it is 'Relative', then the displayed -number is in the offset coordinate system. Further down the choices can -be 'actual' or 'commanded'. Actual refers to the feedback coming from -encoders (if you have a servo machine), and the 'commanded' refers to -the position command send out to the motors. These values can differ -for several reasons: Following error, deadband, encoder resolution, or -step size. For instance, if you command a movement to X 0.0033 on your -mill, but one step of your stepper motor is 0.00125, then the -'Commanded' position will be 0.0033 but the 'Actual' position will be -0.0025 (2 steps) or 0.00375 (3 steps). - -Another set of radio buttons allows you to choose between 'joint' and -'world' view. These make little sense on a normal type of machine (e.g. -trivial kinematics), but help on machines with non-trivial kinematics -like robots or stewart platforms. (you can read more about kinematics -in the Integrator Manual). - -==== Backplot - -When the machine moves, it leaves a trail called the backplot. You can -start the backplot window by selecting View→Backplot. - -=== Automatic control - -==== Buttons for control - -The buttons in the lower part of TkLinuxCNC are used to control the execution of a -program: 'Open' to load a program, 'Verify' to -check it for errors, 'Run' to start the actual cutting, -'Pause' to stop it while running, 'Resume' to -resume an already paused program, 'Step' to advance one line -in the program and 'Optional Stop' to toggle the -optional stop switch (if the button is green the program execution will -be stopped on any M1 encountered). - -.TkLinuxCNC Interpreter / program control[[cap:TkLinuxCNC-Interpreter]] -image::images/tkemc-interp.png[align="center"] - -==== Text Program Display Area - -When the program is running, the line currently being executed is -highlighted in white. The text display will automatically scroll to -show the current line. - -=== Manual Control - -==== Implicit keys - -TkLinuxCNC allows you to manually move the machine. This action is known as -'jogging'. First, select the axis to be moved by clicking it. Then, -click and hold the '+' or '-' button depending on the desired direction -of motion. The first four axes can also be moved by the keyboard arrow keys -(X and Y), the PAGE UP and PAGE DOWN keys (Z) and the '[' and ']' keys (A/4th). - -If 'Continuous' is selected, the motion will continue as long as the -button or key is pressed. If another value is selected, the machine -will move exactly the displayed distance each time the button is -clicked or the key is pressed. The available values are: -'1.0000, 0.1000, 0.0100, 0.0010, 0.0001' - -By pressing 'Home' or the HOME key, the selected axis will be homed. -Depending on your configuration, this may just set the axis value to be -the absolute position 0.0, or it may make the machine move to a -specific home location through use of 'home switches'. See the -Integrator Manual for more information on homing. - -By pressing 'Override Limits', the machine will temporarily be -permitted to jog outside the limits defined in the .ini file. (Note: if -'Override Limits' is active the button will be displayed using a red -color). - -.TkLinuxCNC Override Limits & Jogging increments example[[cap:Override-Limits]] - -image::images/tkemc-override-limits.png[align="center"] - -==== The Spindle group - -The button on the first row selects the direction for the spindle to -rotate: Counterclockwise, Stopped, Clockwise. The buttons next to it -allow the user to increase or decrease the rotation speed. The button -on the second row allows the spindle brake to be engaged or released. -Depending on your machine configuration, not all the items in this -group may have an effect. - -==== The Coolant group - -The two buttons allow the 'Mist' and 'Flood' coolants to be turned on -and off. Depending on your machine configuration, not all the items in -this group may appear. - -=== Code Entry - -Manual Data Input (also called MDI), allows G-code programs to be -entered manually, one line at a time. When the machine is not turned -on, and not set to MDI mode, the code entry controls are unavailable. - -.The Code Entry tab[[cap:The-Code-Entry]] - -image::images/tkemc-mdi.png[align="center"] - -==== MDI: - -This allows you to enter a g-code command to be executed. Execute the -command by pressing Enter. - -==== Active G-Codes - -This shows the 'modal codes' that are active in the interpreter. For -instance, 'G54' indicates that the 'G54 offset' is applied to all -coordinates that are entered. - -=== Jog Speed - -By moving this slider, the speed of jogs can be modified. The numbers -above refer to axis units / second. The text box with the number is -clickable. Once clicked a popup window will appear, allowing for a -number to be entered. - -=== Feed Override - -By moving this slider, the programmed feed rate can be modified. For -instance, if a program requests 'F60' and the slider is set to 120%, -then the resulting feed rate will be -72. The text box with the number is clickable. Once clicked a popup -window will appear, allowing for a number to be entered. - -=== Spindle speed Override - -The spindle speed override slider works exactly like the feed override -slider, but it controls to the spindle speed. If a program requested -S500 (spindle speed 500 RPM), and the slider is set to 80%, then the -resulting spindle speed will be 400 RPM. This slider has a minimum and -maximum value defined in the ini file. If those are missing the slider -is stuck at 100%. The text box with the number is clickable. Once -clicked a popup window will appear, allowing for a number to be -entered. - -== Keyboard Controls - -Almost all actions in TkLinuxCNC can be accomplished with the keyboard. -Many of the shortcuts are unavailable when in MDI mode. - -The most frequently used keyboard shortcuts are shown in the -following table. - -.Most Common Keyboard Shortcuts[[cap:TkLinuxCNC-Common-Keyboard]] - -[width="75%", options="header", cols="1^,3<"] -|======================================== -|Keystroke | Action Taken -|F1 | Toggle Emergency Stop -|F2 | Turn machine on/off -|`, 1 .. 9, 0 | Set feed override from 0% to 100% -|X, ` | Activate first axis -|Y, 1 | Activate second axis -|Z, 2 | Activate third axis -|A, 3 | Activate fourth axis -|Home | Send active axis Home -|Left, Right | Jog first axis -|Up, Down | Jog second axis -|Pg Up, Pg Dn | Jog third axis -|[, ] | Jog fourth axis -|ESC | Stop execution -|======================================== - - diff --git a/docs/src/gui/tklinuxcnc_fr.txt b/docs/src/gui/tklinuxcnc_fr.txt deleted file mode 100644 index 0eacef5d52d..00000000000 --- a/docs/src/gui/tklinuxcnc_fr.txt +++ /dev/null @@ -1,287 +0,0 @@ -:lang: fr -:toc: - -= L'interface graphique TkLinuxCNC - -[[cha:TkLinuxCNC]] (((TkLinuxCNC))) - -== Introduction - -TkLinuxCNC(((tklinuxcnc))) est l'interface utilisateur graphique la plus -populaire après Axis, c'est l'interface traditionnelle de LinuxCNC. Elle est -écrite en Tcl(((Tcl))) et utilise le toolkit Tk(((Tk))) pour -l'affichage. Le fait d'être écrite en TCL la rend vraiment très -portable (elle fonctionne sur une multitude de plateformes). - -[[cap:affichage-TkLinuxCNC]] -.L'affichage de TkLinuxCNC - -image::images/tklinuxcnc_fr.png[] - -== Utiliser TkLinuxCNC - -Pour sélectionner l'interface graphique TkLinuxCNC avec LinuxCNC, éditer le -fichier .ini et dans la section [DISPLAY] modifier l'affichage comme -ci-dessous: ----- -DISPLAY = tklinuxcnc ----- - -Puis, lancer LinuxCNC et choisir ce fichier ini. La configuration qui se -trouve dans _sim/tklinuxcnc/tklinuxcnc.ini_ est déjà configurée pour utiliser TkLinuxCNC -comme interface utilisateur. - -Quand LinuxCNC est lancé avec TkLinuxCNC, une fenêtre -<>. - -=== Une session typique avec TkLinuxCNC - - . Lancer LinuxCNC et sélectionner un fichier de configuration. - . Libérer l'_Arrêt d'Urgence_(((A/U))) et mettre la machine en marche - (en pressant F1 puis F2). - . Faire l'_Origine(((Origine Machine))) Machine_ de chacun des axes. - . Charger un fichier d'usinage. - . Brider le brut à usiner sur la table. - . Faire l'_Origine (((Origine Piece)))Pièce_ de chacun des axes, à - l'aide du jog ou en introduisant une valeur de décalage d'origine après - un clic droit sur le nom d'un axe. - . Lancer le programme. - . Pour refaire une autre pièce identique, reprendre à l'étape 6. Pour - usiner une pièce différente, reprendre à l'étape 4. Quand c'est - terminé, quitter LinuxCNC. - -== Éléments affichés par TkLinuxCNC - -La fenêtre TkLinuxCNC contient les éléments suivants: - - - Une barre de menu permettant diverses actions; - - Un jeu de boutons permettant d'agir sur le mode de travail, - Marche/Arrêt de la broche et autres éléments; - - Une barre de statut pour l'affichage des différents offsets; - - Une zone d'affichage des coordonnées; - - Un jeu de curseurs pour contrôler la - _vitesse de jog(((vitesse de jog)))_, le - _Correcteur de vitesse d'avance(((correcteur de vitesse)))_ et - le _Correcteur de vitesse broche(((correcteur vitesse broche)))_ qui - permettent d'augmenter ou de diminuer ces vitesses ; - - Une boîte d'entrée de données manuelles(((MDI))); - - Une barre de statut affichant le bloc de programme actif, G-codes, - M-codes, mots F et S; - - Les boutons relatifs à l'interpréteur; - - Une zone d'affichage de texte montrant le G-code du programme chargé. - -=== Boutons principaux - -Dans la première ligne de la gauche vers la droite et cycliquement: - - . Marche Machine: _Arrêt d'Urgence(((A/U)))_ - _Arrêt d'Urgence relâché_ / _Marche_ - . Bascule gouttelettes(((Gouttelettes))) - . Broche moins vite - . Direction de rotation de la broche(((broche))) _Arrêt broche_ / - _Broche sens horaire_ / _Broche sens anti-horaire_ - . Broche plus vite - . Annuler - -puis dans la deuxième ligne: - - . Mode de marche: _MANUEL(((Manuel)))_ / _MDI(((MDI))))_ / _AUTO(((Auto)))_ - . Bascule d'arrosage - . Bascule du contrôle frein de broche - -=== Barre de statut des différents offsets - -Elle affiche, l'offset de rayon de l'outil courant (sélectionné avec -Txx M6), l'offset éventuel de longueur d'outil si il est actif et les -offsets de travail (ajustables par un clic droit sur les coordonnées). - -=== Zone d'affichage des coordonnées - -La partie principale affiche la position courante de l'outil. La -couleur varie selon l'état de l'axe. Si l'axe n'est pas référencé il -est affiché en caractères jaunes. Si il est référencé il s'affiche en -vert. Si il est en erreur, TkLinuxCNC l'affiche en rouge pour montrer un -défaut. (par exemple si un contact de fin de course est activé). - -Pour interpréter correctement les différentes valeurs, se référer aux -boutons de droite. Si la position est _Machine_, alors la valeur -affichée est en coordonnées machine. Si elle est _Relative_, la valeur -affichée est en coordonnées pièce. Deux autres en dessous indiquent -_actuelle_ ou _commandée_. Actuelle fait référence aux valeurs retournées -par les codeurs (si la machine est équipée de servomoteurs) et -_commandée_ fait référence à la position à atteindre envoyée aux -moteurs. Ces valeurs peuvent différer pour certaines raisons: Erreur de -suivi, bande morte, résolution d'encodeur ou taille de pas. Par -exemple, si un mouvement est commandé vers X0.08 sur une fraiseuse, -mais qu'un pas moteur fait 0.03, alors la position _Commandée_ sera -0.03 mais la position _Actuelle_ sera soit 0.06 (2 pas) soit 0.09 (3 -pas). - -Deux autres boutons permettent de choisir entre la vue _Articulation_ et -la vue _Globale_. Cela a peu de sens avec les machines de type normal -(cinématiques triviales), mais se révèle très utile sur les machines -avec des cinématiques non triviales telles que les robots ou plateforme -de Stewart. (Des informations plus complètes se trouvent dans le manuel -de l'intégrateur). - -==== Parcours d'outil - -Quand la machine se déplace, elle laisse un tracé appelé parcours -d'outil. La fenêtre d'affichage du parcours d'outil s'active via le -menu _Vues → Parcours d'outil_. - -=== Contrôle en automatique - -[[cap:TkLinuxCNC-Interpreteur]] -.Interpréteur de TkLinuxCNC - -image::images/tklinuxcnc_interp_fr.png[] - -==== Boutons de contrôle - -Les boutons de contrôle de la partie inférieure de TkLinuxCNC, visibles sur -l'image ci-dessus, sont utilisés pour l'exécution du -programme: - -* _Ouvrir_ (((ouvrir))) pour charger un fichier, -* _Lancer_ (((lancer))) pour commencer l'usinage, -* _Pause_ (((pause))) pour stopper temporairement l'usinage, -* _Reprise_ (((reprise))) pour reprendre un programme mis en pause, -* _Pas à pas_ (((pas a pas))) pour avancer d'une seule ligne de programme, -* _Vérifier_ (((vérifier))) pour vérifier si il contient des erreurs, -* _Arrêt optionnel_ (((arrêt optionnel))) pour basculer l'arrêt optionnel, si - ce bouton est vert l'exécution du programme est stoppée quand un code M1 - est rencontré. - -==== Zone texte d'affichage du programme - -Quand un programme est lancé, la ligne courante est affichée en -surbrillance blanche. L'affichage du texte défile automatiquement pour -montrer la ligne courante. - -=== Contrôle en manuel - -==== Touches implicites - -TkLinuxCNC permet les déplacements manuels de la machine. Cette action -s'appelle le _jog_. Premièrement, sélectionner l'axe à déplacer en -cliquant dessus. Puis, cliquer et maintenir les boutons *+* ou *-* -selon la direction du mouvement souhaité. Les quatre premiers axes -peuvent aussi être déplacés à l'aide des touches fléchées pour les axes -X et Y, Pg.préc et Pg.suiv pour l'axe Z et les touches [ et ] pour -l'axe A. - -Si _Continu_ est activé, le mouvement sera continu tant que la touche -sera pressée, si une valeur d'incrément est sélectionnée, le mobile se -déplacera exactement de cette valeur à chaque appui sur la touche ou à -chaque clic. Les valeurs disponibles sont: - - 1.0000 0.1000 0.0100 0.0010 0.0001 - -En cliquant le bouton _Origine_ ou en pressant la touche Origine, -l'axe actif est référencé sur son origine machine. Selon la -configuration, la valeur de l'axe peut être simplement mise à la -position absolue 0.0, ou la machine peut se déplacer vers un point -spécifique matérialisé par le _contact d'origine_. Voir le manuel de -l'intégrateur pour plus de détails sur les prises d'origine. - -En cliquant le bouton _Dépassement de limite_, la machine permet un -jog temporaire pour même si l'axe à franchi une limite d'axe fixée dans -le fichier .ini. Noter que si _Dépassement de limite_ est activé il -s'affiche en rouge. - -[[cap:Override-Limits]] -.Exemple de dépassement de limite et incréments de jog - -image::images/tkemc-override-limits.png[] - -==== Le groupe de boutons _Broche_(((broche))) - -Le bouton central du dessus sélectionne le sens de rotation de la -broche: Anti-horaire, Arrêt, Horaire. Les boutons fléchés augmentent ou -diminuent la vitesse de rotation. Le bouton central du dessous permet -d'engager ou de relâcher le frein de broche. Selon la configuration de -la machine, les items de ce groupe ne sont peut être pas tous visibles. - -==== Le groupe de boutons _Arrosage_(((arrosage))) - -Ces deux boutons permettent d'activer ou non les lubrifiants -_Gouttelettes_ et _Arrosage_. Selon la configuration de la machine, les -items de ce groupe ne sont peut être pas tous visibles. - -=== Entrée manuelle de G-code (MDI) - -L'entrée manuelle de données (aussi appelée MDI), permet d'entrer et -d'exécuter des lignes de G-code, une à la fois. Quand la machine n'est -pas en marche ni mise en mode MDI, l'entrée de code n'est pas possible. - -.Le champ de saisie des entrées manuelles - -image::images/tkemc-mdi.png[] - -==== MDI: - -Le mode MDI permet d'exécuter une commande en G-code en pressant la -touche _Entrée_. - -==== G-Codes actifs - -Ce champs montre les _codes modaux_ actuellement actifs dans -l'interpréteur. Par exemple, *G54* indique que le système de -coordonnées courant est celui de G54 et qu'il s'applique à toutes les -coordonnées entrées. - -=== Vitesse de Jog - -En déplaçant ce curseur, la vitesse de jog peut être modifiée. Le -nombre indique une vitesse en unités par minute. Le champs de texte est -cliquable. Un clic ouvre un dialogue permettant d'entrer un nombre. - -=== Correcteur de vitesse d'avance travail - -En déplaçant ce curseur, la vitesse d'avance travail peut être -modifiée. Par exemple, si la vitesse d'avance travail du programme est -*F600* et que le curseur est placé sur 120%, alors la vitesse d'avance -travail sera de 720. Le champs de texte est cliquable. Un clic ouvre un -dialogue permettant d'entrer un nombre. - -=== Correcteur de vitesse de broche - -Le fonctionnement de ce curseur est le même que celui de la vitesse -d'avance, mais il contrôle la vitesse de rotation de la broche. Si le -programme demande S500 (broche à 500 tr/mn) et que le curseur est placé -sur 80%, alors la vitesse de broche résultante sera de 400 tr/mn. Le -minimum et le maximum pour ce curseur sont définis dans le fichier ini. -Par défaut le curseur est placé sur 100%. Le champs de texte est -cliquable. Un clic ouvre un dialogue permettant d'entrer un nombre. - -== Raccourcis clavier - -La plupart des actions de TkLinuxCNC peuvent être accomplies au clavier. -Beaucoup des raccourcis clavier ne sont pas accessibles en mode MDI. - -Les raccourcis clavier les plus fréquemment utilisés sont montrés dans -la table ci-dessous. - -[[cap:Raccourcis-clavier-frequents]] -.Les raccourcis clavier les plus utilisés - -[width="90%", options="header"] -|======================================== -|Touche | Action -|F1 | Bascule de l'Arrêt d'Urgence -|F2 | Marche/Arrêt machine -|*, 1 .. 9, 0 | Correcteur vitesse d'avance 0% à 100% -|X, * | Active le premier axe -|Y, 1 | Active le deuxième axe -|Z, 2 | Active le troisième axe -|A, 3 | Active le quatrième axe -|Origine | POM de l'axe actif -|Gauche, Droite | Jog du premier axe -|Haut, Bas | Jog du deuxième axe -|Pg.prec, Pg.suiv | Jog du troisième axe -|[, ] | Jog du quatrième axe -|Echap | Arrête l'exécution -|======================================== - - diff --git a/docs/src/gui/tooledit.txt b/docs/src/gui/tooledit.txt deleted file mode 100644 index cb4f5c22f85..00000000000 --- a/docs/src/gui/tooledit.txt +++ /dev/null @@ -1,105 +0,0 @@ -= Tool Edit GUI - -[[cha:tooledit-gui]] (((Tool Edit GUI))) - -== Tool Edit Version Requirements -[NOTE] -The following configurable features for 'tooledit' are available in versions -2.5.1 and later. In 2.5.0 the 'tooledit' gui is without the configurable -features. - -image::images/tooledit.png[align="center",width=640] - -The 'tooledit' program can update the tool table file with -edited changes by using the SaveFile button. The SaveFile button -updates the system file but a separate action is required to -update the tool table data used by a running LinuxCNC instance. -With the axis GUI, both the file and the current tool table data -used by LinuxCNC can be updated with the ReloadTable button. -This button is enabled only when the machine is ON and IDLE. - -== Column Sorting -The tool table display can be sorted on any column in ascending -order by clicking on the column header. A second click sorts -in descending order. Column sorting requires that the machine -is configured with the default tcl version >= 8.5. - -image::images/tooledit-sort.png[align="center"] - -On Ubuntu Lucid 10.04 tcl/tk8.4 is the default. You can add tcl/tk8.5 with -the commands: ----- -sudo apt-get install tcl8.5 tk8.5 ----- - -Depending upon other applications installed on the system, it may be -necessary to enable tcl/tk8.5 with the commands: ----- -sudo update-alternatives --config tclsh ;# select the option for tclsh8.5 -sudo update-alternatives --config wish ;# select the option for wish8.5 ----- - -== Column Selection -By default, the 'tooledit' program will display all possible -tool table parameter columns. Since few machines use all -parameters, the columns displayed can be limited with the -following ini file setting: - -image::images/tooledit-columns.png[align="center"] - -.INI File Syntax ----- -[DISPLAY] -TOOL_EDITOR = tooledit column_name column_name ... ----- - -.Example for Z and DIAM columns ----- -[DISPLAY] -TOOL_EDITOR = tooledit Z DIAM ----- - -== Stand Alone Use -The 'tooledit' program can also be invoked as a standalone -program. For example, if the program is in the user PATH, typing -'tooledit' will show the usage syntax: - -.Stand Alone ----- -tooledit -Usage: -tooledit filename -tooledit [column_1 ... column_n] filename ----- - -To synchronize a standalone 'tooledit' with a running LinuxCNC -application, the filename must resolve to the same [EMCIO]TOOL_TABLE -filename specified in the LinuxCNC ini file. - -When using the program 'tooledit' while LinuxCNC is running, -gcode command execution or other programs may alter tool table -data and the tool table file. File changes are detected by -'tooledit' and a message is displayed: - - Warning: File changed by another process - -The 'tooledit' tool table display can be updated to read the -modified file with the ReRead button. - -he tool table is specified in the ini file with an entry: - - [EMCIO]TOOL_TABLE = tool_table_filename - -The tool table file can be edited with any simple text editor (not -a word processor). - -The axis GUI can optionally use an ini file setting to specify the tool -editor program: - - [DISPLAY]TOOL_EDITOR = path_to_editor_program - -By default, the program named 'tooledit' is used. This editor -supports all tool table parameters, allows addition and deletion -of tool entries, and performs a number of validity checks on -parameter values. - diff --git a/docs/src/gui/tooledit_fr.txt b/docs/src/gui/tooledit_fr.txt deleted file mode 100644 index 857c1ade733..00000000000 --- a/docs/src/gui/tooledit_fr.txt +++ /dev/null @@ -1,113 +0,0 @@ -:lang: fr -:toc: - -= Éditeur graphique de table d'outils - -[[cha:editeur-tooledit]] -(((IGU Tool Edit))) - -== Versions requises pour l'éditeur d'outils -[NOTE] -Les éléments de tooledit modifiables décrits ici sont disponibles -dans les versions 2.5.1 et suivantes. Dans la version 2.5.0, l'interface -graphique ne permet pas ces ajustements. - -image::images/tooledit_fr.png[align="left",width=640] - -Le programme tooledit rafraichi le fichier de la table d'outils avec les -changements édités puis enregistrés avec le bouton _EnregistrerFichier_. -Le bouton _EnregistrerFichier_ met à jour le fichier système mais une action -manuelle dans le menu _Fichier -> Recharger la table d'outils_ est requise pour -mettre à jour la table d'outils en cours d'utilisation par l'instance courante -de LinuxCNC. Avec l'interface graphique Axis, il est toutefois possible, grâce -au bouton _RechargerTable_, de rafraichir le fichier tout en mettant à jour la -table d'outils courante. Ce dernier bouton est disponible uniquement quand la -machine est _En marche_ et inactive. - -== Choix des colonnes -Par défaut, le programme tooledit affiche toutes les colonnes utilisables dans -une table d'outils. Très peu de machines utilisent tous les paramètres, -les colonnes affichées peuvent être limitées aux paramètres utilisés. Pour cela, -passer une ligne de paramètre dans le fichier ini, comme ci-dessous: - -.Syntaxe ----- -[DISPLAY] -TOOL_EDITOR = tooledit nom_colonne nom_colonne ... ----- - -.Exemple pour les colonnes Z et DIAM ----- -[DISPLAY] -TOOL_EDITOR = tooledit Z DIAM ----- - -.Résultat obtenu -image::images/tooledit-columns_fr.png[align="left"] - -== Tri par colonne -Les outils de la table affichée peuvent être triés selon n'importe quelle -colonne, par ordre croissant ou décroissant, en cliquant sur l'entête de la -colonne. Un second clic inverse l'ordre de tri. Le tri par colonne nécessite -une version de TCL/TK >= 8.5 - -image::images/tooledit-sort_fr.png[align="left"] - -Sous Ubuntu Lucid 10.04 tcl/tk8.4 est installé par défaut. Il est possible -d'ajouter tcl/tk8.5 avec la commande suivante: ----- -sudo apt-get install tcl8.5 tk8.5 ----- - -Si le tri ne fonctionne pas il peut être nécessaire d'activer tcl/tk8.5 avec -les commandes: ----- -sudo update-alternatives --config tclsh ;# choisir l'option pour tclsh8.5 -sudo update-alternatives --config wish ;# choisir l'option pour wish8.5 ----- - -== Utilisation autonome -Le programme _tooledit_ peut aussi être invoqué comme un programme autonome. -Par exemple si le programme est dans le PATH de l'utilisateur, taper _tooledit_ -en suivant une des syntaxes suivantes selon le besoin: - -.Tooledit autonome ----- -tooledit -Usage: -tooledit nomfichier -tooledit [colonne_1 ... colonne_n] nomfichier ----- - -Pour synchroniser un tooledit autonome avec l'application LinuxCNC courante, -le nom de fichier doit être le même que celui spécifié par le paramètre -*[EMCIO]TOOL_TABLE* dans le fichier ini. - -Lors de l'utilisation de tooledit pendant la marche de LinuxCNC, -l'exécution d'un g-code ou d'un autre programme peut altérer les données de la -table d'outils. Toute modification est alors détectée par tooledit qui affiche -le message: Attention: Fichier modifié par un autre process - -image::images/tooledit-warning_fr.png[align="left"] - -L'affichage de la table d'outils dans tooledit peut être rafraichi par le -bouton _Relire_, pour relire le fichier modifié. - -Le nom de la table d'outils est spécifié dans le fichier ini par l'entrée: ----- -[EMCIO]TOOL_TABLE = nom_fichier_table_ ----- - -Le fichier de table d'outils est éditable avec n'importe quel simple éditeur de -texte. (et non avec un traitement de texte) - -L'interface graphique Axis peut optionnellement utiliser un paramètre du fichier -ini pour spécifier quel éditeur doit être utilisé: ----- -[DISPLAY]TOOL_EDITOR = path_pour_editeur ----- - -Par défaut, le programme tooledit est utilisé. Cet éditeur supporte tous les -paramètres de table d'outils, permet l'ajout ou l'effacement d'outils et fourni -un certain nombre de contrôles de validité des paramètres introduits. - diff --git a/docs/src/gui/touchy.txt b/docs/src/gui/touchy.txt deleted file mode 100644 index 16223d046f4..00000000000 --- a/docs/src/gui/touchy.txt +++ /dev/null @@ -1,124 +0,0 @@ -= Touchy GUI - -[[cha:touchy-gui]] (((Touchy GUI))) - -Touchy is a user interface for LinuxCNC meant for use on machine control panels, -and therefore does not require keyboard or mouse. - -It is meant to be used with a touch screen, and works in combination -with a wheel/MPG and a few buttons and switches. - -.Touchy - -image::images/touchy.png[] - -== Panel Configuration - -=== HAL connections - -Touchy requires that you create a file named 'touchy.hal' in your -configuration directory (the directory your ini file is in) to -connect its controls. Touchy executes the HAL commands in this file -after it has made its own pins available for connection. - -Touchy has several output pins that are meant to be connected to the -motion controller to control wheel jogging: - - - 'touchy.jog.wheel.increment', - which is to be connected to the 'axis.N.jog-scale' pin of each axis N. - - - 'touchy.jog.wheel.N', which is to be connected to 'axis.N.jog-enable' - for each axis N. - - - In addition to being connected to 'touchy.wheel-counts', the wheel counts - should also be connected to 'axis.N.jog-counts' for - each axis N. If you use HAL component 'ilowpass' to smooth wheel jogging, be - sure to smooth only 'axis.N.jog-counts' and not 'touchy.wheel-counts'. - -==== Required controls - - - Abort button (momentary contact) connected to the HAL pin 'touchy.abort' - - Cycle start button (momentary contact) connected to 'touchy.cycle-start' - - Wheel/MPG, connected to 'touchy.wheel-counts' and motion pins as described above - - Single block (toggle switch) connected to 'touchy.single-block' - -==== Optional controls - - - For continuous jog, one center-off bidirectional momentary toggle - (or two momentary buttons) for each axis, hooked to 'touchy.jog.continuous.x.negative', - 'touchy.jog.continuous.x.positive', etc. - - If a quill up button is wanted (to jog Z to the top of travel at top - speed), a momentary button connected to 'touchy.quill-up'. - -==== Optional panel lamps - - - 'touchy.jog.active' shows when the panel jogging controls are live - - 'touchy.status-indicator' is on when the machine is executing G-code, - and flashes when the machine is executing but is in pause/feedhold. - -=== Recommended for any setup - - - Estop button hardwired in the estop chain - -== Setup - -=== Enabling Touchy - -To use Touchy, in the '[DISPLAY]' section of your ini file change the -display selector line to 'DISPLAY = touchy' - -=== Preferences - -When you start Touchy the first time, check the Preferences tab. -If using a touchscreen, choose the option to hide the pointer for -best results. - -The Status Window is a fixed height, set by the size of a fixed font. -This can be affected by the Gnome DPI, configured in System / -Preferences / Appearance / Fonts / Details. If the bottom of the screen is -cut off, reduce the DPI setting. - -All other font sizes can be changed on the Preferences tab. - -=== Macros - -Touchy can invoke O-word macros using the MDI interface. To configure -this, in the '[TOUCHY]' section of the ini file, add one or more 'MACRO' -lines. Each should be of the format - -'MACRO=increment xinc yinc' - -In this example, increment is the name of the macro, and it accepts two -parameters, named xinc and yinc. - -Now, place the macro in a file named 'increment.ngc', in the -'PROGRAM_PREFIX' directory or any directory in the 'SUBROUTINE_PATH'. - -It should look like: - ----- -O sub -G91 G0 X#1 Y#2 -G90 -O endsub ----- - -Notice the name of the sub matches the file name and macro name exactly, -including case. - -When you invoke the macro by pressing the Macro button on the MDI -tab in Touchy, you can enter values for xinc and yinc. These are -passed to the macro as '#1' and '#2' respectively. Parameters you -leave empty are passed as value 0. - -If there are several different macros, press the Macro button -repeatedly to cycle through them. - -In this simple example, if you enter -1 for xinc and press cycle -start, a rapid 'G0' move will be invoked, moving one unit to -the left. - -This macro capability is useful for edge/hole probing and other setup -tasks, as well as perhaps hole milling or other simple operations -that can be done from the panel without requiring specially-written -gcode programs. diff --git a/docs/src/gui/touchy_es.txt b/docs/src/gui/touchy_es.txt deleted file mode 100644 index f26559576f8..00000000000 --- a/docs/src/gui/touchy_es.txt +++ /dev/null @@ -1,90 +0,0 @@ -= Touchy GUI - -[[cha:touchy-gui]] (((Touchy GUI))) - - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -Touchy is a user interface for LinuxCNC meant for use on machine control panels, -and therefore does not require keyboard or mouse. - -It is meant to be used with a touch screen, and works in combination -with a wheel/MPG and a few buttons and switches. - -.Touchy - -image::images/touchy.png[] - -== Panel Configuration - -=== HAL connections - -Touchy requires that you create a file named 'touchy.hal' in your -configuration directory (the directory your ini file is in) to -connect its controls. Touchy executes the HAL commands in this file -after it has made its own pins available for connection. - -Touchy has several output pins that are meant to be connected to the -motion controller to control wheel jogging: - - - 'touchy.jog.wheel.increment', - which is to be connected to the 'axis.N.jog-scale' pin of each axis N. - - - 'touchy.jog.wheel.N', which is to be connected to 'axis.N.jog-enable' - for each axis N. - - - In addition to being connected to 'touchy.wheel-counts', the wheel counts - should also be connected to 'axis.N.jog-counts' for - each axis N. If you use HAL component 'ilowpass' to smooth wheel jogging, be - sure to smooth only 'axis.N.jog-counts' and not 'touchy.wheel-counts'. - -==== Required controls - - - Abort button (momentary contact) connected to the HAL pin 'touchy.abort' - - Cycle start button (momentary contact) connected to 'touchy.cycle-start' - - Wheel/MPG, connected to 'touchy.wheel-counts' and motion pins as described above - - Single block (toggle switch) connected to 'touchy.single-block' - -==== Optional controls - - - For continuous jog, one center-off bidirectional momentary toggle - (or two momentary buttons) for each axis, hooked to 'touchy.jog.continuous.x.negative', - 'touchy.jog.continuous.x.positive', etc. - - If a quill up button is wanted (to jog Z to the top of travel at top - speed), a momentary button connected to 'touchy.quill-up'. - -==== Optional panel lamps - - - 'touchy.jog.active' shows when the panel jogging controls are live - - 'touchy.status-indicator' is on when the machine is executing G-code, - and flashes when the machine is executing but is in pause/feedhold. - -=== Recommended for any setup - - - Estop button hardwired in the estop chain - -== Setup - -To use Touchy, in the '[DISPLAY]' section of your ini file change the -display selector line to 'DISPLAY = touchy' - -When you start Touchy the first time, check the Preferences tab. -If using a touchscreen, choose the option to hide the pointer for -best results. - -The Status Window is a fixed height, set by the size of a fixed font. -This can be affected by the Gnome DPI. If the bottom of the screen is -cut off return the Gnome DPI to the orignal setting of 96 dots per inch. - - diff --git a/docs/src/gui/touchy_fr.txt b/docs/src/gui/touchy_fr.txt deleted file mode 100644 index 799c4413031..00000000000 --- a/docs/src/gui/touchy_fr.txt +++ /dev/null @@ -1,135 +0,0 @@ -:lang: fr -:toc: - -= L'interface graphique Touchy - -[[cha:touchy-gui]] (((Touchy GUI))) - -Touchy est une interface utilisateur pour LinuxCNC, destinée à être utilisée avec les -panneaux de commande de machines. Il ne nécessite ni clavier, ni souris. - -Il a été conçu pour fonctionner également sur les écrans tactiles, en combinaison -avec une manivelle électronique (MPG) et des boutons et interrupteurs. - -.L'interface tactile Touchy - -image::images/touchy_fr.png[] - -== Panneau de Configuration - -=== Connections avec HAL - -Touchy requiert qu'un fichier nommé _touchy.hal_ soit créé, dans le même -répertoire de configuration que le fichier ini, pour y connecter ses contrôles. -Touchy exécute les commandes de HAL dans ce fichier après qu'il a créé ses propres -pins, lesquelles sont disponibles pour connexion. - -Touchy dispose de plusieurs pins de sortie destinées à être connectées au -contrôleur de mouvement pour gérer les manivelles de jog: - - - touchy.jog.wheel.increment, - qui doit être connecté à la pin _axis.N.jog-scale_ de chacun des N axes. - - - touchy.jog.wheel.N, qui doit être connecté à _axis.N.jog-enable_ pour - chacun des N axes. - - - En plus d'être connecté à _touchy.wheel-counts_, le compteur d'impulsions - de la manivelle doit aussi être connecté à _axis.N.jog-counts_ pour chacun - des N axes. Si le composant de HAL _ilowpass_ est utilisé pour adoucir les - mouvements de jog à la manivelle, il faut l'appliquer uniquement sur - _axis.N.jog-counts_ et non sur _touchy.wheel-counts_. - -==== Contrôles requis - - - Un bouton _Abandon_ (contact momentané) connecté sur la HAL pin _touchy.abort_ - - Un bouton de _Départ cycle_ (contact momentané) connecté à _touchy.cycle-start_ - - Volant/Manivelle/MPG, connecté à _touchy.wheel-counts_ et à la pin de mouvement - comme décrit précédemment. - - Un bouton à bascule simple (contact à deux positions) connecté à -_touchy.single-block_ - -==== Contrôles optionnels - - - Pour le jog continu, un interrupteur à trois positions avec retour au centre - (ou deux boutons momentanés) pour chacun des axes concernés, attaché à - _touchy.jog.continuous.x.negative_ et à _touchy.jog.continuous.x.positive_, - etc. pour les autres axes. - - Si un bouton de genouillère est nécessaire, (pour jogger Z en haut de sa - course en grande vitesse), un bouton à contact momentané sera connecté à -_touchy.quill-up_. - -==== Voyants de panneau optionnels - - - _touchy.jog.active_ indique quand les contrôles de jog du panneau sont actifs. - - _touchy.status-indicator_ est allumé en continu quand la machine exécute un - G-code et clignote quand la machine est en marche mais en pause, ou en - vitesse à zéro. - -=== Recommandé pour toutes les configurations - - - Un bouton d'Arrêt d'Urgence (A/U) câblé physiquement, dans la chaîne d'arrêt - d'urgence. - -== Réglages - -Pour utiliser Touchy, dans la section [DISPLAY] du fichier ini de la machine, -modifier la ligne de cette manière: DISPLAY = touchy - -Quand Touchy démarre pour la première fois, vérifier l'onglet _Préférences_. -Dans le cas d'un écran tactile, choisir de cacher le pointeur dans les options, -pour obtenir les meilleurs résultats. - -La fenêtre d'état est fixée en haut, ajustée par la taille d'une police fixe. -La résolution de Gnome peut affecter cela. Si le bas de l'écran est coupé, aller -dans le gestionnaire de résolution de Gnome pour revenir au réglage d'origine, -à 96 DPI. - -=== Macros - -Touchy peut invoquer les macros avec mots O au travers de l'interface MDI. Pour -configurer cette possibilité, dans la section [TOUCHY] du fichier ini, ajouter -une ou plusieurs lignes avec MACRO. Chacune de ces lignes doit respecter le -format suivant: - ----- -MACRO=increment xinc yinc ----- - -Dans lequel, _increment_ est le nom de la macro, laquelle accepte deux paramètres, -nommés ici _xinc_ et _yinc_. - -Maintenant, placer la macro proprement dite dans un fichier nommé -_increment.ngc_. La variable PROGRAM_PREFIX du fichier ini pourra être -utilisée pour identifier le répertoire contenant ce fichier. Il est également -possible de le déclarer dans la variable SUBROUTINE_PATH. - -Elle pourrait ressembler à cela: - ----- -O sub -G91 G0 X#1 Y#2 -G90 -O endsub ----- - -Noter que le nom du sous-programme, le nom de la macro ainsi que le nom du -fichier .ngc doivent correspondre exactement, y compris les minuscules/ -majuscules des noms. - -Quand la macro est invoquée en pressant le bouton _Macro_ dans l'onglet MDI -de Touchy, il est possible de saisir des valeurs pour xinc et yinc, lesquelles -seront passées à la macro comme étant respectivement *#1* et *#2*. Les -paramètres laissées vides sont passés comme des valeur *0*. - -Si il y a plusieurs macros différentes, presser le bouton _Macro_ -répétitivement pour les faire défiler. - -Dans notre petit exemple, si -1 est entré pour xinc puis que le _Départ cycle_ -est pressé, un *G0*, sera invoqué, provoquant un déplacement en vitesse rapide, -vers la gauche, de une unité machine. - -Cette capacité d'utilisation des macros est très utile pour le palpage de -contours ou d'orifices ainsi que pour d'autres opérations simples -pré-configurées, de fraisage ou de perçage, qui pourront être réalisées depuis -le panneau de Touchy sans avoir, pour cela, à écrire de programme G-code. - diff --git a/docs/src/hal/.gitignore b/docs/src/hal/.gitignore deleted file mode 100644 index d9ca3c088aa..00000000000 --- a/docs/src/hal/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -comp -comp.tex -drivers -drivers.tex -general_ref -general_ref.tex -halshow -halshow.tex -intro -intro.tex -rtcomps -rtcomps.tex -tools -tools.tex -tutorial -tutorial.tex -vcp.tex diff --git a/docs/src/hal/basic_hal.txt b/docs/src/hal/basic_hal.txt deleted file mode 100644 index c141553b5af..00000000000 --- a/docs/src/hal/basic_hal.txt +++ /dev/null @@ -1,524 +0,0 @@ -= Basic HAL Tutorial - -[[cha:basic-hal-tutorial]] (((Basic HAL Tutorial))) - -== HAL Commands [[sec:Hal-Commands]] - -More detailed information can be found in the man page for halcmd 'man -halcmd' in a terminal window. To see the HAL configuration and check -the status of pins and parameters use the HAL Configuration window on -the Machine menu in AXIS. To watch a pin status open the Watch tab and -click on each pin you wish to watch and it will be added to the watch -window. - -.HAL Configuration Window[[cap:HAL-Configuration-Window]] - -image::images/HAL_Configuration.png[align="center"] - -=== loadrt [[sub:loadrt]] (((loadrt))) - -The command 'loadrt' loads a real time HAL component. Real time -component functions need to be added to a thread to be updated at the -rate of the thread. You cannot load a user space component into the -real time space. - -The syntax and an example: - ----- -loadrt - -loadrt mux4 count=1 ----- - - -=== addf [[sub:addf]] (((addf))) - -The command 'addf' adds a real time component function to a thread. -You have to add a function from a HAL real time component to a thread -to get the function to update at the rate of the thread. - -If you used the Stepper Config Wizard to generate your config you will -have two threads. - - - base-thread (the high-speed thread): this thread handles items that - need a fast response, like making step pulses, and reading and writing - the parallel port. - - servo-thread (the slow-speed thread): this thread handles items that - can tolerate a slower response, like the motion controller, - ClassicLadder, and the motion command handler. - -The syntax and an example: - ----- -addf - -addf mux4 servo-thread ----- - -=== loadusr [[sub:loadusr]] (((loadusr))) - -The command 'loadusr' loads a user space HAL component. User space -programs are their own separate processes, which optionally talk to -other HAL components via pins and parameters. You cannot load real time -components into user space. - -Flags may be one or more of the following: - -[horizontal] --W:: to wait for the component to become ready. The component is assumed to - have the same name as the first argument of the command. - --Wn :: to wait for the component, which will have the given . - This only applies if the component has a name option. - --w:: to wait for the program to exit - --i:: to ignore the program return value (with -w) - --n:: name a component when it is a valid option for that component. - -The syntax and examples: - ----- -loadusr - -loadusr halui - -loadusr -Wn spindle gs2_vfd -n spindle ----- - -In English it means 'loadusr wait for name spindle component gs2_vfd name spindle'. - -=== net [[sub:net]] (((net))) - -The command 'net' creates a 'connection' between a signal and and one -or more pins. If the signal does not exist net creates the new signal. -This replaces the need to use the command newsig. The optional direction -indicators '<=', '=>' and '<=>' are only to make it easier for humans to follow -the logic and are not used by the net command. - -.Syntax and Example: ----- -net signal-name (|) - -net home-x axis.0.home-sw-in <= parport.0.pin-11-in ----- - -In the above example 'home-x' is the signal name, 'axis.0.home-sw-in' is a -'Direction IN' pin, '<=' is the optional direction indicator, and -'parport.0.pin-11-in' is a 'Direction OUT' pin. This may seem confusing but -the in and out labels for a parallel port pin indicates the physical way the -pin works not how it is handled in HAL. - - -A pin can be connected to a signal if it obeys the following rules: - -* An IN pin can always be connected to a signal -* An IO pin can be connected unless there's an OUT pin on the signal -* An OUT pin can be connected only if there are no other OUT or IO pins - on the signal - -The same can be used in multiple net commands to connect -additional pins, as long as the rules above are obeyed. - -.Signal Direction[[cap:Signal-Direction]] - -image::images/signal-direction.png[align="center"] - -This example shows the signal xStep with the source being -stepgen.0.out and with two readers, parport.0.pin-02-out and -parport.0.pin-08-out. Basically the value of stepgen.0.out is sent to -the signal xStep and that value is then sent to parport.0.pin-02-out -and parport.0.pin-08-out. - ----- -# signal source destination destination -net xStep stepgen.0.out => parport.0.pin-02-out parport.0.pin-08-out ----- - -Since the signal xStep contains the value of stepgen.0.out (the -source) you can use the same signal again to send the value to another -reader. To do this just use the signal with the readers on another -line. - ----- -net xStep => parport.0.pin-02-out ----- - -.I/O pins -An I/O pin like encoder.N.index-enable can be read or set as allowed by the component. - - -=== setp [[sub:setp]] (((setp))) - -The command 'setp' sets the value of a pin or parameter. The valid -values will depend on the type of the pin or parameter. It is an error -if the data types do not match. - -Some components have parameters that need to be set before use. -Parameters can be set before use or while running as needed. You cannot -use setp on a pin that is connected to a signal. - -The syntax and an example: - ----- -setp - -setp parport.0.pin-08-out TRUE ----- - -=== sets [[sub:sets]] (((sets))) - -The command 'sets' sets the value of a signal. - -The syntax and an example: - ----- -sets - -net mysignal and2.0.in0 pyvcp.my-led - -sets mysignal 1 ----- - -It is an error if: - -* The signal-name does not exist -* If the signal already has a writer -* If value is not the correct type for the signal - -=== unlinkp - -The command 'unlinkp' unlinks a pin from the connected signal. If no -signal was connected to the pin prior running the command, nothing -happens. The 'unlinkp' command is useful for trouble shooting. - -The syntax and an example: - ----- -unlinkp - -unlinkp parport.0.pin-02-out ----- - -=== Obsolete Commands - -The following commands are depreciated and may be removed from future -versions. Any new configuration should use the <> command. -These commands are included so older configurations will still work. - -==== linksp - -The command 'linksp' creates a 'connection' between a signal and one -pin. - -The syntax and an example: - ----- -linksp -linksp X-step parport.0.pin-02-out ----- - -The 'linksp' command has been superseded by the 'net' command. - -==== linkps - -The command 'linkps' creates a 'connection' between one pin and one -signal. It is the same as linksp but the arguments are reversed. - -The syntax and an example: - ----- -linkps - -linkps parport.0.pin-02-out X-Step ----- - -The 'linkps' command has been superseded by the 'net' command. - -==== newsig - -the command 'newsig' creates a new HAL signal by the name -and the data type of . Type must be 'bit', 's32', 'u32' or -'float'. Error if all ready exists. - -The syntax and an example: - ----- -newsig - -newsig Xstep bit ----- - -More information can be found in the HAL manual or the man pages for -halrun. - - -== HAL Data [[sec:Hal-Data]] - -=== Bit (((Bit))) - -A bit value is an on or off. - - - bit values = true or 1 and false or 0 (True, TRUE, true are all valid) - -=== Float (((Float))) - -A 'float' is a floating point number. In other words the decimal point -can move as needed. - - - float values = a 32 bit floating point value, with approximately 24 - bits of resolution and over 200 bits of dynamic range. - -For more information on floating point numbers see: - -http://en.wikipedia.org/wiki/Floating_point[http://en.wikipedia.org/wiki/Floating_point] - -=== s32 (((s32))) - -An 's32' number is a whole number that can have a negative or positive -value. - - - s32 values = integer numbers -2147483648 to 2147483647 - -=== u32 (((u32))) - -A 'u32' number is a whole number that is positive only. - - - u32 values = integer numbers 0 to 4294967295 - -== HAL Files - -If you used the Stepper Config Wizard to generate your config you will -have up to three HAL files in your config directory. - - - my-mill.hal (if your config is named 'my-mill') This file is loaded - first and should not be changed if you used the Stepper Config Wizard. - - custom.hal This file is loaded next and before the GUI loads. This is - where you put your custom HAL commands that you want loaded before the - GUI is loaded. - - custom_postgui.hal This file is loaded after the GUI loads. This is - where you put your custom HAL commands that you want loaded after the - GUI is loaded. Any HAL commands that use pyVCP widgets need to be - placed here. - -== HAL Components - -Two parameters are automatically added to each HAL component when it -is created. These parameters allow you to scope the execution time of a -component. - -+.time+(((time))) - -+.tmax+(((tmax))) - - -Time is the number of CPU cycles it took to execute the function. - -Tmax is the maximum number of CPU cycles it took to execute the -function. Tmax is a read/write parameter so the user can set it to 0 to -get rid of the first time initialization on the function's execution -time. - -== Logic Components - -HAL contains several real time logic components. Logic components -follow a 'Truth Table' that states what the output is for any given -input. Typically these are bit manipulators and follow electrical logic -gate truth tables. - -=== and2 - -The 'and2' component is a two input 'and' gate. The truth table below -shows the output based on each combination of input. - -Syntax - ----- -and2 [count=N] | [names=name1[,name2...]] ----- - -Functions - -and2.n - -Pins - - and2.N.in0 (bit, in) - and2.N.in1 (bit, in) - and2.N.out (bit, out) - -Truth Table - -[width="90%", options="header"] -|======================================== -|in0 | in1 | out -|False | False | False -|True | False | False -|False | True | False -|True | True | True -|======================================== - -=== not - -The 'not' component is a bit inverter. - -Syntax - ----- -not [count=n] | [names=name1[,name2...]] ----- - -Functions - - not.all - not.n - -Pins - - not.n.in (bit, in) - not.n.out (bit, out) - -Truth Table - -[width="90%", options="header"] -|======================================== -|in | out -|True | False -|False | True -|======================================== - -=== or2 - -The 'or2' component is a two input OR gate. - -Syntax - ----- -or2[count=n] | [names=name1[,name2...]] ----- - -Functions - -+or2.n+ - -Pins - - or2.n.in0 (bit, in) - or2.n.in1 (bit, in) - or2.n.out (bit, out) - -Truth Table - -[width="90%", options="header"] -|======================================== -|in0 | in1 | out -|True | False | True -|True | True | True -|False | True | True -|False | False | False -|======================================== - -=== xor2 - -The 'xor2' component is a two input XOR (exclusive OR)gate. - -Syntax - ----- -xor2[count=n] | [names=name1[,name2...]] ----- - -Functions - -+xor2.n+ - -Pins - - xor2.n.in0 (bit, in) - xor2.n.in1 (bit, in) - xor2.n.out (bit, out) - -Truth Table - -[width="90%", options="header"] -|======================================== -|in0 | in1 | out -|True | False | True -|True | True | False -|False | True | True -|False | False | False -|======================================== - -=== Logic Examples - -An 'and2' example connecting two inputs to one output. - ----- -loadrt and2 count=1 - -addf and2.0 servo-thread - -net my-sigin1 and2.0.in0 <= parport.0.pin-11-in - -net my-sigin2 and2.0.in1 <= parport.0.pin-12-in - -net both-on parport.0.pin-14-out <= and2.0.out ----- - -In the above example one copy of and2 is loaded into real time space -and added to the servo thread. Next pin 11 of the parallel port is -connected to the in0 bit of the and gate. Next pin 12 is connected to -the in1 bit of the and gate. Last we connect the and2 out bit to the -parallel port pin 14. So following the truth table for and2 if pin 11 -and pin 12 are on then the output pin 14 will be on. - -== Conversion Components - -=== weighted_sum - -The weighted_sum converts a group of bits to an integer. The -conversion is the sum of the 'weights' of the bits that are on plus any -offset. The weight of the m-th bit is 2^m. This is similar to a binary -coded decimal but with more options. The 'hold' bit stops processing the -input changes so the 'sum' will not change. - -The following syntax is used to load the weighted_sum component. - ----- -loadrt weighted_sum wsum_sizes=size[,size,...] ----- - -Creates weighted sum groups each with the given number of input bits -(size). - -To update the weighted_sum you need to attach process_wsums to a thread. - ----- -addf process_wsums servo-thread ----- - -This updates the weighted_sum component. - -In the following example clipped from the HAL Configuration window in -Axis the bits '0' and '2' are true and there is no offset. The 'weight' -of 0 is 1 and the 'weight' of 2 is 4 so the sum is 5. - -.weighted_sum ------------------------------------------------------------ -Component Pins: -Owner Type Dir Value Name - 10 bit In TRUE wsum.0.bit.0.in - 10 s32 I/O 1 wsum.0.bit.0.weight - 10 bit In FALSE wsum.0.bit.1.in - 10 s32 I/O 2 wsum.0.bit.1.weight - 10 bit In TRUE wsum.0.bit.2.in - 10 s32 I/O 4 wsum.0.bit.2.weight - 10 bit In FALSE wsum.0.bit.3.in - 10 s32 I/O 8 wsum.0.bit.3.weight - 10 bit In FALSE wsum.0.hold - 10 s32 I/O 0 wsum.0.offset - 10 s32 Out 5 wsum.0.sum ------------------------------------------------------------ - - diff --git a/docs/src/hal/basic_hal_es.txt b/docs/src/hal/basic_hal_es.txt deleted file mode 100644 index 4a003a62a45..00000000000 --- a/docs/src/hal/basic_hal_es.txt +++ /dev/null @@ -1,507 +0,0 @@ -= Basic HAL Tutorial - -[[cha:basic-hal-tutorial]] (((Basic HAL Tutorial))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== HAL Commands [[sec:Hal-Commands]] - -More detailed information can be found in the man page for halcmd 'man -halcmd' in a terminal window. To see the HAL configuration and check -the status of pins and parameters use the HAL Configuration window on -the Machine menu in AXIS. To watch a pin status open the Watch tab and -click on each pin you wish to watch and it will be added to the watch -window. - -.HAL Configuration Window[[cap:HAL-Configuration-Window]] - -image::images/HAL_Configuration.png[align="center"] - -=== loadrt [[sub:loadrt]] (((loadrt))) - -The command 'loadrt' loads a real time HAL component. Real time -component functions need to be added to a thread to be updated at the -rate of the thread. You cannot load a user space component into the -real time space. - -The syntax and an example: - ----- -loadrt - -loadrt mux4 count=1 ----- - - -=== addf [[sub:addf]] (((addf))) - -The command 'addf' adds a real time component function to a thread. -You have to add a function from a HAL real time component to a thread -to get the function to update at the rate of the thread. - -If you used the Stepper Config Wizard to generate your config you will -have two threads. - - - base-thread (the high-speed thread): this thread handles items that - need a fast response, like making step pulses, and reading and writing - the parallel port. - - servo-thread (the slow-speed thread): this thread handles items that - can tolerate a slower response, like the motion controller, - ClassicLadder, and the motion command handler. - -The syntax and an example: - ----- -addf - -addf mux4 servo-thread ----- - -=== loadusr [[sub:loadusr]] (((loadusr))) - -The command 'loadusr' loads a user space HAL component. User space -programs are their own separate processes, which optionally talk to -other HAL components via pins and parameters. You cannot load real time -components into user space. - -Flags may be one or more of the following: - -[horizontal] --W:: to wait for the component to become ready. The component is assumed to - have the same name as the first argument of the command. - --Wn :: to wait for the component, which will have the given . - This only applies if the component has a name option. - --w:: to wait for the program to exit - --i:: to ignore the program return value (with -w) - --n:: name a component when it is a valid option for that component. - -The syntax and examples: - ----- -loadusr - -loadusr halui - -loadusr -Wn spindle gs2_vfd -n spindle ----- - -In English it means 'loadusr wait for name spindle component gs2_vfd name spindle'. - -=== net [[sub:net]] (((net))) - -The command 'net' creates a 'connection' between a signal and and one -or more pins. If the signal does not exist net creates the new signal. -This replaces the need to use the command newsig. The optional direction -indicators '<=' and '=>' are only to make it easier for humans to follow -the logic and are not used by the net command. - -The syntax and an example: - ----- -net - -net both-home-y <= parport.0.pin-11-in ----- - -Each signal can only have one source (a HAL 'Dir out' pin) and as many -readers (a HAL 'Dir in' pin) as you like. In the Dir column of the HAL -Configuration window you can see which pins are 'in' and which are -'out'. The following figure shows the 'direction' of the signal from -the source, through the signal, and then out to the reader(s). - -.Signal Direction[[cap:Signal-Direction]] - -image::images/signal-direction.png[align="center"] - -This example shows the signal xStep with the source being -stepgen.0.out and with two readers, parport.0.pin-02-out and -parport.0.pin-08-out. Basically the value of stepgen.0.out is sent to -the signal xStep and that value is then sent to parport.0.pin-02-out -and parport.0.pin-08-out. - ----- - signal source destination destination -net xStep stepgen.0.out => parport.0.pin-02-out parport.0.pin-08-out ----- - -Since the signal xStep contains the value of stepgen.0.out (the -source) you can use the same signal again to send the value to another -reader. To do this just use the signal with the readers on another -line. - ----- -net xStep => parport.0.pin-02-out ----- - -.I/O pins -An I/O pin like encoder.N.index-enable can be read or set as allowed by the component. - - -=== setp [[sub:setp]] (((setp))) - -The command 'setp' sets the value of a pin or parameter. The valid -values will depend on the type of the pin or parameter. It is an error -if the data types do not match. - -Some components have parameters that need to be set before use. -Parameters can be set before use or while running as needed. You cannot -use setp on a pin that is connected to a signal. - -The syntax and an example: - ----- -setp - -setp parport.0.pin-08-out TRUE ----- - -=== unlinkp - -The command 'unlinkp' unlinks a pin from the connected signal. If no -signal was connected to the pin prior running the command, nothing -happens. The 'unlinkp' command is useful for trouble shooting. - -The syntax and an example: - ----- -unlinkp - -unlinkp parport.0.pin-02-out ----- - -=== Obsolete Commands - -The following commands are depreciated and may be removed from future -versions. Any new configuration should use the <>> command. -These commands are included so older configurations will still work. - -==== linksp - -The command 'linksp' creates a 'connection' between a signal and one -pin. - -The syntax and an example: - ----- -linksp -linksp X-step parport.0.pin-02-out ----- - -The 'linksp' command has been superseded by the 'net' command. - -==== linkps - -The command 'linkps' creates a 'connection' between one pin and one -signal. It is the same as linksp but the arguments are reversed. - -The syntax and an example: - ----- -linkps - -linkps parport.0.pin-02-out X-Step ----- - -The 'linkps' command has been superseded by the 'net' command. - -==== newsig - -the command 'newsig' creates a new HAL signal by the name -and the data type of . Type must be 'bit', 's32', 'u32' or -'float'. Error if all ready exists. - -The syntax and an example: - ----- -newsig - -newsig Xstep bit ----- - -More information can be found in the HAL manual or the man pages for -halrun. - - -== HAL Data [[sec:Hal-Data]] - -=== Bit (((Bit))) - -A bit value is an on or off. - - - bit values = true or 1 and false or 0 (True, TRUE, true are all valid) - -=== Float (((Float))) - -A 'float' is a floating point number. In other words the decimal point -can move as needed. - - - float values = a 32 bit floating point value, with approximately 24 - bits of resolution and over 200 bits of dynamic range. - -For more information on floating point numbers see: - -http://en.wikipedia.org/wiki/Floating_point[http://en.wikipedia.org/wiki/Floating_point] - -=== s32 (((s32))) - -An 's32' number is a whole number that can have a negative or positive -value. - - - s32 values = integer numbers -2147483648 to 2147483647 - -=== u32 (((u32))) - -A 'u32' number is a whole number that is positive only. - - - u32 values = integer numbers 0 to 4294967295 - -== HAL Files - -If you used the Stepper Config Wizard to generate your config you will -have up to three HAL files in your config directory. - - - my-mill.hal (if your config is named 'my-mill') This file is loaded - first and should not be changed if you used the Stepper Config Wizard. - - custom.hal This file is loaded next and before the GUI loads. This is - where you put your custom HAL commands that you want loaded before the - GUI is loaded. - - custom_postgui.hal This file is loaded after the GUI loads. This is - where you put your custom HAL commands that you want loaded after the - GUI is loaded. Any HAL commands that use pyVCP widgets need to be - placed here. - -== HAL Components - -Two parameters are automatically added to each HAL component when it -is created. These parameters allow you to scope the execution time of a -component. - -+.time+(((time))) - -+.tmax+(((tmax))) - - -Time is the number of CPU cycles it took to execute the function. - -Tmax is the maximum number of CPU cycles it took to execute the -function. Tmax is a read/write parameter so the user can set it to 0 to -get rid of the first time initialization on the function's execution -time. - -== Logic Components - -HAL contains several real time logic components. Logic components -follow a 'Truth Table' that states what the output is for any given -input. Typically these are bit manipulators and follow electrical logic -gate truth tables. - -=== and2 - -The 'and2' component is a two input 'and' gate. The truth table below -shows the output based on each combination of input. - -Syntax - ----- -and2 [count=N] | [names=name1[,name2...]] ----- - -Functions - -and2.n - -Pins - - and2.N.in0 (bit, in) - and2.N.in1 (bit, in) - and2.N.out (bit, out) - -Truth Table - -[width="90%", options="header"] -|======================================== -|in0 | in1 | out -|False | False | False -|True | False | False -|False | True | False -|True | True | True -|======================================== - -=== not - -The 'not' component is a bit inverter. - -Syntax - ----- -not [count=n] | [names=name1[,name2...]] ----- - -Functions - - not.all - not.n - -Pins - - not.n.in (bit, in) - not.n.out (bit, out) - -Truth Table - -[width="90%", options="header"] -|======================================== -|in | out -|True | False -|False | True -|======================================== - -=== or2 - -The 'or2' component is a two input OR gate. - -Syntax - ----- -or2[count=n] | [names=name1[,name2...]] ----- - -Functions - -+or2.n+ - -Pins - - or2.n.in0 (bit, in) - or2.n.in1 (bit, in) - or2.n.out (bit, out) - -Truth Table - -[width="90%", options="header"] -|======================================== -|in0 | in1 | out -|True | False | True -|True | True | True -|False | True | True -|False | False | False -|======================================== - -=== xor2 - -The 'xor2' component is a two input XOR (exclusive OR)gate. - -Syntax - ----- -xor2[count=n] | [names=name1[,name2...]] ----- - -Functions - -+xor2.n+ - -Pins - - xor2.n.in0 (bit, in) - xor2.n.in1 (bit, in) - xor2.n.out (bit, out) - -Truth Table - -[width="90%", options="header"] -|======================================== -|in0 | in1 | out -|True | False | True -|True | True | False -|False | True | True -|False | False | False -|======================================== - -=== Logic Examples - -An 'and2' example connecting two inputs to one output. - ----- -loadrt and2 count=1 - -addf and2.0 servo-thread - -net my-sigin1 and2.0.in0 <= parport.0.pin-11-in - -net my-sigin2 and2.0.in1 <= parport.0.pin-12-in - -net both-on parport.0.pin-14-out <= and2.0.out ----- - -In the above example one copy of and2 is loaded into real time space -and added to the servo thread. Next pin 11 of the parallel port is -connected to the in0 bit of the and gate. Next pin 12 is connected to -the in1 bit of the and gate. Last we connect the and2 out bit to the -parallel port pin 14. So following the truth table for and2 if pin 11 -and pin 12 are on then the output pin 14 will be on. - -== Conversion Components - -=== weighted_sum - -The weighted_sum converts a group of bits to an integer. The -conversion is the sum of the 'weights' of the bits that are on plus any -offset. The weight of the m-th bit is 2^m. This is similar to a binary -coded decimal but with more options. The 'hold' bit stops processing the -input changes so the 'sum' will not change. - -The following syntax is used to load the weighted_sum component. - ----- -loadrt weighted_sum wsum_sizes=size[,size,...] ----- - -Creates weighted sum groups each with the given number of input bits -(size). - -To update the weighted_sum you need to attach process_wsums to a thread. - ----- -addf process_wsums servo-thread ----- - -This updates the weighted_sum component. - -In the following example clipped from the HAL Configuration window in -Axis the bits '0' and '2' are true and there is no offset. The 'weight' -of 0 is 1 and the 'weight' of 2 is 4 so the sum is 5. - -.weighted_sum ------------------------------------------------------------ -Component Pins: -Owner Type Dir Value Name - 10 bit In TRUE wsum.0.bit.0.in - 10 s32 I/O 1 wsum.0.bit.0.weight - 10 bit In FALSE wsum.0.bit.1.in - 10 s32 I/O 2 wsum.0.bit.1.weight - 10 bit In TRUE wsum.0.bit.2.in - 10 s32 I/O 4 wsum.0.bit.2.weight - 10 bit In FALSE wsum.0.bit.3.in - 10 s32 I/O 8 wsum.0.bit.3.weight - 10 bit In FALSE wsum.0.hold - 10 s32 I/O 0 wsum.0.offset - 10 s32 Out 5 wsum.0.sum ------------------------------------------------------------ - - diff --git a/docs/src/hal/basic_hal_fr.txt b/docs/src/hal/basic_hal_fr.txt deleted file mode 100644 index 4af97d27c3e..00000000000 --- a/docs/src/hal/basic_hal_fr.txt +++ /dev/null @@ -1,509 +0,0 @@ -:lang: fr -:toc: - -= Commandes et composants de base - -[[sec:Commandes-de-HAL]] (((Commandes de HAL))) - -== Commandes de Hal - -Des informations plus détaillées peuvent être trouvées dans la man -page en tapant _man halcmd_ dans une console. Pour voir la -configuration de HAL ainsi que le statut de ses pins et paramètres -utiliser la fenêtre HAL Configuration dans le menu _Machine_ d'AXIS. -Pour visualiser le statut des pins, ouvrir l'onglet _Watch_ puis -cliquer dans l'arborescence sur les pins qui doivent être visualisées -dans la fenêtre watch. - -.Fenêtre de configuration de HAL - -image::images/HAL_Configuration.png[] - -=== loadrt - -La commande _loadrt_ charge un composant temps réel de HAL. Les -composants temps réel doivent être ajoutés au thread temps réel pour -être fonctionnels. Il n'est pas possible de charger un composant de -l'espace utilisateur dans l'espace temps réel. - -Syntaxe et exemple: - -+loadrt + - ----- -loadrt mux4 count=1 ----- - -=== addf - -La commande _addf_ ajoute une fonction à un thread temps réel. Si -l'assistant StepConf a été utilisé pour créer la configuration, deux -threads ont été créés. - - - base-thread (le thread haute vitesse) ce thread prends en main les - items nécessitant une réponse très rapide comme la génération - d'impulsions, la lecture et l'écriture sur le port parallèle. - - servo-thread (le thread basse vitesse) ce thread prends en main les - items n'étant pas influencés par la vitesse comme le contrôleur de - mouvement, l'API Classic Ladder et les commandes manuelles. - -Syntaxe et exemple: - -+addf + - ----- -addf mux4 servo-thread ----- - -=== loadusr[[sec:loadusr]] - -La commande _loadusr_ charge un composant de HAL de l'espace -utilisateur. Les programmes de l'espace utilisateur ont leur propre -process séparé qui optionellement communique avec les autres composants -de HAL via leurs pins et paramètres. Il n'est pas possible de charger -un composant temps réel dans l'espace utilisateur. - -Les drapeaux peuvent être un ou plusieurs parmis les suivants: - --W :: - pour attendre que le composant soit prêt. Le composant est supposé - avoir le même nom que le premier argument de la commande. - --Wn :: - pour attendre un composant, qui porte le nom donné sous la forme . - --w :: - pour attendre la fin du programme - --i :: - pour ignorer la valeur retournée par le programme (avec -w) - -Syntaxe et exemple: - -+loadusr + - ----- -loadusr halui -loadusr -Wn spindle gs2_vfd -n spindle ----- - -En anglais ça donne _loadusr wait for name spindle component gs2_vfd name spindle_. -Le -n spindle est une partie du composant gs2_vfd et non de la commande loadusr. - -=== net[[sub:net]] - -La commande _net_ crée une _connexion_ entre un signal et une ou plusieurs pins. -Si le signal n'existe pas, net le crée. Les indicateurs de direction _<=_ et _=>_ -sont seulement là pour aider à la lecture de la logique, ils n'ont pas d'autre -usage. - -Syntaxe et exemple: - -+net signal-name (|)+ - ----- -net home-x axis.0.home-sw-in <= parport.0.pin-11-in ----- - -Dans l'exemple ci-dessus, _home-x_ est le nom du signal, _axis.0.home-sw-in_ est -une pin de Direction IN, _<=_ est un indicateur de direction optionnel et -_parport.0.pin-11-in_ est une pin de Direction OUT. Cela peut paraître déroutant -mais les labels in et out pour les broches d'un port parallèle indiquent la voie -physique dans laquelle travaille la broche mais non comment elle est traitée dans -HAL. - -Une pin peut être connectée à un signal si elle obéit aux règles suivantes: - -* Une pin IN peut toujours être connectée à un signal. -* Une pin IO peut être connectée à moins qu'une pin OUT soit présente sur le signal. -* Une pin OUT peut être connectée seulement si il n'y a pas d'autre pin OUT ou IO - sur le signal. - -Le même peut être utilisé dans de multiples commandes net pour -connecter des pins additionnelles, tant que les règles précédentes sont observées. - -.Direction du signal[[cap:Signal-Direction]] - -image::images/signal-direction.png[align="left"] - -Voici un exemple qui montre le signal xStep avec la source qui est stepgen.0.out -et avec deux lecteurs, parport.0.pin-02-out etparport.0.pin-08-out. Simplement -la valeur de stepgen.0.out est envoyée au signal xStep et cette valeur est alors -envoyée sur parport.0.pin-02-out. ----- -# signal source destination -net xStep stepgen.0out => parport.0.pin-02-out ----- - -Puisque le signal xStep contient la valeur de stepgen.0.out (la source) il est -possible de ré-utiliser le même signal pour envoyer la valeur à d'autres lecteurs, -utiliser simplement le signal avec les autres lecteurs sur de nouvelles lignes: ----- -# signal destination2 -net xStep => parport.0.pin-08-out ----- - -Ce qui peut également s'écrire en une seule ligne: ----- -# signal source destination1 destination2 -net xStep stepgen.0.out => parport.0.pin-02-out parport.0.pin-08-out ----- - - -.Pins I/O -Les pins appelées I/O pins comme _index-enable_, ne suivent pas cette règle. - -=== setp[[sub:setp]] -(((setp))) - -La commande _setp_ ajuste la valeur d'une pin ou d'un paramètre. Les -valeurs valides dépendront du type de la pin ou du paramètre. - -C'est une erreur si les types de donnée ne correspondent pas. - -Certains composants ont des paramètres qui doivent être positionnés avant -utilisation. Il n'est pas possible d'utiliser _setp_ sur une pin connectée à -un signal. - -Syntaxe et exemple: - -+setp + - ----- -setp parport.0.pin-08-out TRUE ----- - -=== sets [[sub:sets]] (((sets))) - -La commande _sets_ positionne la valeur d'un signal. - -Syntaxe et exemple: - ----- -sets - -net mysignal and2.0.in0 pyvcp.my-led - -sets mysignal 1 ----- - -C'est une erreur si: - -* Le nom de signal n'existe pas -* Le signal à déjà été écrit -* La valeur n'est pas du type correct pour le signal - -=== unlinkp - -La commande _unlinkp_ déconnecte la pin du signal auquel elle est connectée. -Si aucun signal n'a été connecté à la pin avant de lancer cette commande, -rien ne se passe. - -Syntaxe et exemple: - -+unlinkp + - ----- -unlinkp parport.0.pin-02-out ----- - -=== Commandes obsolètes - -Les commandes suivantes sont dépréciées et seront retirées dans les futures -versions. Toute nouvelle configuration doit utiliser la commande <>. - -=== linksp - -La commande _linksp_ a été incluse dans la commande _net_. - -La commande _linksp_ crée une _connexion_ entre un signal et une pin. - -Syntaxe et exemple: - -+linksp + -+linksp X-step parport.0.pin-02-out+ - -=== linkps - -La commande _linkps_ a été incluse dans la commande _net_. - -La commande _linksp_ crée une _connexion_ entre une pin et un signal. C'est la -même chose que linksp mais les arguments sont inversés. - -Syntaxe et exemple: - -+linkps + - ----- -linkps parport.0.pin-02-out X-Step ----- - -=== newsig - -the command _newsig_ creates a new HAL signal by the name -and the data type of . Type must be _bit_, _s32_, _u32_ or -_float_. Error if already exists. - -Syntaxe et exemple: - -+newsig + - -+newsig Xstep bit+ - -D'autres informations peuvent être trouvées dans le manuel de HAL ou -la man page de _halrun_. - -== HAL Data[[sec:HAL-Data]] -footnote:[NDT la description des données de HAL reste en Anglais, elle sont -suffisamment simples pour être comprises.] - -=== Bit (((Bit))) - -A bit value is an on or off. - - - bit values = true or 1 and false or 0 (True, TRUE, true are all valid) - -=== Float (((Float))) - -A _float_ is a floating point number. In other words the decimal point -can move as needed. - - - float values = a 32 bit floating point value, with approximately 24 - bits of resolution and over 200 bits of dynamic range. - -For more information on floating point numbers see: - -http://fr.wikipedia.org/wiki/Nombre_flottant[http://fr.wikipedia.org/wiki/Nombre_flottant] - -=== s32 (((s32))) - -An _s32_ number is a whole number that can have a negative or positive -value. - - - s32 values = integer numbers -2147483648 to 2147483647 - -=== u32 (((u32))) - -A _u32_ number is a whole number that is positive only. - - - u32 values = integer numbers 0 to 4294967295 - -== Fichiers Hal - -Si l'assistant StepConf a été utilisé pour générer la configuration -trois fichiers HAL ont dû être créés dans le répertoire de la -configuration. - - - ma-fraiseuse.hal (si ne nom de la config est "ma-fraiseuse") Ce - fichier est chargé en premier, il ne doit pas être modifié sous peine - de ne plus pouvoir l'utiliser avec l'assistant StepConf. - - custom.hal Ce fichier est le deuxième à être chargé et il l'est avant - l'interface utilisateur graphique (GUI). C'est dans ce fichier que ce - trouvent les commandes personnalisées de l'utilisateur devant être - chargées avant la GUI. - - custom_postgui.hal Ce fichier est chargé après la GUI. C'est dans ce - fichier que se trouvent les commandes personnalisées de l'utilisateur - devant être chargées après la GUI. Toutes les commandes relatives aux - widgets de pyVCP doivent être placées ici. - -== Composants de HAL - -Deux paramètres sont automatiquement ajoutés à chaque composants HAL quand il -est créé. Ces paramètres permettent d'encadrer le temps d'exécution d'un composant. - -+.time+(((time))) - -+.tmax+(((tmax))) - - -_.time_ est le nombre de cycles du CPU qu'il a fallu pour exécuter la fonction. - -_.tmax_ est le nombre maximum de cycles du CPU qu'il a fallu pour exécuter la fonction. -_.tmax_ est un paramètre en lecture/écriture, de sorte que l'utilisateur peut le -mettre à 0 pour se débarrasser du premier temps d'initialisation de la fonction. - -== Composants de logiques combinatoire - -Hal contient plusieurs composants logiques temps réel. Les composants -logiques suivent une tables de vérité montrant les états logiques des -sorties en fonction de l'état des entrées. Typiquement, la manipulation -des bits d'entrée détermine l'état électrique des sorties selon la -table de vérité des portes. - -=== and2 - -Le composant _and2_ est une porte _and_ à deux entrées. Sa table de -vérité montre la sortie pour chaque combinaison des entrées. - -Syntaxe - -+and2 [count=N] or [names=name1[,name2...]]+ - -Fonctions - -+and2.n+ - -Pins - - and2.N.in0 (bit, in) - and2.N.in1 (bit, in) - and2.N.out (bit, out) - -Table de vérité - -[width="90%", options="header"] -|======================================== -|in0 | in1 | out -|False | False | False -|True | False | False -|False | True | False -|True | True | True -|======================================== - -=== not - -Le composant _not_ est un simple inverseur d'état. - -Syntaxe - -+not [count=n] or [names=name1[,name2...]]+ - -Fonctions - - not.all - not.n - -Pins - - not.n.in (bit, in) - not.n.out (bit, out) - -Table de vérité - -[width="90%", options="header"] -|======================================== -|in | out -|True | False -|False | True -|======================================== - -=== or2 - -Le composant _or2_ est une porte OR à deux entrées. - -Syntaxe - -+or2[count=n] or [names=name1[,name2...]]+ - -Functions - -+or2.n+ - -Pins - - or2.n.in0 (bit, in) - or2.n.in1 (bit, in) - or2.n.out (bit, out) - -Table de vérité - -[width="90%", options="header"] -|======================================== -|in0 | in1 | out -|True | False | True -|True | True | True -|False | True | True -|False | False | False -|======================================== - -=== xor2 - -Le composant _xor2_ est une porte XOR à deux entrées (OU exclusif). - -Syntaxe - -+xor2[count=n] or [names=name1[,name2...]]+ - -Fonctions - -+xor2.n+ - -Pins - - xor2.n.in0 (bit, in) - xor2.n.in1 (bit, in) - xor2.n.out (bit, out) - -Table de vérité - -[width="90%", options="header"] -|======================================== -|in0 | in1 | out -|True | False | True -|True | True | False -|False | True | True -|False | False | False -|======================================== - -=== Exemples en logique combinatoire - -Un exemple de connexion avec un "and2", deux entrées vers une sortie. ----- -loadrt and2 count=1 -addf and2.0 servo-thread -net my-sigin1 and2.0.in0 <= parport.0.pin-11-in -net my-sigin2 and2.0.in1 <= parport.0.pin-12-in -net both-on parport.0.pin-14-out <= and2.0.out ----- - -Dans cet exemple un and2 est chargé dans l'espace temps réel, puis -ajouté à servo thread. Ensuite la broche d'entrée 11 du port parallèle -est connectée à l'entrée in0 de la porte. Puis la broche d'entrée 12 du -port est connectée à l'entrée in1 de la porte. Enfin la sortie -and2.0.out de la porte est connectée à la broche de sortie 14 du port -parallèle. Ainsi en suivant la table de vérité du and2, si les broches -11 et 12 du port sont à 1, alors sa sortie 14 est à 1 aussi. - -== Composants de conversion - -=== Somme pondérée (weighted_sum) - -La somme pondérée converti un groupe de bits en un entier. La conversion est la -somme des _poids_ des bits présents plus n'importe quel offset. C'est similaire -au _binaire codé décimal_ mais avec plus d'options. Le bit _hold_ interrompt le -traitement des entrées, de sorte que la valeur _sum_ ne change plus. - -La syntaxe suivante est utilisée pour charger le composant weighted_sum. - -+loadrt weighted_sum wsum_sizes=size[,size,...]+ - -Crée des groupes de weighted_sum, chacun avec le nombre donné de bits d'entrée (size). - -Pour mettre à jour la weighted_sum, le process_wsums doit être attaché à un thread. - -+addf process_wsums servo-thread+ - -Ce qui met à jour le composant weighted_sum. - -Dans l'exemple suivant, une copie de la fenêtre de configuration de HAL d'Axis, -les bits _0_ et _2_ sont TRUE, ils n'ont pas d'offset. Le poids (_weight_) du bit 0 -est 1, celui du bit 2 est 4, la somme est donc 5. - -.weighted_sum (somme pondérée) ----- -Component Pins: -Owner Type Dir Value Name - 10 bit In TRUE wsum.0.bit.0.in - 10 s32 I/O 1 wsum.0.bit.0.weight - 10 bit In FALSE wsum.0.bit.1.in - 10 s32 I/O 2 wsum.0.bit.1.weight - 10 bit In TRUE wsum.0.bit.2.in - 10 s32 I/O 4 wsum.0.bit.2.weight - 10 bit In FALSE wsum.0.bit.3.in - 10 s32 I/O 8 wsum.0.bit.3.weight - 10 bit In FALSE wsum.0.hold - 10 s32 I/O 0 wsum.0.offset - 10 s32 Out 5 wsum.0.sum ----- - - diff --git a/docs/src/hal/canonical-devices.txt b/docs/src/hal/canonical-devices.txt deleted file mode 100644 index 05d23b36921..00000000000 --- a/docs/src/hal/canonical-devices.txt +++ /dev/null @@ -1,128 +0,0 @@ -= Canonical Device Interfaces - -.Note -********************************************************************* -By version 2.1, the HAL drivers should have all been updated to -match these specs. Send an email if you spot any problems. -********************************************************************* - -[[cha:Canonical-Device-Interfaces]] -== Introduction -The following sections show the pins, parameters, and functions that -are supplied by “canonical devicesâ€. All HAL device drivers should -supply the same pins and parameters, and implement the same behavior. - -Note that the only the `` and `` fields are -defined for a canonical device. The ``, ``, -and `` fields are set based on the characteristics of the -real device. - -== Digital Input[[sec:CanonDigIn]] - -The canonical digital input (I/O type field: `digin`) is quite simple. - -=== Pins - - - (bit) *in* -- State of the hardware input. - - (bit) *in-not* -- Inverted state of the input. - -=== Parameters - - - None - -=== Functions - - - (funct) *read* -- Read hardware and set `in` and `in-not` HAL pins. - -== Digital Output[[sec:CanonDigOut]] - -The canonical digital output (I/O type field: `digout`) is also very -simple. - -=== Pins - - - (bit) *out* -- Value to be written (possibly inverted) to the hardware - output. - -=== Parameters - - - (bit) *invert* -- If TRUE, *out* is inverted before writing to the - hardware. - -=== Functions - - - (funct) *write* -- Read *out* and *invert*, and set hardware output - accordingly. - -== Analog Input - -The canonical analog input (I/O type: `adcin` ). This is expected to -be used for analog to digital converters, which -convert e.g. voltage to a continuous range of values. - -=== Pins - - - (float) *value* -- The hardware reading, scaled according to the - *scale* and *offset* parameters. *Value* = ((input reading, in - hardware-dependent units) * *scale*) - *offset* - -=== Parameters - - - (float) *scale* -- The input voltage (or current) will be multiplied - by *scale* before being output to *value*. - - (float) *offset* -- This will be subtracted from the hardware input - voltage (or current) after the scale multiplier has been applied. - - (float) *bit_weight* -- The value of one least significant bit (LSB). - This is effectively the granularity of the input reading. - - (float) *hw_offset* -- The value present on the input when 0 volts is - applied to the input pin(s). - -=== Functions - - - (funct) *read* -- Read the values of this analog input channel. This - may be used for - individual channel reads, or it may cause all channels to be read - -== Analog Output - -The canonical analog output (I/O Type: *adcout*). This is intended -for any kind of hardware that can output a -more-or-less continuous range of values. Examples are digital to analog -converters or PWM generators. - -=== Pins - - - (float) *value* -- The value to be written. The actual value output - to the hardware will depend on the scale and offset parameters. - - (bit) *enable* -- If false, then output 0 to the hardware, regardless - of the *value* pin. - -=== Parameters - - - (float) *offset* -- This will be added to the *value* before the - hardware is updated - - (float) *scale* -- This should be set so that an input of 1 on the - *value* pin will cause the analog output pin to read 1 volt. - - (float) *high_limit* (optional) -- When calculating the value to - output to the hardware, if *value* + *offset* is greater than - *high_limit*, then *high_limit* will be used instead. - - (float) *low_limit* (optional) -- When calculating the value to output - to the hardware, if *value* + *offset* is less than *low_limit*, then - *low_limit* will be used instead. - - (float) *bit_weight* (optional) -- The value of one least significant - bit (LSB), in volts (or mA, for current outputs) - - (float) *hw_offset* (optional) -- The actual voltage (or current) - that will be output if 0 is written to the hardware. - -=== Functions - -(funct) *write* -- This causes the calculated value to be output to -the hardware. If enable is false, then the output will be 0, -regardless of *value*, *scale*, and *offset*. -The meaning of “0†is dependent on the hardware. For example, a -bipolar 12-bit A/D may need to write 0x1FF (mid scale) to the D/A get 0 -volts from the hardware pin. If enable is true, read scale, offset and -value and output to the adc (*scale* * *value*) + *offset*. If enable -is false, then output 0. - - diff --git a/docs/src/hal/canonical-devices_es.txt b/docs/src/hal/canonical-devices_es.txt deleted file mode 100644 index f253460a98c..00000000000 --- a/docs/src/hal/canonical-devices_es.txt +++ /dev/null @@ -1,144 +0,0 @@ -= Canonical Device Interfaces - - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - - -.Note -********************************************************************* -By version 2.1, the HAL drivers should have all been updated to -match these specs. Send an email if you spot any problems. -********************************************************************* - -[[cha:Canonical-Device-Interfaces]] -== Introduction - -The following sections show the pins, parameters, and functions that -are supplied by “canonical devicesâ€. All HAL device drivers should -supply the same pins and parameters, and implement the same behavior. - -Note that the only the `` and `` fields are -defined for a canonical device. The ``, ``, -and `` fields are set based on the characteristics of the -real device. - -== Digital Input[[sec:CanonDigIn]] - -The canonical digital input (I/O type field: `digin`) is quite simple. - -=== Pins - - - (bit) *in* -- State of the hardware input. - - (bit) *in-not* -- Inverted state of the input. - -=== Parameters - - - None - -=== Functions - - - (funct) *read* -- Read hardware and set `in` and `in-not` HAL pins. - -== Digital Output[[sec:CanonDigOut]] - -The canonical digital output (I/O type field: `digout`) is also very -simple. - -=== Pins - - - (bit) *out* -- Value to be written (possibly inverted) to the hardware - output. - -=== Parameters - - - (bit) *invert* -- If TRUE, *out* is inverted before writing to the - hardware. - -=== Functions - - - (funct) *write* -- Read *out* and *invert*, and set hardware output - accordingly. - -== Analog Input - -The canonical analog input (I/O type: `adcin` ). This is expected to -be used for analog to digital converters, which -convert e.g. voltage to a continuous range of values. - -=== Pins - - - (float) *value* -- The hardware reading, scaled according to the - *scale* and *offset* parameters. *Value* = ((input reading, in - hardware-dependent units) * *scale*) - *offset* - -=== Parameters - - - (float) *scale* -- The input voltage (or current) will be multiplied - by *scale* before being output to *value*. - - (float) *offset* -- This will be subtracted from the hardware input - voltage (or current) after the scale multiplier has been applied. - - (float) *bit_weight* -- The value of one least significant bit (LSB). - This is effectively the granularity of the input reading. - - (float) *hw_offset* -- The value present on the input when 0 volts is - applied to the input pin(s). - -=== Functions - - - (funct) *read* -- Read the values of this analog input channel. This - may be used for - individual channel reads, or it may cause all channels to be read - -== Analog Output - -The canonical analog output (I/O Type: *adcout*). This is intended -for any kind of hardware that can output a -more-or-less continuous range of values. Examples are digital to analog -converters or PWM generators. - -=== Pins - - - (float) *value* -- The value to be written. The actual value output - to the hardware will depend on the scale and offset parameters. - - (bit) *enable* -- If false, then output 0 to the hardware, regardless - of the *value* pin. - -=== Parameters - - - (float) *offset* -- This will be added to the *value* before the - hardware is updated - - (float) *scale* -- This should be set so that an input of 1 on the - *value* pin will cause the analog output pin to read 1 volt. - - (float) *high_limit* (optional) -- When calculating the value to - output to the hardware, if *value* + *offset* is greater than - *high_limit*, then *high_limit* will be used instead. - - (float) *low_limit* (optional) -- When calculating the value to output - to the hardware, if *value* + *offset* is less than *low_limit*, then - *low_limit* will be used instead. - - (float) *bit_weight* (optional) -- The value of one least significant - bit (LSB), in volts (or mA, for current outputs) - - (float) *hw_offset* (optional) -- The actual voltage (or current) - that will be output if 0 is written to the hardware. - -=== Functions - -(funct) *write* -- This causes the calculated value to be output to -the hardware. If enable is false, then the output will be 0, -regardless of *value*, *scale*, and *offset*. -The meaning of “0†is dependent on the hardware. For example, a -bipolar 12-bit A/D may need to write 0x1FF (mid scale) to the D/A get 0 -volts from the hardware pin. If enable is true, read scale, offset and -value and output to the adc (*scale* * *value*) + *offset*. If enable -is false, then output 0. - - diff --git a/docs/src/hal/comp.txt b/docs/src/hal/comp.txt deleted file mode 100644 index 077ca2df880..00000000000 --- a/docs/src/hal/comp.txt +++ /dev/null @@ -1,706 +0,0 @@ -= Comp HAL Component Generator - -[[cha:comp-hal-component-generator]] (((Comp HAL Component Generator))) - -== Introduction - -Writing a HAL component can be a tedious process, most of it in setup -calls to 'rtapi_' and 'hal_' functions and associated error checking. -'comp' will write all this code for you, automatically. - -Compiling a HAL component is also much easier when using 'comp', -whether the component is part of the LinuxCNC source tree, or outside it. - -For instance, when coded in C, a simple component such as "ddt" is around 80 -lines of code. The equivalent component is very short when written using the -'comp' preprocessor: - -.Simple Comp Example [[code:simple-comp-example]] ----- -component ddt "Compute the derivative of the input function"; -pin in float in; -pin out float out; -variable float old; -function _; -license "GPL"; // indicates GPL v2 or later -;; -float tmp = in; -out = (tmp - old) / fperiod; -old = tmp; ----- - -== Installing - -If you're working with an installed version of LinuxCNC you will need to install -the development packages. - -One method is to say following line in a terminal. - -.Installing Dev ----- -sudo apt-get install linuxcnc-dev ----- - -Another method is to use the Synaptic Package Manager from the main Ubuntu menu -to install linuxcnc-dev. - -== Definitions - -* 'component' - A component is a single real-time module, which is loaded with 'halcmd - loadrt'. One '.comp' file specifies one component. - -* 'instance' - A component can have zero or more instances. Each instance of a - component is created equal (they all have the same pins, parameters, - functions, and data) but behave independently when their pins, - parameters, and data have different values. - -* 'singleton' - It is possible for a component to be a "singleton", in which case - exactly one instance is created. It seldom makes sense to write a - 'singleton' component, unless there can literally only be a single - object of that - kind in the system (for instance, a component whose purpose is to - provide a pin with the current UNIX time, or a hardware driver for the - internal PC speaker) - -== Instance creation - -For a singleton, the one instance is created when the component is -loaded. - -For a non-singleton, the 'count' module parameter determines how many numbered -instances are created. If not specified, the 'name' module parameter -determines how many named instances are created. Otherwise, a single numbered -instance is created. - -== Implicit Parameters - -Functions are implicitly passed the 'period' parameter which is the time in -nanoseconds of the last period to execute the comp. Functions which use -floating-point can also refer to 'fperiod' which is the floating-point time in -seconds, or (period*1e-9). This can be useful in comps that need the timing -information. - -== Syntax - -A '.comp' file consists of a number of declarations, followed by ';;' -on a line of its own, followed by C code implementing the module's -functions. - -Declarations include: - -* 'component HALNAME (DOC);' -* 'pin PINDIRECTION TYPE HALNAME ([SIZE]|[MAXSIZE: CONDSIZE]) (if CONDITION) (= STARTVALUE) (DOC) ;' -* 'param PARAMDIRECTION TYPE HALNAME ([SIZE]|[MAXSIZE: CONDSIZE]) (if CONDITION) (= STARTVALUE) (DOC) ;' -* 'function HALNAME (fp | nofp) (DOC);' -* 'option OPT (VALUE);' -* 'variable CTYPE STARREDNAME ([SIZE]);' -* 'description DOC;' -* 'see_also DOC;' -* 'license LICENSE;' -* 'author AUTHOR;' - -Parentheses indicate optional items. A vertical bar indicates -alternatives. Words in 'CAPITALS' indicate variable text, as follows: - -* 'NAME' - A standard C identifier - -* 'STARREDNAME' - A C identifier with zero or more * before it. This syntax can be used - to declare instance variables that are pointers. Note that because of the - grammar, there may not be whitespace between the * and the variable name. - -* 'HALNAME' - An extended identifier. - When used to create a HAL identifier, any underscores are replaced - with dashes, and any trailing dash or period is removed, so that - "this_name_" will be turned into "this-name", and if the name is "_", - then a trailing period is removed as well, so that "function _" gives - a HAL function name like "component." instead of "component.." -+ -If present, the prefix 'hal_' is removed from the beginning of the -component name when creating pins, parameters and functions. -+ -In the HAL identifier for a pin or parameter, # denotes an array item, -and must be used in conjunction with a '[SIZE]' declaration. The hash -marks are replaced with a 0-padded number with -the same length as the number of # characters. -+ -When used to create a C identifier, the following changes are applied -to the HALNAME: -+ --- - . Any "#" characters, and any ".", "_" or "-" characters immediately - before them, are removed. - . Any remaining "." and "-" characters are replaced with "_". - . Repeated "\_" characters are changed to a single "\_" character. - -A trailing "_" is retained, so that HAL identifiers which would otherwise -collide with reserved names or keywords (e.g., 'min') can be used. - -[width="90%", options="header"] -|======================================== -|HALNAME | C Identifier | HAL Identifier -|x_y_z | x_y_z | x-y-z -|x-y.z | x_y_z | x-y.z -|x_y_z_ | x_y_z_ | x-y-z -|x.##.y | x_y(MM) | x.MM.z -|x.## | x(MM) | x.MM -|======================================== --- -* 'if CONDITION' - An expression involving the variable 'personality' which is nonzero - when the pin or parameter should be created - -* 'SIZE' - A number that gives the size of an array. The array items are numbered - from 0 to 'SIZE'-1. - -* 'MAXSIZE : CONDSIZE' - A number that gives the maximum size of the array followed by an - expression involving the variable 'personality' and which always - evaluates to less than 'MAXSIZE'. When the array is created its size - will be 'CONDSIZE'. - -* 'DOC' - A string that documents the item. String can be a C-style "double - quoted" string, like: -+ ----- -"Selects the desired edge: TRUE means falling, FALSE means rising" ----- -+ -or a Python-style "triple quoted" string, which -may include embedded newlines and quote characters, such as: -+ ----- -"""The effect of this parameter, also known as "the orb of zot", -will require at least two paragraphs to explain. - -Hopefully these paragraphs have allowed you to understand "zot" -better.""" ----- -+ -The documentation string is in "groff -man" format. For more -information on this markup format, see 'groff_man(7)'. Remember that -comp interprets backslash escapes in strings, so for instance -to set the italic font for the word 'example', write: -+ ----- -"\\fIexample\\fB" ----- - -* 'TYPE' - One of the HAL types: 'bit', 'signed', 'unsigned', or 'float'. The old - names 's32' and 'u32' may also be used, but 'signed' and 'unsigned' are - preferred. - -* 'PINDIRECTION' - One of the following: 'in', 'out', or 'io'. A component sets a value - for an 'out' pin, it reads a value from an 'in' pin, and it may read or - set the value of an 'io' pin. - -* 'PARAMDIRECTION' - One of the following: 'r' or 'rw'. A component sets a value for a 'r' - parameter, and it may read or set the value of a 'rw' parameter. - -* 'STARTVALUE' - Specifies the initial value of a pin or parameter. If it is not - specified, then the default is '0' or 'FALSE', depending on the type of - the item. - -=== HAL functions - -* 'fp' - Indicates that the function performs floating-point calculations. - -* 'nofp' - Indicates that it only performs integer calculations. If neither is - specified, 'fp' is assumed. Neither comp nor gcc can detect the use of - floating-point calculations in functions that are tagged 'nofp', but use of - such operations results in undefined behavior. - -=== Options - -The currently defined options are: - -* 'option singleton yes' - (default: no) - Do not create a 'count' module parameter, and always create a single - instance. With 'singleton', items are named 'component-name.item-name' - and without 'singleton', items for numbered instances are named - 'component-name..item-name'. - -* 'option default_count number' - (default: 1) - Normally, the module parameter 'count' defaults to 1. If specified, - the 'count' will default to this value instead. - -* 'option count_function yes' - (default: no) - Normally, the number of instances to create is specified in the - module parameter 'count'; if 'count_function' is specified, the value - returned by the function 'int get_count(void)' is used instead, - and the 'count' module parameter is not defined. - -* 'option rtapi_app no' - (default: yes) - Normally, the functions 'rtapi_app_main' and 'rtapi_app_exit' are - automatically defined. With 'option rtapi_app no', they are not, and - must be provided in the C code. - When implementing your own 'rtapi_app_main', call the function 'int - export(char *prefix, long extra_arg)' to register the pins, - parameters, and functions for 'prefix'. - -* 'option data TYPE' - (default: none) *deprecated* - If specified, each instance of the component will have an associated - data block of type 'TYPE' (which can be a simple type like 'float' or the - name of a type created with 'typedef'). - In new components, 'variable' should be used instead. - -* 'option extra_setup yes' - (default: no) - If specified, call the function defined by 'EXTRA_SETUP' for each - instance. If using the automatically defined 'rtapi_app_main', - 'extra_arg' is the number of this instance. - -* 'option extra_cleanup yes' - (default: no) - If specified, call the function defined by 'EXTRA_CLEANUP' from the - automatically defined 'rtapi_app_exit', or if an error is detected - in the automatically defined 'rtapi_app_main'. - -* 'option userspace yes' - (default: no) - If specified, this file describes a userspace component, rather - than a real one. A userspace component may not have functions - defined by the 'function' directive. Instead, after all the - instances are constructed, the C function 'user_mainloop()' - is called. When this function returns, the component exits. - Typically, 'user_mainloop()' will use 'FOR_ALL_INSTS()' to - perform the update action for each instance, then sleep for - a short time. Another common action in 'user_mainloop()' may - be to call the event handler loop of a GUI toolkit. - -* 'option userinit yes' - (default: no) - This option is ignored if the option 'userspace' (see above) is set to - 'no'. If 'userinit' is specified, the function 'userinit(argc,argv)' - is called before 'rtapi_app_main()' (and thus before the call to - 'hal_init()' ). This function may process the commandline arguments or - take other actions. Its return type is 'void'; it may call 'exit()' - if it wishes to terminate rather than create a HAL component (for - instance, because the commandline arguments were invalid). - -If an option's VALUE is not specified, then it is equivalent to -specifying 'option … yes'. -The result of assigning an inappropriate value to an option is undefined. -The result of using any other option is undefined. - -=== License and Authorship - -* 'LICENSE' - Specify the license of the module for the documentation and for the - MODULE_LICENSE() module declaration. For example, to specify that the - module's license is GPL v2 or later, - - license "GPL"; // indicates GPL v2 or later -+ -For additional information on the meaning of MODULE_LICENSE() and -additional license identifiers, see ''. or the manual page -'rtapi_module_param(3)' -+ -This declaration is required. - -* 'AUTHOR' - Specify the author of the module for the documentation. - -=== Per-instance data storage - -* 'variable CTYPE STARREDNAME;' - -* 'variable CTYPE STARREDNAME[SIZE];' - -* 'variable CTYPE STARREDNAME = DEFAULT;' - -* 'variable CTYPE STARREDNAME[SIZE] = DEFAULT;' -+ -Declare a per-instance variable 'STARREDNAME' of type 'CTYPE', optionally as -an array of 'SIZE' items, and optionally with a default value -'DEFAULT'. Items with no 'DEFAULT' are initialized to all-bits-zero. -'CTYPE' is a simple one-word C type, such as 'float', 'u32', 's32', -int, etc. Access to array variables uses square brackets. -+ -If a variable is to be of a pointer type, there may not be any space -between the "*" and the variable name. -Therefore, the following is acceptable: -+ ----- -variable int *example; ----- -+ -but the following are not: -+ ----- -variable int* badexample; -variable int * badexample; ----- - -=== Comments - -C++-style one-line comments (//... ) and - -C-style multi-line comments (/* ... */) are both supported in the declaration section. - -== Restrictions - -Though HAL permits a pin, a parameter, and a function to have the same -name, comp does not. - -Variable and function names that can not be used or are likely to cause -problems include: - -* Anything beginning with '__comp_'. - -* 'comp_id' - -* 'fperiod' - -* 'rtapi_app_main' - -* 'rtapi_app_exit' - -* 'extra_setup' - -* 'extra_cleanup' - - -== Convenience Macros - -Based on the items in the declaration section, 'comp' creates a C -structure called 'struct state'. However, instead of referring to the -members of this structure (e.g., '*(inst->name)' ), they will generally -be referred to using the macros below. The -details of 'struct state' and these macros may change from one version -of 'comp' to the next. - -* 'FUNCTION(name)' - Use this macro to begin the definition of a realtime function which - was previously declared with 'function NAME'. The function includes a - parameter 'period' which is the integer number of nanoseconds - between calls to the - function. - -* 'EXTRA_SETUP()' - Use this macro to begin the definition of the function called to - perform extra setup of this instance. Return a negative Unix 'errno' - value to indicate failure (e.g., 'return -EBUSY' on failure to reserve - an I/O port), or 0 to indicate success. - -* 'EXTRA_CLEANUP()' - Use this macro to begin the definition of the function called to - perform extra cleanup of the component. Note that this function must - clean up all instances of the component, not just one. The "pin_name", - "parameter_name", and "data" macros may not be used here. - -* 'pin_name' or 'parameter_name' - For each pin 'pin_name' or param 'parameter_name' - there is a macro which allows the name to be used on its own to refer - to the pin or parameter. - When 'pin_name' or 'parameter_name' is an array, the macro is of the - form 'pin_name(idx)' or 'param_name(idx)' where 'idx' is the index - into the pin array. When the array is a variable-sized - array, it is only legal to refer to items up to its 'condsize'. -+ -When the item is a conditional item, it is only legal to refer to it - when its 'condition' evaluated to a nonzero value. - -* 'variable_name' - For each variable 'variable_name' there is a macro which allows the - name to be used on its own to refer - to the variable. When 'variable_name' is an array, the normal C-style - subscript is used: 'variable_name[idx]' - -* 'data' - If "option data" is specified, this macro allows access to the - instance data. - -* 'fperiod' - The floating-point number of seconds between calls to this realtime - function. - -* 'FOR_ALL_INSTS() {...}' - For userspace components. This macro uses the variable 'struct - state 'inst' to iterate over all the defined instances. Inside the - body of the - loop, the 'pin_name', 'parameter_name', and 'data' macros work as they - do in realtime functions. - -== Components with one function - -If a component has only one function and the string "FUNCTION" does -not appear anywhere after ';;', then the portion after ';;' is all -taken to be the body of the component's single function. See the -<> for and example of this. - -== Component Personality - -If a component has any pins or parameters with an "if condition" or -"[maxsize : condsize]", it is called a component with 'personality'. -The 'personality' of each instance is specified when the module is -loaded. 'Personality' can be used to create pins only when needed. -For instance, personality is used in the 'logic' component, to allow -for a variable number of input pins to each logic gate and to allow -for a selection of any of the basic boolean logic functions 'and', -'or', and 'xor'. - -== Compiling - -Place the '.comp' file in the source directory -'linuxcnc/src/hal/components' and re-run 'make'. -'Comp' files are automatically detected by the build system. - -If a '.comp' file is a driver for hardware, it may be placed in -'linuxcnc/src/hal/components' and will be built unless LinuxCNC is -configured as a userspace simulator. - -[[sec:Compiling-realtime-components]] -== Compiling realtime components outside the source tree -(((Compiling realtime components outside the source tree))) - -'comp' can process, compile, and install a realtime component -in a single step, placing 'rtexample.ko' in the LinuxCNC realtime -module directory: - ----- -comp --install rtexample.comp ----- - -Or, it can process and compile in one step, leaving 'example.ko' (or -'example.so' for the simulator) in the current directory: - ----- -comp --compile rtexample.comp ----- - -Or it can simply process, leaving 'example.c' in the current directory: - ----- -comp rtexample.comp ----- - -'comp' can also compile and install a component written in C, using -the '--install' and '--compile' options shown above: - ----- -comp --install rtexample2.c ----- - -man-format documentation can also be created from the information in -the declaration section: - ----- -comp --document rtexample.comp ----- - -The resulting manpage, 'example.9' can be viewed with - ----- -man ./example.9 ----- - -or copied to a standard location for manual pages. - -== Compiling userspace components outside the source tree - -'comp' can process, compile, install, and document userspace components: - ----- -comp usrexample.comp -comp --compile usrexample.comp -comp --install usrexample.comp -comp --document usrexample.comp ----- - -This only works for '.comp' files, not for '.c' files. - -== Examples - -=== constant - -Note that the declaration "function _" creates functions -named "constant.0", etc. - -[source,c] ----- -component constant; -pin out float out; -param r float value = 1.0; -function _; -license "GPL"; // indicates GPL v2 or later -;; -FUNCTION(_) { out = value; } ----- - -=== sincos - -This component computes the sine and cosine of an input angle in -radians. It has different capabilities than the "sine" and "cosine" -outputs of siggen, because the input is an angle, rather than running -freely based on a "frequency" parameter. - -The pins are declared with the names 'sin_' and 'cos_' in the source -code so that they do not interfere with the functions 'sin()' and -'cos()'. The HAL pins are still called 'sincos..sin'. - -[source,c] ----- -component sincos; -pin out float sin_; -pin out float cos_; -pin in float theta; -function _; -license "GPL"; // indicates GPL v2 or later -;; -#include -FUNCTION(_) { sin_ = sin(theta); cos_ = cos(theta); } ----- - -=== out8 - -This component is a driver for a 'fictional' card called "out8", -which has 8 pins of digital output which are -treated as a single 8-bit value. There can be a varying number of such -cards in the system, and they can be at various addresses. The pin is -called 'out_' because 'out' is an identifier used in ''. It -illustrates the use of 'EXTRA_SETUP' and 'EXTRA_CLEANUP' to request an -I/O region and then free it in case of error or when -the module is unloaded. - -[source,c] ----- -component out8; -pin out unsigned out_ "Output value; only low 8 bits are used"; -param r unsigned ioaddr; - -function _; - -option count_function; -option extra_setup; -option extra_cleanup; -option constructable no; - -license "GPL"; // indicates GPL v2 or later -;; -#include - -#define MAX 8 -int io[MAX] = {0,}; -RTAPI_MP_ARRAY_INT(io, MAX, "I/O addresses of out8 boards"); - -int get_count(void) { - int i = 0; - for(i=0; i0; i--) out(i) = out(i-1); -out(0) = in; ----- - -=== rand - -This userspace component changes the value on its output pin to a new -random value in the range (0,1) about once every 1ms. - -[source,c] ----- -component rand; -option userspace; - -pin out float out; -license "GPL"; // indicates GPL v2 or later -;; -#include - -void user_mainloop(void) { - while(1) { - usleep(1000); - FOR_ALL_INSTS() out = drand48(); - } -} ----- - -=== logic - -This realtime component shows how to use "personality" to create -variable-size arrays and optional pins. - -[source,c] ----- -component logic "LinuxCNC HAL component providing experimental logic functions"; -pin in bit in-##[16 : personality & 0xff]; -pin out bit and if personality & 0x100; -pin out bit or if personality & 0x200; -pin out bit xor if personality & 0x400; -function _ nofp; -description """ -Experimental general 'logic function' component. Can perform 'and', 'or' -and 'xor' of up to 16 inputs. Determine the proper value for 'personality' -by adding: -.IP \\(bu 4 -The number of input pins, usually from 2 to 16 -.IP \\(bu -256 (0x100) if the 'and' output is desired -.IP \\(bu -512 (0x200) if the 'or' output is desired -.IP \\(bu -1024 (0x400) if the 'xor' (exclusive or) output is desired"""; -license "GPL"; // indicates GPL v2 or later -;; -FUNCTION(_) { - int i, a=1, o=0, x=0; - for(i=0; i < (personality & 0xff); i++) { - if(in(i)) { o = 1; x = !x; } - else { a = 0; } - } - if(personality & 0x100) and = a; - if(personality & 0x200) or = o; - if(personality & 0x400) xor = x; -} ----- - -A typical load line for this component might be - ----- -loadrt logic count=3 personality=0x102,0x305,0x503 ----- -which creates the following pins: - - - A 2-input AND gate: logic.0.and, logic.0.in-00, logic.0.in-01 - - 5-input AND and OR gates: logic.1.and, logic.1.or, logic.1.in-00, - logic.1.in-01, logic.1.in-02, logic.1.in-03, logic.1.in-04, - - 3-input AND and XOR gates: logic.2.and, logic.2.xor, logic.2.in-00, - logic.2.in-01, logic.2.in-02 - - diff --git a/docs/src/hal/comp_es.txt b/docs/src/hal/comp_es.txt deleted file mode 100644 index fbe443c713c..00000000000 --- a/docs/src/hal/comp_es.txt +++ /dev/null @@ -1,697 +0,0 @@ -= Comp HAL Component Generator - -[[cha:comp-hal-component-generator]] (((Comp HAL Component Generator))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Introduction - -Writing a HAL component can be a tedious process, most of it in setup -calls to 'rtapi_' and 'hal_' functions and associated error checking. -'comp' will write all this code for you, automatically. - -Compiling a HAL component is also much easier when using 'comp', -whether the component is part of the LinuxCNC source tree, or outside it. - -For instance, when coded in C, a simple component such as "ddt" is around 80 -lines of code. The equivalent component is very short when written using the -'comp' preprocessor: - -.Simple Comp Example [[code:simple-comp-example]] ----- -component ddt "Compute the derivative of the input function"; -pin in float in; -pin out float out; -variable float old; -function _; -license "GPLv2 or later"; -;; -float tmp = in; -out = (tmp - old) / fperiod; -old = tmp; ----- - -== Installing - -If your working with an installed version of LinuxCNC you need to install -the development packages by using the following line in a terminal or using the -Synaptic Package Manager from the main Ubuntu menu. - -.Installing Dev ----- -sudo apt-get emc2-dev ----- - -== Definitions - -* 'component' - A component is a single real-time module, which is loaded with 'halcmd - loadrt'. One '.comp' file specifies one component. - -* 'instance' - A component can have zero or more instances. Each instance of a - component is created equal (they all have the same pins, parameters, - functions, and data) but behave independently when their pins, - parameters, and data have different values. - -* 'singleton' - It is possible for a component to be a "singleton", in which case - exactly one instance is created. It seldom makes sense to write a - 'singleton' component, unless there can literally only be a single - object of that - kind in the system (for instance, a component whose purpose is to - provide a pin with the current UNIX time, or a hardware driver for the - internal PC speaker) - -== Instance creation - -For a singleton, the one instance is created when the component is -loaded. - -For a non-singleton, the 'count' module parameter determines how many numbered -instances are created. If not specified, the 'name' module parameter -determines how many named instances are created. Otherwise, a single numbered -instance is created. - -== Implicit Parameters - -Functions are implicitly passed the 'period' parameter which is the time in -nanoseconds of the last period to execute the comp. Functions which use -floating-point can also refer to 'fperiod' which is the floating-point time in -seconds, or (period*1e-9). This can be useful in comps that need the timing -information. - -== Syntax - -A '.comp' file consists of a number of declarations, followed by ';;' -on a line of its own, followed by C code implementing the module's -functions. - -Declarations include: - -* 'component HALNAME (DOC);' -* 'pin PINDIRECTION TYPE HALNAME ([SIZE]|[MAXSIZE: CONDSIZE]) (if CONDITION) (= STARTVALUE) (DOC) ;' -* 'param PARAMDIRECTION TYPE HALNAME ([SIZE]|[MAXSIZE: CONDSIZE]) (if CONDITION) (= STARTVALUE) (DOC) ;' -* 'function HALNAME (fp | nofp) (DOC);' -* 'option OPT (VALUE);' -* 'variable CTYPE STARREDNAME ([SIZE]);' -* 'description DOC;' -* 'see_also DOC;' -* 'license LICENSE;' -* 'author AUTHOR;' - -Parentheses indicate optional items. A vertical bar indicates -alternatives. Words in 'CAPITALS' indicate variable text, as follows: - -* 'NAME' - A standard C identifier - -* 'STARREDNAME' - A C identifier with zero or more * before it. This syntax can be used - to declare instance variables that are pointers. Note that because of the - grammar, there may not be whitespace between the * and the variable name. - -* 'HALNAME' - An extended identifier. - When used to create a HAL identifier, any underscores are replaced - with dashes, and any trailing dash or period is removed, so that - "this_name_" will be turned into "this-name", and if the name is "_", - then a trailing period is removed as well, so that "function _" gives - a HAL function name like "component." instead of "component.." -+ -If present, the prefix 'hal_' is removed from the beginning of the -component name when creating pins, parameters and functions. -+ -In the HAL identifier for a pin or parameter, # denotes an array item, -and must be used in conjunction with a '[SIZE]' declaration. The hash -marks are replaced with a 0-padded number with -the same length as the number of # characters. -+ -When used to create a C identifier, the following changes are applied -to the HALNAME: -+ --- - . Any "#" characters, and any ".", "_" or "-" characters immediately - before them, are removed. - . Any remaining "." and "-" characters are replaced with "_". - . Repeated "\_" characters are changed to a single "\_" character. - -A trailing "_" is retained, so that HAL identifiers which would otherwise -collide with reserved names or keywords (e.g., 'min') can be used. - -[width="90%", options="header"] -|======================================== -|HALNAME | C Identifier | HAL Identifier -|x_y_z | x_y_z | x-y-z -|x-y.z | x_y_z | x-y.z -|x_y_z_ | x_y_z_ | x-y-z -|x.##.y | x_y(MM) | x.MM.z -|x.## | x(MM) | x.MM -|======================================== --- -* 'if CONDITION' - An expression involving the variable 'personality' which is nonzero - when the pin or parameter should be created - -* 'SIZE' - A number that gives the size of an array. The array items are numbered - from 0 to 'SIZE'-1. - -* 'MAXSIZE : CONDSIZE' - A number that gives the maximum size of the array followed by an - expression involving the variable 'personality' and which always - evaluates to less than 'MAXSIZE'. When the array is created its size - will be 'CONDSIZE'. - -* 'DOC' - A string that documents the item. String can be a C-style "double - quoted" string, like: -+ ----- -"Selects the desired edge: TRUE means falling, FALSE means rising" ----- -+ -or a Python-style "triple quoted" string, which -may include embedded newlines and quote characters, such as: -+ ----- -"""The effect of this parameter, also known as "the orb of zot", -will require at least two paragraphs to explain. - -Hopefully these paragraphs have allowed you to understand "zot" -better.""" ----- -+ -The documentation string is in "groff -man" format. For more -information on this markup format, see 'groff_man(7)'. Remember that -comp interprets backslash escapes in strings, so for instance -to set the italic font for the word 'example', write: -+ ----- -"\\fIexample\\fB" ----- - -* 'TYPE' - One of the HAL types: 'bit', 'signed', 'unsigned', or 'float'. The old - names 's32' and 'u32' may also be used, but 'signed' and 'unsigned' are - preferred. - -* 'PINDIRECTION' - One of the following: 'in', 'out', or 'io'. A component sets a value - for an 'out' pin, it reads a value from an 'in' pin, and it may read or - set the value of an 'io' pin. - -* 'PARAMDIRECTION' - One of the following: 'r' or 'rw'. A component sets a value for a 'r' - parameter, and it may read or set the value of a 'rw' parameter. - -* 'STARTVALUE' - Specifies the initial value of a pin or parameter. If it is not - specified, then the default is '0' or 'FALSE', depending on the type of - the item. - -=== HAL functions - -* 'fp' - Indicates that the function performs floating-point calculations. - -* 'nofp' - Indicates that it only performs integer calculations. If neither is - specified, 'fp' is assumed. Neither comp nor gcc can detect the use of - floating-point calculations in functions that are tagged 'nofp', but use of - such operations results in undefined behavior. - -=== Options - -The currently defined options are: - -* 'option singleton yes' - (default: no) - Do not create a 'count' module parameter, and always create a single - instance. With 'singleton', items are named 'component-name.item-name' - and without 'singleton', items for numbered instances are named - 'component-name..item-name'. - -* 'option default_count number' - (default: 1) - Normally, the module parameter 'count' defaults to 1. If specified, - the 'count' will default to this value instead. - -* 'option count_function yes' - (default: no) - Normally, the number of instances to create is specified in the - module parameter 'count'; if 'count_function' is specified, the value - returned by the function 'int get_count(void)' is used instead, - and the 'count' module parameter is not defined. - -* 'option rtapi_app no' - (default: yes) - Normally, the functions 'rtapi_app_main' and 'rtapi_app_exit' are - automatically defined. With 'option rtapi_app no', they are not, and - must be provided in the C code. - When implementing your own 'rtapi_app_main', call the function 'int - export(char *prefix, long extra_arg)' to register the pins, - parameters, and functions for 'prefix'. - -* 'option data TYPE' - (default: none) *deprecated* - If specified, each instance of the component will have an associated - data block of type 'TYPE' (which can be a simple type like 'float' or the - name of a type created with 'typedef'). - In new components, 'variable' should be used instead. - -* 'option extra_setup yes' - (default: no) - If specified, call the function defined by 'EXTRA_SETUP' for each - instance. If using the automatically defined 'rtapi_app_main', - 'extra_arg' is the number of this instance. - -* 'option extra_cleanup yes' - (default: no) - If specified, call the function defined by 'EXTRA_CLEANUP' from the - automatically defined 'rtapi_app_exit', or if an error is detected - in the automatically defined 'rtapi_app_main'. - -* 'option userspace yes' - (default: no) - If specified, this file describes a userspace component, rather - than a real one. A userspace component may not have functions - defined by the 'function' directive. Instead, after all the - instances are constructed, the C function 'user_mainloop()' - is called. When this function returns, the component exits. - Typically, 'user_mainloop()' will use 'FOR_ALL_INSTS()' to - perform the update action for each instance, then sleep for - a short time. Another common action in 'user_mainloop()' may - be to call the event handler loop of a GUI toolkit. - -* 'option userinit yes' - (default: no) - If specified, the function 'userinit(argc,argv)' is called before - 'rtapi_app_main()' (and thus before the call to 'hal_init()' ). This - function may process the commandline arguments or take other - actions. Its return type is 'void'; it may call 'exit()' if it - wishes to terminate rather than create a HAL component - (for instance, because the commandline arguments were invalid). - -If an option's VALUE is not specified, then it is equivalent to -specifying 'option … yes'. -The result of assigning an inappropriate value to an option is undefined. -The result of using any other option is undefined. - -=== License and Authorship - -* 'LICENSE' - Specify the license of the module for the documentation and for the - MODULE_LICENSE() module declaration. For example, to specify that the - module's license is GPL, - - license "GPLv2 or greater"; -+ -For additional information on the meaning of MODULE_LICENSE() and -additional license identifiers, see ''. -+ -Starting in EMC 2.3, this declaration is required. - -* 'AUTHOR' - Specify the author of the module for the documentation. - -=== Per-instance data storage - -* 'variable CTYPE STARREDNAME;' - -* 'variable CTYPE STARREDNAME[SIZE];' - -* 'variable CTYPE STARREDNAME = DEFAULT;' - -* 'variable CTYPE STARREDNAME[SIZE] = DEFAULT;' -+ -Declare a per-instance variable 'STARREDNAME' of type 'CTYPE', optionally as -an array of 'SIZE' items, and optionally with a default value -'DEFAULT'. Items with no 'DEFAULT' are initialized to all-bits-zero. -'CTYPE' is a simple one-word C type, such as 'float', 'u32', 's32', -int, etc. Access to array variables uses square brackets. -+ -If a variable is to be of a pointer type, there may not be any space -between the "*" and the variable name. -Therefore, the following is acceptable: -+ ----- -variable int *example; ----- -+ -but the following are not: -+ ----- -variable int* badexample; -variable int * badexample; ----- - -=== Comments - -C++-style one-line comments (//... ) and - -C-style multi-line comments (/* ... */) are both supported in the declaration section. - -== Restrictions - -Though HAL permits a pin, a parameter, and a function to have the same -name, comp does not. - -Variable names that can not be used or likly to cause problems include -'state', 'inst', 'first_inst', 'last_inst', 'buf', 'count', 'default_count'. - -== Convenience Macros - -Based on the items in the declaration section, 'comp' creates a C -structure called 'struct state'. However, instead of referring to the -members of this structure (e.g., '*(inst\->name)' ), they will generally -be referred to using the macros below. The -details of 'struct state' and these macros may change from one version -of 'comp' to the next. - -* 'FUNCTION(name)' - Use this macro to begin the definition of a realtime function which - was previously declared with 'function NAME'. The function includes a - parameter 'period' which is the integer number of nanoseconds - between calls to the - function. - -* 'EXTRA_SETUP()' - Use this macro to begin the definition of the function called to - perform extra setup of this instance. Return a negative Unix 'errno' - value to indicate failure (e.g., 'return -EBUSY' on failure to reserve - an I/O port), or 0 to indicate success. - -* 'EXTRA_CLEANUP()' - Use this macro to begin the definition of the function called to - perform extra cleanup of the component. Note that this function must - clean up all instances of the component, not just one. The "pin_name", - "parameter_name", and "data" macros may not be used here. - -* 'pin_name' or 'parameter_name' - For each pin 'pin_name' or param 'parameter_name' - there is a macro which allows the name to be used on its own to refer - to the pin or parameter. - When 'pin_name' or 'parameter_name' is an array, the macro is of the - form 'pin_name(idx)' or 'param_name(idx)' where 'idx' is the index - into the pin array. When the array is a variable-sized - array, it is only legal to refer to items up to its 'condsize'. -+ -When the item is a conditional item, it is only legal to refer to it - when its 'condition' evaluated to a nonzero value. - -* 'variable_name' - For each variable 'variable_name' there is a macro which allows the - name to be used on its own to refer - to the variable. When 'variable_name' is an array, the normal C-style - subscript is used: 'variable_name[idx]' - -* 'data' - If "option data" is specified, this macro allows access to the - instance data. - -* 'fperiod' - The floating-point number of seconds between calls to this realtime - function. - -* 'FOR_ALL_INSTS() {...}' - For userspace components. This macro uses the variable 'struct - state 'inst' to iterate over all the defined instances. Inside the - body of the - loop, the 'pin_name', 'parameter_name', and 'data' macros work as they - do in realtime functions. - -== Components with one function - -If a component has only one function and the string "FUNCTION" does -not appear anywhere after ';;', then the portion after ';;' is all -taken to be the body of the component's single function. See the -<> for and example of this. - -== Component Personality - -If a component has any pins or parameters with an "if condition" or -"[maxsize : condsize]", it is called a component with 'personality'. -The 'personality' of each instance is specified when the module is -loaded. 'Personality' can be used to create pins only when needed. -For instance, personality is used in the 'logic' component, to allow -for a variable number of input pins to each logic gate and to allow -for a selection of any of the basic boolean logic functions 'and', -'or', and 'xor'. - -== Compiling - -Place the '.comp' file in the source directory -'emc2/src/hal/components' and re-run 'make'. -'Comp' files are automatically detected by the build system. - -If a '.comp' file is a driver for hardware, it may be placed in -'emc2/src/hal/components' and will be built unless LinuxCNC is -configured as a userspace simulator. - -[[sec:Compiling-realtime-components]] -== Compiling realtime components outside the source tree -(((Compiling realtime components outside the source tree))) - -'comp' can process, compile, and install a realtime component -in a single step, placing 'rtexample.ko' in the LinuxCNC realtime -module directory: - ----- -comp --install rtexample.comp ----- - -Or, it can process and compile in one step, leaving 'example.ko' (or -'example.so' for the simulator) in the current directory: - ----- -comp --compile rtexample.comp ----- - -Or it can simply process, leaving 'example.c' in the current directory: - ----- -comp rtexample.comp ----- - -'comp' can also compile and install a component written in C, using -the '--install' and '--compile' options shown above: - ----- -comp --install rtexample2.c ----- - -man-format documentation can also be created from the information in -the declaration section: - ----- -comp --document rtexample.comp ----- - -The resulting manpage, 'example.9' can be viewed with - ----- -man ./example.9 ----- - -or copied to a standard location for manual pages. - -== Compiling userspace components outside the source tree - -'comp' can process, compile, install, and document userspace components: - ----- -comp usrexample.comp -comp --compile usrexample.comp -comp --install usrexample.comp -comp --document usrexample.comp ----- - -This only works for '.comp' files, not for '.c' files. - -== Examples - -=== constant - -Note that the declaration "function _" creates functions -named "constant.0", etc. - -[source,c] ----- -component constant; -pin out float out; -param r float value = 1.0; -function _; -license "GPLv2 or later"; -;; -FUNCTION(_) { out = value; } ----- - -=== sincos - -This component computes the sine and cosine of an input angle in -radians. It has different capabilities than the "sine" and "cosine" -outputs of siggen, because the input is an angle, rather than running -freely based on a "frequency" parameter. - -The pins are declared with the names 'sin_' and 'cos_' in the source -code so that they do not interfere with the functions 'sin()' and -'cos()'. The HAL pins are still called 'sincos..sin'. - -[source,c] ----- -component sincos; -pin out float sin_; -pin out float cos_; -pin in float theta; -function _; -license "GPLv2 or later"; -;; -#include -FUNCTION(_) { sin_ = sin(theta); cos_ = cos(theta); } ----- - -=== out8 - -This component is a driver for a 'fictional' card called "out8", -which has 8 pins of digital output which are -treated as a single 8-bit value. There can be a varying number of such -cards in the system, and they can be at various addresses. The pin is -called 'out_' because 'out' is an identifier used in ''. It -illustrates the use of 'EXTRA_SETUP' and 'EXTRA_CLEANUP' to request an -I/O region and then free it in case of error or when -the module is unloaded. - -[source,c] ----- -component out8; -pin out unsigned out_ "Output value; only low 8 bits are used"; -param r unsigned ioaddr; - -function _; - -option count_function; -option extra_setup; -option extra_cleanup; -option constructable no; - -license "GPLv2 or later"; -;; -#include - -#define MAX 8 int io[MAX] = {0,}; -RTAPI_MP_ARRAY_INT(io, MAX, "I/O addresses of out8 boards"); - -int get_count(void) { - int i = 0; - for(i=0; i0; i--) out(i) = out(i-1); -out(0) = in; ----- - -=== rand - -This userspace component changes the value on its output pin to a new -random value in the range (0,1) about once every 1ms. - -[source,c] ----- -component rand; -option userspace; - -pin out float out; -license "GPLv2 or later"; -;; -#include - -void user_mainloop(void) { - while(1) { - usleep(1000); - FOR_ALL_INSTS() out = drand48(); - } -} ----- - -=== logic - -This realtime component shows how to use "personality" to create -variable-size arrays and optional pins. - -[source,c] ----- -component logic "LinuxCNC HAL component providing experimental logic functions"; -pin in bit in-##[16 : personality & 0xff]; -pin out bit and if personality & 0x100; -pin out bit or if personality & 0x200; -pin out bit xor if personality & 0x400; -function _ nofp; -description """ -Experimental general 'logic function' component. Can perform 'and', 'or' -and 'xor' of up to 16 inputs. Determine the proper value for 'personality' -by adding: -.IP \\(bu 4 -The number of input pins, usually from 2 to 16 -.IP \\(bu -256 (0x100) if the 'and' output is desired -.IP \\(bu -512 (0x200) if the 'or' output is desired -.IP \\(bu -1024 (0x400) if the 'xor' (exclusive or) output is desired"""; -license "GPLv2 or later"; -;; -FUNCTION(_) { - int i, a=1, o=0, x=0; - for(i=0; i < (personality & 0xff); i++) { - if(in(i)) { o = 1; x = !x; } - else { a = 0; } - } - if(personality & 0x100) and = a; - if(personality & 0x200) or = o; - if(personality & 0x400) xor = x; -} ----- - -A typical load line for this component might be - ----- -loadrt logic count=3 personality=0x102,0x305,0x503 ----- -which creates the following pins: - - - A 2-input AND gate: logic.0.and, logic.0.in-00, logic.0.in-01 - - 5-input AND and OR gates: logic.1.and, logic.1.or, logic.1.in-00, - logic.1.in-01, logic.1.in-02, logic.1.in-03, logic.1.in-04, - - 3-input AND and XOR gates: logic.2.and, logic.2.xor, logic.2.in-00, - logic.2.in-01, logic.2.in-02 - - diff --git a/docs/src/hal/comp_fr.txt b/docs/src/hal/comp_fr.txt deleted file mode 100644 index 50343019d1d..00000000000 --- a/docs/src/hal/comp_fr.txt +++ /dev/null @@ -1,685 +0,0 @@ -:lang: fr -:toc: - -= comp: outil pour créer les modules HAL - -[[cha:comp-hal-component-generator]] (((Comp HAL Component Generator))) - -== Introduction - -Écrire un composant de HAL peut se révéler être une tâche ennuyeuse, -la plupart de cette tâche consiste à appeler des fonctions _rtapi_ et -_hal_ et à contrôler les erreurs associées à ces fonctions. _comp_ va -écrire tout ce code pour vous, automatiquement. - -Compiler un composant de HAL est également beaucoup plus simple en -utilisant _comp_ , que le composant fasse partie de l'arborescence -de LinuxCNC, ou qu'il en soit extérieur. - -Par exemple, cette portion des blocs _ddt_, codée en C, fait environ 80 lignes -de code, alors que le composant équivalent est vraiment très court quand il est -créé en utilisant le préprocesseur _comp_. - -.Exemple pour comp [[code:exemple-comp]] ----- -component ddt "Calcule la dérivée de la fonction d'entrée"; -pin in float in; -pin out float out; -variable float old; -function _; -license "GPLv2 or later"; -;; -float tmp = in; -out = (tmp - old) / fperiod; -old = tmp; ----- - -== Installation - -Si une version pré-installée de LinuxCNC est utilisée, il sera nécessaire -d'installer les paquets de développement en passant par Synaptic depuis le menu -_Système → Administration → Gestionnaire de paquets Synaptic_ ou en utilisant -la commande suivante dans un terminal: - -.Installation des paquets de développement ----- -sudo apt-get install linuxcnc-dev ----- - -== Définitions - -component:: - Un composant est un simple module temps réel, qui se charge avec - _halcmd loadrt_. Un fichier _.comp_ spécifie un seul composant. - -instance:: - Un composant peut avoir zéro ou plusieurs instances. Chaque instance - d'un composant est créée égale (elles ont toutes les mêmes pins, les - mêmes paramètres, les mêmes fonctions et les mêmes données) mais elle - se comporte de manière différente quand leurs pins, leurs paramètres et - leur données ont des valeurs différentes. - -singleton:: - Il est possible pour un composant d'être un _singleton_ (composant - dont il n'existe qu'une seule instance), dans ce cas, exactement une - seule instance est créée. Il est rarement logique d'écrire un composant - _singleton_ , à moins qu'il n'y ait qu'un seul objet de ce type dans le - système - (par exemple, un composant ayant pour but de fournir une pin avec le - temps Unix courant, ou un pilote matériel pour le haut parleur interne - du PC) - -== Création d'instance - -Pour un singleton, une seule instance est créée quand le composant est -chargé. - -Pour un non-singleton, le paramètre _count_ du module détermine -combien d'instances seront créées. - -== Paramètres implicites - -Le paramètres _period_ est implicitement passé aux fonctions, c'est la durée, -en nanosecondes, de la dernière période d'exécution du comp. Les fonctions qui -utilisent des flottants peuvent aussi se référer à _fperiod_, qui est la durée -en secondes, soit (period*1e-9). Cela peut être utile pour les comps ayant -besoin de l'information de timming. - -== Syntaxe - -Un fichier _.comp_ commence par un certain nombre de déclarations, -puis par un délimiteur constitué de deux points virgule _;;_ seuls sur leur -propre ligne et enfin du code C implémentant les fonctions du module. - -Déclarations d'include: - -* _component HALNAME (DOC);_ -* _pin PINDIRECTION TYPE HALNAME ([SIZE]|[MAXSIZE : CONDSIZE]) (if CONDITION) (= STARTVALUE) (DOC);_ -* _param PARAMDIRECTION TYPE HALNAME ([SIZE]|[MAXSIZE : CONDSIZE]) (if CONDITION) (= STARTVALUE) (DOC);_ -* _function HALNAME (fp | nofp) (DOC);_ -* _option OPT (VALUE);_ -* _variable CTYPE NAME ([SIZE]);_ -* _description DOC;_ -* _see_also DOC;_ -* _license LICENSE;_ -* _author AUTHOR;_ - -Les parenthèses indiquent un item optionnel. Une barre verticale -indique une alternative. Les mots en _MAJUSCULES_ indiquent une variable -texte, comme ci-dessous: - -NAME:: - Un identifiant C standard. - -STARREDNAME:: - Un identifiant C, précédé ou non d'une _*_. Cette syntaxe est utilisée - pour déclarer les variables qui sont des pointeurs. Noter qu'à cause de la - grammaire, il ne doit pas y avoir d'espace entre _*_ et le nom de la - variable. - -HALNAME:: - Un identifiant étendu. Lorsqu'ils sont utilisés pour créer un identifiant - de HAL, tous les caractères soulignés sont remplacés par des tirets, - tous les points et les virgules de fin, sont supprimés, ainsi *ce_nom_* - est remplacé par *ce-nom*, si le nom est `"_"`, alors le point final est - enlevé aussi, ainsi `"function_"` donne un nom de fonction HAL tel que - `"component."` au lieu de `"component.."` - -S'il est présent, le préfixe _hal__ est enlevé du début d'un nom de -composant lors de la création des pins, des paramètres et des fonctions. - -Dans l'identifiant de HAL pour une pin ou un paramètre, _#_ indique un -membre de tableau, il doit être utilisé conjointement avec une -déclaration _[SIZE]_. Les _hash marks_ sont remplacées par des nombres -de 0-barrés équivalents aux nombres de caractères #. - -Quand ils sont utilisés pour créer des identifiants C, les changements -de caractères suivants sont appliqués au HALNAME: - - . Tous les caractères "`#`" sont enlevés ainsi que tous les caractères - "`.`", "`_`" ou "`-`" immédiatement devant eux. - . Dans un nom, tous les caractères "`.`" et "`-`" sont remplacés par "`_`". - . Les caractères "`__`" répétitifs sont remplacés par un seul caractère "`_`". - -Un "`_`" final est maintenu, de sorte que les identifiants de HAL, qui -autrement seraient en conflit avec les noms ou mots clé réservés (par -exemple: _min_), puissent être utilisés. - -[width="90%", options="header"] -|======================================== -|HALNAME | Identifiant C | Identifiant HAL -|x_y_z | x_y_z | x-y-z -|x-y.z | x_y_z | x-y.z -|x_y_z_ | x_y_z_ | x-y-z -|x.##.y | x_y(MM) | x.MM.z -|x.## | x(MM) | x.MM -|======================================== - -if CONDITION:: - Une expression impliquant la _personnalité_ d'une variable non nulle - quand la variable ou le paramètre doit être - créé. - -SIZE:: - Un nombre donnant la taille d'un tableau. Les items des tableaux sont - numérotés de 0 à _SIZE_-1. - -MAXSIZE : CONDSIZE:: - Un nombre donnant la taille maximum d'un tableau, suivi d'une - expression impliquant la _personnalité_ d'une variable et qui aura - toujours une valeur inférieure à _MAXSIZE_. Quand le tableau est créé - sa taille est égale à _CONDSIZE_. - -DOC:: - Une chaine qui documente l'item. La chaine doit être au format C, - entre guillemets, comme _"Sélectionnez le front désiré: TRUE pour - descendant, FALSE pour montant"_ ou au format Python triples - guillemets, pouvant inclure des - caractères newlines et des guillemets, comme: - param rw bit zot=TRUE - La chaine de documentation est en format _groff -man_. Pour plus - d'informations sur ce format de markup, voyez _groff_man(7)_ . Souvenez - vous que comp interprète backslash comme Echap dans les - chaines, ainsi par exemple pour passer le mot _example_ en font - italique, écrivez _\\fIexample\\fB_. - -TYPE:: - Un des types de HAL: _bit_, _signed_ (signé), _unsigned_ (non signé) - ou _float_ (flottant). Les anciens noms _s32_ et _u32_ peuvent encore - être utilisés, mais _signed_ et _unsigned_ sont préférables. - -PINDIRECTION:: - Une des ces directions: _in_, _out_, ou _io_ . Le composant pourra - positionner la valeur d'une pin de sortie, il - pourra lire la valeur sur une pin d'entrée et il pourra lire ou - positionner la valeur d'une pin _io_. - -PARAMDIRECTION:: - Une des valeurs suivantes: _r_ ou _rw_. Le composant pourra - positionner la valeur d'un paramètre _r_ et il pourra positionner ou - lire la valeur d'un paramètre rw. - -STARTVALUE:: - Spécifie la valeur initiale d'une pin ou d'un paramètre. Si il n'est - pas spécifié, alors la valeur par défaut est _0_ ou _FALSE_, selon le - type de l'item. - -=== Fonctions HAL - -fp:: - Indique que la fonction effectuera ses calculs en virgule flottante. - -nofp:: - Indique que la fonction effectuera ses calculs sur des entiers. Si il - n'est pas spécifié, _fp_ est utilisé. Ni comp ni gcc ne peuvent - détecter l'utilisation de - calculs en virgule flottante dans les fonctions marquées _nofp_. - -=== Options - -Selon le nom de l'option OPT, les valeurs VALUE varient. Les options -actuellement définies sont les suivantes: - -OPT, VALUE: - option singleton yes;; - (défaut: no) - Ne crée pas le paramètre numéro de module et crée toujours une seule - instance. Avec _singleton_, les items sont nommés - _composant-name.item-name_ et sans _singleton_, les items des - différentes instances sont nommés _composant-name..item-name_. - - option default_count ;; - _number_ (défaut: 1) - Normalement, le paramètre _count_ par défaut est 0. Si spécifié, - _count_ remplace la valeur par défaut. - - option count_function yes;; - (défaut: no) - Normalement, le numéro des instances à créer est specifié dans le - paramètre _count_ du module, si _count_function_ est spécifié, la - valeur retournée par la fonction _int get_count(void)_ est - utilisée à la place de la valeur par défaut et le paramètre _count_ - du module n'est pas défini. - - option rtapi_app no;; - (défaut: yes) - Normalement, les fonctions _rtapi_app_main_ et _rtapi_app_exit_ sont - définies automatiquement. Avec _option rtapi_app no_, elles ne le - seront pas et doivent être fournies dans le code C. - - Quand vous implémentez votre propre _rtapi_app_main_, appellez la - fonction _int export(char _prefix, long extra_arg)_ pour enregistrer - les pins, paramètres et fonctions pour _préfix_er. - - option data ;; - _type_ (défaut: none) deprecated - If specified, each instance of the component will have an associated - data block of _type_ (which can be a simple type like _float_ or the - name of a type created with _typedef_). - - In new components, _variable_ should be used instead. - - option extra_setup yes;; - (défaut: no) - - option extra_cleanup yes;; - (défaut: no) - Si spécifié, appelle la fonction définie par _EXTRA_CLEANUP_ - depuis la fonction définie automatiquement _rtapi_app_exit_, - ou une erreur est détectée dans la fonction automatiquement - définie _rtapi_app_main_. - - option userspace yes;; - (défaut: no) - Si spécifié, ce fichier décrit un composant d'espace utilisateur, - plutôt que le réel. Un composant d'espace utilisateur peut ne pas avoir - de fonction définie par la directive de fonction. Au lieu de cela, - après que toutes les instances soient construites, la fonction C - _user_mainloop()_ est appelée. Dès la fin de cette fonction, le - composant se termine. - En règle générale, _user_mainloop()_ va utiliser _FOR_ALL_INSTS()_ - pour effectuer la mise à jour pour chaque action, puis attendre un - court instant. Une autre action commune dans _user_mainloop()_ peut - être d'appeler le gestionnaire de boucles d'événements d'une - interface graphique. - - option userinit yes;; - (défaut: no) - Si spécifiée, la fonction _userinit(argc,argv)_ est appelée avant - _rtapi_app_main()_ (et cela avant l'appel de _hal_init()_ ). Cette - fonction peut traiter les arguments de la ligne de commande - ou exécuter d'autres actions. Son type de retour est _void_; elle peut - appeler _exit()_ et si elle le veut, se terminer sans créer de - composant HAL (par exemple, parce que les arguments de la ligne de - commande sont invalides). - - Si aucune option VALUE n'est spécifiée, alors c'est équivalent à - spécifier la valeur _… yes_ . Le résultat consécutif à l'assignation - d'une valeur inappropriée à - une option est indéterminé. Le résultat consécutif à n'utiliser aucune - autre option est indéfini. - -=== Licence et auteur - -LICENSE:: - Spécifie la license du module, pour la documentation et pour le module - déclaré dans MODULE_LICENSE(). - -AUTHOR:: - Spécifie l'auteur du module, pour la documentation - -=== Stockage des données *par instance* - -variable :: - _CTYPE NAME_; - -variable :: - _CTYPE NAME_[_SIZE_]; - -variable :: - _CTYPE NAME = default_; - -variable :: - _CTYPE NAME_[_SIZE_] = _default_; - Déclare la variable _par-instance_ _NAME_ de type _CTYPE_, - optionnellement comme un tableau de _SIZE_ items et optionnellement - avec une valeur par default. Les items sans _default_ sont initialisés - _all-bits-zero_. _CTYPE_ est un simple mot de type C, comme _float_, - _u32_, _s32_, etc. - Les variables d'un tableau sont mises entre crochets. - -=== Commentaires - -Les commentaires de style C++ une ligne (_// …_) et de style C -multi-lignes (_/_ … _/_) sont supportés tous les deux dans la section -déclaration. - -== Restrictions sur les fichiers comp - -Bien que HAL permette à une pin, un paramètre et une fonction d'avoir -le même nom, comp ne le permet pas. - -Les noms de variable et de fonction qui ne doivent pas être utilisés ou -qui posent problème sont les suivants: - -* Tous noms commençant par ___comp__. - -* _comp_id_ - -* _fperiod_ - -* _rtapi_app_main_ - -* _rtapi_app_exit_ - -* _extra_setup_ - -* _extra_cleanup_ - - -== Conventions des macros - -En se basant sur les déclarations des items de section, _comp_ crée -une structure C appellée _structure d'état_ . Cependant, au lieu de -faire référence aux membres de cette structure - (par exemple: _*(inst->name)_ ), il leur sera généralement fait -référence en utilisant les macros -ci-dessous. Certains détails de la structure d'état et de ces macros -peuvent différer d'une version de _comp_ à la suivante. - -FUNCTION(name):: - Cette macro s'utilise au début de la définition d'une fonction temps - réel qui aura été précédemment déclarée avec _function NAME_. - function inclus un paramètre _period_ qui est le nombre entier de - nanosecondes entre les appels à la - fonction. - -EXTRA_SETUP():: - Cette macro s'utilise au début de la définition de la fonction appelée - pour exécuter les réglages complémentaires à cette instance. Une valeur - de retour négative Unix _errno_ indique un défaut (par exemple: _elle - retourne -EBUSY_ comme défaut à la réservation d'un port - d'entrées/sorties), une - valeur égale à 0 indique le succés. - -EXTRA_CLEANUP():: - Cette macro s'utilise au début de la définition de la fonction appelée - pour exécuter un nettoyage (cleanup) du composant. Noter que cette - fonction doit nettoyer toutes les instances du composant, pas juste un. - Les macros _pin_name_, _parameter_name_ et _data_ ne doivent pas être - utilisées ici. - -pin_name ou parameter_name:: - Pour chaque pin, _pin_name_ ou pour chaque paramètre, - _parameter_name_ il y a une macro qui permet d'utiliser le nom seul - pour faire référence à la pin ou au paramètre. - Quand _pin_name_ ou _parameter_name_ sont des tableaux, la macro est - de la forme _pin_name(idx)_ ou _param_name(idx)_ dans laquelle _idx_ - est l'index dans le tableau de pins. Quand le tableau est de taille - variable, il est seulement légal de faire référence aux items par - leurs _condsize_. -+ - Quand un item est conditionnel, il est seulement légal de faire - référence à cet item quand ses conditions sont évaluées à des - valeurs différentes de zéro. - -variable_name:: - Pour chaque variable, _il y a une macro variable_name_ qui permet au - nom seul d'être utilisé pour faire référence à la - variable. Quand _variable_name_ est un tableau, le style normal de C - est utilisé: _variable_name[idx]_ - -data:: - Si l'_option data_ est spécifiée, cette macro permet l'accès à - l'instance de la donnée. - -fperiod:: - Le nombre de secondes en virgule flottante entre les appels à cette - fonction temps réel. - -FOR_ALL_INSTS() {*…*}:: - Pour les composants de l'espace utilisateur. Cette macro utilise - la variable *struct state _inst_ pour itérer au dessus de toutes - les instances définies. Dans le corps - de la boucle, les macros _pin_name_, _parameter_name_ et _data_ - travaillent comme elles le font dans les fonctions temps réel. - -== Composants avec une seule fonction - -Si un composant a seulement une fonction et que la chaine _FUNCTION_ -n'apparaît nulle part après _;;_, alors la portion après _;;_ est -considérée comme étant le corps d'un composant simple fonction. - -== Personnalité du composant - -Si un composant a n'importe combien de pins ou de paramètres avec un -if condition ou _[maxsize : condsize]_, il est appelé un -composant avec personnalité. La personnalité de chaque instance -est spécifiée quand le module -est chargé. La personnalité peut être utilisée pour créer les pins -seulement quand c'est nécessaire. Par exemple, la personnalité peut -être utilisée dans un composant logique, pour donner un nombre variable -de broches d'entrée à chaque porte logique et permettre la sélection de - n'importe quelle fonction de logique booléenne de base _and_, _or_ et -_xor_. - -== Compiler un fichier _.comp_ dans l'arborescence - -Placer le fichier _.comp_ dans le répertoire _linuxcnc/src/hal/components_ -et lancer/relancer _make_. Les fichiers Comp sont automatiquement -détectés par le système de compilation. - -Si un fichier _.comp_ est un pilote de périphérique, il peut être -placé dans _linuxcnc/src/hal/components_ et il y sera construit excepté si -LinuxCNC est configuré en mode -simulation. - -== Compiler un composant temps réel hors de l'arborescence[[sec:Compiler-composants-rt]] -(((Compiling realtime components outside the source tree))) - -_comp_ peut traiter, compiler et installer un composant temps réel en -une - seule étape, en plaçant _rtexample.ko_ dans le répertoire du module -temps réel de LinuxCNC: - - comp --install rtexample.comp - -Ou il peut aussi être traité et compilé en une seule étape en laissant -_example.ko_ (ou _example.so_ pour la simulation) dans le répertoire -courant: - - comp --compile rtexample.comp - -Ou il peut simplement être traité en laissant _example.c_ dans le -répertoire courant: - - comp rtexample.comp - -_comp_ peut aussi compiler et installer un composant écrit en C, en -utilisant _les options --install_ et _--compile_ comme ci-dessous: - - comp --install rtexample2.c - -La documentation au format man peut être créée à partir des -informations de la section _declaration_: - - comp --document rtexample.comp - -La manpage résultante, _exemple.9_ peut être lue avec: - - man ./exemple.9 - -ou copiée à un emplacement standard pour une page de manuel. - -== Compiler un composant de l'espace utilisateur hors de l'arborescence - -_comp_ peut traiter, compiler et installer un document de l'espace -utilisateur: - - comp usrexample.comp - -Cela fonctionne seulement pour les fichiers _.comp_ mais pas pour les -fichiers _.c_. - -== Exemples - -=== constant - -Ce composant fonctionne comme dans _blocks_, y compris la valeur par -défaut à 1.0. La déclaration _function __ crée les fonctions nommées -_constant.0_, etc. - - component constant; - -=== sincos - -Ce composant calcule le sinus et le cosinus d'un angle entré en -radians. Il a différentes possibilités comme les sorties _sinus_ et -_cosinus_ de siggen, parce que l'entrée est un angle au lieu d'être -librement basé sur un paramètre _frequency_. - -Les pins sont déclarées avec les noms _sin__ et _cos__ dans le code -source pour que ça n'interfère pas avec les fonctions _sin()_ et -_cos()_. Les pins de HAL sont toujours appelées _sincos..sin_. - - component sincos; - -=== out8 - -Ce composant est un pilote pour une carte imaginaire appelée _out8_, -qui a 8 pins de sortie digitales qui sont traitées comme une simple -valeur sur 8 bits. Il peut y avoir un nombre quelconque de ces cartes -dans le système et elles peuvent avoir des adresses variées. La pin est -appelée _out__ parce que _out_ est un identifiant utilisé dans -__. Il illustre l'utilisation de _EXTRA_SETUP_ et de -_EXTRA_CLEANUP_ pour sa requête de région d'entrées/sorties et libère -cette région en -cas d'erreur ou quand le module est déchargé. - - -[source,c] ----- -component out8; -pin out unsigned out_ "Output value; only low 8 bits are used"; -param r unsigned ioaddr; - -function _; - -option count_function; -option extra_setup; -option extra_cleanup; -option constructable no; - -license "GPL"; -;; -#include - -#define MAX 8 -int io[MAX] = {0,}; -RTAPI_MP_ARRAY_INT(io, MAX, "I/O addresses of out8 boards"); - -int get_count(void) { - int i = 0; - for(i=0; i - -void user_mainloop(void) { - while(1) { - usleep(1000); - FOR_ALL_INSTS() out = drand48(); - } -} ----- - -=== logic - -Ce composant temps réel montre l'utilisation de la personnalité pour -créer un tableau de taille variable et des pins optionnelles. - -[source,c] ----- -component logic "LinuxCNC HAL component providing experimental logic functions"; -pin in bit in-##[16 : personality & 0xff]; -pin out bit and if personality & 0x100; -pin out bit or if personality & 0x200; -pin out bit xor if personality & 0x400; -function _ nofp; -description """ -Experimental general logic function component. Can perform and, or -and xor of up to 16 inputs. Determine the proper value for personality -by adding: -.IP \\(bu 4 -The number of input pins, usually from 2 to 16 -.IP \\(bu -256 (0x100) if the and output is desired -.IP \\(bu -512 (0x200) if the or output is desired -.IP \\(bu -1024 (0x400) if the xor (exclusive or) output is desired"""; -license "GPL"; -;; -FUNCTION(_) { - int i, a=1, o=0, x=0; - for(i=0; i < (personality & 0xff); i++) { - if(in(i)) { o = 1; x = !x; } - else { a = 0; } - } - if(personality & 0x100) and = a; - if(personality & 0x200) or = o; - if(personality & 0x400) xor = x; -} ----- - -Une ligne de chargement typique pourrait être: ----- - loadrt logic count=3 personality=0x102,0x305,0x503 ----- - -qui créerait les pins suivantes: - - - Une porte AND à 2 entrées: logic.0.and, logic.0.in-00, logic.0.in-01 - - des portes AND et OR à 5 entrées: logic.1.and, logic.1.or, - logic.1.in-00, logic.1.in-01, logic.1.in-02, logic.1.in-03, - logic.1.in-04, - - des portes AND et XOR à 3 entrées: logic.2.and, logic.2.xor, - logic.2.in-00, logic.2.in-01, logic.2.in-02 - - diff --git a/docs/src/hal/components.txt b/docs/src/hal/components.txt deleted file mode 100644 index 73fa6ea9670..00000000000 --- a/docs/src/hal/components.txt +++ /dev/null @@ -1,430 +0,0 @@ -= HAL Components - -[[cha:HAL-components]] (((HAL Components))) - -== Commands and Userspace Components[[sec:Commands-and-Userspace-Components]] - -All of the commands in the following list have man pages. -Some will have expanded descriptions, some will have limited descriptions. -Also, all of the components listed below have man pages. -From these two lists you know what components exist, -and you can use 'man n name' to get additional information. -To view the information in the man page, in a terminal window type: - ----- -man axis (or perhaps 'man 1 axis' if your system requires it.) ----- - - -axis:: AXIS LinuxCNC (The Enhanced Machine Controller) Graphical User Interface. -axis-remote:: AXIS Remote Interface. -comp:: Build, compile and install LinuxCNC HAL components. -emc:: LinuxCNC (The Enhanced Machine Controller). -gladevcp:: Virtual Control Panel for LinuxCNC based on Glade, Gtk and HAL widgets. -gs2:: HAL userspace component for Automation Direct GS2 VFD's. -halcmd:: Manipulate the Enhanced Machine Controller HAL from the command line. -hal_input:: Control HAL pins with any Linux input device, including USB HID devices. -halmeter:: Observe HAL pins, signals, and parameters. -halrun:: Manipulate the Enhanced Machine Controller HAL from the command line. -halsampler:: Sample data from HAL in realtime. -halstreamer:: Stream file data into HAL in real time. -halui:: Observe HAL pins and command LinuxCNC through NML. -io:: Accepts NML I/O commands, interacts with HAL in userspace. -iocontrol:: Accepts NML I/O commands, interacts with HAL in userspace. -pyvcp:: Virtual Control Panel for LinuxCNC. -shuttlexpress:: control HAL pins with the ShuttleXpress device made by Contour Design. - -== Realtime Components List[[sec:Realtime-Components]] - -Some of these will have expanded descriptions from the man pages. Some -will have limited descriptions. All of the components have man pages. -From this list you know what components exist and can use 'man n name' to -get additional information in a terminal window. - -[NOTE] -If the component requires a floating point thread that is usually the slower -servo-thread. - -=== Core LinuxCNC components[[sec:Realtime-Components-core]] === - -motion:: (((motion)))Accepts NML motion commands, interacts with HAL in realtime. - -axis:: (((axis)))Accepts NML motion commands, interacts with HAL in realtime. - -classicladder:: (((classicladder)))Realtime software PLC based on ladder logic. See Classic Ladder manual for more information. - -gladevcp:: (((gladevcp)))Displays Virtual Control Panels built with GTK/Glade. - -threads:: (((threads)))Creates hard realtime HAL threads. - -=== Logic and bitwise components[[sec:Realtime-Components-logic]] - -and2:: (((and2)))Two-input AND gate. For out to be true both inputs must be true. - -not:: (((not)))Inverter. - -or2:: (((or2)))Two-input OR gate. - -xor2:: (((xor2)))Two-input XOR (exclusive OR) gate. - -debounce:: (((debounce)))Filter noisy digital inputs. <> - -edge:: (((edge)))Edge detector. - -flipflop:: (((flipflop)))D type flip-flop. - -oneshot:: (((oneshot)))One-shot pulse generator. - -logic:: (((logic)))General logic function component. - -lut5:: (((lut5)))A 5-input logic function based on a look-up table. <> - -match8:: (((match8)))8-bit binary match detector. - -select8:: (((select8)))8-bit binary match detector. - -=== Arithmetic and float-components[[sec:Realtime-Components-float]] === - -abs:: [[sub:abs]](((abs)))Compute the absolute value and sign of the input signal. - -blend:: (((blend)))Perform linear interpolation between two values. - -comp:: (((comp)))Two input comparator with hysteresis. - -constant:: (((constant)))Use a parameter to set the value of a pin. - -sum2:: (((sum2)))Sum of two inputs (each with a gain) and an offset. - -counter:: (((counter)))Counts input pulses (deprecated). -Use the <> component. - -updown:: (((updown)))Counts up or down, with optional limits and wraparound behavior. - -ddt:: (((ddt)))Compute the derivative of the input function. - -deadzone:: (((deadzone)))Return the center if within the threshold. - -hypot:: (((hypot)))Three-input hypotenuse (Euclidean distance) calculator. - -mult2:: (((mult2)))Product of two inputs. - -mux16:: (((mux16)))Select from one of sixteen input values. - -mux2:: (((mux2)))Select from one of two input values. - -mux4:: (((mux4)))Select from one of four input values. - -mux8:: (((mux8)))Select from one of eight input values. - -near:: (((near)))Determine whether two values are roughly equal. - -offset:: (((offset)))Adds an offset to an input, and subtracts it from the feedback value. - -integ:: (((integ)))Integrator. - -invert:: (((invert)))Compute the inverse of the input signal. - -wcomp:: (((wcomp)))Window comparator. - -weighted_sum:: (((weighted_sum)))Convert a group of bits to an integer. - -biquad:: (((biquad)))Biquad IIR filter - -lowpass:: (((lowpass)))Low-pass filter - -limit1:: (((limit1)))Limit the output signal to fall between min and max. footnote:[When the input -is a position, this means that the 'position' is limited.] - -limit2:: (((limit2)))Limit the output signal to fall between min and max. -Limit its slew rate to less than maxv per second. footnote:[When the input -is a position, this means that 'position' and 'velocity' are limited.] - -limit3:: (((limit3)))Limit the output signal to fall between min and max. -Limit its slew rate to less than maxv per second. -Limit its second derivative to less than MaxA per second squared. footnote:[When -the input is a position, this means that the 'position', 'velocity', and -'acceleration' are limited.] - -maj3:: (((maj3)))Compute the majority of 3 inputs. - -scale:: (((scale)))Applies a scale and offset to its input. - -=== Type conversion[[sec:Realtime-Components-typeconvert]] === - - - -conv_bit_s32:: (((conv_bit_s32)))Convert a value from bit to s32. - -conv_bit_u32:: (((conv_bit_u32)))Convert a value from bit to u32. - -conv_float_s32:: (((conv_float_s32)))Convert a value from float to s32. - -conv_float_u32:: (((conv_float_u32)))Convert a value from float to u32. - -conv_s32_bit:: (((conv_s32_bit)))Convert a value from s32 to bit. - -conv_s32_float:: (((conv_s32_float)))Convert a value from s32 to float. - -conv_s32_u32:: (((conv_s32_u32)))Convert a value from s32 to u32. - -conv_u32_bit:: (((conv_u32_bit)))Convert a value from u32 to bit. - -conv_u32_float:: (((conv_u32_float)))Convert a value from u32 to float. - -conv_u32_s32:: (((conv_u32_s32)))Convert a value from u32 to s32. - -=== Hardware drivers[[sec:Realtime-Components-hwdrivers]] === - - - -hm2_7i43:: (((hm2_7i43)))HAL driver for the Mesa Electronics 7i43 EPP Anything IO board with -HostMot2. - -hm2_pci:: (((hm2_pci)))HAL driver for the Mesa Electronics 5i20, 5i22, 5i23, 4i65, and 4i68 -Anything I/O boards, with HostMot2 firmware. - -hostmot2:: (((hostmot2)))HAL driver for the Mesa Electronics HostMot2 firmware. - -mesa_7i65:: (((7i65)))Support for the Mesa 7i65 eight-axis servo card. - -pluto_servo:: (((pluto_servo)))Hardware driver and firmware for the Pluto-P parallel-port FPGA, for -use with servos. - -pluto_step:: (((pluto_step)))Hardware driver and firmware for the Pluto-P parallel-port FPGA, for -use with steppers. - -thc:: (((torch height control)))Torch Height Control using a Mesa THC card. - -serport:: (((serport)))Hardware driver for the digital I/O bits of the 8250 and 16550 serial port. - -=== Kinematics[[sec:Realtime-Components-kins]] === - - - -kins:: (((kins)))kinematics definitions for LinuxCNC. - -gantrykins:: (((gantrykins)))A kinematics module that maps one axis to multiple joints. - -genhexkins:: (((genhexkins)))Gives six degrees of freedom in position and orientation (XYZABC). -The location of the motors is defined at compile time. - -genserkins:: (((genserkins)))Kinematics that can model a general serial-link manipulator with up to -6 angular joints. - -maxkins:: (((maxkins)))Kinematics for a tabletop 5 axis mill named 'max' with tilting head (B axis) and -horizontal rotary mounted to the table (C axis). -Provides UVW motion in the rotated coordinate system. -The source file, maxkins.c, may be a useful starting point for other 5-axis systems. - -tripodkins:: (((tripodkins)))The joints represent the distance of the controlled point from three -predefined locations (the motors), giving three degrees of freedom in -position (XYZ). - -trivkins:: (((trivkins)))There is a 1:1 correspondence between joints and axes. Most standard -milling machines and lathes use the trivial kinematics module. - -pumakins:: (((pumakins)))Kinematics for PUMA-style robots. - -rotatekins:: (((rotatekins)))The X and Y axes are rotated 45 degrees compared to the joints 0 and 1. - -scarakins:: (((scarakins)))Kinematics for SCARA-type robots. - -=== Motor control[[sec:Realtime-Components-motor]] === - - - -at_pid:: (((at_pid)))Proportional/integral/derivative controller with auto tuning. - -pid:: (((pid)))Proportional/integral/derivative controller. <> - -pwmgen:: (((pwmgen)))Software PWM/PDM generation. <> - -encoder:: (((encoder)))Software counting of quadrature encoder signals. <>. - -stepgen:: (((stepgen)))Software step pulse generation. <>. - -=== BLDC and 3-phase motor control[[sec:Realtime-Components-bldc]] === - - - -bldc_hall3:: (((bldc_hall3)))3-wire Bipolar trapezoidal commutation BLDC motor driver using Hall sensors. - -clarke2:: (((clarke2)))Two input version of Clarke transform. - -clarke3:: (((clarke3)))Clarke (3 phase to cartesian) transform. - -clarkeinv:: (((clarkeinv)))Inverse Clarke transform. - -=== Other[[sec:Realtime-Components-other]] === - - - -charge_pump:: (((charge_pump)))Creates a square-wave for the 'charge pump' input of some controller boards. -The 'Charge Pump' should be added to the base thread function. When enabled the output is on for one period and off for one period. To calculate the frequency of the output 1/(period time in seconds x 2) = hz. For example if you have a base period of 100,000ns that is 0.0001 seconds and the formula would be 1/(0.0001 x 2) = 5,000 hz or 5 Khz. - -encoder_ratio:: (((encoder_ratio)))An electronic gear to synchronize two axes. - -estop_latch:: (((estop_latch)))ESTOP latch. - -feedcomp:: (((feedcomp)))Multiply the input by the ratio of current velocity to the feed rate. - -gearchange:: (((gearchange)))Select from one of two speed ranges. - -ilowpass:: [[ilowpass]] (((ilowpass)))While it may find other applications, -this component was written to create smoother motion while jogging with an MPG. -+ -In a machine with high acceleration, a short jog can behave almost like a step -function. By putting the ilowpass component between the MPG encoder counts -output and the axis jog-counts input, this can be smoothed. -+ -Choose scale conservatively so that during a single session there will never -be more than about 2e9/scale pulses seen on the MPG. Choose gain according -to the smoothing level desired. Divide the axis.N.jog-scale values by scale. - -joyhandle:: (((joyhandle)))Sets nonlinear joypad movements, deadbands and scales. - -knob2float:: (((knob2float)))Convert counts (probably from an encoder) to a float value. - -minmax:: (((minmax)))Track the minimum and maximum values of the input to the outputs. - -sample_hold:: (((sample_hold)))Sample and Hold. - -sampler:: (((sampler)))Sample data from HAL in real time. - -siggen:: (((siggen)))Signal generator. <>. - -sim_encoder:: (((sim_encoder)))Simulated quadrature encoder. <>. - -sphereprobe:: (((sphereprobe)))Probe a pretend hemisphere. - -steptest:: (((steptest)))Used by Stepconf to allow testing of acceleration and velocity values for an axis. - -streamer:: (((streamer)))Stream file data into HAL in real time. - -supply:: (((supply)))Set output pins with values from parameters (deprecated). - -threadtest:: (((threadtest)))Component for testing thread behavior. - -time:: (((time)))Accumulated run-time timer counts HH:MM:SS of 'active' input. - -timedelay:: (((timedelay)))The equivalent of a time-delay relay. - -timedelta:: (((timedelta)))Component that measures thread scheduling timing behavior. - -toggle2nist:: (((toggle2nist)))Toggle button to nist logic. - -toggle:: (((toggle)))Push-on, push-off from momentary pushbuttons. - -tristate_bit:: (((tristate_bit)))Place a signal on an I/O pin only when enabled, similar to a tristate -buffer in electronics. - -tristate_float:: (((tristate_float)))Place a signal on an I/O pin only when enabled, similar to a tristate -buffer in electronics. - - - -watchdog:: (((watchdog)))Monitor one to thirty-two inputs for a 'heartbeat'. - - -== HAL API calls -.... -hal_add_funct_to_thread.3hal -hal_bit_t.3hal -hal_create_thread.3hal -hal_del_funct_from_thread.3hal -hal_exit.3hal -hal_export_funct.3hal -hal_float_t.3hal -hal_get_lock.3hal -hal_init.3hal -hal_link.3hal -hal_malloc.3hal -hal_param_bit_new.3hal -hal_param_bit_newf.3hal -hal_param_float_new.3hal -hal_param_float_newf.3hal -hal_param_new.3hal -hal_param_s32_new.3hal -hal_param_s32_newf.3hal -hal_param_u32_new.3hal -hal_param_u32_newf.3hal -hal_parport.3hal -hal_pin_bit_new.3hal -hal_pin_bit_newf.3hal -hal_pin_float_new.3hal -hal_pin_float_newf.3hal -hal_pin_new.3hal -hal_pin_s32_new.3hal -hal_pin_s32_newf.3hal -hal_pin_u32_new.3hal -hal_pin_u32_newf.3hal -hal_ready.3hal -hal_s32_t.3hal -hal_set_constructor.3hal -hal_set_lock.3hal -hal_signal_delete.3hal -hal_signal_new.3hal -hal_start_threads.3hal -hal_type_t.3hal -hal_u32_t.3hal -hal_unlink.3hal -intro.3hal -undocumented.3hal -.... - -== RTAPI calls -.... -EXPORT_FUNCTION.3rtapi -MODULE_AUTHOR.3rtapi -MODULE_DESCRIPTION.3rtapi -MODULE_LICENSE.3rtapi -RTAPI_MP_ARRAY_INT.3rtapi -RTAPI_MP_ARRAY_LONG.3rtapi -RTAPI_MP_ARRAY_STRING.3rtapi -RTAPI_MP_INT.3rtapi -RTAPI_MP_LONG.3rtapi -RTAPI_MP_STRING.3rtapi -intro.3rtapi -rtapi_app_exit.3rtapi -rtapi_app_main.3rtapi -rtapi_clock_set_period.3rtapi -rtapi_delay.3rtapi -rtapi_delay_max.3rtapi -rtapi_exit.3rtapi -rtapi_get_clocks.3rtapi -rtapi_get_msg_level.3rtapi -rtapi_get_time.3rtapi -rtapi_inb.3rtapi -rtapi_init.3rtapi -rtapi_module_param.3rtapi -RTAPI_MP_ARRAY_INT.3rtapi -RTAPI_MP_ARRAY_LONG.3rtapi -RTAPI_MP_ARRAY_STRING.3rtapi -RTAPI_MP_INT.3rtapi -RTAPI_MP_LONG.3rtapi -RTAPI_MP_STRING.3rtapi -rtapi_mutex.3rtapi -rtapi_outb.3rtapi -rtapi_print.3rtap -rtapi_prio.3rtapi -rtapi_prio_highest.3rtapi -rtapi_prio_lowest.3rtapi -rtapi_prio_next_higher.3rtapi -rtapi_prio_next_lower.3rtapi -rtapi_region.3rtapi -rtapi_release_region.3rtapi -rtapi_request_region.3rtapi -rtapi_set_msg_level.3rtapi -rtapi_shmem.3rtapi -rtapi_shmem_delete.3rtapi -rtapi_shmem_getptr.3rtapi -rtapi_shmem_new.3rtapi -rtapi_snprintf.3rtapi -rtapi_task_delete.3rtpi -rtapi_task_new.3rtapi -rtapi_task_pause.3rtapi -rtapi_task_resume.3rtapi -rtapi_task_start.3rtapi -rtapi_task_wait.3rtapi -.... - diff --git a/docs/src/hal/components_es.txt b/docs/src/hal/components_es.txt deleted file mode 100644 index 3e2504d8eeb..00000000000 --- a/docs/src/hal/components_es.txt +++ /dev/null @@ -1,399 +0,0 @@ -= HAL Components - -[[cha:HAL-components]] (((HAL Components))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Commands and Userspace Components[[sec:Commands-and-Userspace-Components]] - -All of the commands in the following list have man pages. -Some will have expanded descriptions, some will have limited descriptions. -Also, all of the components listed below have man pages. -From these two lists you know what components exist, -and you can use 'man n name' to get additional information. -To view the information in the man page, in a terminal window type: - ----- -man axis (or perhaps 'man 1 axis' if your system requires it.) ----- -[horizontal] -axis:: AXIS LinuxCNC (The Enhanced Machine Controller) Graphical User Interface. -axis-remote:: AXIS Remote Interface. -comp:: Build, compile and install LinuxCNC HAL components. -emc:: LinuxCNC (The Enhanced Machine Controller). -gladevcp:: Virtual Control Panel for LinuxCNC based on Glade, Gtk and HAL widgets. -gs2:: HAL userspace component for Automation Direct GS2 VFD's. -halcmd:: Manipulate the Enhanced Machine Controller HAL from the command line. -hal_input:: Control HAL pins with any Linux input device, including USB HID devices. -halmeter:: Observe HAL pins, signals, and parameters. -halrun:: Manipulate the Enhanced Machine Controller HAL from the command line. -halsampler:: Sample data from HAL in realtime. -halstreamer:: Stream file data into HAL in real time. -halui:: Observe HAL pins and command LinuxCNC through NML. -io:: Accepts NML I/O commands, interacts with HAL in userspace. -iocontrol:: Accepts NML I/O commands, interacts with HAL in userspace. -pyvcp:: Virtual Control Panel for LinuxCNC. -shuttlexpress:: control HAL pins with the ShuttleXpress device made by Contour Design. - -== Realtime Components[[sec:Realtime-Components]] - -Some of these will have expanded descriptions from the man pages. Some -will have limited descriptions. All of the components have man pages. -From this list you know what components exist and can use 'man n name' to -get additional information in a terminal window. - -[horizontal] -abs:: [[[sub:abs]](((abs)))Compute the absolute value and sign of the input signal. - -and2:: (((and2)))Two-input AND gate. For out to be true both inputs must be true. - -at_pid:: (((at_pid)))Proportional/integral/derivative controller with auto tuning. - -axis:: (((axis)))Accepts NML motion commands, interacts with HAL in realtime. - -biquad:: (((biquad)))Biquad IIR filter - -bldc_hall3:: (((bldc_hall3)))3-wire Bipolar trapezoidal commutation BLDC motor driver using Hall sensors. - -blend:: (((blend)))Perform linear interpolation between two values. - -charge_pump:: (((charge_pump)))Create a square-wave for the 'charge pump' input of some controller boards. - -clarke2:: (((clarke2)))Two input version of Clarke transform. - -clarke3:: (((clarke3)))Clarke (3 phase to cartesian) transform. - -clarkeinv:: (((clarkeinv)))Inverse Clarke transform. - -classicladder:: (((classicladder)))Realtime software PLC based on ladder logic. See Classic Ladder manual for more information. - -comp:: (((comp)))Two input comparator with hysteresis. - -constant:: (((constant)))Use a parameter to set the value of a pin. - -conv_bit_s32:: (((conv_bit_s32)))Convert a value from bit to s32. - -conv_bit_u32:: (((conv_bit_u32)))Convert a value from bit to u32. - -conv_float_s32:: (((conv_float_s32)))Convert a value from float to s32. - -conv_float_u32:: (((conv_float_u32)))Convert a value from float to u32. - -conv_s32_bit:: (((conv_s32_bit)))Convert a value from s32 to bit. - -conv_s32_float:: (((conv_s32_float)))Convert a value from s32 to float. - -conv_s32_u32:: (((conv_s32_u32)))Convert a value from s32 to u32. - -conv_u32_bit:: (((conv_u32_bit)))Convert a value from u32 to bit. - -conv_u32_float:: (((conv_u32_float)))Convert a value from u32 to float. - -conv_u32_s32:: (((conv_u32_s32)))Convert a value from u32 to s32. - -counter:: (((counter)))Counts input pulses (deprecated). -Use the 'encoder' component See <>. - -ddt:: (((ddt)))Compute the derivative of the input function. - -deadzone:: (((deadzone)))Return the center if within the threshold. - -debounce:: (((debounce)))Filter noisy digital inputs, for more information see <>. - -edge:: (((edge)))Edge detector. - -encoder:: (((encoder)))Software counting of quadrature encoder signals, for more information -see <>. - -encoder_ratio:: (((encoder_ratio)))An electronic gear to synchronize two axes. - -estop_latch:: (((estop_latch)))ESTOP latch. - -feedcomp:: (((feedcomp)))Multiply the input by the ratio of current velocity to the feed rate. - -flipflop:: (((flipflop)))D type flip-flop. - -gantrykins:: (((gantrykins)))A kinematics module that maps one axis to multiple joints. - -gearchange:: (((gearchange)))Select from one of two speed ranges. - -genhexkins:: (((genhexkins)))Gives six degrees of freedom in position and orientation (XYZABC). -The location of the motors is defined at compile time. - -genserkins:: (((genserkins)))Kinematics that can model a general serial-link manipulator with up to -6 angular joints. - -gladevcp:: (((gladevcp)))Displays Virtual Control Panels built with GTK/Glade. - -hm2_7i43:: (((hm2_7i43)))HAL driver for the Mesa Electronics 7i43 EPP Anything IO board with -HostMot2. - -hm2_pci:: (((hm2_pci)))HAL driver for the Mesa Electronics 5i20, 5i22, 5i23, 4i65, and 4i68 -Anything I/O boards, with HostMot2 firmware. - -hostmot2:: (((hostmot2)))HAL driver for the Mesa Electronics HostMot2 firmware. - -hypot:: (((hypot)))Three-input hypotenuse (Euclidean distance) calculator. - -ilowpass:: (((ilowpass)))Low-pass filter with integer inputs and outputs. - -integ:: (((integ)))Integrator. - -invert:: (((invert)))Compute the inverse of the input signal. - -joyhandle:: (((joyhandle)))Sets nonlinear joypad movements, deadbands and scales. - -kins:: (((kins)))kinematics definitions for LinuxCNC. - -knob2float:: (((knob2float)))Convert counts (probably from an encoder) to a float value. - -limit1:: (((limit1)))Limit the output signal to fall between min and max. footnote:[When the input -is a position, this means that the 'position' is limited.] - -limit2:: (((limit2)))Limit the output signal to fall between min and max. -Limit its slew rate to less than maxv per second. footnote:[When the input -is a position, this means that 'position' and 'velocity' are limited.] - -limit3:: (((limit3)))Limit the output signal to fall between min and max. -Limit its slew rate to less than maxv per second. -Limit its second derivative to less than MaxA per second squared. footnote:[When -the input is a position, this means that the 'position', 'velocity', and -'acceleration' are limited.] - -logic:: (((logic)))Experimental general logic function component. - -lowpass:: (((lowpass)))Low-pass filter - -lut5:: (((lut5)))Arbitrary 5-input logic function based on a look-up table. - -maj3:: (((maj3)))Compute the majority of 3 inputs. - -match8:: (((match8)))8-bit binary match detector. - -maxkins:: (((maxkins)))Kinematics for a tabletop 5 axis mill named 'max' with tilting head (B axis) and -horizontal rotary mounted to the table (C axis). -Provides UVW motion in the rotated coordinate system. -The source file, maxkins.c, may be a useful starting point for other 5-axis systems. - -mesa_7i65:: (((7i65)))Support for the Mesa 7i65 eight-axis servo card. - -minmax:: (((minmax)))Track the minimum and maximum values of the input to the outputs. - -motion:: (((motion)))Accepts NML motion commands, interacts with HAL in realtime. - -mult2:: (((mult2)))Product of two inputs. - -mux16:: (((mux16)))Select from one of sixteen input values. - -mux2:: (((mux2)))Select from one of two input values. - -mux4:: (((mux4)))Select from one of four input values. - -mux8:: (((mux8)))Select from one of eight input values. - -near:: (((near)))Determine whether two values are roughly equal. - -not:: (((not)))Inverter. - -offset:: (((offset)))Adds an offset to an input, and subtracts it from the feedback value. - -oneshot:: (((oneshot)))One-shot pulse generator. - -or2:: (((or2)))Two-input OR gate. - -pid:: (((pid)))Proportional/integral/derivative controller, for more information -see <>. - -pluto_servo:: (((pluto_servo)))Hardware driver and firmware for the Pluto-P parallel-port FPGA, for -use with servos. - -pluto_step:: (((pluto_step)))Hardware driver and firmware for the Pluto-P parallel-port FPGA, for -use with steppers. - -pumakins:: (((pumakins)))Kinematics for PUMA-style robots. - -pwmgen:: (((pwmgen)))Software PWM/PDM generation, for more information see <>. - -rotatekins:: (((rotatekins)))The X and Y axes are rotated 45 degrees compared to the joints 0 and 1. - -sample_hold:: (((sample_hold)))Sample and Hold. - -sampler:: (((sampler)))Sample data from HAL in real time. - -scale:: (((scale)))Applies a scale and offset to its input. - -scarakins:: (((scarakins)))Kinematics for SCARA-type robots. - -select8:: (((select8)))8-bit binary match detector. - -serport:: (((serport)))Hardware driver for the digital I/O bits of the 8250 and 16550 serial port. - -siggen:: (((siggen)))Signal generator, for more information see <>. - -sim_encoder:: (((sim_encoder)))Simulated quadrature encoder, for more information see <>. - -sphereprobe:: (((sphereprobe)))Probe a pretend hemisphere. - -stepgen:: (((stepgen)))Software step pulse generation, for more information see <>. - -steptest:: (((steptest)))Used by Stepconf to allow testing of acceleration and velocity values for an axis. - -streamer:: (((streamer)))Stream file data into HAL in real time. - -sum2:: (((sum2)))Sum of two inputs (each with a gain) and an offset. - -supply:: (((supply)))Set output pins with values from parameters (deprecated). - -thc:: (((torch height control)))Torch Height Control using a Mesa THC card. - -threads:: (((threads)))Creates hard realtime HAL threads. - -threadtest:: (((threadtest)))Component for testing thread behavior. - -time:: (((time)))Accumulated run-time timer counts HH:MM:SS of 'active' input. - -timedelay:: (((timedelay)))The equivalent of a time-delay relay. - -timedelta:: (((timedelta)))Component that measures thread scheduling timing behavior. - -toggle2nist:: (((toggle2nist)))Toggle button to nist logic. - -toggle:: (((toggle)))Push-on, push-off from momentary pushbuttons. - -tripodkins:: (((tripodkins)))The joints represent the distance of the controlled point from three -predefined locations (the motors), giving three degrees of freedom in -position (XYZ). - -tristate_bit:: (((tristate_bit)))Place a signal on an I/O pin only when enabled, similar to a tristate -buffer in electronics. - -tristate_float:: (((tristate_float)))Place a signal on an I/O pin only when enabled, similar to a tristate -buffer in electronics. - -trivkins:: (((trivkins)))There is a 1:1 correspondence between joints and axes. Most standard -milling machines and lathes use the trivial kinematics module. - -updown:: (((updown)))Counts up or down, with optional limits and wraparound behavior. - -watchdog:: (((watchdog)))Monitor one to thirty-two inputs for a 'heartbeat'. - -wcomp:: (((wcomp)))Window comparator. - -weighted_sum:: (((weighted_sum)))Convert a group of bits to an integer. - -xor2:: (((xor2)))Two-input XOR (exclusive OR) gate. - -== HAL API calls -.... -hal_add_funct_to_thread.3hal -hal_bit_t.3hal -hal_create_thread.3hal -hal_del_funct_from_thread.3hal -hal_exit.3hal -hal_export_funct.3hal -hal_float_t.3hal -hal_get_lock.3hal -hal_init.3hal -hal_link.3hal -hal_malloc.3hal -hal_param_bit_new.3hal -hal_param_bit_newf.3hal -hal_param_float_new.3hal -hal_param_float_newf.3hal -hal_param_new.3hal -hal_param_s32_new.3hal -hal_param_s32_newf.3hal -hal_param_u32_new.3hal -hal_param_u32_newf.3hal -hal_parport.3hal -hal_pin_bit_new.3hal -hal_pin_bit_newf.3hal -hal_pin_float_new.3hal -hal_pin_float_newf.3hal -hal_pin_new.3hal -hal_pin_s32_new.3hal -hal_pin_s32_newf.3hal -hal_pin_u32_new.3hal -hal_pin_u32_newf.3hal -hal_ready.3hal -hal_s32_t.3hal -hal_set_constructor.3hal -hal_set_lock.3hal -hal_signal_delete.3hal -hal_signal_new.3hal -hal_start_threads.3hal -hal_type_t.3hal -hal_u32_t.3hal -hal_unlink.3hal -intro.3hal -undocumented.3hal -.... - -== RTAPI calls -.... -EXPORT_FUNCTION.3rtapi -MODULE_AUTHOR.3rtapi -MODULE_DESCRIPTION.3rtapi -MODULE_LICENSE.3rtapi -RTAPI_MP_ARRAY_INT.3rtapi -RTAPI_MP_ARRAY_LONG.3rtapi -RTAPI_MP_ARRAY_STRING.3rtapi -RTAPI_MP_INT.3rtapi -RTAPI_MP_LONG.3rtapi -RTAPI_MP_STRING.3rtapi -intro.3rtapi -rtapi_app_exit.3rtapi -rtapi_app_main.3rtapi -rtapi_clock_set_period.3rtapi -rtapi_delay.3rtapi -rtapi_delay_max.3rtapi -rtapi_exit.3rtapi -rtapi_get_clocks.3rtapi -rtapi_get_msg_level.3rtapi -rtapi_get_time.3rtapi -rtapi_inb.3rtapi -rtapi_init.3rtapi -rtapi_module_param.3rtapi -RTAPI_MP_ARRAY_INT.3rtapi -RTAPI_MP_ARRAY_LONG.3rtapi -RTAPI_MP_ARRAY_STRING.3rtapi -RTAPI_MP_INT.3rtapi -RTAPI_MP_LONG.3rtapi -RTAPI_MP_STRING.3rtapi -rtapi_mutex.3rtapi -rtapi_outb.3rtapi -rtapi_print.3rtap -rtapi_prio.3rtapi -rtapi_prio_highest.3rtapi -rtapi_prio_lowest.3rtapi -rtapi_prio_next_higher.3rtapi -rtapi_prio_next_lower.3rtapi -rtapi_region.3rtapi -rtapi_release_region.3rtapi -rtapi_request_region.3rtapi -rtapi_set_msg_level.3rtapi -rtapi_shmem.3rtapi -rtapi_shmem_delete.3rtapi -rtapi_shmem_getptr.3rtapi -rtapi_shmem_new.3rtapi -rtapi_snprintf.3rtapi -rtapi_task_delete.3rtpi -rtapi_task_new.3rtapi -rtapi_task_pause.3rtapi -rtapi_task_resume.3rtapi -rtapi_task_start.3rtapi -rtapi_task_wait.3rtapi -undocumented.3rtapi -.... - diff --git a/docs/src/hal/components_fr.txt b/docs/src/hal/components_fr.txt deleted file mode 100644 index f5eb6c354dc..00000000000 --- a/docs/src/hal/components_fr.txt +++ /dev/null @@ -1,470 +0,0 @@ -:lang: fr -:toc: - -= Les composants de HAL - -[[cha:Composants-de-HAL]] (((Les composants de HAL))) - -== Composants de commandes et composants de l'espace utilisateur - -Certaines de ces descriptions sont plus approfondies dans leurs pages man. -Certaines y auront une description exhaustive, d'autres, juste une description -limitée. Chaque composant a sa man page. La liste ci-dessous, montre les -composants existants, avec le nom et le N° de section de leur page man. -Par exemple dans une console, tapez _man axis_ pour accéder aux informations de -la man page d'Axis. Ou peut être _man 1 axis_, si le système exige le N° de -section des man pages. - -* _axis_ - L'interface graphique AXIS pour LinuxCNC (The Enhanced Machine Controller). -* _axis-remote_ - Interface de télécommande d'AXIS. -* _comp_ - Crée, compile et installe des composants de HAL. -* _linuxcnc_ - LINUXCNC (The Enhanced Machine Controller). -* _gladevcp_ - Panneau de contrôle virtuel pour LinuxCNC, repose sur Glade, Gtk et -les widgets HAL. -* _gs2_ - composant de l'espace utilisateur de HAL, pour le variateur de -fréquence GS2 de la société _Automation Direct_. -* _halcmd_ - Manipulation de HAL, depuis la ligne de commandes. -* _hal_input_ - Contrôler des pins d'entrée de HAL avec n'importe quelle -matériel supporté par Linux, y compris les matériels USB HID. -* _halmeter_ - Observer les pins de HAL, ses signaux et ses paramètres. -* _halrun_ - Manipulation de HAL, depuis la ligne de commandes. -* _halsampler_ - Échantillonner des données temps réel depuis HAL. -* _halstreamer_ - Créer un flux de données temps réel dans HAL depuis un fichier. -* _halui_ - Observer des pins de HAL et commander LinuxCNC au travers d'NML. -* _io_ - Accepte les commandes NML I/O, interagi avec HAL dans l'espace -utilisateur. -* _iocontrol_ - Accepte les commandes NML I/O, interagi avec HAL dans l'espace -utilisateur. -* _pyvcp_ - Panneau de Contrôle Virtuel pour LinuxCNC (Python Virtual Control Panel). -* _shuttlexpress_ - Contrôle des pins de HAL avec la manette ShuttleXpress, de -la société _Contour Design_. - -== Composants temps réel et modules du noyau - -Certaines de ces descriptions sont plus approfondies dans leur man page. -Certaines auront juste une description limitée. Chaque composant -a sa man page. A partir de cette liste vous connaîtrez quels composants -existent avec le nom et le N° de leur man page permettant d'avoir plus -de détails. - -[NOTE] -Si le composant requière un thread avec flottant, c'est normalement le plus -lent, soit _servo-thread_. - -=== Composants du coeur de LinuxCNC[[sec:Realtime-Components-coeur]] === - -* _motion_ - (((motion)))Accepte les commandes de mouvement NML, interagi en temps -réel avec HAL. - -* _axis_ - (((axis)))Commandes de mouvement NML acceptées, intéragi en temps réel -avec HAL - -* _classicladder_ - (((classicladder)))Automate temps réel programmable en -logique Ladder. - -* _gladevcp_ - (((gladevcp)))Affiche un panneaux de contrôle virtuel construit -avec GladeVCP. - -* _threads_ - (((threads)))Crée des threads de HAL temps réel. - -=== Composants binaires et logiques[[sec:Realtime-Components-logic]] === - -* _and2_ - (((and2))) -Porte AND (ET) à deux entrées. - -* _not_ - (((not)))Inverseur. - -* _or2_ - (((or2)))Porte OR (OU) à deux entrées. - -* _xor2_ - (((xor2)))Porte XOR (OU exclusif) à deux entrées. - -* _debounce_ - (((debounce)))Filtre une entrée digitale bruitée (typiquement -antirebond). - -* _edge_ _ (((edge)))Détecteur de front. - -* _flipflop_ - (((flipflop)))Bascule D. - -* _oneshot_ - (((oneshot)))Générateur d'impulsion monostable. Crée sur sa sortie -une impulsion de longueur variable quand son entrée change d'état. - -* _logic_ - (((logic)))Composant expérimental de logique générale. - -* _lut5_ - (((lut5)))Fonction logique arbitraire à cinq entrées, basée sur une -table de correspondance. - -* _match8_ - (((match8)))Détecteur de coïncidence binaire sur 8 bits. - -* _select8_ - (((select8)))Détecteur de coïncidence binaire sur 8 bits. - -=== Composants arithmétiques et flottants[[sec:Realtime-Components-flottant]] === - -* _abs_ - [[sub:abs]] (((abs)))Calcule la valeur absolue et le signe d'un signal -d'entrée. - -* _blend_ - (((blend)))Provoque une interpolation linéaire entre deux valeurs - -* _comp_ - (((comp)))Comparateur à deux entrées avec hystérésis. - -* _constant_ - (((constant)))Utilise un paramètre pour positionner une pin. - -* _sum2_ - (((sum2)))Somme de deux entrées (chacune avec son gain) et d'un offset. - -* _counter_ - (((counter)))Comptage d'impulsions d'entrée (obsolète). - -Utiliser le composant _encoder_ avec _... counter-mode = TRUE_. -Voir la section <>. - -* _updown_ - (((updown)))Compteur/décompteur avec limites optionnelles et bouclage -en cas de dépassement. - -* _ddt_ - (((ddt)))Calcule la dérivée de la fonction d'entrée. - -* _deadzone_ - (((deadzone)))Retourne le centre si il est dans le seuil. - -* _hypot_ - (((hypot)))Calculateur d'hypoténuse à trois entrées (distance -Euclidienne). - -* _mult2_ - (((mult2)))Le produit de deux entrées. - -* _mux16_ - (((mux16)))Sélection d'une valeur d'entrée sur seize. - -* _mux2_ - (((mux2)))Sélection d'une valeur d'entrée sur deux. - -* _mux4_ - (((mux4)))Sélection d'une valeur d'entrée sur quatre. - -* _mux8_ - (((mux8)))Sélection d'une valeur d'entrée sur huit. - -* _near_ - (((near)))Détermine si deux valeurs sont à peu près égales. - -* _offset_ - (((offset)))Ajoute un décalage à une entrée et la soustrait à la -valeur de retour. - -* _integ_ - (((integ)))Intégrateur. - -* _invert_ - (((invert)))Calcule l'inverse du signal d'entrée. - -* _wcomp_ - (((wcomp)))Comparateur à fenêtre. - -* _weighted_sum_ - (((weighted_sum)))Converti un groupe de bits en un entier. - -* _biquad_ - (((biquad)))Filtre biquad IIR - -* _lowpass_ - (((lowpass)))Filtre passe-bas. - -* _limit1_ - (((limit1)))Limite le signal de sortie pour qu'il soit entre min et max. -footnote:[Lorsque l'entrée est une position, cela signifie que la _position_ est -limitée.] - -* _limit2_ - (((limit2)))Limite le signal de sortie pour qu'il soit entre min et max. -Limite sa vitesse de montée à moins de MaxV par seconde. footnote:[Lorsque -l'entrée est une position, cela signifie que la _position_ et la -_vitesse_ sont limitées.] - -* _limit3_ - (((limit3)))Limite le signal de sortie pour qu'il soit entre min et max. -Limite sa vitesse de montée à moins de MaxV par seconde. -Limite sa dérivée seconde à moins de MaxA par seconde carré. footnote:[Lorsque -l'entrée est une position, cela signifie que la _position_, la _vitesse_ et -l'_accélération_ sont limitées.] - -* _maj3_ - (((maj3)))Calcule l'entrée majoritaire parmi 3. - -* _scale_ - (((scale)))Applique une échelle et un décalage à son entrée. - -=== Conversions de type[[sec:Realtime-Components-conversiontype]] === - -* _conv_bit_s32_ - (((conv_bit_s32)))Converti une valeur de bit vers s32 (entier -32 bits signé). - -* _conv_bit_u32_ - (((conv_bit_u32)))Converti une valeur de bit vers u32 (entier -32 bit non signé). - -* _conv_float_s32_ - (((conv_float_s32)))Converti la valeur d'un flottant vers s32. - -* _conv_float_u32_ - (((conv_float_u32)))Converti la valeur d'un flottant vers u32. - -* _conv_s32_bit_ - (((conv_s32_bit)))Converti une valeur de s32 en bit. - -* _conv_s32_float_ - (((conv_s32_float)))Converti une valeur de s32 en flottant. - -* _conv_s32_u32_ - (((conv_s32_u32)))Converti une valeur de s32 en u32. - -* _conv_u32_bit_ - (((conv_u32_bit)))Converti une valeur de u32 en bit. - -* _conv_u32_float_ - (((conv_u32_float)))Converti une valeur de u32 en flottant. - -* _conv_u32_s32_ - (((conv_u32_s32)))Converti une valeur de u32 en s32. - -=== Pilotes de matériel[[sec:Realtime-Components-pilotes]] === - -* _hm2_7i43_ - (((hm2_7i43)))Pilote HAL pour les cartes _Mesa Electronics_ -7i43 EPP, toutes les cartes avec HostMot2. - -* _hm2_pci_ - (((hm2_pci)))Pilote HAL pour les cartes _Mesa Electronics_ -5i20, 5i22, 5i23, 4i65 et 4i68, toutes les cartes avec micro logiciel HostMot2. - -* _hostmot2_ - (((hostmot2)))Pilote HAL pour micro logiciel _Mesa Electronics_ -HostMot2. - -* _mesa_7i65_ - (((7i65)))Support pour la carte huit axes Mesa 7i65 pour servomoteurs. - -* _pluto_servo_ - (((pluto_servo)))Pilote matériel et micro programme pour la -carte _Pluto-P parallel-port FPGA_, utilisation avec servomoteurs. - -* _pluto_step_ - (((pluto_step)))Pilote matériel et micro programme pour la -carte _Pluto-P parallel-port FPGA_, utilisation avec moteurs pas à pas. - -* _thc_ - (((thc)))Contrôle de la hauteur de torche, en utilisant une carte Mesa THC. - -* _serport_ - (((serport)))Pilote matériel pour les entrées/sorties -numériques de port série avec circuits 8250 et 16550. - -=== Composants cinématiques[[sec:Realtime-Components-cinematiques]] === - -* _kins_ - (((kins)))Définition des cinématiques pour linuxcnc. - -* _gantrykins_ - (((gantrykins)))Module de cinématique pour un seul axe à -articulations multiples. - -* _genhexkins_ - (((genhexkins)))Donne six degrés de liberté en position et en -orientation (XYZABC). L'emplacement des moteurs est défini au moment de la -compilation. - -* _genserkins_ - (((genserkins)))Cinématique capable de modéliser une bras -manipulateur avec un maximum de 6 articulations angulaires. - -* _maxkins_ - (((maxkins))) -Cinématique d'une fraiseuse 5 axes nommée _max_, avec tête inclinable (axe B) -​et un axe rotatif horizontal monté sur la table (axe C). -Fourni les mouvements UVW dans le système de coordonnées système basculé. -Le fichier source, maxkins.c, peut être un point de départ utile -pour d'autres systèmes 5 axes. - -* _tripodkins_ - (((tripodkins)))Les articulations représentent la distance du point -contrôlé à partir de trois emplacements prédéfinis (les moteurs), ce qui donne -trois degrés de liberté en position (XYZ). - -* _trivkins_ - (((trivkins)))Il y a une correspondance 1:1 entre les -articulations et les axes. La plupart des fraiseuses standard et des tours -utilisent ce module de cinématique triviale. - -* _pumakins_ - (((pumakins)))Cinématique pour robot style PUMA. - -* _rotatekins_ - (((rotatekins)))Les axes X et Y sont pivotés de 45 degrés par -rapport aux articulations 0 et 1. - -* _scarakins_ - (((scarakins)))Cinématique des robots de type SCARA. - -=== Composants de contrôle moteur[[sec:Realtime-Components-moteur]] === - -* _at_pid_ - (((at_pid)))Contrôleur Proportionnelle/Intégrale/dérivée avec réglage -automatique. - -* _pid_ - (((pid)))Contrôleur Proportionnelle/Intégrale/dérivée. - -* _pwmgen_ - (((pwmgen)))Générateur logiciel de PWM/PDM, voir la section -<> - -* _encoder_ - (((encoder)))Comptage logiciel de signaux de codeur en quadrature, -voir la section <> - -* _stepgen_ - (((stepgen)))Générateur d'impulsions de pas logiciel, -voir la section <> - -=== BLDC and 3-phase motor control[[sec:Realtime-Components-bldc]] === - -* _bldc_hall3_ - (((bldc_hall3)))Commutateur bipolaire trapézoïdal à 3 directions -pour moteur sans balais (BLDC) avec capteurs de Hall. - -* _clarke2_ - (((clarke2)))Transformation de Clarke, version à deux entrées. - -* _clarke3_ - (((clarke3)))Transformation de Clarke, à 3 entrées vers cartésien. - -* _clarkeinv_ - (((clarkeinv)))Transformation de Clarke inverse. - -=== Autres composants[[sec:Realtime-Components-autres]] === - -* _charge_pump_ - (((charge_pump)))Crée un signal carré destiné à l'entrée -_pompe de charge_ de certaines cartes de contrôle. Le composant _charg_pump_ doit -être ajouté à _base_ _thread_. Quand il est activé, sa sortie est haute pour une -période puis basse pour une autre période. Pour calculer la fréquence de sortie -faire 1/(durée de la période en secondes * 2) = fréquence en Hz. Par exemple, si -vous avez une période de base de 100000ns soit 0.0001 seconde, la formule devient: -1/(0.0001 * 2) = 5000 Hz ou 5kHz. - -* _encoder_ratio_ - (((encoder_ratio)))Un engrenage électronique pour synchroniser -deux axes. - -* _estop_latch_ - (((estop_latch)))Verrou d'Arrêt d'Urgence. - -* _feedcomp_ - (((feedcomp)))Multiplie l'entrée par le ratio vitesse courante / -vitesse d'avance travail. - -* _gearchange_ - (((gearchange)))Sélectionne une grandeur de vitesse parmi deux. - -* _ilowpass_ - (((ilowpass)))Filtre passe-bas avec entrées et sorties au format -entier. -+ -Sur une machine ayant une grande accélération, un petit jog peut s'apparenter à -une avance par pas. En intercalant un filtre _ilowpass_ entre la sortie de -comptage du codeur de la manivelle et l'entrée _jog-counts_ de l'axe, le -mouvement se trouve lissé. -+ -Choisir prudemment l'échelle, de sorte que durant une simple session, elle ne -dépasse pas environ 2e9/scale impulsions visibles sur le MPG. Choisir le gain -selon le niveau de douceur désiré. Diviser les valeurs de axis.N.jog-scale par -l'échelle. - -* _joyhandle_ - (((joyhandle)))Définit les mouvements d'un joypad non linéaire, -zones mortes et échelles. - -* _knob2float_ - (((knob2float)))Convertisseur de comptage (probablement d'un -codeur) vers une valeur en virgule flottante. - -* _minmax_ - (((minmax)))Suiveur de valeurs minimum et maximum de l'entrée vers les -sorties. - -* _sample_hold_ - (((sample_hold)))Échantillonneur bloqueur. - -* _sampler_ - (((sampler)))Échantillonneur de données de HAL en temps réel. - -* _siggen_ - (((siggen)))Générateur de signal, voir la section <> - -* _sim_encoder_ - (((sim_encoder)))Codeur en quadrature simulé, -voir la section <> - -* _sphereprobe_ - (((sphereprobe)))Sonde hémisphérique. - -* _steptest_ - (((steptest)))Utilisé par Stepconf pour permettre de tester les -valeurs d'accélération et de vitesse d'un axe. - -* _streamer_ - (((streamer)))Flux temps réel depuis un fichier vers HAL. - -* _supply_ - (((supply)))Set output pins with values from parameters (obsolète). - -* _threadtest_ - (((threadtest)))Composant de HAL pour tester le comportement -des threads. - -* _time_ - (((time)))Compteur de temps écoulé HH:MM:SS avec entrée _actif_. - -* _timedelay_ - (((timedelay)))L'équivalent d'un relais temporisé. - -* _timedelta_ - (((timedelta)))Composant pour mesurer le comportement temporel -des threads. - -* _toggle2nist_ - (((toggle2nist)))Bouton à bascule pour logique NIST. - -* _toggle_ - (((toggle)))Bouton à bascule NO/NF à partir d'un bouton poussoir -momentané. - -* _tristate_bit_ - (((tristate_bit)))Place un signal sur une pin d'I/O seulement -quand elle est validée, similaire à un tampon trois états en électronique. - -* _tristate_float_ - (((tristate_float)))Place un signal sur une pin d'I/O seulement -quand elle est validée, similaire à un tampon trois états en électronique. - -* _watchdog_ - (((watchdog)))Moniteur de fréquence (chien de garde) sur 1 à 32 -entrées. - -== Appels à l'API de HAL (liste de la section 3 des man pages) -.... -hal_add_funct_to_thread.3hal -hal_bit_t.3hal -hal_create_thread.3hal -hal_del_funct_from_thread.3hal -hal_exit.3hal -hal_export_funct.3hal -hal_float_t.3hal -hal_get_lock.3hal -hal_init.3hal -hal_link.3hal -hal_malloc.3hal -hal_param_bit_new.3hal -hal_param_bit_newf.3hal -hal_param_float_new.3hal -hal_param_float_newf.3hal -hal_param_new.3hal -hal_param_s32_new.3hal -hal_param_s32_newf.3hal -hal_param_u32_new.3hal -hal_param_u32_newf.3hal -hal_parport.3hal -hal_pin_bit_new.3hal -hal_pin_bit_newf.3hal -hal_pin_float_new.3hal -hal_pin_float_newf.3hal -hal_pin_new.3hal -hal_pin_s32_new.3hal -hal_pin_s32_newf.3hal -hal_pin_u32_new.3hal -hal_pin_u32_newf.3hal -hal_ready.3hal -hal_s32_t.3hal -hal_set_constructor.3hal -hal_set_lock.3hal -hal_signal_delete.3hal -hal_signal_new.3hal -hal_start_threads.3hal -hal_type_t.3hal -hal_u32_t.3hal -hal_unlink.3hal -intro.3hal -undocumented.3hal -.... - -== Appels à RTAPI -.... -EXPORT_FUNCTION.3rtapi -MODULE_AUTHOR.3rtapi -MODULE_DESCRIPTION.3rtapi -MODULE_LICENSE.3rtapi -RTAPI_MP_ARRAY_INT.3rtapi -RTAPI_MP_ARRAY_LONG.3rtapi -RTAPI_MP_ARRAY_STRING.3rtapi -RTAPI_MP_INT.3rtapi -RTAPI_MP_LONG.3rtapi -RTAPI_MP_STRING.3rtapi -intro.3rtapi -rtapi_app_exit.3rtapi -rtapi_app_main.3rtapi -rtapi_clock_set_period.3rtapi -rtapi_delay.3rtapi -rtapi_delay_max.3rtapi -rtapi_exit.3rtapi -rtapi_get_clocks.3rtapi -rtapi_get_msg_level.3rtapi -rtapi_get_time.3rtapi -rtapi_inb.3rtapi -rtapi_init.3rtapi -rtapi_module_param.3rtapi -RTAPI_MP_ARRAY_INT.3rtapi -RTAPI_MP_ARRAY_LONG.3rtapi -RTAPI_MP_ARRAY_STRING.3rtapi -RTAPI_MP_INT.3rtapi -RTAPI_MP_LONG.3rtapi -RTAPI_MP_STRING.3rtapi -rtapi_mutex.3rtapi -rtapi_outb.3rtapi -rtapi_print.3rtap -rtapi_prio.3rtapi -rtapi_prio_highest.3rtapi -rtapi_prio_lowest.3rtapi -rtapi_prio_next_higher.3rtapi -rtapi_prio_next_lower.3rtapi -rtapi_region.3rtapi -rtapi_release_region.3rtapi -rtapi_request_region.3rtapi -rtapi_set_msg_level.3rtapi -rtapi_shmem.3rtapi -rtapi_shmem_delete.3rtapi -rtapi_shmem_getptr.3rtapi -rtapi_shmem_new.3rtapi -rtapi_snprintf.3rtapi -rtapi_task_delete.3rtpi -rtapi_task_new.3rtapi -rtapi_task_pause.3rtapi -rtapi_task_resume.3rtapi -rtapi_task_start.3rtapi -rtapi_task_wait.3rtapi -.... - diff --git a/docs/src/hal/general_ref.txt b/docs/src/hal/general_ref.txt deleted file mode 100644 index b85857a81b9..00000000000 --- a/docs/src/hal/general_ref.txt +++ /dev/null @@ -1,158 +0,0 @@ -= General Reference - -[[cha:general-reference]] - -== General Naming Conventions[[sec:GR-Naming-Conventions]] - -Consistent naming conventions would make HAL much easier to use. For -example, if every encoder driver provided the same set of pins and -named them the same way it would be easy to change from one type of -encoder driver to another. Unfortunately, like many open-source -projects, HAL is a combination of things that were designed, and things -that simply evolved. As a result, there are many inconsistencies. This -section attempts to address that problem by defining some conventions, -but it will probably be a while before all the modules are converted to -follow them. - -Halcmd and other low-level HAL utilities treat HAL names as single -entities, with no internal structure. However, most modules do have -some implicit structure. For example, a board provides several -functional blocks, each block might have several channels, and each -channel has one or more pins. This results in a structure that -resembles a directory tree. Even though halcmd doesn't recognize the -tree structure, proper choice of naming conventions will let it group -related items together (since it sorts the names). In addition, higher -level tools can be designed to recognize such structure, if the names -provide the necessary information. To do that, all HAL components should -follow these rules: - - - Dots (“.â€) separate levels of the hirearchy. - This is analogous to the slash (“/â€) in a filename. - - Hyphens (“-â€) separate words or fields in the same level of the hirearchy. - - HAL components should not use underscores or “MixedCaseâ€. - - Use only lowercase letters and numbers in names. - -== Hardware Driver Naming Conventions [[sec:GR-Driver-Naming]] - -=== Pin/Parameter names - -Hardware drivers should use five fields (on three levels) to make up a -pin or parameter name, as follows: - -+*....*+ - -The individual fields are: - -:: - The device that the driver is intended to work with. This is most - often an interface board of some type, but there are other - possibilities. - -:: - It is possible to install more than one servo board, parallel port, - or other hardware device in a computer. The device number identifies a - specific device. Device numbers start at 0 and increment. - -:: - Most devices provide more than one type of I/O. Even the simple - parallel port has both digital inputs and digital outputs. More complex - boards can have digital inputs and outputs, encoder counters, pwm or - step pulse generators, analog-to-digital converters, digital-to-analog - converters, or other unique capabilities. The I/O type is used to - identify the kind of I/O that a pin or parameter is associated with. - Ideally, drivers that implement the same I/O type, even if for very - different devices, should provide a consistent set of pins and - parameters and identical behavior. For example, all digital inputs - should behave the same when seen from inside the HAL, regardless of the - device. - -:: - Virtually every I/O device has multiple channels, and the channel - number identifies one of them. Like device numbers, channel numbers - start at zero and increment.footnote:[One exception to the - “channel numbers start at zero†rule is - the parallel port. Its HAL pins are numbered with the corresponding pin - number on the DB-25 connector. This is convenient for wiring, but - inconsistent with other drivers. There is some debate over whether this - is a bug or a feature.] - If more than one device is installed, the channel numbers on - additional devices start over at zero. If it is possible to have a - channel number greater than 9, then channel numbers should be two - digits, with a leading zero on numbers less than 10 to preserve sort - ordering. Some modules have pins and/or parameters that affect more - than one channel. For example a PWM generator might have four channels - with four independent “duty-cycle†inputs, but one “frequency†- parameter that controls all four channels (due to hardware - limitations). The frequency parameter should use “0-3†as the channel - number. - -:: - An individual I/O channel might have just a single HAL pin associated - with it, but most have more than one. For example, a digital input has - two pins, one is the state of the physical pin, the other is the same - thing inverted. That allows the configurator to choose between active - high and active low inputs. For most io-types, there is a standard set - of pins and parameters, (referred to as the “canonical interfaceâ€) that - the driver should implement. The canonical interfaces are described in - the <> - chapter. - -.Examples - -motenc.0.encoder.2.position:: - -- the position output of the third encoder channel on the first - Motenc board. - -stg.0.din.03.in:: - -- the state of the fourth digital input on the first Servo-to-Go - board. - -ppmc.0.pwm.00-03.frequency:: - -- the carrier frequency used for PWM channels 0 through 3 on the first Pico Systems ppmc board. - -=== Function Names - -Hardware drivers usually only have two kinds of HAL functions, ones -that read the hardware and update HAL pins, and ones that write to the -hardware using data from HAL pins. They should be named as follows: - -+*-.-.read|write*+ - -:: - The same as used for pins and parameters. - -:: - The specific device that the function will access. - -:: - Optional. A function may access all of the I/O on a board, or it may - access only a certain type. For example, there may be independent - functions for reading encoder counters and reading digital I/O. If such - independent functions exist, the field identifies the type of - I/O they access. If a single function reads all I/O provided by the - board, is not used. - footnote:[Note to driver programmers: do NOT implement separate - functions for different I/O types unless they are interruptible and can - work in independent threads. If interrupting an encoder read, reading - digital inputs, and then resuming the encoder read will cause problems, - then implement a single function that does everything.] - -:: - Optional. Used only if the I/O is broken into groups and - accessed by different functions. - -read|write:: - Indicates whether the function reads the hardware or writes to it. - -.Examples - -motenc.0.encoder.read:: - -- reads all encoders on the first motenc board. - -generic8255.0.din.09-15.read:: - -- reads the second 8 bit port on the first generic 8255 based - digital I/O board. - -ppmc.0.write:: - -- writes all outputs (step generators, pwm, DACs, and digital) on - the first Pico Systems ppmc board. diff --git a/docs/src/hal/general_ref_es.txt b/docs/src/hal/general_ref_es.txt deleted file mode 100644 index 6e3669a2531..00000000000 --- a/docs/src/hal/general_ref_es.txt +++ /dev/null @@ -1,171 +0,0 @@ -= General Reference - -[[cha:general-reference]] - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== General Naming Conventions[[sec:GR-Naming-Conventions]] - -Consistent naming conventions would make HAL much easier to use. For -example, if every encoder driver provided the same set of pins and -named them the same way it would be easy to change from one type of -encoder driver to another. Unfortunately, like many open-source -projects, HAL is a combination of things that were designed, and things -that simply evolved. As a result, there are many inconsistencies. This -section attempts to address that problem by defining some conventions, -but it will probably be a while before all the modules are converted to -follow them. - -Halcmd and other low-level HAL utilities treat HAL names as single -entities, with no internal structure. However, most modules do have -some implicit structure. For example, a board provides several -functional blocks, each block might have several channels, and each -channel has one or more pins. This results in a structure that -resembles a directory tree. Even though halcmd doesn't recognize the -tree structure, proper choice of naming conventions will let it group -related items together (since it sorts the names). In addition, higher -level tools can be designed to recognize such structure, if the names -provide the necessary information. To do that, all HAL components should -follow these rules: - - - Dots (“.â€) separate levels of the hirearchy. - This is analogous to the slash (“/â€) in a filename. - - Hyphens (“-â€) separate words or fields in the same level of the hirearchy. - - HAL components should not use underscores or “MixedCaseâ€. - - Use only lowercase letters and numbers in names. - -== Hardware Driver Naming Conventions [[sec:GR-Driver-Naming]] - -=== Pin/Parameter names - -Hardware drivers should use five fields (on three levels) to make up a -pin or parameter name, as follows: - -+*....*+ - -The individual fields are: - -:: - The device that the driver is intended to work with. This is most - often an interface board of some type, but there are other - possibilities. - -:: - It is possible to install more than one servo board, parallel port, - or other hardware device in a computer. The device number identifies a - specific device. Device numbers start at 0 and increment. - -:: - Most devices provide more than one type of I/O. Even the simple - parallel port has both digital inputs and digital outputs. More complex - boards can have digital inputs and outputs, encoder counters, pwm or - step pulse generators, analog-to-digital converters, digital-to-analog - converters, or other unique capabilities. The I/O type is used to - identify the kind of I/O that a pin or parameter is associated with. - Ideally, drivers that implement the same I/O type, even if for very - different devices, should provide a consistent set of pins and - parameters and identical behavior. For example, all digital inputs - should behave the same when seen from inside the HAL, regardless of the - device. - -:: - Virtually every I/O device has multiple channels, and the channel - number identifies one of them. Like device numbers, channel numbers - start at zero and increment.footnote:[One exception to the - “channel numbers start at zero†rule is - the parallel port. Its HAL pins are numbered with the corresponding pin - number on the DB-25 connector. This is convenient for wiring, but - inconsistent with other drivers. There is some debate over whether this - is a bug or a feature.] - If more than one device is installed, the channel numbers on - additional devices start over at zero. If it is possible to have a - channel number greater than 9, then channel numbers should be two - digits, with a leading zero on numbers less than 10 to preserve sort - ordering. Some modules have pins and/or parameters that affect more - than one channel. For example a PWM generator might have four channels - with four independent “duty-cycle†inputs, but one “frequency†- parameter that controls all four channels (due to hardware - limitations). The frequency parameter should use “0-3†as the channel - number. - -:: - An individual I/O channel might have just a single HAL pin associated - with it, but most have more than one. For example, a digital input has - two pins, one is the state of the physical pin, the other is the same - thing inverted. That allows the configurator to choose between active - high and active low inputs. For most io-types, there is a standard set - of pins and parameters, (referred to as the “canonical interfaceâ€) that - the driver should implement. The canonical interfaces are described in - the <> - chapter. - -.Examples - -motenc.0.encoder.2.position:: - -- the position output of the third encoder channel on the first - Motenc board. - -stg.0.din.03.in:: - -- the state of the fourth digital input on the first Servo-to-Go - board. - -ppmc.0.pwm.00-03.frequency:: - -- the carrier frequency used for PWM channels 0 through 3 on the first Pico Systems ppmc board. - -=== Function Names - -Hardware drivers usually only have two kinds of HAL functions, ones -that read the hardware and update HAL pins, and ones that write to the -hardware using data from HAL pins. They should be named as follows: - -+*-.-.read|write*+ - -:: - The same as used for pins and parameters. - -:: - The specific device that the function will access. - -:: - Optional. A function may access all of the I/O on a board, or it may - access only a certain type. For example, there may be independent - functions for reading encoder counters and reading digital I/O. If such - independent functions exist, the field identifies the type of - I/O they access. If a single function reads all I/O provided by the - board, is not used. - footnote:[Note to driver programmers: do NOT implement separate - functions for different I/O types unless they are interruptible and can - work in independent threads. If interrupting an encoder read, reading - digital inputs, and then resuming the encoder read will cause problems, - then implement a single function that does everything.] - -:: - Optional. Used only if the I/O is broken into groups and - accessed by different functions. - -read|write:: - Indicates whether the function reads the hardware or writes to it. - -.Examples - -motenc.0.encoder.read:: - -- reads all encoders on the first motenc board. - -generic8255.0.din.09-15.read:: - -- reads the second 8 bit port on the first generic 8255 based - digital I/O board. - -ppmc.0.write:: - -- writes all outputs (step generators, pwm, DACs, and digital) on - the first Pico Systems ppmc board. diff --git a/docs/src/hal/general_ref_fr.txt b/docs/src/hal/general_ref_fr.txt deleted file mode 100644 index a24a5f216d0..00000000000 --- a/docs/src/hal/general_ref_fr.txt +++ /dev/null @@ -1,353 +0,0 @@ -:lang: fr -:toc: - -= Conventions générales - -[[cha:References-generales]] (((Références générales))) - -== Les noms - -Toutes les entités de HAL sont accessibles et manipulées par leurs -noms, donc, documenter les noms des pins, signaux, paramètres, etc, est -très important. Les noms dans HAL ont un maximum de 41 caractères de -long (comme défini par HAL_NAME_LEN dans hal.h). De nombreux noms -seront présentés dans la forme générale, avec un texte mis en forme -__ représentant les champs de valeurs diverses. - -Quand les pins, signaux, ou paramètres sont décrits pour la première -fois, leur nom sera précédé par leur type entre parenthèses (_float_) et -suivi d'une brève description. Les définitions typiques de pins -ressemblent à ces exemples: - -(bit) parport..pin--in:: - La HAL pin associée avec la broche physique d'entrée __ du - connecteur db25. - -(float) pid..output:: - La sortie de la boucle PID. - -De temps en temps, une version abrégée du nom peut être utilisée, par -exemple la deuxième pin ci-dessus pourrait être appelée simplement -avec _.output_ quand cela peut être fait sans prêter à confusion. - -== Conventions générales de nommage[[sec:GR-Conventions-nommage]] - -Le but des conventions de nommage est de rendre l'utilisation de HAL -plus facile. Par exemple, si plusieurs interfaces de codeur fournissent -le même jeu de pins et qu'elles sont nommées de la même façon, il -serait facile de changer l'interface d'un codeur à un autre. -Malheureusement, comme tout projet open-source, HAL est la combinaison -de choses diversement conçues et comme les choses simples évoluent. Il -en résulte de nombreuses incohérences. Cette section vise à remédier à -ce problème en définissant certaines conventions, mais il faudra -certainement un certain temps avant que tous les modules soient -convertis pour les suivre. - -Halcmd et d'autres utilitaires HAL de bas niveau, traitent les noms -HAL comme de simples entités, sans structure. Toutefois, la plupart des -modules ont une certaine structure implicite. Par exemple, une carte -fournit plusieurs blocs fonctionnels, chaque bloc peut avoir plusieurs -canaux et chaque canal, une ou plusieurs broches. La structure qui en -résulte ressemble à une arborescence de répertoires. Même si halcmd ne -reconnait pas la structure arborescente, la convention de nommage est -un bon choix, elles lui permettra de regrouper ensemble, les items du -même groupe, car il trie les noms. En outre, les outils de haut niveau -peuvent être conçus pour reconnaitre de telles structures si les noms -fournissent les informations nécessaires. Pour cela, tous les modules -de HAL devraient suivrent les règles suivantes: - - - Les points (_._) séparent les niveaux hiérarchiques. C'est analogue à - la barre de fraction (_/_) dans les noms de fichiers. - - Le tiret (_-_) sépare les mots ou les champs dans la même hiérarchie. - - Les modules HAL ne doivent pas utiliser le caractère souligné ou les - casses mélangées. footnote:[Les caractères souslignés ont été enlevés, - mais il reste quelques cas - de mélange de casses, par exemple _pid.0.Pgain_ au lieux de - _pid.0.p-gain_.] - - Utiliser seulement des caractères minuscules, lettres et chiffres. - -== Conventions de nommage des pilotes de matériels[[sec:GR-Nommage-pilotes-materiel]] -footnote:[La plupart des pilotes ne suivent pas ces conventions dans la version 2.0. -Ce chapitre est réellement un guide pour les développements futurs.] - -=== Noms de pin/paramètre - -Les pilotes matériels devraient utiliser cinq champs (sur trois -niveaux) pour obtenir un nom de pin ou de paramètre, comme le suivant: ----- -.... ----- - -Les champs individuels sont: - -:: - Le matériel avec lequel le pilote est sensé travailler. Il s'agit le - plus souvent d'une carte d'interface d'un certain type, mais il existe - d'autres possibilités. - -:: - Il est possible d'installer plusieurs cartes servo, ports parallèles - ou autre périphérique matériel dans un ordinateur. Le numéro du - périphérique identifie un périphérique spécifique. Les numéros de - périphériques commencent à 0 et s'incrémentent.footnote:[Certains - matériels utilisent des cavaliers ou d'autres dispositifs - pour définir une identification spécifique à chacun. Idéalement, le - pilote fournit une manière à l'utilisateur de dire, le _device-num 0 - est spécifique au périphérique qui a l'ID XXX_, ses sous-ensembles - porterons tous un numéro commençant par 0. Mais à l'heure actuelle, - certains pilotes utilisent l'ID directement comme numéro de - périphérique. Ce qui signifie qu'il est possible d'avoir un - périphérique Numéro 2, sans en avoir en Numéro 0. C'est un bug qui - devrait disparaître en version 2.1.] - -:: - La plupart des périphériques fournissent plus d'un type d'I/O. Même - le simple port parallèle a, à la fois plusieurs entrées et plusieurs - sorties numériques. Les cartes commerciales plus complexes peuvent - avoir des entrées et des sorties numériques, des compteurs de codeurs, - des générateurs d'impulsions de pas ou de PWM, des convertisseurs - numérique/analogique, analogique/numérique et d'autres possibilités - plus spécifiques. Le _I/O type_ est utilisé pour identifier le type - d'I/O avec lequel la pin ou le paramètre est associé. Idéalement, les - pilotes qui implémentent les mêmes type d'I/O, même sur des dispositifs - très différents, devraient fournir un jeu de pins et de paramètres - cohérents et de comportements identiques. Par exemple, toutes les - entrées numériques doivent se comporter de la même manière quand elles - sont vues de l'intérieur de HAL, indépendamment du périphérique. - -:: - Quasiment tous les périphériques d'I/O ont plusieurs canaux, le - numéro de canal _chan-num_ identifie un de ceux ci. Comme les numéros - de périphériques _device-num_, les numéros de canaux, _chan-num_, - commencent à zéro et s'incrémentent.footnote:[Une exception à la règle - du _numéro de canal commençant à zéro_ est le - port parallèle. Ses _HAL pins_ sont numérotées avec le numéro de la - broche correspondante du connecteur DB-25. C'est plus pratique pour le - câblage, mais non cohérent avec les autres pilotes. Il y a débat pour - savoir si c'est un bogue ou une fonctionnalité.] - Si plusieurs périphériques sont installés, les numéro de canaux des - périphériques supplémentaires recommencent à zéro. Comme il est - possible d'avoir un numéro de canal supérieur à 9, les numéros de - canaux doivent avoir deux chiffres, avec un zéro en tête pour les - nombres inférieur à 10 pour préserver l'ordre des tris. Certains - modules ont des pins et/ou des paramètres qui affectent plusieurs - canaux. Par exemple un générateur de PWM peut avoir quatre canaux avec - quatre entrées _duty-cycle_ indépendantes, mais un seul paramètre - _frequency_ qui contrôle les quatres canaux (à cause de limitations - matérielles). Le paramètre _frequency_ doit utiliser les numéros de - canaux de _00-03_. - -:: - Un canal individuel d'I/O peut avoir une seule HAL pin associée avec - lui, mais la plupart en ont plus. Par exemple, une entrée numérique a - deux pins, une qui est l'état de la broche physique, l'autre qui est la - même chose mais inversée. Cela permet au configurateur de choisir entre - les deux états de l'entrée, active haute ou active basse. Pour la - plupart des types d' entrée/sortie, il existe un jeu standard de - broches et de paramètres, (appelé l'_interface canonique_) que le - pilote doit implémenter. Les interfaces canoniques sont décrites - <>. - -==== Exemples - -motenc.0.encoder.2.position:: - La sortie position du troisième canal codeur sur la première carte Motenc. - -stg.0.din.03.in:: - L'état de la quatrième entrée numérique sur la première carte Servo-to-Go. - -ppmc.0.pwm.00-03.frequency:: - La fréquence porteuse utilisée sur les canaux PWM de 0 à 3 sur la - première carte Pico Systems ppmc. - -=== Noms des fonctions - -Les pilotes matériels ont généralement seulement deux types de -fonctions HAL, une qui lit l'état du matériel et met à jour les pins -HAL, l'autre qui écrit sur le matériel en utilisant les données -fournies sur les pins HAL. Ce qui devrait être nommé de la façon -suivante: ----- --.-.read|write ----- - -:: - Le même que celui utilisé pour les pins et les paramètres. - -:: - Le périphérique spécifique auquel la fonction aura accès. - -:: - Optionnel. Une fonction peut accéder à toutes les d'entrées/sorties - d'une carte ou, elle peut accéder seulement à un certain type. Par - exemple, il peut y avoir des fonctions indépendantes pour lire les - compteurs de codeurs et lire les entrées/sorties numériques. Si de - telles fonctions indépendantes existent, le champ identifie - le type d'I/O auxquelles elles auront accès. Si une simple fonction lit - toutes les entrés/sorties fournies par la carte, n'est pas - utilisé.footnote:[Note aux programmeurs de pilotes: ne PAS implémenter - des fonctions - séparées pour différents types d'I/O à moins qu'elles ne soient - interruptibles et puissent marcher dans des threads indépendants. Si - l'interruption de la lecture d'un codeur pour lire des entrées - numériques, puis reprendre la lecture du codeur peut poser problème, - alors implémentez une fonction unique qui fera tout.] - -:: - Optionnel. Utilisé seulement si l'entrée/sortie est cassée - dans des groupes et est accédée par différentes fonctions. - -read|write:: - Indique si la fonction lit le matériel ou lui écrit. - -==== Exemples - -motenc.0.encoder.read:: - Lit tous les codeurs sur la première carte motenc. - -generic8255.0.din.09-15.read:: - Lit le deuxième port 8 bits sur la première carte - d'entrées/sorties à base de 8255. - -ppmc.0.write:: - Écrit toutes les sorties (générateur de pas, pwm, DAC et ADC) sur - la première carte Pico Systems ppmc. - -[[sec:Peripheriques-canoniques]] -== Périphériques d'interfaces canoniques -(((Périphériques canoniques))) - -Les sections qui suivent expliquent les pins, paramètres et fonctions -qui sont fournies par les _périphériques canoniques_. Tous les pilotes -de périphériques HAL devraient fournir les mêmes pins et paramètres et -implémenter les mêmes comportements. - -Noter que seuls les champs __ et __ sont -définis pour un périphérique canonique. Les champs __, -__ et __ sont définis en fonction des -caractéristiques du périphérique réel. - -== Entrée numérique (Digital Input)[[sec:CanonDigIn]] - -L'entrée numérique canonique (I/O type: _digin_) est assez simple. - -=== Pins - -(bit) _in_:: - État de l'entrée matérielle. -(bit) _in-not_:: - État inversé de l'entrée matérielle. - -=== Paramètres - -Aucun - -=== Fonctions - -(funct) _read_:: - Lire le matériel et ajuster les HAL pins _in_ et _in-not_. - -== Sortie numérique (Digital Output)[[sec:CanonDigOut]] - -La sortie numérique canonique est également très simple (I/O type: _digout_). - -=== Pins - -(bit) _out_:: - Valeur à écrire (éventuellement inversée) sur une sortie matérielle. - -=== Paramètres - -(bit) _invert_:: - Si TRUE, _out_ est inversée avant écriture sur la sortie matérielle. - -=== Fonctions - -(funct) _write_:: - Lit _out_ et _invert_ et ajuste la sortie en conséquence. - -== Entrée analogique (Analog Input) - -L'entrée analogique canonique (I/O type: _adcin_ ). Devrait être -utilisée pour les convertisseurs -analogiques/numériques, qui convertissent par exemple, les tensions en -une échelle continue de valeurs. - -=== Pins - -(float) _value_:: - Lecture du matériel, avec mise à l'échelle ajustée par les - paramètres _scale_ et _offset_. _Value_ = ((lecture entrée, en unités - dépendantes du matériel) x _scale_) - _offset_ - -=== Paramètres - -(float) _scale_:: - La tension d'entrée (ou l'intensité) sera - multipliée par _scale_ avant d'être placée dans _value_. -(float) _offset_:: - Sera soustrait à la tension d'entrée (ou l'intensité) après que - la mise à l'échelle par scale ait été appliquée. -(float) _bit_weight_:: - Valeur du bit le moins significatif (LSB). C'est effectivement, la - granularité de lecture en entrée. -(float) _hw_offset_:: - Valeur présente sur l'entrée quand aucune tension n'est appliquée sur la - pin. - -=== Fonctions - -(funct) _read_:: - Lit les valeurs de ce canal d'entrée analogique. Peut être utilisé pour - lire un canal individuellement, ou pour lire tous les canaux à la fois. - -== Sortie analogique (Analog Output) - -La sortie analogique canonique (I/O Type: _adcout_ ). Elle est -destinée à tout type de matériel capable de sortir une -échelle plus ou moins étendue de valeurs. Comme par exemple les -convertisseurs numérique/analogique ou les générateurs de PWM. - -=== Pins - -(float) _value_:: - La valeur à écrire. La valeur réelle sur la sortie matérielle dépends - de la mise à l'échelle des paramètres d'offset. -(bit) _enable_:: - Si fausse, la sortie matérielle passera à 0, indépendamment de la pin _value_. - -=== Paramètres - -(float) _offset_:: - Sera ajouté à _value_ avant l'actualisation du - matériel. -(float) _scale_:: - Doit être défini de sorte qu'une entrée avec 1 dans _value_ produira 1V -(float) _high_limit_:: - (optionnel) Quand la valeur en sortie matérielle est calculée, - si _value_ + _offset_ est plus grande que _high_limit_, alors _high_limit_ - lui sera substitué. -(float) _low_limit_:: - (optionnel) Quand la valeur en sortie matérielle est calculée, - si _value_ + _offset_ est plus petite que _low_limit_, alors _low_limit_ - lui sera substitué. -(float) _bit_weight_:: - (optionnel) La valeur du bit le moins significatif (LSB), en Volts - (ou mA, pour les sorties courant) -(float) _hw_offset_:: - (optionnel) La tension actuelle (ou l'intensité) présente sur la - sortie quand 0 est écrit sur le matériel. - -=== Fonctions - -(funct) _write_:: - Ecrit la valeur calculée sur la sortie matérielle. Si enable est FALSE, - la sortie passera à 0, indépendamment des valeurs de _value_, _scale_ et - _offset_ . La signification de _0_ dépend du matériel. Par exemple, un - convertisseur A/D 12 bits peut vouloir écrire 0x1FF (milieu d'échelle) - alors que le convertisseur D/A reçoit 0 Volt de la broche matérielle. - Si enable est TRUE, l'échelle, l'offset et la valeur sont traités et - (_scale_ _ _value_) + _offset_ sont envoyés à la sortie du DAC . Si - enable est FALSE, la sortie passe à 0. - - diff --git a/docs/src/hal/hal-examples.txt b/docs/src/hal/hal-examples.txt deleted file mode 100644 index 7571422f22e..00000000000 --- a/docs/src/hal/hal-examples.txt +++ /dev/null @@ -1,243 +0,0 @@ -= HAL Examples - -All of these examples assume you are starting with a stepconf based -configuration and have two threads base-thread and servo-thread. The -stepconf wizard will create an empty custom.hal and a -custom_postgui.hal file. The custom.hal file will be loaded after the -configuration HAL file and the custom_postgui.hal file is loaded after -the GUI has been loaded. - -== Manual Toolchange - -In this example it is assumed that you're 'rolling your own' -configuration and wish to add the HAL Manual Toolchange window. The HAL -Manual Toolchange is primarily useful if you have presettable tools and -you store the offsets in the tool table. If you need to touch off for -each tool change then it is best just to split up your g code. To use -the HAL Manual Toolchange window you basically have to load the -hal_manualtoolchange component then send the iocontrol 'tool change' to -the hal_manualtoolchange 'change' and send the hal_manualtoolchange -'changed' back to the iocontrol 'tool changed'. A pin is provided for an -external input to indicate the tool change is complete. - -This is an example of manual toolchange 'with' -the HAL Manual Toolchange component: - ----- -loadusr -W hal_manualtoolchange -net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change -net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed -net external-tool-changed hal_manualtoolchange.change_button <= parport.0.pin-12-in -net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number -net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared ----- - -This is an example of manual toolchange 'without' -the HAL Manual Toolchange component: - ----- -net tool-number <= iocontrol.0.tool-prep-number -net tool-change-loopback iocontrol.0.tool.-change => iocontrol.0.tool-changed -net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared ----- - -== Compute Velocity - -This example uses 'ddt', 'mult2' and 'abs' to compute the velocity of -a single axis. For more information on the real time components see the -man pages or the Realtime Components section (<>). - -The first thing is to check your configuration to make sure you are -not using any of the real time components all ready. You can do this by -opening up the HAL Configuration window and look for the components in -the pin section. If you are then find the .hal file that they are being -loaded in and increase the counts and adjust the instance to the -correct value. Add the following to your custom.hal file. - -Load the realtime components. - ----- -loadrt ddt count=1 -loadrt mult2 count=1 -loadrt abs count=1 ----- - -Add the functions to a thread so it will get updated. - ----- -addf ddt.0 servo-thread -addf mult2.0 servo-thread -addf abs.0 servo-thread ----- - -Make the connections. - ----- -setp mult2.in1 60 -net xpos-cmd ddt.0.in -net X-IPS mult2.0.in0 <= ddt.0.out -net X-ABS abs.0.in <= mult2.0.out -net X-IPM abs.0.out ----- - -In this last section we are setting the mult2.0.in1 to 60 to convert -the inch per second to inch per minute that we get from the ddt.0.out. - -The xpos-cmd sends the commanded position to the ddt.0.in. The ddt -computes the derivative of the change of the input. - -The ddt2.0.out is multiplied by 60 to give IPM. - -The mult2.0.out is sent to the abs to get the absolute value. - -The following figure shows the result when the X axis is moving at 15 -IPM in the minus direction. Notice that we can get the absolute value -from either the abs.0.out pin or the X-IPM signal. - -.Velocity Example[[cap:Velocity-Example]] - -image::images/velocity-01.png[] - -== Soft Start - -This example shows how the HAL components 'lowpass', 'limit2' or -'limit3' can be used to limit how fast a signal changes. - -In this example we have a servo motor driving a lathe spindle. If we -just used the commanded spindle speeds on the servo it will try to go -from present speed to commanded speed as fast as it can. This could -cause a problem or damage the drive. To slow the rate of change we can -send the motion.spindle-speed-out through a limiter before the PID, so -that the PID command value changes to new settings more slowly. - -Three built-in components that limit a signal are: - -* 'limit2' limits the range and first derivative of a signal. - -* 'limit3' limits the range, first and second derivatives of a signal. - -* 'lowpass' uses an exponentially-weighted moving average to track an input signal. - -To find more information on these HAL components check the man pages. - -Place the following in a text file called softstart.hal. If you're not -familiar with Linux place the file in your home directory. - ----- -loadrt threads period1=1000000 name1=thread -loadrt siggen -loadrt lowpass -loadrt limit2 -loadrt limit3 -net square siggen.0.square => lowpass.0.in limit2.0.in limit3.0.in -net lowpass <= lowpass.0.out -net limit2 <= limit2.0.out -net limit3 <= limit3.0.out -setp siggen.0.frequency .1 -setp lowpass.0.gain .01 -setp limit2.0.maxv 2 -setp limit3.0.maxv 2 -setp limit3.0.maxa 10 -addf siggen.0.update thread -addf lowpass.0 thread -addf limit2.0 thread -addf limit3.0 thread -start -loadusr halscope ----- - -Open a terminal window and run the file with the following command. - ----- -halrun -I softstart.hal ----- - -When the HAL Oscilloscope first starts up click 'OK' to accept the -default thread. - -Next you have to add the signals to the channels. Click on channel 1 -then select 'square' from the Signals tab. Repeat for channels 2-4 and -add lowpass, limit2, and limit3. - -Next to set up a trigger signal click on the Source None button and -select square. The button will change to Source Chan 1. - -Next click on Single in the Run Mode radio buttons box. This will -start a run and when it finishes you will see your traces. - -To separate the signals so you can see them better click on a channel -then use the Pos slider in the Vertical box to set the positions. - -.Softstart[[cap:Softstart]] - -image::images/softstart-scope.png[] - -To see the effect of changing the set point values of any of the -components you can change them in the terminal window. To see what -different gain settings do for lowpass just type the following in the -terminal window and try different settings. - ----- -setp lowpass.0.gain *.01 ----- - -After changing a setting run the oscilloscope again to see the change. - -When you're finished type 'exit' in the terminal window to shut down -halrun and close the halscope. Don't close the terminal window with -halrun running as it might leave some things in memory that could -prevent EMC from loading. - -For more information on Halscope see the HAL manual. - -== Stand Alone HAL - -In some cases you might want to run a GladeVCP screen with just HAL. For -example say you had a stepper driven device that all you need is to run a -stepper motor. A simple 'Start/Stop' interface is all you need for your -application so no need to load up and configure a full blown CNC application. - -In the following example we have created a simple GladeVCP panel with one - -.Basic Syntax ----- -# load the winder.glade GUI and name it winder -loadusr -Wn winder gladevcp -c winder -u handler.py winder.glade - -# load realtime components -loadrt threads name1=fast period1=50000 fp1=0 name2=slow period2=1000000 -loadrt stepgen step_type=0 ctrl_type=v -loadrt hal_parport cfg="0x378 out" - -# add functions to threads -addf stepgen.make-pulses fast -addf stepgen.update-freq slow -addf stepgen.capture-position slow -addf parport.0.read fast -addf parport.0.write fast - -# make hal connections -net winder-step parport.0.pin-02-out <= stepgen.0.step -net winder-dir parport.0.pin-03-out <= stepgen.0.dir -net run-stepgen stepgen.0.enable <= winder.start_button - - - -# start the threads -start - -# comment out the following lines while testing and use the interactive -# option halrun -I -f start.hal to be able to show pins etc. - -# wait until the gladevcp GUI named winder terminates -waitusr winder - -# stop HAL threads -stop - -# unload HAL all components before exiting -unloadrt all ----- - - - diff --git a/docs/src/hal/hal-examples_es.txt b/docs/src/hal/hal-examples_es.txt deleted file mode 100644 index 63562f63397..00000000000 --- a/docs/src/hal/hal-examples_es.txt +++ /dev/null @@ -1,204 +0,0 @@ -= HAL Examples - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -All of these examples assume you are starting with a stepconf based -configuration and have two threads base-thread and servo-thread. The -stepconf wizard will create an empty custom.hal and a -custom_postgui.hal file. The custom.hal file will be loaded after the -configuration HAL file and the custom_postgui.hal file is loaded after -the GUI has been loaded. - -== Manual Toolchange - -In this example it is assumed that you're 'rolling your own' -configuration and wish to add the HAL Manual Toolchange window. The HAL -Manual Toolchange is primarily useful if you have presettable tools and -you store the offsets in the tool table. If you need to touch off for -each tool change then it is best just to split up your g code. To use -the HAL Manual Toolchange window you basically have to load the -hal_manualtoolchange component then send the iocontrol 'tool change' to -the hal_manualtoolchange 'change' and send the hal_manualtoolchange -'changed' back to the iocontrol 'tool changed'. - -This is an example of manual toolchange 'with' -the HAL Manual Toolchange component: - ----- -loadusr -W hal_manualtoolchange -net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change -net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed -net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number -net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared ----- - -This is an example of manual toolchange 'without' -the HAL Manual Toolchange component: - ----- -net tool-number <= iocontrol.0.tool-prep-number -net tool-change-loopback iocontrol.0.tool.-change => iocontrol.0.tool-changed -net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared ----- - -== Compute Velocity - -This example uses 'ddt', 'mult2' and 'abs' to compute the velocity of -a single axis. For more information on the real time components see the -man pages or the Realtime Components section (<>). - -The first thing is to check your configuration to make sure you are -not using any of the real time components all ready. You can do this by -opening up the HAL Configuration window and look for the components in -the pin section. If you are then find the .hal file that they are being -loaded in and increase the counts and adjust the instance to the -correct value. Add the following to your custom.hal file. - -Load the realtime components. - ----- -loadrt ddt count=1 -loadrt mult2 count=1 -loadrt abs count=1 ----- - -Add the functions to a thread so it will get updated. - ----- -addf ddt.0 servo-thread -addf mult2.0 servo-thread -addf abs.0 servo-thread ----- - -Make the connections. - ----- -setp mult2.in1 60 -net xpos-cmd ddt.0.in -net X-IPS mult2.0.in0 <= ddt.0.out -net X-ABS abs.0.in <= mult2.0.out -net X-IPM abs.0.out ----- - -In this last section we are setting the mult2.0.in1 to 60 to convert -the inch per second to inch per minute that we get from the ddt.0.out. - -The xpos-cmd sends the commanded position to the ddt.0.in. The ddt -computes the derivative of the change of the input. - -The ddt2.0.out is multiplied by 60 to give IPM. - -The mult2.0.out is sent to the abs to get the absolute value. - -The following figure shows the result when the X axis is moving at 15 -IPM in the minus direction. Notice that we can get the absolute value -from either the abs.0.out pin or the X-IPM signal. - -.Velocity Example[[cap:Velocity-Example]] - -image::images/velocity-01.png[] - -== Soft Start - -This example shows how the HAL components 'lowpass', 'limit2' or -'limit3' can be used to limit how fast a signal changes. - -In this example we have a servo motor driving a lathe spindle. If we -just used the commanded spindle speeds on the servo it will try to go -from present speed to commanded speed as fast as it can. This could -cause a problem or damage the drive. To slow the rate of change we can -send the motion.spindle-speed-out through a limiter before the PID, so -that the PID command value changes to new settings more slowly. - -Three built-in components that limit a signal are: - -* 'limit2' limits the range and first derivative of a signal. - -* 'limit3' limits the range, first and second derivatives of a signal. - -* 'lowpass' uses an exponentially-weighted moving average to track an input signal. - -To find more information on these HAL components check the man pages. - -Place the following in a text file called softstart.hal. If you're not -familiar with Linux place the file in your home directory. - ----- -loadrt threads period1=1000000 name1=thread -loadrt siggen -loadrt lowpass -loadrt limit2 -loadrt limit3 -net square siggen.0.square => lowpass.0.in limit2.0.in limit3.0.in -net lowpass <= lowpass.0.out -net limit2 <= limit2.0.out -net limit3 <= limit3.0.out -setp siggen.0.frequency .1 -setp lowpass.0.gain .01 -setp limit2.0.maxv 2 -setp limit3.0.maxv 2 -setp limit3.0.maxa 10 -addf siggen.0.update thread -addf lowpass.0 thread -addf limit2.0 thread -addf limit3.0 thread -start -loadusr halscope ----- - -Open a terminal window and run the file with the following command. - ----- -halrun -I softstart.hal ----- - -When the HAL Oscilloscope first starts up click 'OK' to accept the -default thread. - -Next you have to add the signals to the channels. Click on channel 1 -then select 'square' from the Signals tab. Repeat for channels 2-4 and -add lowpass, limit2, and limit3. - -Next to set up a trigger signal click on the Source None button and -select square. The button will change to Source Chan 1. - -Next click on Single in the Run Mode radio buttons box. This will -start a run and when it finishes you will see your traces. - -To separate the signals so you can see them better click on a channel -then use the Pos slider in the Vertical box to set the positions. - -.Softstart[[cap:Softstart]] - -image::images/softstart-scope.png[] - -To see the effect of changing the set point values of any of the -components you can change them in the terminal window. To see what -different gain settings do for lowpass just type the following in the -terminal window and try different settings. - ----- -setp lowpass.0.gain *.01 ----- - -After changing a setting run the oscilloscope again to see the change. - -When you're finished type 'exit' in the terminal window to shut down -halrun and close the halscope. Don't close the terminal window with -halrun running as it might leave some things in memory that could -prevent EMC from loading. - -For more information on Halscope see the HAL manual. - - diff --git a/docs/src/hal/hal-examples_fr.txt b/docs/src/hal/hal-examples_fr.txt deleted file mode 100644 index 7f94b2257f3..00000000000 --- a/docs/src/hal/hal-examples_fr.txt +++ /dev/null @@ -1,250 +0,0 @@ -:lang: fr -:toc: - -= Exemples pour HAL - -[[Exemples-pour-HAL]] (((Exemples pour HAL))) - -Tous ces exemples s'appuient sur une configuration créée par Stepconf, -elle a deux threads, _base-thread_ et _servo-thread_. - -L'assistant de configuration Stepconf aura créé le fichier vide _custom.hal_ -et le fichier _custom_postgui.hal_. - -Le fichier custom.hal sera chargé après le fichier de configuration de HAL, -le fichier custom_postgui.hal sera chargé après que l'interface graphique ne le -soit. - -== Changement d'outil manuel - -Dans cet exemple, il est supposé que la configuration a été réalisée et -qu'il faut lui ajouter la fenêtre de changement d'outil de HAL. Le composant -de changement d'outil manuel de HAL est surtout intéressant si les outils -sont mesurables avec précision en longueur et que les offsets sont stockés -dans la table d'outils. Si il est nécessaire de faire un _Toucher_ pour chaque -outil, il sera préférable de scinder le programme G-code en plusieurs tronçons. -Pour utiliser la fenêtre de changement manuel d'outil de HAL, il faut d'abord -charger le composant _hal_manualtoolchange_ puis envoyer l'ordre -_iocontrol tool change_ vers le _change_ de hal_manualtoolchange ainsi -qu'envoyer le _changed_ de hal_manualtoolchange en retour sur le -iocontrol tool changed. - -Voici un exemple _avec_ utilisation du composant de HAL, pour clarifier tout cela: ----- -loadusr -W hal_manualtoolchange -net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change -net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed -net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number -net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared ----- - -Et voici un exemple _sans_ le composant de changement manuel: ----- -net tool-number <= iocontrol.0.tool-prep-number -net tool-change-loopback iocontrol.0.tool.-change => iocontrol.0.tool-changed -net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared ----- - -== Calcul de vitesse - -Cet exemple utilise _ddt_, _mult2_ et _abs_ pour calculer la vitesse de -déplacement sur un axe. Pour plus de détails, voir la section -<>. - -En premier il convient de vérifier si la configuration contient déjà des -composants temps réel. Il est possible de le vérifier en ouvrant la fenêtre de -Halshow et en cherchant les composants dans la section des pins. Si il y en a -déjà en activité, il faudra augmenter leur nombre et ajuster l'instance de ces -composants à la valeur correcte. Ajouter le code suivant dans le fichier _custom.hal_. - -Charger les composants temps réel. ----- -loadrt ddt count=1 -loadrt mult2 count=1 -loadrt abs count=1 ----- - -Ajouter les fonctions au thread pour qu'elles soient rafraîchies. ----- -addf ddt.0 servo-thread -addf mult2.0 servo-thread -addf abs.0 servo-thread ----- - -Faire les connections. ----- -setp mult2.in1 60 -net xpos-cmd ddt.0.in -net X-IPS mult2.0.in0 <= ddt.0.out -net X-ABS abs.0.in <= mult2.0.out -net X-IPM abs.0.out ----- - -Dans la dernière section, nous avons fixé le _mult2.0.in1_ à 60 pour convertir -les unités par seconde en unités par minute (dans cet exemple, des pouces/mn), -nous l'obtenons sur la sortie _ddt.0.out_. - -La commande _xpos-cmd_ envoie la position commandée à l'entrée _ddt.0.in_. -Le _ddt_ calcule la dérivée de la variation du signal sur son entrée. - -La sortie ddt2.0.out est multipliée par 60 pour obtenir des unités par minute. - -La sortie mult2.0.out est envoyée au composant _abs_ pour obtenir la valeur -absolue. - -La figure suivante montre le résultat quand l'axe X se déplace à 15 unités/mn -dans la direction négative. Noter que la valeur absolue peut être prise sur -la pin _abs.0.out_ ou le signal X-IPM. - -[[cap:Velocity-Example]] -.Exemple avec la vitesse -(((Velocity exemple))) - -image::images/velocity-01.png[] - -== Amortissement d'un signal - -Cette exemple montre comment les composants de HAL _lowpass_, _limit2_ ou -_limit3_ peuvent être utilisés pour amortir de brusques changements d'un signal. - -Nous sommes sur un tour dont la broche est pilotée par un servomoteur. Si nous -envoyions directement la consigne de vitesse de broche sur le servo, celui-ci -chercherait, à partir de la vitesse courante, à atteindre la vitesse commandée -le plus vite possible. Cette situation est problématique et peut détériorer -le matériel. Pour amortir ce changement de vitesse, nous pouvons faire passer -la sortie _motion.spindle-speed-out_ à travers un limiteur avant d'aller au PID, -de sorte que la valeur de commande du PID soit amortie. - -Les trois composants intégrés pour amortir le signal seront: - -limit2:: -- Limite le signal de sortie pour qu’il soit entre min et max. -- Limite sa vitesse de montée à moins de MaxV par seconde. (dérivée première) - -limit3:: -- Limite le signal de sortie pour qu’il soit entre min et max. -- Limite sa vitesse de montée à moins de MaxV par seconde. (dérivée première) -- Limite sa vitesse de montée à moins de MaxV par seconde^2^. (dérivée seconde) - -lowpass:: -- Filtre passe-bas. - -Pour plus de détails voir <> -ou les man pages des composants concernés. - -Placer le code suivant dans un fichier appelé _softstart.hal_. ----- -loadrt threads period1=1000000 name1=thread -loadrt siggen -loadrt lowpass -loadrt limit2 -loadrt limit3 -net square siggen.0.square => lowpass.0.in limit2.0.in limit3.0.in -net lowpass <= lowpass.0.out -net limit2 <= limit2.0.out -net limit3 <= limit3.0.out -setp siggen.0.frequency .1 -setp lowpass.0.gain .01 -setp limit2.0.maxv 2 -setp limit3.0.maxv 2 -setp limit3.0.maxa 10 -addf siggen.0.update thread -addf lowpass.0 thread -addf limit2.0 thread -addf limit3.0 thread -start -loadusr halscope ----- - -Ouvrir un terminal et et lancer le fichier avec la commande suivante: ----- -halrun -I softstart.hal ----- - -Pour démarrer l'oscilloscope de HAL pour la première fois, cliquer _OK_ pour -accepter le thread par défaut. - -Ensuite, il faut ajouter les signaux à suivre aux canaux du scope. Cliquer sur -le canal _1_ puis sélectionner _square_ depuis l'onglet _Signaux_. Répéter -pour les canaux suivants en ajoutant _lowpass_, _limit2_ et _limit3_. - -Ensuite, pour régler le signal du déclencheur cliquer sur le bouton -_Source_ est sélectionner _square_. Le bouton devrait changer pour -_Source Canal 1_. - -Puis, cliquer sur _Simple_ dans le groupe _Mode Run_. L'oscillo -devrait faire un balayage puis, afficher les traces. - -Pour séparer les signaux et mieux les visualiser, cliquer sur un canal et -utiliser le curseur de position verticale pour positionner les traces. - -.Amortissement d'un signal carré[[cap:Softstart]] - -image::images/softstart-scope_fr.png[] - -Pour voir l'effet d'un changement du point de réglage des valeurs des composants, -il est possible de passer des commandes depuis le terminal. Par exemple,pour -voir différentes valeurs de gain pour le passe-bas, taper la commande suivante, -puis essayer différentes valeurs: ----- -setp lowpass.0.gain .01 ----- - -Après un changement de réglage, relancer Halscope pour visualiser l'effet. - -Pour terminer, taper _exit_ dans le terminal pour fermer halrun et halscope. -Ne pas refermer le terminal avec halrun en marche, la mémoire ne serait pas -vidée proprement, ce qui pourrait empêcher LinuxCNC de se charger. - -Pour tout savoir sur Halscope et Halrun <>. - -== HAL en autonome - -Dans certains cas il peut être utile de lancer un écran GladeVCP avec juste HAL. -Par exemple, nous avons un moteur pas à pas a piloter et tout ce qu'il nous faut -pour notre application est une simple interface avec _Marche/Arrêt_ plutôt que -charger une application de CNC complète. - -Dans l'exemple qui suit, nous allons créer ce simple panneau GladeVCP. - -.Syntaxe de base ----- -# charge l'interface graphique winder.glade et la nome winder -loadusr -Wn winder gladevcp -c winder -u handler.py winder.glade - -# charge les composants temps réel -loadrt threads name1=fast period1=50000 fp1=0 name2=slow period2=1000000 -loadrt stepgen step_type=0 ctrl_type=v -loadrt hal_parport cfg="0x378 out" - -# ajoute les fonctions aux threads -addf stepgen.make-pulses fast -addf stepgen.update-freq slow -addf stepgen.capture-position slow -addf parport.0.read fast -addf parport.0.write fast - -# effectue les connections de hal -net winder-step parport.0.pin-02-out <= stepgen.0.step -net winder-dir parport.0.pin-03-out <= stepgen.0.dir -net run-stepgen stepgen.0.enable <= winder.start_button - - - -# démarre les threads -start - -# commenter la ligne suivante pendant les essais et utiliser le mode interactif -pour voir les pins etc. -# option halrun -I -f start.hal - -# attends que la GUI gladevcp nommée winder soit terminée -waitusr winder - -# arrête tous les threads -stop - -# décharge tous les composants de HAL avant de quitter -unloadrt all ----- diff --git a/docs/src/hal/halmodule.txt b/docs/src/hal/halmodule.txt deleted file mode 100644 index 9f8a3166eed..00000000000 --- a/docs/src/hal/halmodule.txt +++ /dev/null @@ -1,172 +0,0 @@ -= Creating Userspace Python Components - -== Basic usage - -A userspace component begins by creating its pins and parameters, then -enters a loop which will periodically drive all the outputs from the -inputs. The following component copies the value seen on its input pin -('passthrough.in') to its output pin ('passthrough.out') approximately -once per second. - -[source,c] ----- -#!/usr/bin/python -import hal, time -h = hal.component("passthrough") -h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN) -h.newpin("out", hal.HAL_FLOAT, hal.HAL_OUT) -h.ready() -try: - while 1: - time.sleep(1) - h['out'] = h['in'] -except KeyboardInterrupt: - raise SystemExit ----- - -Copy the above listing into a file named "passthrough", make it -executable ('chmod +x'), and place it on your '$PATH'. Then try it out: - ----- -halrun - -halcmd: loadusr passthrough - -halcmd: show pin - - Component Pins: - Owner Type Dir Value Name - 03 float IN 0 passthrough.in - 03 float OUT 0 passthrough.out - -halcmd: setp passthrough.in 3.14 - -halcmd: show pin - - Component Pins: - Owner Type Dir Value Name - 03 float IN 3.14 passthrough.in - 03 float OUT 3.14 passthrough.out ----- - -== Userspace components and delays - -If you typed “show pin†quickly, you may see that 'passthrough.out' -still had its old value of 0. This is because of the call to -'time.sleep(1)', which makes the assignment to the output pin occur at -most once per second. Because this is a userspace component, the actual -delay between assignments can be much longer if the -memory used by the passthrough component is swapped to disk, the -assignment could be delayed until that memory is swapped back in. - -Thus, userspace components are suitable for user-interactive elements -such as control panels (delays in the range of milliseconds are not -noticed, and longer delays are acceptable), but not for sending step -pulses to a stepper driver board (delays must always be in the range of -microseconds, no matter what). - -== Create pins and parameters - ----- -h = hal.component("passthrough") ----- - -The component itself is created by a call to the constructor -'hal.component'. The arguments are the HAL component name and -(optionally) the -prefix used for pin and parameter names. If the prefix is not -specified, the component name is used. - ----- -h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN) ----- - -Then pins are created by calls to methods on the component object. The -arguments are: pin name suffix, pin type, and pin direction. For -parameters, the arguments are: parameter name suffix, parameter type, -and parameter direction. - -.HAL Option Names[[cap:HAL-Option-Names]] -[width="100%",cols="<3s,4*<"] -|=========================================================== -|Pin and Parameter Types: |HAL_BIT |HAL_FLOAT |HAL_S32 |HAL_U32 -|Pin Directions: |HAL_IN |HAL_OUT |HAL_IO | -|Parameter Directions: |HAL_RO |HAL_RW | | -|=========================================================== - -The full pin or parameter name is formed by joining the prefix and the -suffix with a ".", so in the example the pin created is called -'passthrough.in'. - ----- -h.ready() ----- - -Once all the pins and parameters have been created, call the -'.ready()' method. - -=== Changing the prefix - -The prefix can be changed by calling the '.setprefix()' method. The -current prefix can be retrieved by calling the '.getprefix()' method. - -== Reading and writing pins and parameters - -For pins and parameters which are also proper Python identifiers, the -value may be accessed or set using the attribute syntax: - ----- -h.out = h.in ----- - -For all pins, whether or not they are also proper Python identifiers, -the value may be accessed or set using the subscript syntax: - ----- -h['out'] = h['in'] ----- - -=== Driving output (HAL_OUT) pins - -Periodically, usually in response to a timer, all HAL_OUT pins should -be "driven" by assigning them a new value. This should be done whether -or not the value is different than the last one assigned. When a pin is -connected to a signal, its old output value is not copied into the -signal, so the proper value will only appear on the signal once the -component assigns a new value. - -=== Driving bidirectional (HAL_IO) pins - -The above rule does not apply to bidirectional pins. Instead, a -bidirectional pin should only be driven by the component when the -component wishes to change the value. For instance, in the canonical -encoder interface, the encoder component only sets the 'index-enable' -pin to *FALSE* (when an index pulse is seen and the old value is -*TRUE*), but never sets it to *TRUE*. Repeatedly driving the pin -*FALSE* might cause the other connected component to act as though -another index pulse had been seen. - -== Exiting - -A 'halcmd unload' request for the component is delivered as a -'KeyboardInterrupt' exception. When an unload request arrives, the -process should either -exit in a short time, or call the '.exit()' method on the component -if substantial work (such as reading or -writing files) must be done to complete the shutdown process. - -== Project ideas - -* Create an external control panel with buttons, switches, and - indicators. Connect everything to a microcontroller, and connect the - microcontroller to the PC using a serial interface. Python has a very - capable serial interface module called - http://pyserial.sourceforge.net/[pyserial] - (Ubuntu package name “python-serialâ€, in the universe repository) -* Attach a http://lcdproc.omnipotent.net/[LCDProc]-compatible LCD module - and use it to display a digital readout with information of your choice - (Ubuntu package name “lcdprocâ€, in the universe repository) -* Create a virtual control panel using any GUI library supported by - Python (gtk, qt, wxwindows, etc) - - diff --git a/docs/src/hal/halmodule_es.txt b/docs/src/hal/halmodule_es.txt deleted file mode 100644 index 2c55aced1e0..00000000000 --- a/docs/src/hal/halmodule_es.txt +++ /dev/null @@ -1,185 +0,0 @@ -= Creating Userspace Python Components - -== Basic usage - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -A userspace component begins by creating its pins and parameters, then -enters a loop which will periodically drive all the outputs from the -inputs. The following component copies the value seen on its input pin -('passthrough.in') to its output pin ('passthrough.out') approximately -once per second. - -[source,c] ----- -#!/usr/bin/python -import hal, time -h = hal.component("passthrough") -h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN) -h.newpin("out", hal.HAL_FLOAT, hal.HAL_OUT) -h.ready() -try: - while 1: - time.sleep(1) - h['out'] = h['in'] -except KeyboardInterrupt: - raise SystemExit ----- - -Copy the above listing into a file named "passthrough", make it -executable ('chmod +x'), and place it on your '$PATH'. Then try it out: - ----- -halrun - -halcmd: loadusr passthrough - -halcmd: show pin - - Component Pins: - Owner Type Dir Value Name - 03 float IN 0 passthrough.in - 03 float OUT 0 passthrough.out - -halcmd: setp passthrough.in 3.14 - -halcmd: show pin - - Component Pins: - Owner Type Dir Value Name - 03 float IN 3.14 passthrough.in - 03 float OUT 3.14 passthrough.out ----- - -== Userspace components and delays - -If you typed “show pin†quickly, you may see that 'passthrough.out' -still had its old value of 0. This is because of the call to -'time.sleep(1)', which makes the assignment to the output pin occur at -most once per second. Because this is a userspace component, the actual -delay between assignments can be much longer if the -memory used by the passthrough component is swapped to disk, the -assignment could be delayed until that memory is swapped back in. - -Thus, userspace components are suitable for user-interactive elements -such as control panels (delays in the range of milliseconds are not -noticed, and longer delays are acceptable), but not for sending step -pulses to a stepper driver board (delays must always be in the range of -microseconds, no matter what). - -== Create pins and parameters - ----- -h = hal.component("passthrough") ----- - -The component itself is created by a call to the constructor -'hal.component'. The arguments are the HAL component name and -(optionally) the -prefix used for pin and parameter names. If the prefix is not -specified, the component name is used. - ----- -h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN) ----- - -Then pins are created by calls to methods on the component object. The -arguments are: pin name suffix, pin type, and pin direction. For -parameters, the arguments are: parameter name suffix, parameter type, -and parameter direction. - -.HAL Option Names[[cap:HAL-Option-Names]] -[width="100%",cols="<3s,4*<"] -|=========================================================== -|Pin and Parameter Types: |HAL_BIT |HAL_FLOAT |HAL_S32 |HAL_U32 -|Pin Directions: |HAL_IN |HAL_OUT |HAL_IO | -|Parameter Directions: |HAL_RO |HAL_RW | | -|=========================================================== - -The full pin or parameter name is formed by joining the prefix and the -suffix with a ".", so in the example the pin created is called -'passthrough.in'. - ----- -h.ready() ----- - -Once all the pins and parameters have been created, call the -'.ready()' method. - -=== Changing the prefix - -The prefix can be changed by calling the '.setprefix()' method. The -current prefix can be retrieved by calling the '.getprefix()' method. - -== Reading and writing pins and parameters - -For pins and parameters which are also proper Python identifiers, the -value may be accessed or set using the attribute syntax: - ----- -h.out = h.in ----- - -For all pins, whether or not they are also proper Python identifiers, -the value may be accessed or set using the subscript syntax: - ----- -h['out'] = h['in'] ----- - -=== Driving output (HAL_OUT) pins - -Periodically, usually in response to a timer, all HAL_OUT pins should -be "driven" by assigning them a new value. This should be done whether -or not the value is different than the last one assigned. When a pin is -connected to a signal, its old output value is not copied into the -signal, so the proper value will only appear on the signal once the -component assigns a new value. - -=== Driving bidirectional (HAL_IO) pins - -The above rule does not apply to bidirectional pins. Instead, a -bidirectional pin should only be driven by the component when the -component wishes to change the value. For instance, in the canonical -encoder interface, the encoder component only sets the 'index-enable' -pin to *FALSE* (when an index pulse is seen and the old value is -*TRUE*), but never sets it to *TRUE*. Repeatedly driving the pin -*FALSE* might cause the other connected component to act as though -another index pulse had been seen. - -== Exiting - -A 'halcmd unload' request for the component is delivered as a -'KeyboardInterrupt' exception. When an unload request arrives, the -process should either -exit in a short time, or call the '.exit()' method on the component -if substantial work (such as reading or -writing files) must be done to complete the shutdown process. - -== Project ideas - -* Create an external control panel with buttons, switches, and - indicators. Connect everything to a microcontroller, and connect the - microcontroller to the PC using a serial interface. Python has a very - capable serial interface module called - http://pyserial.sourceforge.net/[pyserial] - (Ubuntu package name “python-serialâ€, in the universe repository) -* Attach a http://lcdproc.omnipotent.net/[LCDProc]-compatible LCD module - and use it to display a digital readout with information of your choice - (Ubuntu package name “lcdprocâ€, in the universe repository) -* Create a virtual control panel using any GUI library supported by - Python (gtk, qt, wxwindows, etc) - - diff --git a/docs/src/hal/halmodule_fr.txt b/docs/src/hal/halmodule_fr.txt deleted file mode 100644 index 2b815930d46..00000000000 --- a/docs/src/hal/halmodule_fr.txt +++ /dev/null @@ -1,176 +0,0 @@ -:lang: fr -:toc: - -= Créer des composants de l'espace utilisateur - -== Utilisation de base en Python - -Un composant de l'espace utilisateur commence par créer ses pins et -ses paramètres, puis il entre dans une boucle dans laquelle il va -positionner périodiquement toutes ses sorties en fonction de ses -entrées. Le composant suivant, un passe-tout, copie la valeur vue sur -ses pins d'entrée (_passe_tout.in_) vers ses pins de sortie -(_passe_tout.out_) approximativement une fois par seconde. ----- -#!/usr/bin/python -import hal, time -h = hal.component("passe_tout") -h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN) -h.newpin("out", hal.HAL_FLOAT, hal.HAL_OUT) -h.ready() -try: - while 1: - time.sleep(1) - h['out'] = h['in'] -except KeyboardInterrupt: - raise SystemExit ----- - -Copier le listing précédent dans un fichier nommé _passe_tout_, le -rendre exécutable par un _chmod +x_ et le placer dans son _$PATH_. -On peut alors l'essayer en faisant: - - -+*halrun*+ - -+halcmd: *loadusr passe_tout*+ - -+halcmd: *show pin*+ - - Component Pins: - Owner Type Dir Value Name - 03 float IN 0 passe_tout.in - 03 float OUT 0 passe_tout.out - -+halcmd: *setp passe_tout.in 3.14*+ - -+halcmd: *show pin*+ - - Component Pins: - Owner Type Dir Value Name - 03 float IN 3.14 passe_tout.in - 03 float OUT 3.14 passe_tout.out - - -== Composants de l'espace utilisateur et délais - -Si vous tapez rapidement _show pin_, vous pourrez voir que -_passe_tout.out_ conserve un moment son ancienne valeur de 0. Ceci -est dû à l'appel de la fonction _time.sleep(1)_, qui fait que les pins -de sortie changent d'état, au plus, une fois par seconde. -Parce-que ce composant appartient à l'espace utilisateur, -ce délai peut apparaître plus long, par exemple si la mémoire utilisée -par le composant pass_tout est échangée avec le disque dur, -le délai peut être allongé jusqu'au rafraîchissement de la mémoire. - -Ces composants de l'espace utilisateur conviennent parfaitement pour -des éléments tels que des panneaux de contrôle pour lesquels des délais -de l'ordre de quelques millisecondes sont imperceptibles. Ils ne -conviennent pas, en revanche, pour envoyer des impulsions de pas vers -une carte de pilotage de périphériques pour lesquelles les délais -doivent rester de l'ordre de quelques microsecondes, dans tous les -cas. - -== Créer les pins et les paramètres - -+h = hal.component("passe_tout")+ - -Le composant lui-même est créé par l'appel du constructeur -_hal.component_. Les arguments sont le nom du composant HAL et -optionnellement, le préfixe utilisé pour les noms de pin et de paramètre. -Si le préfixe n'est pas spécifié, le nom du composant est utilisé. - -+h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN)+ - -Puis les pins sont créées par appels des méthodes sur l'objet -composant. Les arguments sont: pin nom suffixe, type de pin et -direction de la pin. Pour les paramètres, les arguments sont: paramètre -nom suffixe, type de paramètre et direction du paramètre. - -.Noms des options de HAL - -[width="95%", options="header"] -|======================================== -|*Types de Pin et Paramètre:* | HAL_BIT | HAL_FLOAT | HAL_S32 | HAL_U32 -|*Directions des pins:* | HAL_IN | HAL_OUT | HAL_IO | -|*Directions des paramètres:* | HAL_RO | HAL_RW | | -|======================================== - -Le nom complet d'une pin ou d'un paramètre est formé en joignant le -préfixe avec le suffixe par un *.*, comme dans l'exemple où la pin -créée est appelée _passe_tout.in_. - -+h.ready()+ - -Une fois toutes les pins et les paramètres créés, la méthode _.ready()_ -est appelée. - -=== Changer le préfixe - -Le préfixe peut être changé en appelant la méthode _.setprefix()_. Le -préfixe courant peut être retrouvé en appelant la méthode -_.getprefix()_. - -== Lire et écrire les pins et les paramètres - -Pour les pins et les paramètres qui sont aussi des identifiants -Python, la valeur est accessible ou ajustable en utilisant la syntaxe -des attributs suivante: - -+h.out = h.in+ - -Pour les pins et les paramètres qui sont aussi des identifiants -Python, la valeur est accessible ou ajustable en utilisant la syntaxe -de sous-script suivante: - -+h['out'] = h['in']+ - -=== Pilotage des pins de sortie (HAL_OUT) - -Périodiquement, habituellement dans le temps de réponse de l'horloge, -toutes les pins HAL_OUT doivent être _pilotées_ en leur assignant une -nouvelle valeur. Ceci doit être fait que la valeur soit différente ou -non de la valeur précédemment assignée. Quand la pin est connectée au -signal, l'ancienne valeur de sortie n'est pas copiée vers le signal, la -valeur correcte n'apparaîtra donc sur le signal qu'une fois que le -composant lui aura assigné une nouvelle valeur. - -=== Pilotage des pins bidirectionnelles (HAL_IO) - -La règle mentionnée ci-dessus ne s'applique pas aux pins -bidirectionnelles. Au lieux de cela, une pin bidirectionnelle doit -seulement être pilotée par le composant et quand le composant souhaite -changer sa valeur. Par exemple, dans l'interface codeur, le composant -codeur positionne seulement la pin _index-enable_ à _FALSE_ quand une -impulsion d'index est vue et que l'ancienne valeur est _TRUE_, mais ne -la positionne jamais à _TRUE_. Positionner de manière répétitive la -pin à _FALSE_ pourrait faire qu'un autre composant connecté agisse -comme si une nouvelle impulsion d'index avait été vue. - -== Quitter - -Une requête _halcmd unload_ pour le composant est délivrée comme une -exception _KeyboardInterrupt_ . Quand une requête de déchargement -arrive, le processus doit quitter - dans un court laps de temps ou appeler la méthode _.exit()_ sur le -composant si un travail substantiel, comme la lecture ou -l'écriture de fichiers, doit être fourni pour terminer le processus -d'arrêt. - -== Idées de projets - - - Créer un panneau de contrôle extérieur avec boutons poussoirs, - interrupteurs et voyants. Connecter le tout à un microcontrôleur et - raccorder le microcontrôleur à un PC en utilisant une liaison série. - Python est vraiment capable d'interfacer une liaison série grâce à son - module http://pyserial.sourceforge.net/[pyserial] (Paquet - _python-serial_, dans les dépôts universe d'Ubuntu) - - Relier un module d'affichage à LCD - http://lcdproc.omnipotent.net/[LCDProc] et l'utiliser pour afficher les - informations de votre choix (Paquet _lcdproc_, dans les dépôts universe - d'Ubuntu) - - Créer un panneau de contrôle virtuel utilisant n'importe quelle - librairie d'interface graphique supportée par Python (gtk, qt, - wxwindows, etc) - - diff --git a/docs/src/hal/halshow.txt b/docs/src/hal/halshow.txt deleted file mode 100644 index ba6bc7775e5..00000000000 --- a/docs/src/hal/halshow.txt +++ /dev/null @@ -1,253 +0,0 @@ -= Halshow - -[[cha:halshow]] (((Halshow))) - -The script halshow can help you find your way around a running HAL. -This is a very specialized system and it must connect to a working HAL. -It cannot run standalone because it relies on the ability of HAL to -report what it knows of itself through the halcmd interface library. It -is discovery based. Each time halshow runs with a different LinuxCNC -configuration it will be different. - -As we will soon see, this ability of HAL to document itself is one key -to making an effective CNC system. - -== Starting Halshow - -Halshow is in the AXIS menu under Machine/Show HAL Configuration. - -Halshow is in the TkLinuxCNC menu under Scripts/HAL Show. - -== HAL Tree Area - -At the left of its display as shown in figure <> -is a tree view, somewhat like you might see with some file browsers. At -the right is a tabbed notebook with tabs for show and watch. - -.Halshow Layout[[cap:Halshow-Layout]] - -image::images/halshow-1.png[align="center"] - -The tree shows all of the major parts of a HAL. In front of each is a -small plus (+) or minus (-) sign in a box. Clicking the plus will -expand that tree node to display what is under it. If that box shows a -minus sign, clicking it will collapse that section of the tree. - -You can also expand or collapse the tree display using the Tree View -menu at the upper left edge of the display. Under Tree View you will -find: Expand Tree, Collapse Tree; Expand Pins, Expand Parameters, -Expand Signals; and Erase Watch. (Note that Erase Watch erases 'all' -previously set watches, you cannot erase just one watch.) - -.Show Menu[[cap:Show-Menu]] - -image::images/halshow-3.png[align="center"] - -== HAL Show Area - -Clicking on the node name, the word "Components" for example, will -show you (under the "Show" tab) all that HAL knows about the contents -of that node. Figure <> shows a list exactly like -you will see if you click the "Components" name while you are running a -standard m5i20 servo card. The information display is exactly like -those shown in traditional text based HAL analysis tools. The advantage -here is that we have mouse click access, access that can be as broad or -as focused as you need. - -If we take a closer look at the tree display we can see that the six -major parts of a HAL can all be expanded at least one level. As these -levels are expanded you can get more focused with the reply when you -click on the rightmost tree node. You will find that there are some HAL -pins and parameters that show more than one reply. This is due to the -nature of the search routines in halcmd itself. If you search one pin -you may get two, like this: - ----- -Component Pins: -Owner Type Dir Value Name -06 bit -W TRUE parport.0.pin-10-in -06 bit -W FALSE parport.0.pin-10-in-not ----- - -The second pin's name contains the complete name of the first. - -Below the show area on the right is a set of widgets that will allow -you to play with the running HAL. The commands you enter here and the -effect that they have on the running HAL are not saved. They will -persist as long as LinuxCNC remains up but are gone as soon as LinuxCNC is. - -The entry box labeled "Test HAL Command:" will accept any of the -commands listed for halcmd. These include: - - - loadrt, unloadrt (load/unload real-time module) - - loadusr, unloadusr (load/unload user-space component) - - addf, delf (add/delete a function to/from a real-time thread) - - net (create a connection between two or more items) - - setp (set parameter (or pin) to a value) - -This little editor will enter a command any time you press or -push the execute button. An error message from halcmd will show below -this entry widget when these commands are not properly formed. If you -are not certain how to set up a proper command you'll need to read -again the documentation on halcmd and the specific modules that you are -working with. - -Let's use this editor to add a differential module to a HAL and -connect it to axis position so that we could see the rate of change in -position, i.e., acceleration. We first need to load a HAL component named -blocks, add it to the servo thread, then connect it to the position pin -of an axis. Once that is done we can find the output of the -differentiator in halscope. So let's go. (Yes, I looked this one up.) - ----- -loadrt blocks ddt=1 ----- - -Now look at the components node and you should see blocks in there -someplace. - ----- -Loaded HAL Components: -ID Type Name -10 User halcmd29800 -09 User halcmd29374 -08 RT blocks -06 RT hal_parport -05 RT scope_rt -04 RT stepgen -03 RT motmod -02 User iocontrol ----- - -Sure enough there it is. Notice that its ID is 08. Next we need to -find out what functions are available with it so we look at functions: - ----- -Exported Functions: -Owner CodeAddr Arg FP Users Name - 08 E0B97630 E0DC7674 YES 0 ddt.0 - 03 E0DEF83C 00000000 YES 1 motion-command-handler - 03 E0DF0BF3 00000000 YES 1 motion-controller - 06 E0B541FE E0DC75B8 NO 1 parport.0.read - 06 E0B54270 E0DC75B8 NO 1 parport.0.write - 06 E0B54309 E0DC75B8 NO 0 parport.read-all - 06 E0B5433A E0DC75B8 NO 0 parport.write-all - 05 E0AD712D 00000000 NO 0 scope.sample - 04 E0B618C1 E0DC7448 YES 1 stepgen.capture-position - 04 E0B612F5 E0DC7448 NO 1 stepgen.make-pulses - 04 E0B614AD E0DC7448 YES 1 stepgen.update-freq ----- - -Here we look for owner #08 and see that blocks has exported a function -named ddt.0. We should be able to add ddt.0 to the servo thread and it -will do its math each time the servo thread is updated. Once again we -look up the addf command and find that it uses three arguments like -this: - ----- -addf [] ----- - -We already know the functname=ddt.0 so let's get the thread name right -by expanding the thread node in the tree. Here we see two threads, -servo-thread and base-thread. The position of ddt.0 in the thread is -not critical. So we add the function ddt.0 to the servo-thread: - ----- -addf ddt.0 servo-thread ----- - -This is just for viewing, so we leave position blank and get the last -position in the thread. Figure <> shows the state of -halshow after this command has been issued. - -.Addf Command[[cap:Addf-Command]] - -image::images/halshow-2.png[align="center"] - -Next we need to connect this block to something. But how do we know -what pins are available? The answer is to look under pins. There we -find ddt and see this: - ----- -Component Pins: -Owner Type Dir Value Name -08 float R- 0.00000e+00 ddt.0.in -08 float -W 0.00000e+00 ddt.0.out ----- - -That looks easy enough to understand, but what signal or pin do we -want to connect to it? It could be an axis pin, a stepgen pin, or a -signal. We see this when we look at axis.0: - ----- -Component Pins: -Owner Type Dir Value Name -03 float -W 0.00000e+00 axis.0.motor-pos-cmd ==> Xpos-cmd ----- - -So it looks like Xpos-cmd should be a good signal to use. Back to the -editor where we enter the following command: - ----- -linksp Xpos-cmd ddt.0.in ----- - -Now if we look at the Xpos-cmd signal using the tree node we'll see -what we've done: - ----- -Signals: -Type Value Name -float 0.00000e+00 Xpos-cmd -<== axis.0.motor-pos-cmd -==> ddt.0.in -==> stepgen.0.position-cmd ----- - -We see that this signal comes from axis.o.motor-pos-cmd and goes to -both ddt.0.in and stepgen.0.position-cmd. By connecting our block to -the signal we have avoided any complications with the normal flow of -this motion command. - -The HAL Show Area uses halcmd to discover what is happening in a -running HAL. It gives you complete information about what it has -discovered. It also updates as you issue commands from the little -editor panel to modify that HAL. There are times when you want a -different set of things displayed without all of the information -available in this area. That is where the HAL Watch Area is of value. - -== HAL Watch Area - -Clicking the watch tab produces a blank canvas. You can add signals -and pins to this canvas and watch their values.footnote:[The refresh -rate of the watch display is much lower than Halmeter or -Halscope. If you need good resolution of the timing of signals those -tools are much more effective.] -You can add signals or pins when the watch tab is displayed by -clicking on the name of it. Figure <> shows this -canvas with several "bit" type signals. These signals include -enable-out for the first three axes and two of the three iocontrol -"estop" signals. Notice that the axes are not enabled even though the -estop signals say that LinuxCNC is not in estop. A quick look at TkLinuxCNC shows -that the condition of LinuxCNC is ESTOP RESET. The amp enables do not turn -true until the machine has been turned on. - -.[[cap:Watch-Display]]Watch Display - -image::images/halshow-4.png[align="center"] - -Watch displays bit type (binary) values using colored circles -representing LEDs. They show as dark brown when a bit signal or pin is -false, and as light yellow whenever that signal is true. If you select -a pin or signal that is not a bit type (binary) signal, watch will show -it as a numerical value. - -Watch will quickly allow you to test switches or see the effect of -changes that you make to LinuxCNC while using the graphical interface. -Watch's refresh rate is a bit slow to see stepper pulses, but you can -use it for these if you move an axis very slowly or in very small -increments of distance. If you've used IO_Show in LinuxCNC, the watch page -in halshow can be set up to watch a parport much as IO_Show did. - - diff --git a/docs/src/hal/halshow_es.txt b/docs/src/hal/halshow_es.txt deleted file mode 100644 index a5c5a0ebb13..00000000000 --- a/docs/src/hal/halshow_es.txt +++ /dev/null @@ -1,266 +0,0 @@ -= Halshow - -[[cha:halshow]] (((Halshow))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -The script halshow can help you find your way around a running HAL. -This is a very specialized system and it must connect to a working HAL. -It cannot run standalone because it relies on the ability of HAL to -report what it knows of itself through the halcmd interface library. It -is discovery based. Each time halshow runs with a different LinuxCNC -configuration it will be different. - -As we will soon see, this ability of HAL to document itself is one key -to making an effective CNC system. - -== Starting Halshow - -Halshow is in the AXIS menu under Machine/Show HAL Configuration. - -Halshow is in the TkLinuxCNC menu under Scripts/HAL Show. - -== HAL Tree Area - -At the left of its display as shown in figure <> -is a tree view, somewhat like you might see with some file browsers. At -the right is a tabbed notebook with tabs for show and watch. - -.Halshow Layout[[cap:Halshow-Layout]] - -image::images/halshow-1.png[align="center"] - -The tree shows all of the major parts of a HAL. In front of each is a -small plus (+) or minus (-) sign in a box. Clicking the plus will -expand that tree node to display what is under it. If that box shows a -minus sign, clicking it will collapse that section of the tree. - -You can also expand or collapse the tree display using the Tree View -menu at the upper left edge of the display. Under Tree View you will -find: Expand Tree, Collapse Tree; Expand Pins, Expand Parameters, -Expand Signals; and Erase Watch. (Note that Erase Watch erases 'all' -previously set watches, you cannot erase just one watch.) - -.Show Menu[[cap:Show-Menu]] - -image::images/halshow-3.png[align="center"] - -== HAL Show Area - -Clicking on the node name, the word "Components" for example, will -show you (under the "Show" tab) all that HAL knows about the contents -of that node. Figure <> shows a list exactly like -you will see if you click the "Components" name while you are running a -standard m5i20 servo card. The information display is exactly like -those shown in traditional text based HAL analysis tools. The advantage -here is that we have mouse click access, access that can be as broad or -as focused as you need. - -If we take a closer look at the tree display we can see that the six -major parts of a HAL can all be expanded at least one level. As these -levels are expanded you can get more focused with the reply when you -click on the rightmost tree node. You will find that there are some HAL -pins and parameters that show more than one reply. This is due to the -nature of the search routines in halcmd itself. If you search one pin -you may get two, like this: - ----- -Component Pins: -Owner Type Dir Value Name -06 bit -W TRUE parport.0.pin-10-in -06 bit -W FALSE parport.0.pin-10-in-not ----- - -The second pin's name contains the complete name of the first. - -Below the show area on the right is a set of widgets that will allow -you to play with the running HAL. The commands you enter here and the -effect that they have on the running HAL are not saved. They will -persist as long as LinuxCNC remains up but are gone as soon as LinuxCNC is. - -The entry box labeled "Test HAL Command:" will accept any of the -commands listed for halcmd. These include: - - - loadrt, unloadrt (load/unload real-time module) - - loadusr, unloadusr (load/unload user-space component) - - addf, delf (add/delete a function to/from a real-time thread) - - net (create a connection between two or more items) - - setp (set parameter (or pin) to a value) - -This little editor will enter a command any time you press or -push the execute button. An error message from halcmd will show below -this entry widget when these commands are not properly formed. If you -are not certain how to set up a proper command you'll need to read -again the documentation on halcmd and the specific modules that you are -working with. - -Let's use this editor to add a differential module to a HAL and -connect it to axis position so that we could see the rate of change in -position, i.e., acceleration. We first need to load a HAL component named -blocks, add it to the servo thread, then connect it to the position pin -of an axis. Once that is done we can find the output of the -differentiator in halscope. So let's go. (Yes, I looked this one up.) - ----- -loadrt blocks ddt=1 ----- - -Now look at the components node and you should see blocks in there -someplace. - ----- -Loaded HAL Components: -ID Type Name -10 User halcmd29800 -09 User halcmd29374 -08 RT blocks -06 RT hal_parport -05 RT scope_rt -04 RT stepgen -03 RT motmod -02 User iocontrol ----- - -Sure enough there it is. Notice that its ID is 08. Next we need to -find out what functions are available with it so we look at functions: - ----- -Exported Functions: -Owner CodeAddr Arg FP Users Name - 08 E0B97630 E0DC7674 YES 0 ddt.0 - 03 E0DEF83C 00000000 YES 1 motion-command-handler - 03 E0DF0BF3 00000000 YES 1 motion-controller - 06 E0B541FE E0DC75B8 NO 1 parport.0.read - 06 E0B54270 E0DC75B8 NO 1 parport.0.write - 06 E0B54309 E0DC75B8 NO 0 parport.read-all - 06 E0B5433A E0DC75B8 NO 0 parport.write-all - 05 E0AD712D 00000000 NO 0 scope.sample - 04 E0B618C1 E0DC7448 YES 1 stepgen.capture-position - 04 E0B612F5 E0DC7448 NO 1 stepgen.make-pulses - 04 E0B614AD E0DC7448 YES 1 stepgen.update-freq ----- - -Here we look for owner #08 and see that blocks has exported a function -named ddt.0. We should be able to add ddt.0 to the servo thread and it -will do its math each time the servo thread is updated. Once again we -look up the addf command and find that it uses three arguments like -this: - ----- -addf [] ----- - -We already know the functname=ddt.0 so let's get the thread name right -by expanding the thread node in the tree. Here we see two threads, -servo-thread and base-thread. The position of ddt.0 in the thread is -not critical. So we add the function ddt.0 to the servo-thread: - ----- -addf ddt.0 servo-thread ----- - -This is just for viewing, so we leave position blank and get the last -position in the thread. Figure <> shows the state of -halshow after this command has been issued. - -.Addf Command[[cap:Addf-Command]] - -image::images/halshow-2.png[align="center"] - -Next we need to connect this block to something. But how do we know -what pins are available? The answer is to look under pins. There we -find ddt and see this: - ----- -Component Pins: -Owner Type Dir Value Name -08 float R- 0.00000e+00 ddt.0.in -08 float -W 0.00000e+00 ddt.0.out ----- - -That looks easy enough to understand, but what signal or pin do we -want to connect to it? It could be an axis pin, a stepgen pin, or a -signal. We see this when we look at axis.0: - ----- -Component Pins: -Owner Type Dir Value Name -03 float -W 0.00000e+00 axis.0.motor-pos-cmd ==> Xpos-cmd ----- - -So it looks like Xpos-cmd should be a good signal to use. Back to the -editor where we enter the following command: - ----- -linksp Xpos-cmd ddt.0.in ----- - -Now if we look at the Xpos-cmd signal using the tree node we'll see -what we've done: - ----- -Signals: -Type Value Name -float 0.00000e+00 Xpos-cmd -<== axis.0.motor-pos-cmd -==> ddt.0.in -==> stepgen.0.position-cmd ----- - -We see that this signal comes from axis.o.motor-pos-cmd and goes to -both ddt.0.in and stepgen.0.position-cmd. By connecting our block to -the signal we have avoided any complications with the normal flow of -this motion command. - -The HAL Show Area uses halcmd to discover what is happening in a -running HAL. It gives you complete information about what it has -discovered. It also updates as you issue commands from the little -editor panel to modify that HAL. There are times when you want a -different set of things displayed without all of the information -available in this area. That is where the HAL Watch Area is of value. - -== HAL Watch Area - -Clicking the watch tab produces a blank canvas. You can add signals -and pins to this canvas and watch their values.footnote:[The refresh -rate of the watch display is much lower than Halmeter or -Halscope. If you need good resolution of the timing of signals those -tools are much more effective.] -You can add signals or pins when the watch tab is displayed by -clicking on the name of it. Figure <> shows this -canvas with several "bit" type signals. These signals include -enable-out for the first three axes and two of the three iocontrol -"estop" signals. Notice that the axes are not enabled even though the -estop signals say that LinuxCNC is not in estop. A quick look at TkLinuxCNC shows -that the condition of LinuxCNC is ESTOP RESET. The amp enables do not turn -true until the machine has been turned on. - -.[[cap:Watch-Display]]Watch Display - -image::images/halshow-4.png[align="center"] - -Watch displays bit type (binary) values using colored circles -representing LEDs. They show as dark brown when a bit signal or pin is -false, and as light yellow whenever that signal is true. If you select -a pin or signal that is not a bit type (binary) signal, watch will show -it as a numerical value. - -Watch will quickly allow you to test switches or see the effect of -changes that you make to LinuxCNC while using the graphical interface. -Watch's refresh rate is a bit slow to see stepper pulses, but you can -use it for these if you move an axis very slowly or in very small -increments of distance. If you've used IO_Show in LinuxCNC, the watch page -in halshow can be set up to watch a parport much as IO_Show did. - - diff --git a/docs/src/hal/halshow_fr.txt b/docs/src/hal/halshow_fr.txt deleted file mode 100644 index 29273cfd0e5..00000000000 --- a/docs/src/hal/halshow_fr.txt +++ /dev/null @@ -1,257 +0,0 @@ -:lang: fr -:toc: - -= Les fonctionnalités de Halshow - -[[cha:halshow]] (((Halshow))) - -== Le script Halshow - -Le script halshow peut vous aider à retrouver votre chemin dans un HAL -en fonctionnement. Il s'agit d'un système très spécialisé qui doit se -connecter à un HAL en marche. Il ne peut pas fonctionner seul car il -repose sur la capacité de HAL de rapporter ce qu'il connaît de lui même -par la librairie d'interface de halcmd. Chaque fois que halshow -fonctionne avec une configuration de LinuxCNC différente, il sera différent. - -Comme nous le verrons bientôt, cette capacité de HAL de se documenter -lui même est un des facteurs clés pour arriver à un système CNC -optimum. - -On peut accéder à Halshow depuis Axis, pour cela, aller dans le menu -_Machine_ puis choisir _Afficher la configuration de HAL_. - -=== Zone de l'arborescence de Hal - -La gauche de l'écran que montre la figure ci-dessous est -une arborescence, un peu comme vous pouvez le voir avec certains -navigateurs de fichiers. Sur la droite, une zone avec deux onglets: -MONTRER et WATCH. - -[[cap:Fenetre-Halshow]] -.La fenêtre de Halshow - -image::images/halshow-1_fr.png[] - -L'arborescence montre toutes les parties principales de HAL. En face -de chacune d'entre elles, se trouve un petit signe + ou - dans une -case. Cliquer sur le signe plus pour déployer cette partie de -l'arborescence et affichera son contenu. Si cette case affiche un signe -moins, cliquer dessus repliera cette section de l'arborescence. - -Il est également possible de déployer et de replier l'arborescence -complète depuis le menu _Arborescence_. - -[[cap:onglet-Montrer]] -.L'onglet Montrer - -image::images/halshow-3.png[] - -=== Zone de l'onglet MONTRER - -En cliquant sur un nom dans l'arborescence plutôt que sur son signe -plus ou moins, par exemple le mot _Components_, HAL affichera tout ce -qu'il connait du contenu de celui-ci. La figure -<> montre une liste comme celle que vous verrez si -vous cliquez sur _Components_ avec une carte servo standard m5i20 en -fonctionnement. L'affichage des informations est exactement le même que -celui des traditionnels outils d'analyse de HAL en mode texte. -L'avantage ici, c'est que nous y avons accès d'un clic de souris. Accès -qui peut être aussi large ou aussi focalisé que vous le voulez. - -Si nous examinons de plus près l'affichage de l'arborescence, nous -pouvons voir que les six éléments principaux peuvent tous être déployés -d'au moins un niveau. Quand ces niveaux sont à leur tour déployés vous -obtenez une information de plus en plus focalisée en cliquant sur le -nom des éléments dans l'arborescence. Vous trouverez que certaines hal -pins et certains paramètres affichent plusieurs réponses. C'est dû à la -nature des routines de recherche dans halcmd lui même. Si vous cherchez -une pin, vous pouvez en trouver deux comme cela: - - Component Pins: - Owner Type Dir Value Name - 06 bit -W TRUE parport.0.pin-10-in - 06 bit -W FALSE parport.0.pin-10-in-not - -Le deuxième nom de pin contient le nom complémenté du premier. - -Dans le bas de l'onglet Montrer, un champ de saisie permet de jouer -sur le fonctionnement de HAL. Les commandes que vous entrez ici et leur -effet sur HAL, ne sont pas enregistrés. Elles persisteront tant que LinuxCNC -tournera, mais disparaîtront dès son arrêt. - -Le champ de saisie marqué _Tester une commande HAL:_ acceptera -n'importe quelle commande valide pour halcmd. Elles incluent: - -- Loadrt, unloadrt (chargement / déchargement en temps réel du module) -- Loadusr, unloadusr (chargement / déchargement de l'espace utilisateur des composants) -- addf, delf (ajout / suppression d'une fonction de / vers un fil en temps réel) -- net (créer une connexion entre deux ou plusieurs articles) -- setp (jeu de paramètres (ou broches) à une valeur) - -Ce petit éditeur entrera une commande à chaque fois que vous presserez -_Entrée_ ou que vous cliquerez sur le bouton _Exécuter_. Si une -commande y est mal formée, un dialogue d'erreur s'affichera. Si vous -n'êtes pas sûr de savoir comment formuler une commande, vous trouverez -la réponse dans la documentation de halcmd et des modules spécifiques -avec lesquels vous travaillez. - -Nous allons utiliser cet éditeur pour ajouter un module différentiel à -HAL et le connecter à la position d'un axe pour voir le ratio de -changement de position, par exemple, l'accélération. Il faut d'abord -charger un module de HAL nommé blocks, l'ajouter au thread servo et le -connecter à la pin position d'un axe. Une fois cela fait, nous pourrons -retrouver la sortie du différenciateur dans halscope. Alors allons-y. -(oui j'ai vérifié). - -Ndt: le message qui s'affiche au chargement de blocks ne l'empêche pas -de fonctionner. ----- -loadrt blocks ddt=1 ----- - -Maintenant, regardez dans components, vous devriez y voir blocks. ----- - Loaded HAL Components: - ID Type Name - 10 User halcmd29800 - 09 User halcmd29374 - 08 RT blocks - 06 RT hal_parport - 05 RT scope_rt - 04 RT stepgen - 03 RT motmod - 02 User iocontrol ----- - -Effectivement, il est là. Dans notre cas l'id est 08. Ensuite nous -devons savoir quelles fonctions sont disponibles avec lui, nous -regardons dans Functions. ----- - Exported Functions: - Owner CodeAddr Arg FP Users Name - 08 E0B97630 E0DC7674 YES 0 ddt.0 - 03 E0DEF83C 00000000 YES 1 motion-command-handler - 03 E0DF0BF3 00000000 YES 1 motion-controller - 06 E0B541FE E0DC75B8 NO 1 parport.0.read - 06 E0B54270 E0DC75B8 NO 1 parport.0.write - 06 E0B54309 E0DC75B8 NO 0 parport.read-all - 06 E0B5433A E0DC75B8 NO 0 parport.write-all - 05 E0AD712D 00000000 NO 0 scope.sample - 04 E0B618C1 E0DC7448 YES 1 stepgen.capture-position - 04 E0B612F5 E0DC7448 NO 1 stepgen.make-pulses - 04 E0B614AD E0DC7448 YES 1 stepgen.update-freq ----- - -Ici, nous cherchons owner #08 et voyons que blocks a exporté une -fonction nommée ddt.0. Nous devrions être en mesure d'ajouter ddt.0 au -thread servo et il fera ses calculs chaque fois que le thread sera mis -à jour. Encore une fois recherchons la commande addf et on voit qu'elle -utilise trois arguments comme cela: - - addf [] - -Nous connaissons déjà functname=ddt.0, pour trouver le nom du thread, -déployons l'arborescence des Threads. Nous y trouvons deux threads, -servo-thread et base-thread. La position de ddt.0 dans le thread n'est -pas critique. Passons la commande: ----- -addf ddt.0 servo-thread ----- - -Comme c'est juste pour visualiser, nous laissons la position en blanc -pour obtenir la dernière position dans le thread. La figure -<> affiche l'état de halshow après -que cette commande a été exécutée. - -[[cap:Commande-addf]] -.Commande Addf - -image::images/halshow-2_fr.png[] - -Ensuite, nous devons connecter ce bloc à quelque chose. Mais comment -savoir quelles pins sont disponibles? La réponse se trouve dans -l'arbre, en regardant sous Pins. On y trouve ddt et on voit: ----- - Component Pins: - Owner Type Dir Value Name - 08 float R- 0.00000e+00 ddt.0.in - 08 float -W 0.00000e+00 ddt.0.out ----- - -Cela semble assez facile à comprendre, mais à quel signal ou pin -voulons-nous nous connecter, ça pourrait être une pin d'axe, une pin de -stepgen, ou un signal. On vois cela en regardant dans axis.0. ----- - Component Pins: - Owner Type Dir Value Name - 03 float -W 0.00000e+00 axis.0.motor-pos-cmd ==> Xpos-cmd ----- - -Donc, il semble que Xpos-cmd devrait être un bon signal à utiliser. -Retour à l'éditeur et entrons la commande suivante: ----- -linksp Xpos-cmd ddt.0.in ----- - -Maintenant si on regarde le signal Xpos-cmd dans l'arbre, on voit ce -qu'on a fait. ----- - Signals: - Type Value Name - float 0.00000e+00 Xpos-cmd - <== axis.0.motor-pos-cmd - ==> ddt.0.in - ==> stepgen.0.position-cmd ----- - -Nous voyons que ce signal provient de axis.0.motor-pos-cmd et va, à la -fois, sur ddt.0.in et sur stepgen.0.position-cmd. En connectant notre -bloc au signal nous avons évité les complications avec le flux normal -de cette commande de mouvement. - -La zone de l'onglet _Montrer_ utilise halcmd pour découvrir ce qui se -passe à l'intérieur de HAL pendant son fonctionnement. Il vous donne -une information complète de ce qu'il découvre. Il met aussi à jour dès -qu'une commande est envoyée depuis le petit éditeur pour modifier ce -HAL. Il arrive un temps ou vous voulez autre chose d'affiché, sans la -totalité des informations disponibles dans cette zone. C'est la grande -valeur de l'onglet _WATCH_ d'offrir cela graphiquement. - -=== Zone de l'onglet WATCH - -En cliquant sur l'onglet Watch, une zone vide s'affichera. -footnote:[Le taux de rafraîchissement de la zone Watch est plus -lent que celui de Halmeter ou de Halscope. Si vous avez besoin d'une bonne résolution -dans le timming des signaux, ces outils sont plus efficaces.] -Vous pouvez ajouter des pins ou des signaux quand l'onglet Watch est -ouvert, en cliquant sur leurs noms. La figure <> -montre cette zone avec plusieurs signaux de type _bit_. Parmis ces -signaux, les enable-out pour les trois premiers axes et deux de la -branche iocontrol, les signaux _estop_. Notez que les axes ne sont pas -activés même si les signaux estop disent que LinuxCNC n'est pas en estop. Un -bref regard sur TkLinuxCNC en arrière plan, montre que l'état de LinuxCNC est -ESTOP RESET. L'activation des amplis ne deviendra pas vraie tant que la -machine ne sera pas mise en marche. - -[[Onglet-watch]] -.L'onglet WATCH -(((L'onglet watch))) - -image::images/halshow-4.png[] - -Les cercles de deux couleurs, simili Leds, sont toujours bruns foncé -quand un signal est faux. Elle sont jaunes quand le signal est vrai. -Quand une pin ou un signal est sélectionné mais n'est pas de type bit, -sa valeur numérique s'affiche. - -Watch permet de visualiser rapidement le résultat de tests sur des -contacts ou de voir l'effet d'un changement que vous faites dans LinuxCNC en -utilisant l'interface graphique. Le taux de rafraîchissement de Watch -est un peu trop lent pour visualiser les impulsions de pas d'un moteur -mais vous pouvez l'utiliser si vous déplacez un axe très lentement ou -par très petits incréments de distance. Si vous avez déjà utilisé -IO_Show dans LinuxCNC, la page de Watch de halshow peut être réglée pour -afficher ce que fait le port parallèle. - - diff --git a/docs/src/hal/haltcl.txt b/docs/src/hal/haltcl.txt deleted file mode 100644 index e7ce38d7bd9..00000000000 --- a/docs/src/hal/haltcl.txt +++ /dev/null @@ -1,206 +0,0 @@ -= HAL TCL Files - -[[cha:hal-tcl]] (((HAL TCL Files))) - -The halcmd language excels in specifiying components and connections but -offers no computational capabilities. As a result, ini files are limited in -the clarity and brevity that is possible with higher level languages. - -The haltcl facility provides a means to use tcl scripting and its features for -computation, looping, branching, procedures, etc. in ini files. To use this -functionality, you use the tcl language and the extension .tcl for halfiles. - -The .tcl extension is understood by the main script (linuxcnc) that processes -ini files. Haltcl files are identified in the the HAL section of ini files -(just like .hal files). - -.Example ----- -[HAL] -HALFILE = conventional_file.hal -HALFILE = tcl_based_file.tcl ------ - -With appropriate care, .hal and .tcl files can be intermixed. - -== Compatibility - -The halcmd language used in .hal files has a simple syntax that is actually a -subset of the more powerful general-purpose tcl scripting language. - - -== Haltcl Commands - -Haltcl files use the tcl scripting language augmented with the specific -commands of the LinuxCNC hardware abstraction layer (HAL). The hal-specific -commands are. - -.... -addf, alias, -delf, delsig, -getp, gets -ptype, -stype, -help, -linkpp, linkps, linksp, list, loadrt, loadusr, lock, -net, newsig, -save, setp, sets, show, source, start, status, stop, -unalias, unlinkp, unload, unloadrt, unloadusr, unlock, -waitusr -.... - -Two special cases occur for the 'gets' and 'list' commands due to -conflicts with tcl builtin commands. For haltcl, these -commands must be preceded with the keyword 'hal'. - -.... -halcmd haltcl ------- ------ -gets hal gets -list hal list -.... - - -== Haltcl Inifile variables - -Inifile variables are accessible by both halcmd and haltcl but with -differing syntax. - -LinuxCNC ini files use SECTION and ITEM specifiers to identify -configuration items. - ----- -[SECTION_A] -ITEM1 = value_1 -ITEM2 = value_2 -... -[SECTION_B] -... ----- - -The ini file values are accessible by text substition in .hal files using the -form. - ----- -[SECTION]ITEM ----- - -The same ini file values are accessible in .tcl files using the form of a tcl -global array variable. - ----- -$::SECTION(ITEM) ----- - -For example, an ini file item like: - ----- -[AXIS_0] -MAX_VELOCITY = 4 ----- - -is expressed as [AXIS_0]MAX_VELOCITY in .hal files for halcmd -and as $::AXIS_0(MAX_VELOCITY) in .tcl files for haltcl - -== Converting .hal files to .tcl files - -Existing .hal files can be converted to .tcl files by hand editing to adapt to -the differences mentioned above. The process can be automated with scripts -that convert using these substitutions. - ----- -[SECTION]ITEM ---> $::SECTION(ITEM) -gets ---> hal gets -list ---> hal list ----- - -== Haltcl Notes - -In haltcl, the value argument for the 'sets' and 'setp' commands -is implicitly treated as an expression in the tcl language. - -.Example ----- -# set gain to convert deg/sec to units/min for AXIS_0 radius -setp scale.0.gain 6.28/360.0*$::AXIS_0(radius)*60.0 ----- - -Whitespace in the bare expression is not allowed, use quotes -for that: - ----- -setp scale.0.gain "6.28 / 360.0 * $::AXIS_0(radius) * 60.0" ----- - -In other contexts, such as 'loadrt', you must explicitly use -the tcl expr command ([expr {}]) for computational expressions. - -.Example ----- -loadrt motion base_period=[expr {500000000/$::TRAJ(MAX_PULSE_RATE)}] ----- - -== Haltcl Examples - -Consider the topic of 'stepgen headroom'. Software stepgen runs best with an -acceleration constraint that is "a bit higher" than the one used by the motion -planner. So, when using halcmd files, we force inifiles to have a manually -calculated value. - ----- -[AXIS_0] -MAXACCEL = 10.0 -STEPGEN_MAXACCEL = 10.5 ----- - -With haltcl, you can use tcl commands to do the computation and -eliminate the STEPGEN_MAXACCEL inifile item altogether. - ----- -setp stepgen.0.maxaccel $::AXIS_0(MAXACCEL)*1.05 ----- - -Another haltcl feature is looping and testing. For example, many simulator -configurations use "core_sim.hal" or "core_sim9.hal" hal files. These differ -because of the requirement to connect more or fewer axes. The following haltcl -code would work for any combination of axes in a trivkins machine. - ----- -# Create position, velocity and acceleration signals for each axis -set ddt 0 -foreach axis {X Y Z A B C U V W} axno {0 1 2 3 4 5 6 7 8} { - # 'list pin' returns an empty list if the pin doesn't exist - if {[hal list pin axis.$axno.motor-pos-cmd] == {}} { - continue - } - net ${axis}pos axis.$axno.motor-pos-cmd => axis.$axno.motor-pos-fb \ - => ddt.$ddt.in - net ${axis}vel <= ddt.$ddt.out - incr ddt - net ${axis}vel => ddt.$ddt.in - net ${axis}acc <= ddt.$ddt.out - incr ddt -} -puts [show sig *vel] -puts [show sig *acc] ----- - -== Haltcl Interactive - -The halrun command recognizes haltcl files. With the -T option, -haltcl can be run interaactively as a tcl interpreter. This -capability is useful for testing and for standalone hal applications. - -.Example ----- -$ halrun -T haltclfile.tcl ----- - - -== Haltcl Distribution Examples (sim) - -The configs/sim/axis/simtcl directory includes an ini file that uses a .tcl file -to demonstrate a haltcl configuration in conjunction with the usage of -twopass processing. The example shows the use of tcl procedures, looping, the -use of comments, and output to the terminal. - diff --git a/docs/src/hal/haltcl_es.txt b/docs/src/hal/haltcl_es.txt deleted file mode 100644 index 44c286b9a38..00000000000 --- a/docs/src/hal/haltcl_es.txt +++ /dev/null @@ -1,219 +0,0 @@ -= HAL TCL Files - -[[cha:hal-tcl]] (((HAL TCL Files))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -The halcmd language excels in specifiying components and connections but -offers no computational capabilities. As a result, ini files are limited in -the clarity and brevity that is possible with higher level languages. - -The haltcl facility provides a means to use tcl scripting and its features for -computation, looping, branching, procedures, etc. in ini files. To use this -functionality, you use the tcl language and the extension .tcl for halfiles. - -The .tcl extension is understood by the main script (linuxcnc) that processes -ini files. Haltcl files are identified in the the HAL section of ini files -(just like .hal files). - -.Example ----- -[HAL] -HALFILE = conventional_file.hal -HALFILE = tcl_based_file.tcl ------ - -With appropriate care, .hal and .tcl files can be intermixed. - -== Compatibility - -The halcmd language used in .hal files has a simple syntax that is actually a -subset of the more powerful general-purpose tcl scripting language. - - -== Haltcl Commands - -Haltcl files use the tcl scripting language augmented with the specific -commands of the LinuxCNC hardware abstraction layer (HAL). The hal-specific -commands are. - -.... -addf, alias, -delf, delsig, -getp, gets -ptype, -stype, -help, -linkpp, linkps, linksp, list, loadrt, loadusr, lock, -net, newsig, -save, setp, sets, show, source, start, status, stop, -unalias, unlinkp, unload, unloadrt, unloadusr, unlock, -waitusr -.... - -Two special cases occur for the 'gets' and 'list' commands due to -conflicts with tcl builtin commands. For haltcl, these -commands must be preceded with the keyword 'hal'. - -.... -halcmd haltcl ------- ------ -gets hal gets -list hal list -.... - - -== Haltcl Inifile variables - -Inifile variables are accessible by both halcmd and haltcl but with -differing syntax. - -LinuxCNC ini files use SECTION and ITEM specifiers to identify -configuration items. - ----- -[SECTION_A] -ITEM1 = value_1 -ITEM2 = value_2 -... -[SECTION_B] -... ----- - -The ini file values are accessible by text substition in .hal files using the -form. - ----- -[SECTION]ITEM ----- - -The same ini file values are accessible in .tcl files using the form of a tcl -global array variable. - ----- -$::SECTION(ITEM) ----- - -For example, an ini file item like: - ----- -[AXIS_0] -MAX_VELOCITY = 4 ----- - -is expressed as [AXIS_0]MAX_VELOCITY in .hal files for halcmd -and as $::AXIS_0(MAX_VELOCITY) in .tcl files for haltcl - -== Converting .hal files to .tcl files - -Existing .hal files can be converted to .tcl files by hand editing to adapt to -the differences mentioned above. The process can be automated with scripts -that convert using these substitutions. - ----- -[SECTION]ITEM ---> $::SECTION(ITEM) -gets ---> hal gets -list ---> hal list ----- - -== Haltcl Notes - -In haltcl, the value argument for the 'sets' and 'setp' commands -is implicitly treated as an expression in the tcl language. - -.Example ----- -# set gain to convert deg/sec to units/min for AXIS_0 radius -setp scale.0.gain 6.28/360.0*$::AXIS_0(radius)*60.0 ----- - -Whitespace in the bare expression is not allowed, use quotes -for that: - ----- -setp scale.0.gain "6.28 / 360.0 * $::AXIS_0(radius) * 60.0" ----- - -In other contexts, such as 'loadrt', you must explicitly use -the tcl expr command ([expr {}]) for computational expressions. - -.Example ----- -loadrt motion base_period=[expr {500000000/$::TRAJ(MAX_PULSE_RATE)}] ----- - -== Haltcl Examples - -Consider the topic of 'stepgen headroom'. Software stepgen runs best with an -acceleration constraint that is "a bit higher" than the one used by the motion -planner. So, when using halcmd files, we force inifiles to have a manually -calculated value. - ----- -[AXIS_0] -MAXACCEL = 10.0 -STEPGEN_MAXACCEL = 10.5 ----- - -With haltcl, you can use tcl commands to do the computation and -eliminate the STEPGEN_MAXACCEL inifile item altogether. - ----- -setp stepgen.0.maxaccel $::AXIS_0(MAXACCEL)*1.05 ----- - -Another haltcl feature is looping and testing. For example, many simulator -configurations use "core_sim.hal" or "core_sim9.hal" hal files. These differ -because of the requirement to connect more or fewer axes. The following haltcl -code would work for any combination of axes in a trivkins machine. - ----- -# Create position, velocity and acceleration signals for each axis -set ddt 0 -foreach axis {X Y Z A B C U V W} axno {0 1 2 3 4 5 6 7 8} { - # 'list pin' returns an empty list if the pin doesn't exist - if {[hal list pin axis.$axno.motor-pos-cmd] == {}} { - continue - } - net ${axis}pos axis.$axno.motor-pos-cmd => axis.$axno.motor-pos-fb \ - => ddt.$ddt.in - net ${axis}vel <= ddt.$ddt.out - incr ddt - net ${axis}vel => ddt.$ddt.in - net ${axis}acc <= ddt.$ddt.out - incr ddt -} -puts [show sig *vel] -puts [show sig *acc] ----- - -== Haltcl Interactive - -The halrun command recognizes haltcl files. With the -T option, -haltcl can be run interaactively as a tcl interpreter. This -capability is useful for testing and for standalone hal applications. - -.Example ----- -$ halrun -T haltclfile.tcl ----- - - -== Haltcl Distribution Examples (sim) - -The configs/sim/axis/simtcl directory includes an ini file that uses a .tcl file -to demonstrate a haltcl configuration in conjunction with the usage of -twopass processing. The example shows the use of tcl procedures, looping, the -use of comments, and output to the terminal. - diff --git a/docs/src/hal/haltcl_fr.txt b/docs/src/hal/haltcl_fr.txt deleted file mode 100644 index 2117540223c..00000000000 --- a/docs/src/hal/haltcl_fr.txt +++ /dev/null @@ -1,217 +0,0 @@ -:lang: fr -:toc: - -= Fichiers TCL pour HAL - -[[cha:hal-tcl]] (((Fichiers TCL pour HAL))) - -Le langage de halcmd excelle pour spécifier des composants et des connexions -mais il n'offre aucune possibilité de calcul. -Par conséquent, les fichiers ini sont limités en clarté et n'ont pas la -concision qu'ils pourraient avoir avec un langage de haut niveau. - -Haltcl fourni un moyen facile d'utiliser les scripts tcl et leurs fonctions -pour les calculs, les boucles, les branchements, les procédures, etc dans les -fichiers ini. Pour utiliser cette fonctionnalité, il est nécessaire d'utiliser -le langage TCL ainsi que l'extension .tcl pour les fichiers de HAL. - -L'extension .tcl est comprise par le script principal (linuxcnc) qui traite -les fichiers ini. Les fichiers haltcl sont identifiés dans la section [HAL] -des fichiers ini (comme les fichiers .hal). - -.Exemple ----- -[HAL] -HALFILE = fichier_conventionnel.hal -HALFILE = fichier_tcl.tcl ------ - -Avec quelques précautions appropriées, les fichiers .hal et .tcl peuvent être -mélangés. - -== Compatibilité - -Le langage utilisé dans les fichiers .tcl a une syntaxe simple qui est un -sous-ensemble du puissant et polyvalent langage de script Tcl. - -== Commandes haltcl - -Les fichiers haltcl utilisent le langage de script Tcl, auquel s'ajoutent -les commandes spécifiques de la couche d'abstraction matériel de LinuxCNC (HAL). -Les commandes spécifiques sont les suivantes: -.... -addf, alias, -delf, delsig, -getp, gets -ptype, -stype, -help, -linkpp, linkps, linksp, list, loadrt, loadusr, lock, -net, newsig, -save, setp, sets, show, source, start, status, stop, -unalias, unlinkp, unload, unloadrt, unloadusr, unlock, -waitusr -.... - -Il existe deux cas particuliers, les commandes 'gets' et 'list' en raison -de conflits avec les commandes internes de Tcl. Pour haltcl, ces commandes -doivent être précédées du mot clé 'hal', comme ci-dessous: - -.... -halcmd haltcl ------- ------ -gets hal gets -list hal list -.... - - -== Variables du fichier ini et haltcl - -Les variables du fichier ini sont accessibles par halcmd comme par haltcl -mais avec une syntaxe différente. - -Les fichiers ini de LinuxCNC utilisent des spécificateurs _SECTION_ et _ITEM_ -pour identifier les items de configuration: - ----- -[SECTION_A] -ITEM1 = value_1 -ITEM2 = value_2 -... -[SECTION_B] -... ----- - -Les valeurs du fichier ini sont accessibles par substitution de texte dans -les fichiers .hal en utilisant la forme: - ----- -[SECTION]ITEM ----- - -Les mêmes valeurs de fichiers ini sont accessibles dans les fichiers .tcl sous -la forme de tableau de variables globales. - ----- -$::SECTION(ITEM) ----- - -Par exemple, un item de fichier ini comme: - ----- -[AXIS_0] -MAX_VELOCITY = 4 ----- - -est exprimé comme [AXIS_0]MAX_VELOCITY dans les fichiers .hal pour halcmd -et comme $::AXIS_0(MAX_VELOCITY) dans les fichiers .tcl pour haltcl. - -== Conversion des fichiers .hal en fichiers .tcl - -Les fichiers .hal existants peuvent être convertis manuellement en -fichiers .tcl en les éditant pour adapter les différences mentionnées -précédemment. Ce processus peut être automatisé à l'aide de scripts de -conversion procédant à ces substitutions: - ----- -[SECTION]ITEM ---> $::SECTION(ITEM) -gets ---> hal gets -list ---> hal list ----- - -== Notes à propos de haltcl - -Dans haltcl, la valeur de l'argument pour les commandes 'sets' et 'setp' -est implicitement traitée comme une expression dans le langage Tcl. - -.exemple ----- -# set gain to convert deg/sec to units/min for AXIS_0 radius -setp scale.0.gain 6.28/360.0*$::AXIS_0(radius)*60.0 ----- - -Les espaces blancs ne sont pas autorisés dans les expressions, utiliser des -guillemets doubles pour s'en affranchir: - ----- -setp scale.0.gain "6.28 / 360.0 * $::AXIS_0(radius) * 60.0" ----- - -Dans d'autres contextes, tels que 'loadrt', il est nécessaire d'utiliser -explicitement la commande Tcl expr ([expr {}]) pour des expressions -de calcul. - -.exemple ----- -loadrt motion base_period=[expr {500000000/$::TRAJ(MAX_PULSE_RATE)}] ----- - -== Exemples pour haltcl - -Prenons la question de la marge haute de stepgen ('stepgen headroom'). -Le générateur de pas logiciel stepgen fonctionne mieux avec une contrainte -d'accélération légèrement supérieure à celle du planificateur de mouvement. -Ainsi, lorsqu'on utilise des fichiers halcmd, on force une valeur calculée -manuellement dans le fichier ini. - ----- -[AXIS_0] -MAXACCEL = 10.0 -STEPGEN_MAXACCEL = 10.5 ----- - -Avec haltcl, il est possible d'utiliser des commandes Tcl pour effectuer le -calcul et éliminer totalement l'item STEPGEN_MAXACCEL du fichier ini. - ----- -setp stepgen.0.maxaccel $::AXIS_0(MAXACCEL)*1.05 ----- - -Autres caractéristiques de haltcl, les boucles et les tests. -Par exemple, beaucoup de configurations utilisent les fichiers .hal -_core_sim.hal_ ou _core_sim9.hal_. Ceux-ci diffèrent du fait de la nécessité -de connecter plus ou moins d'axes. Le code haltcl suivant devrait fonctionner -pour n'importe quelle combinaison d'axes dans une machine à cinématique -triviale (trivkins). - ----- -# Crée les signaux position, vitesse et accélération pour chaque axe -set ddt 0 -foreach axis {X Y Z A B C U V W} axno {0 1 2 3 4 5 6 7 8} { - # 'list pin' retourne une liste vide si la pin n'existe pas - if {[hal list pin axis.$axno.motor-pos-cmd] == {}} { - continue - } - net ${axis}pos axis.$axno.motor-pos-cmd => axis.$axno.motor-pos-fb \ - => ddt.$ddt.in - net ${axis}vel <= ddt.$ddt.out - incr ddt - net ${axis}vel => ddt.$ddt.in - net ${axis}acc <= ddt.$ddt.out - incr ddt -} -puts [show sig *vel] -puts [show sig *acc] ----- - -== Interactivité de haltcl - -La commande halrun reconnaît les fichiers halctl. Avec l'option -T, -haltcl peut être exécuté interactivement comme un interpréteur Tcl. -Cette fonctionnalité est utile pour les tests et pour les applications hal -autonomes. - -.exemple ----- -$ halrun -T fichierhaltcl.tcl ----- - - -== Exemples pour haltcl fournis avec la distribution (sim) - -Le répertoire _configs/sim/axis/simtcl_ contient un fichier ini qui utilise un -fichier .tcl pour démontrer une configuration haltcl en conjonction avec -l'utilisation du processus "twopass". L'exemple montre l'utilisation des -procédures Tcl, les boucles, l'utilisation des commentaires avec sortie -sur le terminal. - diff --git a/docs/src/hal/halui_examples.txt b/docs/src/hal/halui_examples.txt deleted file mode 100644 index fe4b5d2dc11..00000000000 --- a/docs/src/hal/halui_examples.txt +++ /dev/null @@ -1,84 +0,0 @@ -= Halui Examples - -For any Halui examples to work you need to add the following line to the [HAL] -section of the ini file. - ----- -HALUI = halui ----- - -[[sec:Remote-Start-Example]] -== Remote Start - -To connect a remote program start button to LinuxCNC you use the -`halui.program.run` pin and the `halui.mode.auto` pin. -You have to insure that it is OK to run first by using the -`halui.mode.is-auto` pin. You do this with an `and2` -component. The following figure shows how this is done. -When the Remote Run Button is pressed it is connected to -both `halui.mode.auto` and `and2.0.in0`. If it is OK for -auto mode the pin `halui.mode.is-auto` will be on. -If both the inputs to the `and2.0` component are on the -`and2.0.out` will be on and this will start the program. - -.Remote Start Example -image::images/remote-start.png[] - -The hal commands needed to accomplish the above are: - - net program-start-btn halui.mode.auto and2.0.in0 <= - net program-run-ok and2.0.in1 <= halui.mode.is-auto - net remote-program-run halui.program.run <= and2.0.out - -Notice on line one that there are two reader pins, this can also be split -up to two lines like this: - - net program-start-btn halui.mode.auto <= - net program-start-btn and2.0.in0 - -== Pause & Resume - -This example was developed to allow LinuxCNC to move a -rotary axis on a signal from an external machine. -The coordination between the two systems will be -provided by two Halui components: - - - halui.program.is-paused - - halui.program.resume - -In your customized hal file, add the following -two lines that will be connected to your I/O to turn -on the program pause or to resume when the external -system wants LinuxCNC to continue. - - net ispaused halui.program.is paused => "your output pin" - net resume halui.program.resume <= "your input pin" - -Your input and output pins are connected to the pins -wired to the other controller. They may be parallel port -pins or any other I/O pins that you have access to. - -This system works in the following way. When an M0 is -encountered in your G-code, the `halui.program.is-paused` -signal goes true. This turns on your output pin so that -the external controller knows that LinuxCNC is paused. - -To resume the LinuxCNC gcode program, when the external controller -is ready it will make its output true. This will signal -LinuxCNC that it should resume executing Gcode. - -Difficulties in timing - - - The "resume" input return signal should not be - longer than the time required to get the g-code - running again. - - - The "is-paused" output should no longer be active - by the time the "resume" signal ends. - -These timing problems could be avoided by using -ClassicLadder to activate the "is-paused" output via a -monostable timer to deliver one narrow output pulse. -The "resume" pulse could also be received via a monostable timer. - - diff --git a/docs/src/hal/halui_examples_es.txt b/docs/src/hal/halui_examples_es.txt deleted file mode 100644 index 03b06edf356..00000000000 --- a/docs/src/hal/halui_examples_es.txt +++ /dev/null @@ -1,94 +0,0 @@ -= Halui Examples - -For any Halui examples to work you need to add the following line to the \[HAL\] section of the ini file. - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -+*HALUI = halui*+ - -== Remote Start - -To connect a remote program start button to LinuxCNC you use the -`halui.program.run` pin and the `halui.mode.auto` pin. -You have to insure that it is OK to run first by using the -`halui.mode.is-auto` pin. You do this with an `and2` -component. The following figure shows how this is done. -When the Remote Run Button is pressed it is connected to -both `halui.mode.auto` and `and2.0.in0`. If it is OK for -auto mode the pin `halui.mode.is-auto` will be on. -If both the inputs to the `and2.0` component are on the -`and2.0.out` will be on and this will start the program. - -[[fig:Remote-Start-Example]] -.Remote Start Example - -image::images/remote-start.png[] - -The hal commands needed to accomplish the above are: - - net program-start-btn halui.mode.auto and2.0.in0 <= - net program-run-ok and2.0.in1 <= halui.mode.is-auto - net remote-program-run halui.program.run <= and2.0.out - -Notice on line one that there are two reader pins, this can also be split up to two lines like this: - - net program-start-btn halui.mode.auto <= - net program-start-btn and2.0.in0 - -== Pause & Resume - -This example was developed to allow LinuxCNC to move a -rotary axis on a signal from an external machine. -The coordination between the two systems will be -provided by two Halui components: - - - halui.program.is-paused - - halui.program.resume - -In your customized hal file, add the following -two lines that will be connected to your I/O to turn -on the program pause or to resume when the external -system wants LinuxCNC to continue. - - net ispaused halui.program.is paused => "your output pin" - net resume halui.program.resume <= "your input pin" - -Your input and output pins are connected to the pins -wired to the other controller. They may be parallel port -pins or any other I/O pins that you have access to. - -This system works in the following way. When an M0 is -encountered in your G-code, the `halui.program.is-paused` -signal goes true. This turns on your output pin so that -the external controller knows that LinuxCNC is paused. - -To resume the LinuxCNC gcode program, when the external controller -is ready it will make its output true. This will signal -LinuxCNC that it should resume executing Gcode. - -Difficulties in timing - - - The "resume" input return signal should not be - longer than the time required to get the g-code - running again. - - - The "is-paused" output should no longer be active - by the time the "resume" signal ends. - -These timing problems could be avoided by using -ClassicLadder to activate the "is-paused" output via a -monostable timer to deliver one narrow output pulse. -The "resume" pulse could also be received via a monostable timer. - - diff --git a/docs/src/hal/halui_fr.txt b/docs/src/hal/halui_fr.txt deleted file mode 100644 index 883e904d295..00000000000 --- a/docs/src/hal/halui_fr.txt +++ /dev/null @@ -1,324 +0,0 @@ -:lang: fr -:toc: - -= L'interface Halui - -[[cha:Halui]] (((HAL User Interface))) - -== Introduction[[sec:HaluiIntroduction]] - -Halui est une interface utilisateur pour LinuxCNC s'appuyant sur HAL, elle -connecte les pins de HAL à des commandes NML. La plupart des -fonctionnalités (boutons, indicateurs etc.) utilisées par les -interfaces graphiques traditionnelles (mini, Axis, etc.), sont fournies -par des pins de HAL dans Halui. - -La façon la plus facile pour utiliser halui est de modifier votre -dossier d'ini pour inclure ----- -HALUI = halui ----- - -dans la section [HAL]. - -Une solution alternative pour l'invoquer (surtout si vous générez la -config avec stepconf) est d'inclure ----- -loadusr halui -ini /path/to/inifile.ini ----- - -dans votre fichier custom.hal. - -== Nomenclature des pins d'Halui[[sec:Halui-pin-reference]] - -Abandon:: (abort) - - halui.abort (bit, in) - pin de requête d'abandon (efface les erreurs) - -Axes:: (axis) - - halui.axis.n.pos-commanded (float, out) - Position de l'axe commandée, en coordonnées machine - - halui.axis.n.pos-feedback (float, out) - Position de l'axe lue, en coordonnées machine - - halui.axis.n.pos-relative (float, out) - Position de l'axe, en coordonnées relatives - -Arrêt d'urgence:: (E-Stop) - - halui.estop.activate (bit, in) - pin de requête d'arrêt d'urgence (E-Stop) - - halui.estop.is-activated (bit, out) - indique si l'arrêt d'urgence est actif - - halui.estop.reset (bit, in) - pin de requête de relâchement de l'arrêt d'urgence (E-Stop reset) - -Correcteur de vitesse d'avance:: (Feed override) - - halui.feed-override.count-enable (bit, in) - doit être vraie pour que -_counts_ ou _direct-value_ soient opérationnels. - - halui.feed-override.counts (s32, in) - _counts_ * scale = FO pourcent. Peut -être utilisé avec un codeur ou _direct-value_. - - halui.feed-override.decrease (bit, in) - pin pour diminuer la correction (-=scale) - - halui.feed-override.increase (bit, in) - pin pour augmenter la correction (+=scale) - - halui.feed-override.direct-value (bit, in) - fausse lors de l'utilisation un - codeur pour changer counts, vraie pour ajuster counts directement. La pin -_count-enable_ doit être vraie. - - halui.feed-override.scale (float, in) - pin pour positionner l'échelle pour -accroître ou décroître la correction de vitesse d'avance. - - halui.feed-override.value (float, out) - Valeur de la correction courante de vitesse d'avance - -Arrosage par gouttelettes:: (Mist) - - halui.mist.is-on (bit, out) - indique si l'arrosage par gouttelettes est actif - - halui.mist.off (bit, in) - pin de requête d'arrêt de l'arrosage par gouttelettes - - halui.mist.on (bit, in) - pin de requête de l'arrosage par gouttelettes - -Arrosage fluide:: (Flood) - - halui.flood.is-on (bit, out) - indique si l'arrosage fluide est actif - - halui.flood.off (bit, in) - pin de requête d'arrêt d'arrosage fluide - - halui.flood.on (bit, in) - pin de requête d'arrosage fluide - -Prise d'origine machine de tous les axes:: (Homing) - - halui.home-all (bit, in) - pin de requête de prise d'origine machine de tous les axes. - Cette pin sera présente seulement si HOME_SEQUENCE est fixée dans le fichier ini. - -Jog:: (Manivelle) - est un nombre compris entre 0 et 8, ou . - - halui.jog-deadband (float, in)- bande morte pour le jogging analogique - (les petites vitesses de jog sont sans effet) - - halui.jog.speed (float, in) - positionne la vitesse de jog - - halui.jog..analog (float, in) - entrée analogique de vitesse de jog - (utilisé avec les joysticks ou autres matériels analogiques) - - halui.jog..minus (bit, in) - jog en direction négative - - halui.jog..plus (bit, in) - jog en direction positive - - halui.jog..minus (bit, in) - jog l'axe en - direction négative et à la vitesse de halui.jog.speed velocity - - halui.jog..plus (bit, in) - jog l'axe en - direction positive et à la vitesse de halui.jog.speed velocity - -Articulations:: (Joints) - est un nombre compris entre 0 et 8, ou . - - halui.joint..has-fault (bit, out) - pin de status indiquant que l'articulation est en défaut - - halui.joint..home (bit, in) - pin pour la prise d'origine d'une articulation spécifique - - halui.joint..is-homed (bit, out) - pin de status indiquant que l'articulation est référencée - - halui.joint..is-selected (bit, out) - pin indiquant que l'articulation est - interne à halui - - halui.joint..on-hard-max-limit (bit, out) - pin de status indiquant - que le joint est sur son fin de course de limite positive - - halui.joint..on-hard-min-limit (bit, out) - pin de status indiquant - que le joint est sur son fin de course de limite négative - - halui.joint..on-soft-max-limit (bit, out) - pin de status indiquant - que le joint est sur sa limite logicielle positive - - halui.joint..on-soft-min-limit (bit, out) - pin de status indiquant - que le joint est sur sa limite logicielle négative - - halui.joint..select (bit, in) - select joint (0..8) - interne à halui - - halui.joint..unhome (bit, in) - unhomes this joint - - halui.joint.selected (u32, out) - selected joint (0..8) - interne à halui - - halui.joint.selected.has-fault (bit, out) - pin de status - indiquant que le joint est en défaut - - halui.joint.selected.home (bit, in) - pin pour la prise d'origine de l'articulation - - halui.joint.selected.is-homed (bit, out) - pin de status indiquant - que le joint est référencé - - halui.joint.selected.on-hard-max-limit (bit, out) - pin de status - indiquant que le joint est sur son fin de course de limite positive - - halui.joint.selected.on-hard-min-limit (bit, out) - pin de status - indiquant que le joint est sur son fin de course de limite négative - - halui.joint.selected.on-soft-max-limit (bit, out) - pin de status - indiquant que le joint est sur sa limite logicielle positive - - halui.joint.selected.on-soft-min-limit (bit, out) - pin de status - indiquant que le joint est sur sa limite logicielle négative - - halui.joint.selected.unhome (bit, in) - pin for unhoming l'articulation selected. - -Graissage centralisé:: (Lube) - - halui.lube.is-on (bit, out) - indique si le graissage est actif - - halui.lube.off (bit, in) - pin de requête d'arrêt du graissage - - halui.lube.on (bit, in) - pin de requête de graissage - -Machine:: (Marche / Arrêt) - - halui.machine.is-on (bit, out) - indique que la machine est en marche - - halui.machine.off (bit, in) - pin de requête d'arrêt machine - - halui.machine.on (bit, in) - pin de requête de marche machine - -Vitesse maximum:: -La vitesse linéaire maximum peut être ajustée entre 0 et la valeur de -la variable MAX_VELOCITY dans la section [TRAJ] du fichier ini. - - halui.max-velocity.count-enable (bit, in) - Doit être vraie pour que les -_counts_ ou _direct-value_ soit opérationnels. - - halui.max-velocity.counts (s32, in) - counts * scale = MV pourcent. Utilisable -avec un codeur ou _direct-value_. - - halui.max-velocity.direct-value (bit, in) - faux quand un codeur est utilisé -pour modifier _counts_, vraie pour ajuster _counts_ directement. La pin -_count-enable_ doit être vraie. - - halui.max-velocity.decrease (bit, in) - pin pour diminuer la vitesse max - - halui.max-velocity.increase (bit, in) - pin pour augmenter la vitesse max - - halui.max-velocity.scale (float, in) - Valeur appliquée sur le - nombre de fronts montants des pins increase ou decrease en - unités machine par seconde. - - halui.max-velocity.value (float, out) - Valeur de la vitesse - linéaire maximum en unités machine par seconde. - -Données manuelles:: [[sub:MDI]] (((MDI))) -Il arrive que l'utilisateur veuille ajouter des tâches plus complexes -devant être effectuées par l'activation d'une pin de HAL. C'est -possible en utilisant le schéma de commande en données manuelles (MDI) -suivant: - - Une MDI_COMMAND est ajoutée dans la section [HALUI] du fichier ini, -par exemple: ----- - [HALUI] - MDI_COMMAND = G0 X0 ----- - - Quand halui démarre il va lire/détecter le champ MDI_COMMAND dans le - fichier ini et exporter les pins de type (bit) - halui.mdi-command-, est un nombre compris entre 00 et le - nombre de MDI_COMMAND trouvées dans le fichier ini, avec un maximum de - 64 commandes. - - Quand la pin halui.mdi-command- est activée, halui va essayer - d'envoyer au MDI la commande définie dans le fichier ini. Ca ne - fonctionnera pas dans tous les modes de fonctionnement où se trouve - LinuxCNC, par exemple, tant qu'il est en AUTO halui ne peut pas envoyer de - commande MDI. - -Sélection d'une articulation:: (Joint Selection) - - halui.joint.select (u32, in) - sélectionne l'articulation (0..7) - internal halui - - halui.joint.selected (u32, out) - articulation (0..7) sélectionnée - internal halui - - halui.joint.x.select bit (bit, in) - pins pour sélectinner une articulation - internal halui - - halui.joint.x.is-selected bit (bit, out) - pin de status indiquant une articulation sélectionné - internal halui - -Mode de fonctionnement:: (Mode) - - halui.mode.auto (bit, in) - pin de requête du mode auto - - halui.mode.is_auto (bit, out)- indique si le mode auto est actif - - halui.mode.is-joint (bit, out) - indique si le mode articulation par articulation est actif - - halui.mode.is_manual (bit, out) - indique si le mode manuel est actif - - halui.mode.is_mdi (bit, out) - indique si le mode données manuelles est actif - - halui.mode.is-teleop (bit, out) - indique que le mode jog coordonné est actif - - halui.mode.joint (bit, in) - pin de requête du mode jog articulation par articulation - - halui.mode.manual (bit, in) - pin de requête du mode manuel - - halui.mode.mdi (bit, in) - pin de requête du mode données manuelles - - halui.mode.teleop (bit, in) - pin de requête du mode jog coordonné - -Programme:: (Program) - - halui.program.block-delete.is-on (bit, out) - status pin telling that block delete is on - - halui.program.block-delete.off (bit, in) - pin for requesting that block delete is off - - halui.program.block-delete.on (bit, in) - pin for requesting that block delete is on - - halui.program.is-idle (bit, out) - pin de status indiquant qu'aucun programme n'est lancé - - halui.program.is-paused (bit, out) - pin de status indiquant qu'un programme est en pause - - halui.program.is-running (bit, out) - pin de status indiquant qu'un programme est lancé - - halui.program.optional-stop.is-on (bit, out) - status pin telling that the optional stop is on - - halui.program.optional-stop.off (bit, in) - pin requesting that the optional stop is off - - halui.program.optional-stop.on (bit, in) - pin requesting that the optional stop is on - - halui.program.pause (bit, in) - pin pour passer un programme en pause - - halui.program.resume (bit, in) - pin pour lancer la reprise d'un programme - - halui.program.run (bit, in) - pin de lancement d'un programme - - halui.program.step (bit, in) - pin pour avancer d'une ligne de programme - - halui.program.stop (bit, in) - pin pour stopper un programme - -Correcteur de vitesse de broche:: (Spindle Override) - - halui.spindle-override.count-enable (bit, in) - doit être vraie pour que -_counts_ ou _direct-value_ soient opérationnels. - - halui.spindle-override.counts (s32, in) - comptage depuis un codeur, - par exemple pour modifier la correction de vitesse de broche - - halui.spindle-override.decrease (bit, in) - pin pour diminuer la - correction de vitesse de broche (-=scale) - - halui.spindle-override.direct-value (bit, in) - fausse en utilisant un codeur -pour modifier _counts_ directement. La pin _count-enable_ doit être vraie. - - halui.spindle-override.increase (bit, in) - pin pour augmenter la - correction de vitesse de broche (+=scale) - - halui.spindle-override.scale (float, in) - pin pour positionner - l'échelle des corrections de vitesse de broche possibles - - halui.spindle-override.value (float, out) - Valeur courante de la - correction de vitesse de broche - -Broche:: (Spindle) - - halui.spindle.brake-is-on (bit, out) - indique si le frein est actif - - halui.spindle.brake-off (bit, in) - pin de désactivation du frein de broche - - halui.spindle.brake-on (bit, in) - pin d'activation du frein de broche - - halui.spindle.decrease (bit, in) - Diminue la vitesse de broche - - halui.spindle.forward (bit, in) - Marche broche en sens horaire - - halui.spindle.increase (bit, in) - Augmente la vitesse de broche - - halui.spindle.is-on (bit, out) - indique la broche est en marche (les deux sens) - - halui.spindle.reverse (bit, in) - Marche broche en sens anti-horaire - - halui.spindle.runs-backward (bit, out) - indique la broche est en marche et en sens inverse - - halui.spindle.runs-forward (bit, out) - indique la broche est en marche et en marche avant - - halui.spindle.start (bit, in) - Marche de la broche - - halui.spindle.stop (bit, in) - Arrêt de la broche - -Outil:: (Tool) - - halui.tool.length-offset (float, out) - indique la correction de longueur d'outil appliquée - - halui.tool.number (u32, out) - indique l'outil courant sélectionné - -[[sec:Exemple-Commande-Distante]] -== Exemples de programme avec Halui - -Pour que ces exemples fonctionnent, il faut ajouter la ligne -suivante dans la section [HAL] du fichier ini. ----- -HALUI = halui ----- - -=== Démarrage à distance - -Pour connecter un bouton de démarrage à distance à LinuxCNC il faut utiliser -la pin _halui.program.run_ et la pin _halui.mode.auto_. - -Il faut s'assurer qu'il est possible de démarrer en utilisant la -pin _halui.mode.is-auto_. On peut faire cela avec un composant de HAL _and2_. -La figure suivante montre comment faire. - -Quand le bouton de commande à distance est pressé, il est connecté à -_halui.mode.auto_ et à l'entrée _and2.0.in0_. Si le le mode auto est activé, -la pin _halui.mode.is-auto_ sera TRUE. - -Si les deux entrées du composant _and2.0_ sont TRUE, la sortie _and2.0.out_ -sera TRUE également et le programme sera démarré. - -.Exemple de commande distante -image::images/remote-start.png[] - -Les commandes de Hal pour accomplir ces actions sont les suivantes: ----- -net program-start-btn halui.mode.auto and2.0.in0 <= -net program-run-ok and2.0.in1 <= halui.mode.is-auto -net remote-program-run halui.program.run <= and2.0.out ----- - -Noter que sur la première ligne il y a deux pins en lecture, ce qui pourrait aussi -se séparer en deux lignes comme ceci: ----- -net program-start-btn halui.mode.auto <= -net program-start-btn and2.0.in0 ----- - -=== Pause et Reprise - -Cet exemple a été developpé pour permettre à LinuxCNC de déplacer un -axe rotatif selon un signal provenant d'une machine extérieure. La -coordination entre les deux systèmes est assurée par deux composants de Halui: - - - halui.program.is-paused - - halui.program.resume - -Dans le fichier _custom.hal_, ajoutez les deux lignes suivantes -qui seront connectées à vos entrées/sorties pour mettre le -programme en pause ou pour le reprendre quand l'autre système veut -qu'LinuxCNC soit relancé. ----- -net ispaused halui.program.is paused => "la pin de sortie" -net resume halui.program.resume <= "la pin d'entrée" ----- - -Les pins d'entrée et de sortie, correspondent à celles qui sont -câblées vers l'autre contrôleur. Elles peuvent être des broches du -port parallèle ou toutes autres broches auquelles nous avons accès. - -Le fonctionnement est le suivant, quand un M0 est rencontré dans le -programme G-code, _halui.program.is-paused_ devient TRUE. Ce -qui rend la broche de sortie également TRUE de sorte que -l'autre contrôleur sait que LinuxCNC est arrêté. - -Pour reprendre l'exécution du G-code, l'autre contrôleur devra rendre -l'entrée TRUE. Ce qui relancera LinuxCNC jusqu'au prochain M0. - -Difficultés de timing - - - Le signal de reprise ne doit pas être plus long que le temps - nécessaire pour exécuter le G-code. - - - Le signal _Is Paused_ ne doit plus être actif quand le signal - suivant de reprise arrive. - -Ces problèmes de timming pourraient être évités, en utilisant -ClassicLadder pour activer le signal _is paused_ avec une tempo -et le désactiver en fin de tempo. La reprise pourrait également -être fournie par un signal monostable très court. - - diff --git a/docs/src/hal/images/HAL_Configuration.png b/docs/src/hal/images/HAL_Configuration.png deleted file mode 100644 index 7d7beccf14c..00000000000 Binary files a/docs/src/hal/images/HAL_Configuration.png and /dev/null differ diff --git a/docs/src/hal/images/encoder-block-diag.eps b/docs/src/hal/images/encoder-block-diag.eps deleted file mode 100644 index 6cbc2576c48..00000000000 --- a/docs/src/hal/images/encoder-block-diag.eps +++ /dev/null @@ -1,993 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Title: D:\JMK\Drawings\hal-encoder-block-diag.FC7 -%%BoundingBox: 19 9 784 593 -%%Creator: PSCRIPT.DRV Version 4.0 -%%CreationDate: 06/04/04 22:50:42 -%%Pages: 1 -%%Requirements: None -%%DocumentNeededFonts: (atend) -%%DocumentSuppliedFonts: (atend) -%%LanguageLevel: 1 -%%EndComments - -%%BeginProlog -%%BeginProcSet: Pscript_Res_Emul 1.0 0 -/defineresource where{pop}{userdict begin/defineresource{userdict/Resources 2 -copy known{get begin}{15 dict dup begin put}ifelse exch readonly exch -currentdict 1 index known not{dup 30 dict def}if load 3 -1 roll 2 index put -end}bind readonly def/findresource{userdict/Resources get exch get exch get} -bind readonly def/resourceforall{pop pop pop pop}bind readonly def -/resourcestatus{userdict/Resources 2 copy known{get exch 2 copy known{get exch -known{0 -1 true}{pop pop false}ifelse}{pop pop pop false}ifelse}{pop pop false -}ifelse}bind readonly def end}ifelse -%%EndProcSet -%%BeginResource: procset Pscript_Win_Driver 2.0 0 -/Pscript_Win_Driver 200 dict dup begin -%%BeginResource: file Pscript_FatalError 2.0 0 -/FatalErrorIf{{initgraphics findfont exch scalefont setfont counttomark 3 div -cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def -%%EndResource -/VM? {vmstatus exch sub exch pop gt { [ -(This job requires more memory than is available in this printer.) 100 500 -(Try one or more of the following, and then print again:) 100 485 -(In the PostScript dialog box, click Optimize For Portability.) 115 470 -(In the Device Options dialog box, make sure the Available Printer Memory is accurate.) 115 455 -(Reduce the number of fonts in the document.) 115 440 -(Print the document in parts.) 115 425 -12 /Times-Roman showpage -(%%[ PrinterError: Low Printer VM ]%%) = -true FatalErrorIf}if} bind def -%%BeginResource: file Pscript_Win_Utils 2.0 0 -/|/def load def/,/load load |/~/exch , |/?/ifelse , |/!/pop , |/`/begin , |/^ -/index , |/@/dup , |/+/translate , |/$/roll , |/U/userdict , |/M/moveto , |/- -/rlineto , |/&/currentdict , |/:/gsave , |/;/grestore , |/F/false , |/T/true , -|/N/newpath , |/E/end , |/Ac/arc , |/An/arcn , |/A/ashow , |/D/awidthshow , | -/C/closepath , |/V/div , |/O/eofill , |/L/fill , |/I/lineto , |/-C/rcurveto , -|/-M/rmoveto , |/+S/scale , |/Ji/setfont , |/Lc/setlinecap , |/Lj/setlinejoin -, |/Lw/setlinewidth , |/S/show , |/LH/showpage , |/K/stroke , |/W/widthshow , -|/R/rotate , |/b{bind |}bind |/bd{bind |}bind |/xd{~ |}bd/ld{, |}bd/lw/Lw ld -/lc/Lc ld/lj/Lj ld/sg/setgray ld/L2? F/languagelevel where{! languagelevel 2 -ge{! T}if}if |/g{@ not{U/DefIf_save save put}if U/DefIf_bool 2 ^ put}b -/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e{DefIf_El ! -}b/self & |/reinitialize{[/TextInit/GraphInit/UtilsInit counttomark{@ where{ -self eq}{F}?{cvx exec}{!}?}repeat cleartomark}b/initialize{`{/ADO_mxRot ~ | -/TextInitialised? F | reinitialize E}{U/Pscript_Win_Data 200 dict @ ` put -/ADO_mxRot ~ |/TextInitialised? F | reinitialize}?}b/terminate{!{& self eq{ -exit}{E}?}loop E}b/suspend/terminate , |/resume{` Pscript_Win_Data `}b/snap{ -transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~ itransform}b -/dsnap{dtransform round ~ round ~ idtransform}b<04>cvn{}|/setjn{{statusdict -/jobname known{statusdict/jobname 3 -1 $ put}if}stopped cleartomark}b/solid{[] -0 setdash}b/setdsh{0 setdash}b/colspRefresh{}b/rp{4 2 $ M 1 ^ 0 - 0 ~ - neg 0 --}b/rr{1 ^ 0 - 0 ~ - neg 0 - C}b -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L1 2.0 0 -L2? not g{/rf{N rp L}b/fx{1 1 dtransform @ 0 ge{1 sub 1}{1 add -0.25}? 3 -1 $ -@ 0 ge{1 sub 1}{1 add -0.25}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{ -4 -2 $ snap + +S fx rf}b/rs{N rp C K}b/rc{N rp clip N}b/sg{setgray}b/sco{ -setrgbcolor}b/sgco{{sg}{sco}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L2 2.0 0 -L2? g{/colspA/DeviceGray |/colspABC/DeviceRGB |/setAorABC{{colspA}{colspABC}? -setcolorspace}b/rf/rectfill , |/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5 -}? 3 -1 $ @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ -idtransform}b/BZ{4 -2 $ snap + +S fx rf}b/rs/rectstroke , |/rc/rectclip , |/sg -{@ @ setcolor}b/sco{setcolor}b/colspRefresh{colspABC setcolorspace}b/sgco{{sg -}{sco}?}b/UtilsInit{F setglobal}b/definecolorrendering{/ColorRendering -defineresource !}b/findcolorrendering{@/ColorRendering resourcestatus{! ! -/ColorRendering findresource T}{! F}?}b/selectcolorrendering{@/ColorRendering -resourcestatus{! !/ColorRendering}{!/DefaultColorRendering/ColorRendering}? -findresource setcolorrendering}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Encoding 2.0 0 -/bullets{{/bullet}repeat}b/ANSIEncoding[/grave/acute/circumflex/tilde/macron -/breve/dotaccent/dieresis/ring/cedilla/hungarumlaut/ogonek/caron/dotlessi 18 -bullets StandardEncoding 32 95 getinterval aload ! 3 bullets/quotesinglbase -/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron -/guilsinglleft/OE 4 bullets/quoteleft/quoteright/quotedblleft/quotedblright -/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 2 bullets -/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section -/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered -/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph -/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter -/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis -/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute -/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls -/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute -/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve -/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex -/udieresis/yacute/thorn/ydieresis]| ANSIEncoding @ 39/quotesingle put 96/grave -put/ANSIEncodingOld ANSIEncoding 256 array copy | ANSIEncodingOld @[138 153 -154 169 172 174 177 178 179 181 185 188 189 190 208 215 221 222 240 247 253 -254]{/bullet put @}forall 166/bar put 176/ring put -%%EndResource -%%BeginResource: file Pscript_Win_Text 2.0 0 -/TextInit{TextInitialised? not{/Pscript_Windows_Font & |/TextInitialised? T | -/fM[1 0 0 -1 0 0]|/mFM matrix |/iMat[1 0 0.212557 neg 1 0 0]|}if}b/xUP null | -/yUP null |/uW null |/xSP null |/ySP null |/sW null |/copyfont{1 ^ length add -dict `{1 ^/FID ne{|}{! !}?}forall & E}b/rF{3 copyfont @ `/Encoding -ANSIEncoding &/CharStrings known{CharStrings/Eth known not{! ANSIEncodingOld} -if}if | E}b/mF{findfont ~{@/Encoding get @ StandardEncoding eq{! T}{{ -ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get -StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{rF}{3 copyfont}? ` -/OrigFontType ~ |/OrigFontName ~ | & E 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 -put fM makefont Pscript_Windows_Font 3 1 $ put}b/xF{scalefont -Pscript_Windows_Font 3 1 $ put}b/xMF{mFM astore makefont Pscript_Windows_Font -3 1 $ put}b/xF2/scalefont , |/xMF2{mFM astore makefont}b/sLT{: Lw -M -currentpoint snap M 0 - 0 Lc K ;}b/sSU{N/uW ~ |/yUP ~ |/xUP ~ |}b/sU{xUP yUP -uW sLT}b/sST{N/sW ~ |/ySP ~ |/xSP ~ |}b/sT{xSP ySP sW sLT}b/sR{: + R 0 0 M}b -/sRxy{: matrix astore concat 0 0 M}b/eR/; , | -%%EndResource -%%BeginResource: file Pscript_Win_Text_Bold 2.0 0 -/mBF{@ 4 copyfont `/FontName ~ |/OrigFontType ~ |/OrigFontName ~ | 0 -FontMatrix idtransform ! &/PaintType known{PaintType 0 eq{/PaintType 2 | -/StrokeWidth ~ |}{PaintType 1 eq PaintType 2 eq or PaintType 3 eq or & -/StrokeWidth known and{StrokeWidth add/StrokeWidth ~ |}{!}?}?}{!}? @ & E -definefont Pscript_Windows_Font 3 1 $ put}b/xBF{Pscript_Windows_Font ` 1 ^ -/FontName get 1 ^ scalefont 3 1 $ scalefont 2 copy ~ | ~ ! | E}b/xMBF{mFM -astore Pscript_Windows_Font ` 1 ^/FontName get 1 ^ makefont 3 1 $ makefont 2 -copy ~ | ~ ! | E}b/xBF2{/sB0 ~ mBF/sB1 sB0 3 -1 $ xBF sB1}b/xMBF2{/sB0 ~ mBF -mFM astore/sB1 sB0 3 -1 $ xMBF sB1}b/sB{: Pscript_Windows_Font currentfont get -Ji @ S ; S}b/asB{: Pscript_Windows_Font currentfont get Ji 3 copy A ; A}b/wsB{ -: Pscript_Windows_Font currentfont get Ji 4 copy W ; W}b/awsB{: -Pscript_Windows_Font currentfont get Ji 6 copy D ; D}b/sBT3{: @ S ; 1 1 -M S}b -/asBT3{: 3 copy A ; 1 1 -M A}b/wsBT3{: 4 copy W ; 1 1 -M W}b/awsBT3{: 6 copy D -; 1 1 -M D}b/mIF{iMat 4 3 -1 $ put 2 copyfont `/OrigFontType ~ |/OrigFontName -~ | @ & E definefont iMat makefont Pscript_Windows_Font 3 1 $ put}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics 2.0 0 -/SavedCTM null |/CTMsave{/SavedCTM SavedCTM currentmatrix |}b/CTMrestore{ -SavedCTM setmatrix}b/mp null |/ADO_mxRot null |/GDIHMatrix null | -/GDIHPatternDict 22 dict | GDIHPatternDict `/PatternType 1 |/PaintType 2 | -/Reps L2?{1}{5}? |/XStep 8 Reps mul |/YStep XStep |/BBox[0 0 XStep YStep]| -/TilingType 1 |/PaintProc{` 1 Lw[]0 setdash PaintData , exec E}b/FGnd null | -/BGnd null |/HS_Horizontal{horiz}b/HS_Vertical{vert}b/HS_FDiagonal{fdiag}b -/HS_BDiagonal{biag}b/HS_Cross{horiz vert}b/HS_DiagCross{fdiag biag}b/MaxXYStep -XStep YStep gt{XStep}{YStep}? |/horiz{Reps{0 4 M XStep 0 - 0 8 +}repeat 0 -8 -Reps mul + K}b/vert{Reps{4 0 M 0 YStep - 8 0 +}repeat 0 -8 Reps mul + K}b/biag -{Reps{0 0 M MaxXYStep @ - 0 YStep neg M MaxXYStep @ - 0 8 +}repeat 0 -8 Reps -mul + 0 YStep M 8 8 - K}b/fdiag{Reps{0 0 M MaxXYStep @ neg - 0 YStep M -MaxXYStep @ neg - 0 8 +}repeat 0 -8 Reps mul + MaxXYStep @ M 8 -8 - K}b E -/makehatch{GDIHPatternDict/PaintData 3 -1 $ put CTMsave GDIHMatrix setmatrix -GDIHPatternDict matrix mp CTMrestore ~ U ~ 2 ^ put}b/h0{/h0/HS_Horizontal -makehatch}b/h1{/h1/HS_Vertical makehatch}b/h2{/h2/HS_FDiagonal makehatch}b/h3{ -/h3/HS_BDiagonal makehatch}b/h4{/h4/HS_Cross makehatch}b/h5{/h5/HS_DiagCross -makehatch}b/GDIBWPatternDict 17 dict @ `/PatternType 1 |/PaintType L2?{1}{2}? -|/RepsV L2?{1}{6}? |/RepsH L2?{1}{5}? |/BBox[0 0 RepsH 1]|/TilingType 1 | -/XStep 1 |/YStep 1 |/Height 8 RepsV mul |/Width 8 |/mx[Width 0 0 Height neg 0 -Height]|/FGnd null |/BGnd null |/SetBGndFGnd L2?{{BGnd null ne{BGnd aload ! -sgco BBox aload ! 2 ^ sub ~ 3 ^ sub ~ rf}if FGnd null ne{FGnd aload ! sgco}if} -}{{}}? b/PaintProc{` SetBGndFGnd RepsH{Width Height F mx PaintData imagemask -Width 0 +}repeat E}b E |/GDIBWPatternMx null |/pfprep{save 4 1 $ -/PatternOfTheDay 4 1 $ GDIBWPatternDict `/PaintData ~ |/BGnd ~ |/FGnd ~ | E -CTMsave GDIBWPatternMx setmatrix GDIBWPatternDict matrix mp CTMrestore ~ !}b -/hrf null |/prf{pfprep ~ 6 1 $ 5 hrf restore}b/GraphInit{GDIHMatrix null eq{ -/SavedCTM matrix | : ADO_mxRot concat 0 0 snap + : 0.48 @ GDIHPatternDict ` -YStep mul ~ XStep mul ~ dsnap YStep V ~ XStep V ~ E +S/GDIHMatrix matrix -currentmatrix readonly | ; : 0.24 -0.24 +S GDIBWPatternDict ` Width Height E -dsnap +S/GDIBWPatternMx matrix currentmatrix readonly | ; ;}if}b/cirp{360 0 An -C}b/ellp{CTMsave + +S 0.5 0 M 0 0 0.5 360 0 An C CTMrestore}b/rrp{/rad ~ |/y2 -~ |/x2 ~ |/y1 ~ |/x1 ~ | x2 x1 add 2 V y1 M x1 y1 x1 y2 rad arct x1 y2 x2 y2 -rad arct x2 y2 x2 y1 rad arct x2 y1 x1 y1 rad arct C}b/RRp{CTMsave + +S/dyS ~ -|/dxS ~ | dxS 2 V 0 M 0 0 0 dyS 0.5 arct 0 dyS dxS dyS 0.5 arct dxS dyS dxS 0 -0.5 arct dxS 0 0 0 0.5 arct C CTMrestore}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L1 2.0 0 -L2? not g{/arct{arcto ! ! ! !}b/GDIpattfill{@ ` BGnd null ne PaintType 2 eq -and{: BGnd aload ! sgco fEOFill{O}{L}? ; FGnd aload ! U/fGray 2 ^ put{2}{4}? --1 $}if E @ patterncalc : 4 ^/PaintType get 2 eq{fGray{6 -1 $ sg}{8 -3 $ sco}? -}if fEOFill{eoclip}{clip}? N patternfill ; N}b/hrf{/fGray 1 ^ 6 eq | -4 $ N rp -C/fEOFill F | GDIpattfill}b/hfMain{/fEOFill ~ |/fGray ~ | GDIpattfill}b/hf{T -hfMain}b/hfW{F hfMain}b/hs{currentpoint strokepath M hfW}b/pfMain{/fEOFill ~ | -pfprep GDIpattfill restore N}b/pf{T pfMain}b/pfW{F pfMain}b/ps{currentpoint -strokepath M pfW}b/mpstr 1 string |/mp{~ @ length 12 add dict copy ` -/PatternCTM matrix currentmatrix |/PatternMatrix ~ |/PatWidth XStep mpstr -length mul |/PatHeight YStep |/FontType 3 |/Encoding 256 array | 3 string 0 1 -255{Encoding ~ @ 3 ^ cvs cvn put}for !/FontMatrix matrix |/FontBBox BBox | -/BuildChar{! @ ` XStep 0 FontBBox aload ! setcachedevice/PaintProc , E : exec -;}b & E ~ @ 3 -1 $ definefont}b/patterncalc{` : PatternCTM setmatrix -PatternMatrix concat BBox aload ! ! ! + pathbbox ; PatHeight V ceiling 4 1 $ -PatWidth V ceiling 4 1 $ PatHeight V floor 4 1 $ PatWidth V floor 4 1 $ 2 ^ -sub cvi abs ~ 3 ^ sub cvi abs ~ 4 2 $ PatHeight mul ~ PatWidth mul ~ E}b -/patternfill{5 -1 $ @ ` Ji PatternCTM setmatrix PatternMatrix concat 0 2 ^ 2 ^ -M 0 1 mpstr length 1 sub{1 ^ mpstr 3 1 $ put}for ! 2 ^{currentpoint 5 ^{mpstr -S}repeat YStep add M}repeat ! ! ! ! E}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L2 2.0 0 -L2? g{/mp/makepattern , |/hrf{6 eq setAorABC setpattern rectfill}b/hf{ -setAorABC setpattern O}b/hfW{setAorABC setpattern L}b/hs{setAorABC setpattern -K}b/pf{pfprep setpattern O restore N}b/pfW{pfprep setpattern L restore N}b/ps{ -pfprep setpattern K restore N}b}e -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images 2.0 0 -/iw 0 |/ih 0 |/im_save 0 |/s 0 |/polarity 0 |/smoothflag 0 |/mystring 0 |/bpc -0 |/setup1asciiproc{[currentfile mystring/readhexstring cvx/! cvx]cvx bind}b -/setup1binaryproc{[currentfile mystring/readstring cvx/! cvx]cvx bind}b -/setup2asciiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}b -/setup2binaryproc{currentfile/RunLengthDecode filter}b/mycolorspace{colspABC}| -/myimagedict{/myimagedict 10 dict | myimagedict @ `/ImageType 1 | -/MultipleDataSource F | E}b/imageprocarray[/setup1binaryproc/setup1asciiproc -/setup2binaryproc/setup2asciiproc/setup1binarydecodeproc/setup1asciidecodeproc -]|/L2Polarity{{[1 0]}{[0 1]}?}b/Q{/im_save save | imageprocarray ~ get/s ~ , | -L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring ~ -string |/bpc ~ |/ih ~ |/iw ~ |}b/X{/im_save save | imageprocarray ~ get/s ~ , -| L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring -~ string |/bpc ~ |/ih ~ |/iw ~ |}b/Z{im_save restore}b/Y{sgco myimagedict @ ` -/Width iw |/Height ih |/Decode polarity |/ImageMatrix[iw 0 0 ih 0 0]| -/DataSource s |/BitsPerComponent 1 |/Interpolate smoothflag | E imagemask}b -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images_L1 2.0 0 -L2? not g{/setup2asciiproc{[/Level2ImagesError , aload ! T FatalErrorIf}b -/setup2binaryproc/setup2asciiproc , |/L2Polarity{}|/Y{sgco iw ih polarity[iw 0 -0 ih 0 0]s imagemask}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L1 2.0 0 -L2? not g{/testsystemdict{where{systemdict eq{T}{F}?}{F}?}b/c 1 |/colorimage -where{! T}{F}?{/c 0 statusdict `/processcolors where{! ! processcolors}{ -/deviceinfo where{! deviceinfo/Colors known{!{deviceinfo/Colors get}}if}if}? E -| c 0 ne{/colorimage testsystemdict/setcolortransfer testsystemdict -/currentcolortransfer testsystemdict/currentcmykcolor testsystemdict and and -and not{/c 0 |}if}if}if c @ 1 ne ~ @ 3 ne ~ 4 ne and and{/c 0 |}if c 1 eq g{ -/expandbw{expandfactor mul round cvi bwclut ~ get 255 V}b/doclutimage{!/bwclut -~ | bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/expandfactor ~ |[/expandbw ,/exec , @ -currenttransfer ~]cvx bind settransfer iw ih bpc[iw 0 0 ih 0 0]s image}b}e c @ -3 eq ~ 4 eq or g{/nullproc{{}}|/concatutil{/exec , 7 -1 $/exec ,}b/defsubclut{ -1 add getinterval |}b/spconcattransfer{/Dclut ~ |/Cclut ~ |/Bclut ~ |/Aclut ~ -|/ncompute ~ , | currentcolortransfer[{Aclut ncompute}concatutil]cvx[{Bclut -ncompute}concatutil]cvx[{Cclut ncompute}concatutil]cvx[{Dclut ncompute} -concatutil]cvx setcolortransfer}b/setuprgbcluts{/bit3x rgbclut length 3 sub | -/bit1x bit3x 3 idiv |/rclut rgbclut |/gclut rclut 1 bit3x defsubclut/bclut -rclut 2 bit3x defsubclut}b}e c 3 eq g{/3compute{~ bit3x mul round cvi get 255 -V}b/doclutimage{/rgbclut ~ | ! setuprgbcluts/3compute rclut gclut bclut @ -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @]cvx nullproc nullproc -T 3 colorimage}b}e c 4 eq g{/ftoint{1 ~ sub 255 mul round cvi}b/stuffclut{ -cmykindex 3 -1 $ put}b/4compute{~ bit4x mul round cvi get 255 V}b -/invalidcolortable? T |/computecmykclut{setuprgbcluts/bit4x rgbclut length 3 -idiv 4 mul 4 sub |/cmykclut bit4x 4 add string |/cclut cmykclut |/mclut cclut -1 bit4x defsubclut/yclut cclut 2 bit4x defsubclut/kclut cclut 3 bit4x -defsubclut/cmykindex 0 | 0 1 bit1x{@/cmykindex ~ bit1x ~ sub 4 mul | 3 mul @ -rclut ~ get 255 V ~ @ gclut ~ get 255 V ~ bclut ~ get 255 V setrgbcolor -currentcmykcolor ftoint kclut stuffclut ftoint yclut stuffclut ftoint mclut -stuffclut ftoint cclut stuffclut}for}b/doclutimage{/rgbclut ~ | ! -invalidcolortable?{computecmykclut}if/4compute cclut mclut yclut kclut -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @ @]cvx nullproc -nullproc nullproc T 4 colorimage}b}e c 0 eq g{/a{3 mul 3 getinterval -putinterval ~ 3 add ~ 3 copy}b/8lookup/a , |/4lookup{/byte 1 ^ | -4 bitshift a -byte 15 and a}b/2lookup{/byte 1 ^ | -6 bitshift a byte -4 bitshift 3 and a -byte -2 bitshift 3 and a byte 3 and a}b/colorexpand{mystringexp 0 rgbclut 3 -copy 7 -1 $/mylookup , forall ! ! ! ! !}b/createexpandstr{/mystringexp ~ -mystring length mul string |}b/doclutimage{/rgbclut ~ | !/mylookup bpc 8 eq{3 -createexpandstr/8lookup}{bpc 4 eq{6 createexpandstr/4lookup}{12 -createexpandstr/2lookup}?}? , | iw ih bpc[iw 0 0 ih 0 0][s/exec ,/colorexpand -,/exec ,]cvx F 3 colorimage}b}e/colorimage where{! T}{F}? g{/do24image{iw ih 8 -[iw 0 0 ih 0 0]s F 3 colorimage}b}DefIf_El{/rgbtogray{/str ~ |/len str length -|/smlen len 3 idiv |/rstr str |/gstr str 1 len 1 sub getinterval |/bstr str 2 -len 2 sub getinterval | str @ 0 1 smlen 1 sub{@ 3 mul rstr 1 ^ get 0.3 mul -gstr 2 ^ get 0.59 mul add bstr 3 -1 $ get 0.11 mul add round cvi put @}for ! 0 -smlen getinterval}b/do24image{iw ih 8[iw 0 0 ih 0 0][s/exec ,/rgbtogray ,/exec -,]cvx bind image}b}e/doNimage{bpc 24 eq{do24image}{iw ih bpc[iw 0 0 ih 0 0]s -image}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L2 2.0 0 -L2? g{/doclutimage{/rgbclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[ -/Indexed colspABC hival rgbclut]setcolorspace myimagedict @ `/Width iw | -/Height ih |/Decode[0 hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s | -/BitsPerComponent bpc |/Interpolate smoothflag | E image}b/doCMYKclutimage{ -/CMYKclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[/Indexed/DeviceCMYK -hival CMYKclut]setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 -hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent bpc | -/Interpolate smoothflag | E image}b/doNimage{bpc 24 eq{colspABC}{colspA}? -setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode bpc 24 eq{[0 1 0 1 -0 1]}{[0 1]}? |/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent -bpc 24 eq{8}{bpc}? |/Interpolate smoothflag | E image}b/doCMYKimage{ -/DeviceCMYK setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 1 0 -1 0 1 0 1]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent 8 | -/Interpolate smoothflag | E image}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Type3_Hdr 2.0 0 -/GreNewFont{10 dict @ 3 1 $ | @ ` 4 1 $/FontType 3 |/FontMatrix ~ |/FontBBox ~ -|/Encoding 256 array | 0 1 255{Encoding ~/.notdef put}for/CharProcs 257 dict | -CharProcs/.notdef{}put/Metrics 257 dict | Metrics/.notdef 3 -1 $ put/BuildChar -{/char ~ |/fontdict ~ |/charname fontdict/Encoding get char get | fontdict -/Metrics get charname get aload ! setcachedevice fontdict ` Encoding char get -CharProcs ~ get E exec}| E definefont !}|/AddChar{` Encoding 3 1 $ put -CharProcs 3 1 $ put Metrics 3 1 $ put E}| -%%EndResource -%%BeginResource: file Pscript_Win_Type1_Hdr 2.0 0 -/FEbuf 2 string |/FEglyph 3 string |/FE{(G00)FEglyph copy ! 1 ~{@ 16 lt{ -/offset 2 store}{/offset 1 store}? @ 16 FEbuf cvrs FEglyph ~ offset ~ -putinterval 1 ^ ~ FEglyph cvn put}for}bind |/Type1Hdr{11 dict `/FontName ~ | -/PaintType ~ |/FontType 1 |/FontMatrix[1 3 ^ V 0 0 1 6 ^ V 0 0]| !/Encoding -256 array 0 1 255{1 ^ ~/.notdef put}for 3 ^ 3 ^ FE | ! !/FontBBox{0 0 0 0}| & -E currentfile eexec}bind | -%%EndResource -/pp 1 string |/ss 1 string |/rledecodebinary{/DC 0 |/BC 0 |{DC mystring length -ge{exit}if currentfile ss readstring ! 0 get/BC ~ | BC 127 le{/BC BC 1 add | -DC 1 DC BC add 1 sub{mystring ~ currentfile ss readstring ! 0 get put}for}{/BC -257 BC sub | currentfile ss readstring ! 0 get/pp ~ | DC 1 DC BC add 1 sub{ -mystring ~ pp put}for}?/DC DC BC add |}loop mystring}b/rledecodeascii{/DC 0 | -/BC 0 |{DC mystring length ge{exit}if currentfile ss readhexstring ! 0 get/BC -~ | BC 127 le{/BC BC 1 add | DC 1 DC BC add 1 sub{mystring ~ currentfile ss -readhexstring ! 0 get put}for}{/BC 257 BC sub | currentfile ss readhexstring ! -0 get/pp ~ | DC 1 DC BC add 1 sub{mystring ~ pp put}for}?/DC DC BC add |}loop -mystring}b/setup1asciidecodeproc{[/rledecodeascii cvx]cvx bind}b -/setup1binarydecodeproc{[/rledecodebinary cvx]cvx bind}b -%%BeginResource: file Pscript_Win_Compat 2.0 0 -userdict/Pscript_Win_Compat 13 dict dup begin/bd{bind def}bind def/ld{load def -}bd/CB{pop pop pop pop}bind def/B{pop pop pop pop}bind def/$x matrix def/SS{ -/pagesave save def}bind def/RS{/pagesave where{pop pagesave restore}{$x matrix -invertmatrix concat}ifelse}bind def/ANSIVec[0/grave 1/acute 2/circumflex 3 -/tilde 4/macron 5/breve 6/dotaccent 7/dieresis 8/ring 9/cedilla 10 -/hungarumlaut 11/ogonek 12/caron 13/dotlessi 39/quotesingle 96/grave 124/bar -130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135 -/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE -145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150 -/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156 -/oe 159/Ydieresis 160/space 161/exclamdown 164/currency 165/yen 166/brokenbar -167/section 168/dieresis 169/copyright 170/ordfeminine 171/guillemotleft 172 -/logicalnot 173/hyphen 174/registered 175/macron 176/degree 177/plusminus 178 -/twosuperior 179/threesuperior 180/acute 181/mu 182/paragraph 183 -/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 187 -/guillemotright 188/onequarter 189/onehalf 190/threequarters 191/questiondown -192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198 -/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204 -/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve -211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223 -/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229 -/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis -236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242 -/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248 -/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254 -/thorn 255/ydieresis]def currentdict{dup type/operatortype eq{[exch]cvx def}{ -pop pop}ifelse}forall/initialize{currentdict exch begin begin}bind def -/terminate{/@FL where not{pop end end}{pop}ifelse}bind def/suspend/terminate -load def/resume/initialize load def/M/moveto load def end put/Courier findfont -10 scalefont setfont -%%EndResource -end /ProcSet defineresource pop -%%EndResource -%%EndProlog - -%%BeginSetup -Pscript_Win_Compat dup /initialize get exec -[ 0 1.000 -1.000 0 0 0 ] false /Pscript_Win_Driver /ProcSet findresource dup /initialize get exec - - -/mysetup [ 0.240 0 0 -0.240 8.880 592.800 ] | -%%EndSetup - -%%Page: 1 1 -%%BeginPageSetup -userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 2550 3300 rf ; -%%EndPageSetup - -: 0 0 3229 2391 rc -108 1521 N M 0 -62 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -108 1459 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -108 1459 N M 404 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -512 1459 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -512 1459 N M 31 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -543 1490 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -543 1490 N M -31 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -512 1521 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -512 1521 N M -404 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -108 1521 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -108 1521 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -108 1521 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -108 1769 N M -31 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -77 1738 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -77 1738 N M 31 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -108 1707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -108 1707 N M 404 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -512 1707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -512 1707 N M 31 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -543 1738 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -543 1738 N M -31 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -512 1769 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -512 1769 N M -404 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -108 1769 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -108 1769 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -108 1769 N M 0 0 rr : 0 0 0 sco O ; : 216 1469 266 46 rc 0 0 0 sco %%IncludeFont: Helvetica -(F0) cvn -0.902 - (Helvetica) cvn /Type1 -T -(Helvetica) cvn -mF -(F0_30_41) cvn -F0 -30 0 0 41 0 0 -xMF -F0_30_41 -Ji -254 1469 M -2.662 0 (reset)A -; : 156 1717 532 46 rc 0 0 0 sco F0_30_41 -Ji -194 1717 M -2.354 0 (index-enable)A -; : 0 0 3229 2391 rc -2251 1273 N M 0 -94 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2251 1179 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2747 1769 N M -31 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2716 1738 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2716 1738 N M 31 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2747 1707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2747 1707 N M 404 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1707 N M 0 62 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1769 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1769 N M -404 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2747 1769 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2747 1769 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2747 1769 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2747 1148 N M -31 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2716 1117 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2716 1117 N M 31 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2747 1086 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2747 1086 N M 404 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1086 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1086 N M 0 62 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1148 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1148 N M -404 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2747 1148 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2747 1148 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2747 1148 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2747 1024 N M -31 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2716 993 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2716 993 N M 31 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2747 962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2747 962 N M 404 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 962 N M 0 62 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1024 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1024 N M -404 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2747 1024 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2747 1024 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2747 1024 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1117 N M -31 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -108 1086 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -108 1086 N M 31 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -139 1055 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1055 N M 404 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -543 1055 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -543 1055 N M 0 62 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -543 1117 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -543 1117 N M -404 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -139 1117 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1117 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -139 1117 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 807 N M -31 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -108 776 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -108 776 N M 31 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -139 745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 745 N M 404 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -543 745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -543 745 N M 0 62 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -543 807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -543 807 N M -404 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -139 807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 807 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -139 807 N M 0 0 rr : 0 0 0 sco O ; : 2830 1717 342 46 rc 0 0 0 sco F0_30_41 -Ji -2868 1717 M -2.994 0 (phase-Z)A -; : 2829 1096 342 46 rc 0 0 0 sco F0_30_41 -Ji -2867 1096 M -3.040 0 (phase-B)A -; : 2829 972 342 46 rc 0 0 0 sco F0_30_41 -Ji -2867 972 M -3.040 0 (phase-A)A -; : 235 1065 304 46 rc 0 0 0 sco F0_30_41 -Ji -273 1065 M -2.603 0 (counts)A -; : 227 754 380 46 rc 0 0 0 sco F0_30_41 -Ji -265 754 M -2.203 0 (position)A -; : 1089 1065 266 46 rc 0 0 0 sco F0_30_41 -Ji -1127 1065 M -2.128 0 (latch)A -; : 1967 879 342 46 rc 0 0 0 sco F0_30_41 -Ji -2005 879 M -2.564 0 (counter)A -; : 2421 1694 228 46 rc 0 0 0 sco F0_30_41 -Ji -2459 1694 M -3.320 0 (edge)A -; : 2412 1740 304 46 rc 0 0 0 sco F0_30_41 -Ji -2450 1740 M -2.713 0 (detect)A -; : 2359 1011 228 46 rc 0 0 0 sco F0_30_41 -Ji -2397 1011 M -3.070 0 (quad)A -; : 2340 1057 304 46 rc 0 0 0 sco F0_30_41 -Ji -2378 1057 M -3.267 0 (decode)A -; : 1511 847 418 46 rc 0 0 0 sco F0_30_41 -Ji -1549 847 M -2.699 0 (rawcounts)A -; : 800 568 608 46 rc 0 0 0 sco F0_30_41 -Ji -838 568 M -2.329 0 (position-scale)A -; : 0 0 3229 2391 rc -1443 900 N M 0 -62 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1443 838 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1133 621 N M 0 -63 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1133 558 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1443 838 N M 373 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1816 838 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1133 558 N M -373 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -760 558 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1816 838 N M 0 62 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1816 900 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -760 558 N M 0 63 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -760 621 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1816 900 N M -373 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1443 900 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -760 621 N M 373 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1133 621 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1071 1273 N M 0 -342 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1071 931 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1071 931 N M 186 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1257 931 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1257 931 N M 0 342 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1257 1273 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1257 1273 N M -186 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1071 1273 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1971 1273 N M 0 -342 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1971 931 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1971 931 N M 186 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2157 931 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2157 931 N M 0 342 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2157 1273 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2157 1273 N M -186 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1971 1273 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2406 1832 N M 0 -187 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2406 1645 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2406 1645 N M 186 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2592 1645 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2592 1645 N M 0 187 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2592 1832 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2592 1832 N M -186 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2406 1832 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2344 1179 N M 0 -248 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2344 931 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2344 931 N M 186 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2530 931 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2530 931 N M 0 248 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2530 1179 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2530 1179 N M -186 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2344 1179 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1878 869 N M 0 217 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1878 1086 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -698 776 N M -16 -16 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -682 760 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -698 776 N M -16 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -682 791 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -698 776 N M 16 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -714 791 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -698 776 N M 16 -16 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -714 760 N M 0 0 rr : 0 0 0 sco O ; -N 698 776 47.000 360 0 An C 1 Lw 1 Lc 1 Lj solid 0 0 0 sco K : 0 0 3229 2391 rc -2251 1738 N M -1708 0 - 1 Lw solid 0 0 0 sco K ; -543 1738 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -170 1117 N M 0 342 - 1 Lw solid 0 0 0 sco K ; -170 1459 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -170 807 N M 0 248 - 1 Lw solid 0 0 0 sco K ; -170 1055 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -170 745 N M 0 -404 - 1 Lw solid 0 0 0 sco K ; -170 341 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -170 341 N M 2919 0 - 1 Lw solid 0 0 0 sco K ; -3089 341 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3089 341 N M 0 621 - 1 Lw solid 0 0 0 sco K ; -3089 962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3089 1148 N M 0 559 - 1 Lw solid 0 0 0 sco K ; -3089 1707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3089 1024 N M 0 62 - 1 Lw solid 0 0 0 sco K ; -3089 1086 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3089 1769 N M 0 280 - 1 Lw solid 0 0 0 sco K ; -3089 2049 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3089 2049 N M -2919 0 - 1 Lw solid 0 0 0 sco K ; -170 2049 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -170 1707 N M 0 -186 - 1 Lw solid 0 0 0 sco K ; -170 1521 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -170 2049 N M 0 -280 - 1 Lw solid 0 0 0 sco K ; -170 1769 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1816 869 N M 62 0 - 1 Lw solid 0 0 0 sco K ; -1878 869 N M 0 0 rr : 0 0 0 sco O ; -1816 869 N M 25 5 - 0 -11 - -25 6 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -1816 869 N M 25 5 - 0 0 0 sco K ; -1841 874 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1841 874 N M 0 -11 - 0 0 0 sco K ; -1841 863 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1841 863 N M -25 6 - 0 0 0 sco K ; -1816 869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -760 590 N M -62 0 - 0 0 0 sco K ; -698 590 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2530 993 N M 186 0 - 0 0 0 sco K ; -2716 993 N M 0 0 rr : 0 0 0 sco O ; -2530 993 N M 25 6 - 0 -11 - -25 5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2530 993 N M 25 6 - 0 0 0 sco K ; -2555 999 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2555 999 N M 0 -11 - 0 0 0 sco K ; -2555 988 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2555 988 N M -25 5 - 0 0 0 sco K ; -2530 993 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2530 1117 N M 186 0 - 0 0 0 sco K ; -2716 1117 N M 0 0 rr : 0 0 0 sco O ; -2530 1117 N M 25 6 - 0 -11 - -25 5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2530 1117 N M 25 6 - 0 0 0 sco K ; -2555 1123 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2555 1123 N M 0 -11 - 0 0 0 sco K ; -2555 1112 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2555 1112 N M -25 5 - 0 0 0 sco K ; -2530 1117 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2157 1086 N M 187 0 - 0 0 0 sco K ; -2344 1086 N M 0 0 rr : 0 0 0 sco O ; -2157 1086 N M 25 6 - 0 -11 - -25 5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2157 1086 N M 25 6 - 0 0 0 sco K ; -2182 1092 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2182 1092 N M 0 -11 - 0 0 0 sco K ; -2182 1081 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2182 1081 N M -25 5 - 0 0 0 sco K ; -2157 1086 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2157 1024 N M 187 0 - 0 0 0 sco K ; -2344 1024 N M 0 0 rr : 0 0 0 sco O ; -2157 1024 N M 25 6 - 0 -11 - -25 5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2157 1024 N M 25 6 - 0 0 0 sco K ; -2182 1030 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2182 1030 N M 0 -11 - 0 0 0 sco K ; -2182 1019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2182 1019 N M -25 5 - 0 0 0 sco K ; -2157 1024 N M 0 0 rr : 0 0 0 sco O ; : 2019 1003 266 46 rc 0 0 0 sco F0_30_41 -Ji -2057 1003 M -2.588 0 (up/dn)A -; : 2021 1065 266 46 rc 0 0 0 sco F0_30_41 -Ji -2059 1065 M -2.524 0 (count)A -; : 2030 1158 266 46 rc 0 0 0 sco F0_30_41 -Ji -2068 1158 M -2.398 0 (clear)A -; : 0 0 3229 2391 rc -1878 1086 N M 93 0 - 0 0 0 sco K ; -1971 1086 N M 0 0 rr : 0 0 0 sco O ; -1878 1086 N M 25 6 - 0 -11 - -25 5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1878 1086 N M 25 6 - 0 0 0 sco K ; -1903 1092 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1903 1092 N M 0 -11 - 0 0 0 sco K ; -1903 1081 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1903 1081 N M -25 5 - 0 0 0 sco K ; -1878 1086 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2328 1599 N M -2 -15 - 0 0 0 sco K ; -2326 1584 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2326 1584 N M -7 -13 - 0 0 0 sco K ; -2319 1571 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2319 1571 N M -10 -10 - 0 0 0 sco K ; -2309 1561 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2309 1561 N M -13 -7 - 0 0 0 sco K ; -2296 1554 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2296 1554 N M -14 -2 - 0 0 0 sco K ; -2282 1552 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2282 1552 N M -15 2 - 0 0 0 sco K ; -2267 1554 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2267 1554 N M -13 7 - 0 0 0 sco K ; -2254 1561 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2254 1561 N M -10 10 - 0 0 0 sco K ; -2244 1571 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2244 1571 N M -7 13 - 0 0 0 sco K ; -2237 1584 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2237 1584 N M -2 15 - 0 0 0 sco K ; -2235 1599 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2328 1599 N M 0 77 - 0 0 0 sco K ; -2328 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2328 1676 N M -93 0 - 0 0 0 sco K ; -2235 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2235 1676 N M 0 -77 - 0 0 0 sco K ; -2235 1599 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2157 1179 N M 94 0 - 0 0 0 sco K ; -2251 1179 N M 0 0 rr : 0 0 0 sco O ; -2157 1179 N M 25 6 - 0 -11 - -25 5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2157 1179 N M 25 6 - 0 0 0 sco K ; -2182 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2182 1185 N M 0 -11 - 0 0 0 sco K ; -2182 1174 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2182 1174 N M -25 5 - 0 0 0 sco K ; -2157 1179 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2313 1738 N M 93 0 - 0 0 0 sco K ; -2406 1738 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2313 1738 N M 0 -62 - 0 0 0 sco K ; -2313 1676 N M 0 0 rr : 0 0 0 sco O ; -2313 1676 N M -6 25 - 11 0 - -5 -25 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2313 1676 N M -6 25 - 0 0 0 sco K ; -2307 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2307 1701 N M 11 0 - 0 0 0 sco K ; -2318 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2318 1701 N M -5 -25 - 0 0 0 sco K ; -2313 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1257 1086 N M 621 0 - 0 0 0 sco K ; -1878 1086 N M 0 0 rr : 0 0 0 sco O ; -1257 1086 N M 25 6 - 0 -11 - -25 5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1257 1086 N M 25 6 - 0 0 0 sco K ; -1282 1092 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1282 1092 N M 0 -11 - 0 0 0 sco K ; -1282 1081 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1282 1081 N M -25 5 - 0 0 0 sco K ; -1257 1086 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -745 776 N M 139 0 - 0 0 0 sco K ; -884 776 N M 0 0 rr : 0 0 0 sco O ; -745 776 N M 24 5 - 0 -11 - -24 6 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -745 776 N M 24 5 - 0 0 0 sco K ; -769 781 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -769 781 N M 0 -11 - 0 0 0 sco K ; -769 770 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -769 770 N M -24 6 - 0 0 0 sco K ; -745 776 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -698 590 N M 0 139 - 0 0 0 sco K ; -698 729 N M 0 0 rr : 0 0 0 sco O ; -698 729 N M 6 -25 - -11 0 - 5 25 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -698 729 N M 6 -25 - 0 0 0 sco K ; -704 704 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -704 704 N M -11 0 - 0 0 0 sco K ; -693 704 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -693 704 N M 5 25 - 0 0 0 sco K ; -698 729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2251 1738 N M 0 -62 - 0 0 0 sco K ; -2251 1676 N M 0 0 rr : 0 0 0 sco O ; -2251 1676 N M -6 25 - 11 0 - -5 -25 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2251 1676 N M -6 25 - 0 0 0 sco K ; -2245 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2245 1701 N M 11 0 - 0 0 0 sco K ; -2256 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1701 N M -5 -25 - 0 0 0 sco K ; -2251 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1071 1086 N M -187 0 - 0 0 0 sco K ; -884 1086 N M 0 0 rr : 0 0 0 sco O ; -884 1086 N M 25 6 - 0 -11 - -25 5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -884 1086 N M 25 6 - 0 0 0 sco K ; -909 1092 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -909 1092 N M 0 -11 - 0 0 0 sco K ; -909 1081 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -909 1081 N M -25 5 - 0 0 0 sco K ; -884 1086 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1086 N M -341 0 - 0 0 0 sco K ; -543 1086 N M 0 0 rr : 0 0 0 sco O ; -543 1086 N M 25 6 - 0 -11 - -25 5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -543 1086 N M 25 6 - 0 0 0 sco K ; -568 1092 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -568 1092 N M 0 -11 - 0 0 0 sco K ; -568 1081 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -568 1081 N M -25 5 - 0 0 0 sco K ; -543 1086 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -651 776 N M -108 0 - 0 0 0 sco K ; -543 776 N M 0 0 rr : 0 0 0 sco O ; -543 776 N M 25 5 - 0 -11 - -25 6 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -543 776 N M 25 5 - 0 0 0 sco K ; -568 781 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -568 781 N M 0 -11 - 0 0 0 sco K ; -568 770 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -568 770 N M -25 6 - 0 0 0 sco K ; -543 776 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 776 N M 0 310 - 0 0 0 sco K ; -884 1086 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2297 1406 N M -14 -9 - 0 0 0 sco K ; -2283 1397 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2283 1397 N M -16 -5 - 0 0 0 sco K ; -2267 1392 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2267 1392 N M -16 -2 - 0 0 0 sco K ; -2251 1390 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2251 1390 N M -17 2 - 0 0 0 sco K ; -2234 1392 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2234 1392 N M -16 5 - 0 0 0 sco K ; -2218 1397 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2218 1397 N M -14 9 - 0 0 0 sco K ; -2204 1406 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2251 1273 N M -18 17 - 0 0 0 sco K ; -2233 1290 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2233 1290 N M -14 20 - 0 0 0 sco K ; -2219 1310 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2219 1310 N M -9 23 - 0 0 0 sco K ; -2210 1333 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2210 1333 N M -6 24 - 0 0 0 sco K ; -2204 1357 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2204 1357 N M 0 24 - 0 0 0 sco K ; -2204 1381 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2297 1381 N M 0 -24 - 0 0 0 sco K ; -2297 1357 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2297 1357 N M -6 -24 - 0 0 0 sco K ; -2291 1333 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2291 1333 N M -9 -23 - 0 0 0 sco K ; -2282 1310 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2282 1310 N M -14 -20 - 0 0 0 sco K ; -2268 1290 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2268 1290 N M -17 -17 - 0 0 0 sco K ; -2251 1273 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2297 1381 N M 0 25 - 0 0 0 sco K ; -2297 1406 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2204 1381 N M 0 25 - 0 0 0 sco K ; -2204 1406 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -543 1490 N M 1676 0 - 0 0 0 sco K ; -2219 1490 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2219 1490 N M 0 -93 - 0 0 0 sco K ; -2219 1397 N M 0 0 rr : 0 0 0 sco O ; -2219 1397 N M -5 25 - 11 0 - -6 -25 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2219 1397 N M -5 25 - 0 0 0 sco K ; -2214 1422 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2214 1422 N M 11 0 - 0 0 0 sco K ; -2225 1422 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2225 1422 N M -6 -25 - 0 0 0 sco K ; -2219 1397 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2282 1552 N M 0 -155 - 0 0 0 sco K ; -2282 1397 N M 0 0 rr : 0 0 0 sco O ; -2282 1397 N M -6 25 - 11 0 - -5 -25 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2282 1397 N M -6 25 - 0 0 0 sco K ; -2276 1422 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2276 1422 N M 11 0 - 0 0 0 sco K ; -2287 1422 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2287 1422 N M -5 -25 - 0 0 0 sco K ; -2282 1397 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2592 1738 N M 124 0 - 0 0 0 sco K ; -2716 1738 N M 0 0 rr : 0 0 0 sco O ; -2592 1738 N M 25 6 - 0 -11 - -25 5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2592 1738 N M 25 6 - 0 0 0 sco K ; -2617 1744 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2617 1744 N M 0 -11 - 0 0 0 sco K ; -2617 1733 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2617 1733 N M -25 5 - 0 0 0 sco K ; -2592 1738 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 341 N M 0 8 - 0 0 0 sco K ; -1350 349 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 364 N M 0 15 - 0 0 0 sco K ; -1350 379 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 394 N M 0 15 - 0 0 0 sco K ; -1350 409 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 424 N M 0 15 - 0 0 0 sco K ; -1350 439 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 454 N M 0 15 - 0 0 0 sco K ; -1350 469 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 484 N M 0 15 - 0 0 0 sco K ; -1350 499 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 514 N M 0 15 - 0 0 0 sco K ; -1350 529 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 544 N M 0 15 - 0 0 0 sco K ; -1350 559 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 574 N M 0 15 - 0 0 0 sco K ; -1350 589 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 604 N M 0 15 - 0 0 0 sco K ; -1350 619 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 634 N M 0 15 - 0 0 0 sco K ; -1350 649 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 664 N M 0 15 - 0 0 0 sco K ; -1350 679 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 694 N M 0 15 - 0 0 0 sco K ; -1350 709 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 724 N M 0 15 - 0 0 0 sco K ; -1350 739 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 754 N M 0 15 - 0 0 0 sco K ; -1350 769 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 784 N M 0 15 - 0 0 0 sco K ; -1350 799 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 814 N M 0 15 - 0 0 0 sco K ; -1350 829 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 844 N M 0 15 - 0 0 0 sco K ; -1350 859 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 874 N M 0 15 - 0 0 0 sco K ; -1350 889 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 904 N M 0 15 - 0 0 0 sco K ; -1350 919 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 934 N M 0 15 - 0 0 0 sco K ; -1350 949 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 964 N M 0 15 - 0 0 0 sco K ; -1350 979 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 994 N M 0 15 - 0 0 0 sco K ; -1350 1009 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1024 N M 0 15 - 0 0 0 sco K ; -1350 1039 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1054 N M 0 15 - 0 0 0 sco K ; -1350 1069 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1084 N M 0 15 - 0 0 0 sco K ; -1350 1099 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1114 N M 0 15 - 0 0 0 sco K ; -1350 1129 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1144 N M 0 15 - 0 0 0 sco K ; -1350 1159 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1174 N M 0 15 - 0 0 0 sco K ; -1350 1189 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1204 N M 0 15 - 0 0 0 sco K ; -1350 1219 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1234 N M 0 15 - 0 0 0 sco K ; -1350 1249 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1264 N M 0 15 - 0 0 0 sco K ; -1350 1279 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1294 N M 0 15 - 0 0 0 sco K ; -1350 1309 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1324 N M 0 15 - 0 0 0 sco K ; -1350 1339 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1354 N M 0 15 - 0 0 0 sco K ; -1350 1369 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1384 N M 0 15 - 0 0 0 sco K ; -1350 1399 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1414 N M 0 15 - 0 0 0 sco K ; -1350 1429 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1444 N M 0 15 - 0 0 0 sco K ; -1350 1459 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1474 N M 0 15 - 0 0 0 sco K ; -1350 1489 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1504 N M 0 15 - 0 0 0 sco K ; -1350 1519 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1534 N M 0 15 - 0 0 0 sco K ; -1350 1549 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1564 N M 0 15 - 0 0 0 sco K ; -1350 1579 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1594 N M 0 15 - 0 0 0 sco K ; -1350 1609 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1624 N M 0 15 - 0 0 0 sco K ; -1350 1639 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1654 N M 0 15 - 0 0 0 sco K ; -1350 1669 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1684 N M 0 15 - 0 0 0 sco K ; -1350 1699 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1714 N M 0 15 - 0 0 0 sco K ; -1350 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1744 N M 0 15 - 0 0 0 sco K ; -1350 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1774 N M 0 15 - 0 0 0 sco K ; -1350 1789 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1804 N M 0 15 - 0 0 0 sco K ; -1350 1819 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1834 N M 0 15 - 0 0 0 sco K ; -1350 1849 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1864 N M 0 15 - 0 0 0 sco K ; -1350 1879 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1894 N M 0 15 - 0 0 0 sco K ; -1350 1909 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1924 N M 0 15 - 0 0 0 sco K ; -1350 1939 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1954 N M 0 15 - 0 0 0 sco K ; -1350 1969 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 1984 N M 0 15 - 0 0 0 sco K ; -1350 1999 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 2014 N M 0 15 - 0 0 0 sco K ; -1350 2029 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1350 2044 N M 0 5 - 0 0 0 sco K ; -1350 2049 N M 0 0 rr : 0 0 0 sco O ; : 2072 413 722 46 rc 0 0 0 sco F0_30_41 -Ji -2110 413 M -2.602 0 (update-counters\(\))A -; : 584 413 760 46 rc 0 0 0 sco F0_30_41 -Ji -622 413 M -2.367 0 (capture-position\(\))A -; : 302 1912 847 93 rc 0 0 0 sco (F0_61_80) cvn -F0 -61 0 0 80 0 0 -xMF -F0_61_80 -Ji -379 1912 M -6.193 0 (encoder.0)A -; -LH -pagesave restore -%%PageTrailer - -%%Trailer -%%DocumentNeededFonts: -%%DocumentSuppliedFonts: -/Pscript_Win_Driver /ProcSet findresource dup /terminate get exec -Pscript_Win_Compat dup /terminate get exec -%%EOF diff --git a/docs/src/hal/images/encoder-block-diag.png b/docs/src/hal/images/encoder-block-diag.png deleted file mode 100644 index 9e558a36eff..00000000000 Binary files a/docs/src/hal/images/encoder-block-diag.png and /dev/null differ diff --git a/docs/src/hal/images/encoder-block-diag.svg b/docs/src/hal/images/encoder-block-diag.svg deleted file mode 100755 index 34156f967ca..00000000000 --- a/docs/src/hal/images/encoder-block-diag.svg +++ /dev/null @@ -1,691 +0,0 @@ - - - -encoder-block-diag.svgimage/svg+xmlencoder-block-diag.svg11.11.2011linuxcnc.org - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -position-scale - - -capture-position() - - -latch - - -position - - -counts - - -reset - - -index-enable - - -rawcounts - - -counter - - -quaddecode - - -edgedetect - - -phase-Z - - -phase-B - - -phase-A - - -count - - -clear - - -update-counter() - - -encoder.0 - - -up/dn - - - \ No newline at end of file diff --git a/docs/src/hal/images/gs2_panel.png b/docs/src/hal/images/gs2_panel.png deleted file mode 100644 index bf219db9df3..00000000000 Binary files a/docs/src/hal/images/gs2_panel.png and /dev/null differ diff --git a/docs/src/hal/images/hal-meter01.png b/docs/src/hal/images/hal-meter01.png deleted file mode 100644 index 21ceb7510ad..00000000000 Binary files a/docs/src/hal/images/hal-meter01.png and /dev/null differ diff --git a/docs/src/hal/images/hal-meter02.png b/docs/src/hal/images/hal-meter02.png deleted file mode 100644 index 3c813e62667..00000000000 Binary files a/docs/src/hal/images/hal-meter02.png and /dev/null differ diff --git a/docs/src/hal/images/hal_encoder_block_diag.dxf b/docs/src/hal/images/hal_encoder_block_diag.dxf deleted file mode 100644 index 2e9e2902a50..00000000000 --- a/docs/src/hal/images/hal_encoder_block_diag.dxf +++ /dev/null @@ -1,6106 +0,0 @@ -999 -dxflib 2.0.4.8 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMTAD - 70 -0 - 9 -$AXISUNIT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$USERR4 - 40 -0.0 - 9 -$CLAYER - 8 -0 - 9 -$MENU - 1 -acad - 9 -$CHAMFERA - 40 -0.0 - 9 -$ATTREQ - 70 -1 - 9 -$UCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$USERR5 - 40 -0.0 - 9 -$SHADEDIF - 70 -70 - 9 -$TILEMODE - 70 -1 - 9 -$VISRETAIN - 70 -0 - 9 -$EXTMIN - 10 --6.3494999999999999 - 20 -10.8725000000000005 - 30 -0.0 - 9 -$ORTHOMODE - 70 -0 - 9 -$REGENMODE - 70 -1 - 9 -$TRACEWID - 40 -0.05 - 9 -$CHAMFERB - 40 -0.0 - 9 -$UCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMADEC - 70 -0 - 9 -$GRIDUNIT - 10 -0.0 - 20 -0.0 - 9 -$DIMASZ - 40 -0.18 - 9 -$DIMSHO - 70 -1 - 9 -$DIMALT - 70 -0 - 9 -$DIMSAH - 70 -0 - 9 -$DIMTFAC - 40 -1.0 - 9 -$SKETCHINC - 40 -0.1 - 9 -$USRTIMER - 70 -1 - 9 -$ANGBASE - 50 -0.0 - 9 -$PUCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$DIMGAP - 40 -0.09 - 9 -$LIMMIN - 10 -0.0 - 20 -0.0 - 9 -$DIMTSZ - 40 -0.0 - 9 -$AXISMODE - 70 -0 - 9 -$SPLFRAME - 70 -0 - 9 -$SURFTYPE - 70 -6 - 9 -$PUCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$BLIPMODE - 70 -1 - 9 -$SURFTAB1 - 70 -6 - 9 -$DWGCODEPAGE - 3 -dos850 - 9 -$LUNITS - 70 -2 - 9 -$AUPREC - 70 -0 - 9 -$SPLINESEGS - 70 -8 - 9 -$INSBASE - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMRND - 40 -0.0 - 9 -$DIMCEN - 40 -0.09 - 9 -$ELEVATION - 40 -0.0 - 9 -$SKPOLY - 70 -0 - 9 -$SURFTAB2 - 70 -6 - 9 -$USERI1 - 70 -0 - 9 -$UNITMODE - 70 -0 - 9 -$EXTMAX - 10 -3.6495000000000002 - 20 -16.4274999999999984 - 30 -0.0 - 9 -$FILLMODE - 70 -1 - 9 -$DRAGMODE - 70 -2 - 9 -$TEXTSIZE - 40 -0.2 - 9 -$PELEVATION - 40 -0.0 - 9 -$UCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$USERI2 - 70 -0 - 9 -$INSUNITS - 70 -4 - 9 -$DIMEXO - 40 -0.0625 - 9 -$DIMSCALE - 40 -1.0 - 9 -$DIMDLE - 40 -0.0 - 9 -$DIMZIN - 70 -0 - 9 -$TDUSRTIMER - 40 -0.0 - 9 -$ANGDIR - 70 -0 - 9 -$SURFU - 70 -6 - 9 -$USERI3 - 70 -0 - 9 -$LIMMAX - 10 -0.0 - 20 -0.0 - 9 -$QTEXTMODE - 70 -0 - 9 -$OSMODE - 70 -0 - 9 -$SURFV - 70 -6 - 9 -$USERI4 - 70 -0 - 9 -$WORLDVIEW - 70 -1 - 9 -$DIMLUNIT - 70 -2 - 9 -$ATTMODE - 70 -1 - 9 -$DIMLIM - 70 -0 - 9 -$DIMSE1 - 70 -0 - 9 -$THICKNESS - 40 -0.0 - 9 -$LIMCHECK - 70 -0 - 9 -$PDMODE - 70 -0 - 9 -$HANDLING - 70 -1 - 9 -$USERI5 - 70 -0 - 9 -$GRIDMODE - 70 -1 - 9 -$DIMTXT - 40 -0.18 - 9 -$CELTYPE - 6 -CONTINUOUS - 9 -$DIMTOH - 70 -1 - 9 -$DIMSE2 - 70 -0 - 9 -$DIMLFAC - 40 -1.0 - 9 -$DIMSOXD - 70 -0 - 9 -$TDINDWG - 40 -0.0 - 9 -$SPLINETYPE - 70 -6 - 9 -$PUCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PEXTMIN - 10 -100000000000000000000.0 - 20 -100000000000000000000.0 - 30 -100000000000000000000.0 - 9 -$PEXTMAX - 10 --100000000000000000000.0 - 20 --100000000000000000000.0 - 30 --100000000000000000000.0 - 9 -$LUPREC - 70 -4 - 9 -$CECOLOR - 62 -256 - 9 -$DIMDLI - 40 -0.38 - 9 -$DIMTM - 40 -0.0 - 9 -$DIMASO - 70 -1 - 9 -$DIMTVP - 40 -0.0 - 9 -$DIMSTYLE - 2 -STANDARD - 9 -$PLINEWID - 40 -0.0 - 9 -$PLIMCHECK - 70 -0 - 9 -$LTSCALE - 40 -1.0 - 9 -$DIMTIH - 70 -1 - 9 -$DIMALTD - 70 -2 - 9 -$DIMCLRT - 70 -0 - 9 -$FILLETRAD - 40 -0.0 - 9 -$TDUPDATE - 40 -0.0 - 9 -$MAXACTVP - 70 -16 - 9 -$TREEDEPTH - 70 -3020 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$PLIMMAX - 10 -210.0 - 20 -297.0 - 9 -$PINSBASE - 10 -156.3990892661070404 - 20 -177.8982324864239501 - 30 -0.0 - 9 -$DIMCLRD - 70 -0 - 9 -$PDSIZE - 40 -0.0 - 9 -$ATTDIA - 70 -0 - 9 -$USERR1 - 40 -0.0 - 9 -$DIMEXE - 40 -0.18 - 9 -$TEXTSTYLE - 7 -STANDARD - 9 -$DIMTP - 40 -0.0 - 9 -$DIMTOL - 70 -0 - 9 -$DIMALTF - 40 -25.3999999999999986 - 9 -$DIMTOFL - 70 -0 - 9 -$DIMCLRE - 70 -0 - 9 -$TDCREATE - 40 -0.0 - 9 -$COORDS - 70 -0 - 9 -$USERR2 - 40 -0.0 - 9 -$SHADEDGE - 70 -3 - 9 -$PLINEGEN - 70 -1 - 9 -$PSLTSCALE - 70 -0 - 9 -$DIMAUNIT - 70 -0 - 9 -$MIRRTEXT - 70 -1 - 9 -$DIMTIX - 70 -0 - 9 -$USERR3 - 40 -0.0 - 9 -$AUNITS - 70 -0 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -7 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -MERGE - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -STANDARD - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PINS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PARAMS - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -47 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -OUTLINE - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -48 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -INTERNALS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -0.75 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -0.18 - 42 -0.0625 - 43 -3.75 - 44 -0.18 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -0.18 -141 -2.5 -143 -0.03937007874016 -147 -0.09 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LWPOLYLINE - 5 -49 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --129.43831131902013 - 20 --45.4160454922390642 - 10 --129.43831131902013 - 20 --42.4160454922390784 - 10 --109.9383113190201726 - 20 --42.4160454922390784 - 10 --108.4383113190201584 - 20 --43.9160454922390997 - 10 --109.9383113190201726 - 20 --45.4160454922390642 - 10 --129.43831131902013 - 20 --45.4160454922390642 - 10 --129.43831131902013 - 20 --45.4160454922390642 - 0 -LWPOLYLINE - 5 -4A - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 --129.43831131902013 - 20 --57.4160454922390784 - 10 --130.9383113190201584 - 20 --55.9160454922390571 - 10 --129.43831131902013 - 20 --54.4160454922390358 - 10 --109.9383113190201726 - 20 --54.4160454922390358 - 10 --108.4383113190201584 - 20 --55.9160454922390571 - 10 --109.9383113190201726 - 20 --57.4160454922390784 - 10 --129.43831131902013 - 20 --57.4160454922390784 - 10 --129.43831131902013 - 20 --57.4160454922390784 - 0 -MTEXT - 5 -4B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --120.4383113190201158 - 20 --43.9160454922390997 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -reset - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -4C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --120.4383113190201158 - 20 --55.9160454922390571 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -index-enable - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --25.9383113190201513 - 20 --33.4160454922390571 - 30 -0.0 - 11 --25.9383113190201513 - 21 --28.9160454922390997 - 31 -0.0 - 0 -LWPOLYLINE - 5 -4E - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --1.93831131902013 - 20 --57.4160454922390784 - 10 --3.4383113190201513 - 20 --55.9160454922390571 - 10 --1.93831131902013 - 20 --54.4160454922390358 - 10 -17.5616886809798274 - 20 --54.4160454922390358 - 10 -17.5616886809798274 - 20 --57.4160454922390784 - 10 --1.93831131902013 - 20 --57.4160454922390784 - 10 --1.93831131902013 - 20 --57.4160454922390784 - 0 -LWPOLYLINE - 5 -4F - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --1.93831131902013 - 20 --27.4160454922390784 - 10 --3.4383113190201513 - 20 --25.9160454922390571 - 10 --1.93831131902013 - 20 --24.416045492239089 - 10 -17.5616886809798274 - 20 --24.416045492239089 - 10 -17.5616886809798274 - 20 --27.4160454922390784 - 10 --1.93831131902013 - 20 --27.4160454922390784 - 10 --1.93831131902013 - 20 --27.4160454922390784 - 0 -LWPOLYLINE - 5 -50 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --1.93831131902013 - 20 --21.4160454922390997 - 10 --3.4383113190201513 - 20 --19.9160454922390784 - 10 --1.93831131902013 - 20 --18.4160454922390571 - 10 -17.5616886809798274 - 20 --18.4160454922390571 - 10 -17.5616886809798274 - 20 --21.4160454922390997 - 10 --1.93831131902013 - 20 --21.4160454922390997 - 10 --1.93831131902013 - 20 --21.4160454922390997 - 0 -LWPOLYLINE - 5 -51 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --127.9383113190201158 - 20 --25.9160454922390571 - 10 --129.43831131902013 - 20 --24.416045492239089 - 10 --127.9383113190201158 - 20 --22.9160454922390677 - 10 --108.4383113190201584 - 20 --22.9160454922390677 - 10 --108.4383113190201584 - 20 --25.9160454922390571 - 10 --127.9383113190201158 - 20 --25.9160454922390571 - 10 --127.9383113190201158 - 20 --25.9160454922390571 - 0 -LWPOLYLINE - 5 -52 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --127.9383113190201158 - 20 --10.9160454922390571 - 10 --129.43831131902013 - 20 --9.416045492239089 - 10 --127.9383113190201158 - 20 --7.9160454922390677 - 10 --108.4383113190201584 - 20 --7.9160454922390677 - 10 --108.4383113190201584 - 20 --10.9160454922390571 - 10 --127.9383113190201158 - 20 --10.9160454922390571 - 10 --127.9383113190201158 - 20 --10.9160454922390571 - 0 -MTEXT - 5 -53 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -7.0616886809798913 - 20 --55.9160454922390571 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -phase-Z - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -54 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -7.0616886809798913 - 20 --25.9160454922390571 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -phase-B - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -55 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -7.0616886809798913 - 20 --19.9160454922390784 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -phase-A - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -56 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --118.9383113190200874 - 20 --24.416045492239089 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -counts - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -57 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --118.9383113190200874 - 20 --9.416045492239089 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -position - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -58 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.4383113190201584 - 20 --24.416045492239089 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -latch - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -59 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --34.9383113190201726 - 20 --15.4160454922390677 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -counter - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5A -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --13.9383113190201939 - 20 --54.791045492239121 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -edge - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5B -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --13.9383113190201939 - 20 --57.0410454922390997 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -detect - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5C -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.93831131902013 - 20 --21.7910454922390784 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -quad - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5D -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.93831131902013 - 20 --24.0410454922390571 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -decode - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5E -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --55.9383113190201513 - 20 --13.9160454922390997 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -rawcounts - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5F -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --88.9383113190201868 - 20 --0.4160454922390677 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -position-scale - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LINE - 5 -60 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --64.9383113190201726 - 20 --15.4160454922390677 - 30 -0.0 - 11 --64.9383113190201726 - 21 --12.4160454922390784 - 31 -0.0 - 0 -LINE - 5 -61 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --79.9383113190201726 - 20 --1.916045492239089 - 30 -0.0 - 11 --79.9383113190201726 - 21 -1.0839545077609003 - 31 -0.0 - 0 -LINE - 5 -62 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --64.9383113190201726 - 20 --12.4160454922390784 - 30 -0.0 - 11 --46.93831131902013 - 21 --12.4160454922390784 - 31 -0.0 - 0 -LINE - 5 -63 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --79.9383113190201726 - 20 -1.0839545077609003 - 30 -0.0 - 11 --97.9383113190201016 - 21 -1.0839545077609003 - 31 -0.0 - 0 -LINE - 5 -64 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --46.93831131902013 - 20 --12.4160454922390784 - 30 -0.0 - 11 --46.93831131902013 - 21 --15.4160454922390677 - 31 -0.0 - 0 -LINE - 5 -65 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --97.9383113190201016 - 20 -1.0839545077609003 - 30 -0.0 - 11 --97.9383113190201016 - 21 --1.916045492239089 - 31 -0.0 - 0 -LINE - 5 -66 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --46.93831131902013 - 20 --15.4160454922390677 - 30 -0.0 - 11 --64.9383113190201726 - 21 --15.4160454922390677 - 31 -0.0 - 0 -LINE - 5 -67 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --97.9383113190201016 - 20 --1.916045492239089 - 30 -0.0 - 11 --79.9383113190201726 - 21 --1.916045492239089 - 31 -0.0 - 0 -LWPOLYLINE - 5 -68 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --82.9383113190201016 - 20 --33.4160454922390571 - 10 --82.9383113190201016 - 20 --16.916045492239089 - 10 --73.9383113190201868 - 20 --16.916045492239089 - 10 --73.9383113190201868 - 20 --33.4160454922390571 - 10 --82.9383113190201016 - 20 --33.4160454922390571 - 0 -LWPOLYLINE - 5 -69 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --39.43831131902013 - 20 --33.4160454922390571 - 10 --39.43831131902013 - 20 --16.916045492239089 - 10 --30.4383113190201087 - 20 --16.916045492239089 - 10 --30.4383113190201087 - 20 --33.4160454922390571 - 10 --39.43831131902013 - 20 --33.4160454922390571 - 0 -LWPOLYLINE - 5 -6A - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --18.4383113190201513 - 20 --60.416045492239121 - 10 --18.4383113190201513 - 20 --51.4160454922390997 - 10 --9.43831131902013 - 20 --51.4160454922390997 - 10 --9.43831131902013 - 20 --60.416045492239121 - 10 --18.4383113190201513 - 20 --60.416045492239121 - 0 -LWPOLYLINE - 5 -6B - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --21.4383113190201939 - 20 --28.9160454922390997 - 10 --21.4383113190201939 - 20 --16.916045492239089 - 10 --12.4383113190201726 - 20 --16.916045492239089 - 10 --12.4383113190201726 - 20 --28.9160454922390997 - 10 --21.4383113190201939 - 20 --28.9160454922390997 - 0 -LINE - 5 -6C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --43.9383113190201939 - 20 --13.9160454922390997 - 30 -0.0 - 11 --43.9383113190201939 - 21 --24.416045492239089 - 31 -0.0 - 0 -LINE - 5 -6D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --100.9383113190201584 - 20 --9.416045492239089 - 30 -0.0 - 11 --101.6883113190201016 - 21 --8.6660454922390784 - 31 -0.0 - 0 -LINE - 5 -6E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --100.9383113190201584 - 20 --9.416045492239089 - 30 -0.0 - 11 --101.6883113190201016 - 21 --10.1660454922390997 - 31 -0.0 - 0 -LINE - 5 -6F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --100.9383113190201584 - 20 --9.416045492239089 - 30 -0.0 - 11 --100.1883113190201868 - 21 --10.1660454922390997 - 31 -0.0 - 0 -LINE - 5 -70 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --100.9383113190201584 - 20 --9.416045492239089 - 30 -0.0 - 11 --100.1883113190201868 - 21 --8.6660454922390784 - 31 -0.0 - 0 -CIRCLE - 5 -71 -100 -AcDbEntity -100 -AcDbCircle - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --100.9383113190201584 - 20 --9.416045492239089 - 30 -0.0 - 40 -2.2500000000000004 - 0 -LINE - 5 -72 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --25.9383113190201513 - 20 --55.9160454922390571 - 30 -0.0 - 11 --108.4383113190201584 - 21 --55.9160454922390571 - 31 -0.0 - 0 -LINE - 5 -73 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --126.4383113190200874 - 20 --25.9160454922390571 - 30 -0.0 - 11 --126.4383113190200874 - 21 --42.4160454922390784 - 31 -0.0 - 0 -LINE - 5 -74 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --126.4383113190200874 - 20 --10.9160454922390571 - 30 -0.0 - 11 --126.4383113190200874 - 21 --22.9160454922390677 - 31 -0.0 - 0 -LINE - 5 -75 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --126.4383113190200874 - 20 --7.9160454922390677 - 30 -0.0 - 11 --126.4383113190200874 - 21 -11.5839545077608861 - 31 -0.0 - 0 -LINE - 5 -76 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --126.4383113190200874 - 20 -11.5839545077608861 - 30 -0.0 - 11 -14.5616886809798842 - 21 -11.5839545077608861 - 31 -0.0 - 0 -LINE - 5 -77 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.5616886809798842 - 20 -11.5839545077608861 - 30 -0.0 - 11 -14.5616886809798842 - 21 --18.4160454922390571 - 31 -0.0 - 0 -LINE - 5 -78 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.5616886809798842 - 20 --27.4160454922390784 - 30 -0.0 - 11 -14.5616886809798842 - 21 --54.4160454922390358 - 31 -0.0 - 0 -LINE - 5 -79 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.5616886809798842 - 20 --21.4160454922390997 - 30 -0.0 - 11 -14.5616886809798842 - 21 --24.416045492239089 - 31 -0.0 - 0 -LINE - 5 -7A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.5616886809798842 - 20 --57.4160454922390784 - 30 -0.0 - 11 -14.5616886809798842 - 21 --70.91604549223905 - 31 -0.0 - 0 -LINE - 5 -7B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.5616886809798842 - 20 --70.91604549223905 - 30 -0.0 - 11 --126.4383113190200874 - 21 --70.91604549223905 - 31 -0.0 - 0 -LINE - 5 -7C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --126.4383113190200874 - 20 --54.4160454922390358 - 30 -0.0 - 11 --126.4383113190200874 - 21 --45.4160454922390642 - 31 -0.0 - 0 -LINE - 5 -7D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --126.4383113190200874 - 20 --70.91604549223905 - 30 -0.0 - 11 --126.4383113190200874 - 21 --57.4160454922390784 - 31 -0.0 - 0 -LINE - 5 -7E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --46.93831131902013 - 20 --13.9160454922390997 - 30 -0.0 - 11 --43.9383113190201939 - 21 --13.9160454922390997 - 31 -0.0 - 0 -LWPOLYLINE - 5 -7F - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --46.93831131902013 - 20 --13.9160454922390997 - 10 --45.7383113190201556 - 20 --14.182745492239075 - 10 --45.7383113190201556 - 20 --13.6493454922390711 - 10 --46.93831131902013 - 20 --13.9160454922390997 - 0 -LINE - 5 -80 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --97.9383113190201016 - 20 --0.4160454922390677 - 30 -0.0 - 11 --100.9383113190201584 - 21 --0.4160454922390677 - 31 -0.0 - 0 -LINE - 5 -81 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.4383113190201726 - 20 --19.9160454922390784 - 30 -0.0 - 11 --3.4383113190201513 - 21 --19.9160454922390784 - 31 -0.0 - 0 -LWPOLYLINE - 5 -82 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --12.4383113190201726 - 20 --19.9160454922390784 - 10 --11.2383113190201982 - 20 --20.1827454922390537 - 10 --11.2383113190201982 - 20 --19.6493454922390498 - 10 --12.4383113190201726 - 20 --19.9160454922390784 - 0 -LINE - 5 -83 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.4383113190201726 - 20 --25.9160454922390571 - 30 -0.0 - 11 --3.4383113190201513 - 21 --25.9160454922390571 - 31 -0.0 - 0 -LWPOLYLINE - 5 -84 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --12.4383113190201726 - 20 --25.9160454922390571 - 10 --11.2383113190201982 - 20 --26.1827454922390856 - 10 --11.2383113190201982 - 20 --25.6493454922390818 - 10 --12.4383113190201726 - 20 --25.9160454922390571 - 0 -LWPOLYLINE - 5 -85 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -2 - 70 -0 - 10 --30.4383113190201087 - 20 --24.416045492239089 - 10 --21.4383113190201939 - 20 --24.416045492239089 - 0 -LWPOLYLINE - 5 -86 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --30.4383113190201087 - 20 --24.416045492239089 - 10 --29.2383113190201342 - 20 --24.6827454922390643 - 10 --29.2383113190201342 - 20 --24.1493454922390605 - 10 --30.4383113190201087 - 20 --24.416045492239089 - 0 -LWPOLYLINE - 5 -87 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -2 - 70 -0 - 10 --30.4383113190201087 - 20 --21.4160454922390997 - 10 --21.4383113190201939 - 20 --21.4160454922390997 - 0 -LWPOLYLINE - 5 -88 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --30.4383113190201087 - 20 --21.4160454922390997 - 10 --29.2383113190201342 - 20 --21.682745492239075 - 10 --29.2383113190201342 - 20 --21.1493454922390711 - 10 --30.4383113190201087 - 20 --21.4160454922390997 - 0 -MTEXT - 5 -89 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --30.4383113190201087 - 20 --21.4160454922390997 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -6 - 72 -2 - 1 -up/dn - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -8A -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --30.4383113190201087 - 20 --24.416045492239089 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -6 - 72 -2 - 1 -count - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -8B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --30.4383113190201087 - 20 --28.9160454922390997 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -6 - 72 -2 - 1 -clear - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LINE - 5 -8C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --43.9383113190201939 - 20 --24.416045492239089 - 30 -0.0 - 11 --39.43831131902013 - 21 --24.416045492239089 - 31 -0.0 - 0 -LWPOLYLINE - 5 -8D - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --43.9383113190201939 - 20 --24.416045492239089 - 10 --42.7383113190201129 - 20 --24.6827454922390643 - 10 --42.7383113190201129 - 20 --24.1493454922390605 - 10 --43.9383113190201939 - 20 --24.416045492239089 - 0 -ARC - 5 -8E -100 -AcDbEntity - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --24.43831131902013 - 20 --49.166045492239121 - 30 -0.0 - 40 -2.2500000000000004 -100 -AcDbArc - 50 -0.0 - 51 -180.0 - 0 -LINE - 5 -8F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --22.1883113190201513 - 20 --49.166045492239121 - 30 -0.0 - 11 --22.1883113190201513 - 21 --52.916045492239121 - 31 -0.0 - 0 -LINE - 5 -90 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --22.1883113190201513 - 20 --52.916045492239121 - 30 -0.0 - 11 --26.6883113190201087 - 21 --52.916045492239121 - 31 -0.0 - 0 -LINE - 5 -91 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.6883113190201087 - 20 --52.916045492239121 - 30 -0.0 - 11 --26.6883113190201087 - 21 --49.166045492239121 - 31 -0.0 - 0 -LINE - 5 -92 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --30.4383113190201087 - 20 --28.9160454922390997 - 30 -0.0 - 11 --25.9383113190201513 - 21 --28.9160454922390997 - 31 -0.0 - 0 -LWPOLYLINE - 5 -93 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --30.4383113190201087 - 20 --28.9160454922390997 - 10 --29.2383113190201342 - 20 --29.182745492239075 - 10 --29.2383113190201342 - 20 --28.6493454922390711 - 10 --30.4383113190201087 - 20 --28.9160454922390997 - 0 -LINE - 5 -94 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --22.9383113190201087 - 20 --55.9160454922390571 - 30 -0.0 - 11 --18.4383113190201513 - 21 --55.9160454922390571 - 31 -0.0 - 0 -LINE - 5 -95 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --22.9383113190201087 - 20 --55.9160454922390571 - 30 -0.0 - 11 --22.9383113190201087 - 21 --52.916045492239121 - 31 -0.0 - 0 -LWPOLYLINE - 5 -96 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --22.9383113190201087 - 20 --52.916045492239121 - 10 --23.2050113190201373 - 20 --54.1160454922390954 - 10 --22.6716113190201867 - 20 --54.1160454922390954 - 10 --22.9383113190201087 - 20 --52.916045492239121 - 0 -LWPOLYLINE - 5 -97 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -2 - 70 -0 - 10 --73.9383113190201868 - 20 --24.416045492239089 - 10 --43.9383113190201939 - 20 --24.416045492239089 - 0 -LWPOLYLINE - 5 -98 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --73.9383113190201868 - 20 --24.416045492239089 - 10 --72.7383113190201129 - 20 --24.6827454922390643 - 10 --72.7383113190201129 - 20 --24.1493454922390605 - 10 --73.9383113190201868 - 20 --24.416045492239089 - 0 -LINE - 5 -99 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --98.6883113190201726 - 20 --9.416045492239089 - 30 -0.0 - 11 --91.93831131902013 - 21 --9.416045492239089 - 31 -0.0 - 0 -LWPOLYLINE - 5 -9A - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --98.6883113190201726 - 20 --9.416045492239089 - 10 --97.4883113190201982 - 20 --9.6827454922390643 - 10 --97.4883113190201982 - 20 --9.1493454922390605 - 10 --98.6883113190201726 - 20 --9.416045492239089 - 0 -LINE - 5 -9B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --100.9383113190201584 - 20 --0.4160454922390677 - 30 -0.0 - 11 --100.9383113190201584 - 21 --7.1660454922390571 - 31 -0.0 - 0 -LWPOLYLINE - 5 -9C - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --100.9383113190201584 - 20 --7.1660454922390571 - 10 --100.6716113190201156 - 20 --5.9660454922390826 - 10 --101.2050113190201728 - 20 --5.9660454922390826 - 10 --100.9383113190201584 - 20 --7.1660454922390571 - 0 -LINE - 5 -9D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --25.9383113190201513 - 20 --55.9160454922390571 - 30 -0.0 - 11 --25.9383113190201513 - 21 --52.916045492239121 - 31 -0.0 - 0 -LWPOLYLINE - 5 -9E - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --25.9383113190201513 - 20 --52.916045492239121 - 10 --26.2050113190201799 - 20 --54.1160454922390954 - 10 --25.6716113190201227 - 20 --54.1160454922390954 - 10 --25.9383113190201513 - 20 --52.916045492239121 - 0 -LINE - 5 -9F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --82.9383113190201016 - 20 --24.416045492239089 - 30 -0.0 - 11 --91.93831131902013 - 21 --24.416045492239089 - 31 -0.0 - 0 -LWPOLYLINE - 5 -A0 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --91.93831131902013 - 20 --24.416045492239089 - 10 --90.7383113190201556 - 20 --24.6827454922390643 - 10 --90.7383113190201556 - 20 --24.1493454922390605 - 10 --91.93831131902013 - 20 --24.416045492239089 - 0 -LINE - 5 -A1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --91.93831131902013 - 20 --24.416045492239089 - 30 -0.0 - 11 --108.4383113190201584 - 21 --24.416045492239089 - 31 -0.0 - 0 -LWPOLYLINE - 5 -A2 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --108.4383113190201584 - 20 --24.416045492239089 - 10 --107.2383113190201698 - 20 --24.6827454922390643 - 10 --107.2383113190201698 - 20 --24.1493454922390605 - 10 --108.4383113190201584 - 20 --24.416045492239089 - 0 -LINE - 5 -A3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --103.18831131902013 - 20 --9.416045492239089 - 30 -0.0 - 11 --108.4383113190201584 - 21 --9.416045492239089 - 31 -0.0 - 0 -LWPOLYLINE - 5 -A4 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --108.4383113190201584 - 20 --9.416045492239089 - 10 --107.2383113190201698 - 20 --9.6827454922390643 - 10 --107.2383113190201698 - 20 --9.1493454922390605 - 10 --108.4383113190201584 - 20 --9.416045492239089 - 0 -LINE - 5 -A5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --91.93831131902013 - 20 --9.416045492239089 - 30 -0.0 - 11 --91.93831131902013 - 21 --24.416045492239089 - 31 -0.0 - 0 -ARC - 5 -A6 -100 -AcDbEntity - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --25.9383113190201513 - 20 --42.852980492239098 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -53.1301020000000008 - 51 -126.8698980000000063 - 0 -ARC - 5 -A7 -100 -AcDbEntity - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --22.0631813190201669 - 20 --38.1839604922390663 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -129.1025710000000117 - 51 -184.5002479999999991 - 0 -ARC - 5 -A8 -100 -AcDbEntity - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --29.8134413190201357 - 20 --38.1839604922390663 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -355.4997520000000009 - 51 -410.8974289999999883 - 0 -LINE - 5 -A9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --23.6883113190201726 - 20 --38.6660454922390784 - 30 -0.0 - 11 --23.6883113190201726 - 21 --39.8529804922390554 - 31 -0.0 - 0 -LINE - 5 -AA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --28.18831131902013 - 20 --38.6660454922390784 - 30 -0.0 - 11 --28.18831131902013 - 21 --39.8529804922390554 - 31 -0.0 - 0 -LINE - 5 -AB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --108.4383113190201584 - 20 --43.9160454922390997 - 30 -0.0 - 11 --27.4383113190201726 - 21 --43.9160454922390997 - 31 -0.0 - 0 -LINE - 5 -AC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --27.4383113190201726 - 20 --43.9160454922390997 - 30 -0.0 - 11 --27.4383113190201726 - 21 --39.4160454922390926 - 31 -0.0 - 0 -LWPOLYLINE - 5 -AD - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --27.4383113190201726 - 20 --39.4160454922390926 - 10 --27.7050113190202012 - 20 --40.616045492239067 - 10 --27.171611319020144 - 20 --40.616045492239067 - 10 --27.4383113190201726 - 20 --39.4160454922390926 - 0 -LINE - 5 -AE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --24.43831131902013 - 20 --46.9160454922390926 - 30 -0.0 - 11 --24.43831131902013 - 21 --39.4160454922390926 - 31 -0.0 - 0 -LWPOLYLINE - 5 -AF - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --24.43831131902013 - 20 --39.4160454922390926 - 10 --24.7050113190201586 - 20 --40.616045492239067 - 10 --24.1716113190201014 - 20 --40.616045492239067 - 10 --24.43831131902013 - 20 --39.4160454922390926 - 0 -LINE - 5 -B0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --9.43831131902013 - 20 --55.9160454922390571 - 30 -0.0 - 11 --3.4383113190201513 - 21 --55.9160454922390571 - 31 -0.0 - 0 -LWPOLYLINE - 5 -B1 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --9.43831131902013 - 20 --55.9160454922390571 - 10 --8.2383113190201556 - 20 --56.1827454922390856 - 10 --8.2383113190201556 - 20 --55.6493454922390285 - 10 --9.43831131902013 - 20 --55.9160454922390571 - 0 -LINE - 5 -B2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --69.43831131902013 - 20 -11.5839545077608861 - 30 -0.0 - 11 --69.43831131902013 - 21 --70.91604549223905 - 31 -0.0 - 0 -MTEXT - 5 -B3 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --25.9383113190201513 - 20 -7.0839545077609287 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -update-counters() - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -B4 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --97.9383113190201016 - 20 -7.0839545077609287 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -capture-position() - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -B5 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --108.4383113190201584 - 20 --66.4160454922391068 - 30 -0.0 - 40 -3.0 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -encoder.0 - 7 -STYLE1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -B6 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -B6 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -B8 - 3 -HIDETEXT -350 -B7 - 0 -DICTIONARYVAR - 5 -B7 -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -B8 -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/hal/images/hal_parport_block_diag.dxf b/docs/src/hal/images/hal_parport_block_diag.dxf deleted file mode 100644 index 330ce1abeca..00000000000 --- a/docs/src/hal/images/hal_parport_block_diag.dxf +++ /dev/null @@ -1,27668 +0,0 @@ -999 -dxflib 2.0.4.8 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$USERR4 - 40 -0.0 - 9 -$AXISUNIT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMTAD - 70 -0 - 9 -$VISRETAIN - 70 -0 - 9 -$TILEMODE - 70 -1 - 9 -$SHADEDIF - 70 -70 - 9 -$USERR5 - 40 -0.0 - 9 -$UCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$ATTREQ - 70 -1 - 9 -$CHAMFERA - 40 -0.0 - 9 -$MENU - 1 -acad - 9 -$CLAYER - 8 -0 - 9 -$UCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$CHAMFERB - 40 -0.0 - 9 -$TRACEWID - 40 -0.05 - 9 -$REGENMODE - 70 -1 - 9 -$ORTHOMODE - 70 -0 - 9 -$EXTMIN - 10 -4.3365 - 20 --1.9490000000000001 - 30 -0.0 - 9 -$DIMADEC - 70 -0 - 9 -$GRIDUNIT - 10 -0.0 - 20 -0.0 - 9 -$DIMASZ - 40 -0.18 - 9 -$PUCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$ANGBASE - 50 -0.0 - 9 -$USRTIMER - 70 -1 - 9 -$SKETCHINC - 40 -0.1 - 9 -$DIMTFAC - 40 -1.0 - 9 -$DIMSAH - 70 -0 - 9 -$DIMALT - 70 -0 - 9 -$DIMSHO - 70 -1 - 9 -$DIMGAP - 40 -0.09 - 9 -$PUCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$SURFTYPE - 70 -6 - 9 -$SPLFRAME - 70 -0 - 9 -$AXISMODE - 70 -0 - 9 -$DIMTSZ - 40 -0.0 - 9 -$LIMMIN - 10 -0.0 - 20 -0.0 - 9 -$DWGCODEPAGE - 3 -dos850 - 9 -$SURFTAB1 - 70 -6 - 9 -$BLIPMODE - 70 -1 - 9 -$LUNITS - 70 -2 - 9 -$AUPREC - 70 -0 - 9 -$SPLINESEGS - 70 -8 - 9 -$UNITMODE - 70 -0 - 9 -$USERI1 - 70 -0 - 9 -$SURFTAB2 - 70 -6 - 9 -$SKPOLY - 70 -0 - 9 -$ELEVATION - 40 -0.0 - 9 -$DIMCEN - 40 -0.09 - 9 -$DIMRND - 40 -0.0 - 9 -$INSBASE - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$USERI2 - 70 -0 - 9 -$UCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PELEVATION - 40 -0.0 - 9 -$TEXTSIZE - 40 -0.2 - 9 -$DRAGMODE - 70 -2 - 9 -$FILLMODE - 70 -1 - 9 -$EXTMAX - 10 -17.1634999999999991 - 20 -7.9489999999999998 - 30 -0.0 - 9 -$INSUNITS - 70 -4 - 9 -$DIMEXO - 40 -0.0625 - 9 -$USERI3 - 70 -0 - 9 -$SURFU - 70 -6 - 9 -$ANGDIR - 70 -0 - 9 -$TDUSRTIMER - 40 -0.0 - 9 -$DIMZIN - 70 -0 - 9 -$DIMDLE - 40 -0.0 - 9 -$DIMSCALE - 40 -1.0 - 9 -$WORLDVIEW - 70 -1 - 9 -$USERI4 - 70 -0 - 9 -$SURFV - 70 -6 - 9 -$OSMODE - 70 -0 - 9 -$QTEXTMODE - 70 -0 - 9 -$LIMMAX - 10 -0.0 - 20 -0.0 - 9 -$DIMLUNIT - 70 -2 - 9 -$USERI5 - 70 -0 - 9 -$HANDLING - 70 -1 - 9 -$PDMODE - 70 -0 - 9 -$LIMCHECK - 70 -0 - 9 -$THICKNESS - 40 -0.0 - 9 -$DIMSE1 - 70 -0 - 9 -$DIMLIM - 70 -0 - 9 -$ATTMODE - 70 -1 - 9 -$GRIDMODE - 70 -1 - 9 -$DIMTXT - 40 -0.18 - 9 -$PEXTMAX - 10 --100000000000000000000.0 - 20 --100000000000000000000.0 - 30 --100000000000000000000.0 - 9 -$PEXTMIN - 10 -100000000000000000000.0 - 20 -100000000000000000000.0 - 30 -100000000000000000000.0 - 9 -$PUCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$SPLINETYPE - 70 -6 - 9 -$TDINDWG - 40 -0.0 - 9 -$DIMSOXD - 70 -0 - 9 -$DIMLFAC - 40 -1.0 - 9 -$DIMSE2 - 70 -0 - 9 -$DIMTOH - 70 -1 - 9 -$CELTYPE - 6 -CONTINUOUS - 9 -$LUPREC - 70 -4 - 9 -$PLIMCHECK - 70 -0 - 9 -$PLINEWID - 40 -0.0 - 9 -$DIMSTYLE - 2 -STANDARD - 9 -$DIMTVP - 40 -0.0 - 9 -$DIMASO - 70 -1 - 9 -$DIMTM - 40 -0.0 - 9 -$DIMDLI - 40 -0.38 - 9 -$CECOLOR - 62 -256 - 9 -$TREEDEPTH - 70 -3020 - 9 -$MAXACTVP - 70 -16 - 9 -$TDUPDATE - 40 -0.0 - 9 -$FILLETRAD - 40 -0.0 - 9 -$DIMCLRT - 70 -0 - 9 -$DIMALTD - 70 -2 - 9 -$DIMTIH - 70 -1 - 9 -$LTSCALE - 40 -1.0 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$PLIMMAX - 10 -210.0 - 20 -160.0 - 9 -$PINSBASE - 10 -90.150658220184738 - 20 -149.1481837643292465 - 30 -0.0 - 9 -$USERR1 - 40 -0.0 - 9 -$ATTDIA - 70 -0 - 9 -$PDSIZE - 40 -0.0 - 9 -$DIMCLRD - 70 -0 - 9 -$DIMEXE - 40 -0.18 - 9 -$PSLTSCALE - 70 -0 - 9 -$PLINEGEN - 70 -1 - 9 -$SHADEDGE - 70 -3 - 9 -$USERR2 - 40 -0.0 - 9 -$COORDS - 70 -0 - 9 -$TDCREATE - 40 -0.0 - 9 -$DIMCLRE - 70 -0 - 9 -$DIMTOFL - 70 -0 - 9 -$DIMALTF - 40 -25.3999999999999986 - 9 -$DIMTOL - 70 -0 - 9 -$DIMTP - 40 -0.0 - 9 -$TEXTSTYLE - 7 -STANDARD - 9 -$DIMAUNIT - 70 -0 - 9 -$USERR3 - 40 -0.0 - 9 -$DIMTIX - 70 -0 - 9 -$MIRRTEXT - 70 -1 - 9 -$AUNITS - 70 -0 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -7 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -MERGE - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -STANDARD - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PINS - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PARAMS - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -47 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -OUTLINE - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -48 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -INTERNALS - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -0.75 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -0.18 - 42 -0.0625 - 43 -3.75 - 44 -0.18 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -0.18 -141 -2.5 -143 -0.03937007874016 -147 -0.09 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -49 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --61.6481837643292394 - 30 -0.0 - 11 -23.0993417798152549 - 21 --60.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.0993417798152549 - 20 --60.1481837643292394 - 30 -0.0 - 11 -24.5993417798152478 - 21 --58.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -4B -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --58.6481837643292394 - 30 -0.0 - 11 -44.0993417798152265 - 21 --58.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -4C -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --58.6481837643292394 - 30 -0.0 - 11 -44.0993417798152265 - 21 --61.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --61.6481837643292394 - 30 -0.0 - 11 -24.5993417798152478 - 21 --61.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -4E -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --61.6481837643292394 - 30 -0.0 - 11 -24.5993417798152478 - 21 --61.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -4F -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --58.6481837643292394 - 30 -0.0 - 11 -23.0993417798152549 - 21 --57.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -50 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.0993417798152549 - 20 --57.1481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --55.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -51 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --55.6481837643292394 - 30 -0.0 - 11 -44.0993417798152265 - 21 --55.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -52 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --55.6481837643292394 - 30 -0.0 - 11 -44.0993417798152265 - 21 --58.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -53 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --58.6481837643292394 - 30 -0.0 - 11 -24.5993417798152478 - 21 --58.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -54 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --58.6481837643292394 - 30 -0.0 - 11 -24.5993417798152478 - 21 --58.6481837643292394 - 31 -0.0 - 0 -MTEXT - 5 -55 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --60.1481837643292394 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-8-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -56 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --57.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-8-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -57 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.9743417798152478 - 20 --60.1481837643292394 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -58 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -49.3493417798152549 - 20 --60.1481837643292394 - 10 -53.0993417798152549 - 20 --57.8981837643292394 - 10 -53.0993417798152549 - 20 --62.3981837643292394 - 10 -49.3493417798152549 - 20 --60.1481837643292394 - 10 -49.3493417798152549 - 20 --60.1481837643292394 - 0 -LINE - 5 -59 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --57.1481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --57.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -5A -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --57.1481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --60.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -5B -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --60.1481837643292394 - 30 -0.0 - 11 -53.0993417798152549 - 21 --60.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -5C -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.5993417798152407 - 20 --60.1481837643292394 - 30 -0.0 - 11 -44.0993417798152265 - 21 --60.1481837643292394 - 31 -0.0 - 0 -LWPOLYLINE - 5 -5D - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -59.0993417798152265 - 20 --58.6481837643292394 - 10 -63.5993417798152407 - 20 --56.3981837643292394 - 10 -63.5993417798152407 - 20 --60.8981837643292465 - 10 -59.0993417798152265 - 20 --58.6481837643292394 - 10 -59.0993417798152265 - 20 --58.6481837643292394 - 0 -LINE - 5 -5E -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -59.0993417798152265 - 20 --58.6481837643292394 - 30 -0.0 - 11 -56.0993417798152407 - 21 --58.6481837643292394 - 31 -0.0 - 0 -CIRCLE - 5 -5F -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --58.6481837643292394 - 30 -0.0 - 40 -0.3 - 0 -LINE - 5 -60 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --69.1481837643292465 - 30 -0.0 - 11 -23.0993417798152549 - 21 --67.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -61 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.0993417798152549 - 20 --67.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --66.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -62 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --66.1481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --66.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -63 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --66.1481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --69.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -64 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --69.1481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --69.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -65 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --69.1481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --69.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -66 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --66.1481837643292465 - 30 -0.0 - 11 -23.0993417798152549 - 21 --64.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -67 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.0993417798152549 - 20 --64.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --63.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -68 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --63.1481837643292394 - 30 -0.0 - 11 -44.0993417798152265 - 21 --63.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -69 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --63.1481837643292394 - 30 -0.0 - 11 -44.0993417798152265 - 21 --66.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -6A -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --66.1481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --66.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -6B -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --66.1481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --66.1481837643292465 - 31 -0.0 - 0 -MTEXT - 5 -6C -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --67.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-7-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6D -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --64.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-7-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -6E -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.9743417798152478 - 20 --67.6481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -6F - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -49.3493417798152549 - 20 --67.6481837643292465 - 10 -53.0993417798152549 - 20 --65.3981837643292465 - 10 -53.0993417798152549 - 20 --69.8981837643292323 - 10 -49.3493417798152549 - 20 --67.6481837643292465 - 10 -49.3493417798152549 - 20 --67.6481837643292465 - 0 -LINE - 5 -70 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --64.6481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --64.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -71 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --64.6481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --67.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -72 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --67.6481837643292465 - 30 -0.0 - 11 -53.0993417798152549 - 21 --67.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -73 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.5993417798152407 - 20 --67.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --67.6481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -74 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -59.0993417798152265 - 20 --66.1481837643292465 - 10 -63.5993417798152407 - 20 --63.8981837643292394 - 10 -63.5993417798152407 - 20 --68.3981837643292465 - 10 -59.0993417798152265 - 20 --66.1481837643292465 - 10 -59.0993417798152265 - 20 --66.1481837643292465 - 0 -LINE - 5 -75 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -59.0993417798152265 - 20 --66.1481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --66.1481837643292465 - 31 -0.0 - 0 -CIRCLE - 5 -76 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --66.1481837643292465 - 30 -0.0 - 40 -0.3 - 0 -LINE - 5 -77 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --76.6481837643292465 - 30 -0.0 - 11 -23.0993417798152549 - 21 --75.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -78 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.0993417798152549 - 20 --75.1481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --73.6481837643292323 - 31 -0.0 - 0 -LINE - 5 -79 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --73.6481837643292323 - 30 -0.0 - 11 -44.0993417798152265 - 21 --73.6481837643292323 - 31 -0.0 - 0 -LINE - 5 -7A -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --73.6481837643292323 - 30 -0.0 - 11 -44.0993417798152265 - 21 --76.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -7B -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --76.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --76.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -7C -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --76.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --76.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -7D -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --73.6481837643292323 - 30 -0.0 - 11 -23.0993417798152549 - 21 --72.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -7E -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.0993417798152549 - 20 --72.1481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --70.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -7F -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --70.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --70.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -80 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --70.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --73.6481837643292323 - 31 -0.0 - 0 -LINE - 5 -81 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --73.6481837643292323 - 30 -0.0 - 11 -24.5993417798152478 - 21 --73.6481837643292323 - 31 -0.0 - 0 -LINE - 5 -82 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --73.6481837643292323 - 30 -0.0 - 11 -24.5993417798152478 - 21 --73.6481837643292323 - 31 -0.0 - 0 -MTEXT - 5 -83 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --75.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-6-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -84 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --72.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-6-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -85 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.9743417798152478 - 20 --75.1481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -86 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -49.3493417798152549 - 20 --75.1481837643292465 - 10 -53.0993417798152549 - 20 --72.8981837643292465 - 10 -53.0993417798152549 - 20 --77.3981837643292323 - 10 -49.3493417798152549 - 20 --75.1481837643292465 - 10 -49.3493417798152549 - 20 --75.1481837643292465 - 0 -LINE - 5 -87 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --72.1481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --72.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -88 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --72.1481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --75.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -89 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --75.1481837643292465 - 30 -0.0 - 11 -53.0993417798152549 - 21 --75.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -8A -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.5993417798152407 - 20 --75.1481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --75.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -8B - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -59.0993417798152265 - 20 --73.6481837643292323 - 10 -63.5993417798152407 - 20 --71.3981837643292323 - 10 -63.5993417798152407 - 20 --75.8981837643292465 - 10 -59.0993417798152265 - 20 --73.6481837643292323 - 10 -59.0993417798152265 - 20 --73.6481837643292323 - 0 -LINE - 5 -8C -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -59.0993417798152265 - 20 --73.6481837643292323 - 30 -0.0 - 11 -56.0993417798152407 - 21 --73.6481837643292323 - 31 -0.0 - 0 -CIRCLE - 5 -8D -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --73.6481837643292323 - 30 -0.0 - 40 -0.3 - 0 -LINE - 5 -8E -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --84.1481837643292465 - 30 -0.0 - 11 -23.0993417798152549 - 21 --82.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -8F -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.0993417798152549 - 20 --82.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --81.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -90 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --81.1481837643292323 - 30 -0.0 - 11 -44.0993417798152265 - 21 --81.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -91 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --81.1481837643292323 - 30 -0.0 - 11 -44.0993417798152265 - 21 --84.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -92 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --84.1481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --84.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -93 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --84.1481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --84.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -94 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --81.1481837643292323 - 30 -0.0 - 11 -23.0993417798152549 - 21 --79.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -95 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.0993417798152549 - 20 --79.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --78.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -96 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --78.1481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --78.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -97 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --78.1481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --81.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -98 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --81.1481837643292323 - 30 -0.0 - 11 -24.5993417798152478 - 21 --81.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -99 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --81.1481837643292323 - 30 -0.0 - 11 -24.5993417798152478 - 21 --81.1481837643292323 - 31 -0.0 - 0 -MTEXT - 5 -9A -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --82.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-5-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -9B -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --79.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-5-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -9C -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.9743417798152478 - 20 --82.6481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -9D - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -49.3493417798152549 - 20 --82.6481837643292465 - 10 -53.0993417798152549 - 20 --80.3981837643292465 - 10 -53.0993417798152549 - 20 --84.8981837643292465 - 10 -49.3493417798152549 - 20 --82.6481837643292465 - 10 -49.3493417798152549 - 20 --82.6481837643292465 - 0 -LINE - 5 -9E -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --79.6481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --79.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -9F -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --79.6481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --82.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -A0 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --82.6481837643292465 - 30 -0.0 - 11 -53.0993417798152549 - 21 --82.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -A1 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.5993417798152407 - 20 --82.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --82.6481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -A2 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -59.0993417798152265 - 20 --81.1481837643292323 - 10 -63.5993417798152407 - 20 --78.8981837643292465 - 10 -63.5993417798152407 - 20 --83.3981837643292465 - 10 -59.0993417798152265 - 20 --81.1481837643292323 - 10 -59.0993417798152265 - 20 --81.1481837643292323 - 0 -LINE - 5 -A3 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -59.0993417798152265 - 20 --81.1481837643292323 - 30 -0.0 - 11 -56.0993417798152407 - 21 --81.1481837643292323 - 31 -0.0 - 0 -CIRCLE - 5 -A4 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --81.1481837643292323 - 30 -0.0 - 40 -0.3 - 0 -LINE - 5 -A5 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --91.6481837643292465 - 30 -0.0 - 11 -23.0993417798152549 - 21 --90.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -A6 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.0993417798152549 - 20 --90.1481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --88.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -A7 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --88.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --88.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -A8 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --88.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --91.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -A9 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --91.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --91.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -AA -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --91.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --91.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -AB -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --88.6481837643292465 - 30 -0.0 - 11 -23.0993417798152549 - 21 --87.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -AC -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.0993417798152549 - 20 --87.1481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --85.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -AD -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --85.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --85.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -AE -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --85.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --88.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -AF -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --88.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --88.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -B0 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --88.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --88.6481837643292465 - 31 -0.0 - 0 -MTEXT - 5 -B1 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --90.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-4-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -B2 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --87.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-4-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -B3 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.9743417798152478 - 20 --90.1481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -B4 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -49.3493417798152549 - 20 --90.1481837643292465 - 10 -53.0993417798152549 - 20 --87.8981837643292465 - 10 -53.0993417798152549 - 20 --92.3981837643292465 - 10 -49.3493417798152549 - 20 --90.1481837643292465 - 10 -49.3493417798152549 - 20 --90.1481837643292465 - 0 -LINE - 5 -B5 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --87.1481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --87.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -B6 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --87.1481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --90.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -B7 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --90.1481837643292465 - 30 -0.0 - 11 -53.0993417798152549 - 21 --90.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -B8 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.5993417798152407 - 20 --90.1481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --90.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -B9 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -59.0993417798152265 - 20 --88.6481837643292465 - 10 -63.5993417798152407 - 20 --86.3981837643292465 - 10 -63.5993417798152407 - 20 --90.8981837643292465 - 10 -59.0993417798152265 - 20 --88.6481837643292465 - 10 -59.0993417798152265 - 20 --88.6481837643292465 - 0 -LINE - 5 -BA -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -59.0993417798152265 - 20 --88.6481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --88.6481837643292465 - 31 -0.0 - 0 -CIRCLE - 5 -BB -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --88.6481837643292465 - 30 -0.0 - 40 -0.3 - 0 -LINE - 5 -BC -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --99.1481837643292465 - 30 -0.0 - 11 -23.0993417798152549 - 21 --97.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -BD -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.0993417798152549 - 20 --97.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --96.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -BE -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --96.1481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --96.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -BF -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --96.1481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --99.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -C0 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --99.1481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --99.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -C1 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --99.1481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --99.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -C2 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --96.1481837643292465 - 30 -0.0 - 11 -23.0993417798152549 - 21 --94.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -C3 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.0993417798152549 - 20 --94.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --93.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -C4 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --93.1481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --93.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -C5 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --93.1481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --96.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -C6 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --96.1481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --96.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -C7 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --96.1481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --96.1481837643292465 - 31 -0.0 - 0 -MTEXT - 5 -C8 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --97.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-3-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -C9 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --94.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-3-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -CA -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.9743417798152478 - 20 --97.6481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -CB - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -49.3493417798152549 - 20 --97.6481837643292465 - 10 -53.0993417798152549 - 20 --95.3981837643292465 - 10 -53.0993417798152549 - 20 --99.8981837643292465 - 10 -49.3493417798152549 - 20 --97.6481837643292465 - 10 -49.3493417798152549 - 20 --97.6481837643292465 - 0 -LINE - 5 -CC -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --94.6481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --94.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -CD -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --94.6481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --97.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -CE -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --97.6481837643292465 - 30 -0.0 - 11 -53.0993417798152549 - 21 --97.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -CF -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.5993417798152407 - 20 --97.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --97.6481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -D0 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -59.0993417798152265 - 20 --96.1481837643292465 - 10 -63.5993417798152407 - 20 --93.8981837643292465 - 10 -63.5993417798152407 - 20 --98.3981837643292323 - 10 -59.0993417798152265 - 20 --96.1481837643292465 - 10 -59.0993417798152265 - 20 --96.1481837643292465 - 0 -LINE - 5 -D1 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -59.0993417798152265 - 20 --96.1481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --96.1481837643292465 - 31 -0.0 - 0 -CIRCLE - 5 -D2 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --96.1481837643292465 - 30 -0.0 - 40 -0.3 - 0 -LINE - 5 -D3 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --106.6481837643292465 - 30 -0.0 - 11 -23.0993417798152549 - 21 --105.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -D4 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.0993417798152549 - 20 --105.1481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --103.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -D5 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --103.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --103.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -D6 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --103.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --106.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -D7 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --106.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --106.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -D8 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --106.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --106.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -D9 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --103.6481837643292465 - 30 -0.0 - 11 -23.0993417798152549 - 21 --102.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -DA -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.0993417798152549 - 20 --102.1481837643292323 - 30 -0.0 - 11 -24.5993417798152478 - 21 --100.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -DB -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --100.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --100.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -DC -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --100.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --103.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -DD -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --103.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --103.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -DE -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --103.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --103.6481837643292465 - 31 -0.0 - 0 -MTEXT - 5 -DF -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --105.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-2-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -E0 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --102.1481837643292323 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-2-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -E1 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.9743417798152478 - 20 --105.1481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -E2 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -49.3493417798152549 - 20 --105.1481837643292465 - 10 -53.0993417798152549 - 20 --102.8981837643292465 - 10 -53.0993417798152549 - 20 --107.3981837643292465 - 10 -49.3493417798152549 - 20 --105.1481837643292465 - 10 -49.3493417798152549 - 20 --105.1481837643292465 - 0 -LINE - 5 -E3 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --102.1481837643292323 - 30 -0.0 - 11 -56.0993417798152407 - 21 --102.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -E4 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --102.1481837643292323 - 30 -0.0 - 11 -56.0993417798152407 - 21 --105.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -E5 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --105.1481837643292465 - 30 -0.0 - 11 -53.0993417798152549 - 21 --105.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -E6 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.5993417798152407 - 20 --105.1481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --105.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -E7 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -59.0993417798152265 - 20 --103.6481837643292465 - 10 -63.5993417798152407 - 20 --101.3981837643292465 - 10 -63.5993417798152407 - 20 --105.8981837643292323 - 10 -59.0993417798152265 - 20 --103.6481837643292465 - 10 -59.0993417798152265 - 20 --103.6481837643292465 - 0 -LINE - 5 -E8 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -59.0993417798152265 - 20 --103.6481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --103.6481837643292465 - 31 -0.0 - 0 -CIRCLE - 5 -E9 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --103.6481837643292465 - 30 -0.0 - 40 -0.3 - 0 -LINE - 5 -EA -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --54.1481837643292394 - 30 -0.0 - 11 -23.0993417798152549 - 21 --52.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -EB -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.0993417798152549 - 20 --52.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --51.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -EC -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --51.1481837643292323 - 30 -0.0 - 11 -44.0993417798152265 - 21 --51.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -ED -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --51.1481837643292323 - 30 -0.0 - 11 -44.0993417798152265 - 21 --54.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -EE -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --54.1481837643292394 - 30 -0.0 - 11 -24.5993417798152478 - 21 --54.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -EF -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --54.1481837643292394 - 30 -0.0 - 11 -24.5993417798152478 - 21 --54.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -F0 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --51.1481837643292323 - 30 -0.0 - 11 -23.0993417798152549 - 21 --49.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -F1 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.0993417798152549 - 20 --49.6481837643292465 - 30 -0.0 - 11 -24.5993417798152478 - 21 --48.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -F2 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --48.1481837643292323 - 30 -0.0 - 11 -44.0993417798152265 - 21 --48.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -F3 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --48.1481837643292323 - 30 -0.0 - 11 -44.0993417798152265 - 21 --51.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -F4 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --51.1481837643292323 - 30 -0.0 - 11 -24.5993417798152478 - 21 --51.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -F5 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5993417798152478 - 20 --51.1481837643292323 - 30 -0.0 - 11 -24.5993417798152478 - 21 --51.1481837643292323 - 31 -0.0 - 0 -MTEXT - 5 -F6 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --52.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-9-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -F7 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --49.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-9-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -F8 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.9743417798152478 - 20 --52.6481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -F9 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -49.3493417798152549 - 20 --52.6481837643292465 - 10 -53.0993417798152549 - 20 --50.3981837643292394 - 10 -53.0993417798152549 - 20 --54.8981837643292394 - 10 -49.3493417798152549 - 20 --52.6481837643292465 - 10 -49.3493417798152549 - 20 --52.6481837643292465 - 0 -LINE - 5 -FA -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --49.6481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --49.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -FB -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --49.6481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --52.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -FC -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --52.6481837643292465 - 30 -0.0 - 11 -53.0993417798152549 - 21 --52.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -FD -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.5993417798152407 - 20 --52.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --52.6481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -FE - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -59.0993417798152265 - 20 --51.1481837643292323 - 10 -63.5993417798152407 - 20 --48.8981837643292465 - 10 -63.5993417798152407 - 20 --53.3981837643292465 - 10 -59.0993417798152265 - 20 --51.1481837643292323 - 10 -59.0993417798152265 - 20 --51.1481837643292323 - 0 -LINE - 5 -FF -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -59.0993417798152265 - 20 --51.1481837643292323 - 30 -0.0 - 11 -56.0993417798152407 - 21 --51.1481837643292323 - 31 -0.0 - 0 -CIRCLE - 5 -100 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --51.1481837643292323 - 30 -0.0 - 40 -0.3 - 0 -LWPOLYLINE - 5 -101 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -24.5993417798152478 - 20 --16.6481837643292394 - 10 -23.0993417798152549 - 20 --15.1481837643292465 - 10 -24.5993417798152478 - 20 --13.6481837643292394 - 10 -44.0993417798152265 - 20 --13.6481837643292394 - 10 -44.0993417798152265 - 20 --16.6481837643292394 - 10 -24.5993417798152478 - 20 --16.6481837643292394 - 10 -24.5993417798152478 - 20 --16.6481837643292394 - 0 -LWPOLYLINE - 5 -102 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -24.5993417798152478 - 20 --13.6481837643292394 - 10 -23.0993417798152549 - 20 --12.1481837643292394 - 10 -24.5993417798152478 - 20 --10.6481837643292323 - 10 -44.0993417798152265 - 20 --10.6481837643292323 - 10 -44.0993417798152265 - 20 --13.6481837643292394 - 10 -24.5993417798152478 - 20 --13.6481837643292394 - 10 -24.5993417798152478 - 20 --13.6481837643292394 - 0 -MTEXT - 5 -103 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --15.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-15-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -104 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --12.1481837643292394 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-15-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -105 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.9743417798152478 - 20 --15.1481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -106 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -49.3493417798152549 - 20 --15.1481837643292465 - 10 -53.0993417798152549 - 20 --12.8981837643292394 - 10 -53.0993417798152549 - 20 --17.3981837643292394 - 10 -49.3493417798152549 - 20 --15.1481837643292465 - 10 -49.3493417798152549 - 20 --15.1481837643292465 - 0 -LINE - 5 -107 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --12.1481837643292394 - 30 -0.0 - 11 -56.0993417798152407 - 21 --12.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -108 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --12.1481837643292394 - 30 -0.0 - 11 -56.0993417798152407 - 21 --15.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -109 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --15.1481837643292465 - 30 -0.0 - 11 -53.0993417798152549 - 21 --15.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -10A -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.5993417798152407 - 20 --15.1481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --15.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -10B - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -59.0993417798152265 - 20 --13.6481837643292394 - 10 -63.5993417798152407 - 20 --11.3981837643292465 - 10 -63.5993417798152407 - 20 --15.8981837643292394 - 10 -59.0993417798152265 - 20 --13.6481837643292394 - 10 -59.0993417798152265 - 20 --13.6481837643292394 - 0 -LINE - 5 -10C -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -59.0993417798152265 - 20 --13.6481837643292394 - 30 -0.0 - 11 -56.0993417798152407 - 21 --13.6481837643292394 - 31 -0.0 - 0 -CIRCLE - 5 -10D -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --13.6481837643292394 - 30 -0.0 - 40 -0.3 - 0 -LWPOLYLINE - 5 -10E - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -24.5993417798152478 - 20 --24.1481837643292394 - 10 -23.0993417798152549 - 20 --22.6481837643292465 - 10 -24.5993417798152478 - 20 --21.1481837643292394 - 10 -44.0993417798152265 - 20 --21.1481837643292394 - 10 -44.0993417798152265 - 20 --24.1481837643292394 - 10 -24.5993417798152478 - 20 --24.1481837643292394 - 10 -24.5993417798152478 - 20 --24.1481837643292394 - 0 -LWPOLYLINE - 5 -10F - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -24.5993417798152478 - 20 --21.1481837643292394 - 10 -23.0993417798152549 - 20 --19.6481837643292394 - 10 -24.5993417798152478 - 20 --18.1481837643292323 - 10 -44.0993417798152265 - 20 --18.1481837643292323 - 10 -44.0993417798152265 - 20 --21.1481837643292394 - 10 -24.5993417798152478 - 20 --21.1481837643292394 - 10 -24.5993417798152478 - 20 --21.1481837643292394 - 0 -MTEXT - 5 -110 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --22.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-13-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -111 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --19.6481837643292394 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-13-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -112 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.9743417798152478 - 20 --22.6481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -113 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -49.3493417798152549 - 20 --22.6481837643292465 - 10 -53.0993417798152549 - 20 --20.3981837643292394 - 10 -53.0993417798152549 - 20 --24.8981837643292394 - 10 -49.3493417798152549 - 20 --22.6481837643292465 - 10 -49.3493417798152549 - 20 --22.6481837643292465 - 0 -LINE - 5 -114 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --19.6481837643292394 - 30 -0.0 - 11 -56.0993417798152407 - 21 --19.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -115 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --19.6481837643292394 - 30 -0.0 - 11 -56.0993417798152407 - 21 --22.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -116 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --22.6481837643292465 - 30 -0.0 - 11 -53.0993417798152549 - 21 --22.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -117 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.5993417798152407 - 20 --22.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --22.6481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -118 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -59.0993417798152265 - 20 --21.1481837643292394 - 10 -63.5993417798152407 - 20 --18.8981837643292465 - 10 -63.5993417798152407 - 20 --23.3981837643292394 - 10 -59.0993417798152265 - 20 --21.1481837643292394 - 10 -59.0993417798152265 - 20 --21.1481837643292394 - 0 -LINE - 5 -119 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -59.0993417798152265 - 20 --21.1481837643292394 - 30 -0.0 - 11 -56.0993417798152407 - 21 --21.1481837643292394 - 31 -0.0 - 0 -CIRCLE - 5 -11A -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --21.1481837643292394 - 30 -0.0 - 40 -0.3 - 0 -LWPOLYLINE - 5 -11B - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -24.5993417798152478 - 20 --31.6481837643292394 - 10 -23.0993417798152549 - 20 --30.1481837643292465 - 10 -24.5993417798152478 - 20 --28.6481837643292394 - 10 -44.0993417798152265 - 20 --28.6481837643292394 - 10 -44.0993417798152265 - 20 --31.6481837643292394 - 10 -24.5993417798152478 - 20 --31.6481837643292394 - 10 -24.5993417798152478 - 20 --31.6481837643292394 - 0 -LWPOLYLINE - 5 -11C - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -24.5993417798152478 - 20 --28.6481837643292394 - 10 -23.0993417798152549 - 20 --27.1481837643292394 - 10 -24.5993417798152478 - 20 --25.6481837643292323 - 10 -44.0993417798152265 - 20 --25.6481837643292323 - 10 -44.0993417798152265 - 20 --28.6481837643292394 - 10 -24.5993417798152478 - 20 --28.6481837643292394 - 10 -24.5993417798152478 - 20 --28.6481837643292394 - 0 -MTEXT - 5 -11D -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --30.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-12-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -11E -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --27.1481837643292394 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-12-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -11F -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.9743417798152478 - 20 --30.1481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -120 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -49.3493417798152549 - 20 --30.1481837643292465 - 10 -53.0993417798152549 - 20 --27.8981837643292394 - 10 -53.0993417798152549 - 20 --32.3981837643292394 - 10 -49.3493417798152549 - 20 --30.1481837643292465 - 10 -49.3493417798152549 - 20 --30.1481837643292465 - 0 -LINE - 5 -121 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --27.1481837643292394 - 30 -0.0 - 11 -56.0993417798152407 - 21 --27.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -122 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --27.1481837643292394 - 30 -0.0 - 11 -56.0993417798152407 - 21 --30.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -123 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --30.1481837643292465 - 30 -0.0 - 11 -53.0993417798152549 - 21 --30.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -124 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.5993417798152407 - 20 --30.1481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --30.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -125 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -59.0993417798152265 - 20 --28.6481837643292394 - 10 -63.5993417798152407 - 20 --26.3981837643292465 - 10 -63.5993417798152407 - 20 --30.8981837643292394 - 10 -59.0993417798152265 - 20 --28.6481837643292394 - 10 -59.0993417798152265 - 20 --28.6481837643292394 - 0 -LINE - 5 -126 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -59.0993417798152265 - 20 --28.6481837643292394 - 30 -0.0 - 11 -56.0993417798152407 - 21 --28.6481837643292394 - 31 -0.0 - 0 -CIRCLE - 5 -127 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --28.6481837643292394 - 30 -0.0 - 40 -0.3 - 0 -LWPOLYLINE - 5 -128 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -24.5993417798152478 - 20 --39.1481837643292394 - 10 -23.0993417798152549 - 20 --37.6481837643292465 - 10 -24.5993417798152478 - 20 --36.1481837643292394 - 10 -44.0993417798152265 - 20 --36.1481837643292394 - 10 -44.0993417798152265 - 20 --39.1481837643292394 - 10 -24.5993417798152478 - 20 --39.1481837643292394 - 10 -24.5993417798152478 - 20 --39.1481837643292394 - 0 -LWPOLYLINE - 5 -129 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -24.5993417798152478 - 20 --36.1481837643292394 - 10 -23.0993417798152549 - 20 --34.6481837643292394 - 10 -24.5993417798152478 - 20 --33.1481837643292323 - 10 -44.0993417798152265 - 20 --33.1481837643292323 - 10 -44.0993417798152265 - 20 --36.1481837643292394 - 10 -24.5993417798152478 - 20 --36.1481837643292394 - 10 -24.5993417798152478 - 20 --36.1481837643292394 - 0 -MTEXT - 5 -12A -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --37.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-11-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -12B -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --34.6481837643292394 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-11-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -12C -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.9743417798152478 - 20 --37.6481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -12D - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -49.3493417798152549 - 20 --37.6481837643292465 - 10 -53.0993417798152549 - 20 --35.3981837643292394 - 10 -53.0993417798152549 - 20 --39.8981837643292323 - 10 -49.3493417798152549 - 20 --37.6481837643292465 - 10 -49.3493417798152549 - 20 --37.6481837643292465 - 0 -LINE - 5 -12E -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --34.6481837643292394 - 30 -0.0 - 11 -56.0993417798152407 - 21 --34.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -12F -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --34.6481837643292394 - 30 -0.0 - 11 -56.0993417798152407 - 21 --37.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -130 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --37.6481837643292465 - 30 -0.0 - 11 -53.0993417798152549 - 21 --37.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -131 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.5993417798152407 - 20 --37.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --37.6481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -132 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -59.0993417798152265 - 20 --36.1481837643292394 - 10 -63.5993417798152407 - 20 --33.8981837643292465 - 10 -63.5993417798152407 - 20 --38.3981837643292465 - 10 -59.0993417798152265 - 20 --36.1481837643292394 - 10 -59.0993417798152265 - 20 --36.1481837643292394 - 0 -LINE - 5 -133 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -59.0993417798152265 - 20 --36.1481837643292394 - 30 -0.0 - 11 -56.0993417798152407 - 21 --36.1481837643292394 - 31 -0.0 - 0 -CIRCLE - 5 -134 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --36.1481837643292394 - 30 -0.0 - 40 -0.3 - 0 -LWPOLYLINE - 5 -135 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -24.5993417798152478 - 20 --46.6481837643292394 - 10 -23.0993417798152549 - 20 --45.1481837643292465 - 10 -24.5993417798152478 - 20 --43.6481837643292323 - 10 -44.0993417798152265 - 20 --43.6481837643292323 - 10 -44.0993417798152265 - 20 --46.6481837643292394 - 10 -24.5993417798152478 - 20 --46.6481837643292394 - 10 -24.5993417798152478 - 20 --46.6481837643292394 - 0 -LWPOLYLINE - 5 -136 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -24.5993417798152478 - 20 --43.6481837643292323 - 10 -23.0993417798152549 - 20 --42.1481837643292465 - 10 -24.5993417798152478 - 20 --40.6481837643292323 - 10 -44.0993417798152265 - 20 --40.6481837643292323 - 10 -44.0993417798152265 - 20 --43.6481837643292323 - 10 -24.5993417798152478 - 20 --43.6481837643292323 - 10 -24.5993417798152478 - 20 --43.6481837643292323 - 0 -MTEXT - 5 -137 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --45.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-10-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -138 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -33.5993417798152407 - 20 --42.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-10-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -139 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.9743417798152478 - 20 --45.1481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -13A - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -49.3493417798152549 - 20 --45.1481837643292465 - 10 -53.0993417798152549 - 20 --42.8981837643292394 - 10 -53.0993417798152549 - 20 --47.3981837643292323 - 10 -49.3493417798152549 - 20 --45.1481837643292465 - 10 -49.3493417798152549 - 20 --45.1481837643292465 - 0 -LINE - 5 -13B -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.0993417798152265 - 20 --42.1481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --42.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -13C -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --42.1481837643292465 - 30 -0.0 - 11 -56.0993417798152407 - 21 --45.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -13D -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --45.1481837643292465 - 30 -0.0 - 11 -53.0993417798152549 - 21 --45.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -13E -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.5993417798152407 - 20 --45.1481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --45.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -13F - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -59.0993417798152265 - 20 --43.6481837643292323 - 10 -63.5993417798152407 - 20 --41.3981837643292465 - 10 -63.5993417798152407 - 20 --45.8981837643292465 - 10 -59.0993417798152265 - 20 --43.6481837643292323 - 10 -59.0993417798152265 - 20 --43.6481837643292323 - 0 -LINE - 5 -140 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -59.0993417798152265 - 20 --43.6481837643292323 - 30 -0.0 - 11 -56.0993417798152407 - 21 --43.6481837643292323 - 31 -0.0 - 0 -CIRCLE - 5 -141 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -56.0993417798152407 - 20 --43.6481837643292323 - 30 -0.0 - 40 -0.3 - 0 -LINE - 5 -142 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -45.5993417798152549 - 20 --112.6481837643292465 - 30 -0.0 - 11 -45.5993417798152549 - 21 --112.6481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -143 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -23.0993417798152549 - 20 --115.6481837643292465 - 10 -23.0993417798152549 - 20 --112.6481837643292465 - 10 -42.5993417798152336 - 20 --112.6481837643292465 - 10 -44.0993417798152265 - 20 --114.1481837643292465 - 10 -42.5993417798152336 - 20 --115.6481837643292465 - 10 -23.0993417798152549 - 20 --115.6481837643292465 - 10 -23.0993417798152549 - 20 --115.6481837643292465 - 0 -MTEXT - 5 -144 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -32.0993417798152478 - 20 --114.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-17-out - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ARC - 5 -145 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -64.6624067798152566 - 20 --112.6481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -146 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -65.8493417798152478 - 20 --112.6481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -147 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -69.3314267798152599 - 20 --108.7730537643292337 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -265.4997520000000009 - 51 -320.8974289999999883 - 0 -ARC - 5 -148 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -69.3314267798152599 - 20 --116.5233137643292451 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -39.1025709999999975 - 51 -94.5002479999999991 - 0 -LINE - 5 -149 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -68.099341779815262 - 20 --114.1481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --114.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -14A -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --111.1481837643292465 - 30 -0.0 - 11 -68.099341779815262 - 21 --111.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -14B - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -45.5993417798152549 - 20 --112.6481837643292465 - 10 -45.5993417798152549 - 20 --109.6481837643292465 - 10 -63.5993417798152407 - 20 --109.6481837643292465 - 10 -63.5993417798152407 - 20 --112.6481837643292465 - 10 -45.5993417798152549 - 20 --112.6481837643292465 - 0 -LINE - 5 -14C -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -45.5993417798152549 - 20 --120.1481837643292465 - 30 -0.0 - 11 -45.5993417798152549 - 21 --120.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -14D - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -23.0993417798152549 - 20 --123.1481837643292465 - 10 -23.0993417798152549 - 20 --120.1481837643292465 - 10 -42.5993417798152336 - 20 --120.1481837643292465 - 10 -44.0993417798152265 - 20 --121.6481837643292465 - 10 -42.5993417798152336 - 20 --123.1481837643292465 - 10 -23.0993417798152549 - 20 --123.1481837643292465 - 10 -23.0993417798152549 - 20 --123.1481837643292465 - 0 -MTEXT - 5 -14E -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -32.0993417798152478 - 20 --121.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-16-out - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ARC - 5 -14F -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -64.6624067798152566 - 20 --120.1481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -150 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -65.8493417798152478 - 20 --120.1481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -151 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -69.3314267798152599 - 20 --116.2730537643292337 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -265.4997520000000009 - 51 -320.8974289999999883 - 0 -ARC - 5 -152 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -69.3314267798152599 - 20 --124.0233137643292309 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -39.1025709999999975 - 51 -94.5002479999999991 - 0 -LINE - 5 -153 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -68.099341779815262 - 20 --121.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --121.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -154 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --118.6481837643292465 - 30 -0.0 - 11 -68.099341779815262 - 21 --118.6481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -155 - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -45.5993417798152549 - 20 --120.1481837643292465 - 10 -45.5993417798152549 - 20 --117.1481837643292465 - 10 -63.5993417798152407 - 20 --117.1481837643292465 - 10 -63.5993417798152407 - 20 --120.1481837643292465 - 10 -45.5993417798152549 - 20 --120.1481837643292465 - 0 -LINE - 5 -156 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -45.5993417798152549 - 20 --127.6481837643292465 - 30 -0.0 - 11 -45.5993417798152549 - 21 --127.6481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -157 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -23.0993417798152549 - 20 --130.6481837643292465 - 10 -23.0993417798152549 - 20 --127.6481837643292465 - 10 -42.5993417798152336 - 20 --127.6481837643292465 - 10 -44.0993417798152265 - 20 --129.1481837643292465 - 10 -42.5993417798152336 - 20 --130.6481837643292465 - 10 -23.0993417798152549 - 20 --130.6481837643292465 - 10 -23.0993417798152549 - 20 --130.6481837643292465 - 0 -MTEXT - 5 -158 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -32.0993417798152478 - 20 --129.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-14-out - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ARC - 5 -159 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -64.6624067798152566 - 20 --127.6481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -15A -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -65.8493417798152478 - 20 --127.6481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -15B -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -69.3314267798152599 - 20 --123.7730537643292337 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -265.4997520000000009 - 51 -320.8974289999999883 - 0 -ARC - 5 -15C -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -69.3314267798152599 - 20 --131.5233137643292309 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -39.1025709999999975 - 51 -94.5002479999999991 - 0 -LINE - 5 -15D -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -68.099341779815262 - 20 --129.1481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --129.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -15E -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --126.1481837643292465 - 30 -0.0 - 11 -68.099341779815262 - 21 --126.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -15F - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -45.5993417798152549 - 20 --127.6481837643292465 - 10 -45.5993417798152549 - 20 --124.6481837643292323 - 10 -63.5993417798152407 - 20 --124.6481837643292323 - 10 -63.5993417798152407 - 20 --127.6481837643292465 - 10 -45.5993417798152549 - 20 --127.6481837643292465 - 0 -LINE - 5 -160 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -45.5993417798152549 - 20 --135.1481837643292465 - 30 -0.0 - 11 -45.5993417798152549 - 21 --135.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -161 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -23.0993417798152549 - 20 --138.1481837643292465 - 10 -23.0993417798152549 - 20 --135.1481837643292465 - 10 -42.5993417798152336 - 20 --135.1481837643292465 - 10 -44.0993417798152265 - 20 --136.6481837643292465 - 10 -42.5993417798152336 - 20 --138.1481837643292465 - 10 -23.0993417798152549 - 20 --138.1481837643292465 - 10 -23.0993417798152549 - 20 --138.1481837643292465 - 0 -MTEXT - 5 -162 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 -32.0993417798152478 - 20 --136.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-1-out - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ARC - 5 -163 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -64.6624067798152566 - 20 --135.1481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -164 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -65.8493417798152478 - 20 --135.1481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -165 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -69.3314267798152599 - 20 --131.2730537643292337 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -265.4997520000000009 - 51 -320.8974289999999883 - 0 -ARC - 5 -166 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -69.3314267798152599 - 20 --139.0233137643292309 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -39.1025709999999975 - 51 -94.5002479999999991 - 0 -LINE - 5 -167 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -68.099341779815262 - 20 --136.6481837643292465 - 30 -0.0 - 11 -44.0993417798152265 - 21 --136.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -168 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --133.6481837643292465 - 30 -0.0 - 11 -68.099341779815262 - 21 --133.6481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -169 - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -45.5993417798152549 - 20 --135.1481837643292465 - 10 -45.5993417798152549 - 20 --132.1481837643292465 - 10 -63.5993417798152407 - 20 --132.1481837643292465 - 10 -63.5993417798152407 - 20 --135.1481837643292465 - 10 -45.5993417798152549 - 20 --135.1481837643292465 - 0 -LINE - 5 -16A -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --61.6481837643292394 - 30 -0.0 - 11 -26.0993417798152407 - 21 --63.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -16B -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --69.1481837643292465 - 30 -0.0 - 11 -26.0993417798152407 - 21 --70.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -16C -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --76.6481837643292465 - 30 -0.0 - 11 -26.0993417798152407 - 21 --78.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -16D -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --84.1481837643292465 - 30 -0.0 - 11 -26.0993417798152407 - 21 --85.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -16E -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --91.6481837643292465 - 30 -0.0 - 11 -26.0993417798152407 - 21 --93.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -16F -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --106.6481837643292465 - 30 -0.0 - 11 -26.0993417798152407 - 21 --112.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -170 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --123.1481837643292465 - 30 -0.0 - 11 -26.0993417798152407 - 21 --127.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -171 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --130.6481837643292465 - 30 -0.0 - 11 -26.0993417798152407 - 21 --135.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -172 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --115.6481837643292465 - 30 -0.0 - 11 -26.0993417798152407 - 21 --120.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -173 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --99.1481837643292465 - 30 -0.0 - 11 -26.0993417798152407 - 21 --100.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -174 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --46.6481837643292394 - 30 -0.0 - 11 -26.0993417798152407 - 21 --48.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -175 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --39.1481837643292394 - 30 -0.0 - 11 -26.0993417798152407 - 21 --40.6481837643292323 - 31 -0.0 - 0 -LINE - 5 -176 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --31.6481837643292394 - 30 -0.0 - 11 -26.0993417798152407 - 21 --33.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -177 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --24.1481837643292394 - 30 -0.0 - 11 -26.0993417798152407 - 21 --25.6481837643292323 - 31 -0.0 - 0 -LINE - 5 -178 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --16.6481837643292394 - 30 -0.0 - 11 -26.0993417798152407 - 21 --18.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -179 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --54.1481837643292394 - 30 -0.0 - 11 -26.0993417798152407 - 21 --55.6481837643292394 - 31 -0.0 - 0 -LWPOLYLINE - 5 -17A - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --78.9006582201847522 - 20 --46.6481837643292394 - 10 --80.4006582201847522 - 20 --45.1481837643292465 - 10 --78.9006582201847522 - 20 --43.6481837643292323 - 10 --59.4006582201847593 - 20 --43.6481837643292323 - 10 --59.4006582201847593 - 20 --46.6481837643292394 - 10 --78.9006582201847522 - 20 --46.6481837643292394 - 10 --78.9006582201847522 - 20 --46.6481837643292394 - 0 -LWPOLYLINE - 5 -17B - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --78.9006582201847522 - 20 --43.6481837643292323 - 10 --80.4006582201847522 - 20 --42.1481837643292465 - 10 --78.9006582201847522 - 20 --40.6481837643292323 - 10 --59.4006582201847593 - 20 --40.6481837643292323 - 10 --59.4006582201847593 - 20 --43.6481837643292323 - 10 --78.9006582201847522 - 20 --43.6481837643292323 - 10 --78.9006582201847522 - 20 --43.6481837643292323 - 0 -MTEXT - 5 -17C -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --69.9006582201847522 - 20 --45.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-10-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -17D -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --69.9006582201847522 - 20 --42.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-10-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -17E -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --54.5256582201847593 - 20 --45.1481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -17F - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --54.1506582201847593 - 20 --45.1481837643292465 - 10 --50.4006582201847522 - 20 --42.8981837643292394 - 10 --50.4006582201847522 - 20 --47.3981837643292323 - 10 --54.1506582201847593 - 20 --45.1481837643292465 - 10 --54.1506582201847593 - 20 --45.1481837643292465 - 0 -LINE - 5 -180 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --59.4006582201847593 - 20 --42.1481837643292465 - 30 -0.0 - 11 --47.4006582201847664 - 21 --42.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -181 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.4006582201847664 - 20 --42.1481837643292465 - 30 -0.0 - 11 --47.4006582201847664 - 21 --45.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -182 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.4006582201847664 - 20 --45.1481837643292465 - 30 -0.0 - 11 --50.4006582201847522 - 21 --45.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -183 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --54.9006582201847593 - 20 --45.1481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --45.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -184 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --44.4006582201847593 - 20 --43.6481837643292323 - 10 --39.9006582201847664 - 20 --41.3981837643292465 - 10 --39.9006582201847664 - 20 --45.8981837643292465 - 10 --44.4006582201847593 - 20 --43.6481837643292323 - 10 --44.4006582201847593 - 20 --43.6481837643292323 - 0 -LINE - 5 -185 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --44.4006582201847593 - 20 --43.6481837643292323 - 30 -0.0 - 11 --47.4006582201847664 - 21 --43.6481837643292323 - 31 -0.0 - 0 -CIRCLE - 5 -186 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.4006582201847664 - 20 --43.6481837643292323 - 30 -0.0 - 40 -0.3 - 0 -LWPOLYLINE - 5 -187 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --78.9006582201847522 - 20 --39.1481837643292394 - 10 --80.4006582201847522 - 20 --37.6481837643292465 - 10 --78.9006582201847522 - 20 --36.1481837643292394 - 10 --59.4006582201847593 - 20 --36.1481837643292394 - 10 --59.4006582201847593 - 20 --39.1481837643292394 - 10 --78.9006582201847522 - 20 --39.1481837643292394 - 10 --78.9006582201847522 - 20 --39.1481837643292394 - 0 -LWPOLYLINE - 5 -188 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --78.9006582201847522 - 20 --36.1481837643292394 - 10 --80.4006582201847522 - 20 --34.6481837643292394 - 10 --78.9006582201847522 - 20 --33.1481837643292323 - 10 --59.4006582201847593 - 20 --33.1481837643292323 - 10 --59.4006582201847593 - 20 --36.1481837643292394 - 10 --78.9006582201847522 - 20 --36.1481837643292394 - 10 --78.9006582201847522 - 20 --36.1481837643292394 - 0 -MTEXT - 5 -189 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --69.9006582201847522 - 20 --37.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-11-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -18A -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --69.9006582201847522 - 20 --34.6481837643292394 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-11-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -18B -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --54.5256582201847593 - 20 --37.6481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -18C - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --54.1506582201847593 - 20 --37.6481837643292465 - 10 --50.4006582201847522 - 20 --35.3981837643292394 - 10 --50.4006582201847522 - 20 --39.8981837643292323 - 10 --54.1506582201847593 - 20 --37.6481837643292465 - 10 --54.1506582201847593 - 20 --37.6481837643292465 - 0 -LINE - 5 -18D -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --59.4006582201847593 - 20 --34.6481837643292394 - 30 -0.0 - 11 --47.4006582201847664 - 21 --34.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -18E -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.4006582201847664 - 20 --34.6481837643292394 - 30 -0.0 - 11 --47.4006582201847664 - 21 --37.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -18F -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.4006582201847664 - 20 --37.6481837643292465 - 30 -0.0 - 11 --50.4006582201847522 - 21 --37.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -190 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --54.9006582201847593 - 20 --37.6481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --37.6481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -191 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --44.4006582201847593 - 20 --36.1481837643292394 - 10 --39.9006582201847664 - 20 --33.8981837643292465 - 10 --39.9006582201847664 - 20 --38.3981837643292465 - 10 --44.4006582201847593 - 20 --36.1481837643292394 - 10 --44.4006582201847593 - 20 --36.1481837643292394 - 0 -LINE - 5 -192 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --44.4006582201847593 - 20 --36.1481837643292394 - 30 -0.0 - 11 --47.4006582201847664 - 21 --36.1481837643292394 - 31 -0.0 - 0 -CIRCLE - 5 -193 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.4006582201847664 - 20 --36.1481837643292394 - 30 -0.0 - 40 -0.3 - 0 -LWPOLYLINE - 5 -194 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --78.9006582201847522 - 20 --31.6481837643292394 - 10 --80.4006582201847522 - 20 --30.1481837643292465 - 10 --78.9006582201847522 - 20 --28.6481837643292394 - 10 --59.4006582201847593 - 20 --28.6481837643292394 - 10 --59.4006582201847593 - 20 --31.6481837643292394 - 10 --78.9006582201847522 - 20 --31.6481837643292394 - 10 --78.9006582201847522 - 20 --31.6481837643292394 - 0 -LWPOLYLINE - 5 -195 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --78.9006582201847522 - 20 --28.6481837643292394 - 10 --80.4006582201847522 - 20 --27.1481837643292394 - 10 --78.9006582201847522 - 20 --25.6481837643292323 - 10 --59.4006582201847593 - 20 --25.6481837643292323 - 10 --59.4006582201847593 - 20 --28.6481837643292394 - 10 --78.9006582201847522 - 20 --28.6481837643292394 - 10 --78.9006582201847522 - 20 --28.6481837643292394 - 0 -MTEXT - 5 -196 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --69.9006582201847522 - 20 --30.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-12-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -197 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --69.9006582201847522 - 20 --27.1481837643292394 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-12-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -198 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --54.5256582201847593 - 20 --30.1481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -199 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --54.1506582201847593 - 20 --30.1481837643292465 - 10 --50.4006582201847522 - 20 --27.8981837643292394 - 10 --50.4006582201847522 - 20 --32.3981837643292394 - 10 --54.1506582201847593 - 20 --30.1481837643292465 - 10 --54.1506582201847593 - 20 --30.1481837643292465 - 0 -LINE - 5 -19A -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --59.4006582201847593 - 20 --27.1481837643292394 - 30 -0.0 - 11 --47.4006582201847664 - 21 --27.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -19B -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.4006582201847664 - 20 --27.1481837643292394 - 30 -0.0 - 11 --47.4006582201847664 - 21 --30.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -19C -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.4006582201847664 - 20 --30.1481837643292465 - 30 -0.0 - 11 --50.4006582201847522 - 21 --30.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -19D -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --54.9006582201847593 - 20 --30.1481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --30.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -19E - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --44.4006582201847593 - 20 --28.6481837643292394 - 10 --39.9006582201847664 - 20 --26.3981837643292465 - 10 --39.9006582201847664 - 20 --30.8981837643292394 - 10 --44.4006582201847593 - 20 --28.6481837643292394 - 10 --44.4006582201847593 - 20 --28.6481837643292394 - 0 -LINE - 5 -19F -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --44.4006582201847593 - 20 --28.6481837643292394 - 30 -0.0 - 11 --47.4006582201847664 - 21 --28.6481837643292394 - 31 -0.0 - 0 -CIRCLE - 5 -1A0 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.4006582201847664 - 20 --28.6481837643292394 - 30 -0.0 - 40 -0.3 - 0 -LWPOLYLINE - 5 -1A1 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --78.9006582201847522 - 20 --24.1481837643292394 - 10 --80.4006582201847522 - 20 --22.6481837643292465 - 10 --78.9006582201847522 - 20 --21.1481837643292394 - 10 --59.4006582201847593 - 20 --21.1481837643292394 - 10 --59.4006582201847593 - 20 --24.1481837643292394 - 10 --78.9006582201847522 - 20 --24.1481837643292394 - 10 --78.9006582201847522 - 20 --24.1481837643292394 - 0 -LWPOLYLINE - 5 -1A2 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --78.9006582201847522 - 20 --21.1481837643292394 - 10 --80.4006582201847522 - 20 --19.6481837643292394 - 10 --78.9006582201847522 - 20 --18.1481837643292323 - 10 --59.4006582201847593 - 20 --18.1481837643292323 - 10 --59.4006582201847593 - 20 --21.1481837643292394 - 10 --78.9006582201847522 - 20 --21.1481837643292394 - 10 --78.9006582201847522 - 20 --21.1481837643292394 - 0 -MTEXT - 5 -1A3 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --69.9006582201847522 - 20 --22.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-13-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1A4 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --69.9006582201847522 - 20 --19.6481837643292394 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-13-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -1A5 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --54.5256582201847593 - 20 --22.6481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -1A6 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --54.1506582201847593 - 20 --22.6481837643292465 - 10 --50.4006582201847522 - 20 --20.3981837643292394 - 10 --50.4006582201847522 - 20 --24.8981837643292394 - 10 --54.1506582201847593 - 20 --22.6481837643292465 - 10 --54.1506582201847593 - 20 --22.6481837643292465 - 0 -LINE - 5 -1A7 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --59.4006582201847593 - 20 --19.6481837643292394 - 30 -0.0 - 11 --47.4006582201847664 - 21 --19.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -1A8 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.4006582201847664 - 20 --19.6481837643292394 - 30 -0.0 - 11 --47.4006582201847664 - 21 --22.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1A9 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.4006582201847664 - 20 --22.6481837643292465 - 30 -0.0 - 11 --50.4006582201847522 - 21 --22.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1AA -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --54.9006582201847593 - 20 --22.6481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --22.6481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -1AB - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --44.4006582201847593 - 20 --21.1481837643292394 - 10 --39.9006582201847664 - 20 --18.8981837643292465 - 10 --39.9006582201847664 - 20 --23.3981837643292394 - 10 --44.4006582201847593 - 20 --21.1481837643292394 - 10 --44.4006582201847593 - 20 --21.1481837643292394 - 0 -LINE - 5 -1AC -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --44.4006582201847593 - 20 --21.1481837643292394 - 30 -0.0 - 11 --47.4006582201847664 - 21 --21.1481837643292394 - 31 -0.0 - 0 -CIRCLE - 5 -1AD -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.4006582201847664 - 20 --21.1481837643292394 - 30 -0.0 - 40 -0.3 - 0 -LWPOLYLINE - 5 -1AE - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --78.9006582201847522 - 20 --16.6481837643292394 - 10 --80.4006582201847522 - 20 --15.1481837643292465 - 10 --78.9006582201847522 - 20 --13.6481837643292394 - 10 --59.4006582201847593 - 20 --13.6481837643292394 - 10 --59.4006582201847593 - 20 --16.6481837643292394 - 10 --78.9006582201847522 - 20 --16.6481837643292394 - 10 --78.9006582201847522 - 20 --16.6481837643292394 - 0 -LWPOLYLINE - 5 -1AF - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --78.9006582201847522 - 20 --13.6481837643292394 - 10 --80.4006582201847522 - 20 --12.1481837643292394 - 10 --78.9006582201847522 - 20 --10.6481837643292323 - 10 --59.4006582201847593 - 20 --10.6481837643292323 - 10 --59.4006582201847593 - 20 --13.6481837643292394 - 10 --78.9006582201847522 - 20 --13.6481837643292394 - 10 --78.9006582201847522 - 20 --13.6481837643292394 - 0 -CIRCLE - 5 -1B0 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --54.5256582201847593 - 20 --15.1481837643292465 - 30 -0.0 - 40 -0.375 - 0 -LWPOLYLINE - 5 -1B1 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --54.1506582201847593 - 20 --15.1481837643292465 - 10 --50.4006582201847522 - 20 --12.8981837643292394 - 10 --50.4006582201847522 - 20 --17.3981837643292394 - 10 --54.1506582201847593 - 20 --15.1481837643292465 - 10 --54.1506582201847593 - 20 --15.1481837643292465 - 0 -LINE - 5 -1B2 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --59.4006582201847593 - 20 --12.1481837643292394 - 30 -0.0 - 11 --47.4006582201847664 - 21 --12.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -1B3 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.4006582201847664 - 20 --12.1481837643292394 - 30 -0.0 - 11 --47.4006582201847664 - 21 --15.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1B4 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.4006582201847664 - 20 --15.1481837643292465 - 30 -0.0 - 11 --50.4006582201847522 - 21 --15.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1B5 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --54.9006582201847593 - 20 --15.1481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --15.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -1B6 - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --44.4006582201847593 - 20 --13.6481837643292394 - 10 --39.9006582201847664 - 20 --11.3981837643292465 - 10 --39.9006582201847664 - 20 --15.8981837643292394 - 10 --44.4006582201847593 - 20 --13.6481837643292394 - 10 --44.4006582201847593 - 20 --13.6481837643292394 - 0 -LINE - 5 -1B7 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --44.4006582201847593 - 20 --13.6481837643292394 - 30 -0.0 - 11 --47.4006582201847664 - 21 --13.6481837643292394 - 31 -0.0 - 0 -CIRCLE - 5 -1B8 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.4006582201847664 - 20 --13.6481837643292394 - 30 -0.0 - 40 -0.3 - 0 -LINE - 5 -1B9 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --60.1481837643292394 - 30 -0.0 - 11 --57.9006582201847593 - 21 --60.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -1BA -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --63.1481837643292394 - 30 -0.0 - 11 --80.4006582201847522 - 21 --60.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -1BB -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --60.1481837643292394 - 30 -0.0 - 11 --60.9006582201847593 - 21 --60.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -1BC -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9006582201847593 - 20 --60.1481837643292394 - 30 -0.0 - 11 --59.4006582201847593 - 21 --61.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -1BD -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --59.4006582201847593 - 20 --61.6481837643292394 - 30 -0.0 - 11 --60.9006582201847593 - 21 --63.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -1BE -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9006582201847593 - 20 --63.1481837643292394 - 30 -0.0 - 11 --80.4006582201847522 - 21 --63.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -1BF -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --63.1481837643292394 - 30 -0.0 - 11 --80.4006582201847522 - 21 --63.1481837643292394 - 31 -0.0 - 0 -MTEXT - 5 -1C0 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.4006582201847522 - 20 --61.6481837643292394 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-8-out - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ARC - 5 -1C1 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --38.8375932201847576 - 20 --60.1481837643292394 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -1C2 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --37.6506582201847593 - 20 --60.1481837643292394 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -1C3 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --56.2730537643292408 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -265.4997520000000009 - 51 -320.8974289999999883 - 0 -ARC - 5 -1C4 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --64.0233137643292451 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -39.1025709999999975 - 51 -94.5002479999999991 - 0 -LINE - 5 -1C5 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.4006582201847522 - 20 --61.6481837643292394 - 30 -0.0 - 11 --59.4006582201847593 - 21 --61.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -1C6 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --58.6481837643292394 - 30 -0.0 - 11 --35.4006582201847522 - 21 --58.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -1C7 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --60.1481837643292394 - 30 -0.0 - 11 --57.9006582201847593 - 21 --57.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1C8 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --57.1481837643292465 - 30 -0.0 - 11 --39.9006582201847664 - 21 --57.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1C9 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --57.1481837643292465 - 30 -0.0 - 11 --39.9006582201847664 - 21 --60.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -1CA -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --60.1481837643292394 - 30 -0.0 - 11 --57.9006582201847593 - 21 --60.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -1CB -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --67.6481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --67.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1CC -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --70.6481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --67.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1CD -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --67.6481837643292465 - 30 -0.0 - 11 --60.9006582201847593 - 21 --67.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1CE -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9006582201847593 - 20 --67.6481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --69.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1CF -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --59.4006582201847593 - 20 --69.1481837643292465 - 30 -0.0 - 11 --60.9006582201847593 - 21 --70.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1D0 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9006582201847593 - 20 --70.6481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --70.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1D1 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --70.6481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --70.6481837643292465 - 31 -0.0 - 0 -MTEXT - 5 -1D2 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.4006582201847522 - 20 --69.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-7-out - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ARC - 5 -1D3 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --38.8375932201847576 - 20 --67.6481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -1D4 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --37.6506582201847593 - 20 --67.6481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -1D5 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --63.7730537643292408 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -265.4997520000000009 - 51 -320.8974289999999883 - 0 -ARC - 5 -1D6 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --71.5233137643292451 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -39.1025709999999975 - 51 -94.5002479999999991 - 0 -LINE - 5 -1D7 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.4006582201847522 - 20 --69.1481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --69.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1D8 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --66.1481837643292465 - 30 -0.0 - 11 --35.4006582201847522 - 21 --66.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1D9 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --67.6481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --64.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1DA -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --64.6481837643292465 - 30 -0.0 - 11 --39.9006582201847664 - 21 --64.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1DB -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --64.6481837643292465 - 30 -0.0 - 11 --39.9006582201847664 - 21 --67.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1DC -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --67.6481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --67.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1DD -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --75.1481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --75.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1DE -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --78.1481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --75.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1DF -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --75.1481837643292465 - 30 -0.0 - 11 --60.9006582201847593 - 21 --75.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1E0 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9006582201847593 - 20 --75.1481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --76.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1E1 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --59.4006582201847593 - 20 --76.6481837643292465 - 30 -0.0 - 11 --60.9006582201847593 - 21 --78.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1E2 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9006582201847593 - 20 --78.1481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --78.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1E3 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --78.1481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --78.1481837643292465 - 31 -0.0 - 0 -MTEXT - 5 -1E4 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.4006582201847522 - 20 --76.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-6-out - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ARC - 5 -1E5 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --38.8375932201847576 - 20 --75.1481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -1E6 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --37.6506582201847593 - 20 --75.1481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -1E7 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --71.2730537643292479 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -265.4997520000000009 - 51 -320.8974289999999883 - 0 -ARC - 5 -1E8 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --79.0233137643292451 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -39.1025709999999975 - 51 -94.5002479999999991 - 0 -LINE - 5 -1E9 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.4006582201847522 - 20 --76.6481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --76.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1EA -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --73.6481837643292323 - 30 -0.0 - 11 --35.4006582201847522 - 21 --73.6481837643292323 - 31 -0.0 - 0 -LINE - 5 -1EB -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --75.1481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --72.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1EC -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --72.1481837643292465 - 30 -0.0 - 11 --39.9006582201847664 - 21 --72.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1ED -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --72.1481837643292465 - 30 -0.0 - 11 --39.9006582201847664 - 21 --75.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1EE -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --75.1481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --75.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1EF -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --82.6481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --82.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1F0 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --85.6481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --82.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1F1 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --82.6481837643292465 - 30 -0.0 - 11 --60.9006582201847593 - 21 --82.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1F2 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9006582201847593 - 20 --82.6481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --84.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1F3 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --59.4006582201847593 - 20 --84.1481837643292465 - 30 -0.0 - 11 --60.9006582201847593 - 21 --85.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1F4 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9006582201847593 - 20 --85.6481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --85.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1F5 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --85.6481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --85.6481837643292465 - 31 -0.0 - 0 -MTEXT - 5 -1F6 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.4006582201847522 - 20 --84.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-5-out - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ARC - 5 -1F7 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --38.8375932201847576 - 20 --82.6481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -1F8 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --37.6506582201847593 - 20 --82.6481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -1F9 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --78.7730537643292337 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -265.4997520000000009 - 51 -320.8974289999999883 - 0 -ARC - 5 -1FA -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --86.5233137643292309 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -39.1025709999999975 - 51 -94.5002479999999991 - 0 -LINE - 5 -1FB -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.4006582201847522 - 20 --84.1481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --84.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -1FC -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --81.1481837643292323 - 30 -0.0 - 11 --35.4006582201847522 - 21 --81.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -1FD -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --82.6481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --79.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1FE -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --79.6481837643292465 - 30 -0.0 - 11 --39.9006582201847664 - 21 --79.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -1FF -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --79.6481837643292465 - 30 -0.0 - 11 --39.9006582201847664 - 21 --82.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -200 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --82.6481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --82.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -201 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --90.1481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --90.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -202 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --93.1481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --90.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -203 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --90.1481837643292465 - 30 -0.0 - 11 --60.9006582201847593 - 21 --90.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -204 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9006582201847593 - 20 --90.1481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --91.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -205 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --59.4006582201847593 - 20 --91.6481837643292465 - 30 -0.0 - 11 --60.9006582201847593 - 21 --93.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -206 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9006582201847593 - 20 --93.1481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --93.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -207 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --93.1481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --93.1481837643292465 - 31 -0.0 - 0 -MTEXT - 5 -208 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.4006582201847522 - 20 --91.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-4-out - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ARC - 5 -209 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --38.8375932201847576 - 20 --90.1481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -20A -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --37.6506582201847593 - 20 --90.1481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -20B -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --86.2730537643292337 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -265.4997520000000009 - 51 -320.8974289999999883 - 0 -ARC - 5 -20C -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --94.0233137643292309 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -39.1025709999999975 - 51 -94.5002479999999991 - 0 -LINE - 5 -20D -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.4006582201847522 - 20 --91.6481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --91.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -20E -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --88.6481837643292465 - 30 -0.0 - 11 --35.4006582201847522 - 21 --88.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -20F -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --90.1481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --87.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -210 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --87.1481837643292465 - 30 -0.0 - 11 --39.9006582201847664 - 21 --87.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -211 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --87.1481837643292465 - 30 -0.0 - 11 --39.9006582201847664 - 21 --90.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -212 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --90.1481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --90.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -213 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --97.6481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --97.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -214 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --100.6481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --97.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -215 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --97.6481837643292465 - 30 -0.0 - 11 --60.9006582201847593 - 21 --97.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -216 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9006582201847593 - 20 --97.6481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --99.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -217 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --59.4006582201847593 - 20 --99.1481837643292465 - 30 -0.0 - 11 --60.9006582201847593 - 21 --100.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -218 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9006582201847593 - 20 --100.6481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --100.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -219 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --100.6481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --100.6481837643292465 - 31 -0.0 - 0 -MTEXT - 5 -21A -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.4006582201847522 - 20 --99.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-3-out - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ARC - 5 -21B -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --38.8375932201847576 - 20 --97.6481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -21C -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --37.6506582201847593 - 20 --97.6481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -21D -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --93.7730537643292337 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -265.4997520000000009 - 51 -320.8974289999999883 - 0 -ARC - 5 -21E -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --101.5233137643292309 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -39.1025709999999975 - 51 -94.5002479999999991 - 0 -LINE - 5 -21F -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.4006582201847522 - 20 --99.1481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --99.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -220 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --96.1481837643292465 - 30 -0.0 - 11 --35.4006582201847522 - 21 --96.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -221 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --97.6481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --94.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -222 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --94.6481837643292465 - 30 -0.0 - 11 --39.9006582201847664 - 21 --94.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -223 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --94.6481837643292465 - 30 -0.0 - 11 --39.9006582201847664 - 21 --97.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -224 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --97.6481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --97.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -225 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --105.1481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --105.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -226 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --108.1481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --105.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -227 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --105.1481837643292465 - 30 -0.0 - 11 --60.9006582201847593 - 21 --105.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -228 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9006582201847593 - 20 --105.1481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --106.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -229 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --59.4006582201847593 - 20 --106.6481837643292465 - 30 -0.0 - 11 --60.9006582201847593 - 21 --108.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -22A -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9006582201847593 - 20 --108.1481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --108.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -22B -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --108.1481837643292465 - 30 -0.0 - 11 --80.4006582201847522 - 21 --108.1481837643292465 - 31 -0.0 - 0 -MTEXT - 5 -22C -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.4006582201847522 - 20 --106.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-2-out - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ARC - 5 -22D -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --38.8375932201847576 - 20 --105.1481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -22E -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --37.6506582201847593 - 20 --105.1481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -22F -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --101.2730537643292337 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -265.4997520000000009 - 51 -320.8974289999999883 - 0 -ARC - 5 -230 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --109.0233137643292309 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -39.1025709999999975 - 51 -94.5002479999999991 - 0 -LINE - 5 -231 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.4006582201847522 - 20 --106.6481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --106.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -232 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --103.6481837643292465 - 30 -0.0 - 11 --35.4006582201847522 - 21 --103.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -233 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --105.1481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --102.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -234 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --102.1481837643292323 - 30 -0.0 - 11 --39.9006582201847664 - 21 --102.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -235 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --102.1481837643292323 - 30 -0.0 - 11 --39.9006582201847664 - 21 --105.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -236 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --105.1481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --105.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -237 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --52.6481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --52.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -238 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --55.6481837643292394 - 30 -0.0 - 11 --80.4006582201847522 - 21 --52.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -239 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --52.6481837643292465 - 30 -0.0 - 11 --60.9006582201847593 - 21 --52.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -23A -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9006582201847593 - 20 --52.6481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --54.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -23B -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --59.4006582201847593 - 20 --54.1481837643292394 - 30 -0.0 - 11 --60.9006582201847593 - 21 --55.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -23C -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9006582201847593 - 20 --55.6481837643292394 - 30 -0.0 - 11 --80.4006582201847522 - 21 --55.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -23D -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.4006582201847522 - 20 --55.6481837643292394 - 30 -0.0 - 11 --80.4006582201847522 - 21 --55.6481837643292394 - 31 -0.0 - 0 -MTEXT - 5 -23E -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.4006582201847522 - 20 --54.1481837643292394 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-9-out - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ARC - 5 -23F -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --38.8375932201847576 - 20 --52.6481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -240 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --37.6506582201847593 - 20 --52.6481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -241 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --48.7730537643292337 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -265.4997520000000009 - 51 -320.8974289999999883 - 0 -ARC - 5 -242 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --56.5233137643292451 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -39.1025709999999975 - 51 -94.5002479999999991 - 0 -LINE - 5 -243 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.4006582201847522 - 20 --54.1481837643292394 - 30 -0.0 - 11 --59.4006582201847593 - 21 --54.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -244 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --51.1481837643292323 - 30 -0.0 - 11 --35.4006582201847522 - 21 --51.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -245 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --52.6481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --49.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -246 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --49.6481837643292465 - 30 -0.0 - 11 --39.9006582201847664 - 21 --49.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -247 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --49.6481837643292465 - 30 -0.0 - 11 --39.9006582201847664 - 21 --52.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -248 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --52.6481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --52.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -249 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --112.6481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --112.6481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -24A - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --80.4006582201847522 - 20 --115.6481837643292465 - 10 --80.4006582201847522 - 20 --112.6481837643292465 - 10 --60.9006582201847593 - 20 --112.6481837643292465 - 10 --59.4006582201847593 - 20 --114.1481837643292465 - 10 --60.9006582201847593 - 20 --115.6481837643292465 - 10 --80.4006582201847522 - 20 --115.6481837643292465 - 10 --80.4006582201847522 - 20 --115.6481837643292465 - 0 -MTEXT - 5 -24B -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.4006582201847522 - 20 --114.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-17-out - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ARC - 5 -24C -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --38.8375932201847576 - 20 --112.6481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -24D -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --37.6506582201847593 - 20 --112.6481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -24E -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --108.7730537643292337 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -265.4997520000000009 - 51 -320.8974289999999883 - 0 -ARC - 5 -24F -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --116.5233137643292451 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -39.1025709999999975 - 51 -94.5002479999999991 - 0 -LINE - 5 -250 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.4006582201847522 - 20 --114.1481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --114.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -251 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --111.1481837643292465 - 30 -0.0 - 11 --35.4006582201847522 - 21 --111.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -252 - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --57.9006582201847593 - 20 --112.6481837643292465 - 10 --57.9006582201847593 - 20 --109.6481837643292465 - 10 --39.9006582201847664 - 20 --109.6481837643292465 - 10 --39.9006582201847664 - 20 --112.6481837643292465 - 10 --57.9006582201847593 - 20 --112.6481837643292465 - 0 -LINE - 5 -253 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --120.1481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --120.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -254 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --80.4006582201847522 - 20 --123.1481837643292465 - 10 --80.4006582201847522 - 20 --120.1481837643292465 - 10 --60.9006582201847593 - 20 --120.1481837643292465 - 10 --59.4006582201847593 - 20 --121.6481837643292465 - 10 --60.9006582201847593 - 20 --123.1481837643292465 - 10 --80.4006582201847522 - 20 --123.1481837643292465 - 10 --80.4006582201847522 - 20 --123.1481837643292465 - 0 -MTEXT - 5 -255 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.4006582201847522 - 20 --121.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-16-out - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ARC - 5 -256 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --38.8375932201847576 - 20 --120.1481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -257 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --37.6506582201847593 - 20 --120.1481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -258 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --116.2730537643292337 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -265.4997520000000009 - 51 -320.8974289999999883 - 0 -ARC - 5 -259 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --124.0233137643292309 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -39.1025709999999975 - 51 -94.5002479999999991 - 0 -LINE - 5 -25A -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.4006582201847522 - 20 --121.6481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --121.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -25B -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --118.6481837643292465 - 30 -0.0 - 11 --35.4006582201847522 - 21 --118.6481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -25C - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --57.9006582201847593 - 20 --120.1481837643292465 - 10 --57.9006582201847593 - 20 --117.1481837643292465 - 10 --39.9006582201847664 - 20 --117.1481837643292465 - 10 --39.9006582201847664 - 20 --120.1481837643292465 - 10 --57.9006582201847593 - 20 --120.1481837643292465 - 0 -LINE - 5 -25D -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --127.6481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --127.6481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -25E - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --80.4006582201847522 - 20 --130.6481837643292465 - 10 --80.4006582201847522 - 20 --127.6481837643292465 - 10 --60.9006582201847593 - 20 --127.6481837643292465 - 10 --59.4006582201847593 - 20 --129.1481837643292465 - 10 --60.9006582201847593 - 20 --130.6481837643292465 - 10 --80.4006582201847522 - 20 --130.6481837643292465 - 10 --80.4006582201847522 - 20 --130.6481837643292465 - 0 -MTEXT - 5 -25F -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.4006582201847522 - 20 --129.1481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-14-out - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ARC - 5 -260 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --38.8375932201847576 - 20 --127.6481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -261 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --37.6506582201847593 - 20 --127.6481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -262 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --123.7730537643292337 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -265.4997520000000009 - 51 -320.8974289999999883 - 0 -ARC - 5 -263 -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --131.5233137643292309 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -39.1025709999999975 - 51 -94.5002479999999991 - 0 -LINE - 5 -264 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.4006582201847522 - 20 --129.1481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --129.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -265 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --126.1481837643292465 - 30 -0.0 - 11 --35.4006582201847522 - 21 --126.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -266 - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --57.9006582201847593 - 20 --127.6481837643292465 - 10 --57.9006582201847593 - 20 --124.6481837643292323 - 10 --39.9006582201847664 - 20 --124.6481837643292323 - 10 --39.9006582201847664 - 20 --127.6481837643292465 - 10 --57.9006582201847593 - 20 --127.6481837643292465 - 0 -LINE - 5 -267 -100 -AcDbEntity -100 -AcDbLine - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.9006582201847593 - 20 --135.1481837643292465 - 30 -0.0 - 11 --57.9006582201847593 - 21 --135.1481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -268 - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 --80.4006582201847522 - 20 --138.1481837643292465 - 10 --80.4006582201847522 - 20 --135.1481837643292465 - 10 --60.9006582201847593 - 20 --135.1481837643292465 - 10 --59.4006582201847593 - 20 --136.6481837643292465 - 10 --60.9006582201847593 - 20 --138.1481837643292465 - 10 --80.4006582201847522 - 20 --138.1481837643292465 - 10 --80.4006582201847522 - 20 --138.1481837643292465 - 0 -MTEXT - 5 -269 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.4006582201847522 - 20 --136.6481837643292465 - 30 -0.0 - 40 -1.8 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-1-out - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ARC - 5 -26A -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --38.8375932201847576 - 20 --135.1481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -26B -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --37.6506582201847593 - 20 --135.1481837643292465 - 30 -0.0 - 40 -3.75 -100 -AcDbArc - 50 -323.1301020000000221 - 51 -396.8698979999999779 - 0 -ARC - 5 -26C -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --131.2730537643292337 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -265.4997520000000009 - 51 -320.8974289999999883 - 0 -ARC - 5 -26D -100 -AcDbEntity - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --34.1685732201847614 - 20 --139.0233137643292309 - 30 -0.0 - 40 -6.144075 -100 -AcDbArc - 50 -39.1025709999999975 - 51 -94.5002479999999991 - 0 -LINE - 5 -26E -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.4006582201847522 - 20 --136.6481837643292465 - 30 -0.0 - 11 --59.4006582201847593 - 21 --136.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -26F -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --133.6481837643292465 - 30 -0.0 - 11 --35.4006582201847522 - 21 --133.6481837643292465 - 31 -0.0 - 0 -LWPOLYLINE - 5 -270 - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 --57.9006582201847593 - 20 --135.1481837643292465 - 10 --57.9006582201847593 - 20 --132.1481837643292465 - 10 --39.9006582201847664 - 20 --132.1481837643292465 - 10 --39.9006582201847664 - 20 --135.1481837643292465 - 10 --57.9006582201847593 - 20 --135.1481837643292465 - 0 -LINE - 5 -271 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --63.1481837643292394 - 30 -0.0 - 11 --77.4006582201847522 - 21 --67.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -272 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --70.6481837643292465 - 30 -0.0 - 11 --77.4006582201847522 - 21 --75.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -273 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --78.1481837643292465 - 30 -0.0 - 11 --77.4006582201847522 - 21 --82.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -274 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --85.6481837643292465 - 30 -0.0 - 11 --77.4006582201847522 - 21 --90.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -275 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --93.1481837643292465 - 30 -0.0 - 11 --77.4006582201847522 - 21 --97.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -276 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --108.1481837643292465 - 30 -0.0 - 11 --77.4006582201847522 - 21 --112.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -277 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --115.6481837643292465 - 30 -0.0 - 11 --77.4006582201847522 - 21 --120.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -278 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --123.1481837643292465 - 30 -0.0 - 11 --77.4006582201847522 - 21 --127.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -279 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --130.6481837643292465 - 30 -0.0 - 11 --77.4006582201847522 - 21 --135.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -27A -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --100.6481837643292465 - 30 -0.0 - 11 --77.4006582201847522 - 21 --105.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -27B -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --55.6481837643292394 - 30 -0.0 - 11 --77.4006582201847522 - 21 --60.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -27C -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --16.6481837643292394 - 30 -0.0 - 11 --77.4006582201847522 - 21 --18.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -27D -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --24.1481837643292394 - 30 -0.0 - 11 --77.4006582201847522 - 21 --25.6481837643292323 - 31 -0.0 - 0 -LINE - 5 -27E -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --31.6481837643292394 - 30 -0.0 - 11 --77.4006582201847522 - 21 --33.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -27F -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --39.1481837643292394 - 30 -0.0 - 11 --77.4006582201847522 - 21 --40.6481837643292323 - 31 -0.0 - 0 -LINE - 5 -280 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --46.6481837643292394 - 30 -0.0 - 11 --77.4006582201847522 - 21 --52.6481837643292465 - 31 -0.0 - 0 -MTEXT - 5 -281 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --39.1481837643292394 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -25 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -282 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --39.1481837643292394 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -25 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -283 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --36.1481837643292394 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -13 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -284 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --45.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -24 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -285 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --45.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -24 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -286 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --42.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -12 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -287 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --42.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -12 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -288 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --48.1481837643292323 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -11 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -289 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --48.1481837643292323 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -11 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -28A -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --54.1481837643292394 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -10 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -28B -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --54.1481837643292394 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -10 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -28C -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --60.1481837643292394 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -9 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -28D -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --60.1481837643292394 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -9 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -28E -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --66.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -8 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -28F -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --66.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -8 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -290 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --72.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -7 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -291 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --72.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -7 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -292 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --78.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -6 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -293 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --78.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -6 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -294 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --84.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -5 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -295 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --84.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -5 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -296 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --90.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -4 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -297 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --90.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -4 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -298 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --96.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -3 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -299 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --96.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -3 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -29A -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --102.1481837643292323 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -2 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -29B -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --102.1481837643292323 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -2 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -29C -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --108.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -1 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -29D -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --108.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -1 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -29E -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --51.1481837643292323 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -23 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -29F -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --51.1481837643292323 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -23 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2A0 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --57.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -22 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2A1 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --57.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -22 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2A2 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --63.1481837643292394 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -21 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2A3 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --63.1481837643292394 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -21 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2A4 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --69.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -20 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2A5 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --69.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -20 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2A6 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --75.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -19 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2A7 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --75.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -19 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2A8 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --81.1481837643292323 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -18 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2A9 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --81.1481837643292323 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -18 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2AA -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --87.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -17 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2AB -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --87.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -17 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2AC -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --93.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -16 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2AD -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --93.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -16 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2AE -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --99.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -15 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2AF -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --99.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -15 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2B0 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --105.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -14 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2B1 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --105.1481837643292465 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -14 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -CIRCLE - 5 -2B2 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --42.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2B3 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --42.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2B4 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --48.1481837643292323 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2B5 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --48.1481837643292323 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2B6 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --54.1481837643292394 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2B7 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --54.1481837643292394 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2B8 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --60.1481837643292394 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2B9 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --60.1481837643292394 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2BA -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --66.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2BB -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --66.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2BC -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --78.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2BD -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --78.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2BE -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --84.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2BF -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --84.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2C0 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --90.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2C1 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --90.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2C2 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --96.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2C3 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --96.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2C4 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --102.1481837643292323 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2C5 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --102.1481837643292323 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2C6 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --108.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2C7 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --108.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2C8 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --72.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2C9 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --72.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2CA -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.5993417798152194 - 20 --36.1481837643292394 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2CB -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --36.1481837643292394 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2CC -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --45.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2CD -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --45.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2CE -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --51.1481837643292323 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2CF -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --51.1481837643292323 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2D0 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --57.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2D1 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --57.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2D2 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --63.1481837643292394 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2D3 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --63.1481837643292394 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2D4 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --69.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2D5 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --69.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2D6 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --75.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2D7 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --75.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2D8 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --81.1481837643292323 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2D9 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --81.1481837643292323 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2DA -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --87.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2DB -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --87.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2DC -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --93.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2DD -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --93.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2DE -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --99.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2DF -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --99.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2E0 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --105.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2E1 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --105.1481837643292465 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2E2 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -105.599341779815262 - 20 --39.1481837643292394 - 30 -0.0 - 40 -2.4216449999999998 - 0 -CIRCLE - 5 -2E3 -100 -AcDbEntity -100 -AcDbCircle - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.0993417798152478 - 20 --39.1481837643292394 - 30 -0.0 - 40 -2.4216449999999998 - 0 -LINE - 5 -2E4 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.4006582201847593 - 20 --90.1481837643292465 - 30 -0.0 - 11 --6.3223032201847627 - 21 --90.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -2E5 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.4006582201847593 - 20 --82.6481837643292465 - 30 -0.0 - 11 --26.4006582201847593 - 21 --82.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -2E6 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.4006582201847593 - 20 --82.6481837643292465 - 30 -0.0 - 11 --26.4006582201847593 - 21 --84.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -2E7 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.4006582201847593 - 20 --84.1481837643292465 - 30 -0.0 - 11 --6.3223032201847627 - 21 --84.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -2E8 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.4006582201847593 - 20 --75.1481837643292465 - 30 -0.0 - 11 --24.9006582201847664 - 21 --75.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -2E9 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --24.9006582201847664 - 20 --75.1481837643292465 - 30 -0.0 - 11 --24.9006582201847664 - 21 --78.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -2EA -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --24.9006582201847664 - 20 --78.1481837643292465 - 30 -0.0 - 11 --6.3223032201847627 - 21 --78.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -2EB -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.4006582201847593 - 20 --67.6481837643292465 - 30 -0.0 - 11 --23.4006582201847735 - 21 --67.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -2EC -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --23.4006582201847735 - 20 --67.6481837643292465 - 30 -0.0 - 11 --23.4006582201847735 - 21 --72.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -2ED -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --23.4006582201847735 - 20 --72.1481837643292465 - 30 -0.0 - 11 --6.3223032201847627 - 21 --72.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -2EE -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.4006582201847593 - 20 --60.1481837643292394 - 30 -0.0 - 11 --21.9006582201847451 - 21 --60.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -2EF -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -81.5993417798152336 - 20 --58.6481837643292394 - 30 -0.0 - 11 -81.5993417798152336 - 21 --66.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -2F0 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --21.9006582201847451 - 20 --60.1481837643292394 - 30 -0.0 - 11 --21.9006582201847451 - 21 --66.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -2F1 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -81.5993417798152336 - 20 --66.1481837643292465 - 30 -0.0 - 11 -97.1776967798152498 - 21 --66.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -2F2 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --21.9006582201847451 - 20 --66.1481837643292465 - 30 -0.0 - 11 --6.3223032201847627 - 21 --66.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -2F3 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.4006582201847593 - 20 --52.6481837643292465 - 30 -0.0 - 11 --20.4006582201847522 - 21 --52.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -2F4 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -83.099341779815262 - 20 --51.1481837643292323 - 30 -0.0 - 11 -83.099341779815262 - 21 --60.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -2F5 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --20.4006582201847522 - 20 --52.6481837643292465 - 30 -0.0 - 11 --20.4006582201847522 - 21 --60.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -2F6 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -83.099341779815262 - 20 --60.1481837643292394 - 30 -0.0 - 11 -97.1776967798152498 - 21 --60.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -2F7 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --20.4006582201847522 - 20 --60.1481837643292394 - 30 -0.0 - 11 --6.3223032201847627 - 21 --60.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -2F8 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --43.6481837643292323 - 30 -0.0 - 11 -84.5993417798152478 - 21 --43.6481837643292323 - 31 -0.0 - 0 -LINE - 5 -2F9 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --43.6481837643292323 - 30 -0.0 - 11 --18.9006582201847593 - 21 --43.6481837643292323 - 31 -0.0 - 0 -LINE - 5 -2FA -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -84.5993417798152478 - 20 --43.6481837643292323 - 30 -0.0 - 11 -84.5993417798152478 - 21 --54.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -2FB -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.9006582201847593 - 20 --43.6481837643292323 - 30 -0.0 - 11 --18.9006582201847593 - 21 --54.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -2FC -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -84.5993417798152478 - 20 --54.1481837643292394 - 30 -0.0 - 11 -97.1776967798152498 - 21 --54.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -2FD -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.9006582201847593 - 20 --54.1481837643292394 - 30 -0.0 - 11 --6.3223032201847627 - 21 --54.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -2FE -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --36.1481837643292394 - 30 -0.0 - 11 -86.0993417798152478 - 21 --36.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -2FF -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --36.1481837643292394 - 30 -0.0 - 11 --17.4006582201847664 - 21 --36.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -300 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -86.0993417798152478 - 20 --36.1481837643292394 - 30 -0.0 - 11 -86.0993417798152478 - 21 --48.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -301 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.4006582201847664 - 20 --36.1481837643292394 - 30 -0.0 - 11 --17.4006582201847664 - 21 --48.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -302 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -86.0993417798152478 - 20 --48.1481837643292323 - 30 -0.0 - 11 -97.1776967798152498 - 21 --48.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -303 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.4006582201847664 - 20 --48.1481837643292323 - 30 -0.0 - 11 --6.3223032201847627 - 21 --48.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -304 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --28.6481837643292394 - 30 -0.0 - 11 -87.5993417798152478 - 21 --28.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -305 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --28.6481837643292394 - 30 -0.0 - 11 --15.9006582201847682 - 21 --28.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -306 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -87.5993417798152478 - 20 --28.6481837643292394 - 30 -0.0 - 11 -87.5993417798152478 - 21 --42.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -307 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.9006582201847682 - 20 --28.6481837643292394 - 30 -0.0 - 11 --15.9006582201847682 - 21 --42.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -308 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -87.5993417798152478 - 20 --42.1481837643292465 - 30 -0.0 - 11 -97.1776967798152498 - 21 --42.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -309 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.9006582201847682 - 20 --42.1481837643292465 - 30 -0.0 - 11 --6.3223032201847627 - 21 --42.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -30A -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --21.1481837643292394 - 30 -0.0 - 11 -89.0993417798152336 - 21 --21.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -30B -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --21.1481837643292394 - 30 -0.0 - 11 --14.4006582201847468 - 21 --21.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -30C -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -89.0993417798152336 - 20 --21.1481837643292394 - 30 -0.0 - 11 -89.0993417798152336 - 21 --36.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -30D -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --14.4006582201847468 - 20 --21.1481837643292394 - 30 -0.0 - 11 --14.4006582201847468 - 21 --36.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -30E -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -89.0993417798152336 - 20 --36.1481837643292394 - 30 -0.0 - 11 -97.1776967798152498 - 21 --36.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -30F -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --14.4006582201847468 - 20 --36.1481837643292394 - 30 -0.0 - 11 --6.3223032201847627 - 21 --36.1481837643292394 - 31 -0.0 - 0 -LINE - 5 -310 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.4006582201847593 - 20 --97.6481837643292465 - 30 -0.0 - 11 --26.4006582201847593 - 21 --97.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -311 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.4006582201847593 - 20 --97.6481837643292465 - 30 -0.0 - 11 --26.4006582201847593 - 21 --96.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -312 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.4006582201847593 - 20 --96.1481837643292465 - 30 -0.0 - 11 --6.3223032201847627 - 21 --96.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -313 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.4006582201847593 - 20 --105.1481837643292465 - 30 -0.0 - 11 --24.9006582201847664 - 21 --105.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -314 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --24.9006582201847664 - 20 --105.1481837643292465 - 30 -0.0 - 11 --24.9006582201847664 - 21 --102.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -315 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --24.9006582201847664 - 20 --102.1481837643292323 - 30 -0.0 - 11 --6.3223032201847627 - 21 --102.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -316 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -74.0993417798152336 - 20 --112.6481837643292465 - 30 -0.0 - 11 -83.099341779815262 - 21 --112.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -317 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.4006582201847593 - 20 --112.6481837643292465 - 30 -0.0 - 11 --20.4006582201847522 - 21 --112.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -318 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -83.099341779815262 - 20 --112.6481837643292465 - 30 -0.0 - 11 -83.099341779815262 - 21 --87.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -319 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --20.4006582201847522 - 20 --112.6481837643292465 - 30 -0.0 - 11 --20.4006582201847522 - 21 --87.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -31A -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -83.099341779815262 - 20 --87.1481837643292465 - 30 -0.0 - 11 -103.1776967798152356 - 21 --87.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -31B -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --20.4006582201847522 - 20 --87.1481837643292465 - 30 -0.0 - 11 --0.3223032201847555 - 21 --87.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -31C -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -74.0993417798152336 - 20 --120.1481837643292465 - 30 -0.0 - 11 -84.5993417798152478 - 21 --120.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -31D -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.4006582201847593 - 20 --120.1481837643292465 - 30 -0.0 - 11 --18.9006582201847593 - 21 --120.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -31E -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -84.5993417798152478 - 20 --120.1481837643292465 - 30 -0.0 - 11 -84.5993417798152478 - 21 --93.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -31F -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.9006582201847593 - 20 --120.1481837643292465 - 30 -0.0 - 11 --18.9006582201847593 - 21 --93.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -320 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -84.5993417798152478 - 20 --93.1481837643292465 - 30 -0.0 - 11 -103.1776967798152356 - 21 --93.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -321 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.9006582201847593 - 20 --93.1481837643292465 - 30 -0.0 - 11 --0.3223032201847555 - 21 --93.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -322 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -74.0993417798152336 - 20 --127.6481837643292465 - 30 -0.0 - 11 -86.0993417798152478 - 21 --127.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -323 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.4006582201847593 - 20 --127.6481837643292465 - 30 -0.0 - 11 --17.4006582201847664 - 21 --127.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -324 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -86.0993417798152478 - 20 --127.6481837643292465 - 30 -0.0 - 11 -86.0993417798152478 - 21 --105.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -325 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.4006582201847664 - 20 --127.6481837643292465 - 30 -0.0 - 11 --17.4006582201847664 - 21 --105.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -326 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -86.0993417798152478 - 20 --105.1481837643292465 - 30 -0.0 - 11 -103.1776967798152356 - 21 --105.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -327 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.4006582201847664 - 20 --105.1481837643292465 - 30 -0.0 - 11 --0.3223032201847555 - 21 --105.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -328 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -74.0993417798152336 - 20 --135.1481837643292465 - 30 -0.0 - 11 -87.5993417798152478 - 21 --135.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -329 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.4006582201847593 - 20 --135.1481837643292465 - 30 -0.0 - 11 --15.9006582201847682 - 21 --135.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -32A -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -87.5993417798152478 - 20 --135.1481837643292465 - 30 -0.0 - 11 -87.5993417798152478 - 21 --108.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -32B -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.9006582201847682 - 20 --135.1481837643292465 - 30 -0.0 - 11 --15.9006582201847682 - 21 --108.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -32C -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -87.5993417798152478 - 20 --108.1481837643292465 - 30 -0.0 - 11 -97.1776967798152498 - 21 --108.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -32D -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.9006582201847682 - 20 --108.1481837643292465 - 30 -0.0 - 11 --6.3223032201847627 - 21 --108.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -32E -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --13.6481837643292394 - 30 -0.0 - 11 -90.599341779815262 - 21 --13.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -32F -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --13.6481837643292394 - 30 -0.0 - 11 --12.9006582201847504 - 21 --13.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -330 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -90.599341779815262 - 20 --13.6481837643292394 - 30 -0.0 - 11 -90.599341779815262 - 21 --99.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -331 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.9006582201847504 - 20 --13.6481837643292394 - 30 -0.0 - 11 --12.9006582201847504 - 21 --99.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -332 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -90.599341779815262 - 20 --99.1481837643292465 - 30 -0.0 - 11 -103.1776967798152356 - 21 --99.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -333 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.9006582201847504 - 20 --99.1481837643292465 - 30 -0.0 - 11 --0.3223032201847555 - 21 --99.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -334 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -95.0993417798152763 - 20 --36.1481837643292394 - 30 -0.0 - 11 -95.0993417798152763 - 21 --108.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -335 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --8.4006582201847682 - 20 --36.1481837643292394 - 30 -0.0 - 11 --8.4006582201847682 - 21 --108.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -336 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -110.0993417798152763 - 20 --39.1481837643292394 - 30 -0.0 - 11 -110.0993417798152763 - 21 --105.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -337 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -6.5993417798152318 - 20 --39.1481837643292394 - 30 -0.0 - 11 -6.5993417798152318 - 21 --105.1481837643292465 - 31 -0.0 - 0 -ARC - 5 -338 -100 -AcDbEntity - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -99.5993417798152194 - 20 --36.1481837643292394 - 30 -0.0 - 40 -4.5 -100 -AcDbArc - 50 -63.4349500000000006 - 51 -180.0 - 0 -ARC - 5 -339 -100 -AcDbEntity - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --3.9006582201847575 - 20 --36.1481837643292394 - 30 -0.0 - 40 -4.5 -100 -AcDbArc - 50 -63.4349500000000006 - 51 -180.0 - 0 -ARC - 5 -33A -100 -AcDbEntity - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -105.599341779815262 - 20 --39.1481837643292394 - 30 -0.0 - 40 -4.5 -100 -AcDbArc - 50 -0.0 - 51 -63.4349479999999986 - 0 -ARC - 5 -33B -100 -AcDbEntity - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -2.0993417798152478 - 20 --39.1481837643292394 - 30 -0.0 - 40 -4.5 -100 -AcDbArc - 50 -0.0 - 51 -63.4349479999999986 - 0 -ARC - 5 -33C -100 -AcDbEntity - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -99.5993417798152194 - 20 --108.1481837643292465 - 30 -0.0 - 40 -4.5 -100 -AcDbArc - 50 -180.0 - 51 -296.5650469999999927 - 0 -ARC - 5 -33D -100 -AcDbEntity - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 --3.9006582201847575 - 20 --108.1481837643292465 - 30 -0.0 - 40 -4.5 -100 -AcDbArc - 50 -180.0 - 51 -296.5650469999999927 - 0 -ARC - 5 -33E -100 -AcDbEntity - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -105.599341779815262 - 20 --105.1481837643292465 - 30 -0.0 - 40 -4.5 -100 -AcDbArc - 50 -296.5650549999999726 - 51 -360.0 - 0 -ARC - 5 -33F -100 -AcDbEntity - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbCircle - 10 -2.0993417798152478 - 20 --105.1481837643292465 - 30 -0.0 - 40 -4.5 -100 -AcDbArc - 50 -296.5650549999999726 - 51 -360.0 - 0 -LINE - 5 -340 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -101.6118017798152522 - 20 --32.1232637643292449 - 30 -0.0 - 11 -107.611801779815238 - 21 --35.1232637643292378 - 31 -0.0 - 0 -LINE - 5 -341 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --1.8881982201847549 - 20 --32.1232637643292449 - 30 -0.0 - 11 -4.1118017798152504 - 21 --35.1232637643292378 - 31 -0.0 - 0 -LINE - 5 -342 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -101.6118017798152522 - 20 --112.173103764329241 - 30 -0.0 - 11 -107.611801779815238 - 21 --109.1731037643292268 - 31 -0.0 - 0 -LINE - 5 -343 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --1.8881982201847549 - 20 --112.173103764329241 - 30 -0.0 - 11 -4.1118017798152504 - 21 --109.1731037643292268 - 31 -0.0 - 0 -LINE - 5 -344 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --10.6481837643292323 - 30 -0.0 - 11 -26.0993417798152407 - 21 -4.3518162356707535 - 31 -0.0 - 0 -LINE - 5 -345 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --10.6481837643292323 - 30 -0.0 - 11 --77.4006582201847522 - 21 -4.3518162356707535 - 31 -0.0 - 0 -LINE - 5 -346 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 -4.3518162356707535 - 30 -0.0 - 11 -102.5993417798152763 - 21 -4.3518162356707535 - 31 -0.0 - 0 -LINE - 5 -347 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 -4.3518162356707535 - 30 -0.0 - 11 --0.9006582201847682 - 21 -4.3518162356707535 - 31 -0.0 - 0 -LINE - 5 -348 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -102.5993417798152763 - 20 -4.3518162356707535 - 30 -0.0 - 11 -102.5993417798152763 - 21 --32.6170337643292356 - 31 -0.0 - 0 -LINE - 5 -349 -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --0.9006582201847682 - 20 -4.3518162356707535 - 30 -0.0 - 11 --0.9006582201847682 - 21 --32.6170337643292356 - 31 -0.0 - 0 -LINE - 5 -34A -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --138.1481837643292465 - 30 -0.0 - 11 -26.0993417798152407 - 21 --142.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -34B -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --138.1481837643292465 - 30 -0.0 - 11 --77.4006582201847522 - 21 --142.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -34C -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -26.0993417798152407 - 20 --142.6481837643292465 - 30 -0.0 - 11 -102.5993417798152763 - 21 --142.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -34D -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.4006582201847522 - 20 --142.6481837643292465 - 30 -0.0 - 11 --0.9006582201847682 - 21 --142.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -34E -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 -102.5993417798152763 - 20 --142.6481837643292465 - 30 -0.0 - 11 -102.5993417798152763 - 21 --111.6793337643292432 - 31 -0.0 - 0 -LINE - 5 -34F -100 -AcDbEntity -100 -AcDbLine - 8 -OUTLINE - 62 -7 -370 --1 - 6 -ByLayer - 10 --0.9006582201847682 - 20 --142.6481837643292465 - 30 -0.0 - 11 --0.9006582201847682 - 21 --111.6793337643292432 - 31 -0.0 - 0 -LINE - 5 -350 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --51.1481837643292323 - 30 -0.0 - 11 -83.099341779815262 - 21 --51.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -351 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --58.6481837643292394 - 30 -0.0 - 11 -81.5993417798152336 - 21 --58.6481837643292394 - 31 -0.0 - 0 -LINE - 5 -352 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --66.1481837643292465 - 30 -0.0 - 11 -80.0993417798152478 - 21 --66.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -353 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -80.0993417798152478 - 20 --66.1481837643292465 - 30 -0.0 - 11 -80.0993417798152478 - 21 --72.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -354 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -80.0993417798152478 - 20 --72.1481837643292465 - 30 -0.0 - 11 -97.1776967798152498 - 21 --72.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -355 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --73.6481837643292323 - 30 -0.0 - 11 -78.5993417798152478 - 21 --73.6481837643292323 - 31 -0.0 - 0 -LINE - 5 -356 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -78.5993417798152478 - 20 --73.6481837643292323 - 30 -0.0 - 11 -78.5993417798152478 - 21 --78.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -357 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -78.5993417798152478 - 20 --78.1481837643292465 - 30 -0.0 - 11 -97.1776967798152498 - 21 --78.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -358 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --81.1481837643292323 - 30 -0.0 - 11 -77.0993417798152478 - 21 --81.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -359 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -77.0993417798152478 - 20 --81.1481837643292323 - 30 -0.0 - 11 -77.0993417798152478 - 21 --84.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -35A -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -77.0993417798152478 - 20 --84.1481837643292465 - 30 -0.0 - 11 -97.1776967798152498 - 21 --84.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -35B -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --88.6481837643292465 - 30 -0.0 - 11 -75.599341779815262 - 21 --88.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -35C -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -75.599341779815262 - 20 --88.6481837643292465 - 30 -0.0 - 11 -75.599341779815262 - 21 --90.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -35D -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -75.599341779815262 - 20 --90.1481837643292465 - 30 -0.0 - 11 -97.1776967798152498 - 21 --90.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -35E -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --96.1481837643292465 - 30 -0.0 - 11 -97.1776967798152498 - 21 --96.1481837643292465 - 31 -0.0 - 0 -LINE - 5 -35F -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --103.6481837643292465 - 30 -0.0 - 11 -75.599341779815262 - 21 --103.6481837643292465 - 31 -0.0 - 0 -LINE - 5 -360 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -75.599341779815262 - 20 --103.6481837643292465 - 30 -0.0 - 11 -75.599341779815262 - 21 --102.1481837643292323 - 31 -0.0 - 0 -LINE - 5 -361 -100 -AcDbEntity -100 -AcDbLine - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 -75.599341779815262 - 20 --102.1481837643292323 - 30 -0.0 - 11 -97.1776967798152498 - 21 --102.1481837643292323 - 31 -0.0 - 0 -MTEXT - 5 -362 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --0.1481837643292465 - 30 -0.0 - 40 -3.0 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -parport.0 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -363 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --0.1481837643292465 - 30 -0.0 - 40 -3.0 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -parport.0 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -364 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -63.5993417798152407 - 20 --6.1481837643292323 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -configured\~as\~input - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -365 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.9006582201847664 - 20 --6.1481837643292323 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -configured\~as\~output - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -366 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --69.9006582201847522 - 20 --12.1481837643292394 - 30 -0.0 - 40 -1.7999999999999998 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-15-in - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -367 -100 -AcDbEntity -100 -AcDbMText - 8 -PINS - 62 -7 -370 --1 - 6 -ByLayer - 10 --69.9006582201847522 - 20 --15.1481837643292465 - 30 -0.0 - 40 -1.7999999999999998 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-15-in-not - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -368 -100 -AcDbEntity -100 -AcDbMText - 8 -INTERNALS - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.9006582201847575 - 20 --36.1481837643292394 - 30 -0.0 - 40 -2.25 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -13 - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -369 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.9006582201847593 - 20 --51.1481837643292323 - 30 -0.0 - 40 -1.3500000000000001 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-9-out-invert - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -36A -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.9006582201847593 - 20 --58.6481837643292394 - 30 -0.0 - 40 -1.3500000000000001 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-8-out-invert - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -36B -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.9006582201847593 - 20 --66.1481837643292465 - 30 -0.0 - 40 -1.3500000000000001 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-7-out-invert - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -36C -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.9006582201847593 - 20 --73.6481837643292323 - 30 -0.0 - 40 -1.3500000000000001 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-6-out-invert - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -36D -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.9006582201847593 - 20 --81.1481837643292323 - 30 -0.0 - 40 -1.3500000000000001 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-5-out-invert - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -36E -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.9006582201847593 - 20 --88.6481837643292465 - 30 -0.0 - 40 -1.3500000000000001 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-4-out-invert - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -36F -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.9006582201847593 - 20 --96.1481837643292465 - 30 -0.0 - 40 -1.3500000000000001 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-3-out-invert - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -370 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.9006582201847593 - 20 --103.6481837643292465 - 30 -0.0 - 40 -1.3500000000000001 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-2-out-invert - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -371 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.9006582201847593 - 20 --111.1481837643292465 - 30 -0.0 - 40 -1.3500000000000001 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-17-out-invert - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -372 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.9006582201847593 - 20 --118.6481837643292465 - 30 -0.0 - 40 -1.3500000000000001 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-16-out-invert - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -373 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.9006582201847593 - 20 --126.1481837643292465 - 30 -0.0 - 40 -1.3500000000000001 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-14-out-invert - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -374 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.9006582201847593 - 20 --133.6481837643292465 - 30 -0.0 - 40 -1.3500000000000001 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-1-out-invert - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -375 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -54.5993417798152478 - 20 --111.1481837643292465 - 30 -0.0 - 40 -1.3500000000000001 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-17-out-invert - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -376 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -54.5993417798152478 - 20 --118.6481837643292465 - 30 -0.0 - 40 -1.3500000000000001 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-16-out-invert - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -377 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -54.5993417798152478 - 20 --126.1481837643292465 - 30 -0.0 - 40 -1.3500000000000001 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-14-out-invert - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -378 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -54.5993417798152478 - 20 --133.6481837643292465 - 30 -0.0 - 40 -1.3500000000000001 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pin-1-out-invert - 7 -romand - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -379 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -379 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -37B - 3 -HIDETEXT -350 -37A - 0 -DICTIONARYVAR - 5 -37A -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -37B -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/hal/images/hal_pid_block_diag.dxf b/docs/src/hal/images/hal_pid_block_diag.dxf deleted file mode 100644 index 612fbde7be7..00000000000 --- a/docs/src/hal/images/hal_pid_block_diag.dxf +++ /dev/null @@ -1,12990 +0,0 @@ -999 -dxflib 2.0.4.8 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMTAD - 70 -0 - 9 -$AXISUNIT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$USERR4 - 40 -0.0 - 9 -$CLAYER - 8 -0 - 9 -$MENU - 1 -acad - 9 -$CHAMFERA - 40 -0.0 - 9 -$ATTREQ - 70 -1 - 9 -$UCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$USERR5 - 40 -0.0 - 9 -$SHADEDIF - 70 -70 - 9 -$TILEMODE - 70 -1 - 9 -$VISRETAIN - 70 -0 - 9 -$DIMASZ - 40 -0.18 - 9 -$GRIDUNIT - 10 -0.0 - 20 -0.0 - 9 -$DIMADEC - 70 -0 - 9 -$EXTMIN - 10 -4.4405000000000001 - 20 -9.4580000000000002 - 30 -0.0 - 9 -$ORTHOMODE - 70 -0 - 9 -$REGENMODE - 70 -1 - 9 -$TRACEWID - 40 -0.05 - 9 -$CHAMFERB - 40 -0.0 - 9 -$UCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMGAP - 40 -0.09 - 9 -$DIMSHO - 70 -1 - 9 -$DIMALT - 70 -0 - 9 -$DIMSAH - 70 -0 - 9 -$DIMTFAC - 40 -1.0 - 9 -$SKETCHINC - 40 -0.1 - 9 -$USRTIMER - 70 -1 - 9 -$ANGBASE - 50 -0.0 - 9 -$PUCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$LIMMIN - 10 -0.0 - 20 -0.0 - 9 -$DIMTSZ - 40 -0.0 - 9 -$AXISMODE - 70 -0 - 9 -$SPLFRAME - 70 -0 - 9 -$SURFTYPE - 70 -6 - 9 -$PUCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$SPLINESEGS - 70 -8 - 9 -$AUPREC - 70 -0 - 9 -$LUNITS - 70 -2 - 9 -$BLIPMODE - 70 -1 - 9 -$SURFTAB1 - 70 -6 - 9 -$DWGCODEPAGE - 3 -dos850 - 9 -$INSBASE - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMRND - 40 -0.0 - 9 -$DIMCEN - 40 -0.09 - 9 -$ELEVATION - 40 -0.0 - 9 -$SKPOLY - 70 -0 - 9 -$SURFTAB2 - 70 -6 - 9 -$USERI1 - 70 -0 - 9 -$UNITMODE - 70 -0 - 9 -$DIMEXO - 40 -0.0625 - 9 -$INSUNITS - 70 -4 - 9 -$EXTMAX - 10 -16.4594999999999985 - 20 -17.9420000000000002 - 30 -0.0 - 9 -$FILLMODE - 70 -1 - 9 -$DRAGMODE - 70 -2 - 9 -$TEXTSIZE - 40 -0.2 - 9 -$PELEVATION - 40 -0.0 - 9 -$UCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$USERI2 - 70 -0 - 9 -$DIMSCALE - 40 -1.0 - 9 -$DIMDLE - 40 -0.0 - 9 -$DIMZIN - 70 -0 - 9 -$TDUSRTIMER - 40 -0.0 - 9 -$ANGDIR - 70 -0 - 9 -$SURFU - 70 -6 - 9 -$USERI3 - 70 -0 - 9 -$DIMLUNIT - 70 -2 - 9 -$LIMMAX - 10 -0.0 - 20 -0.0 - 9 -$QTEXTMODE - 70 -0 - 9 -$OSMODE - 70 -0 - 9 -$SURFV - 70 -6 - 9 -$USERI4 - 70 -0 - 9 -$WORLDVIEW - 70 -1 - 9 -$DIMTXT - 40 -0.18 - 9 -$GRIDMODE - 70 -1 - 9 -$ATTMODE - 70 -1 - 9 -$DIMLIM - 70 -0 - 9 -$DIMSE1 - 70 -0 - 9 -$THICKNESS - 40 -0.0 - 9 -$LIMCHECK - 70 -0 - 9 -$PDMODE - 70 -0 - 9 -$HANDLING - 70 -1 - 9 -$USERI5 - 70 -0 - 9 -$LUPREC - 70 -4 - 9 -$CELTYPE - 6 -CONTINUOUS - 9 -$DIMTOH - 70 -1 - 9 -$DIMSE2 - 70 -0 - 9 -$DIMLFAC - 40 -1.0 - 9 -$DIMSOXD - 70 -0 - 9 -$TDINDWG - 40 -0.0 - 9 -$SPLINETYPE - 70 -6 - 9 -$PUCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PEXTMIN - 10 -100000000000000000000.0 - 20 -100000000000000000000.0 - 30 -100000000000000000000.0 - 9 -$PEXTMAX - 10 --100000000000000000000.0 - 20 --100000000000000000000.0 - 30 --100000000000000000000.0 - 9 -$CECOLOR - 62 -256 - 9 -$DIMDLI - 40 -0.38 - 9 -$DIMTM - 40 -0.0 - 9 -$DIMASO - 70 -1 - 9 -$DIMTVP - 40 -0.0 - 9 -$DIMSTYLE - 2 -STANDARD - 9 -$PLINEWID - 40 -0.0 - 9 -$PLIMCHECK - 70 -0 - 9 -$PLIMMAX - 10 -210.0 - 20 -297.0 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$LTSCALE - 40 -1.0 - 9 -$DIMTIH - 70 -1 - 9 -$DIMALTD - 70 -2 - 9 -$DIMCLRT - 70 -0 - 9 -$FILLETRAD - 40 -0.0 - 9 -$TDUPDATE - 40 -0.0 - 9 -$MAXACTVP - 70 -16 - 9 -$TREEDEPTH - 70 -3020 - 9 -$PINSBASE - 10 --48.9514843308081851 - 20 -34.2887365418052497 - 30 -0.0 - 9 -$DIMEXE - 40 -0.18 - 9 -$DIMCLRD - 70 -0 - 9 -$PDSIZE - 40 -0.0 - 9 -$ATTDIA - 70 -0 - 9 -$USERR1 - 40 -0.0 - 9 -$DIMAUNIT - 70 -0 - 9 -$TEXTSTYLE - 7 -STANDARD - 9 -$DIMTP - 40 -0.0 - 9 -$DIMTOL - 70 -0 - 9 -$DIMALTF - 40 -25.3999999999999986 - 9 -$DIMTOFL - 70 -0 - 9 -$DIMCLRE - 70 -0 - 9 -$TDCREATE - 40 -0.0 - 9 -$COORDS - 70 -0 - 9 -$USERR2 - 40 -0.0 - 9 -$SHADEDGE - 70 -3 - 9 -$PLINEGEN - 70 -1 - 9 -$PSLTSCALE - 70 -0 - 9 -$AUNITS - 70 -0 - 9 -$MIRRTEXT - 70 -1 - 9 -$DIMTIX - 70 -0 - 9 -$USERR3 - 40 -0.0 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -7 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -MERGE - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -STANDARD - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PINS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PARAMS - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -47 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -OUTLINE - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -48 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -INTERNALS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -0.75 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -0.18 - 42 -0.0625 - 43 -3.75 - 44 -0.18 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -0.18 -141 -2.5 -143 -0.03937007874016 -147 -0.09 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LWPOLYLINE - 5 -49 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -219.4089253878422596 - 20 -106.6764203447364139 - 10 -219.4089253878422596 - 20 -109.6764203447364565 - 10 -238.9089253878424302 - 20 -109.6764203447364565 - 10 -240.4089253878423449 - 20 -108.1764203447365418 - 10 -238.9089253878424302 - 20 -106.6764203447364139 - 10 -219.4089253878422596 - 20 -106.6764203447364139 - 10 -219.4089253878422596 - 20 -106.6764203447364139 - 0 -LWPOLYLINE - 5 -4A - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -61.9089253878422596 - 20 -67.6764203447364991 - 10 -61.9089253878422596 - 20 -70.6764203447365418 - 10 -81.4089253878424302 - 20 -70.6764203447365418 - 10 -82.9089253878423449 - 20 -69.1764203447364139 - 10 -81.4089253878424302 - 20 -67.6764203447364991 - 10 -61.9089253878422596 - 20 -67.6764203447364991 - 10 -61.9089253878422596 - 20 -67.6764203447364991 - 0 -LWPOLYLINE - 5 -4B - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -61.9089253878422596 - 20 -112.6764203447364991 - 10 -61.9089253878422596 - 20 -115.6764203447365418 - 10 -81.4089253878424302 - 20 -115.6764203447365418 - 10 -82.9089253878423449 - 20 -114.1764203447364139 - 10 -81.4089253878424302 - 20 -112.6764203447364991 - 10 -61.9089253878422596 - 20 -112.6764203447364991 - 10 -61.9089253878422596 - 20 -112.6764203447364991 - 0 -MTEXT - 5 -4C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -228.4089253878421744 - 20 -108.1764203447365418 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -output - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -4D -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -70.9089253878421744 - 20 -69.1764203447364139 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -enable - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -4E -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -70.9089253878421744 - 20 -114.1764203447364139 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -command - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LWPOLYLINE - 5 -4F - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -220.9089253878421744 - 20 -168.1764203447365276 - 10 -219.4089253878422596 - 20 -169.6764203447364707 - 10 -220.9089253878421744 - 20 -171.1764203447365844 - 10 -240.4089253878423449 - 20 -171.1764203447365844 - 10 -240.4089253878423449 - 20 -168.1764203447365276 - 10 -220.9089253878421744 - 20 -168.1764203447365276 - 10 -220.9089253878421744 - 20 -168.1764203447365276 - 0 -LWPOLYLINE - 5 -50 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -63.4089253878421744 - 20 -154.6764203447364707 - 10 -61.9089253878422596 - 20 -156.1764203447365844 - 10 -63.4089253878421744 - 20 -157.6764203447364991 - 10 -82.9089253878423449 - 20 -157.6764203447364991 - 10 -82.9089253878423449 - 20 -154.6764203447364707 - 10 -63.4089253878421744 - 20 -154.6764203447364707 - 10 -63.4089253878421744 - 20 -154.6764203447364707 - 0 -MTEXT - 5 -51 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -229.9089253878420891 - 20 -169.6764203447364707 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -feedback - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -52 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -72.4089253878420891 - 20 -156.1764203447365844 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -error - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -53 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -151.9089253878422596 - 20 -55.6764203447365418 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -max-cmdDD - 7 -romand - 50 -359.9999829999999861 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -54 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -120.4089253878423449 - 20 -88.6764203447365844 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -max-cmdD - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -55 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -148.9089253878424302 - 20 -108.1764203447365418 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -max-errorD - 7 -romand - 50 -359.9999829999999861 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -56 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -162.4089253878420891 - 20 -141.1764203447365844 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -Pgain - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -57 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -162.4089253878420891 - 20 -73.6764203447365844 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -FF2 - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -58 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -175.9089253878421744 - 20 -108.1764203447365418 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -bias - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -59 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -162.4089253878420891 - 20 -99.1764203447364139 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -FF0 - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5A -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -162.4089253878420891 - 20 -85.6764203447365418 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -FF1 - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5B -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -162.4089253878420891 - 20 -126.1764203447365844 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -Dgain - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5C -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -162.4089253878420891 - 20 -165.1764203447364991 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -Igain - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5D -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -148.9089253878424302 - 20 -147.1764203447364707 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -max-errorI - 7 -romand - 50 -359.9999829999999861 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5E -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -196.9089253878422596 - 20 -73.6764203447365844 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -max-output - 7 -romand - 50 -359.9999829999999861 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -5F -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -115.9089253878421744 - 20 -144.1764203447364139 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -max-error - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -60 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -102.4089253878420891 - 20 -126.1764203447365844 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -deadband - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LINE - 5 -61 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -142.9089253878423449 - 20 -57.1764203447364565 - 30 -0.0 - 11 -142.9089253878423449 - 21 -54.1764203447364139 - 31 -0.0 - 0 -LINE - 5 -62 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -111.4089253878424302 - 20 -87.1764203447364565 - 30 -0.0 - 11 -111.4089253878424302 - 21 -90.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -63 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -139.9089253878420891 - 20 -109.6764203447364565 - 30 -0.0 - 11 -139.9089253878420891 - 21 -106.6764203447364139 - 31 -0.0 - 0 -LINE - 5 -64 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -153.4089253878421744 - 20 -139.6764203447364707 - 30 -0.0 - 11 -153.4089253878421744 - 21 -142.6764203447364991 - 31 -0.0 - 0 -LINE - 5 -65 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -153.4089253878421744 - 20 -72.1764203447364565 - 30 -0.0 - 11 -153.4089253878421744 - 21 -75.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -66 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -166.9089253878422596 - 20 -106.6764203447364139 - 30 -0.0 - 11 -166.9089253878422596 - 21 -109.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -67 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -153.4089253878421744 - 20 -97.6764203447364991 - 30 -0.0 - 11 -153.4089253878421744 - 21 -100.6764203447365418 - 31 -0.0 - 0 -LINE - 5 -68 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -153.4089253878421744 - 20 -84.1764203447364139 - 30 -0.0 - 11 -153.4089253878421744 - 21 -87.1764203447364565 - 31 -0.0 - 0 -LINE - 5 -69 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -153.4089253878421744 - 20 -124.6764203447364565 - 30 -0.0 - 11 -153.4089253878421744 - 21 -127.6764203447364991 - 31 -0.0 - 0 -LINE - 5 -6A -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -153.4089253878421744 - 20 -163.6764203447365844 - 30 -0.0 - 11 -153.4089253878421744 - 21 -166.6764203447364139 - 31 -0.0 - 0 -LINE - 5 -6B -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -139.9089253878420891 - 20 -148.6764203447365844 - 30 -0.0 - 11 -139.9089253878420891 - 21 -145.6764203447365276 - 31 -0.0 - 0 -LINE - 5 -6C -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -187.9089253878423449 - 20 -75.1764203447364991 - 30 -0.0 - 11 -187.9089253878423449 - 21 -72.1764203447364565 - 31 -0.0 - 0 -LINE - 5 -6D -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -106.9089253878422596 - 20 -142.6764203447364991 - 30 -0.0 - 11 -106.9089253878422596 - 21 -145.6764203447365276 - 31 -0.0 - 0 -LINE - 5 -6E -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -93.4089253878421744 - 20 -124.6764203447364565 - 30 -0.0 - 11 -93.4089253878421744 - 21 -127.6764203447364991 - 31 -0.0 - 0 -LINE - 5 -6F -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -142.9089253878423449 - 20 -54.1764203447364139 - 30 -0.0 - 11 -160.9089253878421744 - 21 -54.1764203447364139 - 31 -0.0 - 0 -LINE - 5 -70 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -111.4089253878424302 - 20 -90.1764203447364991 - 30 -0.0 - 11 -129.4089253878422596 - 21 -90.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -71 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -139.9089253878420891 - 20 -106.6764203447364139 - 30 -0.0 - 11 -157.9089253878423449 - 21 -106.6764203447364139 - 31 -0.0 - 0 -LINE - 5 -72 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -153.4089253878421744 - 20 -142.6764203447364991 - 30 -0.0 - 11 -171.4089253878424302 - 21 -142.6764203447364991 - 31 -0.0 - 0 -LINE - 5 -73 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -153.4089253878421744 - 20 -75.1764203447364991 - 30 -0.0 - 11 -171.4089253878424302 - 21 -75.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -74 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -166.9089253878422596 - 20 -109.6764203447364565 - 30 -0.0 - 11 -184.9089253878420891 - 21 -109.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -75 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -153.4089253878421744 - 20 -100.6764203447365418 - 30 -0.0 - 11 -171.4089253878424302 - 21 -100.6764203447365418 - 31 -0.0 - 0 -LINE - 5 -76 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -153.4089253878421744 - 20 -87.1764203447364565 - 30 -0.0 - 11 -171.4089253878424302 - 21 -87.1764203447364565 - 31 -0.0 - 0 -LINE - 5 -77 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -153.4089253878421744 - 20 -127.6764203447364991 - 30 -0.0 - 11 -171.4089253878424302 - 21 -127.6764203447364991 - 31 -0.0 - 0 -LINE - 5 -78 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -153.4089253878421744 - 20 -166.6764203447364139 - 30 -0.0 - 11 -171.4089253878424302 - 21 -166.6764203447364139 - 31 -0.0 - 0 -LINE - 5 -79 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -139.9089253878420891 - 20 -145.6764203447365276 - 30 -0.0 - 11 -157.9089253878423449 - 21 -145.6764203447365276 - 31 -0.0 - 0 -LINE - 5 -7A -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -187.9089253878423449 - 20 -72.1764203447364565 - 30 -0.0 - 11 -205.9089253878421744 - 21 -72.1764203447364565 - 31 -0.0 - 0 -LINE - 5 -7B -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -106.9089253878422596 - 20 -145.6764203447365276 - 30 -0.0 - 11 -124.9089253878420891 - 21 -145.6764203447365276 - 31 -0.0 - 0 -LINE - 5 -7C -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -93.4089253878421744 - 20 -127.6764203447364991 - 30 -0.0 - 11 -111.4089253878424302 - 21 -127.6764203447364991 - 31 -0.0 - 0 -LINE - 5 -7D -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -160.9089253878421744 - 20 -54.1764203447364139 - 30 -0.0 - 11 -160.9089253878421744 - 21 -57.1764203447364565 - 31 -0.0 - 0 -LINE - 5 -7E -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -129.4089253878422596 - 20 -90.1764203447364991 - 30 -0.0 - 11 -129.4089253878422596 - 21 -87.1764203447364565 - 31 -0.0 - 0 -LINE - 5 -7F -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -157.9089253878423449 - 20 -106.6764203447364139 - 30 -0.0 - 11 -157.9089253878423449 - 21 -109.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -80 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -142.6764203447364991 - 30 -0.0 - 11 -171.4089253878424302 - 21 -139.6764203447364707 - 31 -0.0 - 0 -LINE - 5 -81 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -75.1764203447364991 - 30 -0.0 - 11 -171.4089253878424302 - 21 -72.1764203447364565 - 31 -0.0 - 0 -LINE - 5 -82 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -184.9089253878420891 - 20 -109.6764203447364565 - 30 -0.0 - 11 -184.9089253878420891 - 21 -106.6764203447364139 - 31 -0.0 - 0 -LINE - 5 -83 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -100.6764203447365418 - 30 -0.0 - 11 -171.4089253878424302 - 21 -97.6764203447364991 - 31 -0.0 - 0 -LINE - 5 -84 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -87.1764203447364565 - 30 -0.0 - 11 -171.4089253878424302 - 21 -84.1764203447364139 - 31 -0.0 - 0 -LINE - 5 -85 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -127.6764203447364991 - 30 -0.0 - 11 -171.4089253878424302 - 21 -124.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -86 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -166.6764203447364139 - 30 -0.0 - 11 -171.4089253878424302 - 21 -163.6764203447365844 - 31 -0.0 - 0 -LINE - 5 -87 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -157.9089253878423449 - 20 -145.6764203447365276 - 30 -0.0 - 11 -157.9089253878423449 - 21 -148.6764203447365844 - 31 -0.0 - 0 -LINE - 5 -88 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -205.9089253878421744 - 20 -72.1764203447364565 - 30 -0.0 - 11 -205.9089253878421744 - 21 -75.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -89 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -124.9089253878420891 - 20 -145.6764203447365276 - 30 -0.0 - 11 -124.9089253878420891 - 21 -142.6764203447364991 - 31 -0.0 - 0 -LINE - 5 -8A -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -111.4089253878424302 - 20 -127.6764203447364991 - 30 -0.0 - 11 -111.4089253878424302 - 21 -124.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -8B -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -160.9089253878421744 - 20 -57.1764203447364565 - 30 -0.0 - 11 -142.9089253878423449 - 21 -57.1764203447364565 - 31 -0.0 - 0 -LINE - 5 -8C -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -129.4089253878422596 - 20 -87.1764203447364565 - 30 -0.0 - 11 -111.4089253878424302 - 21 -87.1764203447364565 - 31 -0.0 - 0 -LINE - 5 -8D -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -157.9089253878423449 - 20 -109.6764203447364565 - 30 -0.0 - 11 -139.9089253878420891 - 21 -109.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -8E -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -139.6764203447364707 - 30 -0.0 - 11 -153.4089253878421744 - 21 -139.6764203447364707 - 31 -0.0 - 0 -LINE - 5 -8F -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -72.1764203447364565 - 30 -0.0 - 11 -153.4089253878421744 - 21 -72.1764203447364565 - 31 -0.0 - 0 -LINE - 5 -90 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -184.9089253878420891 - 20 -106.6764203447364139 - 30 -0.0 - 11 -166.9089253878422596 - 21 -106.6764203447364139 - 31 -0.0 - 0 -LINE - 5 -91 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -97.6764203447364991 - 30 -0.0 - 11 -153.4089253878421744 - 21 -97.6764203447364991 - 31 -0.0 - 0 -LINE - 5 -92 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -84.1764203447364139 - 30 -0.0 - 11 -153.4089253878421744 - 21 -84.1764203447364139 - 31 -0.0 - 0 -LINE - 5 -93 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -124.6764203447364565 - 30 -0.0 - 11 -153.4089253878421744 - 21 -124.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -94 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -163.6764203447365844 - 30 -0.0 - 11 -153.4089253878421744 - 21 -163.6764203447365844 - 31 -0.0 - 0 -LINE - 5 -95 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -157.9089253878423449 - 20 -148.6764203447365844 - 30 -0.0 - 11 -139.9089253878420891 - 21 -148.6764203447365844 - 31 -0.0 - 0 -LINE - 5 -96 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -205.9089253878421744 - 20 -75.1764203447364991 - 30 -0.0 - 11 -187.9089253878423449 - 21 -75.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -97 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -124.9089253878420891 - 20 -142.6764203447364991 - 30 -0.0 - 11 -106.9089253878422596 - 21 -142.6764203447364991 - 31 -0.0 - 0 -LINE - 5 -98 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -111.4089253878424302 - 20 -124.6764203447364565 - 30 -0.0 - 11 -93.4089253878421744 - 21 -124.6764203447364565 - 31 -0.0 - 0 -MTEXT - 5 -99 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -94.9089253878420891 - 20 -60.1764203447364991 - 30 -0.0 - 40 -3.0 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -pid.0 - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LWPOLYLINE - 5 -9A - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -159.4089253878422596 - 20 -60.1764203447364991 - 10 -159.4089253878422596 - 20 -69.1764203447364139 - 10 -168.4089253878421744 - 20 -69.1764203447364139 - 10 -168.4089253878421744 - 20 -60.1764203447364991 - 10 -159.4089253878422596 - 20 -60.1764203447364991 - 0 -LWPOLYLINE - 5 -9B - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -127.9089253878423449 - 20 -75.1764203447364991 - 10 -127.9089253878423449 - 20 -84.1764203447364139 - 10 -136.9089253878422596 - 20 -84.1764203447364139 - 10 -136.9089253878422596 - 20 -75.1764203447364991 - 10 -127.9089253878423449 - 20 -75.1764203447364991 - 0 -LWPOLYLINE - 5 -9C - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -156.4089253878424302 - 20 -112.6764203447364991 - 10 -156.4089253878424302 - 20 -121.6764203447364139 - 10 -165.4089253878423449 - 20 -121.6764203447364139 - 10 -165.4089253878423449 - 20 -112.6764203447364991 - 10 -156.4089253878424302 - 20 -112.6764203447364991 - 0 -LWPOLYLINE - 5 -9D - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -156.4089253878424302 - 20 -151.6764203447364139 - 10 -156.4089253878424302 - 20 -160.6764203447365276 - 10 -165.4089253878423449 - 20 -160.6764203447365276 - 10 -165.4089253878423449 - 20 -151.6764203447364139 - 10 -156.4089253878424302 - 20 -151.6764203447364139 - 0 -LWPOLYLINE - 5 -9E - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -204.4089253878422596 - 20 -103.6764203447363712 - 10 -204.4089253878422596 - 20 -112.6764203447364991 - 10 -213.4089253878421744 - 20 -112.6764203447364991 - 10 -213.4089253878421744 - 20 -103.6764203447363712 - 10 -204.4089253878422596 - 20 -103.6764203447363712 - 0 -LWPOLYLINE - 5 -9F - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -123.4089253878421744 - 20 -130.6764203447365276 - 10 -123.4089253878421744 - 20 -139.6764203447364707 - 10 -132.4089253878420891 - 20 -139.6764203447364707 - 10 -132.4089253878420891 - 20 -130.6764203447365276 - 10 -123.4089253878421744 - 20 -130.6764203447365276 - 0 -LWPOLYLINE - 5 -A0 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -5 - 70 -1 - 10 -109.9089253878420891 - 20 -130.6764203447365276 - 10 -109.9089253878420891 - 20 -139.6764203447364707 - 10 -118.9089253878424302 - 20 -139.6764203447364707 - 10 -118.9089253878424302 - 20 -130.6764203447365276 - 10 -109.9089253878420891 - 20 -130.6764203447365276 - 0 -LINE - 5 -A1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -159.4089253878422596 - 20 -64.6764203447364565 - 30 -0.0 - 11 -168.4089253878421744 - 21 -64.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -A2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -127.9089253878423449 - 20 -79.6764203447364565 - 30 -0.0 - 11 -136.9089253878422596 - 21 -79.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -A3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -156.4089253878424302 - 20 -117.1764203447364565 - 30 -0.0 - 11 -165.4089253878423449 - 21 -117.1764203447364565 - 31 -0.0 - 0 -LINE - 5 -A4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -156.4089253878424302 - 20 -156.1764203447365844 - 30 -0.0 - 11 -165.4089253878423449 - 21 -156.1764203447365844 - 31 -0.0 - 0 -LINE - 5 -A5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -204.4089253878422596 - 20 -108.1764203447365418 - 30 -0.0 - 11 -213.4089253878421744 - 21 -108.1764203447365418 - 31 -0.0 - 0 -LINE - 5 -A6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -123.4089253878421744 - 20 -135.1764203447364991 - 30 -0.0 - 11 -132.4089253878420891 - 21 -135.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -A7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -109.9089253878420891 - 20 -135.1764203447364991 - 30 -0.0 - 11 -118.9089253878424302 - 21 -135.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -A8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -163.9089253878424302 - 20 -69.1764203447364139 - 30 -0.0 - 11 -163.9089253878424302 - 21 -60.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -A9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -132.4089253878420891 - 20 -84.1764203447364139 - 30 -0.0 - 11 -132.4089253878420891 - 21 -75.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -AA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -160.9089253878421744 - 20 -121.6764203447364139 - 30 -0.0 - 11 -160.9089253878421744 - 21 -112.6764203447364991 - 31 -0.0 - 0 -LINE - 5 -AB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -160.9089253878421744 - 20 -160.6764203447365276 - 30 -0.0 - 11 -160.9089253878421744 - 21 -151.6764203447364139 - 31 -0.0 - 0 -LINE - 5 -AC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -208.9089253878424302 - 20 -112.6764203447364991 - 30 -0.0 - 11 -208.9089253878424302 - 21 -103.6764203447363712 - 31 -0.0 - 0 -LINE - 5 -AD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -127.9089253878423449 - 20 -139.6764203447364707 - 30 -0.0 - 11 -127.9089253878423449 - 21 -130.6764203447365276 - 31 -0.0 - 0 -LINE - 5 -AE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -114.4089253878422596 - 20 -139.6764203447364707 - 30 -0.0 - 11 -114.4089253878422596 - 21 -130.6764203447365276 - 31 -0.0 - 0 -LINE - 5 -AF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -109.9089253878420891 - 20 -130.6764203447365276 - 30 -0.0 - 11 -112.9089253878423449 - 21 -133.6764203447365844 - 31 -0.0 - 0 -LINE - 5 -B0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -112.9089253878423449 - 20 -133.6764203447365844 - 30 -0.0 - 11 -112.9089253878423449 - 21 -135.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -B1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -112.9089253878423449 - 20 -135.1764203447364991 - 30 -0.0 - 11 -115.9089253878421744 - 21 -135.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -B2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -115.9089253878421744 - 20 -135.1764203447364991 - 30 -0.0 - 11 -115.9089253878421744 - 21 -136.6764203447364139 - 31 -0.0 - 0 -LINE - 5 -B3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -115.9089253878421744 - 20 -136.6764203447364139 - 30 -0.0 - 11 -118.9089253878424302 - 21 -139.6764203447364707 - 31 -0.0 - 0 -LINE - 5 -B4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -159.4089253878422596 - 20 -61.6764203447364139 - 30 -0.0 - 11 -160.9089253878421744 - 21 -61.6764203447364139 - 31 -0.0 - 0 -LINE - 5 -B5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -127.9089253878423449 - 20 -76.6764203447364139 - 30 -0.0 - 11 -129.4089253878422596 - 21 -76.6764203447364139 - 31 -0.0 - 0 -LINE - 5 -B6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -156.4089253878424302 - 20 -114.1764203447364139 - 30 -0.0 - 11 -157.9089253878423449 - 21 -114.1764203447364139 - 31 -0.0 - 0 -LINE - 5 -B7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -156.4089253878424302 - 20 -153.1764203447365276 - 30 -0.0 - 11 -157.9089253878423449 - 21 -153.1764203447365276 - 31 -0.0 - 0 -LINE - 5 -B8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -204.4089253878422596 - 20 -105.1764203447364991 - 30 -0.0 - 11 -205.9089253878421744 - 21 -105.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -B9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -123.4089253878421744 - 20 -132.1764203447364707 - 30 -0.0 - 11 -124.9089253878420891 - 21 -132.1764203447364707 - 31 -0.0 - 0 -LINE - 5 -BA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -160.9089253878421744 - 20 -61.6764203447364139 - 30 -0.0 - 11 -166.9089253878422596 - 21 -67.6764203447364991 - 31 -0.0 - 0 -LINE - 5 -BB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -129.4089253878422596 - 20 -76.6764203447364139 - 30 -0.0 - 11 -135.4089253878423449 - 21 -82.6764203447364991 - 31 -0.0 - 0 -LINE - 5 -BC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -157.9089253878423449 - 20 -114.1764203447364139 - 30 -0.0 - 11 -163.9089253878424302 - 21 -120.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -BD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -157.9089253878423449 - 20 -153.1764203447365276 - 30 -0.0 - 11 -163.9089253878424302 - 21 -159.1764203447364139 - 31 -0.0 - 0 -LINE - 5 -BE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -205.9089253878421744 - 20 -105.1764203447364991 - 30 -0.0 - 11 -211.9089253878422596 - 21 -111.1764203447363712 - 31 -0.0 - 0 -LINE - 5 -BF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -124.9089253878420891 - 20 -132.1764203447364707 - 30 -0.0 - 11 -130.9089253878421744 - 21 -138.1764203447365276 - 31 -0.0 - 0 -LINE - 5 -C0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -166.9089253878422596 - 20 -67.6764203447364991 - 30 -0.0 - 11 -168.4089253878421744 - 21 -67.6764203447364991 - 31 -0.0 - 0 -LINE - 5 -C1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -135.4089253878423449 - 20 -82.6764203447364991 - 30 -0.0 - 11 -136.9089253878422596 - 21 -82.6764203447364991 - 31 -0.0 - 0 -LINE - 5 -C2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -163.9089253878424302 - 20 -120.1764203447364991 - 30 -0.0 - 11 -165.4089253878423449 - 21 -120.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -C3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -163.9089253878424302 - 20 -159.1764203447364139 - 30 -0.0 - 11 -165.4089253878423449 - 21 -159.1764203447364139 - 31 -0.0 - 0 -LINE - 5 -C4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -211.9089253878422596 - 20 -111.1764203447363712 - 30 -0.0 - 11 -213.4089253878421744 - 21 -111.1764203447363712 - 31 -0.0 - 0 -LINE - 5 -C5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -130.9089253878421744 - 20 -138.1764203447365276 - 30 -0.0 - 11 -132.4089253878420891 - 21 -138.1764203447365276 - 31 -0.0 - 0 -CIRCLE - 5 -C6 -100 -AcDbEntity -100 -AcDbCircle - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -88.9089253878424302 - 20 -135.1764203447364991 - 30 -0.0 - 40 -3.0 - 0 -CIRCLE - 5 -C7 -100 -AcDbEntity -100 -AcDbCircle - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -79.6764203447364565 - 30 -0.0 - 40 -3.0 - 0 -CIRCLE - 5 -C8 -100 -AcDbEntity -100 -AcDbCircle - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -193.9089253878424302 - 20 -108.1764203447365418 - 30 -0.0 - 40 -3.0 - 0 -CIRCLE - 5 -C9 -100 -AcDbEntity -100 -AcDbCircle - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -135.1764203447364991 - 30 -0.0 - 40 -3.0 - 0 -LINE - 5 -CA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -88.9089253878424302 - 20 -135.1764203447364991 - 30 -0.0 - 11 -91.0302403878421273 - 21 -137.2977353447363953 - 31 -0.0 - 0 -LINE - 5 -CB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -79.6764203447364565 - 30 -0.0 - 11 -185.5302403878422979 - 21 -81.7977353447363669 - 31 -0.0 - 0 -LINE - 5 -CC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -193.9089253878424302 - 20 -108.1764203447365418 - 30 -0.0 - 11 -196.0302403878421273 - 21 -110.2977353447364521 - 31 -0.0 - 0 -LINE - 5 -CD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -135.1764203447364991 - 30 -0.0 - 11 -185.5302403878422979 - 21 -137.2977353447363953 - 31 -0.0 - 0 -LINE - 5 -CE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -88.9089253878424302 - 20 -135.1764203447364991 - 30 -0.0 - 11 -86.7876103878423066 - 21 -137.2977353447363953 - 31 -0.0 - 0 -LINE - 5 -CF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -79.6764203447364565 - 30 -0.0 - 11 -181.2876103878420508 - 21 -81.7977353447363669 - 31 -0.0 - 0 -LINE - 5 -D0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -193.9089253878424302 - 20 -108.1764203447365418 - 30 -0.0 - 11 -191.7876103878423066 - 21 -110.2977353447364521 - 31 -0.0 - 0 -LINE - 5 -D1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -135.1764203447364991 - 30 -0.0 - 11 -181.2876103878420508 - 21 -137.2977353447363953 - 31 -0.0 - 0 -LINE - 5 -D2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -88.9089253878424302 - 20 -135.1764203447364991 - 30 -0.0 - 11 -86.7876103878423066 - 21 -133.0551053447363756 - 31 -0.0 - 0 -LINE - 5 -D3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -79.6764203447364565 - 30 -0.0 - 11 -181.2876103878420508 - 21 -77.5551053447365462 - 31 -0.0 - 0 -LINE - 5 -D4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -193.9089253878424302 - 20 -108.1764203447365418 - 30 -0.0 - 11 -191.7876103878423066 - 21 -106.0551053447364183 - 31 -0.0 - 0 -LINE - 5 -D5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -135.1764203447364991 - 30 -0.0 - 11 -181.2876103878420508 - 21 -133.0551053447363756 - 31 -0.0 - 0 -LINE - 5 -D6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -88.9089253878424302 - 20 -135.1764203447364991 - 30 -0.0 - 11 -91.0302403878421273 - 21 -133.0551053447363756 - 31 -0.0 - 0 -LINE - 5 -D7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -79.6764203447364565 - 30 -0.0 - 11 -185.5302403878422979 - 21 -77.5551053447365462 - 31 -0.0 - 0 -LINE - 5 -D8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -193.9089253878424302 - 20 -108.1764203447365418 - 30 -0.0 - 11 -196.0302403878421273 - 21 -106.0551053447364183 - 31 -0.0 - 0 -LINE - 5 -D9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -135.1764203447364991 - 30 -0.0 - 11 -185.5302403878422979 - 21 -133.0551053447363756 - 31 -0.0 - 0 -LINE - 5 -DA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -88.1589253878422596 - 20 -136.9764203447365674 - 30 -0.0 - 11 -89.6589253878421744 - 21 -136.9764203447365674 - 31 -0.0 - 0 -LINE - 5 -DB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -182.6589253878424302 - 20 -81.4764203447365247 - 30 -0.0 - 11 -184.1589253878423449 - 21 -81.4764203447365247 - 31 -0.0 - 0 -LINE - 5 -DC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -193.1589253878422596 - 20 -109.9764203447363968 - 30 -0.0 - 11 -194.6589253878421744 - 21 -109.9764203447363968 - 31 -0.0 - 0 -LINE - 5 -DD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -182.6589253878424302 - 20 -136.9764203447365674 - 30 -0.0 - 11 -184.1589253878423449 - 21 -136.9764203447365674 - 31 -0.0 - 0 -LINE - 5 -DE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -82.2264203447364821 - 30 -0.0 - 11 -183.4089253878421744 - 21 -80.7264203447365674 - 31 -0.0 - 0 -LINE - 5 -DF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -193.9089253878424302 - 20 -110.7264203447365674 - 30 -0.0 - 11 -193.9089253878424302 - 21 -109.2264203447364395 - 31 -0.0 - 0 -LINE - 5 -E0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -137.7264203447365389 - 30 -0.0 - 11 -183.4089253878421744 - 21 -136.2264203447363968 - 31 -0.0 - 0 -LINE - 5 -E1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -180.8589253878423619 - 20 -79.6764203447364565 - 30 -0.0 - 11 -182.3589253878422767 - 21 -79.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -E2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -191.3589253878421914 - 20 -108.1764203447365418 - 30 -0.0 - 11 -192.8589253878421061 - 21 -108.1764203447365418 - 31 -0.0 - 0 -LINE - 5 -E3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -180.8589253878423619 - 20 -135.1764203447364991 - 30 -0.0 - 11 -182.3589253878422767 - 21 -135.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -E4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -181.6089253878421061 - 20 -80.4264203447364139 - 30 -0.0 - 11 -181.6089253878421061 - 21 -78.9264203447364991 - 31 -0.0 - 0 -LINE - 5 -E5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -192.1089253878423619 - 20 -108.9264203447364991 - 30 -0.0 - 11 -192.1089253878423619 - 21 -107.4264203447363712 - 31 -0.0 - 0 -LINE - 5 -E6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -181.6089253878421061 - 20 -135.9264203447364707 - 30 -0.0 - 11 -181.6089253878421061 - 21 -134.4264203447365276 - 31 -0.0 - 0 -LINE - 5 -E7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -88.9089253878424302 - 20 -134.1264203447366015 - 30 -0.0 - 11 -88.9089253878424302 - 21 -132.6264203447364594 - 31 -0.0 - 0 -LINE - 5 -E8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -78.6264203447365588 - 30 -0.0 - 11 -183.4089253878421744 - 21 -77.1264203447364309 - 31 -0.0 - 0 -LINE - 5 -E9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -193.9089253878424302 - 20 -107.1264203447364309 - 30 -0.0 - 11 -193.9089253878424302 - 21 -105.6264203447365162 - 31 -0.0 - 0 -LINE - 5 -EA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -134.1264203447366015 - 30 -0.0 - 11 -183.4089253878421744 - 21 -132.6264203447364594 - 31 -0.0 - 0 -LINE - 5 -EB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -88.1589253878422596 - 20 -133.3764203447364309 - 30 -0.0 - 11 -89.6589253878421744 - 21 -133.3764203447364309 - 31 -0.0 - 0 -LINE - 5 -EC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -182.6589253878424302 - 20 -77.8764203447366015 - 30 -0.0 - 11 -184.1589253878423449 - 21 -77.8764203447366015 - 31 -0.0 - 0 -LINE - 5 -ED -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -193.1589253878422596 - 20 -106.3764203447364736 - 30 -0.0 - 11 -194.6589253878421744 - 21 -106.3764203447364736 - 31 -0.0 - 0 -LINE - 5 -EE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -182.6589253878424302 - 20 -133.3764203447364309 - 30 -0.0 - 11 -184.1589253878423449 - 21 -133.3764203447364309 - 31 -0.0 - 0 -LWPOLYLINE - 5 -EF - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -144.4089253878422596 - 20 -60.1764203447364991 - 10 -144.4089253878422596 - 20 -69.1764203447364139 - 10 -153.4089253878421744 - 20 -69.1764203447364139 - 10 -154.9089253878420891 - 20 -64.6764203447364565 - 10 -153.4089253878421744 - 20 -60.1764203447364991 - 10 -144.4089253878422596 - 20 -60.1764203447364991 - 10 -144.4089253878422596 - 20 -60.1764203447364991 - 0 -LWPOLYLINE - 5 -F0 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -112.9089253878423449 - 20 -75.1764203447364991 - 10 -112.9089253878423449 - 20 -84.1764203447364139 - 10 -121.9089253878422596 - 20 -84.1764203447364139 - 10 -123.4089253878421744 - 20 -79.6764203447364565 - 10 -121.9089253878422596 - 20 -75.1764203447364991 - 10 -112.9089253878423449 - 20 -75.1764203447364991 - 10 -112.9089253878423449 - 20 -75.1764203447364991 - 0 -LWPOLYLINE - 5 -F1 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -141.4089253878424302 - 20 -112.6764203447364991 - 10 -141.4089253878424302 - 20 -121.6764203447364139 - 10 -150.4089253878423449 - 20 -121.6764203447364139 - 10 -151.9089253878422596 - 20 -117.1764203447364565 - 10 -150.4089253878423449 - 20 -112.6764203447364991 - 10 -141.4089253878424302 - 20 -112.6764203447364991 - 10 -141.4089253878424302 - 20 -112.6764203447364991 - 0 -LWPOLYLINE - 5 -F2 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -7 - 70 -1 - 10 -141.4089253878424302 - 20 -151.6764203447364139 - 10 -141.4089253878424302 - 20 -160.6764203447365276 - 10 -150.4089253878423449 - 20 -160.6764203447365276 - 10 -151.9089253878422596 - 20 -156.1764203447365844 - 10 -150.4089253878423449 - 20 -151.6764203447364139 - 10 -141.4089253878424302 - 20 -151.6764203447364139 - 10 -141.4089253878424302 - 20 -151.6764203447364139 - 0 -MTEXT - 5 -F3 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -148.9089253878424302 - 20 -66.1764203447363712 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -d - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -F4 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -117.4089253878420891 - 20 -81.1764203447365844 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -d - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -F5 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -145.9089253878421744 - 20 -118.6764203447365844 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -d - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -F6 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -148.9089253878424302 - 20 -63.1764203447365418 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -dT - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -F7 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -117.4089253878420891 - 20 -78.1764203447365418 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -dT - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -MTEXT - 5 -F8 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -145.9089253878421744 - 20 -115.6764203447365418 - 30 -0.0 - 40 -1.875 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -dT - 7 -romand - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LINE - 5 -F9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -147.4089253878420891 - 20 -64.6764203447364565 - 30 -0.0 - 11 -150.4089253878423449 - 21 -64.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -FA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -115.9089253878421744 - 20 -79.6764203447364565 - 30 -0.0 - 11 -118.9089253878424302 - 21 -79.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -FB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -144.4089253878422596 - 20 -117.1764203447364565 - 30 -0.0 - 11 -147.4089253878420891 - 21 -117.1764203447364565 - 31 -0.0 - 0 -LWPOLYLINE - 5 -FC - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -25 - 70 -0 - 10 -147.4089253878420891 - 20 -159.1764203447364139 - 10 -147.2219203878422888 - 20 -159.1744703447364486 - 10 -147.0378253878423891 - 20 -159.1607903447364265 - 10 -146.8596103878421388 - 20 -159.123680344736556 - 10 -146.6901703878423291 - 20 -159.0514253447365149 - 10 -146.5324603878423204 - 20 -158.9322803447365686 - 10 -146.3893903878420133 - 20 -158.7545453447365844 - 10 -146.2639003878420851 - 20 -158.5065053447365528 - 10 -146.1589303878423607 - 20 -158.1764153447364833 - 10 -146.0759203878421886 - 20 -157.7584553447365749 - 10 -146.0104903878423954 - 20 -157.2701753447364297 - 10 -145.9567753878420149 - 20 -156.7350203447365402 - 10 -145.9089253878421744 - 20 -156.1764203447365844 - 10 -145.8610753878423338 - 20 -155.6178203447364012 - 10 -145.8073603878423796 - 20 -155.0826653447365402 - 10 -145.7419303878421601 - 20 -154.5943853447363949 - 10 -145.6589203878424144 - 20 -154.1764253447364581 - 10 -145.5539503878422636 - 20 -153.846335344736417 - 10 -145.4284603878423354 - 20 -153.5982953447365844 - 10 -145.2853903878420283 - 20 -153.4205603447364012 - 10 -145.1276803878420196 - 20 -153.3014153447364265 - 10 -144.9582403878422099 - 20 -153.2291603447363855 - 10 -144.780025387842386 - 20 -153.1920503447365149 - 10 -144.5959303878420599 - 20 -153.1783703447365212 - 10 -144.4089253878422596 - 20 -153.1764203447365276 - 0 -LINE - 5 -FD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.4089253878422596 - 20 -135.1764203447364991 - 30 -0.0 - 11 -99.4089253878422596 - 21 -156.1764203447365844 - 31 -0.0 - 0 -CIRCLE - 5 -FE -100 -AcDbEntity -100 -AcDbCircle - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.4089253878422596 - 20 -135.1764203447364991 - 30 -0.0 - 40 -0.3 - 0 -LINE - 5 -FF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.4089253878422596 - 20 -156.1764203447365844 - 30 -0.0 - 11 -82.9089253878423449 - 21 -156.1764203447365844 - 31 -0.0 - 0 -LWPOLYLINE - 5 -100 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -82.9089253878423449 - 20 -156.1764203447365844 - 10 -84.1089253878421061 - 20 -155.90972034473657 - 10 -84.1089253878421061 - 20 -156.4431203447363998 - 10 -82.9089253878423449 - 20 -156.1764203447365844 - 0 -LINE - 5 -101 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -99.4089253878422596 - 20 -135.1764203447364991 - 30 -0.0 - 11 -109.9089253878420891 - 21 -135.1764203447364991 - 31 -0.0 - 0 -LWPOLYLINE - 5 -102 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -109.9089253878420891 - 20 -135.1764203447364991 - 10 -108.7089253878423278 - 20 -135.4431203447365419 - 10 -108.7089253878423278 - 20 -134.9097203447364564 - 10 -109.9089253878420891 - 20 -135.1764203447364991 - 0 -LINE - 5 -103 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -88.9089253878424302 - 20 -132.1764203447364707 - 30 -0.0 - 11 -88.9089253878424302 - 21 -114.1764203447364139 - 31 -0.0 - 0 -LWPOLYLINE - 5 -104 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -88.9089253878424302 - 20 -132.1764203447364707 - 10 -88.6422253878421884 - 20 -130.9764203447364821 - 10 -89.1756253878422456 - 20 -130.9764203447364821 - 10 -88.9089253878424302 - 20 -132.1764203447364707 - 0 -LINE - 5 -105 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -111.4089253878424302 - 20 -126.1764203447365844 - 30 -0.0 - 11 -114.4089253878422596 - 21 -126.1764203447365844 - 31 -0.0 - 0 -LINE - 5 -106 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -160.9089253878421744 - 20 -55.6764203447365418 - 30 -0.0 - 11 -163.9089253878424302 - 21 -55.6764203447365418 - 31 -0.0 - 0 -LINE - 5 -107 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -129.4089253878422596 - 20 -88.6764203447365844 - 30 -0.0 - 11 -132.4089253878420891 - 21 -88.6764203447365844 - 31 -0.0 - 0 -LINE - 5 -108 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -157.9089253878423449 - 20 -108.1764203447365418 - 30 -0.0 - 11 -160.9089253878421744 - 21 -108.1764203447365418 - 31 -0.0 - 0 -LINE - 5 -109 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -141.1764203447365844 - 30 -0.0 - 11 -174.4089253878422596 - 21 -141.1764203447365844 - 31 -0.0 - 0 -LINE - 5 -10A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -73.6764203447365844 - 30 -0.0 - 11 -174.4089253878422596 - 21 -73.6764203447365844 - 31 -0.0 - 0 -LINE - 5 -10B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -99.1764203447364139 - 30 -0.0 - 11 -174.4089253878422596 - 21 -99.1764203447364139 - 31 -0.0 - 0 -LINE - 5 -10C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -85.6764203447365418 - 30 -0.0 - 11 -174.4089253878422596 - 21 -85.6764203447365418 - 31 -0.0 - 0 -LINE - 5 -10D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -126.1764203447365844 - 30 -0.0 - 11 -174.4089253878422596 - 21 -126.1764203447365844 - 31 -0.0 - 0 -LINE - 5 -10E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -171.4089253878424302 - 20 -165.1764203447364991 - 30 -0.0 - 11 -174.4089253878422596 - 21 -165.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -10F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -157.9089253878423449 - 20 -147.1764203447364707 - 30 -0.0 - 11 -160.9089253878421744 - 21 -147.1764203447364707 - 31 -0.0 - 0 -LINE - 5 -110 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -205.9089253878421744 - 20 -73.6764203447365844 - 30 -0.0 - 11 -208.9089253878424302 - 21 -73.6764203447365844 - 31 -0.0 - 0 -LINE - 5 -111 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -124.9089253878420891 - 20 -144.1764203447364139 - 30 -0.0 - 11 -127.9089253878423449 - 21 -144.1764203447364139 - 31 -0.0 - 0 -LINE - 5 -112 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -114.4089253878422596 - 20 -126.1764203447365844 - 30 -0.0 - 11 -114.4089253878422596 - 21 -130.6764203447365276 - 31 -0.0 - 0 -LWPOLYLINE - 5 -113 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -114.4089253878422596 - 20 -130.6764203447365276 - 10 -114.1422253878424442 - 20 -129.4764203447365674 - 10 -114.675625387842075 - 20 -129.4764203447365674 - 10 -114.4089253878422596 - 20 -130.6764203447365276 - 0 -LINE - 5 -114 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -163.9089253878424302 - 20 -55.6764203447365418 - 30 -0.0 - 11 -163.9089253878424302 - 21 -60.1764203447364991 - 31 -0.0 - 0 -LWPOLYLINE - 5 -115 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -163.9089253878424302 - 20 -60.1764203447364991 - 10 -163.6422253878421884 - 20 -58.9764203447365247 - 10 -164.1756253878422456 - 20 -58.9764203447365247 - 10 -163.9089253878424302 - 20 -60.1764203447364991 - 0 -LINE - 5 -116 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -132.4089253878420891 - 20 -88.6764203447365844 - 30 -0.0 - 11 -132.4089253878420891 - 21 -84.1764203447364139 - 31 -0.0 - 0 -LWPOLYLINE - 5 -117 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -132.4089253878420891 - 20 -84.1764203447364139 - 10 -132.6756253878423308 - 20 -85.3764203447366015 - 10 -132.1422253878422737 - 20 -85.3764203447366015 - 10 -132.4089253878420891 - 20 -84.1764203447364139 - 0 -LINE - 5 -118 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -160.9089253878421744 - 20 -108.1764203447365418 - 30 -0.0 - 11 -160.9089253878421744 - 21 -112.6764203447364991 - 31 -0.0 - 0 -LWPOLYLINE - 5 -119 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -160.9089253878421744 - 20 -112.6764203447364991 - 10 -160.6422253878423589 - 20 -111.4764203447365247 - 10 -161.1756253878424161 - 20 -111.4764203447365247 - 10 -160.9089253878421744 - 20 -112.6764203447364991 - 0 -LINE - 5 -11A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -141.1764203447365844 - 30 -0.0 - 11 -174.4089253878422596 - 21 -137.4264203447365844 - 31 -0.0 - 0 -LWPOLYLINE - 5 -11B - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -174.4089253878422596 - 20 -137.4264203447365844 - 10 -174.675625387842075 - 20 -138.6264203447363457 - 10 -174.1422253878424442 - 20 -138.6264203447363457 - 10 -174.4089253878422596 - 20 -137.4264203447365844 - 0 -LINE - 5 -11C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -73.6764203447365844 - 30 -0.0 - 11 -174.4089253878422596 - 21 -66.9264203447365418 - 31 -0.0 - 0 -LWPOLYLINE - 5 -11D - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -174.4089253878422596 - 20 -66.9264203447365418 - 10 -174.675625387842075 - 20 -68.1264203447365162 - 10 -174.1422253878424442 - 20 -68.1264203447365162 - 10 -174.4089253878422596 - 20 -66.9264203447365418 - 0 -LINE - 5 -11E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -99.1764203447364139 - 30 -0.0 - 11 -174.4089253878422596 - 21 -95.4264203447364139 - 31 -0.0 - 0 -LWPOLYLINE - 5 -11F - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -174.4089253878422596 - 20 -95.4264203447364139 - 10 -174.675625387842075 - 20 -96.6264203447363883 - 10 -174.1422253878424442 - 20 -96.6264203447363883 - 10 -174.4089253878422596 - 20 -95.4264203447364139 - 0 -LINE - 5 -120 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -85.6764203447365418 - 30 -0.0 - 11 -174.4089253878422596 - 21 -81.9264203447365418 - 31 -0.0 - 0 -LWPOLYLINE - 5 -121 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -174.4089253878422596 - 20 -81.9264203447365418 - 10 -174.675625387842075 - 20 -83.1264203447365162 - 10 -174.1422253878424442 - 20 -83.1264203447365162 - 10 -174.4089253878422596 - 20 -81.9264203447365418 - 0 -LINE - 5 -122 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -126.1764203447365844 - 30 -0.0 - 11 -174.4089253878422596 - 21 -119.4264203447365418 - 31 -0.0 - 0 -LWPOLYLINE - 5 -123 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -174.4089253878422596 - 20 -119.4264203447365418 - 10 -174.675625387842075 - 20 -120.6264203447365162 - 10 -174.1422253878424442 - 20 -120.6264203447365162 - 10 -174.4089253878422596 - 20 -119.4264203447365418 - 0 -LINE - 5 -124 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -165.1764203447364991 - 30 -0.0 - 11 -174.4089253878422596 - 21 -158.4264203447364707 - 31 -0.0 - 0 -LWPOLYLINE - 5 -125 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -174.4089253878422596 - 20 -158.4264203447364707 - 10 -174.675625387842075 - 20 -159.6264203447364309 - 10 -174.1422253878424442 - 20 -159.6264203447364309 - 10 -174.4089253878422596 - 20 -158.4264203447364707 - 0 -LINE - 5 -126 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -160.9089253878421744 - 20 -147.1764203447364707 - 30 -0.0 - 11 -160.9089253878421744 - 21 -151.6764203447364139 - 31 -0.0 - 0 -LWPOLYLINE - 5 -127 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -160.9089253878421744 - 20 -151.6764203447364139 - 10 -160.6422253878423589 - 20 -150.4764203447364252 - 10 -161.1756253878424161 - 20 -150.4764203447364252 - 10 -160.9089253878421744 - 20 -151.6764203447364139 - 0 -LINE - 5 -128 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -208.9089253878424302 - 20 -73.6764203447365844 - 30 -0.0 - 11 -208.9089253878424302 - 21 -103.6764203447363712 - 31 -0.0 - 0 -LWPOLYLINE - 5 -129 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -208.9089253878424302 - 20 -103.6764203447363712 - 10 -208.6422253878421884 - 20 -102.4764203447363968 - 10 -209.1756253878422456 - 20 -102.4764203447363968 - 10 -208.9089253878424302 - 20 -103.6764203447363712 - 0 -LINE - 5 -12A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -127.9089253878423449 - 20 -144.1764203447364139 - 30 -0.0 - 11 -127.9089253878423449 - 21 -139.6764203447364707 - 31 -0.0 - 0 -LWPOLYLINE - 5 -12B - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -127.9089253878423449 - 20 -139.6764203447364707 - 10 -128.1756253878421603 - 20 -140.8764203447364309 - 10 -127.6422253878421031 - 20 -140.8764203447364309 - 10 -127.9089253878423449 - 20 -139.6764203447364707 - 0 -LINE - 5 -12C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -154.9089253878420891 - 20 -64.6764203447364565 - 30 -0.0 - 11 -159.4089253878422596 - 21 -64.6764203447364565 - 31 -0.0 - 0 -LWPOLYLINE - 5 -12D - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -159.4089253878422596 - 20 -64.6764203447364565 - 10 -158.208925387842072 - 20 -64.9431203447364851 - 10 -158.208925387842072 - 20 -64.4097203447364279 - 10 -159.4089253878422596 - 20 -64.6764203447364565 - 0 -LINE - 5 -12E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -123.4089253878421744 - 20 -79.6764203447364565 - 30 -0.0 - 11 -127.9089253878423449 - 21 -79.6764203447364565 - 31 -0.0 - 0 -LWPOLYLINE - 5 -12F - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -127.9089253878423449 - 20 -79.6764203447364565 - 10 -126.7089253878421573 - 20 -79.9431203447364851 - 10 -126.7089253878421573 - 20 -79.4097203447364279 - 10 -127.9089253878423449 - 20 -79.6764203447364565 - 0 -LINE - 5 -130 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -151.9089253878422596 - 20 -117.1764203447364565 - 30 -0.0 - 11 -156.4089253878424302 - 21 -117.1764203447364565 - 31 -0.0 - 0 -LWPOLYLINE - 5 -131 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -156.4089253878424302 - 20 -117.1764203447364565 - 10 -155.2089253878422426 - 20 -117.4431203447364851 - 10 -155.2089253878422426 - 20 -116.9097203447364279 - 10 -156.4089253878424302 - 20 -117.1764203447364565 - 0 -LINE - 5 -132 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -151.9089253878422596 - 20 -156.1764203447365844 - 30 -0.0 - 11 -156.4089253878424302 - 21 -156.1764203447365844 - 31 -0.0 - 0 -LWPOLYLINE - 5 -133 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -156.4089253878424302 - 20 -156.1764203447365844 - 10 -155.2089253878422426 - 20 -156.4431203447363998 - 10 -155.2089253878422426 - 20 -155.90972034473657 - 10 -156.4089253878424302 - 20 -156.1764203447365844 - 0 -LINE - 5 -134 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -196.9089253878422596 - 20 -108.1764203447365418 - 30 -0.0 - 11 -204.4089253878422596 - 21 -108.1764203447365418 - 31 -0.0 - 0 -LWPOLYLINE - 5 -135 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -204.4089253878422596 - 20 -108.1764203447365418 - 10 -203.208925387842072 - 20 -108.4431203447365704 - 10 -203.208925387842072 - 20 -107.9097203447365132 - 10 -204.4089253878422596 - 20 -108.1764203447365418 - 0 -LINE - 5 -136 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -118.9089253878424302 - 20 -135.1764203447364991 - 30 -0.0 - 11 -123.4089253878421744 - 21 -135.1764203447364991 - 31 -0.0 - 0 -LWPOLYLINE - 5 -137 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -123.4089253878421744 - 20 -135.1764203447364991 - 10 -122.2089253878424131 - 20 -135.4431203447365419 - 10 -122.2089253878424131 - 20 -134.9097203447364564 - 10 -123.4089253878421744 - 20 -135.1764203447364991 - 0 -LINE - 5 -138 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -136.9089253878422596 - 20 -156.1764203447365844 - 30 -0.0 - 11 -136.9089253878422596 - 21 -117.1764203447364565 - 31 -0.0 - 0 -LINE - 5 -139 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -132.4089253878420891 - 20 -135.1764203447364991 - 30 -0.0 - 11 -136.9089253878422596 - 21 -135.1764203447364991 - 31 -0.0 - 0 -LWPOLYLINE - 5 -13A - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -136.9089253878422596 - 20 -135.1764203447364991 - 10 -135.708925387842072 - 20 -135.4431203447365419 - 10 -135.708925387842072 - 20 -134.9097203447364564 - 10 -136.9089253878422596 - 20 -135.1764203447364991 - 0 -LINE - 5 -13B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -141.4089253878424302 - 20 -156.1764203447365844 - 30 -0.0 - 11 -136.9089253878422596 - 21 -156.1764203447365844 - 31 -0.0 - 0 -LWPOLYLINE - 5 -13C - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -141.4089253878424302 - 20 -156.1764203447365844 - 10 -140.2089253878422426 - 20 -156.4431203447363998 - 10 -140.2089253878422426 - 20 -155.90972034473657 - 10 -141.4089253878424302 - 20 -156.1764203447365844 - 0 -LINE - 5 -13D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -139.9089253878420891 - 20 -64.6764203447364565 - 30 -0.0 - 11 -144.4089253878422596 - 21 -64.6764203447364565 - 31 -0.0 - 0 -LWPOLYLINE - 5 -13E - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -144.4089253878422596 - 20 -64.6764203447364565 - 10 -143.208925387842072 - 20 -64.9431203447364851 - 10 -143.208925387842072 - 20 -64.4097203447364279 - 10 -144.4089253878422596 - 20 -64.6764203447364565 - 0 -LINE - 5 -13F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -88.9089253878424302 - 20 -79.6764203447364565 - 30 -0.0 - 11 -112.9089253878423449 - 21 -79.6764203447364565 - 31 -0.0 - 0 -LWPOLYLINE - 5 -140 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -112.9089253878423449 - 20 -79.6764203447364565 - 10 -111.7089253878421573 - 20 -79.9431203447364851 - 10 -111.7089253878421573 - 20 -79.4097203447364279 - 10 -112.9089253878423449 - 20 -79.6764203447364565 - 0 -LINE - 5 -141 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -136.9089253878422596 - 20 -117.1764203447364565 - 30 -0.0 - 11 -141.4089253878424302 - 21 -117.1764203447364565 - 31 -0.0 - 0 -LWPOLYLINE - 5 -142 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -141.4089253878424302 - 20 -117.1764203447364565 - 10 -140.2089253878422426 - 20 -117.4431203447364851 - 10 -140.2089253878422426 - 20 -116.9097203447364279 - 10 -141.4089253878424302 - 20 -117.1764203447364565 - 0 -LINE - 5 -143 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -135.1764203447364991 - 30 -0.0 - 11 -173.6589253878420891 - 21 -135.9264203447364707 - 31 -0.0 - 0 -LINE - 5 -144 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -64.6764203447364565 - 30 -0.0 - 11 -173.6589253878420891 - 21 -65.4264203447364139 - 31 -0.0 - 0 -LINE - 5 -145 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -93.1764203447365418 - 30 -0.0 - 11 -173.6589253878420891 - 21 -93.9264203447364991 - 31 -0.0 - 0 -LINE - 5 -146 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -79.6764203447364565 - 30 -0.0 - 11 -173.6589253878420891 - 21 -80.4264203447364139 - 31 -0.0 - 0 -LINE - 5 -147 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -117.1764203447364565 - 30 -0.0 - 11 -173.6589253878420891 - 21 -117.9264203447364139 - 31 -0.0 - 0 -LINE - 5 -148 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -156.1764203447365844 - 30 -0.0 - 11 -173.6589253878420891 - 21 -156.9264203447365276 - 31 -0.0 - 0 -LINE - 5 -149 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -135.1764203447364991 - 30 -0.0 - 11 -173.6589253878420891 - 21 -134.4264203447365276 - 31 -0.0 - 0 -LINE - 5 -14A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -64.6764203447364565 - 30 -0.0 - 11 -173.6589253878420891 - 21 -63.9264203447364991 - 31 -0.0 - 0 -LINE - 5 -14B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -93.1764203447365418 - 30 -0.0 - 11 -173.6589253878420891 - 21 -92.4264203447363712 - 31 -0.0 - 0 -LINE - 5 -14C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -79.6764203447364565 - 30 -0.0 - 11 -173.6589253878420891 - 21 -78.9264203447364991 - 31 -0.0 - 0 -LINE - 5 -14D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -117.1764203447364565 - 30 -0.0 - 11 -173.6589253878420891 - 21 -116.4264203447364991 - 31 -0.0 - 0 -LINE - 5 -14E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -156.1764203447365844 - 30 -0.0 - 11 -173.6589253878420891 - 21 -155.4264203447364139 - 31 -0.0 - 0 -LINE - 5 -14F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -135.1764203447364991 - 30 -0.0 - 11 -175.1589253878424302 - 21 -134.4264203447365276 - 31 -0.0 - 0 -LINE - 5 -150 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -64.6764203447364565 - 30 -0.0 - 11 -175.1589253878424302 - 21 -63.9264203447364991 - 31 -0.0 - 0 -LINE - 5 -151 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -93.1764203447365418 - 30 -0.0 - 11 -175.1589253878424302 - 21 -92.4264203447363712 - 31 -0.0 - 0 -LINE - 5 -152 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -79.6764203447364565 - 30 -0.0 - 11 -175.1589253878424302 - 21 -78.9264203447364991 - 31 -0.0 - 0 -LINE - 5 -153 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -117.1764203447364565 - 30 -0.0 - 11 -175.1589253878424302 - 21 -116.4264203447364991 - 31 -0.0 - 0 -LINE - 5 -154 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -156.1764203447365844 - 30 -0.0 - 11 -175.1589253878424302 - 21 -155.4264203447364139 - 31 -0.0 - 0 -LINE - 5 -155 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -135.1764203447364991 - 30 -0.0 - 11 -175.1589253878424302 - 21 -135.9264203447364707 - 31 -0.0 - 0 -LINE - 5 -156 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -64.6764203447364565 - 30 -0.0 - 11 -175.1589253878424302 - 21 -65.4264203447364139 - 31 -0.0 - 0 -LINE - 5 -157 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -93.1764203447365418 - 30 -0.0 - 11 -175.1589253878424302 - 21 -93.9264203447364991 - 31 -0.0 - 0 -LINE - 5 -158 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -79.6764203447364565 - 30 -0.0 - 11 -175.1589253878424302 - 21 -80.4264203447364139 - 31 -0.0 - 0 -LINE - 5 -159 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -117.1764203447364565 - 30 -0.0 - 11 -175.1589253878424302 - 21 -117.9264203447364139 - 31 -0.0 - 0 -LINE - 5 -15A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -156.1764203447365844 - 30 -0.0 - 11 -175.1589253878424302 - 21 -156.9264203447365276 - 31 -0.0 - 0 -CIRCLE - 5 -15B -100 -AcDbEntity -100 -AcDbCircle - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -135.1764203447364991 - 30 -0.0 - 40 -2.2500000000000004 - 0 -CIRCLE - 5 -15C -100 -AcDbEntity -100 -AcDbCircle - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -64.6764203447364565 - 30 -0.0 - 40 -2.2500000000000004 - 0 -CIRCLE - 5 -15D -100 -AcDbEntity -100 -AcDbCircle - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -93.1764203447365418 - 30 -0.0 - 40 -2.2500000000000004 - 0 -CIRCLE - 5 -15E -100 -AcDbEntity -100 -AcDbCircle - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -79.6764203447364565 - 30 -0.0 - 40 -2.2500000000000004 - 0 -CIRCLE - 5 -15F -100 -AcDbEntity -100 -AcDbCircle - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -117.1764203447364565 - 30 -0.0 - 40 -2.2500000000000004 - 0 -CIRCLE - 5 -160 -100 -AcDbEntity -100 -AcDbCircle - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -174.4089253878422596 - 20 -156.1764203447365844 - 30 -0.0 - 40 -2.2500000000000004 - 0 -LINE - 5 -161 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -176.6589253878423449 - 20 -156.1764203447365844 - 30 -0.0 - 11 -183.4089253878421744 - 21 -156.1764203447365844 - 31 -0.0 - 0 -LINE - 5 -162 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -93.1764203447365418 - 30 -0.0 - 11 -176.6589253878423449 - 21 -93.1764203447365418 - 31 -0.0 - 0 -LINE - 5 -163 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -64.6764203447364565 - 30 -0.0 - 11 -176.6589253878423449 - 21 -64.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -164 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -117.1764203447364565 - 30 -0.0 - 11 -176.6589253878423449 - 21 -117.1764203447364565 - 31 -0.0 - 0 -LINE - 5 -165 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -172.1589253878421744 - 20 -135.1764203447364991 - 30 -0.0 - 11 -136.9089253878422596 - 21 -135.1764203447364991 - 31 -0.0 - 0 -LWPOLYLINE - 5 -166 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -172.1589253878421744 - 20 -135.1764203447364991 - 10 -170.9589253878424131 - 20 -135.4431203447365419 - 10 -170.9589253878424131 - 20 -134.9097203447364564 - 10 -172.1589253878421744 - 20 -135.1764203447364991 - 0 -LINE - 5 -167 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -176.6589253878423449 - 20 -79.6764203447364565 - 30 -0.0 - 11 -180.4089253878423449 - 21 -79.6764203447364565 - 31 -0.0 - 0 -LWPOLYLINE - 5 -168 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -180.4089253878423449 - 20 -79.6764203447364565 - 10 -179.2089253878421573 - 20 -79.9431203447364851 - 10 -179.2089253878421573 - 20 -79.4097203447364279 - 10 -180.4089253878423449 - 20 -79.6764203447364565 - 0 -LINE - 5 -169 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -184.9089253878420891 - 20 -108.1764203447365418 - 30 -0.0 - 11 -190.9089253878421744 - 21 -108.1764203447365418 - 31 -0.0 - 0 -LWPOLYLINE - 5 -16A - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -190.9089253878421744 - 20 -108.1764203447365418 - 10 -189.7089253878424131 - 20 -108.4431203447365704 - 10 -189.7089253878424131 - 20 -107.9097203447365132 - 10 -190.9089253878421744 - 20 -108.1764203447365418 - 0 -LINE - 5 -16B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -176.6589253878423449 - 20 -135.1764203447364991 - 30 -0.0 - 11 -180.4089253878423449 - 21 -135.1764203447364991 - 31 -0.0 - 0 -LWPOLYLINE - 5 -16C - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -180.4089253878423449 - 20 -135.1764203447364991 - 10 -179.2089253878421573 - 20 -135.4431203447365419 - 10 -179.2089253878421573 - 20 -134.9097203447364564 - 10 -180.4089253878423449 - 20 -135.1764203447364991 - 0 -LINE - 5 -16D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -93.1764203447365418 - 30 -0.0 - 11 -183.4089253878421744 - 21 -82.6764203447364991 - 31 -0.0 - 0 -LWPOLYLINE - 5 -16E - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -183.4089253878421744 - 20 -82.6764203447364991 - 10 -183.6756253878424161 - 20 -83.8764203447364736 - 10 -183.1422253878423589 - 20 -83.8764203447364736 - 10 -183.4089253878421744 - 20 -82.6764203447364991 - 0 -LINE - 5 -16F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -193.9089253878424302 - 20 -135.1764203447364991 - 30 -0.0 - 11 -193.9089253878424302 - 21 -111.1764203447363712 - 31 -0.0 - 0 -LWPOLYLINE - 5 -170 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -193.9089253878424302 - 20 -111.1764203447363712 - 10 -194.1756253878422456 - 20 -112.3764203447365588 - 10 -193.6422253878421884 - 20 -112.3764203447365588 - 10 -193.9089253878424302 - 20 -111.1764203447363712 - 0 -LINE - 5 -171 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -156.1764203447365844 - 30 -0.0 - 11 -183.4089253878421744 - 21 -138.1764203447365276 - 31 -0.0 - 0 -LWPOLYLINE - 5 -172 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -183.4089253878421744 - 20 -138.1764203447365276 - 10 -183.6756253878424161 - 20 -139.3764203447365162 - 10 -183.1422253878423589 - 20 -139.3764203447365162 - 10 -183.4089253878421744 - 20 -138.1764203447365276 - 0 -LINE - 5 -173 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -172.1589253878421744 - 20 -156.1764203447365844 - 30 -0.0 - 11 -165.4089253878423449 - 21 -156.1764203447365844 - 31 -0.0 - 0 -LWPOLYLINE - 5 -174 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -172.1589253878421744 - 20 -156.1764203447365844 - 10 -170.9589253878424131 - 20 -156.4431203447363998 - 10 -170.9589253878424131 - 20 -155.90972034473657 - 10 -172.1589253878421744 - 20 -156.1764203447365844 - 0 -LINE - 5 -175 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -172.1589253878421744 - 20 -64.6764203447364565 - 30 -0.0 - 11 -168.4089253878421744 - 21 -64.6764203447364565 - 31 -0.0 - 0 -LWPOLYLINE - 5 -176 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -172.1589253878421744 - 20 -64.6764203447364565 - 10 -170.9589253878424131 - 20 -64.9431203447364851 - 10 -170.9589253878424131 - 20 -64.4097203447364279 - 10 -172.1589253878421744 - 20 -64.6764203447364565 - 0 -LINE - 5 -177 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -172.1589253878421744 - 20 -93.1764203447365418 - 30 -0.0 - 11 -88.9089253878424302 - 21 -93.1764203447365418 - 31 -0.0 - 0 -LWPOLYLINE - 5 -178 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -172.1589253878421744 - 20 -93.1764203447365418 - 10 -170.9589253878424131 - 20 -93.4431203447365704 - 10 -170.9589253878424131 - 20 -92.9097203447365132 - 10 -172.1589253878421744 - 20 -93.1764203447365418 - 0 -LINE - 5 -179 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -172.1589253878421744 - 20 -79.6764203447364565 - 30 -0.0 - 11 -139.9089253878420891 - 21 -79.6764203447364565 - 31 -0.0 - 0 -LWPOLYLINE - 5 -17A - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -172.1589253878421744 - 20 -79.6764203447364565 - 10 -170.9589253878424131 - 20 -79.9431203447364851 - 10 -170.9589253878424131 - 20 -79.4097203447364279 - 10 -172.1589253878421744 - 20 -79.6764203447364565 - 0 -LINE - 5 -17B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -139.9089253878420891 - 20 -79.6764203447364565 - 30 -0.0 - 11 -136.9089253878422596 - 21 -79.6764203447364565 - 31 -0.0 - 0 -LWPOLYLINE - 5 -17C - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -139.9089253878420891 - 20 -79.6764203447364565 - 10 -138.7089253878423278 - 20 -79.9431203447364851 - 10 -138.7089253878423278 - 20 -79.4097203447364279 - 10 -139.9089253878420891 - 20 -79.6764203447364565 - 0 -LINE - 5 -17D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -172.1589253878421744 - 20 -117.1764203447364565 - 30 -0.0 - 11 -165.4089253878423449 - 21 -117.1764203447364565 - 31 -0.0 - 0 -LWPOLYLINE - 5 -17E - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -172.1589253878421744 - 20 -117.1764203447364565 - 10 -170.9589253878424131 - 20 -117.4431203447364851 - 10 -170.9589253878424131 - 20 -116.9097203447364279 - 10 -172.1589253878421744 - 20 -117.1764203447364565 - 0 -LINE - 5 -17F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -76.6764203447364139 - 30 -0.0 - 11 -183.4089253878421744 - 21 -64.6764203447364565 - 31 -0.0 - 0 -LWPOLYLINE - 5 -180 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -183.4089253878421744 - 20 -76.6764203447364139 - 10 -183.1422253878423589 - 20 -75.4764203447364395 - 10 -183.6756253878424161 - 20 -75.4764203447364395 - 10 -183.4089253878421744 - 20 -76.6764203447364139 - 0 -LINE - 5 -181 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -193.9089253878424302 - 20 -105.1764203447364991 - 30 -0.0 - 11 -193.9089253878424302 - 21 -79.6764203447364565 - 31 -0.0 - 0 -LWPOLYLINE - 5 -182 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -193.9089253878424302 - 20 -105.1764203447364991 - 10 -193.6422253878421884 - 20 -103.9764203447365247 - 10 -194.1756253878422456 - 20 -103.9764203447365247 - 10 -193.9089253878424302 - 20 -105.1764203447364991 - 0 -LINE - 5 -183 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -183.4089253878421744 - 20 -132.1764203447364707 - 30 -0.0 - 11 -183.4089253878421744 - 21 -117.1764203447364565 - 31 -0.0 - 0 -LWPOLYLINE - 5 -184 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -183.4089253878421744 - 20 -132.1764203447364707 - 10 -183.1422253878423589 - 20 -130.9764203447364821 - 10 -183.6756253878424161 - 20 -130.9764203447364821 - 10 -183.4089253878421744 - 20 -132.1764203447364707 - 0 -LINE - 5 -185 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -139.9089253878420891 - 20 -79.6764203447364565 - 30 -0.0 - 11 -139.9089253878420891 - 21 -64.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -186 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -88.9089253878424302 - 20 -79.6764203447364565 - 30 -0.0 - 11 -88.9089253878424302 - 21 -93.1764203447365418 - 31 -0.0 - 0 -LINE - 5 -187 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -186.4089253878424302 - 20 -135.1764203447364991 - 30 -0.0 - 11 -193.9089253878424302 - 21 -135.1764203447364991 - 31 -0.0 - 0 -LINE - 5 -188 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -186.4089253878424302 - 20 -79.6764203447364565 - 30 -0.0 - 11 -193.9089253878424302 - 21 -79.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -189 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -88.9089253878424302 - 20 -114.1764203447364139 - 30 -0.0 - 11 -82.9089253878423449 - 21 -114.1764203447364139 - 31 -0.0 - 0 -LWPOLYLINE - 5 -18A - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -88.9089253878424302 - 20 -114.1764203447364139 - 10 -87.7089253878422426 - 20 -114.4431203447364425 - 10 -87.7089253878422426 - 20 -113.9097203447363853 - 10 -88.9089253878424302 - 20 -114.1764203447364139 - 0 -LINE - 5 -18B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -88.9089253878424302 - 20 -114.1764203447364139 - 30 -0.0 - 11 -88.9089253878424302 - 21 -93.1764203447365418 - 31 -0.0 - 0 -LWPOLYLINE - 5 -18C - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -88.9089253878424302 - 20 -93.1764203447365418 - 10 -89.1756253878422456 - 20 -94.3764203447365162 - 10 -88.6422253878421884 - 20 -94.3764203447365162 - 10 -88.9089253878424302 - 20 -93.1764203447365418 - 0 -LINE - 5 -18D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -91.9089253878422596 - 20 -135.1764203447364991 - 30 -0.0 - 11 -99.4089253878422596 - 21 -135.1764203447364991 - 31 -0.0 - 0 -LWPOLYLINE - 5 -18E - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -99.4089253878422596 - 20 -135.1764203447364991 - 10 -98.208925387842072 - 20 -135.4431203447365419 - 10 -98.208925387842072 - 20 -134.9097203447364564 - 10 -99.4089253878422596 - 20 -135.1764203447364991 - 0 -LINE - 5 -18F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -219.4089253878422596 - 20 -108.1764203447365418 - 30 -0.0 - 11 -213.4089253878421744 - 21 -108.1764203447365418 - 31 -0.0 - 0 -LWPOLYLINE - 5 -190 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -219.4089253878422596 - 20 -108.1764203447365418 - 10 -218.208925387842072 - 20 -108.4431203447365704 - 10 -218.208925387842072 - 20 -107.9097203447365132 - 10 -219.4089253878422596 - 20 -108.1764203447365418 - 0 -LINE - 5 -191 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -219.4089253878422596 - 20 -169.6764203447364707 - 30 -0.0 - 11 -88.9089253878424302 - 21 -169.6764203447364707 - 31 -0.0 - 0 -LINE - 5 -192 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -88.9089253878424302 - 20 -169.6764203447364707 - 30 -0.0 - 11 -88.9089253878424302 - 21 -138.1764203447365276 - 31 -0.0 - 0 -LWPOLYLINE - 5 -193 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -88.9089253878424302 - 20 -138.1764203447365276 - 10 -89.1756253878422456 - 20 -139.3764203447365162 - 10 -88.6422253878421884 - 20 -139.3764203447365162 - 10 -88.9089253878424302 - 20 -138.1764203447365276 - 0 -LINE - 5 -194 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -64.9089253878420891 - 20 -154.6764203447364707 - 30 -0.0 - 11 -64.9089253878420891 - 21 -115.6764203447365418 - 31 -0.0 - 0 -LINE - 5 -195 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -64.9089253878420891 - 20 -157.6764203447364991 - 30 -0.0 - 11 -64.9089253878420891 - 21 -175.6764203447365276 - 31 -0.0 - 0 -LINE - 5 -196 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -64.9089253878420891 - 20 -175.6764203447365276 - 30 -0.0 - 11 -237.4089253878420891 - 21 -175.6764203447365276 - 31 -0.0 - 0 -LINE - 5 -197 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -237.4089253878420891 - 20 -175.6764203447365276 - 30 -0.0 - 11 -237.4089253878420891 - 21 -171.1764203447365844 - 31 -0.0 - 0 -LINE - 5 -198 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -237.4089253878420891 - 20 -168.1764203447365276 - 30 -0.0 - 11 -237.4089253878420891 - 21 -109.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -199 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -237.4089253878420891 - 20 -106.6764203447364139 - 30 -0.0 - 11 -237.4089253878420891 - 21 -49.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -19A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -237.4089253878420891 - 20 -49.6764203447364565 - 30 -0.0 - 11 -64.9089253878420891 - 21 -49.6764203447364565 - 31 -0.0 - 0 -LINE - 5 -19B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -64.9089253878420891 - 20 -70.6764203447365418 - 30 -0.0 - 11 -64.9089253878420891 - 21 -112.6764203447364991 - 31 -0.0 - 0 -LINE - 5 -19C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -64.9089253878420891 - 20 -49.6764203447364565 - 30 -0.0 - 11 -64.9089253878420891 - 21 -67.6764203447364991 - 31 -0.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -19D - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -19D -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -19F - 3 -HIDETEXT -350 -19E - 0 -DICTIONARYVAR - 5 -19E -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -19F -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/hal/images/hal_stepgen_block_diag.dxf b/docs/src/hal/images/hal_stepgen_block_diag.dxf deleted file mode 100644 index 3e83021cbf9..00000000000 --- a/docs/src/hal/images/hal_stepgen_block_diag.dxf +++ /dev/null @@ -1,27528 +0,0 @@ -999 -dxflib 2.0.4.8 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$USERR4 - 40 -0.0 - 9 -$AXISUNIT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMTAD - 70 -0 - 9 -$VISRETAIN - 70 -0 - 9 -$TILEMODE - 70 -1 - 9 -$SHADEDIF - 70 -70 - 9 -$USERR5 - 40 -0.0 - 9 -$UCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$ATTREQ - 70 -1 - 9 -$CHAMFERA - 40 -0.0 - 9 -$MENU - 1 -acad - 9 -$CLAYER - 8 -0 - 9 -$DIMASZ - 40 -0.18 - 9 -$GRIDUNIT - 10 -0.0 - 20 -0.0 - 9 -$DIMADEC - 70 -0 - 9 -$UCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$CHAMFERB - 40 -0.0 - 9 -$TRACEWID - 40 -0.05 - 9 -$REGENMODE - 70 -1 - 9 -$ORTHOMODE - 70 -0 - 9 -$EXTMIN - 10 --25.1999999999999993 - 20 -5.7000000000000002 - 30 -0.0 - 9 -$DIMGAP - 40 -0.09 - 9 -$PUCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$ANGBASE - 50 -0.0 - 9 -$USRTIMER - 70 -1 - 9 -$SKETCHINC - 40 -0.1 - 9 -$DIMTFAC - 40 -1.0 - 9 -$DIMSAH - 70 -0 - 9 -$DIMALT - 70 -0 - 9 -$DIMSHO - 70 -1 - 9 -$PUCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$SURFTYPE - 70 -6 - 9 -$SPLFRAME - 70 -0 - 9 -$AXISMODE - 70 -0 - 9 -$DIMTSZ - 40 -0.0 - 9 -$LIMMIN - 10 -0.0 - 20 -0.0 - 9 -$SPLINESEGS - 70 -8 - 9 -$AUPREC - 70 -0 - 9 -$LUNITS - 70 -2 - 9 -$DWGCODEPAGE - 3 -dos850 - 9 -$SURFTAB1 - 70 -6 - 9 -$BLIPMODE - 70 -1 - 9 -$UNITMODE - 70 -0 - 9 -$USERI1 - 70 -0 - 9 -$SURFTAB2 - 70 -6 - 9 -$SKPOLY - 70 -0 - 9 -$ELEVATION - 40 -0.0 - 9 -$DIMCEN - 40 -0.09 - 9 -$DIMRND - 40 -0.0 - 9 -$INSBASE - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMEXO - 40 -0.0625 - 9 -$INSUNITS - 70 -4 - 9 -$USERI2 - 70 -0 - 9 -$UCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PELEVATION - 40 -0.0 - 9 -$TEXTSIZE - 40 -0.2 - 9 -$DRAGMODE - 70 -2 - 9 -$FILLMODE - 70 -1 - 9 -$EXTMAX - 10 --10.3000000000000007 - 20 -23.3999999999999986 - 30 -0.0 - 9 -$USERI3 - 70 -0 - 9 -$SURFU - 70 -6 - 9 -$ANGDIR - 70 -0 - 9 -$TDUSRTIMER - 40 -0.0 - 9 -$DIMZIN - 70 -0 - 9 -$DIMDLE - 40 -0.0 - 9 -$DIMSCALE - 40 -1.0 - 9 -$DIMLUNIT - 70 -2 - 9 -$WORLDVIEW - 70 -1 - 9 -$USERI4 - 70 -0 - 9 -$SURFV - 70 -6 - 9 -$OSMODE - 70 -0 - 9 -$QTEXTMODE - 70 -0 - 9 -$LIMMAX - 10 -0.0 - 20 -0.0 - 9 -$DIMTXT - 40 -0.18 - 9 -$GRIDMODE - 70 -1 - 9 -$USERI5 - 70 -0 - 9 -$HANDLING - 70 -1 - 9 -$PDMODE - 70 -0 - 9 -$LIMCHECK - 70 -0 - 9 -$THICKNESS - 40 -0.0 - 9 -$DIMSE1 - 70 -0 - 9 -$DIMLIM - 70 -0 - 9 -$ATTMODE - 70 -1 - 9 -$LUPREC - 70 -4 - 9 -$PEXTMAX - 10 --100000000000000000000.0 - 20 --100000000000000000000.0 - 30 --100000000000000000000.0 - 9 -$PEXTMIN - 10 -100000000000000000000.0 - 20 -100000000000000000000.0 - 30 -100000000000000000000.0 - 9 -$PUCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$SPLINETYPE - 70 -6 - 9 -$TDINDWG - 40 -0.0 - 9 -$DIMSOXD - 70 -0 - 9 -$DIMLFAC - 40 -1.0 - 9 -$DIMSE2 - 70 -0 - 9 -$DIMTOH - 70 -1 - 9 -$CELTYPE - 6 -CONTINUOUS - 9 -$PLIMCHECK - 70 -0 - 9 -$PLINEWID - 40 -0.0 - 9 -$DIMSTYLE - 2 -STANDARD - 9 -$DIMTVP - 40 -0.0 - 9 -$DIMASO - 70 -1 - 9 -$DIMTM - 40 -0.0 - 9 -$DIMDLI - 40 -0.38 - 9 -$CECOLOR - 62 -256 - 9 -$PLIMMAX - 10 -210.0 - 20 -297.0 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$TREEDEPTH - 70 -3020 - 9 -$MAXACTVP - 70 -16 - 9 -$TDUPDATE - 40 -0.0 - 9 -$FILLETRAD - 40 -0.0 - 9 -$DIMCLRT - 70 -0 - 9 -$DIMALTD - 70 -2 - 9 -$DIMTIH - 70 -1 - 9 -$LTSCALE - 40 -1.0 - 9 -$PINSBASE - 10 -123.4499999999998039 - 20 -141.2587336244542939 - 30 -0.0 - 9 -$DIMEXE - 40 -0.18 - 9 -$USERR1 - 40 -0.0 - 9 -$ATTDIA - 70 -0 - 9 -$PDSIZE - 40 -0.0 - 9 -$DIMCLRD - 70 -0 - 9 -$DIMAUNIT - 70 -0 - 9 -$PSLTSCALE - 70 -0 - 9 -$PLINEGEN - 70 -1 - 9 -$SHADEDGE - 70 -3 - 9 -$USERR2 - 40 -0.0 - 9 -$COORDS - 70 -0 - 9 -$TDCREATE - 40 -0.0 - 9 -$DIMCLRE - 70 -0 - 9 -$DIMTOFL - 70 -0 - 9 -$DIMALTF - 40 -25.3999999999999986 - 9 -$DIMTOL - 70 -0 - 9 -$DIMTP - 40 -0.0 - 9 -$TEXTSTYLE - 7 -STANDARD - 9 -$AUNITS - 70 -0 - 9 -$USERR3 - 40 -0.0 - 9 -$DIMTIX - 70 -0 - 9 -$MIRRTEXT - 70 -1 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -7 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -MERGE - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -STANDARD - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PINS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PARAMS - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -47 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -OUTLINE - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -48 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -INTERNALS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -0.75 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -0.18 - 42 -0.0625 - 43 -3.75 - 44 -0.18 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -0.18 -141 -2.5 -143 -0.03937007874016 -147 -0.09 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LWPOLYLINE - 5 -49 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 --108.9586899563317388 - 20 --74.267685589519786 - 10 --108.9586899563317388 - 20 --71.8676855895197804 - 10 --93.3586899563317303 - 20 --71.8676855895197804 - 10 --92.1586899563317559 - 20 --73.0676855895197832 - 10 --93.3586899563317303 - 20 --74.267685589519786 - 10 --108.9586899563317388 - 20 --74.267685589519786 - 10 --108.9586899563317388 - 20 --74.267685589519786 - 10 --108.9586899563317388 - 20 --74.267685589519786 - 0 -LWPOLYLINE - 5 -4A - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 --108.9586899563317388 - 20 --2.2676855895197754 - 10 --108.9586899563317388 - 20 -0.1323144104802161 - 10 --93.3586899563317303 - 20 -0.1323144104802161 - 10 --92.1586899563317559 - 20 --1.0676855895197797 - 10 --93.3586899563317303 - 20 --2.2676855895197754 - 10 --108.9586899563317388 - 20 --2.2676855895197754 - 10 --108.9586899563317388 - 20 --2.2676855895197754 - 10 --108.9586899563317388 - 20 --2.2676855895197754 - 0 -LWPOLYLINE - 5 -4B - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 --108.9586899563317388 - 20 -69.732314410480214 - 10 --108.9586899563317388 - 20 -72.1323144104802196 - 10 --93.3586899563317303 - 20 -72.1323144104802196 - 10 --92.1586899563317559 - 20 -70.9323144104802452 - 10 --93.3586899563317303 - 20 -69.732314410480214 - 10 --108.9586899563317388 - 20 -69.732314410480214 - 10 --108.9586899563317388 - 20 -69.732314410480214 - 10 --108.9586899563317388 - 20 -69.732314410480214 - 0 -MTEXT - 5 -4C -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --100.5586899563317473 - 20 --73.0676855895197832 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -velocity-cmd - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4D -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --100.5586899563317473 - 20 --1.0676855895197797 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -position-cmd - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4E -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --100.5586899563317473 - 20 -70.9323144104802452 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -position-cmd - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LWPOLYLINE - 5 -4F - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 -68.6413100436682555 - 20 --38.2676855895197718 - 10 -69.8413100436682726 - 20 --37.067685589519769 - 10 -68.6413100436682555 - 20 --35.8676855895197804 - 10 -53.0413100436682896 - 20 --35.8676855895197804 - 10 -53.0413100436682896 - 20 --38.2676855895197718 - 10 -68.6413100436682555 - 20 --38.2676855895197718 - 10 -68.6413100436682555 - 20 --38.2676855895197718 - 10 -68.6413100436682555 - 20 --38.2676855895197718 - 0 -LWPOLYLINE - 5 -50 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 -68.6413100436682555 - 20 --49.0676855895197832 - 10 -69.8413100436682726 - 20 --47.8676855895197804 - 10 -68.6413100436682555 - 20 --46.6676855895197775 - 10 -53.0413100436682896 - 20 --46.6676855895197775 - 10 -53.0413100436682896 - 20 --49.0676855895197832 - 10 -68.6413100436682555 - 20 --49.0676855895197832 - 10 -68.6413100436682555 - 20 --49.0676855895197832 - 10 -68.6413100436682555 - 20 --49.0676855895197832 - 0 -LWPOLYLINE - 5 -51 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 -68.6413100436682555 - 20 --45.4676855895197605 - 10 -69.8413100436682726 - 20 --44.2676855895197718 - 10 -68.6413100436682555 - 20 --43.067685589519769 - 10 -53.0413100436682896 - 20 --43.067685589519769 - 10 -53.0413100436682896 - 20 --45.4676855895197605 - 10 -68.6413100436682555 - 20 --45.4676855895197605 - 10 -68.6413100436682555 - 20 --45.4676855895197605 - 10 -68.6413100436682555 - 20 --45.4676855895197605 - 0 -LWPOLYLINE - 5 -52 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 -68.6413100436682555 - 20 -26.5323144104802324 - 10 -69.8413100436682726 - 20 -27.7323144104802282 - 10 -68.6413100436682555 - 20 -28.9323144104802452 - 10 -53.0413100436682896 - 20 -28.9323144104802452 - 10 -53.0413100436682896 - 20 -26.5323144104802324 - 10 -68.6413100436682555 - 20 -26.5323144104802324 - 10 -68.6413100436682555 - 20 -26.5323144104802324 - 10 -68.6413100436682555 - 20 -26.5323144104802324 - 0 -LWPOLYLINE - 5 -53 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 -68.6413100436682555 - 20 -98.5323144104802111 - 10 -69.8413100436682726 - 20 -99.7323144104802282 - 10 -68.6413100436682555 - 20 -100.9323144104802452 - 10 -53.0413100436682896 - 20 -100.9323144104802452 - 10 -53.0413100436682896 - 20 -98.5323144104802111 - 10 -68.6413100436682555 - 20 -98.5323144104802111 - 10 -68.6413100436682555 - 20 -98.5323144104802111 - 10 -68.6413100436682555 - 20 -98.5323144104802111 - 0 -LWPOLYLINE - 5 -54 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 -68.6413100436682555 - 20 --34.6676855895197633 - 10 -69.8413100436682726 - 20 --33.4676855895197605 - 10 -68.6413100436682555 - 20 --32.2676855895197718 - 10 -53.0413100436682896 - 20 --32.2676855895197718 - 10 -53.0413100436682896 - 20 --34.6676855895197633 - 10 -68.6413100436682555 - 20 --34.6676855895197633 - 10 -68.6413100436682555 - 20 --34.6676855895197633 - 10 -68.6413100436682555 - 20 --34.6676855895197633 - 0 -LWPOLYLINE - 5 -55 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 -68.6413100436682555 - 20 --41.8676855895197662 - 10 -69.8413100436682726 - 20 --40.6676855895197633 - 10 -68.6413100436682555 - 20 --39.4676855895197605 - 10 -53.0413100436682896 - 20 --39.4676855895197605 - 10 -53.0413100436682896 - 20 --41.8676855895197662 - 10 -68.6413100436682555 - 20 --41.8676855895197662 - 10 -68.6413100436682555 - 20 --41.8676855895197662 - 10 -68.6413100436682555 - 20 --41.8676855895197662 - 0 -LWPOLYLINE - 5 -56 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 -68.6413100436682555 - 20 -33.7323144104802282 - 10 -69.8413100436682726 - 20 -34.9323144104802452 - 10 -68.6413100436682555 - 20 -36.1323144104802196 - 10 -53.0413100436682896 - 20 -36.1323144104802196 - 10 -53.0413100436682896 - 20 -33.7323144104802282 - 10 -68.6413100436682555 - 20 -33.7323144104802282 - 10 -68.6413100436682555 - 20 -33.7323144104802282 - 10 -68.6413100436682555 - 20 -33.7323144104802282 - 0 -LWPOLYLINE - 5 -57 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 -68.6413100436682555 - 20 -105.7323144104802282 - 10 -69.8413100436682726 - 20 -106.9323144104802452 - 10 -68.6413100436682555 - 20 -108.1323144104802196 - 10 -53.0413100436682896 - 20 -108.1323144104802196 - 10 -53.0413100436682896 - 20 -105.7323144104802282 - 10 -68.6413100436682555 - 20 -105.7323144104802282 - 10 -68.6413100436682555 - 20 -105.7323144104802282 - 10 -68.6413100436682555 - 20 -105.7323144104802282 - 0 -LWPOLYLINE - 5 -58 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 --107.7586899563317502 - 20 --38.2676855895197718 - 10 --108.9586899563317388 - 20 --37.067685589519769 - 10 --107.7586899563317502 - 20 --35.8676855895197804 - 10 --92.1586899563317559 - 20 --35.8676855895197804 - 10 --92.1586899563317559 - 20 --38.2676855895197718 - 10 --107.7586899563317502 - 20 --38.2676855895197718 - 10 --107.7586899563317502 - 20 --38.2676855895197718 - 10 --107.7586899563317502 - 20 --38.2676855895197718 - 0 -LWPOLYLINE - 5 -59 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 --107.7586899563317502 - 20 -33.7323144104802282 - 10 --108.9586899563317388 - 20 -34.9323144104802452 - 10 --107.7586899563317502 - 20 -36.1323144104802196 - 10 --92.1586899563317559 - 20 -36.1323144104802196 - 10 --92.1586899563317559 - 20 -33.7323144104802282 - 10 --107.7586899563317502 - 20 -33.7323144104802282 - 10 --107.7586899563317502 - 20 -33.7323144104802282 - 10 --107.7586899563317502 - 20 -33.7323144104802282 - 0 -LWPOLYLINE - 5 -5A - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 --107.7586899563317502 - 20 -105.7323144104802282 - 10 --108.9586899563317388 - 20 -106.9323144104802452 - 10 --107.7586899563317502 - 20 -108.1323144104802196 - 10 --92.1586899563317559 - 20 -108.1323144104802196 - 10 --92.1586899563317559 - 20 -105.7323144104802282 - 10 --107.7586899563317502 - 20 -105.7323144104802282 - 10 --107.7586899563317502 - 20 -105.7323144104802282 - 10 --107.7586899563317502 - 20 -105.7323144104802282 - 0 -LWPOLYLINE - 5 -5B - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 --107.7586899563317502 - 20 --43.067685589519769 - 10 --108.9586899563317388 - 20 --41.8676855895197662 - 10 --107.7586899563317502 - 20 --40.6676855895197633 - 10 --92.1586899563317559 - 20 --40.6676855895197633 - 10 --92.1586899563317559 - 20 --43.067685589519769 - 10 --107.7586899563317502 - 20 --43.067685589519769 - 10 --107.7586899563317502 - 20 --43.067685589519769 - 10 --107.7586899563317502 - 20 --43.067685589519769 - 0 -LWPOLYLINE - 5 -5C - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 --107.7586899563317502 - 20 -28.9323144104802452 - 10 --108.9586899563317388 - 20 -30.1323144104802196 - 10 --107.7586899563317502 - 20 -31.3323144104802367 - 10 --92.1586899563317559 - 20 -31.3323144104802367 - 10 --92.1586899563317559 - 20 -28.9323144104802452 - 10 --107.7586899563317502 - 20 -28.9323144104802452 - 10 --107.7586899563317502 - 20 -28.9323144104802452 - 10 --107.7586899563317502 - 20 -28.9323144104802452 - 0 -LWPOLYLINE - 5 -5D - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 --107.7586899563317502 - 20 -100.9323144104802452 - 10 --108.9586899563317388 - 20 -102.1323144104802196 - 10 --107.7586899563317502 - 20 -103.3323144104802367 - 10 --92.1586899563317559 - 20 -103.3323144104802367 - 10 --92.1586899563317559 - 20 -100.9323144104802452 - 10 --107.7586899563317502 - 20 -100.9323144104802452 - 10 --107.7586899563317502 - 20 -100.9323144104802452 - 10 --107.7586899563317502 - 20 -100.9323144104802452 - 0 -MTEXT - 5 -5E -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -61.4413100436682669 - 20 --37.067685589519769 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -phase-B - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5F -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -61.4413100436682669 - 20 --47.8676855895197804 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -phase-E - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -60 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -61.4413100436682669 - 20 --44.2676855895197718 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -phase-D - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -61 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -61.4413100436682669 - 20 -27.7323144104802282 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -down - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -62 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -61.4413100436682669 - 20 -99.7323144104802282 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -step - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -63 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -61.4413100436682669 - 20 --33.4676855895197605 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -phase-A - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -64 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -61.4413100436682669 - 20 --40.6676855895197633 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -phase-C - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -65 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -61.4413100436682669 - 20 -34.9323144104802452 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -up - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -66 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -61.4413100436682669 - 20 -106.9323144104802452 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -dir - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -67 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --56.7251619563317462 - 20 -5.2132704104802201 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -pos\~err - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -68 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --56.7251619563317462 - 20 -77.2132704104802059 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -pos\~err - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -69 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --56.6291499563317302 - 20 --4.3887695895197751 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -vel\~err - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6A -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --56.6291499563317302 - 20 -67.6112304104802462 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -vel\~err - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6B -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --99.3586899563317303 - 20 --37.067685589519769 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -counts - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6C -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --99.3586899563317303 - 20 -34.9323144104802452 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -counts - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6D -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --99.3586899563317303 - 20 -106.9323144104802452 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -counts - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6E -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --99.3586899563317303 - 20 --41.8676855895197662 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -position-fb - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6F -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --99.3586899563317303 - 20 -30.1323144104802196 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -position-fb - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -70 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --99.3586899563317303 - 20 -102.1323144104802196 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -position-fb - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -71 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --46.5586899563317473 - 20 --86.2676855895197718 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -maxaccel - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -72 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --53.7586899563317502 - 20 --14.2676855895197754 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -maxaccel - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -73 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --53.7586899563317502 - 20 -57.7323144104802282 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -maxaccel - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -74 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --46.5586899563317473 - 20 --82.6676855895197917 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -maxfreq - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -75 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --23.7586899563317502 - 20 --10.6676855895197598 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -maxfreq - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -76 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --23.7586899563317502 - 20 -61.3323144104802367 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -maxfreq - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -77 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.8594460436682567 - 20 --72.165045589519778 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -position - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -78 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.8594460436682567 - 20 --0.1650455895197815 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -position - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -79 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.8594460436682567 - 20 -71.834954410480222 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -position - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7A -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.8594460436682567 - 20 --73.9650455895197751 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -accumulator - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7B -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.8594460436682567 - 20 --1.9650455895197823 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -accumulator - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7C -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.8594460436682567 - 20 -70.0349544104802391 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -accumulator - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7D -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 --39.7676855895197718 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -lookup - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7E -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 --41.567685589519769 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -table - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7F -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --20.1586899563317417 - 20 --73.0676855895197832 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -ramp - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -80 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.6413100436682555 - 20 --73.0676855895197832 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -ramp - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -81 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.6413100436682555 - 20 --1.0676855895197797 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -ramp - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -82 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.6413100436682555 - 20 -70.9323144104802452 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -ramp - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -83 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --45.3586899563317161 - 20 --39.4676855895197605 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -latch - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -84 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --45.3586899563317161 - 20 -32.5323144104802111 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -latch - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -85 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --45.3586899563317161 - 20 -104.5323144104802111 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -latch - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -86 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 --57.1676855895197775 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -state - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -87 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 -14.8323144104802367 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -up/down - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -88 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 -86.8323144104802367 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -step/dir - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -89 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 --58.9676855895197747 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -counter - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8A -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 -13.0323144104802306 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -logic - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8B -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 -85.0323144104802111 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -logic - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8C -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 --60.767685589519786 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -and - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8D -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 -11.2323144104802264 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -and - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8E -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 -83.232314410480214 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -and - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8F -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 --62.5676855895197832 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -timing - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -90 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 -9.4323144104802203 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -timing - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -91 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 -81.4323144104802452 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -timing - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -92 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --21.3586899563317161 - 20 --61.0676855895197832 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -frequency - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -93 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.9586899563317388 - 20 -10.9323144104802221 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -frequency - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -94 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --18.9586899563317388 - 20 -82.9323144104802452 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -frequency - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -95 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -55.2247580436682597 - 20 -14.5323144104802306 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -stepspace - 7 -STYLE3 - 50 -0.000005 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -96 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -55.2247580436682597 - 20 -86.5323144104802111 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -stepspace - 7 -STYLE3 - 50 -0.000005 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -97 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -55.2247580436682597 - 20 -82.9323144104802452 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -dirsetup - 7 -STYLE3 - 50 -0.000005 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -98 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -55.2247580436682597 - 20 --61.0676855895197832 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -dirdelay - 7 -STYLE3 - 50 -0.000005 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -99 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -55.2247580436682597 - 20 -7.3323144104802349 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -dirdelay - 7 -STYLE3 - 50 -0.000005 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -9A -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -55.2247580436682597 - 20 -79.3323144104802367 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -dirhold - 7 -STYLE3 - 50 -0.000005 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -9B -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -55.2247580436682597 - 20 --57.4676855895197747 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -steplen - 7 -STYLE3 - 50 -0.000005 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -9C -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -55.2247580436682597 - 20 -18.1323144104802196 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -steplen - 7 -STYLE3 - 50 -0.000005 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -9D -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -55.2247580436682597 - 20 -90.1323144104802196 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -steplen - 7 -STYLE3 - 50 -0.000005 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -9E -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -17.0413100436682754 - 20 --31.0676855895197725 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -rawcounts - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -9F -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -17.0413100436682754 - 20 -40.9323144104802452 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -rawcounts - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -A0 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -17.0413100436682754 - 20 -112.9323144104802452 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -rawcounts - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -A1 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --95.7586899563317644 - 20 --64.6676855895197775 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -position-scale - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -A2 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --96.9586899563317388 - 20 -7.3323144104802349 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -position-scale - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -A3 -100 -AcDbEntity -100 -AcDbMText - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --96.9586899563317388 - 20 -79.3323144104802367 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -position-scale - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -A4 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --53.7586899563317502 - 20 --87.4676855895197747 - 30 -0.0 - 11 --53.7586899563317502 - 21 --85.067685589519769 - 31 -0.0 - 0 -LINE - 5 -A5 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9586899563317388 - 20 --15.467685589519764 - 30 -0.0 - 11 --60.9586899563317388 - 21 --13.0676855895197725 - 31 -0.0 - 0 -LINE - 5 -A6 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9586899563317388 - 20 -56.5323144104802111 - 30 -0.0 - 11 --60.9586899563317388 - 21 -58.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -A7 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --53.7586899563317502 - 20 --83.8676855895197519 - 30 -0.0 - 11 --53.7586899563317502 - 21 --81.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -A8 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --30.9586899563317388 - 20 --11.8676855895197839 - 30 -0.0 - 11 --30.9586899563317388 - 21 --9.467685589519764 - 31 -0.0 - 0 -LINE - 5 -A9 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --30.9586899563317388 - 20 -60.1323144104802196 - 30 -0.0 - 11 --30.9586899563317388 - 21 -62.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -AA -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --28.5586899563317473 - 20 --62.267685589519786 - 30 -0.0 - 11 --28.5586899563317473 - 21 --59.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -AB -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.1586899563317417 - 20 -9.7323144104802264 - 30 -0.0 - 11 --26.1586899563317417 - 21 -12.1323144104802179 - 31 -0.0 - 0 -LINE - 5 -AC -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.1586899563317417 - 20 -81.732314410480214 - 30 -0.0 - 11 --26.1586899563317417 - 21 -84.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -AD -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 -13.3323144104802349 - 30 -0.0 - 11 -62.4247580436682483 - 21 -15.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -AE -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 -85.3323144104802367 - 30 -0.0 - 11 -62.4247580436682483 - 21 -87.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -AF -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 -81.732314410480214 - 30 -0.0 - 11 -62.4247580436682483 - 21 -84.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -B0 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 --62.267685589519786 - 30 -0.0 - 11 -62.4247580436682483 - 21 --59.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -B1 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 -6.1323144104802196 - 30 -0.0 - 11 -62.4247580436682483 - 21 -8.5323144104802324 - 31 -0.0 - 0 -LINE - 5 -B2 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 -78.1323144104802196 - 30 -0.0 - 11 -62.4247580436682483 - 21 -80.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -B3 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 --58.6676855895197775 - 30 -0.0 - 11 -62.4247580436682483 - 21 --56.267685589519786 - 31 -0.0 - 0 -LINE - 5 -B4 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 -16.9323144104802239 - 30 -0.0 - 11 -62.4247580436682483 - 21 -19.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -B5 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 -88.9323144104802452 - 30 -0.0 - 11 -62.4247580436682483 - 21 -91.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -B6 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -9.8413100436682583 - 20 --32.2676855895197718 - 30 -0.0 - 11 -9.8413100436682583 - 21 --29.8676855895197839 - 31 -0.0 - 0 -LINE - 5 -B7 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -9.8413100436682583 - 20 -39.7323144104802282 - 30 -0.0 - 11 -9.8413100436682583 - 21 -42.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -B8 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -9.8413100436682583 - 20 -111.7323144104802282 - 30 -0.0 - 11 -9.8413100436682583 - 21 -114.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -B9 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --102.9586899563317388 - 20 --65.8676855895197804 - 30 -0.0 - 11 --102.9586899563317388 - 21 --63.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -BA -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --104.1586899563317559 - 20 -6.1323144104802196 - 30 -0.0 - 11 --104.1586899563317559 - 21 -8.5323144104802324 - 31 -0.0 - 0 -LINE - 5 -BB -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --104.1586899563317559 - 20 -78.1323144104802196 - 30 -0.0 - 11 --104.1586899563317559 - 21 -80.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -BC -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --53.7586899563317502 - 20 --85.067685589519769 - 30 -0.0 - 11 --39.3586899563317303 - 21 --85.067685589519769 - 31 -0.0 - 0 -LINE - 5 -BD -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9586899563317388 - 20 --13.0676855895197725 - 30 -0.0 - 11 --46.5586899563317473 - 21 --13.0676855895197725 - 31 -0.0 - 0 -LINE - 5 -BE -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9586899563317388 - 20 -58.9323144104802452 - 30 -0.0 - 11 --46.5586899563317473 - 21 -58.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -BF -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --53.7586899563317502 - 20 --81.4676855895197747 - 30 -0.0 - 11 --39.3586899563317303 - 21 --81.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -C0 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --30.9586899563317388 - 20 --9.467685589519764 - 30 -0.0 - 11 --16.5586899563317473 - 21 --9.467685589519764 - 31 -0.0 - 0 -LINE - 5 -C1 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --30.9586899563317388 - 20 -62.5323144104802111 - 30 -0.0 - 11 --16.5586899563317473 - 21 -62.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -C2 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --28.5586899563317473 - 20 --59.8676855895197804 - 30 -0.0 - 11 --14.1586899563317417 - 21 --59.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -C3 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.1586899563317417 - 20 -12.1323144104802179 - 30 -0.0 - 11 --11.7586899563317502 - 21 -12.1323144104802179 - 31 -0.0 - 0 -LINE - 5 -C4 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.1586899563317417 - 20 -84.1323144104802196 - 30 -0.0 - 11 --11.7586899563317502 - 21 -84.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -C5 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 -15.7323144104802282 - 30 -0.0 - 11 -48.0247580436682711 - 21 -15.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -C6 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 -87.7323144104802282 - 30 -0.0 - 11 -48.0247580436682711 - 21 -87.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -C7 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 -84.1323144104802196 - 30 -0.0 - 11 -48.0247580436682711 - 21 -84.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -C8 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 --59.8676855895197804 - 30 -0.0 - 11 -48.0247580436682711 - 21 --59.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -C9 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 -8.5323144104802324 - 30 -0.0 - 11 -48.0247580436682711 - 21 -8.5323144104802324 - 31 -0.0 - 0 -LINE - 5 -CA -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 -80.5323144104802111 - 30 -0.0 - 11 -48.0247580436682711 - 21 -80.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -CB -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 --56.267685589519786 - 30 -0.0 - 11 -48.0247580436682711 - 21 --56.267685589519786 - 31 -0.0 - 0 -LINE - 5 -CC -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 -19.3323144104802367 - 30 -0.0 - 11 -48.0247580436682711 - 21 -19.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -CD -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -62.4247580436682483 - 20 -91.3323144104802367 - 30 -0.0 - 11 -48.0247580436682711 - 21 -91.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -CE -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -9.8413100436682583 - 20 --29.8676855895197839 - 30 -0.0 - 11 -24.2413100436682782 - 21 --29.8676855895197839 - 31 -0.0 - 0 -LINE - 5 -CF -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -9.8413100436682583 - 20 -42.1323144104802196 - 30 -0.0 - 11 -24.2413100436682782 - 21 -42.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -D0 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -9.8413100436682583 - 20 -114.1323144104802196 - 30 -0.0 - 11 -24.2413100436682782 - 21 -114.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -D1 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --102.9586899563317388 - 20 --63.4676855895197747 - 30 -0.0 - 11 --88.5586899563317473 - 21 --63.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -D2 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --104.1586899563317559 - 20 -8.5323144104802324 - 30 -0.0 - 11 --89.7586899563317644 - 21 -8.5323144104802324 - 31 -0.0 - 0 -LINE - 5 -D3 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --104.1586899563317559 - 20 -80.5323144104802111 - 30 -0.0 - 11 --89.7586899563317644 - 21 -80.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -D4 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.3586899563317303 - 20 --85.067685589519769 - 30 -0.0 - 11 --39.3586899563317303 - 21 --87.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -D5 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --46.5586899563317473 - 20 --13.0676855895197725 - 30 -0.0 - 11 --46.5586899563317473 - 21 --15.467685589519764 - 31 -0.0 - 0 -LINE - 5 -D6 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --46.5586899563317473 - 20 -58.9323144104802452 - 30 -0.0 - 11 --46.5586899563317473 - 21 -56.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -D7 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.3586899563317303 - 20 --81.4676855895197747 - 30 -0.0 - 11 --39.3586899563317303 - 21 --83.8676855895197519 - 31 -0.0 - 0 -LINE - 5 -D8 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.5586899563317473 - 20 --9.467685589519764 - 30 -0.0 - 11 --16.5586899563317473 - 21 --11.8676855895197839 - 31 -0.0 - 0 -LINE - 5 -D9 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.5586899563317473 - 20 -62.5323144104802111 - 30 -0.0 - 11 --16.5586899563317473 - 21 -60.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -DA -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --14.1586899563317417 - 20 --59.8676855895197804 - 30 -0.0 - 11 --14.1586899563317417 - 21 --62.267685589519786 - 31 -0.0 - 0 -LINE - 5 -DB -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --11.7586899563317502 - 20 -12.1323144104802179 - 30 -0.0 - 11 --11.7586899563317502 - 21 -9.7323144104802264 - 31 -0.0 - 0 -LINE - 5 -DC -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --11.7586899563317502 - 20 -84.1323144104802196 - 30 -0.0 - 11 --11.7586899563317502 - 21 -81.732314410480214 - 31 -0.0 - 0 -LINE - 5 -DD -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 -15.7323144104802282 - 30 -0.0 - 11 -48.0247580436682711 - 21 -13.3323144104802349 - 31 -0.0 - 0 -LINE - 5 -DE -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 -87.7323144104802282 - 30 -0.0 - 11 -48.0247580436682711 - 21 -85.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -DF -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 -84.1323144104802196 - 30 -0.0 - 11 -48.0247580436682711 - 21 -81.732314410480214 - 31 -0.0 - 0 -LINE - 5 -E0 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 --59.8676855895197804 - 30 -0.0 - 11 -48.0247580436682711 - 21 --62.267685589519786 - 31 -0.0 - 0 -LINE - 5 -E1 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 -8.5323144104802324 - 30 -0.0 - 11 -48.0247580436682711 - 21 -6.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -E2 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 -80.5323144104802111 - 30 -0.0 - 11 -48.0247580436682711 - 21 -78.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -E3 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 --56.267685589519786 - 30 -0.0 - 11 -48.0247580436682711 - 21 --58.6676855895197775 - 31 -0.0 - 0 -LINE - 5 -E4 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 -19.3323144104802367 - 30 -0.0 - 11 -48.0247580436682711 - 21 -16.9323144104802239 - 31 -0.0 - 0 -LINE - 5 -E5 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 -91.3323144104802367 - 30 -0.0 - 11 -48.0247580436682711 - 21 -88.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -E6 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.2413100436682782 - 20 --29.8676855895197839 - 30 -0.0 - 11 -24.2413100436682782 - 21 --32.2676855895197718 - 31 -0.0 - 0 -LINE - 5 -E7 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.2413100436682782 - 20 -42.1323144104802196 - 30 -0.0 - 11 -24.2413100436682782 - 21 -39.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -E8 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.2413100436682782 - 20 -114.1323144104802196 - 30 -0.0 - 11 -24.2413100436682782 - 21 -111.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -E9 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --88.5586899563317473 - 20 --63.4676855895197747 - 30 -0.0 - 11 --88.5586899563317473 - 21 --65.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -EA -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --89.7586899563317644 - 20 -8.5323144104802324 - 30 -0.0 - 11 --89.7586899563317644 - 21 -6.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -EB -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --89.7586899563317644 - 20 -80.5323144104802111 - 30 -0.0 - 11 --89.7586899563317644 - 21 -78.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -EC -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.3586899563317303 - 20 --87.4676855895197747 - 30 -0.0 - 11 --53.7586899563317502 - 21 --87.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -ED -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --46.5586899563317473 - 20 --15.467685589519764 - 30 -0.0 - 11 --60.9586899563317388 - 21 --15.467685589519764 - 31 -0.0 - 0 -LINE - 5 -EE -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --46.5586899563317473 - 20 -56.5323144104802111 - 30 -0.0 - 11 --60.9586899563317388 - 21 -56.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -EF -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.3586899563317303 - 20 --83.8676855895197519 - 30 -0.0 - 11 --53.7586899563317502 - 21 --83.8676855895197519 - 31 -0.0 - 0 -LINE - 5 -F0 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.5586899563317473 - 20 --11.8676855895197839 - 30 -0.0 - 11 --30.9586899563317388 - 21 --11.8676855895197839 - 31 -0.0 - 0 -LINE - 5 -F1 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.5586899563317473 - 20 -60.1323144104802196 - 30 -0.0 - 11 --30.9586899563317388 - 21 -60.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -F2 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --14.1586899563317417 - 20 --62.267685589519786 - 30 -0.0 - 11 --28.5586899563317473 - 21 --62.267685589519786 - 31 -0.0 - 0 -LINE - 5 -F3 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --11.7586899563317502 - 20 -9.7323144104802264 - 30 -0.0 - 11 --26.1586899563317417 - 21 -9.7323144104802264 - 31 -0.0 - 0 -LINE - 5 -F4 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --11.7586899563317502 - 20 -81.732314410480214 - 30 -0.0 - 11 --26.1586899563317417 - 21 -81.732314410480214 - 31 -0.0 - 0 -LINE - 5 -F5 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 -13.3323144104802349 - 30 -0.0 - 11 -62.4247580436682483 - 21 -13.3323144104802349 - 31 -0.0 - 0 -LINE - 5 -F6 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 -85.3323144104802367 - 30 -0.0 - 11 -62.4247580436682483 - 21 -85.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -F7 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 -81.732314410480214 - 30 -0.0 - 11 -62.4247580436682483 - 21 -81.732314410480214 - 31 -0.0 - 0 -LINE - 5 -F8 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 --62.267685589519786 - 30 -0.0 - 11 -62.4247580436682483 - 21 --62.267685589519786 - 31 -0.0 - 0 -LINE - 5 -F9 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 -6.1323144104802196 - 30 -0.0 - 11 -62.4247580436682483 - 21 -6.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -FA -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 -78.1323144104802196 - 30 -0.0 - 11 -62.4247580436682483 - 21 -78.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -FB -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 --58.6676855895197775 - 30 -0.0 - 11 -62.4247580436682483 - 21 --58.6676855895197775 - 31 -0.0 - 0 -LINE - 5 -FC -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 -16.9323144104802239 - 30 -0.0 - 11 -62.4247580436682483 - 21 -16.9323144104802239 - 31 -0.0 - 0 -LINE - 5 -FD -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.0247580436682711 - 20 -88.9323144104802452 - 30 -0.0 - 11 -62.4247580436682483 - 21 -88.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -FE -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.2413100436682782 - 20 --32.2676855895197718 - 30 -0.0 - 11 -9.8413100436682583 - 21 --32.2676855895197718 - 31 -0.0 - 0 -LINE - 5 -FF -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.2413100436682782 - 20 -39.7323144104802282 - 30 -0.0 - 11 -9.8413100436682583 - 21 -39.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -100 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.2413100436682782 - 20 -111.7323144104802282 - 30 -0.0 - 11 -9.8413100436682583 - 21 -111.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -101 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --88.5586899563317473 - 20 --65.8676855895197804 - 30 -0.0 - 11 --102.9586899563317388 - 21 --65.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -102 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --89.7586899563317644 - 20 -6.1323144104802196 - 30 -0.0 - 11 --104.1586899563317559 - 21 -6.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -103 -100 -AcDbEntity -100 -AcDbLine - 8 -PARAMS - 62 -7 -370 --1 - 6 -ByLayer - 10 --89.7586899563317644 - 20 -78.1323144104802196 - 30 -0.0 - 11 --104.1586899563317559 - 21 -78.1323144104802196 - 31 -0.0 - 0 -LWPOLYLINE - 5 -104 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 -9.8413100436682583 - 20 --76.6676855895197917 - 10 -9.8413100436682583 - 20 --69.4676855895197747 - 10 -19.4413100436682527 - 20 --69.4676855895197747 - 10 -19.4413100436682527 - 20 --76.6676855895197917 - 10 -9.8413100436682583 - 20 --76.6676855895197917 - 10 -9.8413100436682583 - 20 --76.6676855895197917 - 0 -LWPOLYLINE - 5 -105 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 -9.8413100436682583 - 20 --4.6676855895197669 - 10 -9.8413100436682583 - 20 -2.5323144104802324 - 10 -19.4413100436682527 - 20 -2.5323144104802324 - 10 -19.4413100436682527 - 20 --4.6676855895197669 - 10 -9.8413100436682583 - 20 --4.6676855895197669 - 10 -9.8413100436682583 - 20 --4.6676855895197669 - 0 -LWPOLYLINE - 5 -106 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 -9.8413100436682583 - 20 -67.3323144104802367 - 10 -9.8413100436682583 - 20 -74.5323144104802111 - 10 -19.4413100436682527 - 20 -74.5323144104802111 - 10 -19.4413100436682527 - 20 -67.3323144104802367 - 10 -9.8413100436682583 - 20 -67.3323144104802367 - 10 -9.8413100436682583 - 20 -67.3323144104802367 - 0 -LWPOLYLINE - 5 -107 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --23.7586899563317502 - 20 --76.6676855895197917 - 10 --23.7586899563317502 - 20 --69.4676855895197747 - 10 --16.5586899563317473 - 20 --69.4676855895197747 - 10 --16.5586899563317473 - 20 --76.6676855895197917 - 10 --23.7586899563317502 - 20 --76.6676855895197917 - 10 --23.7586899563317502 - 20 --76.6676855895197917 - 0 -LWPOLYLINE - 5 -108 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --0.9586899563317246 - 20 --76.6676855895197917 - 10 --0.9586899563317246 - 20 --69.4676855895197747 - 10 -6.2413100436682498 - 20 --69.4676855895197747 - 10 -6.2413100436682498 - 20 --76.6676855895197917 - 10 --0.9586899563317246 - 20 --76.6676855895197917 - 10 --0.9586899563317246 - 20 --76.6676855895197917 - 0 -LWPOLYLINE - 5 -109 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --0.9586899563317246 - 20 --4.6676855895197669 - 10 --0.9586899563317246 - 20 -2.5323144104802324 - 10 -6.2413100436682498 - 20 -2.5323144104802324 - 10 -6.2413100436682498 - 20 --4.6676855895197669 - 10 --0.9586899563317246 - 20 --4.6676855895197669 - 10 --0.9586899563317246 - 20 --4.6676855895197669 - 0 -LWPOLYLINE - 5 -10A - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --0.9586899563317246 - 20 -67.3323144104802367 - 10 --0.9586899563317246 - 20 -74.5323144104802111 - 10 -6.2413100436682498 - 20 -74.5323144104802111 - 10 -6.2413100436682498 - 20 -67.3323144104802367 - 10 --0.9586899563317246 - 20 -67.3323144104802367 - 10 --0.9586899563317246 - 20 -67.3323144104802367 - 0 -LWPOLYLINE - 5 -10B - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --39.3586899563317303 - 20 --4.6676855895197669 - 10 --39.3586899563317303 - 20 -2.5323144104802324 - 10 --32.1586899563317417 - 20 -2.5323144104802324 - 10 --32.1586899563317417 - 20 --4.6676855895197669 - 10 --39.3586899563317303 - 20 --4.6676855895197669 - 10 --39.3586899563317303 - 20 --4.6676855895197669 - 0 -LWPOLYLINE - 5 -10C - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --39.3586899563317303 - 20 -67.3323144104802367 - 10 --39.3586899563317303 - 20 -74.5323144104802111 - 10 --32.1586899563317417 - 20 -74.5323144104802111 - 10 --32.1586899563317417 - 20 -67.3323144104802367 - 10 --39.3586899563317303 - 20 -67.3323144104802367 - 10 --39.3586899563317303 - 20 -67.3323144104802367 - 0 -LWPOLYLINE - 5 -10D - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --39.3586899563317303 - 20 --76.6676855895197917 - 10 --39.3586899563317303 - 20 --69.4676855895197747 - 10 --32.1586899563317417 - 20 --69.4676855895197747 - 10 --32.1586899563317417 - 20 --76.6676855895197917 - 10 --39.3586899563317303 - 20 --76.6676855895197917 - 10 --39.3586899563317303 - 20 --76.6676855895197917 - 0 -LWPOLYLINE - 5 -10E - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 -18.2413100436682498 - 20 --63.4676855895197747 - 10 -18.2413100436682498 - 20 --56.267685589519786 - 10 -25.4413100436682669 - 20 --56.267685589519786 - 10 -25.4413100436682669 - 20 --63.4676855895197747 - 10 -18.2413100436682498 - 20 --63.4676855895197747 - 10 -18.2413100436682498 - 20 --63.4676855895197747 - 0 -LWPOLYLINE - 5 -10F - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 -18.2413100436682498 - 20 -8.5323144104802324 - 10 -18.2413100436682498 - 20 -15.7323144104802282 - 10 -25.4413100436682669 - 20 -15.7323144104802282 - 10 -25.4413100436682669 - 20 -8.5323144104802324 - 10 -18.2413100436682498 - 20 -8.5323144104802324 - 10 -18.2413100436682498 - 20 -8.5323144104802324 - 0 -LWPOLYLINE - 5 -110 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 -18.2413100436682498 - 20 -80.5323144104802111 - 10 -18.2413100436682498 - 20 -87.7323144104802282 - 10 -25.4413100436682669 - 20 -87.7323144104802282 - 10 -25.4413100436682669 - 20 -80.5323144104802111 - 10 -18.2413100436682498 - 20 -80.5323144104802111 - 10 -18.2413100436682498 - 20 -80.5323144104802111 - 0 -LWPOLYLINE - 5 -111 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --16.5586899563317473 - 20 --4.6676855895197669 - 10 --16.5586899563317473 - 20 -2.5323144104802324 - 10 --9.3586899563317161 - 20 -2.5323144104802324 - 10 --9.3586899563317161 - 20 --4.6676855895197669 - 10 --16.5586899563317473 - 20 --4.6676855895197669 - 10 --16.5586899563317473 - 20 --4.6676855895197669 - 0 -LWPOLYLINE - 5 -112 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --16.5586899563317473 - 20 -67.3323144104802367 - 10 --16.5586899563317473 - 20 -74.5323144104802111 - 10 --9.3586899563317161 - 20 -74.5323144104802111 - 10 --9.3586899563317161 - 20 -67.3323144104802367 - 10 --16.5586899563317473 - 20 -67.3323144104802367 - 10 --16.5586899563317473 - 20 -67.3323144104802367 - 0 -LWPOLYLINE - 5 -113 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --48.9586899563317388 - 20 --44.2676855895197718 - 10 --48.9586899563317388 - 20 --34.6676855895197633 - 10 --41.7586899563317644 - 20 --34.6676855895197633 - 10 --41.7586899563317644 - 20 --44.2676855895197718 - 10 --48.9586899563317388 - 20 --44.2676855895197718 - 10 --48.9586899563317388 - 20 --44.2676855895197718 - 0 -LWPOLYLINE - 5 -114 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --48.9586899563317388 - 20 -27.7323144104802282 - 10 --48.9586899563317388 - 20 -37.3323144104802367 - 10 --41.7586899563317644 - 20 -37.3323144104802367 - 10 --41.7586899563317644 - 20 -27.7323144104802282 - 10 --48.9586899563317388 - 20 -27.7323144104802282 - 10 --48.9586899563317388 - 20 -27.7323144104802282 - 0 -LWPOLYLINE - 5 -115 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --48.9586899563317388 - 20 -99.7323144104802282 - 10 --48.9586899563317388 - 20 -109.3323144104802509 - 10 --41.7586899563317644 - 20 -109.3323144104802509 - 10 --41.7586899563317644 - 20 -99.7323144104802282 - 10 --48.9586899563317388 - 20 -99.7323144104802282 - 10 --48.9586899563317388 - 20 -99.7323144104802282 - 0 -LWPOLYLINE - 5 -116 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 -32.4247580436682483 - 20 --44.2676855895197718 - 10 -32.4247580436682483 - 20 --37.067685589519769 - 10 -39.6247580436682654 - 20 --37.067685589519769 - 10 -39.6247580436682654 - 20 --44.2676855895197718 - 10 -32.4247580436682483 - 20 --44.2676855895197718 - 10 -32.4247580436682483 - 20 --44.2676855895197718 - 0 -LWPOLYLINE - 5 -117 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 -32.4247580436682483 - 20 --64.6676855895197775 - 10 -32.4247580436682483 - 20 --55.0676855895197832 - 10 -39.6247580436682654 - 20 --55.0676855895197832 - 10 -39.6247580436682654 - 20 --64.6676855895197775 - 10 -32.4247580436682483 - 20 --64.6676855895197775 - 10 -32.4247580436682483 - 20 --64.6676855895197775 - 0 -LWPOLYLINE - 5 -118 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 -32.4247580436682483 - 20 -7.3323144104802349 - 10 -32.4247580436682483 - 20 -16.9323144104802239 - 10 -39.6247580436682654 - 20 -16.9323144104802239 - 10 -39.6247580436682654 - 20 -7.3323144104802349 - 10 -32.4247580436682483 - 20 -7.3323144104802349 - 10 -32.4247580436682483 - 20 -7.3323144104802349 - 0 -LWPOLYLINE - 5 -119 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 -32.4247580436682483 - 20 -79.3323144104802367 - 10 -32.4247580436682483 - 20 -88.9323144104802452 - 10 -39.6247580436682654 - 20 -88.9323144104802452 - 10 -39.6247580436682654 - 20 -79.3323144104802367 - 10 -32.4247580436682483 - 20 -79.3323144104802367 - 10 -32.4247580436682483 - 20 -79.3323144104802367 - 0 -LINE - 5 -11A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --39.3586899563317303 - 20 --1.0676855895197797 - 30 -0.0 - 11 --32.1586899563317417 - 21 --1.0676855895197797 - 31 -0.0 - 0 -LINE - 5 -11B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --39.3586899563317303 - 20 -70.9323144104802452 - 30 -0.0 - 11 --32.1586899563317417 - 21 -70.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -11C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --39.3586899563317303 - 20 --73.0676855895197832 - 30 -0.0 - 11 --32.1586899563317417 - 21 --73.0676855895197832 - 31 -0.0 - 0 -LINE - 5 -11D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -18.2413100436682498 - 20 --59.8676855895197804 - 30 -0.0 - 11 -25.4413100436682669 - 21 --59.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -11E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -18.2413100436682498 - 20 -12.1323144104802179 - 30 -0.0 - 11 -25.4413100436682669 - 21 -12.1323144104802179 - 31 -0.0 - 0 -LINE - 5 -11F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -18.2413100436682498 - 20 -84.1323144104802196 - 30 -0.0 - 11 -25.4413100436682669 - 21 -84.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -120 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --16.5586899563317473 - 20 --1.0676855895197797 - 30 -0.0 - 11 --9.3586899563317161 - 21 --1.0676855895197797 - 31 -0.0 - 0 -LINE - 5 -121 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --16.5586899563317473 - 20 -70.9323144104802452 - 30 -0.0 - 11 --9.3586899563317161 - 21 -70.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -122 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --35.7586899563317644 - 20 -2.5323144104802324 - 30 -0.0 - 11 --35.7586899563317644 - 21 --4.6676855895197669 - 31 -0.0 - 0 -LINE - 5 -123 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --35.7586899563317644 - 20 -74.5323144104802111 - 30 -0.0 - 11 --35.7586899563317644 - 21 -67.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -124 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --35.7586899563317644 - 20 --69.4676855895197747 - 30 -0.0 - 11 --35.7586899563317644 - 21 --76.6676855895197917 - 31 -0.0 - 0 -LINE - 5 -125 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -21.8413100436682441 - 20 --56.267685589519786 - 30 -0.0 - 11 -21.8413100436682441 - 21 --63.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -126 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -21.8413100436682441 - 20 -15.7323144104802282 - 30 -0.0 - 11 -21.8413100436682441 - 21 -8.5323144104802324 - 31 -0.0 - 0 -LINE - 5 -127 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -21.8413100436682441 - 20 -87.7323144104802282 - 30 -0.0 - 11 -21.8413100436682441 - 21 -80.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -128 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --12.9586899563317388 - 20 -2.5323144104802324 - 30 -0.0 - 11 --12.9586899563317388 - 21 --4.6676855895197669 - 31 -0.0 - 0 -LINE - 5 -129 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --12.9586899563317388 - 20 -74.5323144104802111 - 30 -0.0 - 11 --12.9586899563317388 - 21 -67.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -12A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.3586899563317303 - 20 --3.4676855895197676 - 30 -0.0 - 11 --38.1586899563317417 - 21 --3.4676855895197676 - 31 -0.0 - 0 -LINE - 5 -12B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.3586899563317303 - 20 -68.5323144104802111 - 30 -0.0 - 11 --38.1586899563317417 - 21 -68.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -12C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.3586899563317303 - 20 --75.4676855895197747 - 30 -0.0 - 11 --38.1586899563317417 - 21 --75.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -12D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.5586899563317473 - 20 --3.4676855895197676 - 30 -0.0 - 11 --15.3586899563317161 - 21 --3.4676855895197676 - 31 -0.0 - 0 -LINE - 5 -12E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.5586899563317473 - 20 -68.5323144104802111 - 30 -0.0 - 11 --15.3586899563317161 - 21 -68.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -12F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --38.1586899563317417 - 20 --3.4676855895197676 - 30 -0.0 - 11 --33.3586899563317303 - 21 -1.3323144104802331 - 31 -0.0 - 0 -LINE - 5 -130 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --38.1586899563317417 - 20 -68.5323144104802111 - 30 -0.0 - 11 --33.3586899563317303 - 21 -73.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -131 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --38.1586899563317417 - 20 --75.4676855895197747 - 30 -0.0 - 11 --33.3586899563317303 - 21 --70.6676855895197917 - 31 -0.0 - 0 -LINE - 5 -132 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.3586899563317161 - 20 --3.4676855895197676 - 30 -0.0 - 11 --10.5586899563317473 - 21 -1.3323144104802331 - 31 -0.0 - 0 -LINE - 5 -133 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.3586899563317161 - 20 -68.5323144104802111 - 30 -0.0 - 11 --10.5586899563317473 - 21 -73.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -134 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --33.3586899563317303 - 20 -1.3323144104802331 - 30 -0.0 - 11 --32.1586899563317417 - 21 -1.3323144104802331 - 31 -0.0 - 0 -LINE - 5 -135 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --33.3586899563317303 - 20 -73.3323144104802367 - 30 -0.0 - 11 --32.1586899563317417 - 21 -73.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -136 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --33.3586899563317303 - 20 --70.6676855895197917 - 30 -0.0 - 11 --32.1586899563317417 - 21 --70.6676855895197917 - 31 -0.0 - 0 -LINE - 5 -137 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --10.5586899563317473 - 20 -1.3323144104802331 - 30 -0.0 - 11 --9.3586899563317161 - 21 -1.3323144104802331 - 31 -0.0 - 0 -LINE - 5 -138 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --10.5586899563317473 - 20 -73.3323144104802367 - 30 -0.0 - 11 --9.3586899563317161 - 21 -73.3323144104802367 - 31 -0.0 - 0 -CIRCLE - 5 -139 -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 --5.8676855895197839 - 30 -0.0 - 40 -2.4000000000000004 - 0 -CIRCLE - 5 -13A -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -66.1323144104802196 - 30 -0.0 - 40 -2.4000000000000004 - 0 -CIRCLE - 5 -13B -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -3.7323144104802282 - 30 -0.0 - 40 -2.4000000000000004 - 0 -CIRCLE - 5 -13C -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -75.732314410480214 - 30 -0.0 - 40 -2.4000000000000004 - 0 -LINE - 5 -13D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 --5.8676855895197839 - 30 -0.0 - 11 --61.6616379563317594 - 21 --4.1706335895197704 - 31 -0.0 - 0 -LINE - 5 -13E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -66.1323144104802196 - 30 -0.0 - 11 --61.6616379563317594 - 21 -67.8293664104802332 - 31 -0.0 - 0 -LINE - 5 -13F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -3.7323144104802282 - 30 -0.0 - 11 --61.6616379563317594 - 21 -5.4293664104802168 - 31 -0.0 - 0 -LINE - 5 -140 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -75.732314410480214 - 30 -0.0 - 11 --61.6616379563317594 - 21 -77.4293664104802417 - 31 -0.0 - 0 -LINE - 5 -141 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 --5.8676855895197839 - 30 -0.0 - 11 --65.0557419563317438 - 21 --4.1706335895197704 - 31 -0.0 - 0 -LINE - 5 -142 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -66.1323144104802196 - 30 -0.0 - 11 --65.0557419563317438 - 21 -67.8293664104802332 - 31 -0.0 - 0 -LINE - 5 -143 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -3.7323144104802282 - 30 -0.0 - 11 --65.0557419563317438 - 21 -5.4293664104802168 - 31 -0.0 - 0 -LINE - 5 -144 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -75.732314410480214 - 30 -0.0 - 11 --65.0557419563317438 - 21 -77.4293664104802417 - 31 -0.0 - 0 -LINE - 5 -145 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 --5.8676855895197839 - 30 -0.0 - 11 --65.0557419563317438 - 21 --7.5647375895197762 - 31 -0.0 - 0 -LINE - 5 -146 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -66.1323144104802196 - 30 -0.0 - 11 --65.0557419563317438 - 21 -64.4352624104802487 - 31 -0.0 - 0 -LINE - 5 -147 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -3.7323144104802282 - 30 -0.0 - 11 --65.0557419563317438 - 21 -2.0352624104802359 - 31 -0.0 - 0 -LINE - 5 -148 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -75.732314410480214 - 30 -0.0 - 11 --65.0557419563317438 - 21 -74.0352624104802146 - 31 -0.0 - 0 -LINE - 5 -149 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 --5.8676855895197839 - 30 -0.0 - 11 --61.6616379563317594 - 21 --7.5647375895197762 - 31 -0.0 - 0 -LINE - 5 -14A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -66.1323144104802196 - 30 -0.0 - 11 --61.6616379563317594 - 21 -64.4352624104802487 - 31 -0.0 - 0 -LINE - 5 -14B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -3.7323144104802282 - 30 -0.0 - 11 --61.6616379563317594 - 21 -2.0352624104802359 - 31 -0.0 - 0 -LINE - 5 -14C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -75.732314410480214 - 30 -0.0 - 11 --61.6616379563317594 - 21 -74.0352624104802146 - 31 -0.0 - 0 -LINE - 5 -14D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.9586899563317388 - 20 --7.307685589519771 - 30 -0.0 - 11 --62.7586899563317502 - 21 --7.307685589519771 - 31 -0.0 - 0 -LINE - 5 -14E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.9586899563317388 - 20 -64.6923144104802077 - 30 -0.0 - 11 --62.7586899563317502 - 21 -64.6923144104802077 - 31 -0.0 - 0 -LINE - 5 -14F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.9586899563317388 - 20 -5.1723144104802188 - 30 -0.0 - 11 --62.7586899563317502 - 21 -5.1723144104802188 - 31 -0.0 - 0 -LINE - 5 -150 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.9586899563317388 - 20 -77.1723144104802401 - 30 -0.0 - 11 --62.7586899563317502 - 21 -77.1723144104802401 - 31 -0.0 - 0 -LINE - 5 -151 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --64.1986899563317337 - 20 --5.8676855895197839 - 30 -0.0 - 11 --65.3986899563317365 - 21 --5.8676855895197839 - 31 -0.0 - 0 -LINE - 5 -152 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --64.1986899563317337 - 20 -66.1323144104802196 - 30 -0.0 - 11 --65.3986899563317365 - 21 -66.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -153 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --64.1986899563317337 - 20 -3.7323144104802282 - 30 -0.0 - 11 --65.3986899563317365 - 21 -3.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -154 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --64.1986899563317337 - 20 -75.732314410480214 - 30 -0.0 - 11 --65.3986899563317365 - 21 -75.732314410480214 - 31 -0.0 - 0 -LINE - 5 -155 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --64.7986899563317422 - 20 --5.2676855895197754 - 30 -0.0 - 11 --64.7986899563317422 - 21 --6.4676855895197676 - 31 -0.0 - 0 -LINE - 5 -156 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --64.7986899563317422 - 20 -66.7323144104802282 - 30 -0.0 - 11 --64.7986899563317422 - 21 -65.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -157 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --64.7986899563317422 - 20 -4.3323144104802367 - 30 -0.0 - 11 --64.7986899563317422 - 21 -3.1323144104802161 - 31 -0.0 - 0 -LINE - 5 -158 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --64.7986899563317422 - 20 -76.3323144104802367 - 30 -0.0 - 11 --64.7986899563317422 - 21 -75.1323144104802196 - 31 -0.0 - 0 -LWPOLYLINE - 5 -159 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 --77.7586899563317644 - 20 --9.467685589519764 - 10 --77.7586899563317644 - 20 --2.2676855895197754 - 10 --70.5586899563317473 - 20 --2.2676855895197754 - 10 --69.3586899563317161 - 20 --5.8676855895197839 - 10 --70.5586899563317473 - 20 --9.467685589519764 - 10 --77.7586899563317644 - 20 --9.467685589519764 - 10 --77.7586899563317644 - 20 --9.467685589519764 - 10 --77.7586899563317644 - 20 --9.467685589519764 - 0 -LWPOLYLINE - 5 -15A - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 --77.7586899563317644 - 20 -62.5323144104802111 - 10 --77.7586899563317644 - 20 -69.732314410480214 - 10 --70.5586899563317473 - 20 -69.732314410480214 - 10 --69.3586899563317161 - 20 -66.1323144104802196 - 10 --70.5586899563317473 - 20 -62.5323144104802111 - 10 --77.7586899563317644 - 20 -62.5323144104802111 - 10 --77.7586899563317644 - 20 -62.5323144104802111 - 10 --77.7586899563317644 - 20 -62.5323144104802111 - 0 -LWPOLYLINE - 5 -15B - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 --28.5586899563317473 - 20 --4.6676855895197669 - 10 --28.5586899563317473 - 20 -2.5323144104802324 - 10 --21.3586899563317161 - 20 -2.5323144104802324 - 10 --20.1586899563317417 - 20 --1.0676855895197797 - 10 --21.3586899563317161 - 20 --4.6676855895197669 - 10 --28.5586899563317473 - 20 --4.6676855895197669 - 10 --28.5586899563317473 - 20 --4.6676855895197669 - 10 --28.5586899563317473 - 20 --4.6676855895197669 - 0 -LWPOLYLINE - 5 -15C - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -8 - 70 -1 - 10 --28.5586899563317473 - 20 -67.3323144104802367 - 10 --28.5586899563317473 - 20 -74.5323144104802111 - 10 --21.3586899563317161 - 20 -74.5323144104802111 - 10 --20.1586899563317417 - 20 -70.9323144104802452 - 10 --21.3586899563317161 - 20 -67.3323144104802367 - 10 --28.5586899563317473 - 20 -67.3323144104802367 - 10 --28.5586899563317473 - 20 -67.3323144104802367 - 10 --28.5586899563317473 - 20 -67.3323144104802367 - 0 -MTEXT - 5 -15D -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --74.1586899563317559 - 20 --4.6676855895197669 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -d - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -15E -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --74.1586899563317559 - 20 -67.3323144104802367 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -d - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -15F -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --74.1586899563317559 - 20 --7.0676855895197797 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -dT - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -160 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --74.1586899563317559 - 20 -64.9323144104802452 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -dT - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -161 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --75.3586899563317303 - 20 --5.8676855895197839 - 30 -0.0 - 11 --72.9586899563317388 - 21 --5.8676855895197839 - 31 -0.0 - 0 -LINE - 5 -162 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --75.3586899563317303 - 20 -66.1323144104802196 - 30 -0.0 - 11 --72.9586899563317388 - 21 -66.1323144104802196 - 31 -0.0 - 0 -LWPOLYLINE - 5 -163 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -25 - 70 -0 - 10 --23.7586899563317502 - 20 -1.3323144104802331 - 10 --23.9082939563317183 - 20 -1.3307544104802318 - 10 --24.0555699563317376 - 20 -1.3198104104802368 - 10 --24.1981419563317672 - 20 -1.2901224104802189 - 10 --24.3336939563317287 - 20 -1.2323184104802287 - 10 --24.4598619563317357 - 20 -1.1370024104802177 - 10 --24.5743179563317398 - 20 -0.9948144104802203 - 10 --24.6747099563317533 - 20 -0.7963824104802164 - 10 --24.7586859563317603 - 20 -0.5323104104802248 - 10 --24.8250939563317274 - 20 -0.1979424104802341 - 10 --24.8774379563317325 - 20 --0.192681589519772 - 10 --24.9204099563317385 - 20 --0.6208055895197688 - 10 --24.9586899563317388 - 20 --1.0676855895197797 - 10 --24.9969699563317249 - 20 --1.5145655895197656 - 10 --25.0399419563317451 - 20 --1.9426895895197802 - 10 --25.0922859563317502 - 20 --2.3333135895197721 - 10 --25.15869395633176 - 20 --2.6676815895197841 - 10 --25.2426699563317385 - 20 --2.9317535895197757 - 10 --25.3430619563317236 - 20 --3.1301855895197797 - 10 --25.4575179563317278 - 20 --3.272373589519777 - 10 --25.5836859563317347 - 20 --3.3676895895197632 - 10 --25.7192379563317388 - 20 --3.4254935895197782 - 10 --25.8618099563317401 - 20 --3.4551815895197713 - 10 --26.0090859563317309 - 20 --3.4661255895197662 - 10 --26.1586899563317417 - 20 --3.4676855895197676 - 0 -LWPOLYLINE - 5 -164 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -25 - 70 -0 - 10 --23.7586899563317502 - 20 -73.3323144104802367 - 10 --23.9082939563317183 - 20 -73.3307544104801963 - 10 --24.0555699563317376 - 20 -73.3198104104802013 - 10 --24.1981419563317672 - 20 -73.2901224104802225 - 10 --24.3336939563317287 - 20 -73.2323184104802323 - 10 --24.4598619563317357 - 20 -73.1370024104802212 - 10 --24.5743179563317398 - 20 -72.9948144104802452 - 10 --24.6747099563317533 - 20 -72.79638241048022 - 10 --24.7586859563317603 - 20 -72.532310410480207 - 10 --24.8250939563317274 - 20 -72.1979424104802376 - 10 --24.8774379563317325 - 20 -71.8073184104802493 - 10 --24.9204099563317385 - 20 -71.3791944104802099 - 10 --24.9586899563317388 - 20 -70.9323144104802452 - 10 --24.9969699563317249 - 20 -70.4854344104802379 - 10 --25.0399419563317451 - 20 -70.0573104104802411 - 10 --25.0922859563317502 - 20 -69.6666864104802102 - 10 --25.15869395633176 - 20 -69.3323184104802266 - 10 --25.2426699563317385 - 20 -69.0682464104802278 - 10 --25.3430619563317236 - 20 -68.8698144104802452 - 10 --25.4575179563317278 - 20 -68.7276264104802266 - 10 --25.5836859563317347 - 20 -68.6323104104802013 - 10 --25.7192379563317388 - 20 -68.5745064104802253 - 10 --25.8618099563317401 - 20 -68.5448184104802323 - 10 --26.0090859563317309 - 20 -68.5338744104802373 - 10 --26.1586899563317417 - 20 -68.5323144104802111 - 0 -LINE - 5 -165 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.3586899563317303 - 20 --82.6676855895197917 - 30 -0.0 - 11 --35.7586899563317644 - 21 --82.6676855895197917 - 31 -0.0 - 0 -LINE - 5 -166 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.5586899563317473 - 20 --10.6676855895197598 - 30 -0.0 - 11 --12.9586899563317388 - 21 --10.6676855895197598 - 31 -0.0 - 0 -LINE - 5 -167 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.5586899563317473 - 20 -61.3323144104802367 - 30 -0.0 - 11 --12.9586899563317388 - 21 -61.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -168 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.7586899563317644 - 20 --82.6676855895197917 - 30 -0.0 - 11 --35.7586899563317644 - 21 --76.6676855895197917 - 31 -0.0 - 0 -LWPOLYLINE - 5 -169 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --35.7586899563317644 - 20 --76.6676855895197917 - 10 --35.9720499563317304 - 20 --77.6276855895197855 - 10 --35.5453299563317415 - 20 --77.6276855895197855 - 10 --35.7586899563317644 - 20 --76.6676855895197917 - 0 -LINE - 5 -16A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.9586899563317388 - 20 --10.6676855895197598 - 30 -0.0 - 11 --12.9586899563317388 - 21 --4.6676855895197669 - 31 -0.0 - 0 -LINE - 5 -16B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.9586899563317388 - 20 -61.3323144104802367 - 30 -0.0 - 11 --12.9586899563317388 - 21 -67.3323144104802367 - 31 -0.0 - 0 -LWPOLYLINE - 5 -16C - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --12.9586899563317388 - 20 --4.6676855895197669 - 10 --13.1720499563317617 - 20 --5.6276855895197642 - 10 --12.7453299563317586 - 20 --5.6276855895197642 - 10 --12.9586899563317388 - 20 --4.6676855895197669 - 0 -LWPOLYLINE - 5 -16D - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --12.9586899563317388 - 20 -67.3323144104802367 - 10 --13.1720499563317617 - 20 -66.3723144104802145 - 10 --12.7453299563317586 - 20 -66.3723144104802145 - 10 --12.9586899563317388 - 20 -67.3323144104802367 - 0 -LINE - 5 -16E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -29.0413100436682896 - 20 --31.0676855895197725 - 30 -0.0 - 11 -29.0413100436682896 - 21 --59.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -16F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -29.0413100436682896 - 20 -40.9323144104802452 - 30 -0.0 - 11 -29.0413100436682896 - 21 -12.1323144104802179 - 31 -0.0 - 0 -LINE - 5 -170 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -29.0413100436682896 - 20 -112.9323144104802452 - 30 -0.0 - 11 -29.0413100436682896 - 21 -84.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -171 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.9586899563317388 - 20 --73.0676855895197832 - 30 -0.0 - 11 --85.5586899563317473 - 21 --72.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -172 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 --1.0676855895197797 - 30 -0.0 - 11 --86.7586899563317644 - 21 --0.4676855895197676 - 31 -0.0 - 0 -LINE - 5 -173 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -70.9323144104802452 - 30 -0.0 - 11 --86.7586899563317644 - 21 -71.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -174 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.9586899563317388 - 20 --41.8676855895197662 - 30 -0.0 - 11 --85.5586899563317473 - 21 --41.2676855895197718 - 31 -0.0 - 0 -LINE - 5 -175 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -30.1323144104802196 - 30 -0.0 - 11 --86.7586899563317644 - 21 -30.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -176 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -102.1323144104802196 - 30 -0.0 - 11 --86.7586899563317644 - 21 -102.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -177 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.9586899563317388 - 20 --73.0676855895197832 - 30 -0.0 - 11 --85.5586899563317473 - 21 --73.6676855895197917 - 31 -0.0 - 0 -LINE - 5 -178 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 --1.0676855895197797 - 30 -0.0 - 11 --86.7586899563317644 - 21 --1.6676855895197669 - 31 -0.0 - 0 -LINE - 5 -179 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -70.9323144104802452 - 30 -0.0 - 11 --86.7586899563317644 - 21 -70.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -17A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.9586899563317388 - 20 --41.8676855895197662 - 30 -0.0 - 11 --85.5586899563317473 - 21 --42.4676855895197605 - 31 -0.0 - 0 -LINE - 5 -17B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -30.1323144104802196 - 30 -0.0 - 11 --86.7586899563317644 - 21 -29.5323144104802147 - 31 -0.0 - 0 -LINE - 5 -17C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -102.1323144104802196 - 30 -0.0 - 11 --86.7586899563317644 - 21 -101.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -17D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.9586899563317388 - 20 --73.0676855895197832 - 30 -0.0 - 11 --84.3586899563317303 - 21 --73.6676855895197917 - 31 -0.0 - 0 -LINE - 5 -17E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 --1.0676855895197797 - 30 -0.0 - 11 --85.5586899563317473 - 21 --1.6676855895197669 - 31 -0.0 - 0 -LINE - 5 -17F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -70.9323144104802452 - 30 -0.0 - 11 --85.5586899563317473 - 21 -70.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -180 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.9586899563317388 - 20 --41.8676855895197662 - 30 -0.0 - 11 --84.3586899563317303 - 21 --42.4676855895197605 - 31 -0.0 - 0 -LINE - 5 -181 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -30.1323144104802196 - 30 -0.0 - 11 --85.5586899563317473 - 21 -29.5323144104802147 - 31 -0.0 - 0 -LINE - 5 -182 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -102.1323144104802196 - 30 -0.0 - 11 --85.5586899563317473 - 21 -101.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -183 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.9586899563317388 - 20 --73.0676855895197832 - 30 -0.0 - 11 --84.3586899563317303 - 21 --72.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -184 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 --1.0676855895197797 - 30 -0.0 - 11 --85.5586899563317473 - 21 --0.4676855895197676 - 31 -0.0 - 0 -LINE - 5 -185 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -70.9323144104802452 - 30 -0.0 - 11 --85.5586899563317473 - 21 -71.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -186 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.9586899563317388 - 20 --41.8676855895197662 - 30 -0.0 - 11 --84.3586899563317303 - 21 --41.2676855895197718 - 31 -0.0 - 0 -LINE - 5 -187 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -30.1323144104802196 - 30 -0.0 - 11 --85.5586899563317473 - 21 -30.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -188 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -102.1323144104802196 - 30 -0.0 - 11 --85.5586899563317473 - 21 -102.7323144104802282 - 31 -0.0 - 0 -CIRCLE - 5 -189 -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.9586899563317388 - 20 --73.0676855895197832 - 30 -0.0 - 40 -1.8 - 0 -CIRCLE - 5 -18A -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 --1.0676855895197797 - 30 -0.0 - 40 -1.8 - 0 -CIRCLE - 5 -18B -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -70.9323144104802452 - 30 -0.0 - 40 -1.8 - 0 -CIRCLE - 5 -18C -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.9586899563317388 - 20 --41.8676855895197662 - 30 -0.0 - 40 -1.8 - 0 -CIRCLE - 5 -18D -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -30.1323144104802196 - 30 -0.0 - 40 -1.8 - 0 -CIRCLE - 5 -18E -100 -AcDbEntity -100 -AcDbCircle - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -102.1323144104802196 - 30 -0.0 - 40 -1.8 - 0 -LINE - 5 -18F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --106.5586899563317473 - 20 --43.067685589519769 - 30 -0.0 - 11 --106.5586899563317473 - 21 --71.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -190 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --106.5586899563317473 - 20 -28.9323144104802452 - 30 -0.0 - 11 --106.5586899563317473 - 21 -0.1323144104802161 - 31 -0.0 - 0 -LINE - 5 -191 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --106.5586899563317473 - 20 -100.9323144104802452 - 30 -0.0 - 11 --106.5586899563317473 - 21 -72.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -192 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --106.5586899563317473 - 20 --38.2676855895197718 - 30 -0.0 - 11 --106.5586899563317473 - 21 --40.6676855895197633 - 31 -0.0 - 0 -LINE - 5 -193 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --106.5586899563317473 - 20 -33.7323144104802282 - 30 -0.0 - 11 --106.5586899563317473 - 21 -31.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -194 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --106.5586899563317473 - 20 -105.7323144104802282 - 30 -0.0 - 11 --106.5586899563317473 - 21 -103.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -195 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --106.5586899563317473 - 20 --35.8676855895197804 - 30 -0.0 - 11 --106.5586899563317473 - 21 --27.467685589519764 - 31 -0.0 - 0 -LINE - 5 -196 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --106.5586899563317473 - 20 -36.1323144104802196 - 30 -0.0 - 11 --106.5586899563317473 - 21 -44.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -197 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --106.5586899563317473 - 20 -108.1323144104802196 - 30 -0.0 - 11 --106.5586899563317473 - 21 -116.5323144104802253 - 31 -0.0 - 0 -LINE - 5 -198 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --106.5586899563317473 - 20 --27.467685589519764 - 30 -0.0 - 11 -67.4413100436682669 - 21 --27.467685589519764 - 31 -0.0 - 0 -LINE - 5 -199 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --106.5586899563317473 - 20 -44.5323144104802111 - 30 -0.0 - 11 -67.4413100436682669 - 21 -44.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -19A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --106.5586899563317473 - 20 -116.5323144104802253 - 30 -0.0 - 11 -67.4413100436682669 - 21 -116.5323144104802253 - 31 -0.0 - 0 -LINE - 5 -19B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -67.4413100436682669 - 20 --38.2676855895197718 - 30 -0.0 - 11 -67.4413100436682669 - 21 --39.4676855895197605 - 31 -0.0 - 0 -LINE - 5 -19C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -67.4413100436682669 - 20 --34.6676855895197633 - 30 -0.0 - 11 -67.4413100436682669 - 21 --35.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -19D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -67.4413100436682669 - 20 --27.467685589519764 - 30 -0.0 - 11 -67.4413100436682669 - 21 --32.2676855895197718 - 31 -0.0 - 0 -LINE - 5 -19E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -67.4413100436682669 - 20 -44.5323144104802111 - 30 -0.0 - 11 -67.4413100436682669 - 21 -36.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -19F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -67.4413100436682669 - 20 -116.5323144104802253 - 30 -0.0 - 11 -67.4413100436682669 - 21 -108.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -1A0 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -67.4413100436682669 - 20 --41.8676855895197662 - 30 -0.0 - 11 -67.4413100436682669 - 21 --43.067685589519769 - 31 -0.0 - 0 -LINE - 5 -1A1 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -67.4413100436682669 - 20 -33.7323144104802282 - 30 -0.0 - 11 -67.4413100436682669 - 21 -28.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -1A2 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -67.4413100436682669 - 20 -105.7323144104802282 - 30 -0.0 - 11 -67.4413100436682669 - 21 -100.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -1A3 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -67.4413100436682669 - 20 --49.0676855895197832 - 30 -0.0 - 11 -67.4413100436682669 - 21 --95.8676855895197519 - 31 -0.0 - 0 -LINE - 5 -1A4 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -67.4413100436682669 - 20 --45.4676855895197605 - 30 -0.0 - 11 -67.4413100436682669 - 21 --46.6676855895197775 - 31 -0.0 - 0 -LINE - 5 -1A5 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -67.4413100436682669 - 20 -26.5323144104802324 - 30 -0.0 - 11 -67.4413100436682669 - 21 --23.8676855895197839 - 31 -0.0 - 0 -LINE - 5 -1A6 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -67.4413100436682669 - 20 -98.5323144104802111 - 30 -0.0 - 11 -67.4413100436682669 - 21 -48.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -1A7 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -67.4413100436682669 - 20 --95.8676855895197519 - 30 -0.0 - 11 --106.5586899563317473 - 21 --95.8676855895197519 - 31 -0.0 - 0 -LINE - 5 -1A8 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -67.4413100436682669 - 20 --23.8676855895197839 - 30 -0.0 - 11 --106.5586899563317473 - 21 --23.8676855895197839 - 31 -0.0 - 0 -LINE - 5 -1A9 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -67.4413100436682669 - 20 -48.1323144104802196 - 30 -0.0 - 11 --106.5586899563317473 - 21 -48.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -1AA -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --106.5586899563317473 - 20 --95.8676855895197519 - 30 -0.0 - 11 --106.5586899563317473 - 21 --74.267685589519786 - 31 -0.0 - 0 -LINE - 5 -1AB -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --106.5586899563317473 - 20 --23.8676855895197839 - 30 -0.0 - 11 --106.5586899563317473 - 21 --2.2676855895197754 - 31 -0.0 - 0 -LINE - 5 -1AC -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --106.5586899563317473 - 20 -48.1323144104802196 - 30 -0.0 - 11 --106.5586899563317473 - 21 -69.732314410480214 - 31 -0.0 - 0 -LINE - 5 -1AD -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.2413100436682782 - 20 --31.0676855895197725 - 30 -0.0 - 11 -29.0413100436682896 - 21 --31.0676855895197725 - 31 -0.0 - 0 -LINE - 5 -1AE -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.2413100436682782 - 20 -40.9323144104802452 - 30 -0.0 - 11 -29.0413100436682896 - 21 -40.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -1AF -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.2413100436682782 - 20 -112.9323144104802452 - 30 -0.0 - 11 -29.0413100436682896 - 21 -112.9323144104802452 - 31 -0.0 - 0 -LWPOLYLINE - 5 -1B0 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -24.2413100436682782 - 20 --31.0676855895197725 - 10 -25.2013100436682578 - 20 --31.2810455895197741 - 10 -25.2013100436682578 - 20 --30.8543255895197781 - 10 -24.2413100436682782 - 20 --31.0676855895197725 - 0 -LWPOLYLINE - 5 -1B1 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -24.2413100436682782 - 20 -40.9323144104802452 - 10 -25.2013100436682578 - 20 -40.7189544104802224 - 10 -25.2013100436682578 - 20 -41.1456744104802254 - 10 -24.2413100436682782 - 20 -40.9323144104802452 - 0 -LWPOLYLINE - 5 -1B2 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -24.2413100436682782 - 20 -112.9323144104802452 - 10 -25.2013100436682578 - 20 -112.7189544104802366 - 10 -25.2013100436682578 - 20 -113.1456744104802397 - 10 -24.2413100436682782 - 20 -112.9323144104802452 - 0 -MTEXT - 5 -1B3 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -41.0413100436682896 - 20 --50.267685589519786 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -6 - 72 -2 - 1 -state - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1B4 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -32.6413100436682555 - 20 --71.8676855895197804 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -6 - 72 -2 - 1 -hold - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1B5 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -32.6413100436682555 - 20 -0.1323144104802161 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -6 - 72 -2 - 1 -hold - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1B6 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -32.6413100436682555 - 20 -72.1323144104802196 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -6 - 72 -2 - 1 -hold - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LWPOLYLINE - 5 -1B7 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --41.7586899563317644 - 20 --37.067685589519769 - 10 --40.798689956331728 - 20 --37.2810455895197776 - 10 --40.798689956331728 - 20 --36.8543255895197746 - 10 --41.7586899563317644 - 20 --37.067685589519769 - 0 -LWPOLYLINE - 5 -1B8 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --41.7586899563317644 - 20 -34.9323144104802452 - 10 --40.798689956331728 - 20 -34.7189544104802224 - 10 --40.798689956331728 - 20 -35.1456744104802254 - 10 --41.7586899563317644 - 20 -34.9323144104802452 - 0 -LWPOLYLINE - 5 -1B9 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --41.7586899563317644 - 20 -106.9323144104802452 - 10 --40.798689956331728 - 20 -106.7189544104802224 - 10 --40.798689956331728 - 20 -107.1456744104802397 - 10 --41.7586899563317644 - 20 -106.9323144104802452 - 0 -LWPOLYLINE - 5 -1BA - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --41.7586899563317644 - 20 --41.8676855895197662 - 10 --40.798689956331728 - 20 --42.081045589519789 - 10 --40.798689956331728 - 20 --41.6543255895197717 - 10 --41.7586899563317644 - 20 --41.8676855895197662 - 0 -LWPOLYLINE - 5 -1BB - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --41.7586899563317644 - 20 -30.1323144104802196 - 10 --40.798689956331728 - 20 -29.918954410480243 - 10 --40.798689956331728 - 20 -30.3456744104802425 - 10 --41.7586899563317644 - 20 -30.1323144104802196 - 0 -LWPOLYLINE - 5 -1BC - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --41.7586899563317644 - 20 -102.1323144104802196 - 10 --40.798689956331728 - 20 -101.9189544104802394 - 10 --40.798689956331728 - 20 -102.3456744104802425 - 10 --41.7586899563317644 - 20 -102.1323144104802196 - 0 -LINE - 5 -1BD -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --83.1586899563317559 - 20 --41.8676855895197662 - 30 -0.0 - 11 --48.9586899563317388 - 21 --41.8676855895197662 - 31 -0.0 - 0 -LINE - 5 -1BE -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.3586899563317303 - 20 -30.1323144104802196 - 30 -0.0 - 11 --63.3586899563317161 - 21 -30.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -1BF -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.3586899563317303 - 20 -102.1323144104802196 - 30 -0.0 - 11 --63.3586899563317161 - 21 -102.1323144104802196 - 31 -0.0 - 0 -LWPOLYLINE - 5 -1C0 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --83.1586899563317559 - 20 --41.8676855895197662 - 10 --82.1986899563317337 - 20 --42.081045589519789 - 10 --82.1986899563317337 - 20 --41.6543255895197717 - 10 --83.1586899563317559 - 20 --41.8676855895197662 - 0 -LWPOLYLINE - 5 -1C1 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --84.3586899563317303 - 20 -30.1323144104802196 - 10 --83.3986899563317507 - 20 -29.918954410480243 - 10 --83.3986899563317507 - 20 -30.3456744104802425 - 10 --84.3586899563317303 - 20 -30.1323144104802196 - 0 -LWPOLYLINE - 5 -1C2 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --84.3586899563317303 - 20 -102.1323144104802196 - 10 --83.3986899563317507 - 20 -101.9189544104802394 - 10 --83.3986899563317507 - 20 -102.3456744104802425 - 10 --84.3586899563317303 - 20 -102.1323144104802196 - 0 -LINE - 5 -1C3 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -30.1323144104802196 - 30 -0.0 - 11 --48.9586899563317388 - 21 -30.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -1C4 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -102.1323144104802196 - 30 -0.0 - 11 --48.9586899563317388 - 21 -102.1323144104802196 - 31 -0.0 - 0 -LWPOLYLINE - 5 -1C5 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --63.3586899563317161 - 20 -30.1323144104802196 - 10 --62.3986899563317365 - 20 -29.918954410480243 - 10 --62.3986899563317365 - 20 -30.3456744104802425 - 10 --63.3586899563317161 - 20 -30.1323144104802196 - 0 -LWPOLYLINE - 5 -1C6 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --63.3586899563317161 - 20 -102.1323144104802196 - 10 --62.3986899563317365 - 20 -101.9189544104802394 - 10 --62.3986899563317365 - 20 -102.3456744104802425 - 10 --63.3586899563317161 - 20 -102.1323144104802196 - 0 -LINE - 5 -1C7 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.9586899563317388 - 20 --64.6676855895197775 - 30 -0.0 - 11 --84.9586899563317388 - 21 --71.267685589519786 - 31 -0.0 - 0 -LWPOLYLINE - 5 -1C8 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --84.9586899563317388 - 20 --71.267685589519786 - 10 --84.7453299563317586 - 20 --70.3076855895197781 - 10 --85.1720499563317617 - 20 --70.3076855895197781 - 10 --84.9586899563317388 - 20 --71.267685589519786 - 0 -LINE - 5 -1C9 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -7.3323144104802349 - 30 -0.0 - 11 --86.1586899563317559 - 21 -0.7323144104802246 - 31 -0.0 - 0 -LINE - 5 -1CA -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -79.3323144104802367 - 30 -0.0 - 11 --86.1586899563317559 - 21 -72.732314410480214 - 31 -0.0 - 0 -LWPOLYLINE - 5 -1CB - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --86.1586899563317559 - 20 -0.7323144104802246 - 10 --85.945329956331733 - 20 -1.692314410480229 - 10 --86.3720499563317361 - 20 -1.692314410480229 - 10 --86.1586899563317559 - 20 -0.7323144104802246 - 0 -LWPOLYLINE - 5 -1CC - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --86.1586899563317559 - 20 -72.732314410480214 - 10 --85.945329956331733 - 20 -73.6923144104801935 - 10 --86.3720499563317361 - 20 -73.6923144104801935 - 10 --86.1586899563317559 - 20 -72.732314410480214 - 0 -LINE - 5 -1CD -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.9586899563317388 - 20 --37.067685589519769 - 30 -0.0 - 11 --92.1586899563317559 - 21 --37.067685589519769 - 31 -0.0 - 0 -LINE - 5 -1CE -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.9586899563317388 - 20 -34.9323144104802452 - 30 -0.0 - 11 --92.1586899563317559 - 21 -34.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -1CF -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.9586899563317388 - 20 -106.9323144104802452 - 30 -0.0 - 11 --92.1586899563317559 - 21 -106.9323144104802452 - 31 -0.0 - 0 -LWPOLYLINE - 5 -1D0 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --92.1586899563317559 - 20 --37.067685589519769 - 10 --91.1986899563317337 - 20 --37.2810455895197776 - 10 --91.1986899563317337 - 20 --36.8543255895197746 - 10 --92.1586899563317559 - 20 --37.067685589519769 - 0 -LWPOLYLINE - 5 -1D1 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --92.1586899563317559 - 20 -34.9323144104802452 - 10 --91.1986899563317337 - 20 -34.7189544104802224 - 10 --91.1986899563317337 - 20 -35.1456744104802254 - 10 --92.1586899563317559 - 20 -34.9323144104802452 - 0 -LWPOLYLINE - 5 -1D2 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --92.1586899563317559 - 20 -106.9323144104802452 - 10 --91.1986899563317337 - 20 -106.7189544104802224 - 10 --91.1986899563317337 - 20 -107.1456744104802397 - 10 --92.1586899563317559 - 20 -106.9323144104802452 - 0 -LINE - 5 -1D3 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.7586899563317644 - 20 --41.8676855895197662 - 30 -0.0 - 11 --92.1586899563317559 - 21 --41.8676855895197662 - 31 -0.0 - 0 -LINE - 5 -1D4 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --87.9586899563317388 - 20 -30.1323144104802196 - 30 -0.0 - 11 --92.1586899563317559 - 21 -30.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -1D5 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --87.9586899563317388 - 20 -102.1323144104802196 - 30 -0.0 - 11 --92.1586899563317559 - 21 -102.1323144104802196 - 31 -0.0 - 0 -LWPOLYLINE - 5 -1D6 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --92.1586899563317559 - 20 --41.8676855895197662 - 10 --91.1986899563317337 - 20 --42.081045589519789 - 10 --91.1986899563317337 - 20 --41.6543255895197717 - 10 --92.1586899563317559 - 20 --41.8676855895197662 - 0 -LWPOLYLINE - 5 -1D7 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --92.1586899563317559 - 20 -30.1323144104802196 - 10 --91.1986899563317337 - 20 -29.918954410480243 - 10 --91.1986899563317337 - 20 -30.3456744104802425 - 10 --92.1586899563317559 - 20 -30.1323144104802196 - 0 -LWPOLYLINE - 5 -1D8 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --92.1586899563317559 - 20 -102.1323144104802196 - 10 --91.1986899563317337 - 20 -101.9189544104802394 - 10 --91.1986899563317337 - 20 -102.3456744104802425 - 10 --92.1586899563317559 - 20 -102.1323144104802196 - 0 -LINE - 5 -1D9 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --3.3586899563317161 - 20 --51.4676855895197747 - 30 -0.0 - 11 --3.3586899563317161 - 21 --95.8676855895197519 - 31 -0.0 - 0 -LINE - 5 -1DA -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --3.3586899563317161 - 20 -20.5323144104802289 - 30 -0.0 - 11 --3.3586899563317161 - 21 --23.8676855895197839 - 31 -0.0 - 0 -LINE - 5 -1DB -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --3.3586899563317161 - 20 -92.5323144104802111 - 30 -0.0 - 11 --3.3586899563317161 - 21 -48.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -1DC -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --3.3586899563317161 - 20 --27.467685589519764 - 30 -0.0 - 11 --3.3586899563317161 - 21 --51.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -1DD -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --3.3586899563317161 - 20 -44.5323144104802111 - 30 -0.0 - 11 --3.3586899563317161 - 21 -20.5323144104802289 - 31 -0.0 - 0 -LINE - 5 -1DE -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --3.3586899563317161 - 20 -116.5323144104802253 - 30 -0.0 - 11 --3.3586899563317161 - 21 -92.5323144104802111 - 31 -0.0 - 0 -MTEXT - 5 -1DF -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -37.4413100436682669 - 20 --92.2676855895197718 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -make_pulses() - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1E0 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -37.4413100436682669 - 20 --20.2676855895197754 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -make_pulses() - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1E1 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -37.4413100436682669 - 20 -52.9323144104802523 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -make_pulses() - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1E2 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.6413100436682555 - 20 --3.4676855895197676 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -STEP\~TYPE\~=\~1 - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1E3 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -45.8413100436682441 - 20 --75.4676855895197747 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -STEP\~TYPE\~=\~2\~-\~14 - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1E4 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.9586899563317388 - 20 --92.2676855895197718 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -CTRL\~TYPE\~=\~VELOCITY - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1E5 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.9586899563317388 - 20 --20.2676855895197754 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -CTRL\~TYPE\~=\~POSITION - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1E6 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.9586899563317388 - 20 -51.7323144104802282 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -CTRL\~TYPE\~=\~POSITION - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1E7 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -38.6413100436682555 - 20 -64.9323144104802452 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -STEP\~TYPE\~=\~0 - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1E8 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --75.3586899563317303 - 20 --87.4676855895197747 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -update_freq() - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1E9 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --75.3586899563317303 - 20 --15.467685589519764 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -update_freq() - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1EA -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --75.3586899563317303 - 20 -56.5323144104802111 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -update_freq() - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1EB -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --58.5586899563317473 - 20 --31.0676855895197725 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -capture_position() - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1EC -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --58.5586899563317473 - 20 -40.9323144104802452 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -capture_position() - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1ED -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --58.5586899563317473 - 20 -112.9323144104802452 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -capture_position() - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1EE -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --96.9586899563317388 - 20 --91.067685589519769 - 30 -0.0 - 40 -2.4000000000000004 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -stepgen.0 - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1EF -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --96.9586899563317388 - 20 --19.0676855895197725 - 30 -0.0 - 40 -2.4000000000000004 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -stepgen.0 - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -1F0 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --96.9586899563317388 - 20 -52.9323144104802523 - 30 -0.0 - 40 -2.4000000000000004 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -stepgen.0 - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -1F1 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.7586899563317644 - 20 --73.0676855895197832 - 30 -0.0 - 11 --92.1586899563317559 - 21 --73.0676855895197832 - 31 -0.0 - 0 -LWPOLYLINE - 5 -1F2 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --86.7586899563317644 - 20 --73.0676855895197832 - 10 --87.7186899563317439 - 20 --72.8543255895197888 - 10 --87.7186899563317439 - 20 --73.2810455895197776 - 10 --86.7586899563317644 - 20 --73.0676855895197832 - 0 -LINE - 5 -1F3 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --87.9586899563317388 - 20 --1.0676855895197797 - 30 -0.0 - 11 --92.1586899563317559 - 21 --1.0676855895197797 - 31 -0.0 - 0 -LINE - 5 -1F4 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --87.9586899563317388 - 20 -70.9323144104802452 - 30 -0.0 - 11 --92.1586899563317559 - 21 -70.9323144104802452 - 31 -0.0 - 0 -LWPOLYLINE - 5 -1F5 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --87.9586899563317388 - 20 --1.0676855895197797 - 10 --88.918689956331761 - 20 --0.8543255895197781 - 10 --88.918689956331761 - 20 --1.2810455895197812 - 10 --87.9586899563317388 - 20 --1.0676855895197797 - 0 -LWPOLYLINE - 5 -1F6 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --87.9586899563317388 - 20 -70.9323144104802452 - 10 --88.918689956331761 - 20 -71.1456744104802254 - 10 --88.918689956331761 - 20 -70.7189544104802224 - 10 --87.9586899563317388 - 20 -70.9323144104802452 - 0 -LINE - 5 -1F7 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --32.1586899563317417 - 20 --1.0676855895197797 - 30 -0.0 - 11 --28.5586899563317473 - 21 --1.0676855895197797 - 31 -0.0 - 0 -LINE - 5 -1F8 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --32.1586899563317417 - 20 -70.9323144104802452 - 30 -0.0 - 11 --28.5586899563317473 - 21 -70.9323144104802452 - 31 -0.0 - 0 -LWPOLYLINE - 5 -1F9 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --28.5586899563317473 - 20 --1.0676855895197797 - 10 --29.5186899563317127 - 20 --0.8543255895197781 - 10 --29.5186899563317127 - 20 --1.2810455895197812 - 10 --28.5586899563317473 - 20 --1.0676855895197797 - 0 -LWPOLYLINE - 5 -1FA - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --28.5586899563317473 - 20 -70.9323144104802452 - 10 --29.5186899563317127 - 20 -71.1456744104802254 - 10 --29.5186899563317127 - 20 -70.7189544104802224 - 10 --28.5586899563317473 - 20 -70.9323144104802452 - 0 -LWPOLYLINE - 5 -1FB - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --39.3586899563317303 - 20 --73.0676855895197832 - 10 --40.3186899563317525 - 20 --72.8543255895197888 - 10 --40.3186899563317525 - 20 --73.2810455895197776 - 10 --39.3586899563317303 - 20 --73.0676855895197832 - 0 -LINE - 5 -1FC -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --20.1586899563317417 - 20 --1.0676855895197797 - 30 -0.0 - 11 --16.5586899563317473 - 21 --1.0676855895197797 - 31 -0.0 - 0 -LINE - 5 -1FD -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --20.1586899563317417 - 20 -70.9323144104802452 - 30 -0.0 - 11 --16.5586899563317473 - 21 -70.9323144104802452 - 31 -0.0 - 0 -LWPOLYLINE - 5 -1FE - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --16.5586899563317473 - 20 --1.0676855895197797 - 10 --17.5186899563317127 - 20 --0.8543255895197781 - 10 --17.5186899563317127 - 20 --1.2810455895197812 - 10 --16.5586899563317473 - 20 --1.0676855895197797 - 0 -LWPOLYLINE - 5 -1FF - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --16.5586899563317473 - 20 -70.9323144104802452 - 10 --17.5186899563317127 - 20 -71.1456744104802254 - 10 --17.5186899563317127 - 20 -70.7189544104802224 - 10 --16.5586899563317473 - 20 -70.9323144104802452 - 0 -LINE - 5 -200 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.5586899563317473 - 20 --73.0676855895197832 - 30 -0.0 - 11 --9.3586899563317161 - 21 --73.0676855895197832 - 31 -0.0 - 0 -LWPOLYLINE - 5 -201 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --9.3586899563317161 - 20 --73.0676855895197832 - 10 --10.3186899563317525 - 20 --72.8543255895197888 - 10 --10.3186899563317525 - 20 --73.2810455895197776 - 10 --9.3586899563317161 - 20 --73.0676855895197832 - 0 -LINE - 5 -202 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --9.3586899563317161 - 20 --1.0676855895197797 - 30 -0.0 - 11 --5.7586899563317502 - 21 --1.0676855895197797 - 31 -0.0 - 0 -LINE - 5 -203 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --9.3586899563317161 - 20 -70.9323144104802452 - 30 -0.0 - 11 --5.7586899563317502 - 21 -70.9323144104802452 - 31 -0.0 - 0 -LWPOLYLINE - 5 -204 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --5.7586899563317502 - 20 --1.0676855895197797 - 10 --6.7186899563317297 - 20 --0.8543255895197781 - 10 --6.7186899563317297 - 20 --1.2810455895197812 - 10 --5.7586899563317502 - 20 --1.0676855895197797 - 0 -LWPOLYLINE - 5 -205 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --5.7586899563317502 - 20 -70.9323144104802452 - 10 --6.7186899563317297 - 20 -71.1456744104802254 - 10 --6.7186899563317297 - 20 -70.7189544104802224 - 10 --5.7586899563317502 - 20 -70.9323144104802452 - 0 -LINE - 5 -206 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --32.1586899563317417 - 20 --73.0676855895197832 - 30 -0.0 - 11 --23.7586899563317502 - 21 --73.0676855895197832 - 31 -0.0 - 0 -LWPOLYLINE - 5 -207 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --23.7586899563317502 - 20 --73.0676855895197832 - 10 --24.7186899563317297 - 20 --72.8543255895197888 - 10 --24.7186899563317297 - 20 --73.2810455895197776 - 10 --23.7586899563317502 - 20 --73.0676855895197832 - 0 -LINE - 5 -208 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --9.3586899563317161 - 20 --73.0676855895197832 - 30 -0.0 - 11 --0.9586899563317246 - 21 --73.0676855895197832 - 31 -0.0 - 0 -LINE - 5 -209 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --5.7586899563317502 - 20 --1.0676855895197797 - 30 -0.0 - 11 --0.9586899563317246 - 21 --1.0676855895197797 - 31 -0.0 - 0 -LINE - 5 -20A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --5.7586899563317502 - 20 -70.9323144104802452 - 30 -0.0 - 11 --0.9586899563317246 - 21 -70.9323144104802452 - 31 -0.0 - 0 -LWPOLYLINE - 5 -20B - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --0.9586899563317246 - 20 --73.0676855895197832 - 10 --1.918689956331761 - 20 --72.8543255895197888 - 10 --1.918689956331761 - 20 --73.2810455895197776 - 10 --0.9586899563317246 - 20 --73.0676855895197832 - 0 -LWPOLYLINE - 5 -20C - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --0.9586899563317246 - 20 --1.0676855895197797 - 10 --1.918689956331761 - 20 --0.8543255895197781 - 10 --1.918689956331761 - 20 --1.2810455895197812 - 10 --0.9586899563317246 - 20 --1.0676855895197797 - 0 -LWPOLYLINE - 5 -20D - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --0.9586899563317246 - 20 -70.9323144104802452 - 10 --1.918689956331761 - 20 -71.1456744104802254 - 10 --1.918689956331761 - 20 -70.7189544104802224 - 10 --0.9586899563317246 - 20 -70.9323144104802452 - 0 -LINE - 5 -20E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --20.1586899563317417 - 20 --86.2676855895197718 - 30 -0.0 - 11 --20.1586899563317417 - 21 --76.6676855895197917 - 31 -0.0 - 0 -LWPOLYLINE - 5 -20F - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --20.1586899563317417 - 20 --76.6676855895197917 - 10 --20.3720499563317361 - 20 --77.6276855895197855 - 10 --19.9453299563317188 - 20 --77.6276855895197855 - 10 --20.1586899563317417 - 20 --76.6676855895197917 - 0 -LINE - 5 -210 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.6413100436682555 - 20 --86.2676855895197718 - 30 -0.0 - 11 -2.6413100436682555 - 21 --76.6676855895197917 - 31 -0.0 - 0 -LINE - 5 -211 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.6413100436682555 - 20 --14.2676855895197754 - 30 -0.0 - 11 -2.6413100436682555 - 21 --4.6676855895197669 - 31 -0.0 - 0 -LINE - 5 -212 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.6413100436682555 - 20 -57.7323144104802282 - 30 -0.0 - 11 -2.6413100436682555 - 21 -67.3323144104802367 - 31 -0.0 - 0 -LWPOLYLINE - 5 -213 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -2.6413100436682555 - 20 --76.6676855895197917 - 10 -2.4279500436682611 - 20 --77.6276855895197855 - 10 -2.8546700436682642 - 20 --77.6276855895197855 - 10 -2.6413100436682555 - 20 --76.6676855895197917 - 0 -LWPOLYLINE - 5 -214 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -2.6413100436682555 - 20 --4.6676855895197669 - 10 -2.4279500436682611 - 20 --5.6276855895197642 - 10 -2.8546700436682642 - 20 --5.6276855895197642 - 10 -2.6413100436682555 - 20 --4.6676855895197669 - 0 -LWPOLYLINE - 5 -215 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -2.6413100436682555 - 20 -67.3323144104802367 - 10 -2.4279500436682611 - 20 -66.3723144104802145 - 10 -2.8546700436682642 - 20 -66.3723144104802145 - 10 -2.6413100436682555 - 20 -67.3323144104802367 - 0 -LINE - 5 -216 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --3.3586899563317161 - 20 --51.4676855895197747 - 30 -0.0 - 11 --106.5586899563317473 - 21 --51.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -217 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --3.3586899563317161 - 20 -20.5323144104802289 - 30 -0.0 - 11 --106.5586899563317473 - 21 -20.5323144104802289 - 31 -0.0 - 0 -LINE - 5 -218 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --3.3586899563317161 - 20 -92.5323144104802111 - 30 -0.0 - 11 --106.5586899563317473 - 21 -92.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -219 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.2413100436682782 - 20 -32.5323144104802111 - 30 -0.0 - 11 -48.2413100436682782 - 21 -34.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -21A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.2413100436682782 - 20 -104.5323144104802111 - 30 -0.0 - 11 -48.2413100436682782 - 21 -106.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -21B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.2413100436682782 - 20 -30.1323144104802196 - 30 -0.0 - 11 -48.2413100436682782 - 21 -27.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -21C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.2413100436682782 - 20 -102.1323144104802196 - 30 -0.0 - 11 -48.2413100436682782 - 21 -99.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -21D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 --73.0676855895197832 - 30 -0.0 - 11 -19.4413100436682527 - 21 --73.0676855895197832 - 31 -0.0 - 0 -LINE - 5 -21E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 --1.0676855895197797 - 30 -0.0 - 11 -19.4413100436682527 - 21 --1.0676855895197797 - 31 -0.0 - 0 -LINE - 5 -21F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 -70.9323144104802452 - 30 -0.0 - 11 -19.4413100436682527 - 21 -70.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -220 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -6.2413100436682498 - 20 --73.0676855895197832 - 30 -0.0 - 11 -9.8413100436682583 - 21 --73.0676855895197832 - 31 -0.0 - 0 -LINE - 5 -221 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -6.2413100436682498 - 20 --1.0676855895197797 - 30 -0.0 - 11 -9.8413100436682583 - 21 --1.0676855895197797 - 31 -0.0 - 0 -LINE - 5 -222 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -6.2413100436682498 - 20 -70.9323144104802452 - 30 -0.0 - 11 -9.8413100436682583 - 21 -70.9323144104802452 - 31 -0.0 - 0 -LWPOLYLINE - 5 -223 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -19.4413100436682527 - 20 --73.0676855895197832 - 10 -20.4013100436682748 - 20 --72.8543255895197888 - 10 -20.4013100436682748 - 20 --73.2810455895197776 - 10 -19.4413100436682527 - 20 --73.0676855895197832 - 0 -LWPOLYLINE - 5 -224 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -19.4413100436682527 - 20 --1.0676855895197797 - 10 -20.4013100436682748 - 20 --0.8543255895197781 - 10 -20.4013100436682748 - 20 --1.2810455895197812 - 10 -19.4413100436682527 - 20 --1.0676855895197797 - 0 -LWPOLYLINE - 5 -225 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -19.4413100436682527 - 20 -70.9323144104802452 - 10 -20.4013100436682748 - 20 -71.1456744104802254 - 10 -20.4013100436682748 - 20 -70.7189544104802224 - 10 -19.4413100436682527 - 20 -70.9323144104802452 - 0 -LWPOLYLINE - 5 -226 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -9.8413100436682583 - 20 --73.0676855895197832 - 10 -8.8813100436682362 - 20 --72.8543255895197888 - 10 -8.8813100436682362 - 20 --73.2810455895197776 - 10 -9.8413100436682583 - 20 --73.0676855895197832 - 0 -LWPOLYLINE - 5 -227 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -9.8413100436682583 - 20 --1.0676855895197797 - 10 -8.8813100436682362 - 20 --0.8543255895197781 - 10 -8.8813100436682362 - 20 --1.2810455895197812 - 10 -9.8413100436682583 - 20 --1.0676855895197797 - 0 -LWPOLYLINE - 5 -228 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -9.8413100436682583 - 20 -70.9323144104802452 - 10 -8.8813100436682362 - 20 -71.1456744104802254 - 10 -8.8813100436682362 - 20 -70.7189544104802224 - 10 -9.8413100436682583 - 20 -70.9323144104802452 - 0 -LINE - 5 -229 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -37.2247580436682597 - 20 -16.9323144104802239 - 30 -0.0 - 11 -37.2247580436682597 - 21 -30.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -22A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -37.2247580436682597 - 20 -88.9323144104802452 - 30 -0.0 - 11 -37.2247580436682597 - 21 -102.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -22B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -34.8247580436682824 - 20 -16.9323144104802239 - 30 -0.0 - 11 -34.8247580436682824 - 21 -32.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -22C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -34.8247580436682824 - 20 -88.9323144104802452 - 30 -0.0 - 11 -34.8247580436682824 - 21 -104.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -22D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.2413100436682782 - 20 -106.9323144104802452 - 30 -0.0 - 11 -53.0413100436682896 - 21 -106.9323144104802452 - 31 -0.0 - 0 -LWPOLYLINE - 5 -22E - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -53.0413100436682896 - 20 -106.9323144104802452 - 10 -52.0813100436682817 - 20 -107.1456744104802397 - 10 -52.0813100436682817 - 20 -106.7189544104802224 - 10 -53.0413100436682896 - 20 -106.9323144104802452 - 0 -LINE - 5 -22F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.2413100436682782 - 20 -99.7323144104802282 - 30 -0.0 - 11 -53.0413100436682896 - 21 -99.7323144104802282 - 31 -0.0 - 0 -LWPOLYLINE - 5 -230 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -53.0413100436682896 - 20 -99.7323144104802282 - 10 -52.0813100436682817 - 20 -99.9456744104802084 - 10 -52.0813100436682817 - 20 -99.5189544104802479 - 10 -53.0413100436682896 - 20 -99.7323144104802282 - 0 -LINE - 5 -231 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -34.8247580436682824 - 20 -32.5323144104802111 - 30 -0.0 - 11 -48.2413100436682782 - 21 -32.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -232 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -34.8247580436682824 - 20 -104.5323144104802111 - 30 -0.0 - 11 -48.2413100436682782 - 21 -104.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -233 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -37.2247580436682597 - 20 -30.1323144104802196 - 30 -0.0 - 11 -48.2413100436682782 - 21 -30.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -234 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -37.2247580436682597 - 20 -102.1323144104802196 - 30 -0.0 - 11 -48.2413100436682782 - 21 -102.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -235 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.4247580436682483 - 20 -10.9323144104802221 - 30 -0.0 - 11 -44.4247580436682483 - 21 -7.3323144104802349 - 31 -0.0 - 0 -LINE - 5 -236 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.4247580436682483 - 20 -82.9323144104802452 - 30 -0.0 - 11 -44.4247580436682483 - 21 -79.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -237 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.4247580436682483 - 20 -7.3323144104802349 - 30 -0.0 - 11 -48.0247580436682711 - 21 -7.3323144104802349 - 31 -0.0 - 0 -LINE - 5 -238 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.4247580436682483 - 20 -79.3323144104802367 - 30 -0.0 - 11 -48.0247580436682711 - 21 -79.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -239 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -45.6247580436682654 - 20 -84.1323144104802196 - 30 -0.0 - 11 -45.6247580436682654 - 21 -82.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -23A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -45.6247580436682654 - 20 -82.9323144104802452 - 30 -0.0 - 11 -48.0247580436682711 - 21 -82.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -23B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -45.6247580436682654 - 20 -13.3323144104802349 - 30 -0.0 - 11 -45.6247580436682654 - 21 -14.5323144104802306 - 31 -0.0 - 0 -LINE - 5 -23C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -45.6247580436682654 - 20 -85.3323144104802367 - 30 -0.0 - 11 -45.6247580436682654 - 21 -86.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -23D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -45.6247580436682654 - 20 -14.5323144104802306 - 30 -0.0 - 11 -48.0247580436682711 - 21 -14.5323144104802306 - 31 -0.0 - 0 -LINE - 5 -23E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -45.6247580436682654 - 20 -86.5323144104802111 - 30 -0.0 - 11 -48.0247580436682711 - 21 -86.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -23F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.4247580436682483 - 20 -14.5323144104802306 - 30 -0.0 - 11 -44.4247580436682483 - 21 -18.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -240 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.4247580436682483 - 20 -86.5323144104802111 - 30 -0.0 - 11 -44.4247580436682483 - 21 -90.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -241 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.4247580436682483 - 20 -18.1323144104802196 - 30 -0.0 - 11 -48.0247580436682711 - 21 -18.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -242 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.4247580436682483 - 20 -90.1323144104802196 - 30 -0.0 - 11 -48.0247580436682711 - 21 -90.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -243 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -39.6247580436682654 - 20 --57.4676855895197747 - 30 -0.0 - 11 -48.0247580436682711 - 21 --57.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -244 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -39.6247580436682654 - 20 -14.5323144104802306 - 30 -0.0 - 11 -44.4247580436682483 - 21 -14.5323144104802306 - 31 -0.0 - 0 -LINE - 5 -245 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -39.6247580436682654 - 20 -86.5323144104802111 - 30 -0.0 - 11 -44.4247580436682483 - 21 -86.5323144104802111 - 31 -0.0 - 0 -LWPOLYLINE - 5 -246 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -39.6247580436682654 - 20 --57.4676855895197747 - 10 -40.5847580436682449 - 20 --57.2543255895197802 - 10 -40.5847580436682449 - 20 --57.6810455895197691 - 10 -39.6247580436682654 - 20 --57.4676855895197747 - 0 -LWPOLYLINE - 5 -247 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -39.6247580436682654 - 20 -14.5323144104802306 - 10 -40.5847580436682449 - 20 -14.745674410480234 - 10 -40.5847580436682449 - 20 -14.3189544104802291 - 10 -39.6247580436682654 - 20 -14.5323144104802306 - 0 -LWPOLYLINE - 5 -248 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -39.6247580436682654 - 20 -86.5323144104802111 - 10 -40.5847580436682449 - 20 -86.745674410480234 - 10 -40.5847580436682449 - 20 -86.3189544104802309 - 10 -39.6247580436682654 - 20 -86.5323144104802111 - 0 -LINE - 5 -249 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -39.6247580436682654 - 20 -13.3323144104802349 - 30 -0.0 - 11 -45.6247580436682654 - 21 -13.3323144104802349 - 31 -0.0 - 0 -LINE - 5 -24A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -39.6247580436682654 - 20 -85.3323144104802367 - 30 -0.0 - 11 -45.6247580436682654 - 21 -85.3323144104802367 - 31 -0.0 - 0 -LWPOLYLINE - 5 -24B - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -39.6247580436682654 - 20 -13.3323144104802349 - 10 -40.5847580436682449 - 20 -13.5456744104802365 - 10 -40.5847580436682449 - 20 -13.1189544104802334 - 10 -39.6247580436682654 - 20 -13.3323144104802349 - 0 -LWPOLYLINE - 5 -24C - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -39.6247580436682654 - 20 -85.3323144104802367 - 10 -40.5847580436682449 - 20 -85.5456744104802027 - 10 -40.5847580436682449 - 20 -85.1189544104802138 - 10 -39.6247580436682654 - 20 -85.3323144104802367 - 0 -LINE - 5 -24D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -39.6247580436682654 - 20 -84.1323144104802196 - 30 -0.0 - 11 -45.6247580436682654 - 21 -84.1323144104802196 - 31 -0.0 - 0 -LWPOLYLINE - 5 -24E - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -39.6247580436682654 - 20 -84.1323144104802196 - 10 -40.5847580436682449 - 20 -84.3456744104802425 - 10 -40.5847580436682449 - 20 -83.9189544104802252 - 10 -39.6247580436682654 - 20 -84.1323144104802196 - 0 -LINE - 5 -24F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -39.6247580436682654 - 20 --61.0676855895197832 - 30 -0.0 - 11 -48.0247580436682711 - 21 --61.0676855895197832 - 31 -0.0 - 0 -LINE - 5 -250 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -39.6247580436682654 - 20 -10.9323144104802221 - 30 -0.0 - 11 -44.4247580436682483 - 21 -10.9323144104802221 - 31 -0.0 - 0 -LINE - 5 -251 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -39.6247580436682654 - 20 -82.9323144104802452 - 30 -0.0 - 11 -44.4247580436682483 - 21 -82.9323144104802452 - 31 -0.0 - 0 -LWPOLYLINE - 5 -252 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -39.6247580436682654 - 20 --61.0676855895197832 - 10 -40.5847580436682449 - 20 --60.8543255895197888 - 10 -40.5847580436682449 - 20 --61.2810455895197919 - 10 -39.6247580436682654 - 20 --61.0676855895197832 - 0 -LWPOLYLINE - 5 -253 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -39.6247580436682654 - 20 -10.9323144104802221 - 10 -40.5847580436682449 - 20 -11.1456744104802237 - 10 -40.5847580436682449 - 20 -10.7189544104802206 - 10 -39.6247580436682654 - 20 -10.9323144104802221 - 0 -LWPOLYLINE - 5 -254 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -39.6247580436682654 - 20 -82.9323144104802452 - 10 -40.5847580436682449 - 20 -83.1456744104802254 - 10 -40.5847580436682449 - 20 -82.7189544104802224 - 10 -39.6247580436682654 - 20 -82.9323144104802452 - 0 -LINE - 5 -255 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.2413100436682782 - 20 -34.9323144104802452 - 30 -0.0 - 11 -53.0413100436682896 - 21 -34.9323144104802452 - 31 -0.0 - 0 -LWPOLYLINE - 5 -256 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -53.0413100436682896 - 20 -34.9323144104802452 - 10 -52.0813100436682817 - 20 -35.1456744104802254 - 10 -52.0813100436682817 - 20 -34.7189544104802224 - 10 -53.0413100436682896 - 20 -34.9323144104802452 - 0 -LINE - 5 -257 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.2413100436682782 - 20 -27.7323144104802282 - 30 -0.0 - 11 -53.0413100436682896 - 21 -27.7323144104802282 - 31 -0.0 - 0 -LWPOLYLINE - 5 -258 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -53.0413100436682896 - 20 -27.7323144104802282 - 10 -52.0813100436682817 - 20 -27.9456744104802084 - 10 -52.0813100436682817 - 20 -27.5189544104802266 - 10 -53.0413100436682896 - 20 -27.7323144104802282 - 0 -LINE - 5 -259 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.2413100436682782 - 20 --37.067685589519769 - 30 -0.0 - 11 -48.2413100436682782 - 21 --39.4676855895197605 - 31 -0.0 - 0 -LINE - 5 -25A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.2413100436682782 - 20 --39.4676855895197605 - 30 -0.0 - 11 -39.6247580436682654 - 21 --39.4676855895197605 - 31 -0.0 - 0 -LINE - 5 -25B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -47.0413100436682896 - 20 --33.4676855895197605 - 30 -0.0 - 11 -47.0413100436682896 - 21 --38.2676855895197718 - 31 -0.0 - 0 -LINE - 5 -25C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -47.0413100436682896 - 20 --38.2676855895197718 - 30 -0.0 - 11 -39.6247580436682654 - 21 --38.2676855895197718 - 31 -0.0 - 0 -LINE - 5 -25D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.2413100436682782 - 20 --44.2676855895197718 - 30 -0.0 - 11 -48.2413100436682782 - 21 --41.8676855895197662 - 31 -0.0 - 0 -LINE - 5 -25E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -48.2413100436682782 - 20 --41.8676855895197662 - 30 -0.0 - 11 -39.6247580436682654 - 21 --41.8676855895197662 - 31 -0.0 - 0 -LINE - 5 -25F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -47.0413100436682896 - 20 --47.8676855895197804 - 30 -0.0 - 11 -47.0413100436682896 - 21 --43.067685589519769 - 31 -0.0 - 0 -LINE - 5 -260 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -47.0413100436682896 - 20 --43.067685589519769 - 30 -0.0 - 11 -39.6247580436682654 - 21 --43.067685589519769 - 31 -0.0 - 0 -LINE - 5 -261 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -53.0413100436682896 - 20 --47.8676855895197804 - 30 -0.0 - 11 -47.0413100436682896 - 21 --47.8676855895197804 - 31 -0.0 - 0 -LWPOLYLINE - 5 -262 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -53.0413100436682896 - 20 --47.8676855895197804 - 10 -52.0813100436682817 - 20 --47.6543255895197859 - 10 -52.0813100436682817 - 20 --48.081045589519789 - 10 -53.0413100436682896 - 20 --47.8676855895197804 - 0 -LINE - 5 -263 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -53.0413100436682896 - 20 --44.2676855895197718 - 30 -0.0 - 11 -48.2413100436682782 - 21 --44.2676855895197718 - 31 -0.0 - 0 -LWPOLYLINE - 5 -264 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -53.0413100436682896 - 20 --44.2676855895197718 - 10 -52.0813100436682817 - 20 --44.0543255895197632 - 10 -52.0813100436682817 - 20 --44.4810455895197663 - 10 -53.0413100436682896 - 20 --44.2676855895197718 - 0 -LINE - 5 -265 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -53.0413100436682896 - 20 --40.6676855895197633 - 30 -0.0 - 11 -39.6247580436682654 - 21 --40.6676855895197633 - 31 -0.0 - 0 -LWPOLYLINE - 5 -266 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -53.0413100436682896 - 20 --40.6676855895197633 - 10 -52.0813100436682817 - 20 --40.4543255895197689 - 10 -52.0813100436682817 - 20 --40.8810455895197578 - 10 -53.0413100436682896 - 20 --40.6676855895197633 - 0 -LINE - 5 -267 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -53.0413100436682896 - 20 --37.067685589519769 - 30 -0.0 - 11 -48.2413100436682782 - 21 --37.067685589519769 - 31 -0.0 - 0 -LWPOLYLINE - 5 -268 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -53.0413100436682896 - 20 --37.067685589519769 - 10 -52.0813100436682817 - 20 --36.8543255895197746 - 10 -52.0813100436682817 - 20 --37.2810455895197776 - 10 -53.0413100436682896 - 20 --37.067685589519769 - 0 -LINE - 5 -269 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -53.0413100436682896 - 20 --33.4676855895197605 - 30 -0.0 - 11 -47.0413100436682896 - 21 --33.4676855895197605 - 31 -0.0 - 0 -LWPOLYLINE - 5 -26A - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -53.0413100436682896 - 20 --33.4676855895197605 - 10 -52.0813100436682817 - 20 --33.254325589519766 - 10 -52.0813100436682817 - 20 --33.6810455895197691 - 10 -53.0413100436682896 - 20 --33.4676855895197605 - 0 -MTEXT - 5 -26B -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.9586899563317388 - 20 --56.267685589519786 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -1/x - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -26C -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -15.7323144104802282 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -1/x - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -26D -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -87.7323144104802282 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -1/x - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LWPOLYLINE - 5 -26E - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --87.3586899563317303 - 20 --58.6676855895197775 - 10 --87.3586899563317303 - 20 --53.8676855895197804 - 10 --82.5586899563317473 - 20 --53.8676855895197804 - 10 --82.5586899563317473 - 20 --58.6676855895197775 - 10 --87.3586899563317303 - 20 --58.6676855895197775 - 10 --87.3586899563317303 - 20 --58.6676855895197775 - 0 -LWPOLYLINE - 5 -26F - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --88.5586899563317473 - 20 -13.3323144104802349 - 10 --88.5586899563317473 - 20 -18.1323144104802196 - 10 --83.7586899563317644 - 20 -18.1323144104802196 - 10 --83.7586899563317644 - 20 -13.3323144104802349 - 10 --88.5586899563317473 - 20 -13.3323144104802349 - 10 --88.5586899563317473 - 20 -13.3323144104802349 - 0 -LWPOLYLINE - 5 -270 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --88.5586899563317473 - 20 -85.3323144104802367 - 10 --88.5586899563317473 - 20 -90.1323144104802196 - 10 --83.7586899563317644 - 20 -90.1323144104802196 - 10 --83.7586899563317644 - 20 -85.3323144104802367 - 10 --88.5586899563317473 - 20 -85.3323144104802367 - 10 --88.5586899563317473 - 20 -85.3323144104802367 - 0 -LWPOLYLINE - 5 -271 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -2 - 70 -0 - 10 --84.9586899563317388 - 20 --58.6676855895197775 - 10 --84.9586899563317388 - 20 --64.6676855895197775 - 0 -LWPOLYLINE - 5 -272 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --84.9586899563317388 - 20 --58.6676855895197775 - 10 --85.1720499563317617 - 20 --59.6276855895197713 - 10 --84.7453299563317586 - 20 --59.6276855895197713 - 10 --84.9586899563317388 - 20 --58.6676855895197775 - 0 -LWPOLYLINE - 5 -273 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -2 - 70 -0 - 10 --86.1586899563317559 - 20 -13.3323144104802349 - 10 --86.1586899563317559 - 20 -7.3323144104802349 - 0 -LWPOLYLINE - 5 -274 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -2 - 70 -0 - 10 --86.1586899563317559 - 20 -85.3323144104802367 - 10 --86.1586899563317559 - 20 -79.3323144104802367 - 0 -LWPOLYLINE - 5 -275 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --86.1586899563317559 - 20 -13.3323144104802349 - 10 --86.3720499563317361 - 20 -12.3723144104802341 - 10 --85.945329956331733 - 20 -12.3723144104802341 - 10 --86.1586899563317559 - 20 -13.3323144104802349 - 0 -LWPOLYLINE - 5 -276 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --86.1586899563317559 - 20 -85.3323144104802367 - 10 --86.3720499563317361 - 20 -84.3723144104802003 - 10 --85.945329956331733 - 20 -84.3723144104802003 - 10 --86.1586899563317559 - 20 -85.3323144104802367 - 0 -LINE - 5 -277 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.9586899563317388 - 20 --43.6676855895197633 - 30 -0.0 - 11 --84.9586899563317388 - 21 --53.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -278 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -28.3323144104802367 - 30 -0.0 - 11 --86.1586899563317559 - 21 -18.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -279 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1586899563317559 - 20 -100.3323144104802367 - 30 -0.0 - 11 --86.1586899563317559 - 21 -90.1323144104802196 - 31 -0.0 - 0 -LWPOLYLINE - 5 -27A - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --84.9586899563317388 - 20 --43.6676855895197633 - 10 --85.1720499563317617 - 20 --44.6276855895197571 - 10 --84.7453299563317586 - 20 --44.6276855895197571 - 10 --84.9586899563317388 - 20 --43.6676855895197633 - 0 -LWPOLYLINE - 5 -27B - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --86.1586899563317559 - 20 -28.3323144104802367 - 10 --86.3720499563317361 - 20 -27.3723144104802358 - 10 --85.945329956331733 - 20 -27.3723144104802358 - 10 --86.1586899563317559 - 20 -28.3323144104802367 - 0 -LWPOLYLINE - 5 -27C - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --86.1586899563317559 - 20 -100.3323144104802367 - 10 --86.3720499563317361 - 20 -99.3723144104802145 - 10 --85.945329956331733 - 20 -99.3723144104802145 - 10 --86.1586899563317559 - 20 -100.3323144104802367 - 0 -LINE - 5 -27D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --88.5586899563317473 - 20 --64.6676855895197775 - 30 -0.0 - 11 --84.9586899563317388 - 21 --64.6676855895197775 - 31 -0.0 - 0 -LWPOLYLINE - 5 -27E - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --84.9586899563317388 - 20 --64.6676855895197775 - 10 --85.918689956331761 - 20 --64.4543255895197689 - 10 --85.918689956331761 - 20 --64.881045589519772 - 10 --84.9586899563317388 - 20 --64.6676855895197775 - 0 -LINE - 5 -27F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --89.7586899563317644 - 20 -7.3323144104802349 - 30 -0.0 - 11 --86.1586899563317559 - 21 -7.3323144104802349 - 31 -0.0 - 0 -LINE - 5 -280 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --89.7586899563317644 - 20 -79.3323144104802367 - 30 -0.0 - 11 --86.1586899563317559 - 21 -79.3323144104802367 - 31 -0.0 - 0 -LWPOLYLINE - 5 -281 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --86.1586899563317559 - 20 -7.3323144104802349 - 10 --87.1186899563317354 - 20 -7.5456744104802382 - 10 --87.1186899563317354 - 20 -7.1189544104802316 - 10 --86.1586899563317559 - 20 -7.3323144104802349 - 0 -LWPOLYLINE - 5 -282 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --86.1586899563317559 - 20 -79.3323144104802367 - 10 --87.1186899563317354 - 20 -79.5456744104802027 - 10 --87.1186899563317354 - 20 -79.1189544104802138 - 10 --86.1586899563317559 - 20 -79.3323144104802367 - 0 -LINE - 5 -283 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --81.3586899563317303 - 20 -3.7323144104802282 - 30 -0.0 - 11 --81.3586899563317303 - 21 --5.8676855895197839 - 31 -0.0 - 0 -LINE - 5 -284 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --81.3586899563317303 - 20 -75.732314410480214 - 30 -0.0 - 11 --81.3586899563317303 - 21 -66.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -285 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --65.7586899563317502 - 20 -3.7323144104802282 - 30 -0.0 - 11 --81.3586899563317303 - 21 -3.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -286 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --65.7586899563317502 - 20 -75.732314410480214 - 30 -0.0 - 11 --81.3586899563317303 - 21 -75.732314410480214 - 31 -0.0 - 0 -LWPOLYLINE - 5 -287 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --65.7586899563317502 - 20 -3.7323144104802282 - 10 --66.7186899563317297 - 20 -3.9456744104802262 - 10 --66.7186899563317297 - 20 -3.5189544104802266 - 10 --65.7586899563317502 - 20 -3.7323144104802282 - 0 -LWPOLYLINE - 5 -288 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --65.7586899563317502 - 20 -75.732314410480214 - 10 --66.7186899563317297 - 20 -75.9456744104802084 - 10 --66.7186899563317297 - 20 -75.5189544104802479 - 10 --65.7586899563317502 - 20 -75.732314410480214 - 0 -LINE - 5 -289 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.7586899563317644 - 20 --5.8676855895197839 - 30 -0.0 - 11 --81.3586899563317303 - 21 --5.8676855895197839 - 31 -0.0 - 0 -LINE - 5 -28A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.7586899563317644 - 20 -66.1323144104802196 - 30 -0.0 - 11 --81.3586899563317303 - 21 -66.1323144104802196 - 31 -0.0 - 0 -LWPOLYLINE - 5 -28B - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --77.7586899563317644 - 20 --5.8676855895197839 - 10 --78.7186899563317439 - 20 --5.6543255895197788 - 10 --78.7186899563317439 - 20 --6.0810455895197855 - 10 --77.7586899563317644 - 20 --5.8676855895197839 - 0 -LWPOLYLINE - 5 -28C - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --77.7586899563317644 - 20 -66.1323144104802196 - 10 --78.7186899563317439 - 20 -66.3456744104802425 - 10 --78.7186899563317439 - 20 -65.9189544104802394 - 10 --77.7586899563317644 - 20 -66.1323144104802196 - 0 -LINE - 5 -28D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --69.3586899563317161 - 20 --5.8676855895197839 - 30 -0.0 - 11 --65.7586899563317502 - 21 --5.8676855895197839 - 31 -0.0 - 0 -LINE - 5 -28E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --69.3586899563317161 - 20 -66.1323144104802196 - 30 -0.0 - 11 --65.7586899563317502 - 21 -66.1323144104802196 - 31 -0.0 - 0 -LWPOLYLINE - 5 -28F - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --65.7586899563317502 - 20 --5.8676855895197839 - 10 --66.7186899563317297 - 20 --5.6543255895197788 - 10 --66.7186899563317297 - 20 --6.0810455895197855 - 10 --65.7586899563317502 - 20 --5.8676855895197839 - 0 -LWPOLYLINE - 5 -290 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --65.7586899563317502 - 20 -66.1323144104802196 - 10 --66.7186899563317297 - 20 -66.3456744104802425 - 10 --66.7186899563317297 - 20 -65.9189544104802394 - 10 --65.7586899563317502 - 20 -66.1323144104802196 - 0 -LINE - 5 -291 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -6.1323144104802196 - 30 -0.0 - 11 --63.3586899563317161 - 21 -30.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -292 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -78.1323144104802196 - 30 -0.0 - 11 --63.3586899563317161 - 21 -102.1323144104802196 - 31 -0.0 - 0 -LWPOLYLINE - 5 -293 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --63.3586899563317161 - 20 -6.1323144104802196 - 10 --63.1453299563317501 - 20 -7.0923144104802169 - 10 --63.5720499563317389 - 20 -7.0923144104802169 - 10 --63.3586899563317161 - 20 -6.1323144104802196 - 0 -LWPOLYLINE - 5 -294 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --63.3586899563317161 - 20 -78.1323144104802196 - 10 --63.1453299563317501 - 20 -79.0923144104802276 - 10 --63.5720499563317389 - 20 -79.0923144104802276 - 10 --63.3586899563317161 - 20 -78.1323144104802196 - 0 -LINE - 5 -295 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 --8.2676855895197754 - 30 -0.0 - 11 --63.3586899563317161 - 21 --19.0676855895197725 - 31 -0.0 - 0 -LINE - 5 -296 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.3586899563317161 - 20 -63.7323144104802282 - 30 -0.0 - 11 --63.3586899563317161 - 21 -52.9323144104802523 - 31 -0.0 - 0 -LWPOLYLINE - 5 -297 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --63.3586899563317161 - 20 --8.2676855895197754 - 10 --63.5720499563317389 - 20 --9.2276855895197762 - 10 --63.1453299563317501 - 20 --9.2276855895197762 - 10 --63.3586899563317161 - 20 --8.2676855895197754 - 0 -LWPOLYLINE - 5 -298 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --63.3586899563317161 - 20 -63.7323144104802282 - 10 --63.5720499563317389 - 20 -62.7723144104802486 - 10 --63.1453299563317501 - 20 -62.7723144104802486 - 10 --63.3586899563317161 - 20 -63.7323144104802282 - 0 -LINE - 5 -299 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9586899563317388 - 20 -3.7323144104802282 - 30 -0.0 - 11 --52.5586899563317473 - 21 -3.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -29A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9586899563317388 - 20 -75.732314410480214 - 30 -0.0 - 11 --52.5586899563317473 - 21 -75.732314410480214 - 31 -0.0 - 0 -LWPOLYLINE - 5 -29B - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --52.5586899563317473 - 20 -3.7323144104802282 - 10 --53.5186899563317269 - 20 -3.9456744104802262 - 10 --53.5186899563317269 - 20 -3.5189544104802266 - 10 --52.5586899563317473 - 20 -3.7323144104802282 - 0 -LWPOLYLINE - 5 -29C - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --52.5586899563317473 - 20 -75.732314410480214 - 10 --53.5186899563317269 - 20 -75.9456744104802084 - 10 --53.5186899563317269 - 20 -75.5189544104802479 - 10 --52.5586899563317473 - 20 -75.732314410480214 - 0 -LINE - 5 -29D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --54.9586899563317388 - 20 --5.8676855895197839 - 30 -0.0 - 11 --52.5586899563317473 - 21 --5.8676855895197839 - 31 -0.0 - 0 -LINE - 5 -29E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --54.9586899563317388 - 20 -66.1323144104802196 - 30 -0.0 - 11 --52.5586899563317473 - 21 -66.1323144104802196 - 31 -0.0 - 0 -LWPOLYLINE - 5 -29F - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --52.5586899563317473 - 20 --5.8676855895197839 - 10 --53.5186899563317269 - 20 --5.6543255895197788 - 10 --53.5186899563317269 - 20 --6.0810455895197855 - 10 --52.5586899563317473 - 20 --5.8676855895197839 - 0 -LWPOLYLINE - 5 -2A0 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --52.5586899563317473 - 20 -66.1323144104802196 - 10 --53.5186899563317269 - 20 -66.3456744104802425 - 10 --53.5186899563317269 - 20 -65.9189544104802394 - 10 --52.5586899563317473 - 20 -66.1323144104802196 - 0 -LWPOLYLINE - 5 -2A1 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --52.5586899563317473 - 20 --8.2676855895197754 - 10 --52.5586899563317473 - 20 -6.1323144104802196 - 10 --42.9586899563317388 - 20 -6.1323144104802196 - 10 --42.9586899563317388 - 20 --8.2676855895197754 - 10 --52.5586899563317473 - 20 --8.2676855895197754 - 10 --52.5586899563317473 - 20 --8.2676855895197754 - 0 -LWPOLYLINE - 5 -2A2 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -6 - 70 -1 - 10 --52.5586899563317473 - 20 -63.7323144104802282 - 10 --52.5586899563317473 - 20 -78.1323144104802196 - 10 --42.9586899563317388 - 20 -78.1323144104802196 - 10 --42.9586899563317388 - 20 -63.7323144104802282 - 10 --52.5586899563317473 - 20 -63.7323144104802282 - 10 --52.5586899563317473 - 20 -63.7323144104802282 - 0 -MTEXT - 5 -2A3 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.7586899563317502 - 20 --0.1676855895197669 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -control - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2A4 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.7586899563317502 - 20 -71.8323144104802367 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -control - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2A5 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.7586899563317502 - 20 --1.9676855895197676 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -equation - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -2A6 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.7586899563317502 - 20 -70.0323144104802111 - 30 -0.0 - 40 -1.2000000000000002 - 41 -1200.0 - 71 -5 - 72 -2 - 1 -equation - 7 -STYLE3 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -2A7 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.3586899563317303 - 20 --1.0676855895197797 - 30 -0.0 - 11 --42.9586899563317388 - 21 --1.0676855895197797 - 31 -0.0 - 0 -LINE - 5 -2A8 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.3586899563317303 - 20 -70.9323144104802452 - 30 -0.0 - 11 --42.9586899563317388 - 21 -70.9323144104802452 - 31 -0.0 - 0 -LWPOLYLINE - 5 -2A9 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --39.3586899563317303 - 20 --1.0676855895197797 - 10 --40.3186899563317525 - 20 --0.8543255895197781 - 10 --40.3186899563317525 - 20 --1.2810455895197812 - 10 --39.3586899563317303 - 20 --1.0676855895197797 - 0 -LWPOLYLINE - 5 -2AA - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --39.3586899563317303 - 20 -70.9323144104802452 - 10 --40.3186899563317525 - 20 -71.1456744104802254 - 10 --40.3186899563317525 - 20 -70.7189544104802224 - 10 --39.3586899563317303 - 20 -70.9323144104802452 - 0 -LWPOLYLINE - 5 -2AB - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --47.7586899563317502 - 20 --8.2676855895197754 - 10 --47.9720499563317446 - 20 --9.2276855895197762 - 10 --47.5453299563317273 - 20 --9.2276855895197762 - 10 --47.7586899563317502 - 20 --8.2676855895197754 - 0 -LWPOLYLINE - 5 -2AC - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --47.7586899563317502 - 20 -63.7323144104802282 - 10 --47.9720499563317446 - 20 -62.7723144104802486 - 10 --47.5453299563317273 - 20 -62.7723144104802486 - 10 --47.7586899563317502 - 20 -63.7323144104802282 - 0 -LINE - 5 -2AD -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.7586899563317644 - 20 --4.6676855895197669 - 30 -0.0 - 11 --35.7586899563317644 - 21 --14.2676855895197754 - 31 -0.0 - 0 -LINE - 5 -2AE -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.7586899563317644 - 20 -67.3323144104802367 - 30 -0.0 - 11 --35.7586899563317644 - 21 -57.7323144104802282 - 31 -0.0 - 0 -LWPOLYLINE - 5 -2AF - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --35.7586899563317644 - 20 --4.6676855895197669 - 10 --35.9720499563317304 - 20 --5.6276855895197642 - 10 --35.5453299563317415 - 20 --5.6276855895197642 - 10 --35.7586899563317644 - 20 --4.6676855895197669 - 0 -LWPOLYLINE - 5 -2B0 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --35.7586899563317644 - 20 -67.3323144104802367 - 10 --35.9720499563317304 - 20 -66.3723144104802145 - 10 --35.5453299563317415 - 20 -66.3723144104802145 - 10 --35.7586899563317644 - 20 -67.3323144104802367 - 0 -LINE - 5 -2B1 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --46.5586899563317473 - 20 --14.2676855895197754 - 30 -0.0 - 11 --41.7586899563317644 - 21 --14.2676855895197754 - 31 -0.0 - 0 -LINE - 5 -2B2 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --46.5586899563317473 - 20 -57.7323144104802282 - 30 -0.0 - 11 --41.7586899563317644 - 21 -57.7323144104802282 - 31 -0.0 - 0 -LWPOLYLINE - 5 -2B3 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --41.7586899563317644 - 20 --14.2676855895197754 - 10 --42.7186899563317439 - 20 --14.0543255895197738 - 10 --42.7186899563317439 - 20 --14.4810455895197769 - 10 --41.7586899563317644 - 20 --14.2676855895197754 - 0 -LWPOLYLINE - 5 -2B4 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --41.7586899563317644 - 20 -57.7323144104802282 - 10 --42.7186899563317439 - 20 -57.9456744104802084 - 10 --42.7186899563317439 - 20 -57.5189544104802337 - 10 --41.7586899563317644 - 20 -57.7323144104802282 - 0 -LINE - 5 -2B5 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.3586899563317303 - 20 --86.2676855895197718 - 30 -0.0 - 11 --20.1586899563317417 - 21 --86.2676855895197718 - 31 -0.0 - 0 -LINE - 5 -2B6 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --41.7586899563317644 - 20 --14.2676855895197754 - 30 -0.0 - 11 --35.7586899563317644 - 21 --14.2676855895197754 - 31 -0.0 - 0 -LINE - 5 -2B7 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --41.7586899563317644 - 20 -57.7323144104802282 - 30 -0.0 - 11 --35.7586899563317644 - 21 -57.7323144104802282 - 31 -0.0 - 0 -LWPOLYLINE - 5 -2B8 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --20.1586899563317417 - 20 --86.2676855895197718 - 10 --21.1186899563317212 - 20 --86.0543255895197632 - 10 --21.1186899563317212 - 20 --86.4810455895197663 - 10 --20.1586899563317417 - 20 --86.2676855895197718 - 0 -LWPOLYLINE - 5 -2B9 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --35.7586899563317644 - 20 --14.2676855895197754 - 10 --36.7186899563317439 - 20 --14.0543255895197738 - 10 --36.7186899563317439 - 20 --14.4810455895197769 - 10 --35.7586899563317644 - 20 --14.2676855895197754 - 0 -LWPOLYLINE - 5 -2BA - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --35.7586899563317644 - 20 -57.7323144104802282 - 10 --36.7186899563317439 - 20 -57.9456744104802084 - 10 --36.7186899563317439 - 20 -57.5189544104802337 - 10 --35.7586899563317644 - 20 -57.7323144104802282 - 0 -LINE - 5 -2BB -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --5.7586899563317502 - 20 --19.0676855895197725 - 30 -0.0 - 11 --63.3586899563317161 - 21 --19.0676855895197725 - 31 -0.0 - 0 -LINE - 5 -2BC -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --5.7586899563317502 - 20 -52.9323144104802523 - 30 -0.0 - 11 --63.3586899563317161 - 21 -52.9323144104802523 - 31 -0.0 - 0 -LWPOLYLINE - 5 -2BD - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --63.3586899563317161 - 20 --19.0676855895197725 - 10 --62.3986899563317365 - 20 --19.2810455895197741 - 10 --62.3986899563317365 - 20 --18.8543255895197781 - 10 --63.3586899563317161 - 20 --19.0676855895197725 - 0 -LWPOLYLINE - 5 -2BE - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --63.3586899563317161 - 20 -52.9323144104802523 - 10 --62.3986899563317365 - 20 -52.7189544104802295 - 10 --62.3986899563317365 - 20 -53.1456744104802254 - 10 --63.3586899563317161 - 20 -52.9323144104802523 - 0 -LINE - 5 -2BF -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --5.7586899563317502 - 20 --1.0676855895197797 - 30 -0.0 - 11 --5.7586899563317502 - 21 --19.0676855895197725 - 31 -0.0 - 0 -LINE - 5 -2C0 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --5.7586899563317502 - 20 -70.9323144104802452 - 30 -0.0 - 11 --5.7586899563317502 - 21 -52.9323144104802523 - 31 -0.0 - 0 -LWPOLYLINE - 5 -2C1 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --5.7586899563317502 - 20 --19.0676855895197725 - 10 --5.5453299563317273 - 20 --18.1076855895197717 - 10 --5.9720499563317304 - 20 --18.1076855895197717 - 10 --5.7586899563317502 - 20 --19.0676855895197725 - 0 -LWPOLYLINE - 5 -2C2 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --5.7586899563317502 - 20 -52.9323144104802523 - 10 --5.5453299563317273 - 20 -53.8923144104802319 - 10 --5.9720499563317304 - 20 -53.8923144104802319 - 10 --5.7586899563317502 - 20 -52.9323144104802523 - 0 -LINE - 5 -2C3 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9586899563317388 - 20 --5.8676855895197839 - 30 -0.0 - 11 --54.9586899563317388 - 21 --5.8676855895197839 - 31 -0.0 - 0 -LINE - 5 -2C4 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.9586899563317388 - 20 -66.1323144104802196 - 30 -0.0 - 11 --54.9586899563317388 - 21 -66.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -2C5 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --20.1586899563317417 - 20 --86.2676855895197718 - 30 -0.0 - 11 -2.6413100436682555 - 21 --86.2676855895197718 - 31 -0.0 - 0 -LINE - 5 -2C6 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.7586899563317644 - 20 --14.2676855895197754 - 30 -0.0 - 11 -2.6413100436682555 - 21 --14.2676855895197754 - 31 -0.0 - 0 -LINE - 5 -2C7 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.7586899563317644 - 20 -57.7323144104802282 - 30 -0.0 - 11 -2.6413100436682555 - 21 -57.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -2C8 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --9.3586899563317161 - 20 --61.0676855895197832 - 30 -0.0 - 11 --9.3586899563317161 - 21 --73.0676855895197832 - 31 -0.0 - 0 -LWPOLYLINE - 5 -2C9 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --9.3586899563317161 - 20 --61.0676855895197832 - 10 --9.5720499563317389 - 20 --62.0276855895197912 - 10 --9.1453299563317501 - 20 --62.0276855895197912 - 10 --9.3586899563317161 - 20 --61.0676855895197832 - 0 -LINE - 5 -2CA -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.6413100436682555 - 20 --59.8676855895197804 - 30 -0.0 - 11 -14.6413100436682555 - 21 --69.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -2CB -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.6413100436682555 - 20 -12.1323144104802179 - 30 -0.0 - 11 -14.6413100436682555 - 21 -2.5323144104802324 - 31 -0.0 - 0 -LINE - 5 -2CC -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.6413100436682555 - 20 -84.1323144104802196 - 30 -0.0 - 11 -14.6413100436682555 - 21 -74.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -2CD -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --5.7586899563317502 - 20 -10.9323144104802221 - 30 -0.0 - 11 --5.7586899563317502 - 21 --1.0676855895197797 - 31 -0.0 - 0 -LINE - 5 -2CE -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --5.7586899563317502 - 20 -82.9323144104802452 - 30 -0.0 - 11 --5.7586899563317502 - 21 -70.9323144104802452 - 31 -0.0 - 0 -LWPOLYLINE - 5 -2CF - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -14.6413100436682555 - 20 --59.8676855895197804 - 10 -14.4279500436682611 - 20 --60.8276855895197883 - 10 -14.8546700436682642 - 20 --60.8276855895197883 - 10 -14.6413100436682555 - 20 --59.8676855895197804 - 0 -LWPOLYLINE - 5 -2D0 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -14.6413100436682555 - 20 -12.1323144104802179 - 10 -14.4279500436682611 - 20 -11.172314410480217 - 10 -14.8546700436682642 - 20 -11.172314410480217 - 10 -14.6413100436682555 - 20 -12.1323144104802179 - 0 -LWPOLYLINE - 5 -2D1 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -14.6413100436682555 - 20 -84.1323144104802196 - 10 -14.4279500436682611 - 20 -83.1723144104802401 - 10 -14.8546700436682642 - 20 -83.1723144104802401 - 10 -14.6413100436682555 - 20 -84.1323144104802196 - 0 -LWPOLYLINE - 5 -2D2 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -36.0247580436682711 - 20 --44.2676855895197718 - 10 -35.8113980436682766 - 20 --45.2276855895197656 - 10 -36.2381180436682655 - 20 --45.2276855895197656 - 10 -36.0247580436682711 - 20 --44.2676855895197718 - 0 -LWPOLYLINE - 5 -2D3 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -29.0413100436682896 - 20 --37.067685589519769 - 10 -28.8279500436682667 - 20 --38.027685589519777 - 10 -29.2546700436682556 - 20 --38.027685589519777 - 10 -29.0413100436682896 - 20 --37.067685589519769 - 0 -LWPOLYLINE - 5 -2D4 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -29.0413100436682896 - 20 -34.9323144104802452 - 10 -28.8279500436682667 - 20 -33.972314410480223 - 10 -29.2546700436682556 - 20 -33.972314410480223 - 10 -29.0413100436682896 - 20 -34.9323144104802452 - 0 -LWPOLYLINE - 5 -2D5 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -29.0413100436682896 - 20 -106.9323144104802452 - 10 -28.8279500436682667 - 20 -105.972314410480223 - 10 -29.2546700436682556 - 20 -105.972314410480223 - 10 -29.0413100436682896 - 20 -106.9323144104802452 - 0 -LWPOLYLINE - 5 -2D6 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -14.6413100436682555 - 20 --41.8676855895197662 - 10 -14.4279500436682611 - 20 --42.8276855895197741 - 10 -14.8546700436682642 - 20 --42.8276855895197741 - 10 -14.6413100436682555 - 20 --41.8676855895197662 - 0 -LWPOLYLINE - 5 -2D7 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -14.6413100436682555 - 20 -30.1323144104802196 - 10 -14.4279500436682611 - 20 -29.1723144104802401 - 10 -14.8546700436682642 - 20 -29.1723144104802401 - 10 -14.6413100436682555 - 20 -30.1323144104802196 - 0 -LWPOLYLINE - 5 -2D8 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -14.6413100436682555 - 20 -102.1323144104802196 - 10 -14.4279500436682611 - 20 -101.1723144104802401 - 10 -14.8546700436682642 - 20 -101.1723144104802401 - 10 -14.6413100436682555 - 20 -102.1323144104802196 - 0 -LWPOLYLINE - 5 -2D9 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --5.7586899563317502 - 20 -10.9323144104802221 - 10 --5.9720499563317304 - 20 -9.9723144104802213 - 10 --5.5453299563317273 - 20 -9.9723144104802213 - 10 --5.7586899563317502 - 20 -10.9323144104802221 - 0 -LWPOLYLINE - 5 -2DA - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --5.7586899563317502 - 20 -82.9323144104802452 - 10 --5.9720499563317304 - 20 -81.972314410480223 - 10 --5.5453299563317273 - 20 -81.972314410480223 - 10 --5.7586899563317502 - 20 -82.9323144104802452 - 0 -LINE - 5 -2DB -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.3586899563317303 - 20 --73.0676855895197832 - 30 -0.0 - 11 --83.1586899563317559 - 21 --73.0676855895197832 - 31 -0.0 - 0 -LINE - 5 -2DC -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --81.3586899563317303 - 20 --1.0676855895197797 - 30 -0.0 - 11 --84.3586899563317303 - 21 --1.0676855895197797 - 31 -0.0 - 0 -LINE - 5 -2DD -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --81.3586899563317303 - 20 -70.9323144104802452 - 30 -0.0 - 11 --84.3586899563317303 - 21 -70.9323144104802452 - 31 -0.0 - 0 -LWPOLYLINE - 5 -2DE - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --81.3586899563317303 - 20 --1.0676855895197797 - 10 --82.3186899563317525 - 20 --0.8543255895197781 - 10 --82.3186899563317525 - 20 --1.2810455895197812 - 10 --81.3586899563317303 - 20 --1.0676855895197797 - 0 -LWPOLYLINE - 5 -2DF - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --81.3586899563317303 - 20 -70.9323144104802452 - 10 --82.3186899563317525 - 20 -71.1456744104802254 - 10 --82.3186899563317525 - 20 -70.7189544104802224 - 10 --81.3586899563317303 - 20 -70.9323144104802452 - 0 -LINE - 5 -2E0 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --14.1586899563317417 - 20 --61.0676855895197832 - 30 -0.0 - 11 --9.3586899563317161 - 21 --61.0676855895197832 - 31 -0.0 - 0 -LWPOLYLINE - 5 -2E1 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --14.1586899563317417 - 20 --61.0676855895197832 - 10 --13.1986899563317337 - 20 --61.2810455895197919 - 10 --13.1986899563317337 - 20 --60.8543255895197888 - 10 --14.1586899563317417 - 20 --61.0676855895197832 - 0 -LINE - 5 -2E2 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -18.2413100436682498 - 20 --59.8676855895197804 - 30 -0.0 - 11 -14.6413100436682555 - 21 --59.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -2E3 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -18.2413100436682498 - 20 -12.1323144104802179 - 30 -0.0 - 11 -14.6413100436682555 - 21 -12.1323144104802179 - 31 -0.0 - 0 -LINE - 5 -2E4 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -18.2413100436682498 - 20 -84.1323144104802196 - 30 -0.0 - 11 -14.6413100436682555 - 21 -84.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -2E5 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -32.4247580436682483 - 20 --59.8676855895197804 - 30 -0.0 - 11 -25.4413100436682669 - 21 --59.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -2E6 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -32.4247580436682483 - 20 -12.1323144104802179 - 30 -0.0 - 11 -25.4413100436682669 - 21 -12.1323144104802179 - 31 -0.0 - 0 -LINE - 5 -2E7 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 -32.4247580436682483 - 20 -84.1323144104802196 - 30 -0.0 - 11 -25.4413100436682669 - 21 -84.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -2E8 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --11.7586899563317502 - 20 -10.9323144104802221 - 30 -0.0 - 11 --5.7586899563317502 - 21 -10.9323144104802221 - 31 -0.0 - 0 -LINE - 5 -2E9 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer - 10 --11.7586899563317502 - 20 -82.9323144104802452 - 30 -0.0 - 11 --5.7586899563317502 - 21 -82.9323144104802452 - 31 -0.0 - 0 -LWPOLYLINE - 5 -2EA - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -29.0413100436682896 - 20 --59.8676855895197804 - 10 -28.0813100436682532 - 20 --60.0810455895198032 - 10 -28.0813100436682532 - 20 --59.6543255895197859 - 10 -29.0413100436682896 - 20 --59.8676855895197804 - 0 -LWPOLYLINE - 5 -2EB - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -29.0413100436682896 - 20 -12.1323144104802179 - 10 -28.0813100436682532 - 20 -11.9189544104802163 - 10 -28.0813100436682532 - 20 -12.3456744104802194 - 10 -29.0413100436682896 - 20 -12.1323144104802179 - 0 -LWPOLYLINE - 5 -2EC - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -29.0413100436682896 - 20 -84.1323144104802196 - 10 -28.0813100436682532 - 20 -83.9189544104802252 - 10 -28.0813100436682532 - 20 -84.3456744104802425 - 10 -29.0413100436682896 - 20 -84.1323144104802196 - 0 -LWPOLYLINE - 5 -2ED - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -18.2413100436682498 - 20 --59.8676855895197804 - 10 -17.2813100436682703 - 20 --60.0810455895198032 - 10 -17.2813100436682703 - 20 --59.6543255895197859 - 10 -18.2413100436682498 - 20 --59.8676855895197804 - 0 -LWPOLYLINE - 5 -2EE - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -18.2413100436682498 - 20 -12.1323144104802179 - 10 -17.2813100436682703 - 20 -11.9189544104802163 - 10 -17.2813100436682703 - 20 -12.3456744104802194 - 10 -18.2413100436682498 - 20 -12.1323144104802179 - 0 -LWPOLYLINE - 5 -2EF - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -18.2413100436682498 - 20 -84.1323144104802196 - 10 -17.2813100436682703 - 20 -83.9189544104802252 - 10 -17.2813100436682703 - 20 -84.3456744104802425 - 10 -18.2413100436682498 - 20 -84.1323144104802196 - 0 -LWPOLYLINE - 5 -2F0 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -32.4247580436682483 - 20 --59.8676855895197804 - 10 -31.4647580436682404 - 20 --60.0810455895198032 - 10 -31.4647580436682404 - 20 --59.6543255895197859 - 10 -32.4247580436682483 - 20 --59.8676855895197804 - 0 -LWPOLYLINE - 5 -2F1 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -32.4247580436682483 - 20 -12.1323144104802179 - 10 -31.4647580436682404 - 20 -11.9189544104802163 - 10 -31.4647580436682404 - 20 -12.3456744104802194 - 10 -32.4247580436682483 - 20 -12.1323144104802179 - 0 -LWPOLYLINE - 5 -2F2 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -32.4247580436682483 - 20 -84.1323144104802196 - 10 -31.4647580436682404 - 20 -83.9189544104802252 - 10 -31.4647580436682404 - 20 -84.3456744104802425 - 10 -32.4247580436682483 - 20 -84.1323144104802196 - 0 -LWPOLYLINE - 5 -2F3 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --11.7586899563317502 - 20 -10.9323144104802221 - 10 --10.798689956331728 - 20 -10.7189544104802206 - 10 --10.798689956331728 - 20 -11.1456744104802237 - 10 --11.7586899563317502 - 20 -10.9323144104802221 - 0 -LWPOLYLINE - 5 -2F4 - 8 -0 - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --11.7586899563317502 - 20 -82.9323144104802452 - 10 --10.798689956331728 - 20 -82.7189544104802224 - 10 --10.798689956331728 - 20 -83.1456744104802254 - 10 --11.7586899563317502 - 20 -82.9323144104802452 - 0 -LINE - 5 -2F5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 --64.6676855895197775 - 30 -0.0 - 11 -36.0247580436682711 - 21 --73.0676855895197832 - 31 -0.0 - 0 -LINE - 5 -2F6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 -7.3323144104802349 - 30 -0.0 - 11 -36.0247580436682711 - 21 --1.0676855895197797 - 31 -0.0 - 0 -LINE - 5 -2F7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 -79.3323144104802367 - 30 -0.0 - 11 -36.0247580436682711 - 21 -70.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -2F8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.0247580436682711 - 20 --44.2676855895197718 - 30 -0.0 - 11 -36.0247580436682711 - 21 --55.0676855895197832 - 31 -0.0 - 0 -LINE - 5 -2F9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.6413100436682555 - 20 --41.8676855895197662 - 30 -0.0 - 11 -14.6413100436682555 - 21 --59.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -2FA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.6413100436682555 - 20 -30.1323144104802196 - 30 -0.0 - 11 -14.6413100436682555 - 21 -12.1323144104802179 - 31 -0.0 - 0 -LINE - 5 -2FB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.6413100436682555 - 20 -102.1323144104802196 - 30 -0.0 - 11 -14.6413100436682555 - 21 -84.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -2FC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -22.1413100436682555 - 20 --59.8676855895197804 - 30 -0.0 - 11 -22.1413100436682555 - 21 --59.267685589519786 - 31 -0.0 - 0 -LINE - 5 -2FD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -22.1413100436682555 - 20 -12.1323144104802179 - 30 -0.0 - 11 -22.1413100436682555 - 21 -12.7323144104802264 - 31 -0.0 - 0 -LINE - 5 -2FE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -22.1413100436682555 - 20 -84.1323144104802196 - 30 -0.0 - 11 -22.1413100436682555 - 21 -84.732314410480214 - 31 -0.0 - 0 -LINE - 5 -2FF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -21.5413100436682896 - 20 --59.8676855895197804 - 30 -0.0 - 11 -21.5413100436682896 - 21 --60.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -300 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -21.5413100436682896 - 20 -12.1323144104802179 - 30 -0.0 - 11 -21.5413100436682896 - 21 -11.5323144104802306 - 31 -0.0 - 0 -LINE - 5 -301 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -21.5413100436682896 - 20 -84.1323144104802196 - 30 -0.0 - 11 -21.5413100436682896 - 21 -83.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -302 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -22.1413100436682555 - 20 --59.267685589519786 - 30 -0.0 - 11 -22.7413100436682782 - 21 --59.267685589519786 - 31 -0.0 - 0 -LINE - 5 -303 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -22.1413100436682555 - 20 -12.7323144104802264 - 30 -0.0 - 11 -22.7413100436682782 - 21 -12.7323144104802264 - 31 -0.0 - 0 -LINE - 5 -304 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -22.1413100436682555 - 20 -84.732314410480214 - 30 -0.0 - 11 -22.7413100436682782 - 21 -84.732314410480214 - 31 -0.0 - 0 -LINE - 5 -305 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -21.5413100436682896 - 20 --60.4676855895197747 - 30 -0.0 - 11 -20.9413100436682527 - 21 --60.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -306 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -21.5413100436682896 - 20 -11.5323144104802306 - 30 -0.0 - 11 -20.9413100436682527 - 21 -11.5323144104802306 - 31 -0.0 - 0 -LINE - 5 -307 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -21.5413100436682896 - 20 -83.5323144104802111 - 30 -0.0 - 11 -20.9413100436682527 - 21 -83.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -308 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -22.7413100436682782 - 20 --59.267685589519786 - 30 -0.0 - 11 -22.7413100436682782 - 21 --58.6676855895197775 - 31 -0.0 - 0 -LINE - 5 -309 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -22.7413100436682782 - 20 -12.7323144104802264 - 30 -0.0 - 11 -22.7413100436682782 - 21 -13.3323144104802349 - 31 -0.0 - 0 -LINE - 5 -30A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -22.7413100436682782 - 20 -84.732314410480214 - 30 -0.0 - 11 -22.7413100436682782 - 21 -85.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -30B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.9413100436682527 - 20 --60.4676855895197747 - 30 -0.0 - 11 -20.9413100436682527 - 21 --61.0676855895197832 - 31 -0.0 - 0 -LINE - 5 -30C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.9413100436682527 - 20 -11.5323144104802306 - 30 -0.0 - 11 -20.9413100436682527 - 21 -10.9323144104802221 - 31 -0.0 - 0 -LINE - 5 -30D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.9413100436682527 - 20 -83.5323144104802111 - 30 -0.0 - 11 -20.9413100436682527 - 21 -82.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -30E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -22.7413100436682782 - 20 --58.6676855895197775 - 30 -0.0 - 11 -23.3413100436682441 - 21 --58.6676855895197775 - 31 -0.0 - 0 -LINE - 5 -30F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -22.7413100436682782 - 20 -13.3323144104802349 - 30 -0.0 - 11 -23.3413100436682441 - 21 -13.3323144104802349 - 31 -0.0 - 0 -LINE - 5 -310 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -22.7413100436682782 - 20 -85.3323144104802367 - 30 -0.0 - 11 -23.3413100436682441 - 21 -85.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -311 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.9413100436682527 - 20 --61.0676855895197832 - 30 -0.0 - 11 -20.3413100436682583 - 21 --61.0676855895197832 - 31 -0.0 - 0 -LINE - 5 -312 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.9413100436682527 - 20 -10.9323144104802221 - 30 -0.0 - 11 -20.3413100436682583 - 21 -10.9323144104802221 - 31 -0.0 - 0 -LINE - 5 -313 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.9413100436682527 - 20 -82.9323144104802452 - 30 -0.0 - 11 -20.3413100436682583 - 21 -82.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -314 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.3413100436682441 - 20 --58.6676855895197775 - 30 -0.0 - 11 -23.3413100436682441 - 21 --58.0676855895197832 - 31 -0.0 - 0 -LINE - 5 -315 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.3413100436682441 - 20 -13.3323144104802349 - 30 -0.0 - 11 -23.3413100436682441 - 21 -13.9323144104802221 - 31 -0.0 - 0 -LINE - 5 -316 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.3413100436682441 - 20 -85.3323144104802367 - 30 -0.0 - 11 -23.3413100436682441 - 21 -85.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -317 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.3413100436682583 - 20 --61.0676855895197832 - 30 -0.0 - 11 -20.3413100436682583 - 21 --61.6676855895197775 - 31 -0.0 - 0 -LINE - 5 -318 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.3413100436682583 - 20 -10.9323144104802221 - 30 -0.0 - 11 -20.3413100436682583 - 21 -10.3323144104802349 - 31 -0.0 - 0 -LINE - 5 -319 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.3413100436682583 - 20 -82.9323144104802452 - 30 -0.0 - 11 -20.3413100436682583 - 21 -82.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -31A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.3413100436682441 - 20 --58.0676855895197832 - 30 -0.0 - 11 -23.9413100436682669 - 21 --58.0676855895197832 - 31 -0.0 - 0 -LINE - 5 -31B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.3413100436682441 - 20 -13.9323144104802221 - 30 -0.0 - 11 -23.9413100436682669 - 21 -13.9323144104802221 - 31 -0.0 - 0 -LINE - 5 -31C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.3413100436682441 - 20 -85.9323144104802452 - 30 -0.0 - 11 -23.9413100436682669 - 21 -85.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -31D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.3413100436682583 - 20 --61.6676855895197775 - 30 -0.0 - 11 -19.7413100436682498 - 21 --61.6676855895197775 - 31 -0.0 - 0 -LINE - 5 -31E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.3413100436682583 - 20 -10.3323144104802349 - 30 -0.0 - 11 -19.7413100436682498 - 21 -10.3323144104802349 - 31 -0.0 - 0 -LINE - 5 -31F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.3413100436682583 - 20 -82.3323144104802367 - 30 -0.0 - 11 -19.7413100436682498 - 21 -82.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -320 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.9413100436682669 - 20 --58.0676855895197832 - 30 -0.0 - 11 -23.9413100436682669 - 21 --57.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -321 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.9413100436682669 - 20 -13.9323144104802221 - 30 -0.0 - 11 -23.9413100436682669 - 21 -14.5323144104802306 - 31 -0.0 - 0 -LINE - 5 -322 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.9413100436682669 - 20 -85.9323144104802452 - 30 -0.0 - 11 -23.9413100436682669 - 21 -86.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -323 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -19.7413100436682498 - 20 --61.6676855895197775 - 30 -0.0 - 11 -19.7413100436682498 - 21 --62.267685589519786 - 31 -0.0 - 0 -LINE - 5 -324 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -19.7413100436682498 - 20 -10.3323144104802349 - 30 -0.0 - 11 -19.7413100436682498 - 21 -9.7323144104802264 - 31 -0.0 - 0 -LINE - 5 -325 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -19.7413100436682498 - 20 -82.3323144104802367 - 30 -0.0 - 11 -19.7413100436682498 - 21 -81.732314410480214 - 31 -0.0 - 0 -LINE - 5 -326 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -21.5413100436682896 - 20 --59.8676855895197804 - 30 -0.0 - 11 -22.1413100436682555 - 21 --59.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -327 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -21.5413100436682896 - 20 -12.1323144104802179 - 30 -0.0 - 11 -22.1413100436682555 - 21 -12.1323144104802179 - 31 -0.0 - 0 -LINE - 5 -328 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -21.5413100436682896 - 20 -84.1323144104802196 - 30 -0.0 - 11 -22.1413100436682555 - 21 -84.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -329 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.9413100436682669 - 20 --57.4676855895197747 - 30 -0.0 - 11 -24.5413100436682896 - 21 --57.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -32A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.9413100436682669 - 20 -14.5323144104802306 - 30 -0.0 - 11 -24.5413100436682896 - 21 -14.5323144104802306 - 31 -0.0 - 0 -LINE - 5 -32B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.9413100436682669 - 20 -86.5323144104802111 - 30 -0.0 - 11 -24.5413100436682896 - 21 -86.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -32C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5413100436682896 - 20 --57.4676855895197747 - 30 -0.0 - 11 -24.5413100436682896 - 21 --56.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -32D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5413100436682896 - 20 -14.5323144104802306 - 30 -0.0 - 11 -24.5413100436682896 - 21 -15.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -32E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5413100436682896 - 20 -86.5323144104802111 - 30 -0.0 - 11 -24.5413100436682896 - 21 -87.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -32F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5413100436682896 - 20 --56.8676855895197804 - 30 -0.0 - 11 -25.1413100436682555 - 21 --56.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -330 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5413100436682896 - 20 -15.1323144104802196 - 30 -0.0 - 11 -25.1413100436682555 - 21 -15.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -331 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.5413100436682896 - 20 -87.1323144104802196 - 30 -0.0 - 11 -25.1413100436682555 - 21 -87.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -332 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -25.1413100436682555 - 20 --56.8676855895197804 - 30 -0.0 - 11 -25.1413100436682555 - 21 --56.267685589519786 - 31 -0.0 - 0 -LINE - 5 -333 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -25.1413100436682555 - 20 -15.1323144104802196 - 30 -0.0 - 11 -25.1413100436682555 - 21 -15.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -334 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -25.1413100436682555 - 20 -87.1323144104802196 - 30 -0.0 - 11 -25.1413100436682555 - 21 -87.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -335 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -19.7413100436682498 - 20 --62.267685589519786 - 30 -0.0 - 11 -19.1413100436682555 - 21 --62.267685589519786 - 31 -0.0 - 0 -LINE - 5 -336 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -19.7413100436682498 - 20 -9.7323144104802264 - 30 -0.0 - 11 -19.1413100436682555 - 21 -9.7323144104802264 - 31 -0.0 - 0 -LINE - 5 -337 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -19.7413100436682498 - 20 -81.732314410480214 - 30 -0.0 - 11 -19.1413100436682555 - 21 -81.732314410480214 - 31 -0.0 - 0 -LINE - 5 -338 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -19.1413100436682555 - 20 --62.267685589519786 - 30 -0.0 - 11 -19.1413100436682555 - 21 --62.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -339 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -19.1413100436682555 - 20 -9.7323144104802264 - 30 -0.0 - 11 -19.1413100436682555 - 21 -9.1323144104802179 - 31 -0.0 - 0 -LINE - 5 -33A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -19.1413100436682555 - 20 -81.732314410480214 - 30 -0.0 - 11 -19.1413100436682555 - 21 -81.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -33B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -19.1413100436682555 - 20 --62.8676855895197804 - 30 -0.0 - 11 -18.5413100436682754 - 21 --62.8676855895197804 - 31 -0.0 - 0 -LINE - 5 -33C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -19.1413100436682555 - 20 -9.1323144104802179 - 30 -0.0 - 11 -18.5413100436682754 - 21 -9.1323144104802179 - 31 -0.0 - 0 -LINE - 5 -33D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -19.1413100436682555 - 20 -81.1323144104802196 - 30 -0.0 - 11 -18.5413100436682754 - 21 -81.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -33E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -18.5413100436682754 - 20 --62.8676855895197804 - 30 -0.0 - 11 -18.5413100436682754 - 21 --63.4676855895197747 - 31 -0.0 - 0 -LINE - 5 -33F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -18.5413100436682754 - 20 -9.1323144104802179 - 30 -0.0 - 11 -18.5413100436682754 - 21 -8.5323144104802324 - 31 -0.0 - 0 -LINE - 5 -340 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -18.5413100436682754 - 20 -81.1323144104802196 - 30 -0.0 - 11 -18.5413100436682754 - 21 -80.5323144104802111 - 31 -0.0 - 0 -LINE - 5 -341 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.7586899563317502 - 20 --8.2676855895197754 - 30 -0.0 - 11 --47.7586899563317502 - 21 --10.6676855895197598 - 31 -0.0 - 0 -LINE - 5 -342 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.7586899563317502 - 20 -63.7323144104802282 - 30 -0.0 - 11 --47.7586899563317502 - 21 -61.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -343 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.7586899563317502 - 20 --10.6676855895197598 - 30 -0.0 - 11 --41.7586899563317644 - 21 --10.6676855895197598 - 31 -0.0 - 0 -LINE - 5 -344 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --47.7586899563317502 - 20 -61.3323144104802367 - 30 -0.0 - 11 --41.7586899563317644 - 21 -61.3323144104802367 - 31 -0.0 - 0 -LINE - 5 -345 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --41.7586899563317644 - 20 --10.6676855895197598 - 30 -0.0 - 11 --41.7586899563317644 - 21 --14.2676855895197754 - 31 -0.0 - 0 -LINE - 5 -346 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --41.7586899563317644 - 20 -61.3323144104802367 - 30 -0.0 - 11 --41.7586899563317644 - 21 -57.7323144104802282 - 31 -0.0 - 0 -LINE - 5 -347 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -29.0413100436682896 - 20 --37.067685589519769 - 30 -0.0 - 11 --41.7586899563317644 - 21 --37.067685589519769 - 31 -0.0 - 0 -LINE - 5 -348 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -29.0413100436682896 - 20 -34.9323144104802452 - 30 -0.0 - 11 --41.7586899563317644 - 21 -34.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -349 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -29.0413100436682896 - 20 -106.9323144104802452 - 30 -0.0 - 11 --41.7586899563317644 - 21 -106.9323144104802452 - 31 -0.0 - 0 -LINE - 5 -34A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --41.7586899563317644 - 20 --41.8676855895197662 - 30 -0.0 - 11 -14.6413100436682555 - 21 --41.8676855895197662 - 31 -0.0 - 0 -LINE - 5 -34B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --41.7586899563317644 - 20 -30.1323144104802196 - 30 -0.0 - 11 -14.6413100436682555 - 21 -30.1323144104802196 - 31 -0.0 - 0 -LINE - 5 -34C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --41.7586899563317644 - 20 -102.1323144104802196 - 30 -0.0 - 11 -14.6413100436682555 - 21 -102.1323144104802196 - 31 -0.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -34D - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -34D -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -34F - 3 -HIDETEXT -350 -34E - 0 -DICTIONARYVAR - 5 -34E -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -34F -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/hal/images/hal_stepgen_type0.dxf b/docs/src/hal/images/hal_stepgen_type0.dxf deleted file mode 100644 index 16ca1ad178d..00000000000 --- a/docs/src/hal/images/hal_stepgen_type0.dxf +++ /dev/null @@ -1,4952 +0,0 @@ -999 -dxflib 2.0.4.8 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$USERR4 - 40 -0.0 - 9 -$AXISUNIT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMTAD - 70 -0 - 9 -$VISRETAIN - 70 -0 - 9 -$TILEMODE - 70 -1 - 9 -$SHADEDIF - 70 -70 - 9 -$USERR5 - 40 -0.0 - 9 -$UCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$ATTREQ - 70 -1 - 9 -$CHAMFERA - 40 -0.0 - 9 -$MENU - 1 -acad - 9 -$CLAYER - 8 -0 - 9 -$DIMASZ - 40 -0.18 - 9 -$GRIDUNIT - 10 -0.0 - 20 -0.0 - 9 -$DIMADEC - 70 -0 - 9 -$UCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$CHAMFERB - 40 -0.0 - 9 -$TRACEWID - 40 -0.05 - 9 -$REGENMODE - 70 -1 - 9 -$ORTHOMODE - 70 -0 - 9 -$EXTMIN - 10 --30.8369749999999989 - 20 -15.2904999999999998 - 30 -0.0 - 9 -$DIMGAP - 40 -0.09 - 9 -$PUCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$ANGBASE - 50 -0.0 - 9 -$USRTIMER - 70 -1 - 9 -$SKETCHINC - 40 -0.1 - 9 -$DIMTFAC - 40 -1.0 - 9 -$DIMSAH - 70 -0 - 9 -$DIMALT - 70 -0 - 9 -$DIMSHO - 70 -1 - 9 -$PUCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$SURFTYPE - 70 -6 - 9 -$SPLFRAME - 70 -0 - 9 -$AXISMODE - 70 -0 - 9 -$DIMTSZ - 40 -0.0 - 9 -$LIMMIN - 10 -0.0 - 20 -0.0 - 9 -$SPLINESEGS - 70 -8 - 9 -$AUPREC - 70 -0 - 9 -$LUNITS - 70 -2 - 9 -$DWGCODEPAGE - 3 -dos850 - 9 -$SURFTAB1 - 70 -6 - 9 -$BLIPMODE - 70 -1 - 9 -$UNITMODE - 70 -0 - 9 -$USERI1 - 70 -0 - 9 -$SURFTAB2 - 70 -6 - 9 -$SKPOLY - 70 -0 - 9 -$ELEVATION - 40 -0.0 - 9 -$DIMCEN - 40 -0.09 - 9 -$DIMRND - 40 -0.0 - 9 -$INSBASE - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMEXO - 40 -0.0625 - 9 -$INSUNITS - 70 -4 - 9 -$USERI2 - 70 -0 - 9 -$UCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PELEVATION - 40 -0.0 - 9 -$TEXTSIZE - 40 -0.2 - 9 -$DRAGMODE - 70 -2 - 9 -$FILLMODE - 70 -1 - 9 -$EXTMAX - 10 --22.3580250000000014 - 20 -17.2094999999999985 - 30 -0.0 - 9 -$USERI3 - 70 -0 - 9 -$SURFU - 70 -6 - 9 -$ANGDIR - 70 -0 - 9 -$TDUSRTIMER - 40 -0.0 - 9 -$DIMZIN - 70 -0 - 9 -$DIMDLE - 40 -0.0 - 9 -$DIMSCALE - 40 -1.0 - 9 -$DIMLUNIT - 70 -2 - 9 -$WORLDVIEW - 70 -1 - 9 -$USERI4 - 70 -0 - 9 -$SURFV - 70 -6 - 9 -$OSMODE - 70 -0 - 9 -$QTEXTMODE - 70 -0 - 9 -$LIMMAX - 10 -0.0 - 20 -0.0 - 9 -$DIMTXT - 40 -0.18 - 9 -$GRIDMODE - 70 -1 - 9 -$USERI5 - 70 -0 - 9 -$HANDLING - 70 -1 - 9 -$PDMODE - 70 -0 - 9 -$LIMCHECK - 70 -0 - 9 -$THICKNESS - 40 -0.0 - 9 -$DIMSE1 - 70 -0 - 9 -$DIMLIM - 70 -0 - 9 -$ATTMODE - 70 -1 - 9 -$LUPREC - 70 -4 - 9 -$PEXTMAX - 10 --100000000000000000000.0 - 20 --100000000000000000000.0 - 30 --100000000000000000000.0 - 9 -$PEXTMIN - 10 -100000000000000000000.0 - 20 -100000000000000000000.0 - 30 -100000000000000000000.0 - 9 -$PUCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$SPLINETYPE - 70 -6 - 9 -$TDINDWG - 40 -0.0 - 9 -$DIMSOXD - 70 -0 - 9 -$DIMLFAC - 40 -1.0 - 9 -$DIMSE2 - 70 -0 - 9 -$DIMTOH - 70 -1 - 9 -$CELTYPE - 6 -CONTINUOUS - 9 -$PLIMCHECK - 70 -0 - 9 -$PLINEWID - 40 -0.0 - 9 -$DIMSTYLE - 2 -STANDARD - 9 -$DIMTVP - 40 -0.0 - 9 -$DIMASO - 70 -1 - 9 -$DIMTM - 40 -0.0 - 9 -$DIMDLI - 40 -0.38 - 9 -$CECOLOR - 62 -256 - 9 -$PLIMMAX - 10 -210.0 - 20 -297.0 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$TREEDEPTH - 70 -3020 - 9 -$MAXACTVP - 70 -16 - 9 -$TDUPDATE - 40 -0.0 - 9 -$FILLETRAD - 40 -0.0 - 9 -$DIMCLRT - 70 -0 - 9 -$DIMALTD - 70 -2 - 9 -$DIMTIH - 70 -1 - 9 -$LTSCALE - 40 -1.0 - 9 -$PINSBASE - 10 -136.7159504320141821 - 20 -131.2426292254056932 - 30 -0.0 - 9 -$DIMEXE - 40 -0.18 - 9 -$USERR1 - 40 -0.0 - 9 -$ATTDIA - 70 -0 - 9 -$PDSIZE - 40 -0.0 - 9 -$DIMCLRD - 70 -0 - 9 -$DIMAUNIT - 70 -0 - 9 -$PSLTSCALE - 70 -0 - 9 -$PLINEGEN - 70 -1 - 9 -$SHADEDGE - 70 -3 - 9 -$USERR2 - 40 -0.0 - 9 -$COORDS - 70 -0 - 9 -$TDCREATE - 40 -0.0 - 9 -$DIMCLRE - 70 -0 - 9 -$DIMTOFL - 70 -0 - 9 -$DIMALTF - 40 -25.3999999999999986 - 9 -$DIMTOL - 70 -0 - 9 -$DIMTP - 40 -0.0 - 9 -$TEXTSTYLE - 7 -STANDARD - 9 -$AUNITS - 70 -0 - 9 -$USERR3 - 40 -0.0 - 9 -$DIMTIX - 70 -0 - 9 -$MIRRTEXT - 70 -1 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -7 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -MERGE - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -STANDARD - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PINS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PARAMS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -47 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -OUTLINE - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -48 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -INTERNALS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -0.75 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -0.18 - 42 -0.0625 - 43 -3.75 - 44 -0.18 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -0.18 -141 -2.5 -143 -0.03937007874016 -147 -0.09 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -49 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --85.3826170986808393 - 20 -28.5073707745942997 - 30 -0.0 - 11 --64.3826170986808535 - 21 -28.5073707745942997 - 31 -0.0 - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --64.3826170986808535 - 20 -28.5073707745942997 - 30 -0.0 - 11 --62.8826170986808393 - 21 -31.507370774594289 - 31 -0.0 - 0 -LINE - 5 -4B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --62.8826170986808393 - 20 -31.507370774594289 - 30 -0.0 - 11 --50.8826170986808251 - 21 -31.507370774594289 - 31 -0.0 - 0 -LINE - 5 -4C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --50.8826170986808251 - 20 -31.507370774594289 - 30 -0.0 - 11 --49.3826170986808535 - 21 -28.5073707745942997 - 31 -0.0 - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --49.3826170986808535 - 20 -28.5073707745942997 - 30 -0.0 - 11 --31.3826170986808677 - 21 -28.5073707745942997 - 31 -0.0 - 0 -LINE - 5 -4E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --31.3826170986808677 - 20 -28.5073707745942997 - 30 -0.0 - 11 --29.8826170986808464 - 21 -31.507370774594289 - 31 -0.0 - 0 -LINE - 5 -4F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.8826170986808464 - 20 -31.507370774594289 - 30 -0.0 - 11 --17.8826170986808357 - 21 -31.507370774594289 - 31 -0.0 - 0 -LINE - 5 -50 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.8826170986808357 - 20 -31.507370774594289 - 30 -0.0 - 11 --16.3826170986808677 - 21 -28.5073707745942997 - 31 -0.0 - 0 -LINE - 5 -51 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --16.3826170986808677 - 20 -28.5073707745942997 - 30 -0.0 - 11 -10.617382901319143 - 21 -28.5073707745942997 - 31 -0.0 - 0 -LINE - 5 -52 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -10.617382901319143 - 20 -28.5073707745942997 - 30 -0.0 - 11 -12.1173829013191643 - 21 -31.507370774594289 - 31 -0.0 - 0 -LINE - 5 -53 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -12.1173829013191643 - 20 -31.507370774594289 - 30 -0.0 - 11 -24.1173829013191714 - 21 -31.507370774594289 - 31 -0.0 - 0 -LINE - 5 -54 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.1173829013191714 - 20 -31.507370774594289 - 30 -0.0 - 11 -25.617382901319143 - 21 -28.5073707745942997 - 31 -0.0 - 0 -LINE - 5 -55 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -25.617382901319143 - 20 -28.5073707745942997 - 30 -0.0 - 11 -31.6173829013191714 - 21 -28.5073707745942997 - 31 -0.0 - 0 -MTEXT - 5 -56 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -18.117382901319143 - 20 -22.507370774594321 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -steplen - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -57 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --23.8826170986808677 - 20 -22.507370774594321 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -steplen - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -58 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --4.382617098680857 - 20 -23.6323707745943103 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -stepspace - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -59 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --4.382617098680857 - 20 -21.3823707745942784 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -(min) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5A -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --40.3826170986808393 - 20 -23.6323707745943103 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -stepspace - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --40.3826170986808393 - 20 -21.3823707745942784 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -(min) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -3.8673829013191536 - 20 -14.632370774594289 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -dirsetup - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5D -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -3.8673829013191536 - 20 -12.3823707745943103 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -(min) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5E -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --70.3826170986808393 - 20 -14.632370774594289 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -dirsetup - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5F -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --70.3826170986808393 - 20 -12.3823707745943103 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -(min) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -60 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --10.3826170986808357 - 20 -14.632370774594289 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -dirhold - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -61 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --10.3826170986808357 - 20 -12.3823707745943103 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -(min) - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -62 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --56.8826170986808535 - 20 -22.507370774594321 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -steplen - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -63 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.6326170986808393 - 20 -27.757370774594289 - 30 -0.0 - 11 --63.6326170986808393 - 21 -10.5073707745943103 - 31 -0.0 - 0 -LINE - 5 -64 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --50.1326170986808677 - 20 -27.757370774594289 - 30 -0.0 - 11 --50.1326170986808677 - 21 -18.757370774594321 - 31 -0.0 - 0 -LINE - 5 -65 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.1326170986808251 - 20 -27.757370774594289 - 30 -0.0 - 11 --17.1326170986808251 - 21 -10.5073707745943103 - 31 -0.0 - 0 -LINE - 5 -66 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -11.3673829013191572 - 20 -27.757370774594289 - 30 -0.0 - 11 -11.3673829013191572 - 21 -10.5073707745943103 - 31 -0.0 - 0 -LINE - 5 -67 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.8673829013191288 - 20 -27.757370774594289 - 30 -0.0 - 11 -24.8673829013191288 - 21 -18.757370774594321 - 31 -0.0 - 0 -LINE - 5 -68 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --85.3826170986808393 - 20 -3.0073707745943103 - 30 -0.0 - 11 --77.8826170986808393 - 21 -3.0073707745943103 - 31 -0.0 - 0 -LINE - 5 -69 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.8826170986808393 - 20 -3.0073707745943103 - 30 -0.0 - 11 --76.3826170986808677 - 21 -6.0073707745942997 - 31 -0.0 - 0 -LINE - 5 -6A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --85.3826170986808393 - 20 -6.0073707745942997 - 30 -0.0 - 11 --77.8826170986808393 - 21 -6.0073707745942997 - 31 -0.0 - 0 -LINE - 5 -6B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.8826170986808393 - 20 -6.0073707745942997 - 30 -0.0 - 11 --76.3826170986808677 - 21 -3.0073707745943103 - 31 -0.0 - 0 -LINE - 5 -6C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --76.3826170986808677 - 20 -3.0073707745943103 - 30 -0.0 - 11 --4.382617098680857 - 21 -3.0073707745943103 - 31 -0.0 - 0 -LINE - 5 -6D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --4.382617098680857 - 20 -3.0073707745943103 - 30 -0.0 - 11 --2.8826170986808357 - 21 -6.0073707745942997 - 31 -0.0 - 0 -LINE - 5 -6E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --2.8826170986808357 - 20 -6.0073707745942997 - 30 -0.0 - 11 -31.6173829013191714 - 21 -6.0073707745942997 - 31 -0.0 - 0 -LINE - 5 -6F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -31.6173829013191714 - 20 -3.0073707745943103 - 30 -0.0 - 11 --2.8826170986808357 - 21 -3.0073707745943103 - 31 -0.0 - 0 -LINE - 5 -70 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --2.8826170986808357 - 20 -3.0073707745943103 - 30 -0.0 - 11 --4.382617098680857 - 21 -6.0073707745942997 - 31 -0.0 - 0 -LINE - 5 -71 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --4.382617098680857 - 20 -6.0073707745942997 - 30 -0.0 - 11 --76.3826170986808677 - 21 -6.0073707745942997 - 31 -0.0 - 0 -LINE - 5 -72 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --77.1326170986808251 - 20 -6.7573707745943103 - 30 -0.0 - 11 --77.1326170986808251 - 21 -16.507370774594289 - 31 -0.0 - 0 -LINE - 5 -73 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.6326170986808464 - 20 -6.7573707745943103 - 30 -0.0 - 11 --3.6326170986808464 - 21 -16.507370774594289 - 31 -0.0 - 0 -LINE - 5 -74 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.6326170986808535 - 20 -22.507370774594321 - 30 -0.0 - 11 --63.6326170986808393 - 21 -22.507370774594321 - 31 -0.0 - 0 -LWPOLYLINE - 5 -75 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --63.6326170986808393 - 20 -22.507370774594321 - 10 --62.4326170986808648 - 20 -22.2406707745942924 - 10 --62.4326170986808648 - 20 -22.7740707745942963 - 10 --63.6326170986808393 - 20 -22.507370774594321 - 0 -LINE - 5 -76 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --74.1326170986808393 - 20 -13.5073707745942997 - 30 -0.0 - 11 --77.1326170986808251 - 21 -13.5073707745942997 - 31 -0.0 - 0 -LWPOLYLINE - 5 -77 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --77.1326170986808251 - 20 -13.5073707745942997 - 10 --75.9326170986808506 - 20 -13.2406707745942978 - 10 --75.9326170986808506 - 20 -13.774070774594275 - 10 --77.1326170986808251 - 20 -13.5073707745942997 - 0 -LINE - 5 -78 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --66.6326170986808393 - 20 -13.5073707745942997 - 30 -0.0 - 11 --63.6326170986808393 - 21 -13.5073707745942997 - 31 -0.0 - 0 -LWPOLYLINE - 5 -79 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --63.6326170986808393 - 20 -13.5073707745942997 - 10 --64.8326170986808137 - 20 -13.774070774594275 - 10 --64.8326170986808137 - 20 -13.2406707745942978 - 10 --63.6326170986808393 - 20 -13.5073707745942997 - 0 -LINE - 5 -7A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --53.1326170986808535 - 20 -22.507370774594321 - 30 -0.0 - 11 --50.1326170986808677 - 21 -22.507370774594321 - 31 -0.0 - 0 -LWPOLYLINE - 5 -7B - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --50.1326170986808677 - 20 -22.507370774594321 - 10 --51.3326170986808421 - 20 -22.7740707745942963 - 10 --51.3326170986808421 - 20 -22.2406707745942924 - 10 --50.1326170986808677 - 20 -22.507370774594321 - 0 -LINE - 5 -7C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --44.8826170986808464 - 20 -22.507370774594321 - 30 -0.0 - 11 --50.1326170986808677 - 21 -22.507370774594321 - 31 -0.0 - 0 -LWPOLYLINE - 5 -7D - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --50.1326170986808677 - 20 -22.507370774594321 - 10 --48.9326170986808364 - 20 -22.2406707745942924 - 10 --48.9326170986808364 - 20 -22.7740707745942963 - 10 --50.1326170986808677 - 20 -22.507370774594321 - 0 -LINE - 5 -7E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.8826170986808251 - 20 -22.507370774594321 - 30 -0.0 - 11 --30.632617098680857 - 21 -22.507370774594321 - 31 -0.0 - 0 -LWPOLYLINE - 5 -7F - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --30.632617098680857 - 20 -22.507370774594321 - 10 --31.8326170986808314 - 20 -22.7740707745942963 - 10 --31.8326170986808314 - 20 -22.2406707745942924 - 10 --30.632617098680857 - 20 -22.507370774594321 - 0 -LINE - 5 -80 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --30.632617098680857 - 20 -27.757370774594289 - 30 -0.0 - 11 --30.632617098680857 - 21 -18.757370774594321 - 31 -0.0 - 0 -LINE - 5 -81 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --27.6326170986808677 - 20 -22.507370774594321 - 30 -0.0 - 11 --30.632617098680857 - 21 -22.507370774594321 - 31 -0.0 - 0 -LWPOLYLINE - 5 -82 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --30.632617098680857 - 20 -22.507370774594321 - 10 --29.4326170986808293 - 20 -22.2406707745942924 - 10 --29.4326170986808293 - 20 -22.7740707745942963 - 10 --30.632617098680857 - 20 -22.507370774594321 - 0 -LINE - 5 -83 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --20.1326170986808677 - 20 -22.507370774594321 - 30 -0.0 - 11 --17.1326170986808251 - 21 -22.507370774594321 - 31 -0.0 - 0 -LWPOLYLINE - 5 -84 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --17.1326170986808251 - 20 -22.507370774594321 - 10 --18.3326170986808528 - 20 -22.7740707745942963 - 10 --18.3326170986808528 - 20 -22.2406707745942924 - 10 --17.1326170986808251 - 20 -22.507370774594321 - 0 -LINE - 5 -85 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --10.376767098680844 - 20 -22.507370774594321 - 30 -0.0 - 11 --17.1326170986808251 - 21 -22.507370774594321 - 31 -0.0 - 0 -LWPOLYLINE - 5 -86 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --17.1326170986808251 - 20 -22.507370774594321 - 10 --15.9326170986808506 - 20 -22.2406707745942924 - 10 --15.9326170986808506 - 20 -22.7740707745942963 - 10 --17.1326170986808251 - 20 -22.507370774594321 - 0 -LINE - 5 -87 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -1.6173829013191749 - 20 -22.507370774594321 - 30 -0.0 - 11 -11.3673829013191572 - 21 -22.507370774594321 - 31 -0.0 - 0 -LWPOLYLINE - 5 -88 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -11.3673829013191572 - 20 -22.507370774594321 - 10 -10.1673829013191828 - 20 -22.7740707745942963 - 10 -10.1673829013191828 - 20 -22.2406707745942924 - 10 -11.3673829013191572 - 20 -22.507370774594321 - 0 -LINE - 5 -89 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.367382901319143 - 20 -22.507370774594321 - 30 -0.0 - 11 -11.3673829013191572 - 21 -22.507370774594321 - 31 -0.0 - 0 -LWPOLYLINE - 5 -8A - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -11.3673829013191572 - 20 -22.507370774594321 - 10 -12.5673829013191316 - 20 -22.2406707745942924 - 10 -12.5673829013191316 - 20 -22.7740707745942963 - 10 -11.3673829013191572 - 20 -22.507370774594321 - 0 -LINE - 5 -8B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -21.867382901319143 - 20 -22.507370774594321 - 30 -0.0 - 11 -24.8673829013191288 - 21 -22.507370774594321 - 31 -0.0 - 0 -LWPOLYLINE - 5 -8C - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -24.8673829013191288 - 20 -22.507370774594321 - 10 -23.6673829013191543 - 20 -22.7740707745942963 - 10 -23.6673829013191543 - 20 -22.2406707745942924 - 10 -24.8673829013191288 - 20 -22.507370774594321 - 0 -LINE - 5 -8D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -7.6173829013191572 - 20 -13.5073707745942997 - 30 -0.0 - 11 -11.3673829013191572 - 21 -13.5073707745942997 - 31 -0.0 - 0 -LWPOLYLINE - 5 -8E - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 -11.3673829013191572 - 20 -13.5073707745942997 - 10 -10.1673829013191828 - 20 -13.774070774594275 - 10 -10.1673829013191828 - 20 -13.2406707745942978 - 10 -11.3673829013191572 - 20 -13.5073707745942997 - 0 -LINE - 5 -8F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.6326170986808464 - 20 -13.5073707745942997 - 30 -0.0 - 11 -0.1173829013191536 - 21 -13.5073707745942997 - 31 -0.0 - 0 -LWPOLYLINE - 5 -90 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --3.6326170986808464 - 20 -13.5073707745942997 - 10 --2.4326170986808719 - 20 -13.2406707745942978 - 10 --2.4326170986808719 - 20 -13.774070774594275 - 10 --3.6326170986808464 - 20 -13.5073707745942997 - 0 -LINE - 5 -91 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --7.3826170986808464 - 20 -13.5073707745942997 - 30 -0.0 - 11 --3.6326170986808464 - 21 -13.5073707745942997 - 31 -0.0 - 0 -LWPOLYLINE - 5 -92 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --3.6326170986808464 - 20 -13.5073707745942997 - 10 --4.8326170986808208 - 20 -13.774070774594275 - 10 --4.8326170986808208 - 20 -13.2406707745942978 - 10 --3.6326170986808464 - 20 -13.5073707745942997 - 0 -LINE - 5 -93 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --13.3826170986808251 - 20 -13.5073707745942997 - 30 -0.0 - 11 --17.1326170986808251 - 21 -13.5073707745942997 - 31 -0.0 - 0 -LWPOLYLINE - 5 -94 - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer -100 -AcDbEntity -100 -AcDbPolyline - 90 -4 - 70 -0 - 10 --17.1326170986808251 - 20 -13.5073707745942997 - 10 --15.9326170986808506 - 20 -13.2406707745942978 - 10 --15.9326170986808506 - 20 -13.774070774594275 - 10 --17.1326170986808251 - 20 -13.5073707745942997 - 0 -MTEXT - 5 -95 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.8826170986808535 - 20 -30.007370774594321 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -6 - 72 -2 - 1 -step - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -96 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.8826170986808535 - 20 -4.507370774594305 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -6 - 72 -2 - 1 -direction - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -97 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -97 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -99 - 3 -HIDETEXT -350 -98 - 0 -DICTIONARYVAR - 5 -98 -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -99 -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/hal/images/hal_stepgen_type11_14.dxf b/docs/src/hal/images/hal_stepgen_type11_14.dxf deleted file mode 100644 index 2fa5ace219b..00000000000 --- a/docs/src/hal/images/hal_stepgen_type11_14.dxf +++ /dev/null @@ -1,10444 +0,0 @@ -999 -dxflib 2.0.4.8 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$USERR4 - 40 -0.0 - 9 -$AXISUNIT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMTAD - 70 -0 - 9 -$VISRETAIN - 70 -0 - 9 -$TILEMODE - 70 -1 - 9 -$SHADEDIF - 70 -70 - 9 -$USERR5 - 40 -0.0 - 9 -$UCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$ATTREQ - 70 -1 - 9 -$CHAMFERA - 40 -0.0 - 9 -$MENU - 1 -acad - 9 -$CLAYER - 8 -0 - 9 -$DIMASZ - 40 -0.18 - 9 -$GRIDUNIT - 10 -0.0 - 20 -0.0 - 9 -$DIMADEC - 70 -0 - 9 -$UCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$CHAMFERB - 40 -0.0 - 9 -$TRACEWID - 40 -0.05 - 9 -$REGENMODE - 70 -1 - 9 -$ORTHOMODE - 70 -0 - 9 -$EXTMIN - 10 --44.0623999999999967 - 20 -1.6492500000000001 - 30 -0.0 - 9 -$DIMGAP - 40 -0.09 - 9 -$PUCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$ANGBASE - 50 -0.0 - 9 -$USRTIMER - 70 -1 - 9 -$SKETCHINC - 40 -0.1 - 9 -$DIMTFAC - 40 -1.0 - 9 -$DIMSAH - 70 -0 - 9 -$DIMALT - 70 -0 - 9 -$DIMSHO - 70 -1 - 9 -$PUCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$SURFTYPE - 70 -6 - 9 -$SPLFRAME - 70 -0 - 9 -$AXISMODE - 70 -0 - 9 -$DIMTSZ - 40 -0.0 - 9 -$LIMMIN - 10 -0.0 - 20 -0.0 - 9 -$SPLINESEGS - 70 -8 - 9 -$AUPREC - 70 -0 - 9 -$LUNITS - 70 -2 - 9 -$DWGCODEPAGE - 3 -dos850 - 9 -$SURFTAB1 - 70 -6 - 9 -$BLIPMODE - 70 -1 - 9 -$UNITMODE - 70 -0 - 9 -$USERI1 - 70 -0 - 9 -$SURFTAB2 - 70 -6 - 9 -$SKPOLY - 70 -0 - 9 -$ELEVATION - 40 -0.0 - 9 -$DIMCEN - 40 -0.09 - 9 -$DIMRND - 40 -0.0 - 9 -$INSBASE - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMEXO - 40 -0.0625 - 9 -$INSUNITS - 70 -4 - 9 -$USERI2 - 70 -0 - 9 -$UCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PELEVATION - 40 -0.0 - 9 -$TEXTSIZE - 40 -0.2 - 9 -$DRAGMODE - 70 -2 - 9 -$FILLMODE - 70 -1 - 9 -$EXTMAX - 10 --37.5176000000000016 - 20 -11.9007500000000004 - 30 -0.0 - 9 -$USERI3 - 70 -0 - 9 -$SURFU - 70 -6 - 9 -$ANGDIR - 70 -0 - 9 -$TDUSRTIMER - 40 -0.0 - 9 -$DIMZIN - 70 -0 - 9 -$DIMDLE - 40 -0.0 - 9 -$DIMSCALE - 40 -1.0 - 9 -$DIMLUNIT - 70 -2 - 9 -$WORLDVIEW - 70 -1 - 9 -$USERI4 - 70 -0 - 9 -$SURFV - 70 -6 - 9 -$OSMODE - 70 -0 - 9 -$QTEXTMODE - 70 -0 - 9 -$LIMMAX - 10 -0.0 - 20 -0.0 - 9 -$DIMTXT - 40 -0.18 - 9 -$GRIDMODE - 70 -1 - 9 -$USERI5 - 70 -0 - 9 -$HANDLING - 70 -1 - 9 -$PDMODE - 70 -0 - 9 -$LIMCHECK - 70 -0 - 9 -$THICKNESS - 40 -0.0 - 9 -$DIMSE1 - 70 -0 - 9 -$DIMLIM - 70 -0 - 9 -$ATTMODE - 70 -1 - 9 -$LUPREC - 70 -4 - 9 -$PEXTMAX - 10 --100000000000000000000.0 - 20 --100000000000000000000.0 - 30 --100000000000000000000.0 - 9 -$PEXTMIN - 10 -100000000000000000000.0 - 20 -100000000000000000000.0 - 30 -100000000000000000000.0 - 9 -$PUCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$SPLINETYPE - 70 -6 - 9 -$TDINDWG - 40 -0.0 - 9 -$DIMSOXD - 70 -0 - 9 -$DIMLFAC - 40 -1.0 - 9 -$DIMSE2 - 70 -0 - 9 -$DIMTOH - 70 -1 - 9 -$CELTYPE - 6 -CONTINUOUS - 9 -$PLIMCHECK - 70 -0 - 9 -$PLINEWID - 40 -0.0 - 9 -$DIMSTYLE - 2 -STANDARD - 9 -$DIMTVP - 40 -0.0 - 9 -$DIMASO - 70 -1 - 9 -$DIMTM - 40 -0.0 - 9 -$DIMDLI - 40 -0.38 - 9 -$CECOLOR - 62 -256 - 9 -$PLIMMAX - 10 -210.0 - 20 -297.0 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$TREEDEPTH - 70 -3020 - 9 -$MAXACTVP - 70 -16 - 9 -$TDUPDATE - 40 -0.0 - 9 -$FILLETRAD - 40 -0.0 - 9 -$DIMCLRT - 70 -0 - 9 -$DIMALTD - 70 -2 - 9 -$DIMTIH - 70 -1 - 9 -$LTSCALE - 40 -1.0 - 9 -$PINSBASE - 10 -150.9546788178092243 - 20 -141.5108660896483741 - 30 -0.0 - 9 -$DIMEXE - 40 -0.18 - 9 -$USERR1 - 40 -0.0 - 9 -$ATTDIA - 70 -0 - 9 -$PDSIZE - 40 -0.0 - 9 -$DIMCLRD - 70 -0 - 9 -$DIMAUNIT - 70 -0 - 9 -$PSLTSCALE - 70 -0 - 9 -$PLINEGEN - 70 -1 - 9 -$SHADEDGE - 70 -3 - 9 -$USERR2 - 40 -0.0 - 9 -$COORDS - 70 -0 - 9 -$TDCREATE - 40 -0.0 - 9 -$DIMCLRE - 70 -0 - 9 -$DIMTOFL - 70 -0 - 9 -$DIMALTF - 40 -25.3999999999999986 - 9 -$DIMTOL - 70 -0 - 9 -$DIMTP - 40 -0.0 - 9 -$TEXTSTYLE - 7 -STANDARD - 9 -$AUNITS - 70 -0 - 9 -$USERR3 - 40 -0.0 - 9 -$DIMTIX - 70 -0 - 9 -$MIRRTEXT - 70 -1 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -7 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -MERGE - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -STANDARD - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PINS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PARAMS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -47 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -OUTLINE - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -48 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -INTERNALS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -0.75 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -0.18 - 42 -0.0625 - 43 -3.75 - 44 -0.18 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -0.18 -141 -2.5 -143 -0.03937007874016 -147 -0.09 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -MTEXT - 5 -49 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --33.1109287487666819 - 20 -117.8016339103516259 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4A -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --33.1109287487666819 - 20 -59.3016339103516188 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --89.3609287487666819 - 20 -117.8016339103516259 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --89.3609287487666819 - 20 -59.3016339103516188 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4D -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --89.3609287487666819 - 20 --57.698366089648367 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4E -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --89.3609287487666819 - 20 -0.8016339103516295 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4F -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --21.8609287487666819 - 20 -117.8016339103516259 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -50 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --21.8609287487666819 - 20 -59.3016339103516188 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -51 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.1109287487666819 - 20 -117.8016339103516259 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -52 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.1109287487666819 - 20 -59.3016339103516188 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -53 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.1109287487666819 - 20 --57.698366089648367 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -54 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.1109287487666819 - 20 -0.8016339103516295 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -55 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --10.6109287487666819 - 20 -117.8016339103516259 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -56 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --10.6109287487666819 - 20 -59.3016339103516188 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -57 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --66.8609287487666819 - 20 -117.8016339103516259 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -58 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --66.8609287487666819 - 20 -59.3016339103516188 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -59 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --66.8609287487666819 - 20 --57.698366089648367 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5A -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --66.8609287487666819 - 20 -0.8016339103516295 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -11.8890712512333181 - 20 -117.8016339103516259 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -4 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -11.8890712512333181 - 20 -59.3016339103516188 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -4 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5D -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --44.3609287487666819 - 20 -117.8016339103516259 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -4 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5E -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --44.3609287487666819 - 20 -59.3016339103516188 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -4 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5F -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --44.3609287487666819 - 20 --57.698366089648367 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -4 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -60 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --44.3609287487666819 - 20 -0.8016339103516295 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -4 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -61 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -0.6390712512333181 - 20 -117.8016339103516259 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -62 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -0.6390712512333181 - 20 -59.3016339103516188 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -63 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --55.6109287487666819 - 20 -117.8016339103516259 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -64 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --55.6109287487666819 - 20 -59.3016339103516188 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -65 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --55.6109287487666819 - 20 --57.698366089648367 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -66 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --55.6109287487666819 - 20 -0.8016339103516295 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -67 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --33.1109287487666819 - 20 --57.698366089648367 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -5 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -68 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --33.1109287487666819 - 20 -0.8016339103516295 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -5 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -69 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --21.8609287487666819 - 20 --57.698366089648367 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -6 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6A -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --21.8609287487666819 - 20 -0.8016339103516295 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -6 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --10.6109287487666819 - 20 --57.698366089648367 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -7 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --10.6109287487666819 - 20 -0.8016339103516295 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -7 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6D -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -0.6390712512333181 - 20 --57.698366089648367 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -8 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6E -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -0.6390712512333181 - 20 -0.8016339103516295 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -8 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6F -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -11.8890712512333181 - 20 --57.698366089648367 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -9 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -70 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -11.8890712512333181 - 20 -0.8016339103516295 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -9 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -71 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.1390712512333181 - 20 -117.8016339103516259 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -72 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.1390712512333181 - 20 -59.3016339103516188 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -73 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.1390712512333181 - 20 --57.698366089648367 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -74 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.1390712512333181 - 20 -0.8016339103516295 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -75 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --109.6109287487668098 - 20 -117.8016339103516259 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -STEP\~TYPE\~11 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -76 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --109.6109287487668098 - 20 -59.3016339103516188 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -STEP\~TYPE\~12 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -77 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --109.6109287487668098 - 20 --57.698366089648367 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -STEP\~TYPE\~14 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -78 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --109.6109287487668098 - 20 -0.8016339103516295 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -STEP\~TYPE\~13 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -79 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 -108.8016339103516543 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-A - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7A -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 -50.3016339103516046 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-A - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 --66.6983660896483741 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-A - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 --8.1983660896483777 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-A - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7D -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 -99.8016339103516259 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-B - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7E -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 -41.3016339103516472 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-B - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7F -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 --75.6983660896483741 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-B - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -80 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 --17.198366089648367 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-B - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -81 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 -90.8016339103516259 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-C - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -82 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 -32.3016339103516401 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-C - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -83 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 --84.6983660896483741 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-C - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -84 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 --26.1983660896483741 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-C - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -85 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 -81.8016339103516259 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-D - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -86 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 -23.3016339103516295 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-D - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -87 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 --93.6983660896483741 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-D - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -88 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 --35.1983660896483599 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-D - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -89 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 -72.8016339103515975 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-E - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8A -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 -14.3016339103516223 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-E - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 --102.6983660896483741 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-E - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --114.1109287487667103 - 20 --44.198366089648367 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-E - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -8D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --72.4859287487666819 - 20 -121.1766339103516259 - 30 -0.0 - 11 --72.4859287487666819 - 21 -68.3016339103516259 - 31 -0.0 - 0 -LINE - 5 -8E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --72.4859287487666819 - 20 -62.676633910351633 - 30 -0.0 - 11 --72.4859287487666819 - 21 -9.8016339103516366 - 31 -0.0 - 0 -LINE - 5 -8F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --72.4859287487666819 - 20 --54.323366089648367 - 30 -0.0 - 11 --72.4859287487666819 - 21 --107.1983660896483741 - 31 -0.0 - 0 -LINE - 5 -90 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --72.4859287487666819 - 20 -4.1766339103516374 - 30 -0.0 - 11 --72.4859287487666819 - 21 --48.698366089648367 - 31 -0.0 - 0 -LINE - 5 -91 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --61.2359287487666819 - 20 -121.1766339103516259 - 30 -0.0 - 11 --61.2359287487666819 - 21 -68.3016339103516259 - 31 -0.0 - 0 -LINE - 5 -92 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --61.2359287487666819 - 20 -62.676633910351633 - 30 -0.0 - 11 --61.2359287487666819 - 21 -9.8016339103516366 - 31 -0.0 - 0 -LINE - 5 -93 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --61.2359287487666819 - 20 --54.323366089648367 - 30 -0.0 - 11 --61.2359287487666819 - 21 --107.1983660896483741 - 31 -0.0 - 0 -LINE - 5 -94 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --61.2359287487666819 - 20 -4.1766339103516374 - 30 -0.0 - 11 --61.2359287487666819 - 21 --48.698366089648367 - 31 -0.0 - 0 -LINE - 5 -95 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --49.9859287487666819 - 20 -121.1766339103516259 - 30 -0.0 - 11 --49.9859287487666819 - 21 -68.3016339103516259 - 31 -0.0 - 0 -LINE - 5 -96 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --49.9859287487666819 - 20 -62.676633910351633 - 30 -0.0 - 11 --49.9859287487666819 - 21 -9.8016339103516366 - 31 -0.0 - 0 -LINE - 5 -97 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --49.9859287487666819 - 20 --54.323366089648367 - 30 -0.0 - 11 --49.9859287487666819 - 21 --107.1983660896483741 - 31 -0.0 - 0 -LINE - 5 -98 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --49.9859287487666819 - 20 -4.1766339103516374 - 30 -0.0 - 11 --49.9859287487666819 - 21 --48.698366089648367 - 31 -0.0 - 0 -LINE - 5 -99 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --38.7359287487666819 - 20 -121.1766339103516259 - 30 -0.0 - 11 --38.7359287487666819 - 21 -68.3016339103516259 - 31 -0.0 - 0 -LINE - 5 -9A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --38.7359287487666819 - 20 -62.676633910351633 - 30 -0.0 - 11 --38.7359287487666819 - 21 -9.8016339103516366 - 31 -0.0 - 0 -LINE - 5 -9B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --38.7359287487666819 - 20 --54.323366089648367 - 30 -0.0 - 11 --38.7359287487666819 - 21 --107.1983660896483741 - 31 -0.0 - 0 -LINE - 5 -9C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --38.7359287487666819 - 20 -4.1766339103516374 - 30 -0.0 - 11 --38.7359287487666819 - 21 --48.698366089648367 - 31 -0.0 - 0 -LINE - 5 -9D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --27.4859287487666819 - 20 -121.1766339103516259 - 30 -0.0 - 11 --27.4859287487666819 - 21 -68.3016339103516259 - 31 -0.0 - 0 -LINE - 5 -9E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --27.4859287487666819 - 20 -62.676633910351633 - 30 -0.0 - 11 --27.4859287487666819 - 21 -9.8016339103516366 - 31 -0.0 - 0 -LINE - 5 -9F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --27.4859287487666819 - 20 --54.323366089648367 - 30 -0.0 - 11 --27.4859287487666819 - 21 --107.1983660896483741 - 31 -0.0 - 0 -LINE - 5 -A0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --27.4859287487666819 - 20 -4.1766339103516374 - 30 -0.0 - 11 --27.4859287487666819 - 21 --48.698366089648367 - 31 -0.0 - 0 -LINE - 5 -A1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --16.2359287487666819 - 20 -121.1766339103516259 - 30 -0.0 - 11 --16.2359287487666819 - 21 -68.3016339103516259 - 31 -0.0 - 0 -LINE - 5 -A2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --16.2359287487666819 - 20 -62.676633910351633 - 30 -0.0 - 11 --16.2359287487666819 - 21 -9.8016339103516366 - 31 -0.0 - 0 -LINE - 5 -A3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --16.2359287487666819 - 20 --54.323366089648367 - 30 -0.0 - 11 --16.2359287487666819 - 21 --107.1983660896483741 - 31 -0.0 - 0 -LINE - 5 -A4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --16.2359287487666819 - 20 -4.1766339103516374 - 30 -0.0 - 11 --16.2359287487666819 - 21 --48.698366089648367 - 31 -0.0 - 0 -LINE - 5 -A5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --4.9859287487666819 - 20 -121.1766339103516259 - 30 -0.0 - 11 --4.9859287487666819 - 21 -68.3016339103516259 - 31 -0.0 - 0 -LINE - 5 -A6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --4.9859287487666819 - 20 -62.676633910351633 - 30 -0.0 - 11 --4.9859287487666819 - 21 -9.8016339103516366 - 31 -0.0 - 0 -LINE - 5 -A7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --4.9859287487666819 - 20 --54.323366089648367 - 30 -0.0 - 11 --4.9859287487666819 - 21 --107.1983660896483741 - 31 -0.0 - 0 -LINE - 5 -A8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --4.9859287487666819 - 20 -4.1766339103516374 - 30 -0.0 - 11 --4.9859287487666819 - 21 --48.698366089648367 - 31 -0.0 - 0 -LINE - 5 -A9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -6.2640712512333181 - 20 -121.1766339103516259 - 30 -0.0 - 11 -6.2640712512333181 - 21 -68.3016339103516259 - 31 -0.0 - 0 -LINE - 5 -AA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -6.2640712512333181 - 20 -62.676633910351633 - 30 -0.0 - 11 -6.2640712512333181 - 21 -9.8016339103516366 - 31 -0.0 - 0 -LINE - 5 -AB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -6.2640712512333181 - 20 --54.323366089648367 - 30 -0.0 - 11 -6.2640712512333181 - 21 --107.1983660896483741 - 31 -0.0 - 0 -LINE - 5 -AC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -6.2640712512333181 - 20 -4.1766339103516374 - 30 -0.0 - 11 -6.2640712512333181 - 21 --48.698366089648367 - 31 -0.0 - 0 -LINE - 5 -AD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -28.7640712512333181 - 20 -121.1766339103516259 - 30 -0.0 - 11 -28.7640712512333181 - 21 -68.3016339103516259 - 31 -0.0 - 0 -LINE - 5 -AE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -28.7640712512333181 - 20 -62.676633910351633 - 30 -0.0 - 11 -28.7640712512333181 - 21 -9.8016339103516366 - 31 -0.0 - 0 -LINE - 5 -AF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -28.7640712512333181 - 20 --54.323366089648367 - 30 -0.0 - 11 -28.7640712512333181 - 21 --107.1983660896483741 - 31 -0.0 - 0 -LINE - 5 -B0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -28.7640712512333181 - 20 -4.1766339103516374 - 30 -0.0 - 11 -28.7640712512333181 - 21 --48.698366089648367 - 31 -0.0 - 0 -LINE - 5 -B1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -17.5140712512333181 - 20 -121.1766339103516259 - 30 -0.0 - 11 -17.5140712512333181 - 21 -68.3016339103516259 - 31 -0.0 - 0 -LINE - 5 -B2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -17.5140712512333181 - 20 -62.676633910351633 - 30 -0.0 - 11 -17.5140712512333181 - 21 -9.8016339103516366 - 31 -0.0 - 0 -LINE - 5 -B3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -17.5140712512333181 - 20 --54.323366089648367 - 30 -0.0 - 11 -17.5140712512333181 - 21 --107.1983660896483741 - 31 -0.0 - 0 -LINE - 5 -B4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -17.5140712512333181 - 20 -4.1766339103516374 - 30 -0.0 - 11 -17.5140712512333181 - 21 --48.698366089648367 - 31 -0.0 - 0 -LINE - 5 -B5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --94.9859287487666819 - 20 -121.1766339103516259 - 30 -0.0 - 11 --94.9859287487666819 - 21 -68.3016339103516259 - 31 -0.0 - 0 -LINE - 5 -B6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --94.9859287487666819 - 20 -62.676633910351633 - 30 -0.0 - 11 --94.9859287487666819 - 21 -9.8016339103516366 - 31 -0.0 - 0 -LINE - 5 -B7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --94.9859287487666819 - 20 --54.323366089648367 - 30 -0.0 - 11 --94.9859287487666819 - 21 --107.1983660896483741 - 31 -0.0 - 0 -LINE - 5 -B8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --94.9859287487666819 - 20 -4.1766339103516374 - 30 -0.0 - 11 --94.9859287487666819 - 21 --48.698366089648367 - 31 -0.0 - 0 -LINE - 5 -B9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --83.7359287487666819 - 20 -121.1766339103516259 - 30 -0.0 - 11 --83.7359287487666819 - 21 -68.3016339103516259 - 31 -0.0 - 0 -LINE - 5 -BA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --83.7359287487666819 - 20 -62.676633910351633 - 30 -0.0 - 11 --83.7359287487666819 - 21 -9.8016339103516366 - 31 -0.0 - 0 -LINE - 5 -BB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --83.7359287487666819 - 20 --54.323366089648367 - 30 -0.0 - 11 --83.7359287487666819 - 21 --107.1983660896483741 - 31 -0.0 - 0 -LINE - 5 -BC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --83.7359287487666819 - 20 -4.1766339103516374 - 30 -0.0 - 11 --83.7359287487666819 - 21 --48.698366089648367 - 31 -0.0 - 0 -LINE - 5 -BD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 -111.0516339103516259 - 30 -0.0 - 11 --84.8609287487667814 - 21 -111.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -BE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.8609287487667814 - 20 -111.0516339103516259 - 30 -0.0 - 11 --82.610928748766753 - 21 -106.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -BF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --82.610928748766753 - 20 -106.5516339103516259 - 30 -0.0 - 11 --39.8609287487667814 - 21 -106.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -C0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.8609287487667814 - 20 -106.5516339103516259 - 30 -0.0 - 11 --37.6109287487667459 - 21 -111.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -C1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --37.6109287487667459 - 20 -111.0516339103516259 - 30 -0.0 - 11 --28.6109287487667778 - 21 -111.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -C2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --28.6109287487667778 - 20 -111.0516339103516259 - 30 -0.0 - 11 --26.3609287487667459 - 21 -106.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -C3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.3609287487667459 - 20 -106.5516339103516259 - 30 -0.0 - 11 -16.3890712512332186 - 21 -106.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -C4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -16.3890712512332186 - 20 -106.5516339103516259 - 30 -0.0 - 11 -18.6390712512332541 - 21 -111.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -C5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -18.6390712512332541 - 20 -111.0516339103516259 - 30 -0.0 - 11 -27.6390712512332186 - 21 -111.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -C6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 -88.5516339103516543 - 30 -0.0 - 11 --73.6109287487667814 - 21 -88.5516339103516543 - 31 -0.0 - 0 -LINE - 5 -C7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 -79.5516339103516259 - 30 -0.0 - 11 --62.3609287487667814 - 21 -79.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -C8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 -70.5516339103516259 - 30 -0.0 - 11 --51.1109287487667814 - 21 -70.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -C9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 -97.5516339103516543 - 30 -0.0 - 11 --84.8609287487667814 - 21 -97.5516339103516543 - 31 -0.0 - 0 -LINE - 5 -CA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --73.6109287487667814 - 20 -88.5516339103516543 - 30 -0.0 - 11 --71.360928748766753 - 21 -93.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -CB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --62.3609287487667814 - 20 -79.5516339103516259 - 30 -0.0 - 11 --60.1109287487667459 - 21 -84.0516339103515975 - 31 -0.0 - 0 -LINE - 5 -CC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --51.1109287487667814 - 20 -70.5516339103516259 - 30 -0.0 - 11 --48.8609287487667459 - 21 -75.0516339103516543 - 31 -0.0 - 0 -LINE - 5 -CD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.8609287487667814 - 20 -97.5516339103516543 - 30 -0.0 - 11 --82.610928748766753 - 21 -102.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -CE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.360928748766753 - 20 -93.0516339103516259 - 30 -0.0 - 11 --62.3609287487667814 - 21 -93.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -CF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.1109287487667459 - 20 -84.0516339103515975 - 30 -0.0 - 11 --51.1109287487667814 - 21 -84.0516339103515975 - 31 -0.0 - 0 -LINE - 5 -D0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.8609287487667459 - 20 -75.0516339103516543 - 30 -0.0 - 11 --39.8609287487667814 - 21 -75.0516339103516543 - 31 -0.0 - 0 -LINE - 5 -D1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --82.610928748766753 - 20 -102.0516339103516259 - 30 -0.0 - 11 --73.6109287487667814 - 21 -102.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -D2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --62.3609287487667814 - 20 -93.0516339103516259 - 30 -0.0 - 11 --60.1109287487667459 - 21 -88.5516339103516543 - 31 -0.0 - 0 -LINE - 5 -D3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --51.1109287487667814 - 20 -84.0516339103515975 - 30 -0.0 - 11 --48.8609287487667459 - 21 -79.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -D4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.8609287487667814 - 20 -75.0516339103516543 - 30 -0.0 - 11 --37.6109287487667459 - 21 -70.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -D5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --73.6109287487667814 - 20 -102.0516339103516259 - 30 -0.0 - 11 --71.360928748766753 - 21 -97.5516339103516543 - 31 -0.0 - 0 -LINE - 5 -D6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.1109287487667459 - 20 -88.5516339103516543 - 30 -0.0 - 11 --17.3609287487667778 - 21 -88.5516339103516543 - 31 -0.0 - 0 -LINE - 5 -D7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.8609287487667459 - 20 -79.5516339103516259 - 30 -0.0 - 11 --6.1109287487667814 - 21 -79.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -D8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --37.6109287487667459 - 20 -70.5516339103516259 - 30 -0.0 - 11 -5.1390712512332186 - 21 -70.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -D9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.360928748766753 - 20 -97.5516339103516543 - 30 -0.0 - 11 --28.6109287487667778 - 21 -97.5516339103516543 - 31 -0.0 - 0 -LINE - 5 -DA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.3609287487667778 - 20 -88.5516339103516543 - 30 -0.0 - 11 --15.1109287487667459 - 21 -93.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -DB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --6.1109287487667814 - 20 -79.5516339103516259 - 30 -0.0 - 11 --3.8609287487667459 - 21 -84.0516339103515975 - 31 -0.0 - 0 -LINE - 5 -DC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -5.1390712512332186 - 20 -70.5516339103516259 - 30 -0.0 - 11 -7.3890712512332541 - 21 -75.0516339103516543 - 31 -0.0 - 0 -LINE - 5 -DD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --28.6109287487667778 - 20 -97.5516339103516543 - 30 -0.0 - 11 --26.3609287487667459 - 21 -102.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -DE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.1109287487667459 - 20 -93.0516339103516259 - 30 -0.0 - 11 --6.1109287487667814 - 21 -93.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -DF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.8609287487667459 - 20 -84.0516339103515975 - 30 -0.0 - 11 -5.1390712512332186 - 21 -84.0516339103515975 - 31 -0.0 - 0 -LINE - 5 -E0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -7.3890712512332541 - 20 -75.0516339103516543 - 30 -0.0 - 11 -16.3890712512332186 - 21 -75.0516339103516543 - 31 -0.0 - 0 -LINE - 5 -E1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.3609287487667459 - 20 -102.0516339103516259 - 30 -0.0 - 11 --17.3609287487667778 - 21 -102.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -E2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --6.1109287487667814 - 20 -93.0516339103516259 - 30 -0.0 - 11 --3.8609287487667459 - 21 -88.5516339103516543 - 31 -0.0 - 0 -LINE - 5 -E3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -5.1390712512332186 - 20 -84.0516339103515975 - 30 -0.0 - 11 -7.3890712512332541 - 21 -79.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -E4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -16.3890712512332186 - 20 -75.0516339103516543 - 30 -0.0 - 11 -18.6390712512332541 - 21 -70.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -E5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.3609287487667778 - 20 -102.0516339103516259 - 30 -0.0 - 11 --15.1109287487667459 - 21 -97.5516339103516543 - 31 -0.0 - 0 -LINE - 5 -E6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.8609287487667459 - 20 -88.5516339103516543 - 30 -0.0 - 11 -27.6390712512332186 - 21 -88.5516339103516543 - 31 -0.0 - 0 -LINE - 5 -E7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -7.3890712512332541 - 20 -79.5516339103516259 - 30 -0.0 - 11 -27.6390712512332186 - 21 -79.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -E8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -18.6390712512332541 - 20 -70.5516339103516259 - 30 -0.0 - 11 -27.6390712512332186 - 21 -70.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -E9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.1109287487667459 - 20 -97.5516339103516543 - 30 -0.0 - 11 -27.6390712512332186 - 21 -97.5516339103516543 - 31 -0.0 - 0 -LINE - 5 -EA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 -52.5516339103516472 - 30 -0.0 - 11 --84.8609287487667814 - 21 -52.5516339103516472 - 31 -0.0 - 0 -LINE - 5 -EB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.8609287487667814 - 20 -52.5516339103516472 - 30 -0.0 - 11 --82.610928748766753 - 21 -48.0516339103516188 - 31 -0.0 - 0 -LINE - 5 -EC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --82.610928748766753 - 20 -48.0516339103516188 - 30 -0.0 - 11 --51.1109287487667814 - 21 -48.0516339103516188 - 31 -0.0 - 0 -LINE - 5 -ED -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --51.1109287487667814 - 20 -48.0516339103516188 - 30 -0.0 - 11 --48.8609287487667459 - 21 -52.5516339103516472 - 31 -0.0 - 0 -LINE - 5 -EE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.8609287487667459 - 20 -52.5516339103516472 - 30 -0.0 - 11 --28.6109287487667778 - 21 -52.5516339103516472 - 31 -0.0 - 0 -LINE - 5 -EF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --28.6109287487667778 - 20 -52.5516339103516472 - 30 -0.0 - 11 --26.3609287487667459 - 21 -48.0516339103516188 - 31 -0.0 - 0 -LINE - 5 -F0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.3609287487667459 - 20 -48.0516339103516188 - 30 -0.0 - 11 -5.1390712512332186 - 21 -48.0516339103516188 - 31 -0.0 - 0 -LINE - 5 -F1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -5.1390712512332186 - 20 -48.0516339103516188 - 30 -0.0 - 11 -7.3890712512332541 - 21 -52.5516339103516472 - 31 -0.0 - 0 -LINE - 5 -F2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -7.3890712512332541 - 20 -52.5516339103516472 - 30 -0.0 - 11 -27.6390712512332186 - 21 -52.5516339103516472 - 31 -0.0 - 0 -LINE - 5 -F3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 -43.5516339103516401 - 30 -0.0 - 11 --73.6109287487667814 - 21 -43.5516339103516401 - 31 -0.0 - 0 -LINE - 5 -F4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --73.6109287487667814 - 20 -43.5516339103516401 - 30 -0.0 - 11 --71.360928748766753 - 21 -39.0516339103516117 - 31 -0.0 - 0 -LINE - 5 -F5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.360928748766753 - 20 -39.0516339103516117 - 30 -0.0 - 11 --39.8609287487667814 - 21 -39.0516339103516117 - 31 -0.0 - 0 -LINE - 5 -F6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.8609287487667814 - 20 -39.0516339103516117 - 30 -0.0 - 11 --37.6109287487667459 - 21 -43.5516339103516401 - 31 -0.0 - 0 -LINE - 5 -F7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --37.6109287487667459 - 20 -43.5516339103516401 - 30 -0.0 - 11 --17.3609287487667778 - 21 -43.5516339103516401 - 31 -0.0 - 0 -LINE - 5 -F8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.3609287487667778 - 20 -43.5516339103516401 - 30 -0.0 - 11 --15.1109287487667459 - 21 -39.0516339103516117 - 31 -0.0 - 0 -LINE - 5 -F9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.1109287487667459 - 20 -39.0516339103516117 - 30 -0.0 - 11 -16.3890712512332186 - 21 -39.0516339103516117 - 31 -0.0 - 0 -LINE - 5 -FA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -16.3890712512332186 - 20 -39.0516339103516117 - 30 -0.0 - 11 -18.6390712512332541 - 21 -43.5516339103516401 - 31 -0.0 - 0 -LINE - 5 -FB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -18.6390712512332541 - 20 -43.5516339103516401 - 30 -0.0 - 11 -27.6390712512332186 - 21 -43.5516339103516401 - 31 -0.0 - 0 -LINE - 5 -FC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 -21.0516339103516401 - 30 -0.0 - 11 --73.6109287487667814 - 21 -21.0516339103516401 - 31 -0.0 - 0 -LINE - 5 -FD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 -12.0516339103516295 - 30 -0.0 - 11 --62.3609287487667814 - 21 -12.0516339103516295 - 31 -0.0 - 0 -LINE - 5 -FE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 -30.0516339103516259 - 30 -0.0 - 11 --84.8609287487667814 - 21 -30.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -FF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --73.6109287487667814 - 20 -21.0516339103516401 - 30 -0.0 - 11 --71.360928748766753 - 21 -25.5516339103516188 - 31 -0.0 - 0 -LINE - 5 -100 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --62.3609287487667814 - 20 -12.0516339103516295 - 30 -0.0 - 11 --60.1109287487667459 - 21 -16.551633910351633 - 31 -0.0 - 0 -LINE - 5 -101 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.8609287487667814 - 20 -30.0516339103516259 - 30 -0.0 - 11 --82.610928748766753 - 21 -34.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -102 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.360928748766753 - 20 -25.5516339103516188 - 30 -0.0 - 11 --51.1109287487667814 - 21 -25.5516339103516188 - 31 -0.0 - 0 -LINE - 5 -103 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.1109287487667459 - 20 -16.551633910351633 - 30 -0.0 - 11 --39.8609287487667814 - 21 -16.551633910351633 - 31 -0.0 - 0 -LINE - 5 -104 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --82.610928748766753 - 20 -34.5516339103516259 - 30 -0.0 - 11 --62.3609287487667814 - 21 -34.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -105 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --51.1109287487667814 - 20 -25.5516339103516188 - 30 -0.0 - 11 --48.8609287487667459 - 21 -21.0516339103516401 - 31 -0.0 - 0 -LINE - 5 -106 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.8609287487667814 - 20 -16.551633910351633 - 30 -0.0 - 11 --37.6109287487667459 - 21 -12.0516339103516295 - 31 -0.0 - 0 -LINE - 5 -107 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --62.3609287487667814 - 20 -34.5516339103516259 - 30 -0.0 - 11 --60.1109287487667459 - 21 -30.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -108 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.8609287487667459 - 20 -21.0516339103516401 - 30 -0.0 - 11 --17.3609287487667778 - 21 -21.0516339103516401 - 31 -0.0 - 0 -LINE - 5 -109 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --37.6109287487667459 - 20 -12.0516339103516295 - 30 -0.0 - 11 --6.1109287487667814 - 21 -12.0516339103516295 - 31 -0.0 - 0 -LINE - 5 -10A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.1109287487667459 - 20 -30.0516339103516259 - 30 -0.0 - 11 --28.6109287487667778 - 21 -30.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -10B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.3609287487667778 - 20 -21.0516339103516401 - 30 -0.0 - 11 --15.1109287487667459 - 21 -25.5516339103516188 - 31 -0.0 - 0 -LINE - 5 -10C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --6.1109287487667814 - 20 -12.0516339103516295 - 30 -0.0 - 11 --3.8609287487667459 - 21 -16.551633910351633 - 31 -0.0 - 0 -LINE - 5 -10D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --28.6109287487667778 - 20 -30.0516339103516259 - 30 -0.0 - 11 --26.3609287487667459 - 21 -34.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -10E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.1109287487667459 - 20 -25.5516339103516188 - 30 -0.0 - 11 -5.1390712512332186 - 21 -25.5516339103516188 - 31 -0.0 - 0 -LINE - 5 -10F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.8609287487667459 - 20 -16.551633910351633 - 30 -0.0 - 11 -16.3890712512332186 - 21 -16.551633910351633 - 31 -0.0 - 0 -LINE - 5 -110 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.3609287487667459 - 20 -34.5516339103516259 - 30 -0.0 - 11 --6.1109287487667814 - 21 -34.5516339103516259 - 31 -0.0 - 0 -LINE - 5 -111 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -5.1390712512332186 - 20 -25.5516339103516188 - 30 -0.0 - 11 -7.3890712512332541 - 21 -21.0516339103516401 - 31 -0.0 - 0 -LINE - 5 -112 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -16.3890712512332186 - 20 -16.551633910351633 - 30 -0.0 - 11 -18.6390712512332541 - 21 -12.0516339103516295 - 31 -0.0 - 0 -LINE - 5 -113 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --6.1109287487667814 - 20 -34.5516339103516259 - 30 -0.0 - 11 --3.8609287487667459 - 21 -30.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -114 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -7.3890712512332541 - 20 -21.0516339103516401 - 30 -0.0 - 11 -27.6390712512332186 - 21 -21.0516339103516401 - 31 -0.0 - 0 -LINE - 5 -115 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -18.6390712512332541 - 20 -12.0516339103516295 - 30 -0.0 - 11 -27.6390712512332186 - 21 -12.0516339103516295 - 31 -0.0 - 0 -LINE - 5 -116 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.8609287487667459 - 20 -30.0516339103516259 - 30 -0.0 - 11 -27.6390712512332186 - 21 -30.0516339103516259 - 31 -0.0 - 0 -LINE - 5 -117 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 --64.4483660896483741 - 30 -0.0 - 11 --73.6109287487667814 - 21 --64.4483660896483741 - 31 -0.0 - 0 -LINE - 5 -118 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 --5.9483660896483652 - 30 -0.0 - 11 --73.6109287487667814 - 21 --5.9483660896483652 - 31 -0.0 - 0 -LINE - 5 -119 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --73.6109287487667814 - 20 --64.4483660896483741 - 30 -0.0 - 11 --71.360928748766753 - 21 --68.9483660896483741 - 31 -0.0 - 0 -LINE - 5 -11A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --73.6109287487667814 - 20 --5.9483660896483652 - 30 -0.0 - 11 --71.360928748766753 - 21 --10.4483660896483705 - 31 -0.0 - 0 -LINE - 5 -11B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.360928748766753 - 20 --68.9483660896483741 - 30 -0.0 - 11 --17.3609287487667778 - 21 --68.9483660896483741 - 31 -0.0 - 0 -LINE - 5 -11C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.360928748766753 - 20 --10.4483660896483705 - 30 -0.0 - 11 -5.1390712512332186 - 21 --10.4483660896483705 - 31 -0.0 - 0 -LINE - 5 -11D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.3609287487667778 - 20 --68.9483660896483741 - 30 -0.0 - 11 --15.1109287487667459 - 21 --64.4483660896483741 - 31 -0.0 - 0 -LINE - 5 -11E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -5.1390712512332186 - 20 --10.4483660896483705 - 30 -0.0 - 11 -7.3890712512332541 - 21 --5.9483660896483652 - 31 -0.0 - 0 -LINE - 5 -11F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.1109287487667459 - 20 --64.4483660896483741 - 30 -0.0 - 11 -27.6390712512332186 - 21 --64.4483660896483741 - 31 -0.0 - 0 -LINE - 5 -120 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -7.3890712512332541 - 20 --5.9483660896483652 - 30 -0.0 - 11 -27.6390712512332186 - 21 --5.9483660896483652 - 31 -0.0 - 0 -LINE - 5 -121 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 --86.9483660896483741 - 30 -0.0 - 11 --84.8609287487667814 - 21 --86.9483660896483741 - 31 -0.0 - 0 -LINE - 5 -122 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 --28.448366089648367 - 30 -0.0 - 11 --62.3609287487667814 - 21 --28.448366089648367 - 31 -0.0 - 0 -LINE - 5 -123 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 --95.9483660896483741 - 30 -0.0 - 11 --62.3609287487667814 - 21 --95.9483660896483741 - 31 -0.0 - 0 -LINE - 5 -124 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 --37.4483660896483741 - 30 -0.0 - 11 --39.8609287487667814 - 21 --37.4483660896483741 - 31 -0.0 - 0 -LINE - 5 -125 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 --104.9483660896483741 - 30 -0.0 - 11 --39.8609287487667814 - 21 --104.9483660896483741 - 31 -0.0 - 0 -LINE - 5 -126 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 --46.4483660896483599 - 30 -0.0 - 11 --17.3609287487667778 - 21 --46.4483660896483599 - 31 -0.0 - 0 -LINE - 5 -127 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 --19.4483660896483812 - 30 -0.0 - 11 --84.8609287487667814 - 21 --19.4483660896483812 - 31 -0.0 - 0 -LINE - 5 -128 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.8609287487667814 - 20 --86.9483660896483741 - 30 -0.0 - 11 --82.610928748766753 - 21 --82.4483660896483741 - 31 -0.0 - 0 -LINE - 5 -129 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --62.3609287487667814 - 20 --28.448366089648367 - 30 -0.0 - 11 --60.1109287487667459 - 21 --23.9483660896483599 - 31 -0.0 - 0 -LINE - 5 -12A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --62.3609287487667814 - 20 --95.9483660896483741 - 30 -0.0 - 11 --60.1109287487667459 - 21 --91.4483660896483741 - 31 -0.0 - 0 -LINE - 5 -12B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.8609287487667814 - 20 --37.4483660896483741 - 30 -0.0 - 11 --37.6109287487667459 - 21 --32.948366089648367 - 31 -0.0 - 0 -LINE - 5 -12C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.8609287487667814 - 20 --104.9483660896483741 - 30 -0.0 - 11 --37.6109287487667459 - 21 --100.4483660896483741 - 31 -0.0 - 0 -LINE - 5 -12D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.3609287487667778 - 20 --46.4483660896483599 - 30 -0.0 - 11 --15.1109287487667459 - 21 --41.9483660896483812 - 31 -0.0 - 0 -LINE - 5 -12E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --84.8609287487667814 - 20 --19.4483660896483812 - 30 -0.0 - 11 --82.610928748766753 - 21 --14.9483660896483741 - 31 -0.0 - 0 -LINE - 5 -12F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --82.610928748766753 - 20 --82.4483660896483741 - 30 -0.0 - 11 --28.6109287487667778 - 21 --82.4483660896483741 - 31 -0.0 - 0 -LINE - 5 -130 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.1109287487667459 - 20 --23.9483660896483599 - 30 -0.0 - 11 --28.6109287487667778 - 21 --23.9483660896483599 - 31 -0.0 - 0 -LINE - 5 -131 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.1109287487667459 - 20 --91.4483660896483741 - 30 -0.0 - 11 --6.1109287487667814 - 21 --91.4483660896483741 - 31 -0.0 - 0 -LINE - 5 -132 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --37.6109287487667459 - 20 --32.948366089648367 - 30 -0.0 - 11 --6.1109287487667814 - 21 --32.948366089648367 - 31 -0.0 - 0 -LINE - 5 -133 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --37.6109287487667459 - 20 --100.4483660896483741 - 30 -0.0 - 11 -16.3890712512332186 - 21 --100.4483660896483741 - 31 -0.0 - 0 -LINE - 5 -134 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.1109287487667459 - 20 --41.9483660896483812 - 30 -0.0 - 11 -16.3890712512332186 - 21 --41.9483660896483812 - 31 -0.0 - 0 -LINE - 5 -135 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.860928748766753 - 20 --73.4483660896483741 - 30 -0.0 - 11 --51.1109287487667814 - 21 --73.4483660896483741 - 31 -0.0 - 0 -LINE - 5 -136 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --82.610928748766753 - 20 --14.9483660896483741 - 30 -0.0 - 11 --51.1109287487667814 - 21 --14.9483660896483741 - 31 -0.0 - 0 -LINE - 5 -137 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --28.6109287487667778 - 20 --82.4483660896483741 - 30 -0.0 - 11 --26.3609287487667459 - 21 --86.9483660896483741 - 31 -0.0 - 0 -LINE - 5 -138 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --28.6109287487667778 - 20 --23.9483660896483599 - 30 -0.0 - 11 --26.3609287487667459 - 21 --28.448366089648367 - 31 -0.0 - 0 -LINE - 5 -139 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --6.1109287487667814 - 20 --91.4483660896483741 - 30 -0.0 - 11 --3.8609287487667459 - 21 --95.9483660896483741 - 31 -0.0 - 0 -LINE - 5 -13A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --6.1109287487667814 - 20 --32.948366089648367 - 30 -0.0 - 11 --3.8609287487667459 - 21 --37.4483660896483741 - 31 -0.0 - 0 -LINE - 5 -13B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -16.3890712512332186 - 20 --100.4483660896483741 - 30 -0.0 - 11 -18.6390712512332541 - 21 --104.9483660896483741 - 31 -0.0 - 0 -LINE - 5 -13C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -16.3890712512332186 - 20 --41.9483660896483812 - 30 -0.0 - 11 -18.6390712512332541 - 21 --46.4483660896483599 - 31 -0.0 - 0 -LINE - 5 -13D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --51.1109287487667814 - 20 --73.4483660896483741 - 30 -0.0 - 11 --48.8609287487667459 - 21 --77.9483660896483741 - 31 -0.0 - 0 -LINE - 5 -13E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --51.1109287487667814 - 20 --14.9483660896483741 - 30 -0.0 - 11 --48.8609287487667459 - 21 --19.4483660896483812 - 31 -0.0 - 0 -LINE - 5 -13F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.3609287487667459 - 20 --86.9483660896483741 - 30 -0.0 - 11 -27.6390712512332186 - 21 --86.9483660896483741 - 31 -0.0 - 0 -LINE - 5 -140 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.3609287487667459 - 20 --28.448366089648367 - 30 -0.0 - 11 -27.6390712512332186 - 21 --28.448366089648367 - 31 -0.0 - 0 -LINE - 5 -141 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.8609287487667459 - 20 --95.9483660896483741 - 30 -0.0 - 11 -27.6390712512332186 - 21 --95.9483660896483741 - 31 -0.0 - 0 -LINE - 5 -142 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --3.8609287487667459 - 20 --37.4483660896483741 - 30 -0.0 - 11 -27.6390712512332186 - 21 --37.4483660896483741 - 31 -0.0 - 0 -LINE - 5 -143 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -18.6390712512332541 - 20 --104.9483660896483741 - 30 -0.0 - 11 -27.6390712512332186 - 21 --104.9483660896483741 - 31 -0.0 - 0 -LINE - 5 -144 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -18.6390712512332541 - 20 --46.4483660896483599 - 30 -0.0 - 11 -27.6390712512332186 - 21 --46.4483660896483599 - 31 -0.0 - 0 -LINE - 5 -145 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.8609287487667459 - 20 --77.9483660896483741 - 30 -0.0 - 11 -5.1390712512332186 - 21 --77.9483660896483741 - 31 -0.0 - 0 -LINE - 5 -146 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.8609287487667459 - 20 --19.4483660896483812 - 30 -0.0 - 11 -27.6390712512332186 - 21 --19.4483660896483812 - 31 -0.0 - 0 -LINE - 5 -147 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -5.1390712512332186 - 20 --77.9483660896483741 - 30 -0.0 - 11 -7.3890712512332541 - 21 --73.4483660896483741 - 31 -0.0 - 0 -LINE - 5 -148 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -7.3890712512332541 - 20 --73.4483660896483741 - 30 -0.0 - 11 -27.6390712512332186 - 21 --73.4483660896483741 - 31 -0.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -149 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -149 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -14B - 3 -HIDETEXT -350 -14A - 0 -DICTIONARYVAR - 5 -14A -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -14B -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/hal/images/hal_stepgen_type2_4.dxf b/docs/src/hal/images/hal_stepgen_type2_4.dxf deleted file mode 100644 index 52672af127a..00000000000 --- a/docs/src/hal/images/hal_stepgen_type2_4.dxf +++ /dev/null @@ -1,7264 +0,0 @@ -999 -dxflib 2.0.4.8 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$USERR4 - 40 -0.0 - 9 -$AXISUNIT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMTAD - 70 -0 - 9 -$VISRETAIN - 70 -0 - 9 -$TILEMODE - 70 -1 - 9 -$SHADEDIF - 70 -70 - 9 -$USERR5 - 40 -0.0 - 9 -$UCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$ATTREQ - 70 -1 - 9 -$CHAMFERA - 40 -0.0 - 9 -$MENU - 1 -acad - 9 -$CLAYER - 8 -0 - 9 -$DIMASZ - 40 -0.18 - 9 -$GRIDUNIT - 10 -0.0 - 20 -0.0 - 9 -$DIMADEC - 70 -0 - 9 -$UCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$CHAMFERB - 40 -0.0 - 9 -$TRACEWID - 40 -0.05 - 9 -$REGENMODE - 70 -1 - 9 -$ORTHOMODE - 70 -0 - 9 -$EXTMIN - 10 --30.7347619999999999 - 20 -6.7742500000000003 - 30 -0.0 - 9 -$DIMGAP - 40 -0.09 - 9 -$PUCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$ANGBASE - 50 -0.0 - 9 -$USRTIMER - 70 -1 - 9 -$SKETCHINC - 40 -0.1 - 9 -$DIMTFAC - 40 -1.0 - 9 -$DIMSAH - 70 -0 - 9 -$DIMALT - 70 -0 - 9 -$DIMSHO - 70 -1 - 9 -$PUCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$SURFTYPE - 70 -6 - 9 -$SPLFRAME - 70 -0 - 9 -$AXISMODE - 70 -0 - 9 -$DIMTSZ - 40 -0.0 - 9 -$LIMMIN - 10 -0.0 - 20 -0.0 - 9 -$SPLINESEGS - 70 -8 - 9 -$AUPREC - 70 -0 - 9 -$LUNITS - 70 -2 - 9 -$DWGCODEPAGE - 3 -dos850 - 9 -$SURFTAB1 - 70 -6 - 9 -$BLIPMODE - 70 -1 - 9 -$UNITMODE - 70 -0 - 9 -$USERI1 - 70 -0 - 9 -$SURFTAB2 - 70 -6 - 9 -$SKPOLY - 70 -0 - 9 -$ELEVATION - 40 -0.0 - 9 -$DIMCEN - 40 -0.09 - 9 -$DIMRND - 40 -0.0 - 9 -$INSBASE - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMEXO - 40 -0.0625 - 9 -$INSUNITS - 70 -4 - 9 -$USERI2 - 70 -0 - 9 -$UCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PELEVATION - 40 -0.0 - 9 -$TEXTSIZE - 40 -0.2 - 9 -$DRAGMODE - 70 -2 - 9 -$FILLMODE - 70 -1 - 9 -$EXTMAX - 10 --24.2177380000000007 - 20 -11.9757499999999997 - 30 -0.0 - 9 -$USERI3 - 70 -0 - 9 -$SURFU - 70 -6 - 9 -$ANGDIR - 70 -0 - 9 -$TDUSRTIMER - 40 -0.0 - 9 -$DIMZIN - 70 -0 - 9 -$DIMDLE - 40 -0.0 - 9 -$DIMSCALE - 40 -1.0 - 9 -$DIMLUNIT - 70 -2 - 9 -$WORLDVIEW - 70 -1 - 9 -$USERI4 - 70 -0 - 9 -$SURFV - 70 -6 - 9 -$OSMODE - 70 -0 - 9 -$QTEXTMODE - 70 -0 - 9 -$LIMMAX - 10 -0.0 - 20 -0.0 - 9 -$DIMTXT - 40 -0.18 - 9 -$GRIDMODE - 70 -1 - 9 -$USERI5 - 70 -0 - 9 -$HANDLING - 70 -1 - 9 -$PDMODE - 70 -0 - 9 -$LIMCHECK - 70 -0 - 9 -$THICKNESS - 40 -0.0 - 9 -$DIMSE1 - 70 -0 - 9 -$DIMLIM - 70 -0 - 9 -$ATTMODE - 70 -1 - 9 -$LUPREC - 70 -4 - 9 -$PEXTMAX - 10 --100000000000000000000.0 - 20 --100000000000000000000.0 - 30 --100000000000000000000.0 - 9 -$PEXTMIN - 10 -100000000000000000000.0 - 20 -100000000000000000000.0 - 30 -100000000000000000000.0 - 9 -$PUCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$SPLINETYPE - 70 -6 - 9 -$TDINDWG - 40 -0.0 - 9 -$DIMSOXD - 70 -0 - 9 -$DIMLFAC - 40 -1.0 - 9 -$DIMSE2 - 70 -0 - 9 -$DIMTOH - 70 -1 - 9 -$CELTYPE - 6 -CONTINUOUS - 9 -$PLIMCHECK - 70 -0 - 9 -$PLINEWID - 40 -0.0 - 9 -$DIMSTYLE - 2 -STANDARD - 9 -$DIMTVP - 40 -0.0 - 9 -$DIMASO - 70 -1 - 9 -$DIMTM - 40 -0.0 - 9 -$DIMDLI - 40 -0.38 - 9 -$CECOLOR - 62 -256 - 9 -$PLIMMAX - 10 -210.0 - 20 -297.0 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$TREEDEPTH - 70 -3020 - 9 -$MAXACTVP - 70 -16 - 9 -$TDUPDATE - 40 -0.0 - 9 -$FILLETRAD - 40 -0.0 - 9 -$DIMCLRT - 70 -0 - 9 -$DIMALTD - 70 -2 - 9 -$DIMTIH - 70 -1 - 9 -$LTSCALE - 40 -1.0 - 9 -$PINSBASE - 10 -132.7054828367227515 - 20 -138.5934770742358353 - 30 -0.0 - 9 -$DIMEXE - 40 -0.18 - 9 -$USERR1 - 40 -0.0 - 9 -$ATTDIA - 70 -0 - 9 -$PDSIZE - 40 -0.0 - 9 -$DIMCLRD - 70 -0 - 9 -$DIMAUNIT - 70 -0 - 9 -$PSLTSCALE - 70 -0 - 9 -$PLINEGEN - 70 -1 - 9 -$SHADEDGE - 70 -3 - 9 -$USERR2 - 40 -0.0 - 9 -$COORDS - 70 -0 - 9 -$TDCREATE - 40 -0.0 - 9 -$DIMCLRE - 70 -0 - 9 -$DIMTOFL - 70 -0 - 9 -$DIMALTF - 40 -25.3999999999999986 - 9 -$DIMTOL - 70 -0 - 9 -$DIMTP - 40 -0.0 - 9 -$TEXTSTYLE - 7 -STANDARD - 9 -$AUNITS - 70 -0 - 9 -$USERR3 - 40 -0.0 - 9 -$DIMTIX - 70 -0 - 9 -$MIRRTEXT - 70 -1 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -7 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -MERGE - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -STANDARD - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PINS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PARAMS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -47 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -OUTLINE - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -48 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -INTERNALS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -0.75 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -0.18 - 42 -0.0625 - 43 -3.75 - 44 -0.18 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -0.18 -141 -2.5 -143 -0.03937007874016 -147 -0.09 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -MTEXT - 5 -49 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --73.5880492226093565 - 20 -26.1857174395327661 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4A -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --73.5880492226093565 - 20 --16.5642825604672197 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --73.5880492226093565 - 20 -62.1857174395328016 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --62.3380492226093637 - 20 -26.1857174395327661 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4D -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --62.3380492226093637 - 20 --16.5642825604672197 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4E -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --62.3380492226093637 - 20 -62.1857174395328016 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4F -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --51.0880492226093708 - 20 -26.1857174395327661 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -50 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --51.0880492226093708 - 20 --16.5642825604672197 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -51 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --51.0880492226093708 - 20 -62.1857174395328016 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -52 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --28.5880492226093708 - 20 -26.1857174395327661 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -53 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --28.5880492226093708 - 20 --16.5642825604672197 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -4 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -54 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --28.5880492226093708 - 20 -62.1857174395328016 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -55 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.8380492226093708 - 20 -26.1857174395327661 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -56 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.8380492226093708 - 20 --16.5642825604672197 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -57 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --39.8380492226093708 - 20 -62.1857174395328016 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -58 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.3380492226093708 - 20 -26.1857174395327661 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -59 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.3380492226093708 - 20 --16.5642825604672197 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -5 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5A -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --17.3380492226093708 - 20 -62.1857174395328016 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --6.0880492226093708 - 20 -26.1857174395327661 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --6.0880492226093708 - 20 --16.5642825604672197 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5D -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --6.0880492226093708 - 20 -62.1857174395328016 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5E -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -5.1619507773906292 - 20 -26.1857174395327661 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5F -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -5.1619507773906292 - 20 --16.5642825604672197 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -60 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -5.1619507773906292 - 20 -62.1857174395328016 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -61 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -16.4119507773906292 - 20 -26.1857174395327661 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -62 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -16.4119507773906292 - 20 --16.5642825604672197 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -63 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -16.4119507773906292 - 20 -62.1857174395328016 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -64 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -27.6619507773906221 - 20 -26.1857174395327661 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -65 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -27.6619507773906221 - 20 --16.5642825604672197 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -66 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -38.9119507773906221 - 20 --16.5642825604672197 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -4 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -67 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.8380492226093565 - 20 -26.1857174395327661 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -STEP\~TYPE\~3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -68 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.8380492226093565 - 20 --16.5642825604672197 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -STEP\~TYPE\~4 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -69 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.8380492226093565 - 20 -62.1857174395328016 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -5 - 72 -2 - 1 -STEP\~TYPE\~2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6A -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --98.3380492226094134 - 20 -17.1857174395327981 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-A - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --98.3380492226094134 - 20 --25.5642825604672268 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-A - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --98.3380492226094134 - 20 -53.1857174395327945 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-A - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6D -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --98.3380492226094134 - 20 -8.1857174395327696 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-B - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6E -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --98.3380492226094134 - 20 --34.564282560467241 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-B - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6F -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --98.3380492226094134 - 20 -44.1857174395327803 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-B - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -70 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --98.3380492226094134 - 20 --0.8142825604672375 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-C - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -71 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --98.3380492226094134 - 20 --43.5642825604672197 - 30 -0.0 - 40 -2.25 - 41 -2250.0 - 71 -4 - 72 -2 - 1 -phase-C - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -72 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.0880492226093565 - 20 -41.9357174395327945 - 30 -0.0 - 11 --69.088049222609385 - 21 -41.9357174395327945 - 31 -0.0 - 0 -LINE - 5 -73 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --69.088049222609385 - 20 -41.9357174395327945 - 30 -0.0 - 11 --66.8380492226093565 - 21 -46.4357174395327661 - 31 -0.0 - 0 -LINE - 5 -74 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --66.8380492226093565 - 20 -46.4357174395327661 - 30 -0.0 - 11 --46.588049222609385 - 21 -46.4357174395327661 - 31 -0.0 - 0 -LINE - 5 -75 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --46.588049222609385 - 20 -46.4357174395327661 - 30 -0.0 - 11 --44.3380492226093565 - 21 -41.9357174395327945 - 31 -0.0 - 0 -LINE - 5 -76 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --44.3380492226093565 - 20 -41.9357174395327945 - 30 -0.0 - 11 --24.0880492226093885 - 21 -41.9357174395327945 - 31 -0.0 - 0 -LINE - 5 -77 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --24.0880492226093885 - 20 -41.9357174395327945 - 30 -0.0 - 11 --21.8380492226093565 - 21 -46.4357174395327661 - 31 -0.0 - 0 -LINE - 5 -78 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --21.8380492226093565 - 20 -46.4357174395327661 - 30 -0.0 - 11 --1.5880492226093885 - 21 -46.4357174395327661 - 31 -0.0 - 0 -LINE - 5 -79 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --1.5880492226093885 - 20 -46.4357174395327661 - 30 -0.0 - 11 -0.6619507773906435 - 21 -41.9357174395327945 - 31 -0.0 - 0 -LINE - 5 -7A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -0.6619507773906435 - 20 -41.9357174395327945 - 30 -0.0 - 11 -20.911950777390615 - 21 -41.9357174395327945 - 31 -0.0 - 0 -LINE - 5 -7B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.0880492226093565 - 20 -55.4357174395327803 - 30 -0.0 - 11 --57.8380492226093921 - 21 -55.4357174395327803 - 31 -0.0 - 0 -LINE - 5 -7C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.8380492226093921 - 20 -55.4357174395327803 - 30 -0.0 - 11 --55.5880492226093565 - 21 -50.9357174395328016 - 31 -0.0 - 0 -LINE - 5 -7D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --55.5880492226093565 - 20 -50.9357174395328016 - 30 -0.0 - 11 --35.338049222609385 - 21 -50.9357174395328016 - 31 -0.0 - 0 -LINE - 5 -7E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.338049222609385 - 20 -50.9357174395328016 - 30 -0.0 - 11 --33.0880492226093565 - 21 -55.4357174395327803 - 31 -0.0 - 0 -LINE - 5 -7F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --33.0880492226093565 - 20 -55.4357174395327803 - 30 -0.0 - 11 --12.8380492226093885 - 21 -55.4357174395327803 - 31 -0.0 - 0 -LINE - 5 -80 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.8380492226093885 - 20 -55.4357174395327803 - 30 -0.0 - 11 --10.5880492226093565 - 21 -50.9357174395328016 - 31 -0.0 - 0 -LINE - 5 -81 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --10.5880492226093565 - 20 -50.9357174395328016 - 30 -0.0 - 11 -9.6619507773906079 - 21 -50.9357174395328016 - 31 -0.0 - 0 -LINE - 5 -82 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -9.6619507773906079 - 20 -50.9357174395328016 - 30 -0.0 - 11 -11.9119507773906435 - 21 -55.4357174395327803 - 31 -0.0 - 0 -LINE - 5 -83 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -11.9119507773906435 - 20 -55.4357174395327803 - 30 -0.0 - 11 -20.911950777390615 - 21 -55.4357174395327803 - 31 -0.0 - 0 -LINE - 5 -84 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --56.7130492226093637 - 20 -65.5607174395327661 - 30 -0.0 - 11 --56.7130492226093637 - 21 -37.4357174395327732 - 31 -0.0 - 0 -LINE - 5 -85 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --56.7130492226093637 - 20 --13.1892825604672534 - 30 -0.0 - 11 --56.7130492226093637 - 21 --50.314282560467241 - 31 -0.0 - 0 -LINE - 5 -86 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --56.7130492226093637 - 20 -29.5607174395327732 - 30 -0.0 - 11 --56.7130492226093637 - 21 --7.5642825604672552 - 31 -0.0 - 0 -LINE - 5 -87 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --45.4630492226093708 - 20 -65.5607174395327661 - 30 -0.0 - 11 --45.4630492226093708 - 21 -37.4357174395327732 - 31 -0.0 - 0 -LINE - 5 -88 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --45.4630492226093708 - 20 --13.1892825604672534 - 30 -0.0 - 11 --45.4630492226093708 - 21 --50.314282560467241 - 31 -0.0 - 0 -LINE - 5 -89 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --45.4630492226093708 - 20 -29.5607174395327732 - 30 -0.0 - 11 --45.4630492226093708 - 21 --7.5642825604672552 - 31 -0.0 - 0 -LINE - 5 -8A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --34.2130492226093708 - 20 -65.5607174395327661 - 30 -0.0 - 11 --34.2130492226093708 - 21 -37.4357174395327732 - 31 -0.0 - 0 -LINE - 5 -8B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --34.2130492226093708 - 20 --13.1892825604672534 - 30 -0.0 - 11 --34.2130492226093708 - 21 --50.314282560467241 - 31 -0.0 - 0 -LINE - 5 -8C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --34.2130492226093708 - 20 -29.5607174395327732 - 30 -0.0 - 11 --34.2130492226093708 - 21 --7.5642825604672552 - 31 -0.0 - 0 -LINE - 5 -8D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --22.9630492226093708 - 20 -65.5607174395327661 - 30 -0.0 - 11 --22.9630492226093708 - 21 -37.4357174395327732 - 31 -0.0 - 0 -LINE - 5 -8E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --22.9630492226093708 - 20 --13.1892825604672534 - 30 -0.0 - 11 --22.9630492226093708 - 21 --50.314282560467241 - 31 -0.0 - 0 -LINE - 5 -8F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --22.9630492226093708 - 20 -29.5607174395327732 - 30 -0.0 - 11 --22.9630492226093708 - 21 --7.5642825604672552 - 31 -0.0 - 0 -LINE - 5 -90 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --11.7130492226093725 - 20 -65.5607174395327661 - 30 -0.0 - 11 --11.7130492226093725 - 21 -37.4357174395327732 - 31 -0.0 - 0 -LINE - 5 -91 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --11.7130492226093725 - 20 --13.1892825604672534 - 30 -0.0 - 11 --11.7130492226093725 - 21 --50.314282560467241 - 31 -0.0 - 0 -LINE - 5 -92 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --11.7130492226093725 - 20 -29.5607174395327732 - 30 -0.0 - 11 --11.7130492226093725 - 21 --7.5642825604672552 - 31 -0.0 - 0 -LINE - 5 -93 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --0.4630492226093708 - 20 -65.5607174395327661 - 30 -0.0 - 11 --0.4630492226093708 - 21 -37.4357174395327732 - 31 -0.0 - 0 -LINE - 5 -94 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --0.4630492226093708 - 20 --13.1892825604672534 - 30 -0.0 - 11 --0.4630492226093708 - 21 --50.314282560467241 - 31 -0.0 - 0 -LINE - 5 -95 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --0.4630492226093708 - 20 -29.5607174395327732 - 30 -0.0 - 11 --0.4630492226093708 - 21 --7.5642825604672552 - 31 -0.0 - 0 -LINE - 5 -96 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -10.7869507773906292 - 20 -65.5607174395327661 - 30 -0.0 - 11 -10.7869507773906292 - 21 -37.4357174395327732 - 31 -0.0 - 0 -LINE - 5 -97 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -10.7869507773906292 - 20 --13.1892825604672534 - 30 -0.0 - 11 -10.7869507773906292 - 21 --50.314282560467241 - 31 -0.0 - 0 -LINE - 5 -98 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -10.7869507773906292 - 20 -29.5607174395327732 - 30 -0.0 - 11 -10.7869507773906292 - 21 --7.5642825604672552 - 31 -0.0 - 0 -LINE - 5 -99 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -22.0369507773906292 - 20 -65.5607174395327661 - 30 -0.0 - 11 -22.0369507773906292 - 21 -37.4357174395327732 - 31 -0.0 - 0 -LINE - 5 -9A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -22.0369507773906292 - 20 --13.1892825604672534 - 30 -0.0 - 11 -22.0369507773906292 - 21 --50.314282560467241 - 31 -0.0 - 0 -LINE - 5 -9B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -22.0369507773906292 - 20 -29.5607174395327732 - 30 -0.0 - 11 -22.0369507773906292 - 21 --7.5642825604672552 - 31 -0.0 - 0 -LINE - 5 -9C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -44.5369507773906221 - 20 --13.1892825604672534 - 30 -0.0 - 11 -44.5369507773906221 - 21 --50.314282560467241 - 31 -0.0 - 0 -LINE - 5 -9D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -33.2869507773906221 - 20 --13.1892825604672534 - 30 -0.0 - 11 -33.2869507773906221 - 21 --50.314282560467241 - 31 -0.0 - 0 -LINE - 5 -9E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -33.2869507773906221 - 20 -29.5607174395327732 - 30 -0.0 - 11 -33.2869507773906221 - 21 --7.5642825604672552 - 31 -0.0 - 0 -LINE - 5 -9F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --79.2130492226093565 - 20 -65.5607174395327661 - 30 -0.0 - 11 --79.2130492226093565 - 21 -37.4357174395327732 - 31 -0.0 - 0 -LINE - 5 -A0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --79.2130492226093565 - 20 --13.1892825604672534 - 30 -0.0 - 11 --79.2130492226093565 - 21 --50.314282560467241 - 31 -0.0 - 0 -LINE - 5 -A1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --79.2130492226093565 - 20 -29.5607174395327732 - 30 -0.0 - 11 --79.2130492226093565 - 21 --7.5642825604672552 - 31 -0.0 - 0 -LINE - 5 -A2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --67.9630492226093565 - 20 -65.5607174395327661 - 30 -0.0 - 11 --67.9630492226093565 - 21 -37.4357174395327732 - 31 -0.0 - 0 -LINE - 5 -A3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --67.9630492226093565 - 20 --13.1892825604672534 - 30 -0.0 - 11 --67.9630492226093565 - 21 --50.314282560467241 - 31 -0.0 - 0 -LINE - 5 -A4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --67.9630492226093565 - 20 -29.5607174395327732 - 30 -0.0 - 11 --67.9630492226093565 - 21 --7.5642825604672552 - 31 -0.0 - 0 -LINE - 5 -A5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.0880492226093565 - 20 -19.4357174395327874 - 30 -0.0 - 11 --69.088049222609385 - 21 -19.4357174395327874 - 31 -0.0 - 0 -LINE - 5 -A6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --69.088049222609385 - 20 -19.4357174395327874 - 30 -0.0 - 11 --66.8380492226093565 - 21 -14.9357174395327661 - 31 -0.0 - 0 -LINE - 5 -A7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --66.8380492226093565 - 20 -14.9357174395327661 - 30 -0.0 - 11 --46.588049222609385 - 21 -14.9357174395327661 - 31 -0.0 - 0 -LINE - 5 -A8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --46.588049222609385 - 20 -14.9357174395327661 - 30 -0.0 - 11 --44.3380492226093565 - 21 -19.4357174395327874 - 31 -0.0 - 0 -LINE - 5 -A9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --44.3380492226093565 - 20 -19.4357174395327874 - 30 -0.0 - 11 --35.338049222609385 - 21 -19.4357174395327874 - 31 -0.0 - 0 -LINE - 5 -AA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.338049222609385 - 20 -19.4357174395327874 - 30 -0.0 - 11 --33.0880492226093565 - 21 -14.9357174395327661 - 31 -0.0 - 0 -LINE - 5 -AB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --33.0880492226093565 - 20 -14.9357174395327661 - 30 -0.0 - 11 --12.8380492226093885 - 21 -14.9357174395327661 - 31 -0.0 - 0 -LINE - 5 -AC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.8380492226093885 - 20 -14.9357174395327661 - 30 -0.0 - 11 --10.5880492226093565 - 21 -19.4357174395327874 - 31 -0.0 - 0 -LINE - 5 -AD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --10.5880492226093565 - 20 -19.4357174395327874 - 30 -0.0 - 11 --1.5880492226093885 - 21 -19.4357174395327874 - 31 -0.0 - 0 -LINE - 5 -AE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --1.5880492226093885 - 20 -19.4357174395327874 - 30 -0.0 - 11 -0.6619507773906435 - 21 -14.9357174395327661 - 31 -0.0 - 0 -LINE - 5 -AF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -0.6619507773906435 - 20 -14.9357174395327661 - 30 -0.0 - 11 -20.911950777390615 - 21 -14.9357174395327661 - 31 -0.0 - 0 -LINE - 5 -B0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.911950777390615 - 20 -14.9357174395327661 - 30 -0.0 - 11 -23.1619507773906363 - 21 -19.4357174395327874 - 31 -0.0 - 0 -LINE - 5 -B1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.1619507773906363 - 20 -19.4357174395327874 - 30 -0.0 - 11 -32.1619507773906221 - 21 -19.4357174395327874 - 31 -0.0 - 0 -LINE - 5 -B2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.0880492226093565 - 20 -5.9357174395327785 - 30 -0.0 - 11 --69.088049222609385 - 21 -5.9357174395327785 - 31 -0.0 - 0 -LINE - 5 -B3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --69.088049222609385 - 20 -5.9357174395327785 - 30 -0.0 - 11 --66.8380492226093565 - 21 -10.4357174395327821 - 31 -0.0 - 0 -LINE - 5 -B4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --66.8380492226093565 - 20 -10.4357174395327821 - 30 -0.0 - 11 --57.8380492226093921 - 21 -10.4357174395327821 - 31 -0.0 - 0 -LINE - 5 -B5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.8380492226093921 - 20 -10.4357174395327821 - 30 -0.0 - 11 --55.5880492226093565 - 21 -5.9357174395327785 - 31 -0.0 - 0 -LINE - 5 -B6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --55.5880492226093565 - 20 -5.9357174395327785 - 30 -0.0 - 11 --35.338049222609385 - 21 -5.9357174395327785 - 31 -0.0 - 0 -LINE - 5 -B7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.338049222609385 - 20 -5.9357174395327785 - 30 -0.0 - 11 --33.0880492226093565 - 21 -10.4357174395327821 - 31 -0.0 - 0 -LINE - 5 -B8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --33.0880492226093565 - 20 -10.4357174395327821 - 30 -0.0 - 11 --24.0880492226093885 - 21 -10.4357174395327821 - 31 -0.0 - 0 -LINE - 5 -B9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --24.0880492226093885 - 20 -10.4357174395327821 - 30 -0.0 - 11 --21.8380492226093565 - 21 -5.9357174395327785 - 31 -0.0 - 0 -LINE - 5 -BA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --21.8380492226093565 - 20 -5.9357174395327785 - 30 -0.0 - 11 --1.5880492226093885 - 21 -5.9357174395327785 - 31 -0.0 - 0 -LINE - 5 -BB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --1.5880492226093885 - 20 -5.9357174395327785 - 30 -0.0 - 11 -0.6619507773906435 - 21 -10.4357174395327821 - 31 -0.0 - 0 -LINE - 5 -BC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -0.6619507773906435 - 20 -10.4357174395327821 - 30 -0.0 - 11 -9.6619507773906079 - 21 -10.4357174395327821 - 31 -0.0 - 0 -LINE - 5 -BD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -9.6619507773906079 - 20 -10.4357174395327821 - 30 -0.0 - 11 -11.9119507773906435 - 21 -5.9357174395327785 - 31 -0.0 - 0 -LINE - 5 -BE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -11.9119507773906435 - 20 -5.9357174395327785 - 30 -0.0 - 11 -32.1619507773906221 - 21 -5.9357174395327785 - 31 -0.0 - 0 -LINE - 5 -BF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.0880492226093565 - 20 --3.0642825604672304 - 30 -0.0 - 11 --57.8380492226093921 - 21 --3.0642825604672304 - 31 -0.0 - 0 -LINE - 5 -C0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.8380492226093921 - 20 --3.0642825604672304 - 30 -0.0 - 11 --55.5880492226093565 - 21 -1.4357174395327537 - 31 -0.0 - 0 -LINE - 5 -C1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --55.5880492226093565 - 20 -1.4357174395327537 - 30 -0.0 - 11 --46.588049222609385 - 21 -1.4357174395327537 - 31 -0.0 - 0 -LINE - 5 -C2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --46.588049222609385 - 20 -1.4357174395327537 - 30 -0.0 - 11 --44.3380492226093565 - 21 --3.0642825604672304 - 31 -0.0 - 0 -LINE - 5 -C3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --44.3380492226093565 - 20 --3.0642825604672304 - 30 -0.0 - 11 --24.0880492226093885 - 21 --3.0642825604672304 - 31 -0.0 - 0 -LINE - 5 -C4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --24.0880492226093885 - 20 --3.0642825604672304 - 30 -0.0 - 11 --21.8380492226093565 - 21 -1.4357174395327537 - 31 -0.0 - 0 -LINE - 5 -C5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --21.8380492226093565 - 20 -1.4357174395327537 - 30 -0.0 - 11 --12.8380492226093885 - 21 -1.4357174395327537 - 31 -0.0 - 0 -LINE - 5 -C6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.8380492226093885 - 20 -1.4357174395327537 - 30 -0.0 - 11 --10.5880492226093565 - 21 --3.0642825604672304 - 31 -0.0 - 0 -LINE - 5 -C7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --10.5880492226093565 - 20 --3.0642825604672304 - 30 -0.0 - 11 -9.6619507773906079 - 21 --3.0642825604672304 - 31 -0.0 - 0 -LINE - 5 -C8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -9.6619507773906079 - 20 --3.0642825604672304 - 30 -0.0 - 11 -11.9119507773906435 - 21 -1.4357174395327537 - 31 -0.0 - 0 -LINE - 5 -C9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -11.9119507773906435 - 20 -1.4357174395327537 - 30 -0.0 - 11 -20.911950777390615 - 21 -1.4357174395327537 - 31 -0.0 - 0 -LINE - 5 -CA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.911950777390615 - 20 -1.4357174395327537 - 30 -0.0 - 11 -23.1619507773906363 - 21 --3.0642825604672304 - 31 -0.0 - 0 -LINE - 5 -CB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.1619507773906363 - 20 --3.0642825604672304 - 30 -0.0 - 11 -32.1619507773906221 - 21 --3.0642825604672304 - 31 -0.0 - 0 -LINE - 5 -CC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.0880492226093565 - 20 --23.314282560467241 - 30 -0.0 - 11 --57.8380492226093921 - 21 --23.314282560467241 - 31 -0.0 - 0 -LINE - 5 -CD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.8380492226093921 - 20 --23.314282560467241 - 30 -0.0 - 11 --55.5880492226093565 - 21 --27.814282560467241 - 31 -0.0 - 0 -LINE - 5 -CE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.0880492226093565 - 20 --36.8142825604672055 - 30 -0.0 - 11 --69.088049222609385 - 21 --36.8142825604672055 - 31 -0.0 - 0 -LINE - 5 -CF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --69.088049222609385 - 20 --36.8142825604672055 - 30 -0.0 - 11 --66.8380492226093565 - 21 --32.3142825604672339 - 31 -0.0 - 0 -LINE - 5 -D0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --66.8380492226093565 - 20 --32.3142825604672339 - 30 -0.0 - 11 --35.338049222609385 - 21 --32.3142825604672339 - 31 -0.0 - 0 -LINE - 5 -D1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --35.338049222609385 - 20 --32.3142825604672339 - 30 -0.0 - 11 --33.0880492226093565 - 21 --36.8142825604672055 - 31 -0.0 - 0 -LINE - 5 -D2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.0880492226093565 - 20 --45.814282560467241 - 30 -0.0 - 11 --46.588049222609385 - 21 --45.814282560467241 - 31 -0.0 - 0 -LINE - 5 -D3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --46.588049222609385 - 20 --45.814282560467241 - 30 -0.0 - 11 --44.3380492226093565 - 21 --41.3142825604672339 - 31 -0.0 - 0 -LINE - 5 -D4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --44.3380492226093565 - 20 --41.3142825604672339 - 30 -0.0 - 11 --12.8380492226093885 - 21 --41.3142825604672339 - 31 -0.0 - 0 -LINE - 5 -D5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.8380492226093885 - 20 --41.3142825604672339 - 30 -0.0 - 11 --10.5880492226093565 - 21 --45.814282560467241 - 31 -0.0 - 0 -LINE - 5 -D6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --10.5880492226093565 - 20 --45.814282560467241 - 30 -0.0 - 11 -20.911950777390615 - 21 --45.814282560467241 - 31 -0.0 - 0 -LINE - 5 -D7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.911950777390615 - 20 --45.814282560467241 - 30 -0.0 - 11 -23.1619507773906363 - 21 --41.3142825604672339 - 31 -0.0 - 0 -LINE - 5 -D8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -23.1619507773906363 - 20 --41.3142825604672339 - 30 -0.0 - 11 -43.4119507773906221 - 21 --41.3142825604672339 - 31 -0.0 - 0 -LINE - 5 -D9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --33.0880492226093565 - 20 --36.8142825604672055 - 30 -0.0 - 11 --1.5880492226093885 - 21 --36.8142825604672055 - 31 -0.0 - 0 -LINE - 5 -DA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --1.5880492226093885 - 20 --36.8142825604672055 - 30 -0.0 - 11 -0.6619507773906435 - 21 --32.3142825604672339 - 31 -0.0 - 0 -LINE - 5 -DB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -0.6619507773906435 - 20 --32.3142825604672339 - 30 -0.0 - 11 -32.1619507773906221 - 21 --32.3142825604672339 - 31 -0.0 - 0 -LINE - 5 -DC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -32.1619507773906221 - 20 --32.3142825604672339 - 30 -0.0 - 11 -34.4119507773906435 - 21 --36.8142825604672055 - 31 -0.0 - 0 -LINE - 5 -DD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -34.4119507773906435 - 20 --36.8142825604672055 - 30 -0.0 - 11 -43.4119507773906221 - 21 --36.8142825604672055 - 31 -0.0 - 0 -LINE - 5 -DE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --55.5880492226093565 - 20 --27.814282560467241 - 30 -0.0 - 11 --24.0880492226093885 - 21 --27.814282560467241 - 31 -0.0 - 0 -LINE - 5 -DF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --24.0880492226093885 - 20 --27.814282560467241 - 30 -0.0 - 11 --21.8380492226093565 - 21 --23.314282560467241 - 31 -0.0 - 0 -LINE - 5 -E0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --21.8380492226093565 - 20 --23.314282560467241 - 30 -0.0 - 11 -9.6619507773906079 - 21 --23.314282560467241 - 31 -0.0 - 0 -LINE - 5 -E1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -9.6619507773906079 - 20 --23.314282560467241 - 30 -0.0 - 11 -11.9119507773906435 - 21 --27.814282560467241 - 31 -0.0 - 0 -LINE - 5 -E2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -11.9119507773906435 - 20 --27.814282560467241 - 30 -0.0 - 11 -43.4119507773906221 - 21 --27.814282560467241 - 31 -0.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -E3 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -E3 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -E5 - 3 -HIDETEXT -350 -E4 - 0 -DICTIONARYVAR - 5 -E4 -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -E5 -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/hal/images/hal_stepgen_type5_10.dxf b/docs/src/hal/images/hal_stepgen_type5_10.dxf deleted file mode 100644 index a69cf0d9684..00000000000 --- a/docs/src/hal/images/hal_stepgen_type5_10.dxf +++ /dev/null @@ -1,12652 +0,0 @@ -999 -dxflib 2.0.4.8 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$USERR4 - 40 -0.0 - 9 -$AXISUNIT - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMTAD - 70 -0 - 9 -$VISRETAIN - 70 -0 - 9 -$TILEMODE - 70 -1 - 9 -$SHADEDIF - 70 -70 - 9 -$USERR5 - 40 -0.0 - 9 -$UCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$ATTREQ - 70 -1 - 9 -$CHAMFERA - 40 -0.0 - 9 -$MENU - 1 -acad - 9 -$CLAYER - 8 -0 - 9 -$DIMASZ - 40 -0.18 - 9 -$GRIDUNIT - 10 -0.0 - 20 -0.0 - 9 -$DIMADEC - 70 -0 - 9 -$UCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$CHAMFERB - 40 -0.0 - 9 -$TRACEWID - 40 -0.05 - 9 -$REGENMODE - 70 -1 - 9 -$ORTHOMODE - 70 -0 - 9 -$EXTMIN - 10 --42.8607620000000011 - 20 --10.4317499999999992 - 30 -0.0 - 9 -$DIMGAP - 40 -0.09 - 9 -$PUCSYDIR - 10 -0.0 - 20 -1.0 - 30 -0.0 - 9 -$ANGBASE - 50 -0.0 - 9 -$USRTIMER - 70 -1 - 9 -$SKETCHINC - 40 -0.1 - 9 -$DIMTFAC - 40 -1.0 - 9 -$DIMSAH - 70 -0 - 9 -$DIMALT - 70 -0 - 9 -$DIMSHO - 70 -1 - 9 -$PUCSXDIR - 10 -1.0 - 20 -0.0 - 30 -0.0 - 9 -$SURFTYPE - 70 -6 - 9 -$SPLFRAME - 70 -0 - 9 -$AXISMODE - 70 -0 - 9 -$DIMTSZ - 40 -0.0 - 9 -$LIMMIN - 10 -0.0 - 20 -0.0 - 9 -$SPLINESEGS - 70 -8 - 9 -$AUPREC - 70 -0 - 9 -$LUNITS - 70 -2 - 9 -$DWGCODEPAGE - 3 -dos850 - 9 -$SURFTAB1 - 70 -6 - 9 -$BLIPMODE - 70 -1 - 9 -$UNITMODE - 70 -0 - 9 -$USERI1 - 70 -0 - 9 -$SURFTAB2 - 70 -6 - 9 -$SKPOLY - 70 -0 - 9 -$ELEVATION - 40 -0.0 - 9 -$DIMCEN - 40 -0.09 - 9 -$DIMRND - 40 -0.0 - 9 -$INSBASE - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$DIMEXO - 40 -0.0625 - 9 -$INSUNITS - 70 -4 - 9 -$USERI2 - 70 -0 - 9 -$UCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$PELEVATION - 40 -0.0 - 9 -$TEXTSIZE - 40 -0.2 - 9 -$DRAGMODE - 70 -2 - 9 -$FILLMODE - 70 -1 - 9 -$EXTMAX - 10 --31.0917379999999994 - 20 --4.0182500000000001 - 30 -0.0 - 9 -$USERI3 - 70 -0 - 9 -$SURFU - 70 -6 - 9 -$ANGDIR - 70 -0 - 9 -$TDUSRTIMER - 40 -0.0 - 9 -$DIMZIN - 70 -0 - 9 -$DIMDLE - 40 -0.0 - 9 -$DIMSCALE - 40 -1.0 - 9 -$DIMLUNIT - 70 -2 - 9 -$WORLDVIEW - 70 -1 - 9 -$USERI4 - 70 -0 - 9 -$SURFV - 70 -6 - 9 -$OSMODE - 70 -0 - 9 -$QTEXTMODE - 70 -0 - 9 -$LIMMAX - 10 -0.0 - 20 -0.0 - 9 -$DIMTXT - 40 -0.18 - 9 -$GRIDMODE - 70 -1 - 9 -$USERI5 - 70 -0 - 9 -$HANDLING - 70 -1 - 9 -$PDMODE - 70 -0 - 9 -$LIMCHECK - 70 -0 - 9 -$THICKNESS - 40 -0.0 - 9 -$DIMSE1 - 70 -0 - 9 -$DIMLIM - 70 -0 - 9 -$ATTMODE - 70 -1 - 9 -$LUPREC - 70 -4 - 9 -$PEXTMAX - 10 --100000000000000000000.0 - 20 --100000000000000000000.0 - 30 --100000000000000000000.0 - 9 -$PEXTMIN - 10 -100000000000000000000.0 - 20 -100000000000000000000.0 - 30 -100000000000000000000.0 - 9 -$PUCSORG - 10 -0.0 - 20 -0.0 - 30 -0.0 - 9 -$SPLINETYPE - 70 -6 - 9 -$TDINDWG - 40 -0.0 - 9 -$DIMSOXD - 70 -0 - 9 -$DIMLFAC - 40 -1.0 - 9 -$DIMSE2 - 70 -0 - 9 -$DIMTOH - 70 -1 - 9 -$CELTYPE - 6 -CONTINUOUS - 9 -$PLIMCHECK - 70 -0 - 9 -$PLINEWID - 40 -0.0 - 9 -$DIMSTYLE - 2 -STANDARD - 9 -$DIMTVP - 40 -0.0 - 9 -$DIMASO - 70 -1 - 9 -$DIMTM - 40 -0.0 - 9 -$DIMDLI - 40 -0.38 - 9 -$CECOLOR - 62 -256 - 9 -$PLIMMAX - 10 -210.0 - 20 -297.0 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$TREEDEPTH - 70 -3020 - 9 -$MAXACTVP - 70 -16 - 9 -$TDUPDATE - 40 -0.0 - 9 -$FILLETRAD - 40 -0.0 - 9 -$DIMCLRT - 70 -0 - 9 -$DIMALTD - 70 -2 - 9 -$DIMTIH - 70 -1 - 9 -$LTSCALE - 40 -1.0 - 9 -$PINSBASE - 10 -142.4359294605603168 - 20 -157.8513315197032512 - 30 -0.0 - 9 -$DIMEXE - 40 -0.18 - 9 -$USERR1 - 40 -0.0 - 9 -$ATTDIA - 70 -0 - 9 -$PDSIZE - 40 -0.0 - 9 -$DIMCLRD - 70 -0 - 9 -$DIMAUNIT - 70 -0 - 9 -$PSLTSCALE - 70 -0 - 9 -$PLINEGEN - 70 -1 - 9 -$SHADEDGE - 70 -3 - 9 -$USERR2 - 40 -0.0 - 9 -$COORDS - 70 -0 - 9 -$TDCREATE - 40 -0.0 - 9 -$DIMCLRE - 70 -0 - 9 -$DIMTOFL - 70 -0 - 9 -$DIMALTF - 40 -25.3999999999999986 - 9 -$DIMTOL - 70 -0 - 9 -$DIMTP - 40 -0.0 - 9 -$TEXTSTYLE - 7 -STANDARD - 9 -$AUNITS - 70 -0 - 9 -$USERR3 - 40 -0.0 - 9 -$DIMTIX - 70 -0 - 9 -$MIRRTEXT - 70 -1 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -7 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -1 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -MERGE - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -STANDARD - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -25 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PINS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -PARAMS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -47 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -OUTLINE - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -LAYER - 5 -48 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -INTERNALS - 70 -0 - 62 -7 - 6 -CONTINUOUS -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -0.75 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -0.18 - 42 -0.0625 - 43 -3.75 - 44 -0.18 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -0.18 -141 -2.5 -143 -0.03937007874016 -147 -0.09 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -MTEXT - 5 -49 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --105.6234294145320405 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4A -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --105.6234294145320405 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.623429414532005 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --105.6234294145320405 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4D -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.623429414532005 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4E -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --12.623429414532005 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4F -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --98.1234294145320405 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -50 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --98.1234294145320405 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -51 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --5.123429414532005 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -52 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --98.1234294145320405 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -53 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --5.123429414532005 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -54 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --5.123429414532005 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -55 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --90.6234294145320405 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -56 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --90.6234294145320405 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -57 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.376570585467995 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -58 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --90.6234294145320405 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -59 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.376570585467995 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5A -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -2.376570585467995 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --75.6234294145320405 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --75.6234294145320405 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5D -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -17.376570585467995 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5E -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --75.6234294145320405 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5F -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -17.376570585467995 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -4 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -60 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -17.376570585467995 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -4 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -61 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --83.1234294145320405 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -62 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --83.1234294145320405 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -63 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -9.876570585467995 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -64 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --83.1234294145320405 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -65 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -9.876570585467995 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -66 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -9.876570585467995 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -67 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --68.1234294145320405 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -68 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --68.1234294145320405 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -69 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.876570585467995 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6A -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --68.1234294145320405 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -1 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.876570585467995 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -5 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -24.876570585467995 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -5 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6D -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.6234294145320476 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6E -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.6234294145320476 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6F -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -32.376570585467995 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -70 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --60.6234294145320476 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -2 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -71 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -32.376570585467995 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -6 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -72 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -32.376570585467995 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -6 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -73 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --53.1234294145320476 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -74 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --53.1234294145320476 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -75 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -39.876570585467995 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -76 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --53.1234294145320476 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -3 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -77 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -39.876570585467995 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -7 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -78 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -39.876570585467995 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -7 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -79 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --45.6234294145320476 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7A -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --45.6234294145320476 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -47.376570585467995 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --45.6234294145320476 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7D -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -47.376570585467995 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7E -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -47.376570585467995 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -0 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7F -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --119.1234294145320405 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -STEP\~TYPE\~5 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -80 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --119.1234294145320405 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -STEP\~TYPE\~6 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -81 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --119.1234294145320405 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -STEP\~TYPE\~7 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -82 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.1234294145319836 - 20 -36.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -STEP\~TYPE\~8 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -83 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.1234294145319836 - 20 -3.0236684802967408 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -STEP\~TYPE\~9 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -84 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --26.1234294145319836 - 20 --29.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -5 - 72 -2 - 1 -STEP\~TYPE\~10 - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -85 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --122.1234294145320689 - 20 -30.0236684802967559 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-A - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -86 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --122.1234294145320689 - 20 --2.9763315197032503 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-A - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -87 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --122.1234294145320689 - 20 --35.9763315197032512 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-A - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -88 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.1234294145320263 - 20 -30.0236684802967559 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-A - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -89 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.1234294145320263 - 20 --2.9763315197032503 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-A - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8A -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.1234294145320263 - 20 --35.9763315197032512 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-A - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --122.1234294145320689 - 20 -24.0236684802967488 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-B - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --122.1234294145320689 - 20 --8.9763315197032547 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-B - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8D -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --122.1234294145320689 - 20 --41.9763315197032583 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-B - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8E -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.1234294145320263 - 20 -24.0236684802967488 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-B - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8F -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.1234294145320263 - 20 --8.9763315197032547 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-B - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -90 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.1234294145320263 - 20 --41.9763315197032583 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-B - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -91 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --122.1234294145320689 - 20 -18.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-C - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -92 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --122.1234294145320689 - 20 --14.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-C - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -93 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --122.1234294145320689 - 20 --47.9763315197032654 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-C - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -94 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.1234294145320263 - 20 -18.0236684802967417 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-C - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -95 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.1234294145320263 - 20 --14.9763315197032476 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-C - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -96 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.1234294145320263 - 20 --47.9763315197032654 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-C - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -97 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --122.1234294145320689 - 20 -12.0236684802967488 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-D - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -98 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --122.1234294145320689 - 20 --20.9763315197032512 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-D - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -99 -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --122.1234294145320689 - 20 --53.9763315197032441 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-D - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -9A -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.1234294145320263 - 20 -12.0236684802967488 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-D - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -9B -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.1234294145320263 - 20 --20.9763315197032512 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-D - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -9C -100 -AcDbEntity -100 -AcDbMText - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --29.1234294145320263 - 20 --53.9763315197032441 - 30 -0.0 - 40 -1.5 - 41 -1500.0 - 71 -4 - 72 -2 - 1 -phase-D - 7 -STYLE1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -9D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --94.3734294145320405 - 20 -5.273668480296748 - 30 -0.0 - 11 --94.3734294145320405 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -9E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --94.3734294145320405 - 20 --27.7263315197032405 - 30 -0.0 - 11 --94.3734294145320405 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -9F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --1.373429414532005 - 20 -5.273668480296748 - 30 -0.0 - 11 --1.373429414532005 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -A0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --1.373429414532005 - 20 --27.7263315197032405 - 30 -0.0 - 11 --1.373429414532005 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -A1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --1.373429414532005 - 20 -38.2736684802967488 - 30 -0.0 - 11 --1.373429414532005 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -A2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --94.3734294145320405 - 20 -38.2736684802967488 - 30 -0.0 - 11 --94.3734294145320405 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -A3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --86.8734294145320405 - 20 -5.273668480296748 - 30 -0.0 - 11 --86.8734294145320405 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -A4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --86.8734294145320405 - 20 --27.7263315197032405 - 30 -0.0 - 11 --86.8734294145320405 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -A5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -6.126570585467995 - 20 -5.273668480296748 - 30 -0.0 - 11 -6.126570585467995 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -A6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -6.126570585467995 - 20 --27.7263315197032405 - 30 -0.0 - 11 -6.126570585467995 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -A7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -6.126570585467995 - 20 -38.2736684802967488 - 30 -0.0 - 11 -6.126570585467995 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -A8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --86.8734294145320405 - 20 -38.2736684802967488 - 30 -0.0 - 11 --86.8734294145320405 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -A9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --79.3734294145320405 - 20 -5.273668480296748 - 30 -0.0 - 11 --79.3734294145320405 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -AA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --79.3734294145320405 - 20 --27.7263315197032405 - 30 -0.0 - 11 --79.3734294145320405 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -AB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -13.626570585467995 - 20 -5.273668480296748 - 30 -0.0 - 11 -13.626570585467995 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -AC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -13.626570585467995 - 20 --27.7263315197032405 - 30 -0.0 - 11 -13.626570585467995 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -AD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -13.626570585467995 - 20 -38.2736684802967488 - 30 -0.0 - 11 -13.626570585467995 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -AE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --79.3734294145320405 - 20 -38.2736684802967488 - 30 -0.0 - 11 --79.3734294145320405 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -AF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --71.8734294145320405 - 20 -5.273668480296748 - 30 -0.0 - 11 --71.8734294145320405 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -B0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --71.8734294145320405 - 20 --27.7263315197032405 - 30 -0.0 - 11 --71.8734294145320405 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -B1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -21.126570585467995 - 20 -5.273668480296748 - 30 -0.0 - 11 -21.126570585467995 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -B2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -21.126570585467995 - 20 --27.7263315197032405 - 30 -0.0 - 11 -21.126570585467995 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -B3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -21.126570585467995 - 20 -38.2736684802967488 - 30 -0.0 - 11 -21.126570585467995 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -B4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --71.8734294145320405 - 20 -38.2736684802967488 - 30 -0.0 - 11 --71.8734294145320405 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -B5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --64.3734294145320405 - 20 -5.273668480296748 - 30 -0.0 - 11 --64.3734294145320405 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -B6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --64.3734294145320405 - 20 --27.7263315197032405 - 30 -0.0 - 11 --64.3734294145320405 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -B7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -28.626570585467995 - 20 -5.273668480296748 - 30 -0.0 - 11 -28.626570585467995 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -B8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -28.626570585467995 - 20 --27.7263315197032405 - 30 -0.0 - 11 -28.626570585467995 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -B9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -28.626570585467995 - 20 -38.2736684802967488 - 30 -0.0 - 11 -28.626570585467995 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -BA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --64.3734294145320405 - 20 -38.2736684802967488 - 30 -0.0 - 11 --64.3734294145320405 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -BB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --56.8734294145320476 - 20 -5.273668480296748 - 30 -0.0 - 11 --56.8734294145320476 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -BC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --56.8734294145320476 - 20 --27.7263315197032405 - 30 -0.0 - 11 --56.8734294145320476 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -BD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -36.126570585467995 - 20 -5.273668480296748 - 30 -0.0 - 11 -36.126570585467995 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -BE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -36.126570585467995 - 20 --27.7263315197032405 - 30 -0.0 - 11 -36.126570585467995 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -BF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -36.126570585467995 - 20 -38.2736684802967488 - 30 -0.0 - 11 -36.126570585467995 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -C0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --56.8734294145320476 - 20 -38.2736684802967488 - 30 -0.0 - 11 --56.8734294145320476 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -C1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --49.3734294145320476 - 20 -5.273668480296748 - 30 -0.0 - 11 --49.3734294145320476 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -C2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --49.3734294145320476 - 20 --27.7263315197032405 - 30 -0.0 - 11 --49.3734294145320476 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -C3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -43.626570585467995 - 20 -5.273668480296748 - 30 -0.0 - 11 -43.626570585467995 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -C4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -43.626570585467995 - 20 --27.7263315197032405 - 30 -0.0 - 11 -43.626570585467995 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -C5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -43.626570585467995 - 20 -38.2736684802967488 - 30 -0.0 - 11 -43.626570585467995 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -C6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --49.3734294145320476 - 20 -38.2736684802967488 - 30 -0.0 - 11 --49.3734294145320476 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -C7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --41.8734294145320476 - 20 -5.273668480296748 - 30 -0.0 - 11 --41.8734294145320476 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -C8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --41.8734294145320476 - 20 --27.7263315197032405 - 30 -0.0 - 11 --41.8734294145320476 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -C9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -51.126570585467995 - 20 -5.273668480296748 - 30 -0.0 - 11 -51.126570585467995 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -CA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -51.126570585467995 - 20 --27.7263315197032405 - 30 -0.0 - 11 -51.126570585467995 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -CB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 -51.126570585467995 - 20 -38.2736684802967488 - 30 -0.0 - 11 -51.126570585467995 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -CC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --41.8734294145320476 - 20 -38.2736684802967488 - 30 -0.0 - 11 --41.8734294145320476 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -CD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --109.3734294145320405 - 20 -5.273668480296748 - 30 -0.0 - 11 --109.3734294145320405 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -CE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --109.3734294145320405 - 20 --27.7263315197032405 - 30 -0.0 - 11 --109.3734294145320405 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -CF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --16.373429414532005 - 20 -5.273668480296748 - 30 -0.0 - 11 --16.373429414532005 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -D0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --16.373429414532005 - 20 --27.7263315197032405 - 30 -0.0 - 11 --16.373429414532005 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -D1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --16.373429414532005 - 20 -38.2736684802967488 - 30 -0.0 - 11 --16.373429414532005 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -D2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --109.3734294145320405 - 20 -38.2736684802967488 - 30 -0.0 - 11 --109.3734294145320405 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -D3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --101.8734294145320405 - 20 -5.273668480296748 - 30 -0.0 - 11 --101.8734294145320405 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -D4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --101.8734294145320405 - 20 --27.7263315197032405 - 30 -0.0 - 11 --101.8734294145320405 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -D5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --8.873429414532005 - 20 -5.273668480296748 - 30 -0.0 - 11 --8.873429414532005 - 21 --23.9763315197032405 - 31 -0.0 - 0 -LINE - 5 -D6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --8.873429414532005 - 20 --27.7263315197032405 - 30 -0.0 - 11 --8.873429414532005 - 21 --56.9763315197032583 - 31 -0.0 - 0 -LINE - 5 -D7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --8.873429414532005 - 20 -38.2736684802967488 - 30 -0.0 - 11 --8.873429414532005 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -D8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -CONTINUOUS - 10 --101.8734294145320405 - 20 -38.2736684802967488 - 30 -0.0 - 11 --101.8734294145320405 - 21 -9.0236684802967488 - 31 -0.0 - 0 -LINE - 5 -D9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --108.6234294145319836 - 20 -31.5236684802967488 - 30 -0.0 - 11 --102.6234294145320121 - 21 -31.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -DA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --102.6234294145320121 - 20 -31.5236684802967488 - 30 -0.0 - 11 --101.1234294145319836 - 21 -28.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -DB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --101.1234294145319836 - 20 -28.5236684802967417 - 30 -0.0 - 11 --80.1234294145320121 - 21 -28.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -DC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.1234294145320121 - 20 -28.5236684802967417 - 30 -0.0 - 11 --78.6234294145319836 - 21 -31.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -DD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.6234294145319836 - 20 -31.5236684802967488 - 30 -0.0 - 11 --72.6234294145320121 - 21 -31.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -DE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --72.6234294145320121 - 20 -31.5236684802967488 - 30 -0.0 - 11 --71.1234294145319836 - 21 -28.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -DF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.1234294145319836 - 20 -28.5236684802967417 - 30 -0.0 - 11 --50.123429414532005 - 21 -28.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -E0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --50.123429414532005 - 20 -28.5236684802967417 - 30 -0.0 - 11 --48.6234294145319836 - 21 -31.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -E1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.6234294145319836 - 20 -31.5236684802967488 - 30 -0.0 - 11 --42.623429414532005 - 21 -31.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -E2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --108.6234294145319836 - 20 -16.5236684802967488 - 30 -0.0 - 11 --95.1234294145320121 - 21 -16.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -E3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --108.6234294145319836 - 20 -10.5236684802967417 - 30 -0.0 - 11 --87.6234294145320121 - 21 -10.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -E4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --108.6234294145319836 - 20 -22.5236684802967524 - 30 -0.0 - 11 --102.6234294145320121 - 21 -22.5236684802967524 - 31 -0.0 - 0 -LINE - 5 -E5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --95.1234294145320121 - 20 -16.5236684802967488 - 30 -0.0 - 11 --93.6234294145319836 - 21 -19.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -E6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --87.6234294145320121 - 20 -10.5236684802967417 - 30 -0.0 - 11 --86.1234294145319836 - 21 -13.5236684802967453 - 31 -0.0 - 0 -LINE - 5 -E7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --102.6234294145320121 - 20 -22.5236684802967524 - 30 -0.0 - 11 --101.1234294145319836 - 21 -25.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -E8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.6234294145319836 - 20 -19.5236684802967488 - 30 -0.0 - 11 --87.6234294145320121 - 21 -19.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -E9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1234294145319836 - 20 -13.5236684802967453 - 30 -0.0 - 11 --80.1234294145320121 - 21 -13.5236684802967453 - 31 -0.0 - 0 -LINE - 5 -EA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --101.1234294145319836 - 20 -25.5236684802967417 - 30 -0.0 - 11 --95.1234294145320121 - 21 -25.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -EB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --87.6234294145320121 - 20 -19.5236684802967488 - 30 -0.0 - 11 --86.1234294145319836 - 21 -16.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -EC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.1234294145320121 - 20 -13.5236684802967453 - 30 -0.0 - 11 --78.6234294145319836 - 21 -10.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -ED -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --95.1234294145320121 - 20 -25.5236684802967417 - 30 -0.0 - 11 --93.6234294145319836 - 21 -22.5236684802967524 - 31 -0.0 - 0 -LINE - 5 -EE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1234294145319836 - 20 -16.5236684802967488 - 30 -0.0 - 11 --65.1234294145320121 - 21 -16.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -EF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.6234294145319836 - 20 -10.5236684802967417 - 30 -0.0 - 11 --57.623429414532005 - 21 -10.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -F0 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.6234294145319836 - 20 -22.5236684802967524 - 30 -0.0 - 11 --72.6234294145320121 - 21 -22.5236684802967524 - 31 -0.0 - 0 -LINE - 5 -F1 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --65.1234294145320121 - 20 -16.5236684802967488 - 30 -0.0 - 11 --63.6234294145319836 - 21 -19.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -F2 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.623429414532005 - 20 -10.5236684802967417 - 30 -0.0 - 11 --56.1234294145319836 - 21 -13.5236684802967453 - 31 -0.0 - 0 -LINE - 5 -F3 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --72.6234294145320121 - 20 -22.5236684802967524 - 30 -0.0 - 11 --71.1234294145319836 - 21 -25.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -F4 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.6234294145319836 - 20 -19.5236684802967488 - 30 -0.0 - 11 --57.623429414532005 - 21 -19.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -F5 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --56.1234294145319836 - 20 -13.5236684802967453 - 30 -0.0 - 11 --50.123429414532005 - 21 -13.5236684802967453 - 31 -0.0 - 0 -LINE - 5 -F6 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.1234294145319836 - 20 -25.5236684802967417 - 30 -0.0 - 11 --65.1234294145320121 - 21 -25.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -F7 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.623429414532005 - 20 -19.5236684802967488 - 30 -0.0 - 11 --56.1234294145319836 - 21 -16.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -F8 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --50.123429414532005 - 20 -13.5236684802967453 - 30 -0.0 - 11 --48.6234294145319836 - 21 -10.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -F9 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --65.1234294145320121 - 20 -25.5236684802967417 - 30 -0.0 - 11 --63.6234294145319836 - 21 -22.5236684802967524 - 31 -0.0 - 0 -LINE - 5 -FA -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --56.1234294145319836 - 20 -16.5236684802967488 - 30 -0.0 - 11 --42.623429414532005 - 21 -16.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -FB -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.6234294145319836 - 20 -10.5236684802967417 - 30 -0.0 - 11 --42.623429414532005 - 21 -10.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -FC -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.6234294145319836 - 20 -22.5236684802967524 - 30 -0.0 - 11 --42.623429414532005 - 21 -22.5236684802967524 - 31 -0.0 - 0 -LINE - 5 -FD -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --8.1234294145320476 - 20 -28.5236684802967417 - 30 -0.0 - 11 -5.3765705854679311 - 21 -28.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -FE -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --8.1234294145320476 - 20 -25.5236684802967417 - 30 -0.0 - 11 -5.3765705854679311 - 21 -25.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -FF -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --101.1234294145319836 - 20 --40.4763315197032654 - 30 -0.0 - 11 --87.6234294145320121 - 21 --40.4763315197032654 - 31 -0.0 - 0 -LINE - 5 -100 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --101.1234294145319836 - 20 --46.4763315197032441 - 30 -0.0 - 11 --87.6234294145320121 - 21 --46.4763315197032441 - 31 -0.0 - 0 -LINE - 5 -101 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --101.1234294145319836 - 20 --13.4763315197032529 - 30 -0.0 - 11 --87.6234294145320121 - 21 --13.4763315197032529 - 31 -0.0 - 0 -LINE - 5 -102 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.6234294145319836 - 20 --52.4763315197032441 - 30 -0.0 - 11 --80.1234294145320121 - 21 --52.4763315197032441 - 31 -0.0 - 0 -LINE - 5 -103 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.6234294145319836 - 20 --19.4763315197032583 - 30 -0.0 - 11 --80.1234294145320121 - 21 --19.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -104 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.6234294145320476 - 20 -10.5236684802967417 - 30 -0.0 - 11 --2.1234294145320689 - 21 -10.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -105 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.6234294145320476 - 20 -19.5236684802967488 - 30 -0.0 - 11 --2.1234294145320689 - 21 -19.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -106 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --108.6234294145319836 - 20 --34.4763315197032583 - 30 -0.0 - 11 --95.1234294145320121 - 21 --34.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -107 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --108.6234294145319836 - 20 --7.4763315197032476 - 30 -0.0 - 11 --95.1234294145320121 - 21 --7.4763315197032476 - 31 -0.0 - 0 -LINE - 5 -108 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --108.6234294145319836 - 20 --1.4763315197032556 - 30 -0.0 - 11 --102.6234294145320121 - 21 --1.4763315197032556 - 31 -0.0 - 0 -LINE - 5 -109 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -5.3765705854679311 - 20 -28.5236684802967417 - 30 -0.0 - 11 -6.8765705854679524 - 21 -31.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -10A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -5.3765705854679311 - 20 -25.5236684802967417 - 30 -0.0 - 11 -6.8765705854679524 - 21 -22.5236684802967524 - 31 -0.0 - 0 -LINE - 5 -10B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --87.6234294145320121 - 20 --40.4763315197032654 - 30 -0.0 - 11 --86.1234294145319836 - 21 --43.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -10C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --87.6234294145320121 - 20 --46.4763315197032441 - 30 -0.0 - 11 --86.1234294145319836 - 21 --49.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -10D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --87.6234294145320121 - 20 --13.4763315197032529 - 30 -0.0 - 11 --86.1234294145319836 - 21 --16.4763315197032547 - 31 -0.0 - 0 -LINE - 5 -10E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.1234294145320121 - 20 --52.4763315197032441 - 30 -0.0 - 11 --78.6234294145319836 - 21 --55.4763315197032654 - 31 -0.0 - 0 -LINE - 5 -10F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.1234294145320121 - 20 --19.4763315197032583 - 30 -0.0 - 11 --78.6234294145319836 - 21 --22.4763315197032476 - 31 -0.0 - 0 -LINE - 5 -110 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --2.1234294145320689 - 20 -10.5236684802967417 - 30 -0.0 - 11 --0.6234294145320476 - 21 -13.5236684802967453 - 31 -0.0 - 0 -LINE - 5 -111 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --2.1234294145320689 - 20 -19.5236684802967488 - 30 -0.0 - 11 --0.6234294145320476 - 21 -16.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -112 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --95.1234294145320121 - 20 --34.4763315197032583 - 30 -0.0 - 11 --93.6234294145319836 - 21 --37.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -113 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --95.1234294145320121 - 20 --7.4763315197032476 - 30 -0.0 - 11 --93.6234294145319836 - 21 --10.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -114 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --102.6234294145320121 - 20 --1.4763315197032556 - 30 -0.0 - 11 --101.1234294145319836 - 21 --4.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -115 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -6.8765705854679524 - 20 -31.5236684802967488 - 30 -0.0 - 11 -20.3765705854679311 - 21 -31.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -116 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -6.8765705854679524 - 20 -22.5236684802967524 - 30 -0.0 - 11 -20.3765705854679311 - 21 -22.5236684802967524 - 31 -0.0 - 0 -LINE - 5 -117 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1234294145319836 - 20 --43.4763315197032512 - 30 -0.0 - 11 --72.6234294145320121 - 21 --43.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -118 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1234294145319836 - 20 --49.4763315197032583 - 30 -0.0 - 11 --72.6234294145320121 - 21 --49.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -119 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1234294145319836 - 20 --16.4763315197032547 - 30 -0.0 - 11 --72.6234294145320121 - 21 --16.4763315197032547 - 31 -0.0 - 0 -LINE - 5 -11A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.6234294145319836 - 20 --55.4763315197032654 - 30 -0.0 - 11 --65.1234294145320121 - 21 --55.4763315197032654 - 31 -0.0 - 0 -LINE - 5 -11B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.6234294145319836 - 20 --22.4763315197032476 - 30 -0.0 - 11 --65.1234294145320121 - 21 --22.4763315197032476 - 31 -0.0 - 0 -LINE - 5 -11C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --0.6234294145320476 - 20 -13.5236684802967453 - 30 -0.0 - 11 -12.8765705854679311 - 21 -13.5236684802967453 - 31 -0.0 - 0 -LINE - 5 -11D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --0.6234294145320476 - 20 -16.5236684802967488 - 30 -0.0 - 11 -12.8765705854679311 - 21 -16.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -11E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.6234294145319836 - 20 --37.4763315197032512 - 30 -0.0 - 11 --80.1234294145320121 - 21 --37.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -11F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.6234294145319836 - 20 --10.4763315197032512 - 30 -0.0 - 11 --80.1234294145320121 - 21 --10.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -120 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --101.1234294145319836 - 20 --4.4763315197032583 - 30 -0.0 - 11 --87.6234294145320121 - 21 --4.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -121 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.3765705854679311 - 20 -31.5236684802967488 - 30 -0.0 - 11 -21.8765705854679524 - 21 -28.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -122 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.3765705854679311 - 20 -22.5236684802967524 - 30 -0.0 - 11 -21.8765705854679524 - 21 -25.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -123 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --72.6234294145320121 - 20 --43.4763315197032512 - 30 -0.0 - 11 --71.1234294145319836 - 21 --40.4763315197032654 - 31 -0.0 - 0 -LINE - 5 -124 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --72.6234294145320121 - 20 --49.4763315197032583 - 30 -0.0 - 11 --71.1234294145319836 - 21 --46.4763315197032441 - 31 -0.0 - 0 -LINE - 5 -125 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --72.6234294145320121 - 20 --16.4763315197032547 - 30 -0.0 - 11 --71.1234294145319836 - 21 --13.4763315197032529 - 31 -0.0 - 0 -LINE - 5 -126 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --65.1234294145320121 - 20 --55.4763315197032654 - 30 -0.0 - 11 --63.6234294145319836 - 21 --52.4763315197032441 - 31 -0.0 - 0 -LINE - 5 -127 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --65.1234294145320121 - 20 --22.4763315197032476 - 30 -0.0 - 11 --63.6234294145319836 - 21 --19.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -128 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -12.8765705854679311 - 20 -13.5236684802967453 - 30 -0.0 - 11 -14.3765705854679524 - 21 -10.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -129 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -12.8765705854679311 - 20 -16.5236684802967488 - 30 -0.0 - 11 -14.3765705854679524 - 21 -19.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -12A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.1234294145320121 - 20 --37.4763315197032512 - 30 -0.0 - 11 --78.6234294145319836 - 21 --34.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -12B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --80.1234294145320121 - 20 --10.4763315197032512 - 30 -0.0 - 11 --78.6234294145319836 - 21 --7.4763315197032476 - 31 -0.0 - 0 -LINE - 5 -12C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --87.6234294145320121 - 20 --4.4763315197032583 - 30 -0.0 - 11 --86.1234294145319836 - 21 --1.4763315197032556 - 31 -0.0 - 0 -LINE - 5 -12D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -21.8765705854679524 - 20 -28.5236684802967417 - 30 -0.0 - 11 -35.3765705854679382 - 21 -28.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -12E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -21.8765705854679524 - 20 -25.5236684802967417 - 30 -0.0 - 11 -35.3765705854679382 - 21 -25.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -12F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.1234294145319836 - 20 --40.4763315197032654 - 30 -0.0 - 11 --57.623429414532005 - 21 --40.4763315197032654 - 31 -0.0 - 0 -LINE - 5 -130 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.1234294145319836 - 20 --46.4763315197032441 - 30 -0.0 - 11 --57.623429414532005 - 21 --46.4763315197032441 - 31 -0.0 - 0 -LINE - 5 -131 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.1234294145319836 - 20 --13.4763315197032529 - 30 -0.0 - 11 --57.623429414532005 - 21 --13.4763315197032529 - 31 -0.0 - 0 -LINE - 5 -132 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.6234294145319836 - 20 --52.4763315197032441 - 30 -0.0 - 11 --50.123429414532005 - 21 --52.4763315197032441 - 31 -0.0 - 0 -LINE - 5 -133 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.6234294145319836 - 20 --19.4763315197032583 - 30 -0.0 - 11 --50.123429414532005 - 21 --19.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -134 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.3765705854679524 - 20 -10.5236684802967417 - 30 -0.0 - 11 -27.8765705854679382 - 21 -10.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -135 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.3765705854679524 - 20 -19.5236684802967488 - 30 -0.0 - 11 -27.8765705854679382 - 21 -19.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -136 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.6234294145319836 - 20 --34.4763315197032583 - 30 -0.0 - 11 --65.1234294145320121 - 21 --34.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -137 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --78.6234294145319836 - 20 --7.4763315197032476 - 30 -0.0 - 11 --65.1234294145320121 - 21 --7.4763315197032476 - 31 -0.0 - 0 -LINE - 5 -138 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --86.1234294145319836 - 20 --1.4763315197032556 - 30 -0.0 - 11 --72.6234294145320121 - 21 --1.4763315197032556 - 31 -0.0 - 0 -LINE - 5 -139 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -35.3765705854679382 - 20 -28.5236684802967417 - 30 -0.0 - 11 -36.8765705854679524 - 21 -31.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -13A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -35.3765705854679382 - 20 -25.5236684802967417 - 30 -0.0 - 11 -36.8765705854679524 - 21 -22.5236684802967524 - 31 -0.0 - 0 -LINE - 5 -13B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.623429414532005 - 20 --40.4763315197032654 - 30 -0.0 - 11 --56.1234294145319836 - 21 --43.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -13C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.623429414532005 - 20 --46.4763315197032441 - 30 -0.0 - 11 --56.1234294145319836 - 21 --49.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -13D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.623429414532005 - 20 --13.4763315197032529 - 30 -0.0 - 11 --56.1234294145319836 - 21 --16.4763315197032547 - 31 -0.0 - 0 -LINE - 5 -13E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --50.123429414532005 - 20 --52.4763315197032441 - 30 -0.0 - 11 --48.6234294145319836 - 21 --55.4763315197032654 - 31 -0.0 - 0 -LINE - 5 -13F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --50.123429414532005 - 20 --19.4763315197032583 - 30 -0.0 - 11 --48.6234294145319836 - 21 --22.4763315197032476 - 31 -0.0 - 0 -LINE - 5 -140 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -27.8765705854679382 - 20 -10.5236684802967417 - 30 -0.0 - 11 -29.3765705854679524 - 21 -13.5236684802967453 - 31 -0.0 - 0 -LINE - 5 -141 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -27.8765705854679382 - 20 -19.5236684802967488 - 30 -0.0 - 11 -29.3765705854679524 - 21 -16.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -142 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --65.1234294145320121 - 20 --34.4763315197032583 - 30 -0.0 - 11 --63.6234294145319836 - 21 --37.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -143 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --65.1234294145320121 - 20 --7.4763315197032476 - 30 -0.0 - 11 --63.6234294145319836 - 21 --10.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -144 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --72.6234294145320121 - 20 --1.4763315197032556 - 30 -0.0 - 11 --71.1234294145319836 - 21 --4.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -145 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.8765705854679524 - 20 -31.5236684802967488 - 30 -0.0 - 11 -50.3765705854679808 - 21 -31.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -146 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.8765705854679524 - 20 -22.5236684802967524 - 30 -0.0 - 11 -50.3765705854679808 - 21 -22.5236684802967524 - 31 -0.0 - 0 -LINE - 5 -147 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --56.1234294145319836 - 20 --43.4763315197032512 - 30 -0.0 - 11 --42.623429414532005 - 21 --43.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -148 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --56.1234294145319836 - 20 --49.4763315197032583 - 30 -0.0 - 11 --42.623429414532005 - 21 --49.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -149 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --56.1234294145319836 - 20 --16.4763315197032547 - 30 -0.0 - 11 --42.623429414532005 - 21 --16.4763315197032547 - 31 -0.0 - 0 -LINE - 5 -14A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.6234294145319836 - 20 --55.4763315197032654 - 30 -0.0 - 11 --42.623429414532005 - 21 --55.4763315197032654 - 31 -0.0 - 0 -LINE - 5 -14B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.6234294145319836 - 20 --22.4763315197032476 - 30 -0.0 - 11 --42.623429414532005 - 21 --22.4763315197032476 - 31 -0.0 - 0 -LINE - 5 -14C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -29.3765705854679524 - 20 -13.5236684802967453 - 30 -0.0 - 11 -42.8765705854679808 - 21 -13.5236684802967453 - 31 -0.0 - 0 -LINE - 5 -14D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -29.3765705854679524 - 20 -16.5236684802967488 - 30 -0.0 - 11 -42.8765705854679808 - 21 -16.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -14E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.6234294145319836 - 20 --37.4763315197032512 - 30 -0.0 - 11 --50.123429414532005 - 21 --37.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -14F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --63.6234294145319836 - 20 --10.4763315197032512 - 30 -0.0 - 11 --50.123429414532005 - 21 --10.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -150 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --71.1234294145319836 - 20 --4.4763315197032583 - 30 -0.0 - 11 --57.623429414532005 - 21 --4.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -151 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -42.8765705854679808 - 20 -13.5236684802967453 - 30 -0.0 - 11 -44.3765705854679524 - 21 -10.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -152 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -42.8765705854679808 - 20 -16.5236684802967488 - 30 -0.0 - 11 -44.3765705854679524 - 21 -19.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -153 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --50.123429414532005 - 20 --37.4763315197032512 - 30 -0.0 - 11 --48.6234294145319836 - 21 --34.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -154 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --50.123429414532005 - 20 --10.4763315197032512 - 30 -0.0 - 11 --48.6234294145319836 - 21 --7.4763315197032476 - 31 -0.0 - 0 -LINE - 5 -155 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --57.623429414532005 - 20 --4.4763315197032583 - 30 -0.0 - 11 --56.1234294145319836 - 21 --1.4763315197032556 - 31 -0.0 - 0 -LINE - 5 -156 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.3765705854679524 - 20 -10.5236684802967417 - 30 -0.0 - 11 -50.3765705854679808 - 21 -10.5236684802967417 - 31 -0.0 - 0 -LINE - 5 -157 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.3765705854679524 - 20 -19.5236684802967488 - 30 -0.0 - 11 -50.3765705854679808 - 21 -19.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -158 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.6234294145319836 - 20 --34.4763315197032583 - 30 -0.0 - 11 --42.623429414532005 - 21 --34.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -159 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --48.6234294145319836 - 20 --7.4763315197032476 - 30 -0.0 - 11 --42.623429414532005 - 21 --7.4763315197032476 - 31 -0.0 - 0 -LINE - 5 -15A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --56.1234294145319836 - 20 --1.4763315197032556 - 30 -0.0 - 11 --42.623429414532005 - 21 --1.4763315197032556 - 31 -0.0 - 0 -LINE - 5 -15B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --8.1234294145320476 - 20 -28.5236684802967417 - 30 -0.0 - 11 --9.6234294145320689 - 21 -31.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -15C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --8.1234294145320476 - 20 -25.5236684802967417 - 30 -0.0 - 11 --9.6234294145320689 - 21 -22.5236684802967524 - 31 -0.0 - 0 -LINE - 5 -15D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --101.1234294145319836 - 20 --40.4763315197032654 - 30 -0.0 - 11 --102.6234294145320121 - 21 --43.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -15E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --101.1234294145319836 - 20 --46.4763315197032441 - 30 -0.0 - 11 --102.6234294145320121 - 21 --49.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -15F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --101.1234294145319836 - 20 --13.4763315197032529 - 30 -0.0 - 11 --102.6234294145320121 - 21 --16.4763315197032547 - 31 -0.0 - 0 -LINE - 5 -160 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --9.6234294145320689 - 20 -31.5236684802967488 - 30 -0.0 - 11 --15.6234294145320476 - 21 -31.5236684802967488 - 31 -0.0 - 0 -LINE - 5 -161 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --9.6234294145320689 - 20 -22.5236684802967524 - 30 -0.0 - 11 --15.6234294145320476 - 21 -22.5236684802967524 - 31 -0.0 - 0 -LINE - 5 -162 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --102.6234294145320121 - 20 --43.4763315197032512 - 30 -0.0 - 11 --108.6234294145319836 - 21 --43.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -163 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --102.6234294145320121 - 20 --49.4763315197032583 - 30 -0.0 - 11 --108.6234294145319836 - 21 --49.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -164 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --102.6234294145320121 - 20 --16.4763315197032547 - 30 -0.0 - 11 --108.6234294145319836 - 21 --16.4763315197032547 - 31 -0.0 - 0 -LINE - 5 -165 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.6234294145319836 - 20 --52.4763315197032441 - 30 -0.0 - 11 --95.1234294145320121 - 21 --55.4763315197032654 - 31 -0.0 - 0 -LINE - 5 -166 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --93.6234294145319836 - 20 --19.4763315197032583 - 30 -0.0 - 11 --95.1234294145320121 - 21 --22.4763315197032476 - 31 -0.0 - 0 -LINE - 5 -167 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --95.1234294145320121 - 20 --55.4763315197032654 - 30 -0.0 - 11 --108.6234294145319836 - 21 --55.4763315197032654 - 31 -0.0 - 0 -LINE - 5 -168 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --95.1234294145320121 - 20 --22.4763315197032476 - 30 -0.0 - 11 --108.6234294145319836 - 21 --22.4763315197032476 - 31 -0.0 - 0 -LINE - 5 -169 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.6234294145320476 - 20 --16.4763315197032547 - 30 -0.0 - 11 -5.3765705854679311 - 21 --16.4763315197032547 - 31 -0.0 - 0 -LINE - 5 -16A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.6234294145320476 - 20 --22.4763315197032476 - 30 -0.0 - 11 -20.3765705854679311 - 21 --22.4763315197032476 - 31 -0.0 - 0 -LINE - 5 -16B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.6234294145320476 - 20 --10.4763315197032512 - 30 -0.0 - 11 --9.6234294145320689 - 21 --10.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -16C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -5.3765705854679311 - 20 --16.4763315197032547 - 30 -0.0 - 11 -6.8765705854679524 - 21 --13.4763315197032529 - 31 -0.0 - 0 -LINE - 5 -16D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.3765705854679311 - 20 --22.4763315197032476 - 30 -0.0 - 11 -21.8765705854679524 - 21 --19.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -16E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --9.6234294145320689 - 20 --10.4763315197032512 - 30 -0.0 - 11 --8.1234294145320476 - 21 --7.4763315197032476 - 31 -0.0 - 0 -LINE - 5 -16F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.6234294145320476 - 20 --1.4763315197032556 - 30 -0.0 - 11 --2.1234294145320689 - 21 --1.4763315197032556 - 31 -0.0 - 0 -LINE - 5 -170 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -6.8765705854679524 - 20 --13.4763315197032529 - 30 -0.0 - 11 -27.8765705854679382 - 21 --13.4763315197032529 - 31 -0.0 - 0 -LINE - 5 -171 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -21.8765705854679524 - 20 --19.4763315197032583 - 30 -0.0 - 11 -42.8765705854679808 - 21 --19.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -172 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --8.1234294145320476 - 20 --7.4763315197032476 - 30 -0.0 - 11 -12.8765705854679311 - 21 --7.4763315197032476 - 31 -0.0 - 0 -LINE - 5 -173 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --2.1234294145320689 - 20 --1.4763315197032556 - 30 -0.0 - 11 --0.6234294145320476 - 21 --4.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -174 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -27.8765705854679382 - 20 --13.4763315197032529 - 30 -0.0 - 11 -29.3765705854679524 - 21 --16.4763315197032547 - 31 -0.0 - 0 -LINE - 5 -175 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -42.8765705854679808 - 20 --19.4763315197032583 - 30 -0.0 - 11 -44.3765705854679524 - 21 --22.4763315197032476 - 31 -0.0 - 0 -LINE - 5 -176 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -12.8765705854679311 - 20 --7.4763315197032476 - 30 -0.0 - 11 -14.3765705854679524 - 21 --10.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -177 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --0.6234294145320476 - 20 --4.4763315197032583 - 30 -0.0 - 11 -35.3765705854679382 - 21 --4.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -178 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -29.3765705854679524 - 20 --16.4763315197032547 - 30 -0.0 - 11 -50.3765705854679808 - 21 --16.4763315197032547 - 31 -0.0 - 0 -LINE - 5 -179 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.3765705854679524 - 20 --22.4763315197032476 - 30 -0.0 - 11 -50.3765705854679808 - 21 --22.4763315197032476 - 31 -0.0 - 0 -LINE - 5 -17A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.3765705854679524 - 20 --10.4763315197032512 - 30 -0.0 - 11 -50.3765705854679808 - 21 --10.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -17B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -35.3765705854679382 - 20 --4.4763315197032583 - 30 -0.0 - 11 -36.8765705854679524 - 21 --1.4763315197032556 - 31 -0.0 - 0 -LINE - 5 -17C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.8765705854679524 - 20 --1.4763315197032556 - 30 -0.0 - 11 -50.3765705854679808 - 21 --1.4763315197032556 - 31 -0.0 - 0 -LINE - 5 -17D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.6234294145320476 - 20 --34.4763315197032583 - 30 -0.0 - 11 -5.3765705854679311 - 21 --34.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -17E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -5.3765705854679311 - 20 --34.4763315197032583 - 30 -0.0 - 11 -6.8765705854679524 - 21 --37.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -17F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -6.8765705854679524 - 20 --37.4763315197032512 - 30 -0.0 - 11 -35.3765705854679382 - 21 --37.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -180 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -35.3765705854679382 - 20 --37.4763315197032512 - 30 -0.0 - 11 -36.8765705854679524 - 21 --34.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -181 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -36.8765705854679524 - 20 --34.4763315197032583 - 30 -0.0 - 11 -50.3765705854679808 - 21 --34.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -182 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.6234294145320476 - 20 --43.4763315197032512 - 30 -0.0 - 11 --2.1234294145320689 - 21 --43.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -183 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --2.1234294145320689 - 20 --43.4763315197032512 - 30 -0.0 - 11 --0.6234294145320476 - 21 --40.4763315197032654 - 31 -0.0 - 0 -LINE - 5 -184 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --0.6234294145320476 - 20 --40.4763315197032654 - 30 -0.0 - 11 -27.8765705854679382 - 21 --40.4763315197032654 - 31 -0.0 - 0 -LINE - 5 -185 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -27.8765705854679382 - 20 --40.4763315197032654 - 30 -0.0 - 11 -29.3765705854679524 - 21 --43.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -186 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -29.3765705854679524 - 20 --43.4763315197032512 - 30 -0.0 - 11 -50.3765705854679808 - 21 --43.4763315197032512 - 31 -0.0 - 0 -LINE - 5 -187 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.6234294145320476 - 20 --49.4763315197032583 - 30 -0.0 - 11 --9.6234294145320689 - 21 --49.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -188 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --9.6234294145320689 - 20 --49.4763315197032583 - 30 -0.0 - 11 --8.1234294145320476 - 21 --46.4763315197032441 - 31 -0.0 - 0 -LINE - 5 -189 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --8.1234294145320476 - 20 --46.4763315197032441 - 30 -0.0 - 11 -20.3765705854679311 - 21 --46.4763315197032441 - 31 -0.0 - 0 -LINE - 5 -18A -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -20.3765705854679311 - 20 --46.4763315197032441 - 30 -0.0 - 11 -21.8765705854679524 - 21 --49.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -18B -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -21.8765705854679524 - 20 --49.4763315197032583 - 30 -0.0 - 11 -50.3765705854679808 - 21 --49.4763315197032583 - 31 -0.0 - 0 -LINE - 5 -18C -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 --15.6234294145320476 - 20 --55.4763315197032654 - 30 -0.0 - 11 -12.8765705854679311 - 21 --55.4763315197032654 - 31 -0.0 - 0 -LINE - 5 -18D -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -12.8765705854679311 - 20 --55.4763315197032654 - 30 -0.0 - 11 -14.3765705854679524 - 21 --52.4763315197032441 - 31 -0.0 - 0 -LINE - 5 -18E -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -14.3765705854679524 - 20 --52.4763315197032441 - 30 -0.0 - 11 -42.8765705854679808 - 21 --52.4763315197032441 - 31 -0.0 - 0 -LINE - 5 -18F -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -42.8765705854679808 - 20 --52.4763315197032441 - 30 -0.0 - 11 -44.3765705854679524 - 21 --55.4763315197032654 - 31 -0.0 - 0 -LINE - 5 -190 -100 -AcDbEntity -100 -AcDbLine - 8 -STANDARD - 62 -7 -370 --1 - 6 -ByLayer - 10 -44.3765705854679524 - 20 --55.4763315197032654 - 30 -0.0 - 11 -50.3765705854679808 - 21 --55.4763315197032654 - 31 -0.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -191 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -191 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -193 - 3 -HIDETEXT -350 -192 - 0 -DICTIONARYVAR - 5 -192 -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -193 -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/hal/images/halmeter-1.png b/docs/src/hal/images/halmeter-1.png deleted file mode 100644 index 3373e527b39..00000000000 Binary files a/docs/src/hal/images/halmeter-1.png and /dev/null differ diff --git a/docs/src/hal/images/halmeter-1_fr.png b/docs/src/hal/images/halmeter-1_fr.png deleted file mode 100644 index f4ded9206c7..00000000000 Binary files a/docs/src/hal/images/halmeter-1_fr.png and /dev/null differ diff --git a/docs/src/hal/images/halmeter-demo-1.png b/docs/src/hal/images/halmeter-demo-1.png deleted file mode 100644 index 2d067f6fa10..00000000000 Binary files a/docs/src/hal/images/halmeter-demo-1.png and /dev/null differ diff --git a/docs/src/hal/images/halmeter-demo-2.png b/docs/src/hal/images/halmeter-demo-2.png deleted file mode 100644 index e04373769ed..00000000000 Binary files a/docs/src/hal/images/halmeter-demo-2.png and /dev/null differ diff --git a/docs/src/hal/images/halmeter-demo-3.png b/docs/src/hal/images/halmeter-demo-3.png deleted file mode 100644 index 7040521ff07..00000000000 Binary files a/docs/src/hal/images/halmeter-demo-3.png and /dev/null differ diff --git a/docs/src/hal/images/halmeter-select.png b/docs/src/hal/images/halmeter-select.png deleted file mode 100644 index 92c159b9533..00000000000 Binary files a/docs/src/hal/images/halmeter-select.png and /dev/null differ diff --git a/docs/src/hal/images/halmeter-select_fr.png b/docs/src/hal/images/halmeter-select_fr.png deleted file mode 100644 index 81f89d65b35..00000000000 Binary files a/docs/src/hal/images/halmeter-select_fr.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-01.png b/docs/src/hal/images/halscope-01.png deleted file mode 100644 index 8b38725316e..00000000000 Binary files a/docs/src/hal/images/halscope-01.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-01_fr.png b/docs/src/hal/images/halscope-01_fr.png deleted file mode 100644 index 06d64d46301..00000000000 Binary files a/docs/src/hal/images/halscope-01_fr.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-02.png b/docs/src/hal/images/halscope-02.png deleted file mode 100644 index 5d5171ef45f..00000000000 Binary files a/docs/src/hal/images/halscope-02.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-02_fr.png b/docs/src/hal/images/halscope-02_fr.png deleted file mode 100644 index c03bd07abf1..00000000000 Binary files a/docs/src/hal/images/halscope-02_fr.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-03.png b/docs/src/hal/images/halscope-03.png deleted file mode 100644 index 69fbd9a681c..00000000000 Binary files a/docs/src/hal/images/halscope-03.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-03_fr.png b/docs/src/hal/images/halscope-03_fr.png deleted file mode 100644 index 097af23e403..00000000000 Binary files a/docs/src/hal/images/halscope-03_fr.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-04.png b/docs/src/hal/images/halscope-04.png deleted file mode 100644 index 55005f5a67d..00000000000 Binary files a/docs/src/hal/images/halscope-04.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-04_fr.png b/docs/src/hal/images/halscope-04_fr.png deleted file mode 100644 index 7a82f8fbf11..00000000000 Binary files a/docs/src/hal/images/halscope-04_fr.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-05.png b/docs/src/hal/images/halscope-05.png deleted file mode 100644 index 5ea4689e4ad..00000000000 Binary files a/docs/src/hal/images/halscope-05.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-05_fr.png b/docs/src/hal/images/halscope-05_fr.png deleted file mode 100644 index ecd2fff3d3a..00000000000 Binary files a/docs/src/hal/images/halscope-05_fr.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-06.png b/docs/src/hal/images/halscope-06.png deleted file mode 100644 index 8aa4763a68f..00000000000 Binary files a/docs/src/hal/images/halscope-06.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-06_fr.png b/docs/src/hal/images/halscope-06_fr.png deleted file mode 100644 index 2a853d6e5e8..00000000000 Binary files a/docs/src/hal/images/halscope-06_fr.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-07.png b/docs/src/hal/images/halscope-07.png deleted file mode 100644 index be9dcb6ec8b..00000000000 Binary files a/docs/src/hal/images/halscope-07.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-07_fr.png b/docs/src/hal/images/halscope-07_fr.png deleted file mode 100644 index e597a874545..00000000000 Binary files a/docs/src/hal/images/halscope-07_fr.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-08.png b/docs/src/hal/images/halscope-08.png deleted file mode 100644 index 931b27c7169..00000000000 Binary files a/docs/src/hal/images/halscope-08.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-08_fr.png b/docs/src/hal/images/halscope-08_fr.png deleted file mode 100644 index 3be494cdd42..00000000000 Binary files a/docs/src/hal/images/halscope-08_fr.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-09.png b/docs/src/hal/images/halscope-09.png deleted file mode 100644 index d285c58dae4..00000000000 Binary files a/docs/src/hal/images/halscope-09.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-09_fr.png b/docs/src/hal/images/halscope-09_fr.png deleted file mode 100644 index 36df86171c9..00000000000 Binary files a/docs/src/hal/images/halscope-09_fr.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-10.png b/docs/src/hal/images/halscope-10.png deleted file mode 100644 index de982a9058e..00000000000 Binary files a/docs/src/hal/images/halscope-10.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-10_fr.png b/docs/src/hal/images/halscope-10_fr.png deleted file mode 100644 index 5ad8e9e81bd..00000000000 Binary files a/docs/src/hal/images/halscope-10_fr.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-11.png b/docs/src/hal/images/halscope-11.png deleted file mode 100644 index c884da678c6..00000000000 Binary files a/docs/src/hal/images/halscope-11.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-11_fr.png b/docs/src/hal/images/halscope-11_fr.png deleted file mode 100644 index a23672624d5..00000000000 Binary files a/docs/src/hal/images/halscope-11_fr.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-demo-1.png b/docs/src/hal/images/halscope-demo-1.png deleted file mode 100644 index 9ed44328aa5..00000000000 Binary files a/docs/src/hal/images/halscope-demo-1.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-demo-2.png b/docs/src/hal/images/halscope-demo-2.png deleted file mode 100644 index 80636e9bb60..00000000000 Binary files a/docs/src/hal/images/halscope-demo-2.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-demo-3.png b/docs/src/hal/images/halscope-demo-3.png deleted file mode 100644 index ddd2be62952..00000000000 Binary files a/docs/src/hal/images/halscope-demo-3.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-demo-4.png b/docs/src/hal/images/halscope-demo-4.png deleted file mode 100644 index 1a2b86469eb..00000000000 Binary files a/docs/src/hal/images/halscope-demo-4.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-demo-5.png b/docs/src/hal/images/halscope-demo-5.png deleted file mode 100644 index 0f052528d04..00000000000 Binary files a/docs/src/hal/images/halscope-demo-5.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-demo-6.png b/docs/src/hal/images/halscope-demo-6.png deleted file mode 100644 index ee7b684a8e5..00000000000 Binary files a/docs/src/hal/images/halscope-demo-6.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-demo-7.png b/docs/src/hal/images/halscope-demo-7.png deleted file mode 100644 index a0d574b79be..00000000000 Binary files a/docs/src/hal/images/halscope-demo-7.png and /dev/null differ diff --git a/docs/src/hal/images/halscope-demo-8.png b/docs/src/hal/images/halscope-demo-8.png deleted file mode 100644 index 7f4b951a2e6..00000000000 Binary files a/docs/src/hal/images/halscope-demo-8.png and /dev/null differ diff --git a/docs/src/hal/images/halshow-1.png b/docs/src/hal/images/halshow-1.png deleted file mode 100644 index b9836adbb35..00000000000 Binary files a/docs/src/hal/images/halshow-1.png and /dev/null differ diff --git a/docs/src/hal/images/halshow-1_fr.png b/docs/src/hal/images/halshow-1_fr.png deleted file mode 100644 index 41dcab5458f..00000000000 Binary files a/docs/src/hal/images/halshow-1_fr.png and /dev/null differ diff --git a/docs/src/hal/images/halshow-2.png b/docs/src/hal/images/halshow-2.png deleted file mode 100644 index 4a713331efa..00000000000 Binary files a/docs/src/hal/images/halshow-2.png and /dev/null differ diff --git a/docs/src/hal/images/halshow-2_fr.png b/docs/src/hal/images/halshow-2_fr.png deleted file mode 100644 index ec151e452e7..00000000000 Binary files a/docs/src/hal/images/halshow-2_fr.png and /dev/null differ diff --git a/docs/src/hal/images/halshow-3.png b/docs/src/hal/images/halshow-3.png deleted file mode 100644 index 2e150c602ad..00000000000 Binary files a/docs/src/hal/images/halshow-3.png and /dev/null differ diff --git a/docs/src/hal/images/halshow-4.png b/docs/src/hal/images/halshow-4.png deleted file mode 100644 index eaa84d8881c..00000000000 Binary files a/docs/src/hal/images/halshow-4.png and /dev/null differ diff --git a/docs/src/hal/images/parport-block-diag.eps b/docs/src/hal/images/parport-block-diag.eps deleted file mode 100644 index bdbf7e8581f..00000000000 --- a/docs/src/hal/images/parport-block-diag.eps +++ /dev/null @@ -1,3580 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Title: D:\JMK\Drawings\hal-parport-block-diag.FC7 -%%BoundingBox: 19 9 784 593 -%%Creator: PSCRIPT.DRV Version 4.0 -%%CreationDate: 02/13/05 11:42:20 -%%Pages: 1 -%%Requirements: None -%%DocumentNeededFonts: (atend) -%%DocumentSuppliedFonts: (atend) -%%LanguageLevel: 1 -%%EndComments - -%%BeginProlog -%%BeginProcSet: Pscript_Res_Emul 1.0 0 -/defineresource where{pop}{userdict begin/defineresource{userdict/Resources 2 -copy known{get begin}{15 dict dup begin put}ifelse exch readonly exch -currentdict 1 index known not{dup 30 dict def}if load 3 -1 roll 2 index put -end}bind readonly def/findresource{userdict/Resources get exch get exch get} -bind readonly def/resourceforall{pop pop pop pop}bind readonly def -/resourcestatus{userdict/Resources 2 copy known{get exch 2 copy known{get exch -known{0 -1 true}{pop pop false}ifelse}{pop pop pop false}ifelse}{pop pop false -}ifelse}bind readonly def end}ifelse -%%EndProcSet -%%BeginResource: procset Pscript_Win_Driver 2.0 0 -/Pscript_Win_Driver 200 dict dup begin -%%BeginResource: file Pscript_FatalError 2.0 0 -/FatalErrorIf{{initgraphics findfont exch scalefont setfont counttomark 3 div -cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def -%%EndResource -/VM? {vmstatus exch sub exch pop gt { [ -(This job requires more memory than is available in this printer.) 100 500 -(Try one or more of the following, and then print again:) 100 485 -(In the PostScript dialog box, click Optimize For Portability.) 115 470 -(In the Device Options dialog box, make sure the Available Printer Memory is accurate.) 115 455 -(Reduce the number of fonts in the document.) 115 440 -(Print the document in parts.) 115 425 -12 /Times-Roman showpage -(%%[ PrinterError: Low Printer VM ]%%) = -true FatalErrorIf}if} bind def -%%BeginResource: file Pscript_Win_Utils 2.0 0 -/|/def load def/,/load load |/~/exch , |/?/ifelse , |/!/pop , |/`/begin , |/^ -/index , |/@/dup , |/+/translate , |/$/roll , |/U/userdict , |/M/moveto , |/- -/rlineto , |/&/currentdict , |/:/gsave , |/;/grestore , |/F/false , |/T/true , -|/N/newpath , |/E/end , |/Ac/arc , |/An/arcn , |/A/ashow , |/D/awidthshow , | -/C/closepath , |/V/div , |/O/eofill , |/L/fill , |/I/lineto , |/-C/rcurveto , -|/-M/rmoveto , |/+S/scale , |/Ji/setfont , |/Lc/setlinecap , |/Lj/setlinejoin -, |/Lw/setlinewidth , |/S/show , |/LH/showpage , |/K/stroke , |/W/widthshow , -|/R/rotate , |/b{bind |}bind |/bd{bind |}bind |/xd{~ |}bd/ld{, |}bd/lw/Lw ld -/lc/Lc ld/lj/Lj ld/sg/setgray ld/L2? F/languagelevel where{! languagelevel 2 -ge{! T}if}if |/g{@ not{U/DefIf_save save put}if U/DefIf_bool 2 ^ put}b -/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e{DefIf_El ! -}b/self & |/reinitialize{[/TextInit/GraphInit/UtilsInit counttomark{@ where{ -self eq}{F}?{cvx exec}{!}?}repeat cleartomark}b/initialize{`{/ADO_mxRot ~ | -/TextInitialised? F | reinitialize E}{U/Pscript_Win_Data 200 dict @ ` put -/ADO_mxRot ~ |/TextInitialised? F | reinitialize}?}b/terminate{!{& self eq{ -exit}{E}?}loop E}b/suspend/terminate , |/resume{` Pscript_Win_Data `}b/snap{ -transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~ itransform}b -/dsnap{dtransform round ~ round ~ idtransform}b<04>cvn{}|/setjn{{statusdict -/jobname known{statusdict/jobname 3 -1 $ put}if}stopped cleartomark}b/solid{[] -0 setdash}b/setdsh{0 setdash}b/colspRefresh{}b/rp{4 2 $ M 1 ^ 0 - 0 ~ - neg 0 --}b/rr{1 ^ 0 - 0 ~ - neg 0 - C}b -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L1 2.0 0 -L2? not g{/rf{N rp L}b/fx{1 1 dtransform @ 0 ge{1 sub 1}{1 add -0.25}? 3 -1 $ -@ 0 ge{1 sub 1}{1 add -0.25}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{ -4 -2 $ snap + +S fx rf}b/rs{N rp C K}b/rc{N rp clip N}b/sg{setgray}b/sco{ -setrgbcolor}b/sgco{{sg}{sco}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L2 2.0 0 -L2? g{/colspA/DeviceGray |/colspABC/DeviceRGB |/setAorABC{{colspA}{colspABC}? -setcolorspace}b/rf/rectfill , |/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5 -}? 3 -1 $ @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ -idtransform}b/BZ{4 -2 $ snap + +S fx rf}b/rs/rectstroke , |/rc/rectclip , |/sg -{@ @ setcolor}b/sco{setcolor}b/colspRefresh{colspABC setcolorspace}b/sgco{{sg -}{sco}?}b/UtilsInit{F setglobal}b/definecolorrendering{/ColorRendering -defineresource !}b/findcolorrendering{@/ColorRendering resourcestatus{! ! -/ColorRendering findresource T}{! F}?}b/selectcolorrendering{@/ColorRendering -resourcestatus{! !/ColorRendering}{!/DefaultColorRendering/ColorRendering}? -findresource setcolorrendering}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Encoding 2.0 0 -/bullets{{/bullet}repeat}b/ANSIEncoding[/grave/acute/circumflex/tilde/macron -/breve/dotaccent/dieresis/ring/cedilla/hungarumlaut/ogonek/caron/dotlessi 18 -bullets StandardEncoding 32 95 getinterval aload ! 3 bullets/quotesinglbase -/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron -/guilsinglleft/OE 4 bullets/quoteleft/quoteright/quotedblleft/quotedblright -/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 2 bullets -/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section -/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered -/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph -/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter -/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis -/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute -/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls -/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute -/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve -/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex -/udieresis/yacute/thorn/ydieresis]| ANSIEncoding @ 39/quotesingle put 96/grave -put/ANSIEncodingOld ANSIEncoding 256 array copy | ANSIEncodingOld @[138 153 -154 169 172 174 177 178 179 181 185 188 189 190 208 215 221 222 240 247 253 -254]{/bullet put @}forall 166/bar put 176/ring put -%%EndResource -%%BeginResource: file Pscript_Win_Text 2.0 0 -/TextInit{TextInitialised? not{/Pscript_Windows_Font & |/TextInitialised? T | -/fM[1 0 0 -1 0 0]|/mFM matrix |/iMat[1 0 0.212557 neg 1 0 0]|}if}b/xUP null | -/yUP null |/uW null |/xSP null |/ySP null |/sW null |/copyfont{1 ^ length add -dict `{1 ^/FID ne{|}{! !}?}forall & E}b/rF{3 copyfont @ `/Encoding -ANSIEncoding &/CharStrings known{CharStrings/Eth known not{! ANSIEncodingOld} -if}if | E}b/mF{findfont ~{@/Encoding get @ StandardEncoding eq{! T}{{ -ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get -StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{rF}{3 copyfont}? ` -/OrigFontType ~ |/OrigFontName ~ | & E 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 -put fM makefont Pscript_Windows_Font 3 1 $ put}b/xF{scalefont -Pscript_Windows_Font 3 1 $ put}b/xMF{mFM astore makefont Pscript_Windows_Font -3 1 $ put}b/xF2/scalefont , |/xMF2{mFM astore makefont}b/sLT{: Lw -M -currentpoint snap M 0 - 0 Lc K ;}b/sSU{N/uW ~ |/yUP ~ |/xUP ~ |}b/sU{xUP yUP -uW sLT}b/sST{N/sW ~ |/ySP ~ |/xSP ~ |}b/sT{xSP ySP sW sLT}b/sR{: + R 0 0 M}b -/sRxy{: matrix astore concat 0 0 M}b/eR/; , | -%%EndResource -%%BeginResource: file Pscript_Win_Text_Bold 2.0 0 -/mBF{@ 4 copyfont `/FontName ~ |/OrigFontType ~ |/OrigFontName ~ | 0 -FontMatrix idtransform ! &/PaintType known{PaintType 0 eq{/PaintType 2 | -/StrokeWidth ~ |}{PaintType 1 eq PaintType 2 eq or PaintType 3 eq or & -/StrokeWidth known and{StrokeWidth add/StrokeWidth ~ |}{!}?}?}{!}? @ & E -definefont Pscript_Windows_Font 3 1 $ put}b/xBF{Pscript_Windows_Font ` 1 ^ -/FontName get 1 ^ scalefont 3 1 $ scalefont 2 copy ~ | ~ ! | E}b/xMBF{mFM -astore Pscript_Windows_Font ` 1 ^/FontName get 1 ^ makefont 3 1 $ makefont 2 -copy ~ | ~ ! | E}b/xBF2{/sB0 ~ mBF/sB1 sB0 3 -1 $ xBF sB1}b/xMBF2{/sB0 ~ mBF -mFM astore/sB1 sB0 3 -1 $ xMBF sB1}b/sB{: Pscript_Windows_Font currentfont get -Ji @ S ; S}b/asB{: Pscript_Windows_Font currentfont get Ji 3 copy A ; A}b/wsB{ -: Pscript_Windows_Font currentfont get Ji 4 copy W ; W}b/awsB{: -Pscript_Windows_Font currentfont get Ji 6 copy D ; D}b/sBT3{: @ S ; 1 1 -M S}b -/asBT3{: 3 copy A ; 1 1 -M A}b/wsBT3{: 4 copy W ; 1 1 -M W}b/awsBT3{: 6 copy D -; 1 1 -M D}b/mIF{iMat 4 3 -1 $ put 2 copyfont `/OrigFontType ~ |/OrigFontName -~ | @ & E definefont iMat makefont Pscript_Windows_Font 3 1 $ put}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics 2.0 0 -/SavedCTM null |/CTMsave{/SavedCTM SavedCTM currentmatrix |}b/CTMrestore{ -SavedCTM setmatrix}b/mp null |/ADO_mxRot null |/GDIHMatrix null | -/GDIHPatternDict 22 dict | GDIHPatternDict `/PatternType 1 |/PaintType 2 | -/Reps L2?{1}{5}? |/XStep 8 Reps mul |/YStep XStep |/BBox[0 0 XStep YStep]| -/TilingType 1 |/PaintProc{` 1 Lw[]0 setdash PaintData , exec E}b/FGnd null | -/BGnd null |/HS_Horizontal{horiz}b/HS_Vertical{vert}b/HS_FDiagonal{fdiag}b -/HS_BDiagonal{biag}b/HS_Cross{horiz vert}b/HS_DiagCross{fdiag biag}b/MaxXYStep -XStep YStep gt{XStep}{YStep}? |/horiz{Reps{0 4 M XStep 0 - 0 8 +}repeat 0 -8 -Reps mul + K}b/vert{Reps{4 0 M 0 YStep - 8 0 +}repeat 0 -8 Reps mul + K}b/biag -{Reps{0 0 M MaxXYStep @ - 0 YStep neg M MaxXYStep @ - 0 8 +}repeat 0 -8 Reps -mul + 0 YStep M 8 8 - K}b/fdiag{Reps{0 0 M MaxXYStep @ neg - 0 YStep M -MaxXYStep @ neg - 0 8 +}repeat 0 -8 Reps mul + MaxXYStep @ M 8 -8 - K}b E -/makehatch{GDIHPatternDict/PaintData 3 -1 $ put CTMsave GDIHMatrix setmatrix -GDIHPatternDict matrix mp CTMrestore ~ U ~ 2 ^ put}b/h0{/h0/HS_Horizontal -makehatch}b/h1{/h1/HS_Vertical makehatch}b/h2{/h2/HS_FDiagonal makehatch}b/h3{ -/h3/HS_BDiagonal makehatch}b/h4{/h4/HS_Cross makehatch}b/h5{/h5/HS_DiagCross -makehatch}b/GDIBWPatternDict 17 dict @ `/PatternType 1 |/PaintType L2?{1}{2}? -|/RepsV L2?{1}{6}? |/RepsH L2?{1}{5}? |/BBox[0 0 RepsH 1]|/TilingType 1 | -/XStep 1 |/YStep 1 |/Height 8 RepsV mul |/Width 8 |/mx[Width 0 0 Height neg 0 -Height]|/FGnd null |/BGnd null |/SetBGndFGnd L2?{{BGnd null ne{BGnd aload ! -sgco BBox aload ! 2 ^ sub ~ 3 ^ sub ~ rf}if FGnd null ne{FGnd aload ! sgco}if} -}{{}}? b/PaintProc{` SetBGndFGnd RepsH{Width Height F mx PaintData imagemask -Width 0 +}repeat E}b E |/GDIBWPatternMx null |/pfprep{save 4 1 $ -/PatternOfTheDay 4 1 $ GDIBWPatternDict `/PaintData ~ |/BGnd ~ |/FGnd ~ | E -CTMsave GDIBWPatternMx setmatrix GDIBWPatternDict matrix mp CTMrestore ~ !}b -/hrf null |/prf{pfprep ~ 6 1 $ 5 hrf restore}b/GraphInit{GDIHMatrix null eq{ -/SavedCTM matrix | : ADO_mxRot concat 0 0 snap + : 0.48 @ GDIHPatternDict ` -YStep mul ~ XStep mul ~ dsnap YStep V ~ XStep V ~ E +S/GDIHMatrix matrix -currentmatrix readonly | ; : 0.24 -0.24 +S GDIBWPatternDict ` Width Height E -dsnap +S/GDIBWPatternMx matrix currentmatrix readonly | ; ;}if}b/cirp{360 0 An -C}b/ellp{CTMsave + +S 0.5 0 M 0 0 0.5 360 0 An C CTMrestore}b/rrp{/rad ~ |/y2 -~ |/x2 ~ |/y1 ~ |/x1 ~ | x2 x1 add 2 V y1 M x1 y1 x1 y2 rad arct x1 y2 x2 y2 -rad arct x2 y2 x2 y1 rad arct x2 y1 x1 y1 rad arct C}b/RRp{CTMsave + +S/dyS ~ -|/dxS ~ | dxS 2 V 0 M 0 0 0 dyS 0.5 arct 0 dyS dxS dyS 0.5 arct dxS dyS dxS 0 -0.5 arct dxS 0 0 0 0.5 arct C CTMrestore}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L1 2.0 0 -L2? not g{/arct{arcto ! ! ! !}b/GDIpattfill{@ ` BGnd null ne PaintType 2 eq -and{: BGnd aload ! sgco fEOFill{O}{L}? ; FGnd aload ! U/fGray 2 ^ put{2}{4}? --1 $}if E @ patterncalc : 4 ^/PaintType get 2 eq{fGray{6 -1 $ sg}{8 -3 $ sco}? -}if fEOFill{eoclip}{clip}? N patternfill ; N}b/hrf{/fGray 1 ^ 6 eq | -4 $ N rp -C/fEOFill F | GDIpattfill}b/hfMain{/fEOFill ~ |/fGray ~ | GDIpattfill}b/hf{T -hfMain}b/hfW{F hfMain}b/hs{currentpoint strokepath M hfW}b/pfMain{/fEOFill ~ | -pfprep GDIpattfill restore N}b/pf{T pfMain}b/pfW{F pfMain}b/ps{currentpoint -strokepath M pfW}b/mpstr 1 string |/mp{~ @ length 12 add dict copy ` -/PatternCTM matrix currentmatrix |/PatternMatrix ~ |/PatWidth XStep mpstr -length mul |/PatHeight YStep |/FontType 3 |/Encoding 256 array | 3 string 0 1 -255{Encoding ~ @ 3 ^ cvs cvn put}for !/FontMatrix matrix |/FontBBox BBox | -/BuildChar{! @ ` XStep 0 FontBBox aload ! setcachedevice/PaintProc , E : exec -;}b & E ~ @ 3 -1 $ definefont}b/patterncalc{` : PatternCTM setmatrix -PatternMatrix concat BBox aload ! ! ! + pathbbox ; PatHeight V ceiling 4 1 $ -PatWidth V ceiling 4 1 $ PatHeight V floor 4 1 $ PatWidth V floor 4 1 $ 2 ^ -sub cvi abs ~ 3 ^ sub cvi abs ~ 4 2 $ PatHeight mul ~ PatWidth mul ~ E}b -/patternfill{5 -1 $ @ ` Ji PatternCTM setmatrix PatternMatrix concat 0 2 ^ 2 ^ -M 0 1 mpstr length 1 sub{1 ^ mpstr 3 1 $ put}for ! 2 ^{currentpoint 5 ^{mpstr -S}repeat YStep add M}repeat ! ! ! ! E}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L2 2.0 0 -L2? g{/mp/makepattern , |/hrf{6 eq setAorABC setpattern rectfill}b/hf{ -setAorABC setpattern O}b/hfW{setAorABC setpattern L}b/hs{setAorABC setpattern -K}b/pf{pfprep setpattern O restore N}b/pfW{pfprep setpattern L restore N}b/ps{ -pfprep setpattern K restore N}b}e -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images 2.0 0 -/iw 0 |/ih 0 |/im_save 0 |/s 0 |/polarity 0 |/smoothflag 0 |/mystring 0 |/bpc -0 |/setup1asciiproc{[currentfile mystring/readhexstring cvx/! cvx]cvx bind}b -/setup1binaryproc{[currentfile mystring/readstring cvx/! cvx]cvx bind}b -/setup2asciiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}b -/setup2binaryproc{currentfile/RunLengthDecode filter}b/mycolorspace{colspABC}| -/myimagedict{/myimagedict 10 dict | myimagedict @ `/ImageType 1 | -/MultipleDataSource F | E}b/imageprocarray[/setup1binaryproc/setup1asciiproc -/setup2binaryproc/setup2asciiproc/setup1binarydecodeproc/setup1asciidecodeproc -]|/L2Polarity{{[1 0]}{[0 1]}?}b/Q{/im_save save | imageprocarray ~ get/s ~ , | -L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring ~ -string |/bpc ~ |/ih ~ |/iw ~ |}b/X{/im_save save | imageprocarray ~ get/s ~ , -| L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring -~ string |/bpc ~ |/ih ~ |/iw ~ |}b/Z{im_save restore}b/Y{sgco myimagedict @ ` -/Width iw |/Height ih |/Decode polarity |/ImageMatrix[iw 0 0 ih 0 0]| -/DataSource s |/BitsPerComponent 1 |/Interpolate smoothflag | E imagemask}b -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images_L1 2.0 0 -L2? not g{/setup2asciiproc{[/Level2ImagesError , aload ! T FatalErrorIf}b -/setup2binaryproc/setup2asciiproc , |/L2Polarity{}|/Y{sgco iw ih polarity[iw 0 -0 ih 0 0]s imagemask}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L1 2.0 0 -L2? not g{/testsystemdict{where{systemdict eq{T}{F}?}{F}?}b/c 1 |/colorimage -where{! T}{F}?{/c 0 statusdict `/processcolors where{! ! processcolors}{ -/deviceinfo where{! deviceinfo/Colors known{!{deviceinfo/Colors get}}if}if}? E -| c 0 ne{/colorimage testsystemdict/setcolortransfer testsystemdict -/currentcolortransfer testsystemdict/currentcmykcolor testsystemdict and and -and not{/c 0 |}if}if}if c @ 1 ne ~ @ 3 ne ~ 4 ne and and{/c 0 |}if c 1 eq g{ -/expandbw{expandfactor mul round cvi bwclut ~ get 255 V}b/doclutimage{!/bwclut -~ | bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/expandfactor ~ |[/expandbw ,/exec , @ -currenttransfer ~]cvx bind settransfer iw ih bpc[iw 0 0 ih 0 0]s image}b}e c @ -3 eq ~ 4 eq or g{/nullproc{{}}|/concatutil{/exec , 7 -1 $/exec ,}b/defsubclut{ -1 add getinterval |}b/spconcattransfer{/Dclut ~ |/Cclut ~ |/Bclut ~ |/Aclut ~ -|/ncompute ~ , | currentcolortransfer[{Aclut ncompute}concatutil]cvx[{Bclut -ncompute}concatutil]cvx[{Cclut ncompute}concatutil]cvx[{Dclut ncompute} -concatutil]cvx setcolortransfer}b/setuprgbcluts{/bit3x rgbclut length 3 sub | -/bit1x bit3x 3 idiv |/rclut rgbclut |/gclut rclut 1 bit3x defsubclut/bclut -rclut 2 bit3x defsubclut}b}e c 3 eq g{/3compute{~ bit3x mul round cvi get 255 -V}b/doclutimage{/rgbclut ~ | ! setuprgbcluts/3compute rclut gclut bclut @ -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @]cvx nullproc nullproc -T 3 colorimage}b}e c 4 eq g{/ftoint{1 ~ sub 255 mul round cvi}b/stuffclut{ -cmykindex 3 -1 $ put}b/4compute{~ bit4x mul round cvi get 255 V}b -/invalidcolortable? T |/computecmykclut{setuprgbcluts/bit4x rgbclut length 3 -idiv 4 mul 4 sub |/cmykclut bit4x 4 add string |/cclut cmykclut |/mclut cclut -1 bit4x defsubclut/yclut cclut 2 bit4x defsubclut/kclut cclut 3 bit4x -defsubclut/cmykindex 0 | 0 1 bit1x{@/cmykindex ~ bit1x ~ sub 4 mul | 3 mul @ -rclut ~ get 255 V ~ @ gclut ~ get 255 V ~ bclut ~ get 255 V setrgbcolor -currentcmykcolor ftoint kclut stuffclut ftoint yclut stuffclut ftoint mclut -stuffclut ftoint cclut stuffclut}for}b/doclutimage{/rgbclut ~ | ! -invalidcolortable?{computecmykclut}if/4compute cclut mclut yclut kclut -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @ @]cvx nullproc -nullproc nullproc T 4 colorimage}b}e c 0 eq g{/a{3 mul 3 getinterval -putinterval ~ 3 add ~ 3 copy}b/8lookup/a , |/4lookup{/byte 1 ^ | -4 bitshift a -byte 15 and a}b/2lookup{/byte 1 ^ | -6 bitshift a byte -4 bitshift 3 and a -byte -2 bitshift 3 and a byte 3 and a}b/colorexpand{mystringexp 0 rgbclut 3 -copy 7 -1 $/mylookup , forall ! ! ! ! !}b/createexpandstr{/mystringexp ~ -mystring length mul string |}b/doclutimage{/rgbclut ~ | !/mylookup bpc 8 eq{3 -createexpandstr/8lookup}{bpc 4 eq{6 createexpandstr/4lookup}{12 -createexpandstr/2lookup}?}? , | iw ih bpc[iw 0 0 ih 0 0][s/exec ,/colorexpand -,/exec ,]cvx F 3 colorimage}b}e/colorimage where{! T}{F}? g{/do24image{iw ih 8 -[iw 0 0 ih 0 0]s F 3 colorimage}b}DefIf_El{/rgbtogray{/str ~ |/len str length -|/smlen len 3 idiv |/rstr str |/gstr str 1 len 1 sub getinterval |/bstr str 2 -len 2 sub getinterval | str @ 0 1 smlen 1 sub{@ 3 mul rstr 1 ^ get 0.3 mul -gstr 2 ^ get 0.59 mul add bstr 3 -1 $ get 0.11 mul add round cvi put @}for ! 0 -smlen getinterval}b/do24image{iw ih 8[iw 0 0 ih 0 0][s/exec ,/rgbtogray ,/exec -,]cvx bind image}b}e/doNimage{bpc 24 eq{do24image}{iw ih bpc[iw 0 0 ih 0 0]s -image}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L2 2.0 0 -L2? g{/doclutimage{/rgbclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[ -/Indexed colspABC hival rgbclut]setcolorspace myimagedict @ `/Width iw | -/Height ih |/Decode[0 hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s | -/BitsPerComponent bpc |/Interpolate smoothflag | E image}b/doCMYKclutimage{ -/CMYKclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[/Indexed/DeviceCMYK -hival CMYKclut]setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 -hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent bpc | -/Interpolate smoothflag | E image}b/doNimage{bpc 24 eq{colspABC}{colspA}? -setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode bpc 24 eq{[0 1 0 1 -0 1]}{[0 1]}? |/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent -bpc 24 eq{8}{bpc}? |/Interpolate smoothflag | E image}b/doCMYKimage{ -/DeviceCMYK setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 1 0 -1 0 1 0 1]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent 8 | -/Interpolate smoothflag | E image}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Type3_Hdr 2.0 0 -/GreNewFont{10 dict @ 3 1 $ | @ ` 4 1 $/FontType 3 |/FontMatrix ~ |/FontBBox ~ -|/Encoding 256 array | 0 1 255{Encoding ~/.notdef put}for/CharProcs 257 dict | -CharProcs/.notdef{}put/Metrics 257 dict | Metrics/.notdef 3 -1 $ put/BuildChar -{/char ~ |/fontdict ~ |/charname fontdict/Encoding get char get | fontdict -/Metrics get charname get aload ! setcachedevice fontdict ` Encoding char get -CharProcs ~ get E exec}| E definefont !}|/AddChar{` Encoding 3 1 $ put -CharProcs 3 1 $ put Metrics 3 1 $ put E}| -%%EndResource -%%BeginResource: file Pscript_Win_Type1_Hdr 2.0 0 -/FEbuf 2 string |/FEglyph 3 string |/FE{(G00)FEglyph copy ! 1 ~{@ 16 lt{ -/offset 2 store}{/offset 1 store}? @ 16 FEbuf cvrs FEglyph ~ offset ~ -putinterval 1 ^ ~ FEglyph cvn put}for}bind |/Type1Hdr{11 dict `/FontName ~ | -/PaintType ~ |/FontType 1 |/FontMatrix[1 3 ^ V 0 0 1 6 ^ V 0 0]| !/Encoding -256 array 0 1 255{1 ^ ~/.notdef put}for 3 ^ 3 ^ FE | ! !/FontBBox{0 0 0 0}| & -E currentfile eexec}bind | -%%EndResource -/pp 1 string |/ss 1 string |/rledecodebinary{/DC 0 |/BC 0 |{DC mystring length -ge{exit}if currentfile ss readstring ! 0 get/BC ~ | BC 127 le{/BC BC 1 add | -DC 1 DC BC add 1 sub{mystring ~ currentfile ss readstring ! 0 get put}for}{/BC -257 BC sub | currentfile ss readstring ! 0 get/pp ~ | DC 1 DC BC add 1 sub{ -mystring ~ pp put}for}?/DC DC BC add |}loop mystring}b/rledecodeascii{/DC 0 | -/BC 0 |{DC mystring length ge{exit}if currentfile ss readhexstring ! 0 get/BC -~ | BC 127 le{/BC BC 1 add | DC 1 DC BC add 1 sub{mystring ~ currentfile ss -readhexstring ! 0 get put}for}{/BC 257 BC sub | currentfile ss readhexstring ! -0 get/pp ~ | DC 1 DC BC add 1 sub{mystring ~ pp put}for}?/DC DC BC add |}loop -mystring}b/setup1asciidecodeproc{[/rledecodeascii cvx]cvx bind}b -/setup1binarydecodeproc{[/rledecodebinary cvx]cvx bind}b -%%BeginResource: file Pscript_Win_Compat 2.0 0 -userdict/Pscript_Win_Compat 13 dict dup begin/bd{bind def}bind def/ld{load def -}bd/CB{pop pop pop pop}bind def/B{pop pop pop pop}bind def/$x matrix def/SS{ -/pagesave save def}bind def/RS{/pagesave where{pop pagesave restore}{$x matrix -invertmatrix concat}ifelse}bind def/ANSIVec[0/grave 1/acute 2/circumflex 3 -/tilde 4/macron 5/breve 6/dotaccent 7/dieresis 8/ring 9/cedilla 10 -/hungarumlaut 11/ogonek 12/caron 13/dotlessi 39/quotesingle 96/grave 124/bar -130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135 -/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE -145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150 -/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156 -/oe 159/Ydieresis 160/space 161/exclamdown 164/currency 165/yen 166/brokenbar -167/section 168/dieresis 169/copyright 170/ordfeminine 171/guillemotleft 172 -/logicalnot 173/hyphen 174/registered 175/macron 176/degree 177/plusminus 178 -/twosuperior 179/threesuperior 180/acute 181/mu 182/paragraph 183 -/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 187 -/guillemotright 188/onequarter 189/onehalf 190/threequarters 191/questiondown -192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198 -/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204 -/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve -211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223 -/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229 -/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis -236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242 -/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248 -/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254 -/thorn 255/ydieresis]def currentdict{dup type/operatortype eq{[exch]cvx def}{ -pop pop}ifelse}forall/initialize{currentdict exch begin begin}bind def -/terminate{/@FL where not{pop end end}{pop}ifelse}bind def/suspend/terminate -load def/resume/initialize load def/M/moveto load def end put/Courier findfont -10 scalefont setfont -%%EndResource -end /ProcSet defineresource pop -%%EndResource -%%EndProlog - -%%BeginSetup -Pscript_Win_Compat dup /initialize get exec -[ 0 1.000 -1.000 0 0 0 ] false /Pscript_Win_Driver /ProcSet findresource dup /initialize get exec - - -/mysetup [ 0.240 0 0 -0.240 8.880 592.800 ] | -%%EndSetup - -%%Page: 1 1 -%%BeginPageSetup -userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 2550 3300 rf ; -%%EndPageSetup - -: 0 0 3229 2391 rc -1765 1079 N M -23 -23 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1742 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1056 N M 23 -24 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1765 1032 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1032 N M 302 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2067 1032 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1032 N M 0 47 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2067 1079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1079 N M -302 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1765 1079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1079 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1765 1079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1032 N M -23 -23 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1742 1009 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1009 N M 23 -23 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1765 986 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 986 N M 302 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2067 986 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 986 N M 0 46 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2067 1032 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1032 N M -302 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1765 1032 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1032 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1765 1032 N M 0 0 rr : 0 0 0 sco O ; : 1807 1040 406 33 rc 0 0 0 sco %%IncludeFont: Helvetica -(F0) cvn -0.900 - (Helvetica) cvn /Type1 -T -(Helvetica) cvn -mF -(F0_22_30) cvn -F0 -22 0 0 30 0 0 -xMF -F0_22_30 -Ji -1836 1040 M -2.145 0 (pin-8-in-not)A -; : 1830 994 290 33 rc 0 0 0 sco F0_22_30 -Ji -1859 994 M -2.082 0 (pin-8-in)A -; -N 2142 1056 6.000 360 0 An C 1 Lw 1 Lc 1 Lj solid 0 0 0 sco K : 0 0 3229 2391 rc -2148 1056 N M 58 -35 - 1 Lw solid 0 0 0 sco K ; -2206 1021 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1021 N M 0 69 - 1 Lw solid 0 0 0 sco K ; -2206 1090 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1090 N M -58 -34 - 1 Lw solid 0 0 0 sco K ; -2148 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2148 1056 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2148 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1009 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -2253 1009 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 1009 N M 0 47 - 1 Lw solid 0 0 0 sco K ; -2253 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 1056 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -2206 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2137 1056 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -2067 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1032 N M 70 -34 - 1 Lw solid 0 0 0 sco K ; -2369 998 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 998 N M 0 69 - 1 Lw solid 0 0 0 sco K ; -2369 1067 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1067 N M -70 -35 - 1 Lw solid 0 0 0 sco K ; -2299 1032 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1032 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2299 1032 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1032 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -2253 1032 N M 0 0 rr : 0 0 0 sco O ; -2257 1032 N M -1 -3 - -4 -1 - -3 2 - 0 4 - 3 3 - 4 -1 - 1 -4 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2257 1032 N M -1 -3 - 0 0 0 sco K ; -2256 1029 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1029 N M -4 -1 - 0 0 0 sco K ; -2252 1028 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 1028 N M -3 2 - 0 0 0 sco K ; -2249 1030 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 1030 N M 0 4 - 0 0 0 sco K ; -2249 1034 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 1034 N M 3 3 - 0 0 0 sco K ; -2252 1037 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 1037 N M 4 -1 - 0 0 0 sco K ; -2256 1036 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1036 N M 1 -4 - 0 0 0 sco K ; -2257 1032 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1195 N M -23 -23 - 0 0 0 sco K ; -1742 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1172 N M 23 -23 - 0 0 0 sco K ; -1765 1149 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1149 N M 302 0 - 0 0 0 sco K ; -2067 1149 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1149 N M 0 46 - 0 0 0 sco K ; -2067 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1195 N M -302 0 - 0 0 0 sco K ; -1765 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1195 N M 0 0 - 0 0 0 sco K ; -1765 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1149 N M -23 -24 - 0 0 0 sco K ; -1742 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1125 N M 23 -23 - 0 0 0 sco K ; -1765 1102 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1102 N M 302 0 - 0 0 0 sco K ; -2067 1102 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1102 N M 0 47 - 0 0 0 sco K ; -2067 1149 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1149 N M -302 0 - 0 0 0 sco K ; -1765 1149 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1149 N M 0 0 - 0 0 0 sco K ; -1765 1149 N M 0 0 rr : 0 0 0 sco O ; : 1807 1156 406 33 rc 0 0 0 sco F0_22_30 -Ji -1836 1156 M -2.145 0 (pin-7-in-not)A -; : 1830 1110 290 33 rc 0 0 0 sco F0_22_30 -Ji -1859 1110 M -2.082 0 (pin-7-in)A -; -N 2142 1172 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2148 1172 N M 58 -35 - 1 Lw solid 0 0 0 sco K ; -2206 1137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1137 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2206 1207 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1207 N M -58 -35 - 1 Lw solid 0 0 0 sco K ; -2148 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2148 1172 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2148 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1125 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -2253 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 1125 N M 0 47 - 1 Lw solid 0 0 0 sco K ; -2253 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 1172 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -2206 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2137 1172 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -2067 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1149 N M 70 -35 - 1 Lw solid 0 0 0 sco K ; -2369 1114 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1114 N M 0 69 - 1 Lw solid 0 0 0 sco K ; -2369 1183 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1183 N M -70 -34 - 1 Lw solid 0 0 0 sco K ; -2299 1149 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1149 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2299 1149 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1149 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -2253 1149 N M 0 0 rr : 0 0 0 sco O ; -2257 1149 N M -1 -4 - -4 -1 - -3 3 - 0 4 - 3 2 - 4 -1 - 1 -3 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2257 1149 N M -1 -4 - 0 0 0 sco K ; -2256 1145 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1145 N M -4 -1 - 0 0 0 sco K ; -2252 1144 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 1144 N M -3 3 - 0 0 0 sco K ; -2249 1147 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 1147 N M 0 4 - 0 0 0 sco K ; -2249 1151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 1151 N M 3 2 - 0 0 0 sco K ; -2252 1153 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 1153 N M 4 -1 - 0 0 0 sco K ; -2256 1152 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1152 N M 1 -3 - 0 0 0 sco K ; -2257 1149 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1311 N M -23 -23 - 0 0 0 sco K ; -1742 1288 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1288 N M 23 -23 - 0 0 0 sco K ; -1765 1265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1265 N M 302 0 - 0 0 0 sco K ; -2067 1265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1265 N M 0 46 - 0 0 0 sco K ; -2067 1311 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1311 N M -302 0 - 0 0 0 sco K ; -1765 1311 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1311 N M 0 0 - 0 0 0 sco K ; -1765 1311 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1265 N M -23 -24 - 0 0 0 sco K ; -1742 1241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1241 N M 23 -23 - 0 0 0 sco K ; -1765 1218 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1218 N M 302 0 - 0 0 0 sco K ; -2067 1218 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1218 N M 0 47 - 0 0 0 sco K ; -2067 1265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1265 N M -302 0 - 0 0 0 sco K ; -1765 1265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1265 N M 0 0 - 0 0 0 sco K ; -1765 1265 N M 0 0 rr : 0 0 0 sco O ; : 1807 1273 406 33 rc 0 0 0 sco F0_22_30 -Ji -1836 1273 M -2.145 0 (pin-6-in-not)A -; : 1830 1226 290 33 rc 0 0 0 sco F0_22_30 -Ji -1859 1226 M -2.082 0 (pin-6-in)A -; -N 2142 1288 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2148 1288 N M 58 -35 - 1 Lw solid 0 0 0 sco K ; -2206 1253 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1253 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2206 1323 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1323 N M -58 -35 - 1 Lw solid 0 0 0 sco K ; -2148 1288 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2148 1288 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2148 1288 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1241 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -2253 1241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 1241 N M 0 47 - 1 Lw solid 0 0 0 sco K ; -2253 1288 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 1288 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -2206 1288 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2137 1288 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -2067 1288 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1265 N M 70 -35 - 1 Lw solid 0 0 0 sco K ; -2369 1230 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1230 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2369 1300 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1300 N M -70 -35 - 1 Lw solid 0 0 0 sco K ; -2299 1265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1265 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2299 1265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1265 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -2253 1265 N M 0 0 rr : 0 0 0 sco O ; -2257 1265 N M -1 -4 - -4 -1 - -3 3 - 0 4 - 3 2 - 4 -1 - 1 -3 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2257 1265 N M -1 -4 - 0 0 0 sco K ; -2256 1261 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1261 N M -4 -1 - 0 0 0 sco K ; -2252 1260 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 1260 N M -3 3 - 0 0 0 sco K ; -2249 1263 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 1263 N M 0 4 - 0 0 0 sco K ; -2249 1267 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 1267 N M 3 2 - 0 0 0 sco K ; -2252 1269 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 1269 N M 4 -1 - 0 0 0 sco K ; -2256 1268 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1268 N M 1 -3 - 0 0 0 sco K ; -2257 1265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1427 N M -23 -23 - 0 0 0 sco K ; -1742 1404 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1404 N M 23 -23 - 0 0 0 sco K ; -1765 1381 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1381 N M 302 0 - 0 0 0 sco K ; -2067 1381 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1381 N M 0 46 - 0 0 0 sco K ; -2067 1427 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1427 N M -302 0 - 0 0 0 sco K ; -1765 1427 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1427 N M 0 0 - 0 0 0 sco K ; -1765 1427 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1381 N M -23 -23 - 0 0 0 sco K ; -1742 1358 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1358 N M 23 -24 - 0 0 0 sco K ; -1765 1334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1334 N M 302 0 - 0 0 0 sco K ; -2067 1334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1334 N M 0 47 - 0 0 0 sco K ; -2067 1381 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1381 N M -302 0 - 0 0 0 sco K ; -1765 1381 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1381 N M 0 0 - 0 0 0 sco K ; -1765 1381 N M 0 0 rr : 0 0 0 sco O ; : 1807 1389 406 33 rc 0 0 0 sco F0_22_30 -Ji -1836 1389 M -2.145 0 (pin-5-in-not)A -; : 1830 1342 290 33 rc 0 0 0 sco F0_22_30 -Ji -1859 1342 M -2.082 0 (pin-5-in)A -; -N 2142 1404 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2148 1404 N M 58 -35 - 1 Lw solid 0 0 0 sco K ; -2206 1369 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1369 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2206 1439 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1439 N M -58 -35 - 1 Lw solid 0 0 0 sco K ; -2148 1404 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2148 1404 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2148 1404 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1358 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -2253 1358 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 1358 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -2253 1404 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 1404 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -2206 1404 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2137 1404 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -2067 1404 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1381 N M 70 -35 - 1 Lw solid 0 0 0 sco K ; -2369 1346 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1346 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2369 1416 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1416 N M -70 -35 - 1 Lw solid 0 0 0 sco K ; -2299 1381 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1381 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2299 1381 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1381 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -2253 1381 N M 0 0 rr : 0 0 0 sco O ; -2257 1381 N M -1 -4 - -4 -1 - -3 3 - 0 4 - 3 2 - 4 -1 - 1 -3 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2257 1381 N M -1 -4 - 0 0 0 sco K ; -2256 1377 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1377 N M -4 -1 - 0 0 0 sco K ; -2252 1376 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 1376 N M -3 3 - 0 0 0 sco K ; -2249 1379 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 1379 N M 0 4 - 0 0 0 sco K ; -2249 1383 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 1383 N M 3 2 - 0 0 0 sco K ; -2252 1385 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 1385 N M 4 -1 - 0 0 0 sco K ; -2256 1384 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1384 N M 1 -3 - 0 0 0 sco K ; -2257 1381 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1543 N M -23 -23 - 0 0 0 sco K ; -1742 1520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1520 N M 23 -23 - 0 0 0 sco K ; -1765 1497 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1497 N M 302 0 - 0 0 0 sco K ; -2067 1497 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1497 N M 0 46 - 0 0 0 sco K ; -2067 1543 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1543 N M -302 0 - 0 0 0 sco K ; -1765 1543 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1543 N M 0 0 - 0 0 0 sco K ; -1765 1543 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1497 N M -23 -23 - 0 0 0 sco K ; -1742 1474 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1474 N M 23 -24 - 0 0 0 sco K ; -1765 1450 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1450 N M 302 0 - 0 0 0 sco K ; -2067 1450 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1450 N M 0 47 - 0 0 0 sco K ; -2067 1497 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1497 N M -302 0 - 0 0 0 sco K ; -1765 1497 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1497 N M 0 0 - 0 0 0 sco K ; -1765 1497 N M 0 0 rr : 0 0 0 sco O ; : 1807 1505 406 33 rc 0 0 0 sco F0_22_30 -Ji -1836 1505 M -2.145 0 (pin-4-in-not)A -; : 1830 1458 290 33 rc 0 0 0 sco F0_22_30 -Ji -1859 1458 M -2.082 0 (pin-4-in)A -; -N 2142 1520 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2148 1520 N M 58 -35 - 1 Lw solid 0 0 0 sco K ; -2206 1485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1485 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2206 1555 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1555 N M -58 -35 - 1 Lw solid 0 0 0 sco K ; -2148 1520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2148 1520 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2148 1520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1474 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -2253 1474 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 1474 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -2253 1520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 1520 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -2206 1520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2137 1520 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -2067 1520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1497 N M 70 -35 - 1 Lw solid 0 0 0 sco K ; -2369 1462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1462 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2369 1532 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1532 N M -70 -35 - 1 Lw solid 0 0 0 sco K ; -2299 1497 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1497 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2299 1497 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1497 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -2253 1497 N M 0 0 rr : 0 0 0 sco O ; -2257 1497 N M -1 -4 - -4 -1 - -3 3 - 0 4 - 3 2 - 4 0 - 1 -4 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2257 1497 N M -1 -4 - 0 0 0 sco K ; -2256 1493 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1493 N M -4 -1 - 0 0 0 sco K ; -2252 1492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 1492 N M -3 3 - 0 0 0 sco K ; -2249 1495 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 1495 N M 0 4 - 0 0 0 sco K ; -2249 1499 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 1499 N M 3 2 - 0 0 0 sco K ; -2252 1501 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 1501 N M 4 0 - 0 0 0 sco K ; -2256 1501 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1501 N M 1 -4 - 0 0 0 sco K ; -2257 1497 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1660 N M -23 -24 - 0 0 0 sco K ; -1742 1636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1636 N M 23 -23 - 0 0 0 sco K ; -1765 1613 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1613 N M 302 0 - 0 0 0 sco K ; -2067 1613 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1613 N M 0 47 - 0 0 0 sco K ; -2067 1660 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1660 N M -302 0 - 0 0 0 sco K ; -1765 1660 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1660 N M 0 0 - 0 0 0 sco K ; -1765 1660 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1613 N M -23 -23 - 0 0 0 sco K ; -1742 1590 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1590 N M 23 -23 - 0 0 0 sco K ; -1765 1567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1567 N M 302 0 - 0 0 0 sco K ; -2067 1567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1567 N M 0 46 - 0 0 0 sco K ; -2067 1613 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1613 N M -302 0 - 0 0 0 sco K ; -1765 1613 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1613 N M 0 0 - 0 0 0 sco K ; -1765 1613 N M 0 0 rr : 0 0 0 sco O ; : 1807 1621 406 33 rc 0 0 0 sco F0_22_30 -Ji -1836 1621 M -2.145 0 (pin-3-in-not)A -; : 1830 1574 290 33 rc 0 0 0 sco F0_22_30 -Ji -1859 1574 M -2.082 0 (pin-3-in)A -; -N 2142 1636 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2148 1636 N M 58 -35 - 1 Lw solid 0 0 0 sco K ; -2206 1601 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1601 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2206 1671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1671 N M -58 -35 - 1 Lw solid 0 0 0 sco K ; -2148 1636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2148 1636 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2148 1636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1590 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -2253 1590 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 1590 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -2253 1636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 1636 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -2206 1636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2137 1636 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -2067 1636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1613 N M 70 -35 - 1 Lw solid 0 0 0 sco K ; -2369 1578 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1578 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2369 1648 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1648 N M -70 -35 - 1 Lw solid 0 0 0 sco K ; -2299 1613 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1613 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2299 1613 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1613 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -2253 1613 N M 0 0 rr : 0 0 0 sco O ; -2257 1613 N M -1 -4 - -4 0 - -3 2 - 0 4 - 3 3 - 4 -1 - 1 -4 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2257 1613 N M -1 -4 - 0 0 0 sco K ; -2256 1609 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1609 N M -4 0 - 0 0 0 sco K ; -2252 1609 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 1609 N M -3 2 - 0 0 0 sco K ; -2249 1611 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 1611 N M 0 4 - 0 0 0 sco K ; -2249 1615 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 1615 N M 3 3 - 0 0 0 sco K ; -2252 1618 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 1618 N M 4 -1 - 0 0 0 sco K ; -2256 1617 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1617 N M 1 -4 - 0 0 0 sco K ; -2257 1613 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1776 N M -23 -24 - 0 0 0 sco K ; -1742 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1752 N M 23 -23 - 0 0 0 sco K ; -1765 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1729 N M 302 0 - 0 0 0 sco K ; -2067 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1729 N M 0 47 - 0 0 0 sco K ; -2067 1776 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1776 N M -302 0 - 0 0 0 sco K ; -1765 1776 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1776 N M 0 0 - 0 0 0 sco K ; -1765 1776 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1729 N M -23 -23 - 0 0 0 sco K ; -1742 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1706 N M 23 -23 - 0 0 0 sco K ; -1765 1683 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1683 N M 302 0 - 0 0 0 sco K ; -2067 1683 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1683 N M 0 46 - 0 0 0 sco K ; -2067 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1729 N M -302 0 - 0 0 0 sco K ; -1765 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 1729 N M 0 0 - 0 0 0 sco K ; -1765 1729 N M 0 0 rr : 0 0 0 sco O ; : 1807 1737 406 33 rc 0 0 0 sco F0_22_30 -Ji -1836 1737 M -2.145 0 (pin-2-in-not)A -; : 1830 1691 290 33 rc 0 0 0 sco F0_22_30 -Ji -1859 1691 M -2.082 0 (pin-2-in)A -; -N 2142 1752 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2148 1752 N M 58 -34 - 1 Lw solid 0 0 0 sco K ; -2206 1718 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1718 N M 0 69 - 1 Lw solid 0 0 0 sco K ; -2206 1787 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 1787 N M -58 -35 - 1 Lw solid 0 0 0 sco K ; -2148 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2148 1752 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2148 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1706 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -2253 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 1706 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -2253 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 1752 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -2206 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2137 1752 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -2067 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1729 N M 70 -35 - 1 Lw solid 0 0 0 sco K ; -2369 1694 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1694 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2369 1764 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1764 N M -70 -35 - 1 Lw solid 0 0 0 sco K ; -2299 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1729 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2299 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 1729 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -2253 1729 N M 0 0 rr : 0 0 0 sco O ; -2257 1729 N M -1 -3 - -4 -1 - -3 2 - 0 4 - 3 3 - 4 -1 - 1 -4 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2257 1729 N M -1 -3 - 0 0 0 sco K ; -2256 1726 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1726 N M -4 -1 - 0 0 0 sco K ; -2252 1725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 1725 N M -3 2 - 0 0 0 sco K ; -2249 1727 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 1727 N M 0 4 - 0 0 0 sco K ; -2249 1731 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 1731 N M 3 3 - 0 0 0 sco K ; -2252 1734 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 1734 N M 4 -1 - 0 0 0 sco K ; -2256 1733 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 1733 N M 1 -4 - 0 0 0 sco K ; -2257 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 963 N M -23 -23 - 0 0 0 sco K ; -1742 940 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 940 N M 23 -24 - 0 0 0 sco K ; -1765 916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 916 N M 302 0 - 0 0 0 sco K ; -2067 916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 916 N M 0 47 - 0 0 0 sco K ; -2067 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 963 N M -302 0 - 0 0 0 sco K ; -1765 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 963 N M 0 0 - 0 0 0 sco K ; -1765 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 916 N M -23 -23 - 0 0 0 sco K ; -1742 893 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 893 N M 23 -23 - 0 0 0 sco K ; -1765 870 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 870 N M 302 0 - 0 0 0 sco K ; -2067 870 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 870 N M 0 46 - 0 0 0 sco K ; -2067 916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 916 N M -302 0 - 0 0 0 sco K ; -1765 916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 916 N M 0 0 - 0 0 0 sco K ; -1765 916 N M 0 0 rr : 0 0 0 sco O ; : 1807 924 406 33 rc 0 0 0 sco F0_22_30 -Ji -1836 924 M -2.145 0 (pin-9-in-not)A -; : 1830 878 290 33 rc 0 0 0 sco F0_22_30 -Ji -1859 878 M -2.082 0 (pin-9-in)A -; -N 2142 940 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2148 940 N M 58 -35 - 1 Lw solid 0 0 0 sco K ; -2206 905 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 905 N M 0 69 - 1 Lw solid 0 0 0 sco K ; -2206 974 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 974 N M -58 -34 - 1 Lw solid 0 0 0 sco K ; -2148 940 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2148 940 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2148 940 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 893 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -2253 893 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 893 N M 0 47 - 1 Lw solid 0 0 0 sco K ; -2253 940 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 940 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -2206 940 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2137 940 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -2067 940 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 916 N M 70 -35 - 1 Lw solid 0 0 0 sco K ; -2369 881 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 881 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2369 951 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 951 N M -70 -35 - 1 Lw solid 0 0 0 sco K ; -2299 916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 916 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2299 916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 916 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -2253 916 N M 0 0 rr : 0 0 0 sco O ; -2257 916 N M -1 -3 - -4 -1 - -3 2 - 0 4 - 3 3 - 4 -1 - 1 -4 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2257 916 N M -1 -3 - 0 0 0 sco K ; -2256 913 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 913 N M -4 -1 - 0 0 0 sco K ; -2252 912 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 912 N M -3 2 - 0 0 0 sco K ; -2249 914 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 914 N M 0 4 - 0 0 0 sco K ; -2249 918 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 918 N M 3 3 - 0 0 0 sco K ; -2252 921 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 921 N M 4 -1 - 0 0 0 sco K ; -2256 920 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 920 N M 1 -4 - 0 0 0 sco K ; -2257 916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 382 N M -23 -23 - 0 0 0 sco K ; -1742 359 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 359 N M 23 -23 - 0 0 0 sco K ; -1765 336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 336 N M 302 0 - 0 0 0 sco K ; -2067 336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 336 N M 0 46 - 0 0 0 sco K ; -2067 382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 382 N M -302 0 - 0 0 0 sco K ; -1765 382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 382 N M 0 0 - 0 0 0 sco K ; -1765 382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 336 N M -23 -24 - 0 0 0 sco K ; -1742 312 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 312 N M 23 -23 - 0 0 0 sco K ; -1765 289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 289 N M 302 0 - 0 0 0 sco K ; -2067 289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 289 N M 0 47 - 0 0 0 sco K ; -2067 336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 336 N M -302 0 - 0 0 0 sco K ; -1765 336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 336 N M 0 0 - 0 0 0 sco K ; -1765 336 N M 0 0 rr : 0 0 0 sco O ; : 1799 343 435 33 rc 0 0 0 sco F0_22_30 -Ji -1828 343 M -2.193 0 (pin-15-in-not)A -; : 1823 297 319 33 rc 0 0 0 sco F0_22_30 -Ji -1852 297 M -2.158 0 (pin-15-in)A -; -N 2142 359 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2148 359 N M 58 -35 - 1 Lw solid 0 0 0 sco K ; -2206 324 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 324 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2206 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 394 N M -58 -35 - 1 Lw solid 0 0 0 sco K ; -2148 359 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2148 359 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2148 359 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 312 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -2253 312 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 312 N M 0 47 - 1 Lw solid 0 0 0 sco K ; -2253 359 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 359 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -2206 359 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2137 359 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -2067 359 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 336 N M 70 -35 - 1 Lw solid 0 0 0 sco K ; -2369 301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 301 N M 0 69 - 1 Lw solid 0 0 0 sco K ; -2369 370 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 370 N M -70 -34 - 1 Lw solid 0 0 0 sco K ; -2299 336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 336 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2299 336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 336 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -2253 336 N M 0 0 rr : 0 0 0 sco O ; -2257 336 N M -1 -4 - -4 -1 - -3 3 - 0 4 - 3 2 - 4 -1 - 1 -3 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2257 336 N M -1 -4 - 0 0 0 sco K ; -2256 332 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 332 N M -4 -1 - 0 0 0 sco K ; -2252 331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 331 N M -3 3 - 0 0 0 sco K ; -2249 334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 334 N M 0 4 - 0 0 0 sco K ; -2249 338 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 338 N M 3 2 - 0 0 0 sco K ; -2252 340 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 340 N M 4 -1 - 0 0 0 sco K ; -2256 339 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 339 N M 1 -3 - 0 0 0 sco K ; -2257 336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 498 N M -23 -23 - 0 0 0 sco K ; -1742 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 475 N M 23 -23 - 0 0 0 sco K ; -1765 452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 452 N M 302 0 - 0 0 0 sco K ; -2067 452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 452 N M 0 46 - 0 0 0 sco K ; -2067 498 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 498 N M -302 0 - 0 0 0 sco K ; -1765 498 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 498 N M 0 0 - 0 0 0 sco K ; -1765 498 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 452 N M -23 -23 - 0 0 0 sco K ; -1742 429 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 429 N M 23 -24 - 0 0 0 sco K ; -1765 405 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 405 N M 302 0 - 0 0 0 sco K ; -2067 405 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 405 N M 0 47 - 0 0 0 sco K ; -2067 452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 452 N M -302 0 - 0 0 0 sco K ; -1765 452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 452 N M 0 0 - 0 0 0 sco K ; -1765 452 N M 0 0 rr : 0 0 0 sco O ; : 1799 460 435 33 rc 0 0 0 sco F0_22_30 -Ji -1828 460 M -2.193 0 (pin-13-in-not)A -; : 1823 413 319 33 rc 0 0 0 sco F0_22_30 -Ji -1852 413 M -2.158 0 (pin-13-in)A -; -N 2142 475 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2148 475 N M 58 -35 - 1 Lw solid 0 0 0 sco K ; -2206 440 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 440 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2206 510 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 510 N M -58 -35 - 1 Lw solid 0 0 0 sco K ; -2148 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2148 475 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2148 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 429 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -2253 429 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 429 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -2253 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 475 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -2206 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2137 475 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -2067 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 452 N M 70 -35 - 1 Lw solid 0 0 0 sco K ; -2369 417 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 417 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2369 487 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 487 N M -70 -35 - 1 Lw solid 0 0 0 sco K ; -2299 452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 452 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2299 452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 452 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -2253 452 N M 0 0 rr : 0 0 0 sco O ; -2257 452 N M -1 -4 - -4 -1 - -3 3 - 0 4 - 3 2 - 4 -1 - 1 -3 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2257 452 N M -1 -4 - 0 0 0 sco K ; -2256 448 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 448 N M -4 -1 - 0 0 0 sco K ; -2252 447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 447 N M -3 3 - 0 0 0 sco K ; -2249 450 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 450 N M 0 4 - 0 0 0 sco K ; -2249 454 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 454 N M 3 2 - 0 0 0 sco K ; -2252 456 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 456 N M 4 -1 - 0 0 0 sco K ; -2256 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 455 N M 1 -3 - 0 0 0 sco K ; -2257 452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 614 N M -23 -23 - 0 0 0 sco K ; -1742 591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 591 N M 23 -23 - 0 0 0 sco K ; -1765 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 568 N M 302 0 - 0 0 0 sco K ; -2067 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 568 N M 0 46 - 0 0 0 sco K ; -2067 614 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 614 N M -302 0 - 0 0 0 sco K ; -1765 614 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 614 N M 0 0 - 0 0 0 sco K ; -1765 614 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 568 N M -23 -23 - 0 0 0 sco K ; -1742 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 545 N M 23 -24 - 0 0 0 sco K ; -1765 521 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 521 N M 302 0 - 0 0 0 sco K ; -2067 521 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 521 N M 0 47 - 0 0 0 sco K ; -2067 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 568 N M -302 0 - 0 0 0 sco K ; -1765 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 568 N M 0 0 - 0 0 0 sco K ; -1765 568 N M 0 0 rr : 0 0 0 sco O ; : 1799 576 435 33 rc 0 0 0 sco F0_22_30 -Ji -1828 576 M -2.193 0 (pin-12-in-not)A -; : 1823 529 319 33 rc 0 0 0 sco F0_22_30 -Ji -1852 529 M -2.158 0 (pin-12-in)A -; -N 2142 591 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2148 591 N M 58 -35 - 1 Lw solid 0 0 0 sco K ; -2206 556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 556 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2206 626 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 626 N M -58 -35 - 1 Lw solid 0 0 0 sco K ; -2148 591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2148 591 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2148 591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 545 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -2253 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 545 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -2253 591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 591 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -2206 591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2137 591 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -2067 591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 568 N M 70 -35 - 1 Lw solid 0 0 0 sco K ; -2369 533 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 533 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2369 603 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 603 N M -70 -35 - 1 Lw solid 0 0 0 sco K ; -2299 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 568 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2299 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 568 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -2253 568 N M 0 0 rr : 0 0 0 sco O ; -2257 568 N M -1 -4 - -4 -1 - -3 3 - 0 4 - 3 2 - 4 0 - 1 -4 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2257 568 N M -1 -4 - 0 0 0 sco K ; -2256 564 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 564 N M -4 -1 - 0 0 0 sco K ; -2252 563 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 563 N M -3 3 - 0 0 0 sco K ; -2249 566 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 566 N M 0 4 - 0 0 0 sco K ; -2249 570 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 570 N M 3 2 - 0 0 0 sco K ; -2252 572 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 572 N M 4 0 - 0 0 0 sco K ; -2256 572 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 572 N M 1 -4 - 0 0 0 sco K ; -2257 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 730 N M -23 -23 - 0 0 0 sco K ; -1742 707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 707 N M 23 -23 - 0 0 0 sco K ; -1765 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 684 N M 302 0 - 0 0 0 sco K ; -2067 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 684 N M 0 46 - 0 0 0 sco K ; -2067 730 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 730 N M -302 0 - 0 0 0 sco K ; -1765 730 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 730 N M 0 0 - 0 0 0 sco K ; -1765 730 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 684 N M -23 -23 - 0 0 0 sco K ; -1742 661 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 661 N M 23 -23 - 0 0 0 sco K ; -1765 638 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 638 N M 302 0 - 0 0 0 sco K ; -2067 638 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 638 N M 0 46 - 0 0 0 sco K ; -2067 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 684 N M -302 0 - 0 0 0 sco K ; -1765 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 684 N M 0 0 - 0 0 0 sco K ; -1765 684 N M 0 0 rr : 0 0 0 sco O ; : 1799 692 435 33 rc 0 0 0 sco F0_22_30 -Ji -1828 692 M -2.193 0 (pin-11-in-not)A -; : 1823 645 319 33 rc 0 0 0 sco F0_22_30 -Ji -1852 645 M -2.158 0 (pin-11-in)A -; -N 2142 707 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2148 707 N M 58 -35 - 1 Lw solid 0 0 0 sco K ; -2206 672 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 672 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2206 742 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 742 N M -58 -35 - 1 Lw solid 0 0 0 sco K ; -2148 707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2148 707 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2148 707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 661 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -2253 661 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 661 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -2253 707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 707 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -2206 707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2137 707 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -2067 707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 684 N M 70 -35 - 1 Lw solid 0 0 0 sco K ; -2369 649 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 649 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2369 719 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 719 N M -70 -35 - 1 Lw solid 0 0 0 sco K ; -2299 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 684 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2299 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 684 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -2253 684 N M 0 0 rr : 0 0 0 sco O ; -2257 684 N M -1 -4 - -4 -1 - -3 3 - 0 4 - 3 3 - 4 -1 - 1 -4 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2257 684 N M -1 -4 - 0 0 0 sco K ; -2256 680 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 680 N M -4 -1 - 0 0 0 sco K ; -2252 679 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 679 N M -3 3 - 0 0 0 sco K ; -2249 682 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 682 N M 0 4 - 0 0 0 sco K ; -2249 686 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 686 N M 3 3 - 0 0 0 sco K ; -2252 689 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 689 N M 4 -1 - 0 0 0 sco K ; -2256 688 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 688 N M 1 -4 - 0 0 0 sco K ; -2257 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 847 N M -23 -24 - 0 0 0 sco K ; -1742 823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 823 N M 23 -23 - 0 0 0 sco K ; -1765 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 800 N M 302 0 - 0 0 0 sco K ; -2067 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 800 N M 0 47 - 0 0 0 sco K ; -2067 847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 847 N M -302 0 - 0 0 0 sco K ; -1765 847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 847 N M 0 0 - 0 0 0 sco K ; -1765 847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 800 N M -23 -23 - 0 0 0 sco K ; -1742 777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 777 N M 23 -23 - 0 0 0 sco K ; -1765 754 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 754 N M 302 0 - 0 0 0 sco K ; -2067 754 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 754 N M 0 46 - 0 0 0 sco K ; -2067 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 800 N M -302 0 - 0 0 0 sco K ; -1765 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1765 800 N M 0 0 - 0 0 0 sco K ; -1765 800 N M 0 0 rr : 0 0 0 sco O ; : 1799 808 435 33 rc 0 0 0 sco F0_22_30 -Ji -1828 808 M -2.193 0 (pin-10-in-not)A -; : 1823 762 319 33 rc 0 0 0 sco F0_22_30 -Ji -1852 762 M -2.158 0 (pin-10-in)A -; -N 2142 823 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2148 823 N M 58 -34 - 1 Lw solid 0 0 0 sco K ; -2206 789 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 789 N M 0 69 - 1 Lw solid 0 0 0 sco K ; -2206 858 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2206 858 N M -58 -35 - 1 Lw solid 0 0 0 sco K ; -2148 823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2148 823 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2148 823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 777 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -2253 777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 777 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -2253 823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2253 823 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -2206 823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2137 823 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -2067 823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 800 N M 70 -35 - 1 Lw solid 0 0 0 sco K ; -2369 765 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 765 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -2369 835 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 835 N M -70 -35 - 1 Lw solid 0 0 0 sco K ; -2299 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 800 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -2299 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2299 800 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -2253 800 N M 0 0 rr : 0 0 0 sco O ; -2257 800 N M -1 -3 - -4 -1 - -3 2 - 0 4 - 3 3 - 4 -1 - 1 -4 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -2257 800 N M -1 -3 - 0 0 0 sco K ; -2256 797 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 797 N M -4 -1 - 0 0 0 sco K ; -2252 796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 796 N M -3 2 - 0 0 0 sco K ; -2249 798 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 798 N M 0 4 - 0 0 0 sco K ; -2249 802 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2249 802 N M 3 3 - 0 0 0 sco K ; -2252 805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2252 805 N M 4 -1 - 0 0 0 sco K ; -2256 804 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2256 804 N M 1 -4 - 0 0 0 sco K ; -2257 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2090 1869 N M 0 0 - 0 0 0 sco K ; -2090 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1915 N M 0 -46 - 0 0 0 sco K ; -1742 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1869 N M 302 0 - 0 0 0 sco K ; -2044 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2044 1869 N M 23 23 - 0 0 0 sco K ; -2067 1892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 1892 N M -23 23 - 0 0 0 sco K ; -2044 1915 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2044 1915 N M -302 0 - 0 0 0 sco K ; -1742 1915 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1915 N M 0 0 - 0 0 0 sco K ; -1742 1915 N M 0 0 rr : 0 0 0 sco O ; : 2102 1830 551 33 rc 0 0 0 sco F0_22_30 -Ji -2131 1830 M -2.167 0 (pin-17-out-invert)A -; : 1791 1876 348 33 rc 0 0 0 sco F0_22_30 -Ji -1820 1876 M -2.296 0 (pin-17-out)A -; : 0 0 3229 2391 rc -2432 1903 N M 7 -13 - 0 0 0 sco K ; -2439 1890 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2439 1890 N M 4 -14 - 0 0 0 sco K ; -2443 1876 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2443 1876 N M 0 -15 - 0 0 0 sco K ; -2443 1861 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2443 1861 N M -4 -14 - 0 0 0 sco K ; -2439 1847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2439 1847 N M -7 -13 - 0 0 0 sco K ; -2432 1834 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2450 1903 N M 7 -13 - 0 0 0 sco K ; -2457 1890 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2457 1890 N M 4 -14 - 0 0 0 sco K ; -2461 1876 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2461 1876 N M 0 -15 - 0 0 0 sco K ; -2461 1861 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2461 1861 N M -4 -14 - 0 0 0 sco K ; -2457 1847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2457 1847 N M -7 -13 - 0 0 0 sco K ; -2450 1834 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2450 1903 N M 19 0 - 0 0 0 sco K ; -2469 1903 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2469 1903 N M 17 -4 - 0 0 0 sco K ; -2486 1899 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2486 1899 N M 17 -7 - 0 0 0 sco K ; -2503 1892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2503 1892 N M 16 -10 - 0 0 0 sco K ; -2519 1882 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2519 1882 N M 12 -13 - 0 0 0 sco K ; -2531 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2531 1869 N M -12 -14 - 0 0 0 sco K ; -2519 1855 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2519 1855 N M -16 -10 - 0 0 0 sco K ; -2503 1845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2503 1845 N M -17 -7 - 0 0 0 sco K ; -2486 1838 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2486 1838 N M -17 -4 - 0 0 0 sco K ; -2469 1834 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2469 1834 N M -19 0 - 0 0 0 sco K ; -2450 1834 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2439 1892 N M -372 0 - 0 0 0 sco K ; -2067 1892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1845 N M 70 0 - 0 0 0 sco K ; -2439 1845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2090 1869 N M 0 -47 - 0 0 0 sco K ; -2090 1822 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2090 1822 N M 279 0 - 0 0 0 sco K ; -2369 1822 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1822 N M 0 47 - 0 0 0 sco K ; -2369 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1869 N M -279 0 - 0 0 0 sco K ; -2090 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2090 1985 N M 0 0 - 0 0 0 sco K ; -2090 1985 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 2031 N M 0 -46 - 0 0 0 sco K ; -1742 1985 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 1985 N M 302 0 - 0 0 0 sco K ; -2044 1985 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2044 1985 N M 23 23 - 0 0 0 sco K ; -2067 2008 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 2008 N M -23 23 - 0 0 0 sco K ; -2044 2031 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2044 2031 N M -302 0 - 0 0 0 sco K ; -1742 2031 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 2031 N M 0 0 - 0 0 0 sco K ; -1742 2031 N M 0 0 rr : 0 0 0 sco O ; : 2102 1946 551 33 rc 0 0 0 sco F0_22_30 -Ji -2131 1946 M -2.167 0 (pin-16-out-invert)A -; : 1791 1993 348 33 rc 0 0 0 sco F0_22_30 -Ji -1820 1993 M -2.296 0 (pin-16-out)A -; : 0 0 3229 2391 rc -2432 2020 N M 7 -13 - 0 0 0 sco K ; -2439 2007 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2439 2007 N M 4 -15 - 0 0 0 sco K ; -2443 1992 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2443 1992 N M 0 -15 - 0 0 0 sco K ; -2443 1977 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2443 1977 N M -4 -14 - 0 0 0 sco K ; -2439 1963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2439 1963 N M -7 -13 - 0 0 0 sco K ; -2432 1950 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2450 2020 N M 7 -13 - 0 0 0 sco K ; -2457 2007 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2457 2007 N M 4 -15 - 0 0 0 sco K ; -2461 1992 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2461 1992 N M 0 -15 - 0 0 0 sco K ; -2461 1977 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2461 1977 N M -4 -14 - 0 0 0 sco K ; -2457 1963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2457 1963 N M -7 -13 - 0 0 0 sco K ; -2450 1950 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2450 2020 N M 19 -1 - 0 0 0 sco K ; -2469 2019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2469 2019 N M 17 -4 - 0 0 0 sco K ; -2486 2015 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2486 2015 N M 17 -7 - 0 0 0 sco K ; -2503 2008 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2503 2008 N M 16 -10 - 0 0 0 sco K ; -2519 1998 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2519 1998 N M 12 -13 - 0 0 0 sco K ; -2531 1985 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2531 1985 N M -12 -13 - 0 0 0 sco K ; -2519 1972 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2519 1972 N M -16 -11 - 0 0 0 sco K ; -2503 1961 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2503 1961 N M -17 -7 - 0 0 0 sco K ; -2486 1954 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2486 1954 N M -17 -4 - 0 0 0 sco K ; -2469 1950 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2469 1950 N M -19 0 - 0 0 0 sco K ; -2450 1950 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2439 2008 N M -372 0 - 0 0 0 sco K ; -2067 2008 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1961 N M 70 0 - 0 0 0 sco K ; -2439 1961 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2090 1985 N M 0 -47 - 0 0 0 sco K ; -2090 1938 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2090 1938 N M 279 0 - 0 0 0 sco K ; -2369 1938 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1938 N M 0 47 - 0 0 0 sco K ; -2369 1985 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1985 N M -279 0 - 0 0 0 sco K ; -2090 1985 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2090 2101 N M 0 0 - 0 0 0 sco K ; -2090 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 2147 N M 0 -46 - 0 0 0 sco K ; -1742 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 2101 N M 302 0 - 0 0 0 sco K ; -2044 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2044 2101 N M 23 23 - 0 0 0 sco K ; -2067 2124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 2124 N M -23 23 - 0 0 0 sco K ; -2044 2147 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2044 2147 N M -302 0 - 0 0 0 sco K ; -1742 2147 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 2147 N M 0 0 - 0 0 0 sco K ; -1742 2147 N M 0 0 rr : 0 0 0 sco O ; : 2102 2062 551 33 rc 0 0 0 sco F0_22_30 -Ji -2131 2062 M -2.167 0 (pin-14-out-invert)A -; : 1791 2109 348 33 rc 0 0 0 sco F0_22_30 -Ji -1820 2109 M -2.296 0 (pin-14-out)A -; : 0 0 3229 2391 rc -2432 2136 N M 7 -13 - 0 0 0 sco K ; -2439 2123 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2439 2123 N M 4 -15 - 0 0 0 sco K ; -2443 2108 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2443 2108 N M 0 -15 - 0 0 0 sco K ; -2443 2093 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2443 2093 N M -4 -14 - 0 0 0 sco K ; -2439 2079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2439 2079 N M -7 -13 - 0 0 0 sco K ; -2432 2066 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2450 2136 N M 7 -13 - 0 0 0 sco K ; -2457 2123 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2457 2123 N M 4 -15 - 0 0 0 sco K ; -2461 2108 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2461 2108 N M 0 -15 - 0 0 0 sco K ; -2461 2093 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2461 2093 N M -4 -14 - 0 0 0 sco K ; -2457 2079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2457 2079 N M -7 -13 - 0 0 0 sco K ; -2450 2066 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2450 2136 N M 19 -1 - 0 0 0 sco K ; -2469 2135 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2469 2135 N M 17 -4 - 0 0 0 sco K ; -2486 2131 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2486 2131 N M 17 -7 - 0 0 0 sco K ; -2503 2124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2503 2124 N M 16 -10 - 0 0 0 sco K ; -2519 2114 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2519 2114 N M 12 -13 - 0 0 0 sco K ; -2531 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2531 2101 N M -12 -13 - 0 0 0 sco K ; -2519 2088 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2519 2088 N M -16 -11 - 0 0 0 sco K ; -2503 2077 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2503 2077 N M -17 -7 - 0 0 0 sco K ; -2486 2070 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2486 2070 N M -17 -4 - 0 0 0 sco K ; -2469 2066 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2469 2066 N M -19 0 - 0 0 0 sco K ; -2450 2066 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2439 2124 N M -372 0 - 0 0 0 sco K ; -2067 2124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 2078 N M 70 0 - 0 0 0 sco K ; -2439 2078 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2090 2101 N M 0 -47 - 0 0 0 sco K ; -2090 2054 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2090 2054 N M 279 0 - 0 0 0 sco K ; -2369 2054 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 2054 N M 0 47 - 0 0 0 sco K ; -2369 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 2101 N M -279 0 - 0 0 0 sco K ; -2090 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2090 2217 N M 0 0 - 0 0 0 sco K ; -2090 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 2263 N M 0 -46 - 0 0 0 sco K ; -1742 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 2217 N M 302 0 - 0 0 0 sco K ; -2044 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2044 2217 N M 23 23 - 0 0 0 sco K ; -2067 2240 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2067 2240 N M -23 23 - 0 0 0 sco K ; -2044 2263 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2044 2263 N M -302 0 - 0 0 0 sco K ; -1742 2263 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1742 2263 N M 0 0 - 0 0 0 sco K ; -1742 2263 N M 0 0 rr : 0 0 0 sco O ; : 2110 2178 522 33 rc 0 0 0 sco F0_22_30 -Ji -2139 2178 M -2.129 0 (pin-1-out-invert)A -; : 1799 2225 319 33 rc 0 0 0 sco F0_22_30 -Ji -1828 2225 M -2.243 0 (pin-1-out)A -; : 0 0 3229 2391 rc -2432 2252 N M 7 -13 - 0 0 0 sco K ; -2439 2239 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2439 2239 N M 4 -15 - 0 0 0 sco K ; -2443 2224 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2443 2224 N M 0 -14 - 0 0 0 sco K ; -2443 2210 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2443 2210 N M -4 -15 - 0 0 0 sco K ; -2439 2195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2439 2195 N M -7 -13 - 0 0 0 sco K ; -2432 2182 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2450 2252 N M 7 -13 - 0 0 0 sco K ; -2457 2239 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2457 2239 N M 4 -15 - 0 0 0 sco K ; -2461 2224 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2461 2224 N M 0 -14 - 0 0 0 sco K ; -2461 2210 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2461 2210 N M -4 -15 - 0 0 0 sco K ; -2457 2195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2457 2195 N M -7 -13 - 0 0 0 sco K ; -2450 2182 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2450 2252 N M 19 -1 - 0 0 0 sco K ; -2469 2251 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2469 2251 N M 17 -3 - 0 0 0 sco K ; -2486 2248 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2486 2248 N M 17 -8 - 0 0 0 sco K ; -2503 2240 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2503 2240 N M 16 -10 - 0 0 0 sco K ; -2519 2230 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2519 2230 N M 12 -13 - 0 0 0 sco K ; -2531 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2531 2217 N M -12 -13 - 0 0 0 sco K ; -2519 2204 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2519 2204 N M -16 -10 - 0 0 0 sco K ; -2503 2194 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2503 2194 N M -17 -8 - 0 0 0 sco K ; -2486 2186 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2486 2186 N M -17 -4 - 0 0 0 sco K ; -2469 2182 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2469 2182 N M -19 0 - 0 0 0 sco K ; -2450 2182 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2439 2240 N M -372 0 - 0 0 0 sco K ; -2067 2240 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 2194 N M 70 0 - 0 0 0 sco K ; -2439 2194 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2090 2217 N M 0 -46 - 0 0 0 sco K ; -2090 2171 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2090 2171 N M 279 0 - 0 0 0 sco K ; -2369 2171 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 2171 N M 0 46 - 0 0 0 sco K ; -2369 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 2217 N M -279 0 - 0 0 0 sco K ; -2090 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 1079 N M 0 23 - 0 0 0 sco K ; -1788 1102 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 1195 N M 0 23 - 0 0 0 sco K ; -1788 1218 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 1311 N M 0 23 - 0 0 0 sco K ; -1788 1334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 1427 N M 0 23 - 0 0 0 sco K ; -1788 1450 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 1543 N M 0 24 - 0 0 0 sco K ; -1788 1567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 1776 N M 0 93 - 0 0 0 sco K ; -1788 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 2031 N M 0 70 - 0 0 0 sco K ; -1788 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 2147 N M 0 70 - 0 0 0 sco K ; -1788 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 1915 N M 0 70 - 0 0 0 sco K ; -1788 1985 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 1660 N M 0 23 - 0 0 0 sco K ; -1788 1683 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 847 N M 0 23 - 0 0 0 sco K ; -1788 870 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 730 N M 0 24 - 0 0 0 sco K ; -1788 754 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 614 N M 0 24 - 0 0 0 sco K ; -1788 638 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 498 N M 0 23 - 0 0 0 sco K ; -1788 521 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 382 N M 0 23 - 0 0 0 sco K ; -1788 405 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 963 N M 0 23 - 0 0 0 sco K ; -1788 986 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 847 N M -23 -24 - 0 0 0 sco K ; -139 823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 823 N M 23 -23 - 0 0 0 sco K ; -162 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 800 N M 302 0 - 0 0 0 sco K ; -464 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 800 N M 0 47 - 0 0 0 sco K ; -464 847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 847 N M -302 0 - 0 0 0 sco K ; -162 847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 847 N M 0 0 - 0 0 0 sco K ; -162 847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 800 N M -23 -23 - 0 0 0 sco K ; -139 777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 777 N M 23 -23 - 0 0 0 sco K ; -162 754 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 754 N M 302 0 - 0 0 0 sco K ; -464 754 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 754 N M 0 46 - 0 0 0 sco K ; -464 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 800 N M -302 0 - 0 0 0 sco K ; -162 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 800 N M 0 0 - 0 0 0 sco K ; -162 800 N M 0 0 rr : 0 0 0 sco O ; : 197 808 435 33 rc 0 0 0 sco F0_22_30 -Ji -226 808 M -2.193 0 (pin-10-in-not)A -; : 220 762 319 33 rc 0 0 0 sco F0_22_30 -Ji -249 762 M -2.158 0 (pin-10-in)A -; -N 540 823 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -546 823 N M 58 -34 - 1 Lw solid 0 0 0 sco K ; -604 789 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -604 789 N M 0 69 - 1 Lw solid 0 0 0 sco K ; -604 858 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -604 858 N M -58 -35 - 1 Lw solid 0 0 0 sco K ; -546 823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -546 823 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -546 823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 777 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -650 777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -650 777 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -650 823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -650 823 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -604 823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -534 823 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -464 823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -697 800 N M 69 -35 - 1 Lw solid 0 0 0 sco K ; -766 765 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 765 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -766 835 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 835 N M -69 -35 - 1 Lw solid 0 0 0 sco K ; -697 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -697 800 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -697 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -697 800 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -650 800 N M 0 0 rr : 0 0 0 sco O ; -655 800 N M -2 -3 - -4 -1 - -3 2 - 0 4 - 3 3 - 4 -1 - 2 -4 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -655 800 N M -2 -3 - 0 0 0 sco K ; -653 797 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -653 797 N M -4 -1 - 0 0 0 sco K ; -649 796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -649 796 N M -3 2 - 0 0 0 sco K ; -646 798 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -646 798 N M 0 4 - 0 0 0 sco K ; -646 802 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -646 802 N M 3 3 - 0 0 0 sco K ; -649 805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -649 805 N M 4 -1 - 0 0 0 sco K ; -653 804 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -653 804 N M 2 -4 - 0 0 0 sco K ; -655 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 730 N M -23 -23 - 0 0 0 sco K ; -139 707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 707 N M 23 -23 - 0 0 0 sco K ; -162 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 684 N M 302 0 - 0 0 0 sco K ; -464 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 684 N M 0 46 - 0 0 0 sco K ; -464 730 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 730 N M -302 0 - 0 0 0 sco K ; -162 730 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 730 N M 0 0 - 0 0 0 sco K ; -162 730 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 684 N M -23 -23 - 0 0 0 sco K ; -139 661 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 661 N M 23 -23 - 0 0 0 sco K ; -162 638 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 638 N M 302 0 - 0 0 0 sco K ; -464 638 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 638 N M 0 46 - 0 0 0 sco K ; -464 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 684 N M -302 0 - 0 0 0 sco K ; -162 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 684 N M 0 0 - 0 0 0 sco K ; -162 684 N M 0 0 rr : 0 0 0 sco O ; : 197 692 435 33 rc 0 0 0 sco F0_22_30 -Ji -226 692 M -2.193 0 (pin-11-in-not)A -; : 220 645 319 33 rc 0 0 0 sco F0_22_30 -Ji -249 645 M -2.158 0 (pin-11-in)A -; -N 540 707 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -546 707 N M 58 -35 - 1 Lw solid 0 0 0 sco K ; -604 672 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -604 672 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -604 742 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -604 742 N M -58 -35 - 1 Lw solid 0 0 0 sco K ; -546 707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -546 707 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -546 707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 661 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -650 661 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -650 661 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -650 707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -650 707 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -604 707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -534 707 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -464 707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -697 684 N M 69 -35 - 1 Lw solid 0 0 0 sco K ; -766 649 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 649 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -766 719 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 719 N M -69 -35 - 1 Lw solid 0 0 0 sco K ; -697 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -697 684 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -697 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -697 684 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -650 684 N M 0 0 rr : 0 0 0 sco O ; -655 684 N M -2 -4 - -4 -1 - -3 3 - 0 4 - 3 3 - 4 -1 - 2 -4 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -655 684 N M -2 -4 - 0 0 0 sco K ; -653 680 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -653 680 N M -4 -1 - 0 0 0 sco K ; -649 679 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -649 679 N M -3 3 - 0 0 0 sco K ; -646 682 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -646 682 N M 0 4 - 0 0 0 sco K ; -646 686 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -646 686 N M 3 3 - 0 0 0 sco K ; -649 689 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -649 689 N M 4 -1 - 0 0 0 sco K ; -653 688 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -653 688 N M 2 -4 - 0 0 0 sco K ; -655 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 614 N M -23 -23 - 0 0 0 sco K ; -139 591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 591 N M 23 -23 - 0 0 0 sco K ; -162 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 568 N M 302 0 - 0 0 0 sco K ; -464 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 568 N M 0 46 - 0 0 0 sco K ; -464 614 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 614 N M -302 0 - 0 0 0 sco K ; -162 614 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 614 N M 0 0 - 0 0 0 sco K ; -162 614 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 568 N M -23 -23 - 0 0 0 sco K ; -139 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 545 N M 23 -24 - 0 0 0 sco K ; -162 521 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 521 N M 302 0 - 0 0 0 sco K ; -464 521 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 521 N M 0 47 - 0 0 0 sco K ; -464 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 568 N M -302 0 - 0 0 0 sco K ; -162 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 568 N M 0 0 - 0 0 0 sco K ; -162 568 N M 0 0 rr : 0 0 0 sco O ; : 197 576 435 33 rc 0 0 0 sco F0_22_30 -Ji -226 576 M -2.193 0 (pin-12-in-not)A -; : 220 529 319 33 rc 0 0 0 sco F0_22_30 -Ji -249 529 M -2.158 0 (pin-12-in)A -; -N 540 591 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -546 591 N M 58 -35 - 1 Lw solid 0 0 0 sco K ; -604 556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -604 556 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -604 626 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -604 626 N M -58 -35 - 1 Lw solid 0 0 0 sco K ; -546 591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -546 591 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -546 591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 545 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -650 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -650 545 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -650 591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -650 591 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -604 591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -534 591 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -464 591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -697 568 N M 69 -35 - 1 Lw solid 0 0 0 sco K ; -766 533 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 533 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -766 603 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 603 N M -69 -35 - 1 Lw solid 0 0 0 sco K ; -697 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -697 568 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -697 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -697 568 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -650 568 N M 0 0 rr : 0 0 0 sco O ; -655 568 N M -2 -4 - -4 -1 - -3 3 - 0 4 - 3 2 - 4 0 - 2 -4 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -655 568 N M -2 -4 - 0 0 0 sco K ; -653 564 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -653 564 N M -4 -1 - 0 0 0 sco K ; -649 563 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -649 563 N M -3 3 - 0 0 0 sco K ; -646 566 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -646 566 N M 0 4 - 0 0 0 sco K ; -646 570 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -646 570 N M 3 2 - 0 0 0 sco K ; -649 572 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -649 572 N M 4 0 - 0 0 0 sco K ; -653 572 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -653 572 N M 2 -4 - 0 0 0 sco K ; -655 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 498 N M -23 -23 - 0 0 0 sco K ; -139 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 475 N M 23 -23 - 0 0 0 sco K ; -162 452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 452 N M 302 0 - 0 0 0 sco K ; -464 452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 452 N M 0 46 - 0 0 0 sco K ; -464 498 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 498 N M -302 0 - 0 0 0 sco K ; -162 498 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 498 N M 0 0 - 0 0 0 sco K ; -162 498 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 452 N M -23 -23 - 0 0 0 sco K ; -139 429 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 429 N M 23 -24 - 0 0 0 sco K ; -162 405 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 405 N M 302 0 - 0 0 0 sco K ; -464 405 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 405 N M 0 47 - 0 0 0 sco K ; -464 452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 452 N M -302 0 - 0 0 0 sco K ; -162 452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 452 N M 0 0 - 0 0 0 sco K ; -162 452 N M 0 0 rr : 0 0 0 sco O ; : 197 460 435 33 rc 0 0 0 sco F0_22_30 -Ji -226 460 M -2.193 0 (pin-13-in-not)A -; : 220 413 319 33 rc 0 0 0 sco F0_22_30 -Ji -249 413 M -2.158 0 (pin-13-in)A -; -N 540 475 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -546 475 N M 58 -35 - 1 Lw solid 0 0 0 sco K ; -604 440 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -604 440 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -604 510 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -604 510 N M -58 -35 - 1 Lw solid 0 0 0 sco K ; -546 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -546 475 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -546 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 429 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -650 429 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -650 429 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -650 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -650 475 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -604 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -534 475 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -464 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -697 452 N M 69 -35 - 1 Lw solid 0 0 0 sco K ; -766 417 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 417 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -766 487 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 487 N M -69 -35 - 1 Lw solid 0 0 0 sco K ; -697 452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -697 452 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -697 452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -697 452 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -650 452 N M 0 0 rr : 0 0 0 sco O ; -655 452 N M -2 -4 - -4 -1 - -3 3 - 0 4 - 3 2 - 4 -1 - 2 -3 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -655 452 N M -2 -4 - 0 0 0 sco K ; -653 448 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -653 448 N M -4 -1 - 0 0 0 sco K ; -649 447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -649 447 N M -3 3 - 0 0 0 sco K ; -646 450 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -646 450 N M 0 4 - 0 0 0 sco K ; -646 454 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -646 454 N M 3 2 - 0 0 0 sco K ; -649 456 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -649 456 N M 4 -1 - 0 0 0 sco K ; -653 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -653 455 N M 2 -3 - 0 0 0 sco K ; -655 452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 382 N M -23 -23 - 0 0 0 sco K ; -139 359 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 359 N M 23 -23 - 0 0 0 sco K ; -162 336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 336 N M 302 0 - 0 0 0 sco K ; -464 336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 336 N M 0 46 - 0 0 0 sco K ; -464 382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 382 N M -302 0 - 0 0 0 sco K ; -162 382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 382 N M 0 0 - 0 0 0 sco K ; -162 382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 336 N M -23 -24 - 0 0 0 sco K ; -139 312 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 312 N M 23 -23 - 0 0 0 sco K ; -162 289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 289 N M 302 0 - 0 0 0 sco K ; -464 289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 289 N M 0 47 - 0 0 0 sco K ; -464 336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 336 N M -302 0 - 0 0 0 sco K ; -162 336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -162 336 N M 0 0 - 0 0 0 sco K ; -162 336 N M 0 0 rr : 0 0 0 sco O ; : 197 343 435 33 rc 0 0 0 sco F0_22_30 -Ji -226 343 M -2.193 0 (pin-15-in-not)A -; : 220 297 319 33 rc 0 0 0 sco F0_22_30 -Ji -249 297 M -2.158 0 (pin-15-in)A -; -N 540 359 6.000 360 0 An C 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -546 359 N M 58 -35 - 1 Lw solid 0 0 0 sco K ; -604 324 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -604 324 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -604 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -604 394 N M -58 -35 - 1 Lw solid 0 0 0 sco K ; -546 359 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -546 359 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -546 359 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 312 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -650 312 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -650 312 N M 0 47 - 1 Lw solid 0 0 0 sco K ; -650 359 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -650 359 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -604 359 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -534 359 N M -70 0 - 1 Lw solid 0 0 0 sco K ; -464 359 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -697 336 N M 69 -35 - 1 Lw solid 0 0 0 sco K ; -766 301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 301 N M 0 69 - 1 Lw solid 0 0 0 sco K ; -766 370 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 370 N M -69 -34 - 1 Lw solid 0 0 0 sco K ; -697 336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -697 336 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -697 336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -697 336 N M -47 0 - 1 Lw solid 0 0 0 sco K ; -650 336 N M 0 0 rr : 0 0 0 sco O ; -655 336 N M -2 -4 - -4 -1 - -3 3 - 0 4 - 3 2 - 4 -1 - 2 -3 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -655 336 N M -2 -4 - 0 0 0 sco K ; -653 332 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -653 332 N M -4 -1 - 0 0 0 sco K ; -649 331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -649 331 N M -3 3 - 0 0 0 sco K ; -646 334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -646 334 N M 0 4 - 0 0 0 sco K ; -646 338 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -646 338 N M 3 2 - 0 0 0 sco K ; -649 340 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -649 340 N M 4 -1 - 0 0 0 sco K ; -653 339 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -653 339 N M 2 -3 - 0 0 0 sco K ; -655 336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1056 N M 0 0 - 0 0 0 sco K ; -488 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1102 N M 0 -46 - 0 0 0 sco K ; -139 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1056 N M 302 0 - 0 0 0 sco K ; -441 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1056 N M 23 23 - 0 0 0 sco K ; -464 1079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 1079 N M -23 23 - 0 0 0 sco K ; -441 1102 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1102 N M -302 0 - 0 0 0 sco K ; -139 1102 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1102 N M 0 0 - 0 0 0 sco K ; -139 1102 N M 0 0 rr : 0 0 0 sco O ; : 507 1017 522 33 rc 0 0 0 sco F0_22_30 -Ji -536 1017 M -2.129 0 (pin-8-out-invert)A -; : 196 1063 319 33 rc 0 0 0 sco F0_22_30 -Ji -225 1063 M -2.243 0 (pin-8-out)A -; : 0 0 3229 2391 rc -829 1090 N M 7 -12 - 0 0 0 sco K ; -836 1078 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1078 N M 4 -15 - 0 0 0 sco K ; -840 1063 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1063 N M 0 -15 - 0 0 0 sco K ; -840 1048 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1048 N M -4 -14 - 0 0 0 sco K ; -836 1034 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1034 N M -7 -13 - 0 0 0 sco K ; -829 1021 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 1090 N M 7 -12 - 0 0 0 sco K ; -855 1078 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1078 N M 4 -15 - 0 0 0 sco K ; -859 1063 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1063 N M 0 -15 - 0 0 0 sco K ; -859 1048 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1048 N M -4 -14 - 0 0 0 sco K ; -855 1034 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1034 N M -7 -13 - 0 0 0 sco K ; -848 1021 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 1090 N M 18 0 - 0 0 0 sco K ; -866 1090 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1090 N M 18 -4 - 0 0 0 sco K ; -884 1086 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1086 N M 17 -7 - 0 0 0 sco K ; -901 1079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1079 N M 15 -10 - 0 0 0 sco K ; -916 1069 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1069 N M 13 -13 - 0 0 0 sco K ; -929 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1056 N M -13 -13 - 0 0 0 sco K ; -916 1043 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1043 N M -15 -11 - 0 0 0 sco K ; -901 1032 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1032 N M -17 -7 - 0 0 0 sco K ; -884 1025 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1025 N M -18 -4 - 0 0 0 sco K ; -866 1021 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1021 N M -18 0 - 0 0 0 sco K ; -848 1021 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1079 N M -372 0 - 0 0 0 sco K ; -464 1079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1032 N M 70 0 - 0 0 0 sco K ; -836 1032 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1056 N M 0 -47 - 0 0 0 sco K ; -488 1009 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1009 N M 278 0 - 0 0 0 sco K ; -766 1009 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1009 N M 0 47 - 0 0 0 sco K ; -766 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1056 N M -278 0 - 0 0 0 sco K ; -488 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1172 N M 0 0 - 0 0 0 sco K ; -488 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1218 N M 0 -46 - 0 0 0 sco K ; -139 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1172 N M 302 0 - 0 0 0 sco K ; -441 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1172 N M 23 23 - 0 0 0 sco K ; -464 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 1195 N M -23 23 - 0 0 0 sco K ; -441 1218 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1218 N M -302 0 - 0 0 0 sco K ; -139 1218 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1218 N M 0 0 - 0 0 0 sco K ; -139 1218 N M 0 0 rr : 0 0 0 sco O ; : 507 1133 522 33 rc 0 0 0 sco F0_22_30 -Ji -536 1133 M -2.129 0 (pin-7-out-invert)A -; : 196 1180 319 33 rc 0 0 0 sco F0_22_30 -Ji -225 1180 M -2.243 0 (pin-7-out)A -; : 0 0 3229 2391 rc -829 1207 N M 7 -13 - 0 0 0 sco K ; -836 1194 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1194 N M 4 -15 - 0 0 0 sco K ; -840 1179 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1179 N M 0 -15 - 0 0 0 sco K ; -840 1164 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1164 N M -4 -14 - 0 0 0 sco K ; -836 1150 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1150 N M -7 -13 - 0 0 0 sco K ; -829 1137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 1207 N M 7 -13 - 0 0 0 sco K ; -855 1194 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1194 N M 4 -15 - 0 0 0 sco K ; -859 1179 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1179 N M 0 -15 - 0 0 0 sco K ; -859 1164 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1164 N M -4 -14 - 0 0 0 sco K ; -855 1150 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1150 N M -7 -13 - 0 0 0 sco K ; -848 1137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 1207 N M 18 -1 - 0 0 0 sco K ; -866 1206 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1206 N M 18 -4 - 0 0 0 sco K ; -884 1202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1202 N M 17 -7 - 0 0 0 sco K ; -901 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1195 N M 15 -10 - 0 0 0 sco K ; -916 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1185 N M 13 -13 - 0 0 0 sco K ; -929 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1172 N M -13 -13 - 0 0 0 sco K ; -916 1159 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1159 N M -15 -11 - 0 0 0 sco K ; -901 1148 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1148 N M -17 -7 - 0 0 0 sco K ; -884 1141 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1141 N M -18 -4 - 0 0 0 sco K ; -866 1137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1137 N M -18 0 - 0 0 0 sco K ; -848 1137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1195 N M -372 0 - 0 0 0 sco K ; -464 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1149 N M 70 0 - 0 0 0 sco K ; -836 1149 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1172 N M 0 -47 - 0 0 0 sco K ; -488 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1125 N M 278 0 - 0 0 0 sco K ; -766 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1125 N M 0 47 - 0 0 0 sco K ; -766 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1172 N M -278 0 - 0 0 0 sco K ; -488 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1288 N M 0 0 - 0 0 0 sco K ; -488 1288 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1334 N M 0 -46 - 0 0 0 sco K ; -139 1288 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1288 N M 302 0 - 0 0 0 sco K ; -441 1288 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1288 N M 23 23 - 0 0 0 sco K ; -464 1311 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 1311 N M -23 23 - 0 0 0 sco K ; -441 1334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1334 N M -302 0 - 0 0 0 sco K ; -139 1334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1334 N M 0 0 - 0 0 0 sco K ; -139 1334 N M 0 0 rr : 0 0 0 sco O ; : 507 1249 522 33 rc 0 0 0 sco F0_22_30 -Ji -536 1249 M -2.129 0 (pin-6-out-invert)A -; : 196 1296 319 33 rc 0 0 0 sco F0_22_30 -Ji -225 1296 M -2.243 0 (pin-6-out)A -; : 0 0 3229 2391 rc -829 1323 N M 7 -13 - 0 0 0 sco K ; -836 1310 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1310 N M 4 -15 - 0 0 0 sco K ; -840 1295 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1295 N M 0 -15 - 0 0 0 sco K ; -840 1280 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1280 N M -4 -14 - 0 0 0 sco K ; -836 1266 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1266 N M -7 -13 - 0 0 0 sco K ; -829 1253 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 1323 N M 7 -13 - 0 0 0 sco K ; -855 1310 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1310 N M 4 -15 - 0 0 0 sco K ; -859 1295 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1295 N M 0 -15 - 0 0 0 sco K ; -859 1280 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1280 N M -4 -14 - 0 0 0 sco K ; -855 1266 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1266 N M -7 -13 - 0 0 0 sco K ; -848 1253 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 1323 N M 18 -1 - 0 0 0 sco K ; -866 1322 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1322 N M 18 -3 - 0 0 0 sco K ; -884 1319 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1319 N M 17 -8 - 0 0 0 sco K ; -901 1311 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1311 N M 15 -10 - 0 0 0 sco K ; -916 1301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1301 N M 13 -13 - 0 0 0 sco K ; -929 1288 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1288 N M -13 -13 - 0 0 0 sco K ; -916 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1275 N M -15 -11 - 0 0 0 sco K ; -901 1264 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1264 N M -17 -7 - 0 0 0 sco K ; -884 1257 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1257 N M -18 -4 - 0 0 0 sco K ; -866 1253 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1253 N M -18 0 - 0 0 0 sco K ; -848 1253 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1311 N M -372 0 - 0 0 0 sco K ; -464 1311 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1265 N M 70 0 - 0 0 0 sco K ; -836 1265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1288 N M 0 -47 - 0 0 0 sco K ; -488 1241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1241 N M 278 0 - 0 0 0 sco K ; -766 1241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1241 N M 0 47 - 0 0 0 sco K ; -766 1288 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1288 N M -278 0 - 0 0 0 sco K ; -488 1288 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1404 N M 0 0 - 0 0 0 sco K ; -488 1404 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1450 N M 0 -46 - 0 0 0 sco K ; -139 1404 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1404 N M 302 0 - 0 0 0 sco K ; -441 1404 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1404 N M 23 23 - 0 0 0 sco K ; -464 1427 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 1427 N M -23 23 - 0 0 0 sco K ; -441 1450 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1450 N M -302 0 - 0 0 0 sco K ; -139 1450 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1450 N M 0 0 - 0 0 0 sco K ; -139 1450 N M 0 0 rr : 0 0 0 sco O ; : 507 1365 522 33 rc 0 0 0 sco F0_22_30 -Ji -536 1365 M -2.129 0 (pin-5-out-invert)A -; : 196 1412 319 33 rc 0 0 0 sco F0_22_30 -Ji -225 1412 M -2.243 0 (pin-5-out)A -; : 0 0 3229 2391 rc -829 1439 N M 7 -13 - 0 0 0 sco K ; -836 1426 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1426 N M 4 -15 - 0 0 0 sco K ; -840 1411 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1411 N M 0 -14 - 0 0 0 sco K ; -840 1397 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1397 N M -4 -15 - 0 0 0 sco K ; -836 1382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1382 N M -7 -13 - 0 0 0 sco K ; -829 1369 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 1439 N M 7 -13 - 0 0 0 sco K ; -855 1426 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1426 N M 4 -15 - 0 0 0 sco K ; -859 1411 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1411 N M 0 -14 - 0 0 0 sco K ; -859 1397 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1397 N M -4 -15 - 0 0 0 sco K ; -855 1382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1382 N M -7 -13 - 0 0 0 sco K ; -848 1369 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 1439 N M 18 0 - 0 0 0 sco K ; -866 1439 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1439 N M 18 -4 - 0 0 0 sco K ; -884 1435 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1435 N M 17 -8 - 0 0 0 sco K ; -901 1427 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1427 N M 15 -10 - 0 0 0 sco K ; -916 1417 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1417 N M 13 -13 - 0 0 0 sco K ; -929 1404 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1404 N M -13 -13 - 0 0 0 sco K ; -916 1391 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1391 N M -15 -10 - 0 0 0 sco K ; -901 1381 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1381 N M -17 -8 - 0 0 0 sco K ; -884 1373 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1373 N M -18 -3 - 0 0 0 sco K ; -866 1370 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1370 N M -18 -1 - 0 0 0 sco K ; -848 1369 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1427 N M -372 0 - 0 0 0 sco K ; -464 1427 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1381 N M 70 0 - 0 0 0 sco K ; -836 1381 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1404 N M 0 -46 - 0 0 0 sco K ; -488 1358 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1358 N M 278 0 - 0 0 0 sco K ; -766 1358 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1358 N M 0 46 - 0 0 0 sco K ; -766 1404 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1404 N M -278 0 - 0 0 0 sco K ; -488 1404 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1520 N M 0 0 - 0 0 0 sco K ; -488 1520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1567 N M 0 -47 - 0 0 0 sco K ; -139 1520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1520 N M 302 0 - 0 0 0 sco K ; -441 1520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1520 N M 23 23 - 0 0 0 sco K ; -464 1543 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 1543 N M -23 24 - 0 0 0 sco K ; -441 1567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1567 N M -302 0 - 0 0 0 sco K ; -139 1567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1567 N M 0 0 - 0 0 0 sco K ; -139 1567 N M 0 0 rr : 0 0 0 sco O ; : 507 1482 522 33 rc 0 0 0 sco F0_22_30 -Ji -536 1482 M -2.129 0 (pin-4-out-invert)A -; : 196 1528 319 33 rc 0 0 0 sco F0_22_30 -Ji -225 1528 M -2.243 0 (pin-4-out)A -; : 0 0 3229 2391 rc -829 1555 N M 7 -13 - 0 0 0 sco K ; -836 1542 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1542 N M 4 -14 - 0 0 0 sco K ; -840 1528 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1528 N M 0 -15 - 0 0 0 sco K ; -840 1513 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1513 N M -4 -15 - 0 0 0 sco K ; -836 1498 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1498 N M -7 -13 - 0 0 0 sco K ; -829 1485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 1555 N M 7 -13 - 0 0 0 sco K ; -855 1542 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1542 N M 4 -14 - 0 0 0 sco K ; -859 1528 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1528 N M 0 -15 - 0 0 0 sco K ; -859 1513 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1513 N M -4 -15 - 0 0 0 sco K ; -855 1498 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1498 N M -7 -13 - 0 0 0 sco K ; -848 1485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 1555 N M 18 0 - 0 0 0 sco K ; -866 1555 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1555 N M 18 -4 - 0 0 0 sco K ; -884 1551 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1551 N M 17 -7 - 0 0 0 sco K ; -901 1544 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1544 N M 15 -11 - 0 0 0 sco K ; -916 1533 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1533 N M 13 -13 - 0 0 0 sco K ; -929 1520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1520 N M -13 -13 - 0 0 0 sco K ; -916 1507 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1507 N M -15 -10 - 0 0 0 sco K ; -901 1497 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1497 N M -17 -7 - 0 0 0 sco K ; -884 1490 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1490 N M -18 -4 - 0 0 0 sco K ; -866 1486 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1486 N M -18 -1 - 0 0 0 sco K ; -848 1485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1543 N M -372 0 - 0 0 0 sco K ; -464 1543 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1497 N M 70 0 - 0 0 0 sco K ; -836 1497 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1520 N M 0 -46 - 0 0 0 sco K ; -488 1474 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1474 N M 278 0 - 0 0 0 sco K ; -766 1474 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1474 N M 0 46 - 0 0 0 sco K ; -766 1520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1520 N M -278 0 - 0 0 0 sco K ; -488 1520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1636 N M 0 0 - 0 0 0 sco K ; -488 1636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1683 N M 0 -47 - 0 0 0 sco K ; -139 1636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1636 N M 302 0 - 0 0 0 sco K ; -441 1636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1636 N M 23 24 - 0 0 0 sco K ; -464 1660 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 1660 N M -23 23 - 0 0 0 sco K ; -441 1683 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1683 N M -302 0 - 0 0 0 sco K ; -139 1683 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1683 N M 0 0 - 0 0 0 sco K ; -139 1683 N M 0 0 rr : 0 0 0 sco O ; : 507 1598 522 33 rc 0 0 0 sco F0_22_30 -Ji -536 1598 M -2.129 0 (pin-3-out-invert)A -; : 196 1644 319 33 rc 0 0 0 sco F0_22_30 -Ji -225 1644 M -2.243 0 (pin-3-out)A -; : 0 0 3229 2391 rc -829 1671 N M 7 -13 - 0 0 0 sco K ; -836 1658 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1658 N M 4 -14 - 0 0 0 sco K ; -840 1644 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1644 N M 0 -15 - 0 0 0 sco K ; -840 1629 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1629 N M -4 -15 - 0 0 0 sco K ; -836 1614 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1614 N M -7 -13 - 0 0 0 sco K ; -829 1601 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 1671 N M 7 -13 - 0 0 0 sco K ; -855 1658 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1658 N M 4 -14 - 0 0 0 sco K ; -859 1644 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1644 N M 0 -15 - 0 0 0 sco K ; -859 1629 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1629 N M -4 -15 - 0 0 0 sco K ; -855 1614 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1614 N M -7 -13 - 0 0 0 sco K ; -848 1601 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 1671 N M 18 0 - 0 0 0 sco K ; -866 1671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1671 N M 18 -4 - 0 0 0 sco K ; -884 1667 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1667 N M 17 -7 - 0 0 0 sco K ; -901 1660 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1660 N M 15 -11 - 0 0 0 sco K ; -916 1649 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1649 N M 13 -13 - 0 0 0 sco K ; -929 1636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1636 N M -13 -13 - 0 0 0 sco K ; -916 1623 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1623 N M -15 -10 - 0 0 0 sco K ; -901 1613 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1613 N M -17 -7 - 0 0 0 sco K ; -884 1606 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1606 N M -18 -4 - 0 0 0 sco K ; -866 1602 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1602 N M -18 -1 - 0 0 0 sco K ; -848 1601 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1660 N M -372 0 - 0 0 0 sco K ; -464 1660 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1613 N M 70 0 - 0 0 0 sco K ; -836 1613 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1636 N M 0 -46 - 0 0 0 sco K ; -488 1590 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1590 N M 278 0 - 0 0 0 sco K ; -766 1590 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1590 N M 0 46 - 0 0 0 sco K ; -766 1636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1636 N M -278 0 - 0 0 0 sco K ; -488 1636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1752 N M 0 0 - 0 0 0 sco K ; -488 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1799 N M 0 -47 - 0 0 0 sco K ; -139 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1752 N M 302 0 - 0 0 0 sco K ; -441 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1752 N M 23 24 - 0 0 0 sco K ; -464 1776 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 1776 N M -23 23 - 0 0 0 sco K ; -441 1799 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1799 N M -302 0 - 0 0 0 sco K ; -139 1799 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1799 N M 0 0 - 0 0 0 sco K ; -139 1799 N M 0 0 rr : 0 0 0 sco O ; : 507 1714 522 33 rc 0 0 0 sco F0_22_30 -Ji -536 1714 M -2.129 0 (pin-2-out-invert)A -; : 196 1760 319 33 rc 0 0 0 sco F0_22_30 -Ji -225 1760 M -2.243 0 (pin-2-out)A -; : 0 0 3229 2391 rc -829 1787 N M 7 -13 - 0 0 0 sco K ; -836 1774 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1774 N M 4 -14 - 0 0 0 sco K ; -840 1760 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1760 N M 0 -15 - 0 0 0 sco K ; -840 1745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1745 N M -4 -14 - 0 0 0 sco K ; -836 1731 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1731 N M -7 -13 - 0 0 0 sco K ; -829 1718 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 1787 N M 7 -13 - 0 0 0 sco K ; -855 1774 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1774 N M 4 -14 - 0 0 0 sco K ; -859 1760 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1760 N M 0 -15 - 0 0 0 sco K ; -859 1745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1745 N M -4 -14 - 0 0 0 sco K ; -855 1731 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1731 N M -7 -13 - 0 0 0 sco K ; -848 1718 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 1787 N M 18 0 - 0 0 0 sco K ; -866 1787 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1787 N M 18 -4 - 0 0 0 sco K ; -884 1783 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1783 N M 17 -7 - 0 0 0 sco K ; -901 1776 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1776 N M 15 -10 - 0 0 0 sco K ; -916 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1766 N M 13 -14 - 0 0 0 sco K ; -929 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1752 N M -13 -13 - 0 0 0 sco K ; -916 1739 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1739 N M -15 -10 - 0 0 0 sco K ; -901 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1729 N M -17 -7 - 0 0 0 sco K ; -884 1722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1722 N M -18 -4 - 0 0 0 sco K ; -866 1718 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1718 N M -18 0 - 0 0 0 sco K ; -848 1718 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1776 N M -372 0 - 0 0 0 sco K ; -464 1776 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1729 N M 70 0 - 0 0 0 sco K ; -836 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1752 N M 0 -46 - 0 0 0 sco K ; -488 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1706 N M 278 0 - 0 0 0 sco K ; -766 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1706 N M 0 46 - 0 0 0 sco K ; -766 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1752 N M -278 0 - 0 0 0 sco K ; -488 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 940 N M 0 0 - 0 0 0 sco K ; -488 940 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 986 N M 0 -46 - 0 0 0 sco K ; -139 940 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 940 N M 302 0 - 0 0 0 sco K ; -441 940 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 940 N M 23 23 - 0 0 0 sco K ; -464 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 963 N M -23 23 - 0 0 0 sco K ; -441 986 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 986 N M -302 0 - 0 0 0 sco K ; -139 986 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 986 N M 0 0 - 0 0 0 sco K ; -139 986 N M 0 0 rr : 0 0 0 sco O ; : 507 901 522 33 rc 0 0 0 sco F0_22_30 -Ji -536 901 M -2.129 0 (pin-9-out-invert)A -; : 196 947 319 33 rc 0 0 0 sco F0_22_30 -Ji -225 947 M -2.243 0 (pin-9-out)A -; : 0 0 3229 2391 rc -829 974 N M 7 -13 - 0 0 0 sco K ; -836 961 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 961 N M 4 -14 - 0 0 0 sco K ; -840 947 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 947 N M 0 -15 - 0 0 0 sco K ; -840 932 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 932 N M -4 -14 - 0 0 0 sco K ; -836 918 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 918 N M -7 -13 - 0 0 0 sco K ; -829 905 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 974 N M 7 -13 - 0 0 0 sco K ; -855 961 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 961 N M 4 -14 - 0 0 0 sco K ; -859 947 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 947 N M 0 -15 - 0 0 0 sco K ; -859 932 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 932 N M -4 -14 - 0 0 0 sco K ; -855 918 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 918 N M -7 -13 - 0 0 0 sco K ; -848 905 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 974 N M 18 0 - 0 0 0 sco K ; -866 974 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 974 N M 18 -4 - 0 0 0 sco K ; -884 970 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 970 N M 17 -7 - 0 0 0 sco K ; -901 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 963 N M 15 -10 - 0 0 0 sco K ; -916 953 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 953 N M 13 -13 - 0 0 0 sco K ; -929 940 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 940 N M -13 -14 - 0 0 0 sco K ; -916 926 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 926 N M -15 -10 - 0 0 0 sco K ; -901 916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 916 N M -17 -7 - 0 0 0 sco K ; -884 909 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 909 N M -18 -4 - 0 0 0 sco K ; -866 905 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 905 N M -18 0 - 0 0 0 sco K ; -848 905 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 963 N M -372 0 - 0 0 0 sco K ; -464 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 916 N M 70 0 - 0 0 0 sco K ; -836 916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 940 N M 0 -47 - 0 0 0 sco K ; -488 893 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 893 N M 278 0 - 0 0 0 sco K ; -766 893 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 893 N M 0 47 - 0 0 0 sco K ; -766 940 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 940 N M -278 0 - 0 0 0 sco K ; -488 940 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1869 N M 0 0 - 0 0 0 sco K ; -488 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1915 N M 0 -46 - 0 0 0 sco K ; -139 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1869 N M 302 0 - 0 0 0 sco K ; -441 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1869 N M 23 23 - 0 0 0 sco K ; -464 1892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 1892 N M -23 23 - 0 0 0 sco K ; -441 1915 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1915 N M -302 0 - 0 0 0 sco K ; -139 1915 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1915 N M 0 0 - 0 0 0 sco K ; -139 1915 N M 0 0 rr : 0 0 0 sco O ; : 499 1830 551 33 rc 0 0 0 sco F0_22_30 -Ji -528 1830 M -2.167 0 (pin-17-out-invert)A -; : 188 1876 348 33 rc 0 0 0 sco F0_22_30 -Ji -217 1876 M -2.296 0 (pin-17-out)A -; : 0 0 3229 2391 rc -829 1903 N M 7 -13 - 0 0 0 sco K ; -836 1890 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1890 N M 4 -14 - 0 0 0 sco K ; -840 1876 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1876 N M 0 -15 - 0 0 0 sco K ; -840 1861 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1861 N M -4 -14 - 0 0 0 sco K ; -836 1847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1847 N M -7 -13 - 0 0 0 sco K ; -829 1834 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 1903 N M 7 -13 - 0 0 0 sco K ; -855 1890 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1890 N M 4 -14 - 0 0 0 sco K ; -859 1876 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1876 N M 0 -15 - 0 0 0 sco K ; -859 1861 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1861 N M -4 -14 - 0 0 0 sco K ; -855 1847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1847 N M -7 -13 - 0 0 0 sco K ; -848 1834 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 1903 N M 18 0 - 0 0 0 sco K ; -866 1903 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1903 N M 18 -4 - 0 0 0 sco K ; -884 1899 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1899 N M 17 -7 - 0 0 0 sco K ; -901 1892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1892 N M 15 -10 - 0 0 0 sco K ; -916 1882 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1882 N M 13 -13 - 0 0 0 sco K ; -929 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1869 N M -13 -14 - 0 0 0 sco K ; -916 1855 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1855 N M -15 -10 - 0 0 0 sco K ; -901 1845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1845 N M -17 -7 - 0 0 0 sco K ; -884 1838 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1838 N M -18 -4 - 0 0 0 sco K ; -866 1834 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1834 N M -18 0 - 0 0 0 sco K ; -848 1834 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1892 N M -372 0 - 0 0 0 sco K ; -464 1892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1845 N M 70 0 - 0 0 0 sco K ; -836 1845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1869 N M 0 -47 - 0 0 0 sco K ; -488 1822 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1822 N M 278 0 - 0 0 0 sco K ; -766 1822 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1822 N M 0 47 - 0 0 0 sco K ; -766 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1869 N M -278 0 - 0 0 0 sco K ; -488 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1985 N M 0 0 - 0 0 0 sco K ; -488 1985 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 2031 N M 0 -46 - 0 0 0 sco K ; -139 1985 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 1985 N M 302 0 - 0 0 0 sco K ; -441 1985 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 1985 N M 23 23 - 0 0 0 sco K ; -464 2008 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 2008 N M -23 23 - 0 0 0 sco K ; -441 2031 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 2031 N M -302 0 - 0 0 0 sco K ; -139 2031 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 2031 N M 0 0 - 0 0 0 sco K ; -139 2031 N M 0 0 rr : 0 0 0 sco O ; : 499 1946 551 33 rc 0 0 0 sco F0_22_30 -Ji -528 1946 M -2.167 0 (pin-16-out-invert)A -; : 188 1993 348 33 rc 0 0 0 sco F0_22_30 -Ji -217 1993 M -2.296 0 (pin-16-out)A -; : 0 0 3229 2391 rc -829 2020 N M 7 -13 - 0 0 0 sco K ; -836 2007 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 2007 N M 4 -15 - 0 0 0 sco K ; -840 1992 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1992 N M 0 -15 - 0 0 0 sco K ; -840 1977 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 1977 N M -4 -14 - 0 0 0 sco K ; -836 1963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 1963 N M -7 -13 - 0 0 0 sco K ; -829 1950 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 2020 N M 7 -13 - 0 0 0 sco K ; -855 2007 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 2007 N M 4 -15 - 0 0 0 sco K ; -859 1992 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1992 N M 0 -15 - 0 0 0 sco K ; -859 1977 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 1977 N M -4 -14 - 0 0 0 sco K ; -855 1963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1963 N M -7 -13 - 0 0 0 sco K ; -848 1950 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 2020 N M 18 -1 - 0 0 0 sco K ; -866 2019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 2019 N M 18 -4 - 0 0 0 sco K ; -884 2015 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 2015 N M 17 -7 - 0 0 0 sco K ; -901 2008 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 2008 N M 15 -10 - 0 0 0 sco K ; -916 1998 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1998 N M 13 -13 - 0 0 0 sco K ; -929 1985 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1985 N M -13 -13 - 0 0 0 sco K ; -916 1972 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 1972 N M -15 -11 - 0 0 0 sco K ; -901 1961 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 1961 N M -17 -7 - 0 0 0 sco K ; -884 1954 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 1954 N M -18 -4 - 0 0 0 sco K ; -866 1950 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 1950 N M -18 0 - 0 0 0 sco K ; -848 1950 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 2008 N M -372 0 - 0 0 0 sco K ; -464 2008 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1961 N M 70 0 - 0 0 0 sco K ; -836 1961 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1985 N M 0 -47 - 0 0 0 sco K ; -488 1938 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 1938 N M 278 0 - 0 0 0 sco K ; -766 1938 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1938 N M 0 47 - 0 0 0 sco K ; -766 1985 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 1985 N M -278 0 - 0 0 0 sco K ; -488 1985 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 2101 N M 0 0 - 0 0 0 sco K ; -488 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 2147 N M 0 -46 - 0 0 0 sco K ; -139 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 2101 N M 302 0 - 0 0 0 sco K ; -441 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 2101 N M 23 23 - 0 0 0 sco K ; -464 2124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 2124 N M -23 23 - 0 0 0 sco K ; -441 2147 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 2147 N M -302 0 - 0 0 0 sco K ; -139 2147 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 2147 N M 0 0 - 0 0 0 sco K ; -139 2147 N M 0 0 rr : 0 0 0 sco O ; : 499 2062 551 33 rc 0 0 0 sco F0_22_30 -Ji -528 2062 M -2.167 0 (pin-14-out-invert)A -; : 188 2109 348 33 rc 0 0 0 sco F0_22_30 -Ji -217 2109 M -2.296 0 (pin-14-out)A -; : 0 0 3229 2391 rc -829 2136 N M 7 -13 - 0 0 0 sco K ; -836 2123 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 2123 N M 4 -15 - 0 0 0 sco K ; -840 2108 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 2108 N M 0 -15 - 0 0 0 sco K ; -840 2093 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 2093 N M -4 -14 - 0 0 0 sco K ; -836 2079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 2079 N M -7 -13 - 0 0 0 sco K ; -829 2066 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 2136 N M 7 -13 - 0 0 0 sco K ; -855 2123 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 2123 N M 4 -15 - 0 0 0 sco K ; -859 2108 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 2108 N M 0 -15 - 0 0 0 sco K ; -859 2093 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 2093 N M -4 -14 - 0 0 0 sco K ; -855 2079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 2079 N M -7 -13 - 0 0 0 sco K ; -848 2066 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 2136 N M 18 -1 - 0 0 0 sco K ; -866 2135 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 2135 N M 18 -4 - 0 0 0 sco K ; -884 2131 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 2131 N M 17 -7 - 0 0 0 sco K ; -901 2124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 2124 N M 15 -10 - 0 0 0 sco K ; -916 2114 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 2114 N M 13 -13 - 0 0 0 sco K ; -929 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 2101 N M -13 -13 - 0 0 0 sco K ; -916 2088 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 2088 N M -15 -11 - 0 0 0 sco K ; -901 2077 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 2077 N M -17 -7 - 0 0 0 sco K ; -884 2070 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 2070 N M -18 -4 - 0 0 0 sco K ; -866 2066 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 2066 N M -18 0 - 0 0 0 sco K ; -848 2066 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 2124 N M -372 0 - 0 0 0 sco K ; -464 2124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 2078 N M 70 0 - 0 0 0 sco K ; -836 2078 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 2101 N M 0 -47 - 0 0 0 sco K ; -488 2054 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 2054 N M 278 0 - 0 0 0 sco K ; -766 2054 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 2054 N M 0 47 - 0 0 0 sco K ; -766 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 2101 N M -278 0 - 0 0 0 sco K ; -488 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 2217 N M 0 0 - 0 0 0 sco K ; -488 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 2263 N M 0 -46 - 0 0 0 sco K ; -139 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 2217 N M 302 0 - 0 0 0 sco K ; -441 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 2217 N M 23 23 - 0 0 0 sco K ; -464 2240 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -464 2240 N M -23 23 - 0 0 0 sco K ; -441 2263 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -441 2263 N M -302 0 - 0 0 0 sco K ; -139 2263 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -139 2263 N M 0 0 - 0 0 0 sco K ; -139 2263 N M 0 0 rr : 0 0 0 sco O ; : 507 2178 522 33 rc 0 0 0 sco F0_22_30 -Ji -536 2178 M -2.129 0 (pin-1-out-invert)A -; : 196 2225 319 33 rc 0 0 0 sco F0_22_30 -Ji -225 2225 M -2.243 0 (pin-1-out)A -; : 0 0 3229 2391 rc -829 2252 N M 7 -13 - 0 0 0 sco K ; -836 2239 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 2239 N M 4 -15 - 0 0 0 sco K ; -840 2224 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 2224 N M 0 -14 - 0 0 0 sco K ; -840 2210 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -840 2210 N M -4 -15 - 0 0 0 sco K ; -836 2195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 2195 N M -7 -13 - 0 0 0 sco K ; -829 2182 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 2252 N M 7 -13 - 0 0 0 sco K ; -855 2239 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 2239 N M 4 -15 - 0 0 0 sco K ; -859 2224 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 2224 N M 0 -14 - 0 0 0 sco K ; -859 2210 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -859 2210 N M -4 -15 - 0 0 0 sco K ; -855 2195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 2195 N M -7 -13 - 0 0 0 sco K ; -848 2182 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -848 2252 N M 18 -1 - 0 0 0 sco K ; -866 2251 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 2251 N M 18 -3 - 0 0 0 sco K ; -884 2248 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 2248 N M 17 -8 - 0 0 0 sco K ; -901 2240 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 2240 N M 15 -10 - 0 0 0 sco K ; -916 2230 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 2230 N M 13 -13 - 0 0 0 sco K ; -929 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 2217 N M -13 -13 - 0 0 0 sco K ; -916 2204 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -916 2204 N M -15 -10 - 0 0 0 sco K ; -901 2194 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -901 2194 N M -17 -8 - 0 0 0 sco K ; -884 2186 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -884 2186 N M -18 -4 - 0 0 0 sco K ; -866 2182 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -866 2182 N M -18 0 - 0 0 0 sco K ; -848 2182 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -836 2240 N M -372 0 - 0 0 0 sco K ; -464 2240 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 2194 N M 70 0 - 0 0 0 sco K ; -836 2194 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 2217 N M 0 -46 - 0 0 0 sco K ; -488 2171 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -488 2171 N M 278 0 - 0 0 0 sco K ; -766 2171 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 2171 N M 0 46 - 0 0 0 sco K ; -766 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 2217 N M -278 0 - 0 0 0 sco K ; -488 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 1102 N M 0 70 - 0 0 0 sco K ; -186 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 1218 N M 0 70 - 0 0 0 sco K ; -186 1288 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 1334 N M 0 70 - 0 0 0 sco K ; -186 1404 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 1450 N M 0 70 - 0 0 0 sco K ; -186 1520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 1567 N M 0 69 - 0 0 0 sco K ; -186 1636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 1799 N M 0 70 - 0 0 0 sco K ; -186 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 1915 N M 0 70 - 0 0 0 sco K ; -186 1985 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 2031 N M 0 70 - 0 0 0 sco K ; -186 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 2147 N M 0 70 - 0 0 0 sco K ; -186 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 1683 N M 0 69 - 0 0 0 sco K ; -186 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 986 N M 0 70 - 0 0 0 sco K ; -186 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 382 N M 0 23 - 0 0 0 sco K ; -186 405 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 498 N M 0 23 - 0 0 0 sco K ; -186 521 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 614 N M 0 24 - 0 0 0 sco K ; -186 638 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 730 N M 0 24 - 0 0 0 sco K ; -186 754 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 847 N M 0 93 - 0 0 0 sco K ; -186 940 N M 0 0 rr : 0 0 0 sco O ; : 2953 706 172 52 rc 0 0 0 sco (F0_34_45) cvn -F0 -34 0 0 45 0 0 -xMF -F0_34_45 -Ji -2996 706 M -4.096 0 (25)A -; : 1351 706 172 52 rc 0 0 0 sco F0_34_45 -Ji -1394 706 M -4.096 0 (25)A -; : 2860 659 172 52 rc 0 0 0 sco F0_34_45 -Ji -2903 659 M -4.096 0 (13)A -; : 1258 659 172 52 rc 0 0 0 sco F0_34_45 -Ji -1301 659 M -4.096 0 (13)A -; : 2953 799 172 52 rc 0 0 0 sco F0_34_45 -Ji -2996 799 M -4.096 0 (24)A -; : 1351 799 172 52 rc 0 0 0 sco F0_34_45 -Ji -1394 799 M -4.096 0 (24)A -; : 2860 752 172 52 rc 0 0 0 sco F0_34_45 -Ji -2903 752 M -4.096 0 (12)A -; : 1258 752 172 52 rc 0 0 0 sco F0_34_45 -Ji -1301 752 M -4.096 0 (12)A -; : 2860 845 172 52 rc 0 0 0 sco F0_34_45 -Ji -2903 845 M -4.096 0 (11)A -; : 1258 845 172 52 rc 0 0 0 sco F0_34_45 -Ji -1301 845 M -4.096 0 (11)A -; : 2860 938 172 52 rc 0 0 0 sco F0_34_45 -Ji -2903 938 M -4.096 0 (10)A -; : 1258 938 172 52 rc 0 0 0 sco F0_34_45 -Ji -1301 938 M -4.096 0 (10)A -; : 2872 1031 129 52 rc 0 0 0 sco F0_34_45 -Ji -2915 1031 M -4.096 0 (9)A -; : 1269 1031 129 52 rc 0 0 0 sco F0_34_45 -Ji -1312 1031 M -4.096 0 (9)A -; : 2872 1124 129 52 rc 0 0 0 sco F0_34_45 -Ji -2915 1124 M -4.096 0 (8)A -; : 1269 1124 129 52 rc 0 0 0 sco F0_34_45 -Ji -1312 1124 M -4.096 0 (8)A -; : 2872 1217 129 52 rc 0 0 0 sco F0_34_45 -Ji -2915 1217 M -4.096 0 (7)A -; : 1269 1217 129 52 rc 0 0 0 sco F0_34_45 -Ji -1312 1217 M -4.096 0 (7)A -; : 2872 1310 129 52 rc 0 0 0 sco F0_34_45 -Ji -2915 1310 M -4.096 0 (6)A -; : 1269 1310 129 52 rc 0 0 0 sco F0_34_45 -Ji -1312 1310 M -4.096 0 (6)A -; : 2872 1403 129 52 rc 0 0 0 sco F0_34_45 -Ji -2915 1403 M -4.096 0 (5)A -; : 1269 1403 129 52 rc 0 0 0 sco F0_34_45 -Ji -1312 1403 M -4.096 0 (5)A -; : 2872 1496 129 52 rc 0 0 0 sco F0_34_45 -Ji -2915 1496 M -4.096 0 (4)A -; : 1269 1496 129 52 rc 0 0 0 sco F0_34_45 -Ji -1312 1496 M -4.096 0 (4)A -; : 2872 1588 129 52 rc 0 0 0 sco F0_34_45 -Ji -2915 1588 M -4.096 0 (3)A -; : 1269 1588 129 52 rc 0 0 0 sco F0_34_45 -Ji -1312 1588 M -4.096 0 (3)A -; : 2872 1681 129 52 rc 0 0 0 sco F0_34_45 -Ji -2915 1681 M -4.096 0 (2)A -; : 1269 1681 129 52 rc 0 0 0 sco F0_34_45 -Ji -1312 1681 M -4.096 0 (2)A -; : 2872 1774 129 52 rc 0 0 0 sco F0_34_45 -Ji -2915 1774 M -4.096 0 (1)A -; : 1269 1774 129 52 rc 0 0 0 sco F0_34_45 -Ji -1312 1774 M -4.096 0 (1)A -; : 2953 892 172 52 rc 0 0 0 sco F0_34_45 -Ji -2996 892 M -4.096 0 (23)A -; : 1351 892 172 52 rc 0 0 0 sco F0_34_45 -Ji -1394 892 M -4.096 0 (23)A -; : 2953 985 172 52 rc 0 0 0 sco F0_34_45 -Ji -2996 985 M -4.096 0 (22)A -; : 1351 985 172 52 rc 0 0 0 sco F0_34_45 -Ji -1394 985 M -4.096 0 (22)A -; : 2953 1078 172 52 rc 0 0 0 sco F0_34_45 -Ji -2996 1078 M -4.096 0 (21)A -; : 1351 1078 172 52 rc 0 0 0 sco F0_34_45 -Ji -1394 1078 M -4.096 0 (21)A -; : 2953 1170 172 52 rc 0 0 0 sco F0_34_45 -Ji -2996 1170 M -4.096 0 (20)A -; : 1351 1170 172 52 rc 0 0 0 sco F0_34_45 -Ji -1394 1170 M -4.096 0 (20)A -; : 2953 1263 172 52 rc 0 0 0 sco F0_34_45 -Ji -2996 1263 M -4.096 0 (19)A -; : 1351 1263 172 52 rc 0 0 0 sco F0_34_45 -Ji -1394 1263 M -4.096 0 (19)A -; : 2953 1356 172 52 rc 0 0 0 sco F0_34_45 -Ji -2996 1356 M -4.096 0 (18)A -; : 1351 1356 172 52 rc 0 0 0 sco F0_34_45 -Ji -1394 1356 M -4.096 0 (18)A -; : 2953 1449 172 52 rc 0 0 0 sco F0_34_45 -Ji -2996 1449 M -4.096 0 (17)A -; : 1351 1449 172 52 rc 0 0 0 sco F0_34_45 -Ji -1394 1449 M -4.096 0 (17)A -; : 2953 1542 172 52 rc 0 0 0 sco F0_34_45 -Ji -2996 1542 M -4.096 0 (16)A -; : 1351 1542 172 52 rc 0 0 0 sco F0_34_45 -Ji -1394 1542 M -4.096 0 (16)A -; : 2953 1635 172 52 rc 0 0 0 sco F0_34_45 -Ji -2996 1635 M -4.096 0 (15)A -; : 1351 1635 172 52 rc 0 0 0 sco F0_34_45 -Ji -1394 1635 M -4.096 0 (15)A -; : 2953 1728 172 52 rc 0 0 0 sco F0_34_45 -Ji -2996 1728 M -4.096 0 (14)A -; : 1351 1728 172 52 rc 0 0 0 sco F0_34_45 -Ji -1394 1728 M -4.096 0 (14)A -; -N 2926 777 38.000 360 0 An C 1 Lw solid 0 0 0 sco K -N 1324 777 37.000 360 0 An C 0 0 0 sco K -N 2926 870 38.000 360 0 An C 0 0 0 sco K -N 1324 870 37.000 360 0 An C 0 0 0 sco K -N 2926 963 38.000 360 0 An C 0 0 0 sco K -N 1324 963 37.000 360 0 An C 0 0 0 sco K -N 2926 1056 38.000 360 0 An C 0 0 0 sco K -N 1324 1056 37.000 360 0 An C 0 0 0 sco K -N 2926 1149 38.000 360 0 An C 0 0 0 sco K -N 1324 1149 37.000 360 0 An C 0 0 0 sco K -N 2926 1334 38.000 360 0 An C 0 0 0 sco K -N 1324 1334 37.000 360 0 An C 0 0 0 sco K -N 2926 1427 38.000 360 0 An C 0 0 0 sco K -N 1324 1427 37.000 360 0 An C 0 0 0 sco K -N 2926 1520 38.000 360 0 An C 0 0 0 sco K -N 1324 1520 37.000 360 0 An C 0 0 0 sco K -N 2926 1613 38.000 360 0 An C 0 0 0 sco K -N 1324 1613 37.000 360 0 An C 0 0 0 sco K -N 2926 1706 38.000 360 0 An C 0 0 0 sco K -N 1324 1706 37.000 360 0 An C 0 0 0 sco K -N 2926 1799 38.000 360 0 An C 0 0 0 sco K -N 1324 1799 37.000 360 0 An C 0 0 0 sco K -N 2926 1241 38.000 360 0 An C 0 0 0 sco K -N 1324 1241 37.000 360 0 An C 0 0 0 sco K -N 2926 684 38.000 360 0 An C 0 0 0 sco K -N 1324 684 37.000 360 0 An C 0 0 0 sco K -N 3019 823 38.000 360 0 An C 0 0 0 sco K -N 1417 823 37.000 360 0 An C 0 0 0 sco K -N 3019 916 38.000 360 0 An C 0 0 0 sco K -N 1417 916 37.000 360 0 An C 0 0 0 sco K -N 3019 1009 38.000 360 0 An C 0 0 0 sco K -N 1417 1009 37.000 360 0 An C 0 0 0 sco K -N 3019 1102 38.000 360 0 An C 0 0 0 sco K -N 1417 1102 37.000 360 0 An C 0 0 0 sco K -N 3019 1195 38.000 360 0 An C 0 0 0 sco K -N 1417 1195 37.000 360 0 An C 0 0 0 sco K -N 3019 1288 38.000 360 0 An C 0 0 0 sco K -N 1417 1288 37.000 360 0 An C 0 0 0 sco K -N 3019 1381 38.000 360 0 An C 0 0 0 sco K -N 1417 1381 37.000 360 0 An C 0 0 0 sco K -N 3019 1474 38.000 360 0 An C 0 0 0 sco K -N 1417 1474 37.000 360 0 An C 0 0 0 sco K -N 3019 1567 38.000 360 0 An C 0 0 0 sco K -N 1417 1567 37.000 360 0 An C 0 0 0 sco K -N 3019 1660 38.000 360 0 An C 0 0 0 sco K -N 1417 1660 37.000 360 0 An C 0 0 0 sco K -N 3019 1752 38.000 360 0 An C 0 0 0 sco K -N 1417 1752 37.000 360 0 An C 0 0 0 sco K -N 3019 730 38.000 360 0 An C 0 0 0 sco K -N 1417 730 37.000 360 0 An C 0 0 0 sco K : 0 0 3229 2391 rc -929 1520 N M 357 0 - 1 Lw solid 0 0 0 sco K ; -1286 1520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1404 N M 46 0 - 1 Lw solid 0 0 0 sco K ; -975 1404 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -975 1404 N M 0 23 - 1 Lw solid 0 0 0 sco K ; -975 1427 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -975 1427 N M 311 0 - 1 Lw solid 0 0 0 sco K ; -1286 1427 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1288 N M 69 0 - 1 Lw solid 0 0 0 sco K ; -998 1288 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -998 1288 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -998 1334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -998 1334 N M 288 0 - 1 Lw solid 0 0 0 sco K ; -1286 1334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1172 N M 93 0 - 1 Lw solid 0 0 0 sco K ; -1022 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1022 1172 N M 0 69 - 1 Lw solid 0 0 0 sco K ; -1022 1241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1022 1241 N M 264 0 - 1 Lw solid 0 0 0 sco K ; -1286 1241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1056 N M 116 0 - 1 Lw solid 0 0 0 sco K ; -1045 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2648 1032 N M 0 117 - 1 Lw solid 0 0 0 sco K ; -2648 1149 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1045 1056 N M 0 93 - 1 Lw solid 0 0 0 sco K ; -1045 1149 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2648 1149 N M 241 0 - 1 Lw solid 0 0 0 sco K ; -2889 1149 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1045 1149 N M 241 0 - 1 Lw solid 0 0 0 sco K ; -1286 1149 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 940 N M 139 0 - 1 Lw solid 0 0 0 sco K ; -1068 940 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2671 916 N M 0 140 - 1 Lw solid 0 0 0 sco K ; -2671 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1068 940 N M 0 116 - 1 Lw solid 0 0 0 sco K ; -1068 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2671 1056 N M 218 0 - 1 Lw solid 0 0 0 sco K ; -2889 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1068 1056 N M 218 0 - 1 Lw solid 0 0 0 sco K ; -1286 1056 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 800 N M 325 0 - 1 Lw solid 0 0 0 sco K ; -2694 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 800 N M 325 0 - 1 Lw solid 0 0 0 sco K ; -1091 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2694 800 N M 0 163 - 1 Lw solid 0 0 0 sco K ; -2694 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1091 800 N M 0 163 - 1 Lw solid 0 0 0 sco K ; -1091 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2694 963 N M 195 0 - 1 Lw solid 0 0 0 sco K ; -2889 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1091 963 N M 195 0 - 1 Lw solid 0 0 0 sco K ; -1286 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 684 N M 348 0 - 1 Lw solid 0 0 0 sco K ; -2717 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 684 N M 349 0 - 1 Lw solid 0 0 0 sco K ; -1115 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2717 684 N M 0 186 - 1 Lw solid 0 0 0 sco K ; -2717 870 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1115 684 N M 0 186 - 1 Lw solid 0 0 0 sco K ; -1115 870 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2717 870 N M 172 0 - 1 Lw solid 0 0 0 sco K ; -2889 870 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1115 870 N M 171 0 - 1 Lw solid 0 0 0 sco K ; -1286 870 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 568 N M 371 0 - 1 Lw solid 0 0 0 sco K ; -2740 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 568 N M 372 0 - 1 Lw solid 0 0 0 sco K ; -1138 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2740 568 N M 0 209 - 1 Lw solid 0 0 0 sco K ; -2740 777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1138 568 N M 0 209 - 1 Lw solid 0 0 0 sco K ; -1138 777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2740 777 N M 149 0 - 1 Lw solid 0 0 0 sco K ; -2889 777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1138 777 N M 148 0 - 1 Lw solid 0 0 0 sco K ; -1286 777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 452 N M 395 0 - 1 Lw solid 0 0 0 sco K ; -2764 452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 452 N M 395 0 - 1 Lw solid 0 0 0 sco K ; -1161 452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2764 452 N M 0 232 - 1 Lw solid 0 0 0 sco K ; -2764 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1161 452 N M 0 232 - 1 Lw solid 0 0 0 sco K ; -1161 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2764 684 N M 125 0 - 1 Lw solid 0 0 0 sco K ; -2889 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1161 684 N M 125 0 - 1 Lw solid 0 0 0 sco K ; -1286 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1636 N M 46 0 - 1 Lw solid 0 0 0 sco K ; -975 1636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -975 1636 N M 0 -23 - 1 Lw solid 0 0 0 sco K ; -975 1613 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -975 1613 N M 311 0 - 1 Lw solid 0 0 0 sco K ; -1286 1613 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1752 N M 69 0 - 1 Lw solid 0 0 0 sco K ; -998 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -998 1752 N M 0 -46 - 1 Lw solid 0 0 0 sco K ; -998 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -998 1706 N M 288 0 - 1 Lw solid 0 0 0 sco K ; -1286 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2531 1869 N M 140 0 - 1 Lw solid 0 0 0 sco K ; -2671 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1869 N M 139 0 - 1 Lw solid 0 0 0 sco K ; -1068 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2671 1869 N M 0 -395 - 1 Lw solid 0 0 0 sco K ; -2671 1474 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1068 1869 N M 0 -395 - 1 Lw solid 0 0 0 sco K ; -1068 1474 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2671 1474 N M 311 0 - 1 Lw solid 0 0 0 sco K ; -2982 1474 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1068 1474 N M 311 0 - 1 Lw solid 0 0 0 sco K ; -1379 1474 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2531 1985 N M 163 0 - 1 Lw solid 0 0 0 sco K ; -2694 1985 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1985 N M 162 0 - 1 Lw solid 0 0 0 sco K ; -1091 1985 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2694 1985 N M 0 -418 - 1 Lw solid 0 0 0 sco K ; -2694 1567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1091 1985 N M 0 -418 - 1 Lw solid 0 0 0 sco K ; -1091 1567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2694 1567 N M 288 0 - 1 Lw solid 0 0 0 sco K ; -2982 1567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1091 1567 N M 288 0 - 1 Lw solid 0 0 0 sco K ; -1379 1567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2531 2101 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -2717 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 2101 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -1115 2101 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2717 2101 N M 0 -349 - 1 Lw solid 0 0 0 sco K ; -2717 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1115 2101 N M 0 -349 - 1 Lw solid 0 0 0 sco K ; -1115 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2717 1752 N M 265 0 - 1 Lw solid 0 0 0 sco K ; -2982 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1115 1752 N M 264 0 - 1 Lw solid 0 0 0 sco K ; -1379 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2531 2217 N M 209 0 - 1 Lw solid 0 0 0 sco K ; -2740 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 2217 N M 209 0 - 1 Lw solid 0 0 0 sco K ; -1138 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2740 2217 N M 0 -418 - 1 Lw solid 0 0 0 sco K ; -2740 1799 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1138 2217 N M 0 -418 - 1 Lw solid 0 0 0 sco K ; -1138 1799 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2740 1799 N M 149 0 - 1 Lw solid 0 0 0 sco K ; -2889 1799 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1138 1799 N M 148 0 - 1 Lw solid 0 0 0 sco K ; -1286 1799 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 336 N M 418 0 - 1 Lw solid 0 0 0 sco K ; -2787 336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -766 336 N M 418 0 - 1 Lw solid 0 0 0 sco K ; -1184 336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2787 336 N M 0 1324 - 1 Lw solid 0 0 0 sco K ; -2787 1660 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1184 336 N M 0 1324 - 1 Lw solid 0 0 0 sco K ; -1184 1660 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2787 1660 N M 195 0 - 1 Lw solid 0 0 0 sco K ; -2982 1660 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1184 1660 N M 195 0 - 1 Lw solid 0 0 0 sco K ; -1379 1660 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2857 684 N M 0 1115 - 1 Lw solid 0 0 0 sco K ; -2857 1799 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1254 684 N M 0 1115 - 1 Lw solid 0 0 0 sco K ; -1254 1799 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3089 730 N M 0 1022 - 1 Lw solid 0 0 0 sco K ; -3089 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1486 730 N M 0 1022 - 1 Lw solid 0 0 0 sco K ; -1486 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2957 622 N M -16 -6 - 1 Lw solid 0 0 0 sco K ; -2941 616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2941 616 N M -18 -2 - 1 Lw solid 0 0 0 sco K ; -2923 614 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2923 614 N M -17 3 - 1 Lw solid 0 0 0 sco K ; -2906 617 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2906 617 N M -16 8 - 1 Lw solid 0 0 0 sco K ; -2890 625 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2890 625 N M -14 11 - 1 Lw solid 0 0 0 sco K ; -2876 636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2876 636 N M -11 14 - 1 Lw solid 0 0 0 sco K ; -2865 650 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2865 650 N M -6 16 - 1 Lw solid 0 0 0 sco K ; -2859 666 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2859 666 N M -2 18 - 1 Lw solid 0 0 0 sco K ; -2857 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1355 622 N M -17 -6 - 1 Lw solid 0 0 0 sco K ; -1338 616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1338 616 N M -17 -2 - 1 Lw solid 0 0 0 sco K ; -1321 614 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1321 614 N M -18 3 - 1 Lw solid 0 0 0 sco K ; -1303 617 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1303 617 N M -16 8 - 1 Lw solid 0 0 0 sco K ; -1287 625 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1287 625 N M -14 11 - 1 Lw solid 0 0 0 sco K ; -1273 636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1273 636 N M -10 14 - 1 Lw solid 0 0 0 sco K ; -1263 650 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1263 650 N M -7 16 - 1 Lw solid 0 0 0 sco K ; -1256 666 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1256 666 N M -2 18 - 1 Lw solid 0 0 0 sco K ; -1254 684 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3089 730 N M -2 -15 - 1 Lw solid 0 0 0 sco K ; -3087 715 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3087 715 N M -5 -14 - 1 Lw solid 0 0 0 sco K ; -3082 701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3082 701 N M -8 -13 - 1 Lw solid 0 0 0 sco K ; -3074 688 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3074 688 N M -11 -11 - 1 Lw solid 0 0 0 sco K ; -3063 677 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3063 677 N M -13 -9 - 1 Lw solid 0 0 0 sco K ; -3050 668 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1486 730 N M -1 -15 - 1 Lw solid 0 0 0 sco K ; -1485 715 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1485 715 N M -5 -14 - 1 Lw solid 0 0 0 sco K ; -1480 701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1480 701 N M -9 -13 - 1 Lw solid 0 0 0 sco K ; -1471 688 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1471 688 N M -10 -11 - 1 Lw solid 0 0 0 sco K ; -1461 677 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1461 677 N M -13 -9 - 1 Lw solid 0 0 0 sco K ; -1448 668 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2857 1799 N M 2 17 - 1 Lw solid 0 0 0 sco K ; -2859 1816 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2859 1816 N M 6 17 - 1 Lw solid 0 0 0 sco K ; -2865 1833 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2865 1833 N M 11 14 - 1 Lw solid 0 0 0 sco K ; -2876 1847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2876 1847 N M 14 11 - 1 Lw solid 0 0 0 sco K ; -2890 1858 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2890 1858 N M 16 7 - 1 Lw solid 0 0 0 sco K ; -2906 1865 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2906 1865 N M 17 3 - 1 Lw solid 0 0 0 sco K ; -2923 1868 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2923 1868 N M 18 -1 - 1 Lw solid 0 0 0 sco K ; -2941 1867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2941 1867 N M 16 -6 - 1 Lw solid 0 0 0 sco K ; -2957 1861 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1254 1799 N M 2 17 - 1 Lw solid 0 0 0 sco K ; -1256 1816 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1256 1816 N M 7 17 - 1 Lw solid 0 0 0 sco K ; -1263 1833 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1263 1833 N M 10 14 - 1 Lw solid 0 0 0 sco K ; -1273 1847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1273 1847 N M 14 11 - 1 Lw solid 0 0 0 sco K ; -1287 1858 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1287 1858 N M 16 7 - 1 Lw solid 0 0 0 sco K ; -1303 1865 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1303 1865 N M 18 3 - 1 Lw solid 0 0 0 sco K ; -1321 1868 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1321 1868 N M 17 -1 - 1 Lw solid 0 0 0 sco K ; -1338 1867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1338 1867 N M 17 -6 - 1 Lw solid 0 0 0 sco K ; -1355 1861 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3050 1815 N M 13 -9 - 1 Lw solid 0 0 0 sco K ; -3063 1806 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3063 1806 N M 11 -11 - 1 Lw solid 0 0 0 sco K ; -3074 1795 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3074 1795 N M 8 -13 - 1 Lw solid 0 0 0 sco K ; -3082 1782 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3082 1782 N M 5 -14 - 1 Lw solid 0 0 0 sco K ; -3087 1768 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3087 1768 N M 2 -16 - 1 Lw solid 0 0 0 sco K ; -3089 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1448 1815 N M 13 -9 - 1 Lw solid 0 0 0 sco K ; -1461 1806 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1461 1806 N M 10 -11 - 1 Lw solid 0 0 0 sco K ; -1471 1795 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1471 1795 N M 9 -13 - 1 Lw solid 0 0 0 sco K ; -1480 1782 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1480 1782 N M 5 -14 - 1 Lw solid 0 0 0 sco K ; -1485 1768 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1485 1768 N M 1 -16 - 1 Lw solid 0 0 0 sco K ; -1486 1752 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2957 622 N M 93 46 - 1 Lw solid 0 0 0 sco K ; -3050 668 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1355 622 N M 93 46 - 1 Lw solid 0 0 0 sco K ; -1448 668 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2957 1861 N M 93 -46 - 1 Lw solid 0 0 0 sco K ; -3050 1815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1355 1861 N M 93 -46 - 1 Lw solid 0 0 0 sco K ; -1448 1815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 289 N M 0 -232 - 1 Lw solid 0 0 0 sco K ; -1788 57 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 289 N M 0 -232 - 1 Lw solid 0 0 0 sco K ; -186 57 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 57 N M 1185 0 - 1 Lw solid 0 0 0 sco K ; -2973 57 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 57 N M 1184 0 - 1 Lw solid 0 0 0 sco K ; -1370 57 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2973 57 N M 0 572 - 1 Lw solid 0 0 0 sco K ; -2973 629 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1370 57 N M 0 572 - 1 Lw solid 0 0 0 sco K ; -1370 629 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 2263 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -1788 2333 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 2263 N M 0 70 - 1 Lw solid 0 0 0 sco K ; -186 2333 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1788 2333 N M 1185 0 - 1 Lw solid 0 0 0 sco K ; -2973 2333 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -186 2333 N M 1184 0 - 1 Lw solid 0 0 0 sco K ; -1370 2333 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2973 2333 N M 0 -479 - 1 Lw solid 0 0 0 sco K ; -2973 1854 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1370 2333 N M 0 -479 - 1 Lw solid 0 0 0 sco K ; -1370 1854 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 916 N M 302 0 - 1 Lw solid 0 0 0 sco K ; -2671 916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1032 N M 279 0 - 1 Lw solid 0 0 0 sco K ; -2648 1032 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1149 N M 255 0 - 1 Lw solid 0 0 0 sco K ; -2624 1149 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2624 1149 N M 0 92 - 1 Lw solid 0 0 0 sco K ; -2624 1241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2624 1241 N M 265 0 - 1 Lw solid 0 0 0 sco K ; -2889 1241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1265 N M 232 0 - 1 Lw solid 0 0 0 sco K ; -2601 1265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2601 1265 N M 0 69 - 1 Lw solid 0 0 0 sco K ; -2601 1334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2601 1334 N M 288 0 - 1 Lw solid 0 0 0 sco K ; -2889 1334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1381 N M 209 0 - 1 Lw solid 0 0 0 sco K ; -2578 1381 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2578 1381 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -2578 1427 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2578 1427 N M 311 0 - 1 Lw solid 0 0 0 sco K ; -2889 1427 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1497 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -2555 1497 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2555 1497 N M 0 23 - 1 Lw solid 0 0 0 sco K ; -2555 1520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2555 1520 N M 334 0 - 1 Lw solid 0 0 0 sco K ; -2889 1520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1613 N M 520 0 - 1 Lw solid 0 0 0 sco K ; -2889 1613 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2369 1729 N M 186 0 - 1 Lw solid 0 0 0 sco K ; -2555 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2555 1729 N M 0 -23 - 1 Lw solid 0 0 0 sco K ; -2555 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2555 1706 N M 334 0 - 1 Lw solid 0 0 0 sco K ; -2889 1706 N M 0 0 rr : 0 0 0 sco O ; : 2194 94 660 69 rc 0 0 0 sco (F0_47_61) cvn -F0 -47 0 0 61 0 0 -xMF -F0_47_61 -Ji -2254 94 M -4.656 0 (parport.0)A -; : 591 94 660 69 rc 0 0 0 sco F0_47_61 -Ji -651 94 M -4.656 0 (parport.0)A -; : 2152 195 903 52 rc 0 0 0 sco F0_34_45 -Ji -2195 195 M -3.144 0 (configured as input)A -; : 537 195 946 52 rc 0 0 0 sco F0_34_45 -Ji -580 195 M -3.246 0 (configured as output)A -; -LH -pagesave restore -%%PageTrailer - -%%Trailer -%%DocumentNeededFonts: -%%DocumentSuppliedFonts: -/Pscript_Win_Driver /ProcSet findresource dup /terminate get exec -Pscript_Win_Compat dup /terminate get exec -%%EOF diff --git a/docs/src/hal/images/parport-block-diag.png b/docs/src/hal/images/parport-block-diag.png deleted file mode 100644 index 0d22e81ef35..00000000000 Binary files a/docs/src/hal/images/parport-block-diag.png and /dev/null differ diff --git a/docs/src/hal/images/parport-block-diag.svg b/docs/src/hal/images/parport-block-diag.svg deleted file mode 100755 index c1cc4a42858..00000000000 --- a/docs/src/hal/images/parport-block-diag.svg +++ /dev/null @@ -1,3851 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -configured as output - - - -configured as input - - - - -parport.0 - - -pin-15-in - -pin-15-in-not - -pin-13-in - -pin-13-in-not - -pin-12-in - -pin-12-in-not - -pin-11-in - -pin-11-in-not - -pin-9-in - -pin-9-in-not - -pin-8-in - -pin-8-in-not - -pin-7-in - -pin-7-in-not - -pin-6-in - -pin-6-in-not - -pin-5-in - -pin-5-in-not - -pin-4-in - -pin-4-in-not - -pin-3-in - -pin-3-in-not - -pin-2-in - -pin-2-in-not - -pin-17-out - -pin-16-out - -pin-14-out - -pin-1-out - -pin-17-out-invert - -pin-16-out-invert - -pin-14-out-invert - -pin-1-out-invert - -pin-10-in - -pin-10-in-not - -10 - -11 - -12 - -13 - -22 - -23 - -24 - -25 - -20 - -6 - -8 - -9 - -21 - -1 - -2 - -3 - -4 - -5 - -7 - -14 - -15 - -16 - -17 - -18 - -19 - -20 - -6 - -8 - -9 - -10 - -11 - -12 - -13 - -21 - -22 - -23 - -24 - -25 - -1 - -2 - -3 - -4 - -5 - -7 - -14 - -15 - -16 - -17 - -18 - -19 - -pin-15-in - -pin-15-in-not - -pin-13-in - -pin-13-in-not - -pin-12-in - -pin-12-in-not - -pin-11-in - -pin-11-in-not - -pin-10-in - -pin-10-in-not - -parport.0 - -pin-17-out - -pin-16-out - -pin-14-out - -pin-1-out - -pin-2-out - -pin-3-out - -pin-4-out - -pin-5-out - -pin-6-out - -pin-7-out - -pin-8-out - -pin-9-out - -pin-17-out-invert - -pin-16-out-invert - -pin-14-out-invert - -pin-1-out-invert - -pin-2-out-invert - -pin-3-out-invert - -pin-4-out-invert - -pin-5-out-invert - -pin-6-out-invert - -pin-7-out-invert - -pin-8-out-invert - -pin-9-out-invert - - \ No newline at end of file diff --git a/docs/src/hal/images/pid-block-diag.eps b/docs/src/hal/images/pid-block-diag.eps deleted file mode 100644 index 095c982e0a7..00000000000 --- a/docs/src/hal/images/pid-block-diag.eps +++ /dev/null @@ -1,1823 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Title: D:\JMK\Drawings\hal-pid-block-diag.FC7 -%%BoundingBox: 19 9 784 593 -%%Creator: PSCRIPT.DRV Version 4.0 -%%CreationDate: 06/04/04 23:15:27 -%%Pages: 1 -%%Requirements: None -%%DocumentNeededFonts: (atend) -%%DocumentSuppliedFonts: (atend) -%%LanguageLevel: 1 -%%EndComments - -%%BeginProlog -%%BeginProcSet: Pscript_Res_Emul 1.0 0 -/defineresource where{pop}{userdict begin/defineresource{userdict/Resources 2 -copy known{get begin}{15 dict dup begin put}ifelse exch readonly exch -currentdict 1 index known not{dup 30 dict def}if load 3 -1 roll 2 index put -end}bind readonly def/findresource{userdict/Resources get exch get exch get} -bind readonly def/resourceforall{pop pop pop pop}bind readonly def -/resourcestatus{userdict/Resources 2 copy known{get exch 2 copy known{get exch -known{0 -1 true}{pop pop false}ifelse}{pop pop pop false}ifelse}{pop pop false -}ifelse}bind readonly def end}ifelse -%%EndProcSet -%%BeginResource: procset Pscript_Win_Driver 2.0 0 -/Pscript_Win_Driver 200 dict dup begin -%%BeginResource: file Pscript_FatalError 2.0 0 -/FatalErrorIf{{initgraphics findfont exch scalefont setfont counttomark 3 div -cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def -%%EndResource -/VM? {vmstatus exch sub exch pop gt { [ -(This job requires more memory than is available in this printer.) 100 500 -(Try one or more of the following, and then print again:) 100 485 -(In the PostScript dialog box, click Optimize For Portability.) 115 470 -(In the Device Options dialog box, make sure the Available Printer Memory is accurate.) 115 455 -(Reduce the number of fonts in the document.) 115 440 -(Print the document in parts.) 115 425 -12 /Times-Roman showpage -(%%[ PrinterError: Low Printer VM ]%%) = -true FatalErrorIf}if} bind def -%%BeginResource: file Pscript_Win_Utils 2.0 0 -/|/def load def/,/load load |/~/exch , |/?/ifelse , |/!/pop , |/`/begin , |/^ -/index , |/@/dup , |/+/translate , |/$/roll , |/U/userdict , |/M/moveto , |/- -/rlineto , |/&/currentdict , |/:/gsave , |/;/grestore , |/F/false , |/T/true , -|/N/newpath , |/E/end , |/Ac/arc , |/An/arcn , |/A/ashow , |/D/awidthshow , | -/C/closepath , |/V/div , |/O/eofill , |/L/fill , |/I/lineto , |/-C/rcurveto , -|/-M/rmoveto , |/+S/scale , |/Ji/setfont , |/Lc/setlinecap , |/Lj/setlinejoin -, |/Lw/setlinewidth , |/S/show , |/LH/showpage , |/K/stroke , |/W/widthshow , -|/R/rotate , |/b{bind |}bind |/bd{bind |}bind |/xd{~ |}bd/ld{, |}bd/lw/Lw ld -/lc/Lc ld/lj/Lj ld/sg/setgray ld/L2? F/languagelevel where{! languagelevel 2 -ge{! T}if}if |/g{@ not{U/DefIf_save save put}if U/DefIf_bool 2 ^ put}b -/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e{DefIf_El ! -}b/self & |/reinitialize{[/TextInit/GraphInit/UtilsInit counttomark{@ where{ -self eq}{F}?{cvx exec}{!}?}repeat cleartomark}b/initialize{`{/ADO_mxRot ~ | -/TextInitialised? F | reinitialize E}{U/Pscript_Win_Data 200 dict @ ` put -/ADO_mxRot ~ |/TextInitialised? F | reinitialize}?}b/terminate{!{& self eq{ -exit}{E}?}loop E}b/suspend/terminate , |/resume{` Pscript_Win_Data `}b/snap{ -transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~ itransform}b -/dsnap{dtransform round ~ round ~ idtransform}b<04>cvn{}|/setjn{{statusdict -/jobname known{statusdict/jobname 3 -1 $ put}if}stopped cleartomark}b/solid{[] -0 setdash}b/setdsh{0 setdash}b/colspRefresh{}b/rp{4 2 $ M 1 ^ 0 - 0 ~ - neg 0 --}b/rr{1 ^ 0 - 0 ~ - neg 0 - C}b -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L1 2.0 0 -L2? not g{/rf{N rp L}b/fx{1 1 dtransform @ 0 ge{1 sub 1}{1 add -0.25}? 3 -1 $ -@ 0 ge{1 sub 1}{1 add -0.25}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{ -4 -2 $ snap + +S fx rf}b/rs{N rp C K}b/rc{N rp clip N}b/sg{setgray}b/sco{ -setrgbcolor}b/sgco{{sg}{sco}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L2 2.0 0 -L2? g{/colspA/DeviceGray |/colspABC/DeviceRGB |/setAorABC{{colspA}{colspABC}? -setcolorspace}b/rf/rectfill , |/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5 -}? 3 -1 $ @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ -idtransform}b/BZ{4 -2 $ snap + +S fx rf}b/rs/rectstroke , |/rc/rectclip , |/sg -{@ @ setcolor}b/sco{setcolor}b/colspRefresh{colspABC setcolorspace}b/sgco{{sg -}{sco}?}b/UtilsInit{F setglobal}b/definecolorrendering{/ColorRendering -defineresource !}b/findcolorrendering{@/ColorRendering resourcestatus{! ! -/ColorRendering findresource T}{! F}?}b/selectcolorrendering{@/ColorRendering -resourcestatus{! !/ColorRendering}{!/DefaultColorRendering/ColorRendering}? -findresource setcolorrendering}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Encoding 2.0 0 -/bullets{{/bullet}repeat}b/ANSIEncoding[/grave/acute/circumflex/tilde/macron -/breve/dotaccent/dieresis/ring/cedilla/hungarumlaut/ogonek/caron/dotlessi 18 -bullets StandardEncoding 32 95 getinterval aload ! 3 bullets/quotesinglbase -/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron -/guilsinglleft/OE 4 bullets/quoteleft/quoteright/quotedblleft/quotedblright -/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 2 bullets -/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section -/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered -/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph -/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter -/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis -/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute -/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls -/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute -/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve -/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex -/udieresis/yacute/thorn/ydieresis]| ANSIEncoding @ 39/quotesingle put 96/grave -put/ANSIEncodingOld ANSIEncoding 256 array copy | ANSIEncodingOld @[138 153 -154 169 172 174 177 178 179 181 185 188 189 190 208 215 221 222 240 247 253 -254]{/bullet put @}forall 166/bar put 176/ring put -%%EndResource -%%BeginResource: file Pscript_Win_Text 2.0 0 -/TextInit{TextInitialised? not{/Pscript_Windows_Font & |/TextInitialised? T | -/fM[1 0 0 -1 0 0]|/mFM matrix |/iMat[1 0 0.212557 neg 1 0 0]|}if}b/xUP null | -/yUP null |/uW null |/xSP null |/ySP null |/sW null |/copyfont{1 ^ length add -dict `{1 ^/FID ne{|}{! !}?}forall & E}b/rF{3 copyfont @ `/Encoding -ANSIEncoding &/CharStrings known{CharStrings/Eth known not{! ANSIEncodingOld} -if}if | E}b/mF{findfont ~{@/Encoding get @ StandardEncoding eq{! T}{{ -ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get -StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{rF}{3 copyfont}? ` -/OrigFontType ~ |/OrigFontName ~ | & E 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 -put fM makefont Pscript_Windows_Font 3 1 $ put}b/xF{scalefont -Pscript_Windows_Font 3 1 $ put}b/xMF{mFM astore makefont Pscript_Windows_Font -3 1 $ put}b/xF2/scalefont , |/xMF2{mFM astore makefont}b/sLT{: Lw -M -currentpoint snap M 0 - 0 Lc K ;}b/sSU{N/uW ~ |/yUP ~ |/xUP ~ |}b/sU{xUP yUP -uW sLT}b/sST{N/sW ~ |/ySP ~ |/xSP ~ |}b/sT{xSP ySP sW sLT}b/sR{: + R 0 0 M}b -/sRxy{: matrix astore concat 0 0 M}b/eR/; , | -%%EndResource -%%BeginResource: file Pscript_Win_Text_Bold 2.0 0 -/mBF{@ 4 copyfont `/FontName ~ |/OrigFontType ~ |/OrigFontName ~ | 0 -FontMatrix idtransform ! &/PaintType known{PaintType 0 eq{/PaintType 2 | -/StrokeWidth ~ |}{PaintType 1 eq PaintType 2 eq or PaintType 3 eq or & -/StrokeWidth known and{StrokeWidth add/StrokeWidth ~ |}{!}?}?}{!}? @ & E -definefont Pscript_Windows_Font 3 1 $ put}b/xBF{Pscript_Windows_Font ` 1 ^ -/FontName get 1 ^ scalefont 3 1 $ scalefont 2 copy ~ | ~ ! | E}b/xMBF{mFM -astore Pscript_Windows_Font ` 1 ^/FontName get 1 ^ makefont 3 1 $ makefont 2 -copy ~ | ~ ! | E}b/xBF2{/sB0 ~ mBF/sB1 sB0 3 -1 $ xBF sB1}b/xMBF2{/sB0 ~ mBF -mFM astore/sB1 sB0 3 -1 $ xMBF sB1}b/sB{: Pscript_Windows_Font currentfont get -Ji @ S ; S}b/asB{: Pscript_Windows_Font currentfont get Ji 3 copy A ; A}b/wsB{ -: Pscript_Windows_Font currentfont get Ji 4 copy W ; W}b/awsB{: -Pscript_Windows_Font currentfont get Ji 6 copy D ; D}b/sBT3{: @ S ; 1 1 -M S}b -/asBT3{: 3 copy A ; 1 1 -M A}b/wsBT3{: 4 copy W ; 1 1 -M W}b/awsBT3{: 6 copy D -; 1 1 -M D}b/mIF{iMat 4 3 -1 $ put 2 copyfont `/OrigFontType ~ |/OrigFontName -~ | @ & E definefont iMat makefont Pscript_Windows_Font 3 1 $ put}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics 2.0 0 -/SavedCTM null |/CTMsave{/SavedCTM SavedCTM currentmatrix |}b/CTMrestore{ -SavedCTM setmatrix}b/mp null |/ADO_mxRot null |/GDIHMatrix null | -/GDIHPatternDict 22 dict | GDIHPatternDict `/PatternType 1 |/PaintType 2 | -/Reps L2?{1}{5}? |/XStep 8 Reps mul |/YStep XStep |/BBox[0 0 XStep YStep]| -/TilingType 1 |/PaintProc{` 1 Lw[]0 setdash PaintData , exec E}b/FGnd null | -/BGnd null |/HS_Horizontal{horiz}b/HS_Vertical{vert}b/HS_FDiagonal{fdiag}b -/HS_BDiagonal{biag}b/HS_Cross{horiz vert}b/HS_DiagCross{fdiag biag}b/MaxXYStep -XStep YStep gt{XStep}{YStep}? |/horiz{Reps{0 4 M XStep 0 - 0 8 +}repeat 0 -8 -Reps mul + K}b/vert{Reps{4 0 M 0 YStep - 8 0 +}repeat 0 -8 Reps mul + K}b/biag -{Reps{0 0 M MaxXYStep @ - 0 YStep neg M MaxXYStep @ - 0 8 +}repeat 0 -8 Reps -mul + 0 YStep M 8 8 - K}b/fdiag{Reps{0 0 M MaxXYStep @ neg - 0 YStep M -MaxXYStep @ neg - 0 8 +}repeat 0 -8 Reps mul + MaxXYStep @ M 8 -8 - K}b E -/makehatch{GDIHPatternDict/PaintData 3 -1 $ put CTMsave GDIHMatrix setmatrix -GDIHPatternDict matrix mp CTMrestore ~ U ~ 2 ^ put}b/h0{/h0/HS_Horizontal -makehatch}b/h1{/h1/HS_Vertical makehatch}b/h2{/h2/HS_FDiagonal makehatch}b/h3{ -/h3/HS_BDiagonal makehatch}b/h4{/h4/HS_Cross makehatch}b/h5{/h5/HS_DiagCross -makehatch}b/GDIBWPatternDict 17 dict @ `/PatternType 1 |/PaintType L2?{1}{2}? -|/RepsV L2?{1}{6}? |/RepsH L2?{1}{5}? |/BBox[0 0 RepsH 1]|/TilingType 1 | -/XStep 1 |/YStep 1 |/Height 8 RepsV mul |/Width 8 |/mx[Width 0 0 Height neg 0 -Height]|/FGnd null |/BGnd null |/SetBGndFGnd L2?{{BGnd null ne{BGnd aload ! -sgco BBox aload ! 2 ^ sub ~ 3 ^ sub ~ rf}if FGnd null ne{FGnd aload ! sgco}if} -}{{}}? b/PaintProc{` SetBGndFGnd RepsH{Width Height F mx PaintData imagemask -Width 0 +}repeat E}b E |/GDIBWPatternMx null |/pfprep{save 4 1 $ -/PatternOfTheDay 4 1 $ GDIBWPatternDict `/PaintData ~ |/BGnd ~ |/FGnd ~ | E -CTMsave GDIBWPatternMx setmatrix GDIBWPatternDict matrix mp CTMrestore ~ !}b -/hrf null |/prf{pfprep ~ 6 1 $ 5 hrf restore}b/GraphInit{GDIHMatrix null eq{ -/SavedCTM matrix | : ADO_mxRot concat 0 0 snap + : 0.48 @ GDIHPatternDict ` -YStep mul ~ XStep mul ~ dsnap YStep V ~ XStep V ~ E +S/GDIHMatrix matrix -currentmatrix readonly | ; : 0.24 -0.24 +S GDIBWPatternDict ` Width Height E -dsnap +S/GDIBWPatternMx matrix currentmatrix readonly | ; ;}if}b/cirp{360 0 An -C}b/ellp{CTMsave + +S 0.5 0 M 0 0 0.5 360 0 An C CTMrestore}b/rrp{/rad ~ |/y2 -~ |/x2 ~ |/y1 ~ |/x1 ~ | x2 x1 add 2 V y1 M x1 y1 x1 y2 rad arct x1 y2 x2 y2 -rad arct x2 y2 x2 y1 rad arct x2 y1 x1 y1 rad arct C}b/RRp{CTMsave + +S/dyS ~ -|/dxS ~ | dxS 2 V 0 M 0 0 0 dyS 0.5 arct 0 dyS dxS dyS 0.5 arct dxS dyS dxS 0 -0.5 arct dxS 0 0 0 0.5 arct C CTMrestore}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L1 2.0 0 -L2? not g{/arct{arcto ! ! ! !}b/GDIpattfill{@ ` BGnd null ne PaintType 2 eq -and{: BGnd aload ! sgco fEOFill{O}{L}? ; FGnd aload ! U/fGray 2 ^ put{2}{4}? --1 $}if E @ patterncalc : 4 ^/PaintType get 2 eq{fGray{6 -1 $ sg}{8 -3 $ sco}? -}if fEOFill{eoclip}{clip}? N patternfill ; N}b/hrf{/fGray 1 ^ 6 eq | -4 $ N rp -C/fEOFill F | GDIpattfill}b/hfMain{/fEOFill ~ |/fGray ~ | GDIpattfill}b/hf{T -hfMain}b/hfW{F hfMain}b/hs{currentpoint strokepath M hfW}b/pfMain{/fEOFill ~ | -pfprep GDIpattfill restore N}b/pf{T pfMain}b/pfW{F pfMain}b/ps{currentpoint -strokepath M pfW}b/mpstr 1 string |/mp{~ @ length 12 add dict copy ` -/PatternCTM matrix currentmatrix |/PatternMatrix ~ |/PatWidth XStep mpstr -length mul |/PatHeight YStep |/FontType 3 |/Encoding 256 array | 3 string 0 1 -255{Encoding ~ @ 3 ^ cvs cvn put}for !/FontMatrix matrix |/FontBBox BBox | -/BuildChar{! @ ` XStep 0 FontBBox aload ! setcachedevice/PaintProc , E : exec -;}b & E ~ @ 3 -1 $ definefont}b/patterncalc{` : PatternCTM setmatrix -PatternMatrix concat BBox aload ! ! ! + pathbbox ; PatHeight V ceiling 4 1 $ -PatWidth V ceiling 4 1 $ PatHeight V floor 4 1 $ PatWidth V floor 4 1 $ 2 ^ -sub cvi abs ~ 3 ^ sub cvi abs ~ 4 2 $ PatHeight mul ~ PatWidth mul ~ E}b -/patternfill{5 -1 $ @ ` Ji PatternCTM setmatrix PatternMatrix concat 0 2 ^ 2 ^ -M 0 1 mpstr length 1 sub{1 ^ mpstr 3 1 $ put}for ! 2 ^{currentpoint 5 ^{mpstr -S}repeat YStep add M}repeat ! ! ! ! E}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L2 2.0 0 -L2? g{/mp/makepattern , |/hrf{6 eq setAorABC setpattern rectfill}b/hf{ -setAorABC setpattern O}b/hfW{setAorABC setpattern L}b/hs{setAorABC setpattern -K}b/pf{pfprep setpattern O restore N}b/pfW{pfprep setpattern L restore N}b/ps{ -pfprep setpattern K restore N}b}e -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images 2.0 0 -/iw 0 |/ih 0 |/im_save 0 |/s 0 |/polarity 0 |/smoothflag 0 |/mystring 0 |/bpc -0 |/setup1asciiproc{[currentfile mystring/readhexstring cvx/! cvx]cvx bind}b -/setup1binaryproc{[currentfile mystring/readstring cvx/! cvx]cvx bind}b -/setup2asciiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}b -/setup2binaryproc{currentfile/RunLengthDecode filter}b/mycolorspace{colspABC}| -/myimagedict{/myimagedict 10 dict | myimagedict @ `/ImageType 1 | -/MultipleDataSource F | E}b/imageprocarray[/setup1binaryproc/setup1asciiproc -/setup2binaryproc/setup2asciiproc/setup1binarydecodeproc/setup1asciidecodeproc -]|/L2Polarity{{[1 0]}{[0 1]}?}b/Q{/im_save save | imageprocarray ~ get/s ~ , | -L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring ~ -string |/bpc ~ |/ih ~ |/iw ~ |}b/X{/im_save save | imageprocarray ~ get/s ~ , -| L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring -~ string |/bpc ~ |/ih ~ |/iw ~ |}b/Z{im_save restore}b/Y{sgco myimagedict @ ` -/Width iw |/Height ih |/Decode polarity |/ImageMatrix[iw 0 0 ih 0 0]| -/DataSource s |/BitsPerComponent 1 |/Interpolate smoothflag | E imagemask}b -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images_L1 2.0 0 -L2? not g{/setup2asciiproc{[/Level2ImagesError , aload ! T FatalErrorIf}b -/setup2binaryproc/setup2asciiproc , |/L2Polarity{}|/Y{sgco iw ih polarity[iw 0 -0 ih 0 0]s imagemask}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L1 2.0 0 -L2? not g{/testsystemdict{where{systemdict eq{T}{F}?}{F}?}b/c 1 |/colorimage -where{! T}{F}?{/c 0 statusdict `/processcolors where{! ! processcolors}{ -/deviceinfo where{! deviceinfo/Colors known{!{deviceinfo/Colors get}}if}if}? E -| c 0 ne{/colorimage testsystemdict/setcolortransfer testsystemdict -/currentcolortransfer testsystemdict/currentcmykcolor testsystemdict and and -and not{/c 0 |}if}if}if c @ 1 ne ~ @ 3 ne ~ 4 ne and and{/c 0 |}if c 1 eq g{ -/expandbw{expandfactor mul round cvi bwclut ~ get 255 V}b/doclutimage{!/bwclut -~ | bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/expandfactor ~ |[/expandbw ,/exec , @ -currenttransfer ~]cvx bind settransfer iw ih bpc[iw 0 0 ih 0 0]s image}b}e c @ -3 eq ~ 4 eq or g{/nullproc{{}}|/concatutil{/exec , 7 -1 $/exec ,}b/defsubclut{ -1 add getinterval |}b/spconcattransfer{/Dclut ~ |/Cclut ~ |/Bclut ~ |/Aclut ~ -|/ncompute ~ , | currentcolortransfer[{Aclut ncompute}concatutil]cvx[{Bclut -ncompute}concatutil]cvx[{Cclut ncompute}concatutil]cvx[{Dclut ncompute} -concatutil]cvx setcolortransfer}b/setuprgbcluts{/bit3x rgbclut length 3 sub | -/bit1x bit3x 3 idiv |/rclut rgbclut |/gclut rclut 1 bit3x defsubclut/bclut -rclut 2 bit3x defsubclut}b}e c 3 eq g{/3compute{~ bit3x mul round cvi get 255 -V}b/doclutimage{/rgbclut ~ | ! setuprgbcluts/3compute rclut gclut bclut @ -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @]cvx nullproc nullproc -T 3 colorimage}b}e c 4 eq g{/ftoint{1 ~ sub 255 mul round cvi}b/stuffclut{ -cmykindex 3 -1 $ put}b/4compute{~ bit4x mul round cvi get 255 V}b -/invalidcolortable? T |/computecmykclut{setuprgbcluts/bit4x rgbclut length 3 -idiv 4 mul 4 sub |/cmykclut bit4x 4 add string |/cclut cmykclut |/mclut cclut -1 bit4x defsubclut/yclut cclut 2 bit4x defsubclut/kclut cclut 3 bit4x -defsubclut/cmykindex 0 | 0 1 bit1x{@/cmykindex ~ bit1x ~ sub 4 mul | 3 mul @ -rclut ~ get 255 V ~ @ gclut ~ get 255 V ~ bclut ~ get 255 V setrgbcolor -currentcmykcolor ftoint kclut stuffclut ftoint yclut stuffclut ftoint mclut -stuffclut ftoint cclut stuffclut}for}b/doclutimage{/rgbclut ~ | ! -invalidcolortable?{computecmykclut}if/4compute cclut mclut yclut kclut -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @ @]cvx nullproc -nullproc nullproc T 4 colorimage}b}e c 0 eq g{/a{3 mul 3 getinterval -putinterval ~ 3 add ~ 3 copy}b/8lookup/a , |/4lookup{/byte 1 ^ | -4 bitshift a -byte 15 and a}b/2lookup{/byte 1 ^ | -6 bitshift a byte -4 bitshift 3 and a -byte -2 bitshift 3 and a byte 3 and a}b/colorexpand{mystringexp 0 rgbclut 3 -copy 7 -1 $/mylookup , forall ! ! ! ! !}b/createexpandstr{/mystringexp ~ -mystring length mul string |}b/doclutimage{/rgbclut ~ | !/mylookup bpc 8 eq{3 -createexpandstr/8lookup}{bpc 4 eq{6 createexpandstr/4lookup}{12 -createexpandstr/2lookup}?}? , | iw ih bpc[iw 0 0 ih 0 0][s/exec ,/colorexpand -,/exec ,]cvx F 3 colorimage}b}e/colorimage where{! T}{F}? g{/do24image{iw ih 8 -[iw 0 0 ih 0 0]s F 3 colorimage}b}DefIf_El{/rgbtogray{/str ~ |/len str length -|/smlen len 3 idiv |/rstr str |/gstr str 1 len 1 sub getinterval |/bstr str 2 -len 2 sub getinterval | str @ 0 1 smlen 1 sub{@ 3 mul rstr 1 ^ get 0.3 mul -gstr 2 ^ get 0.59 mul add bstr 3 -1 $ get 0.11 mul add round cvi put @}for ! 0 -smlen getinterval}b/do24image{iw ih 8[iw 0 0 ih 0 0][s/exec ,/rgbtogray ,/exec -,]cvx bind image}b}e/doNimage{bpc 24 eq{do24image}{iw ih bpc[iw 0 0 ih 0 0]s -image}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L2 2.0 0 -L2? g{/doclutimage{/rgbclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[ -/Indexed colspABC hival rgbclut]setcolorspace myimagedict @ `/Width iw | -/Height ih |/Decode[0 hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s | -/BitsPerComponent bpc |/Interpolate smoothflag | E image}b/doCMYKclutimage{ -/CMYKclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[/Indexed/DeviceCMYK -hival CMYKclut]setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 -hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent bpc | -/Interpolate smoothflag | E image}b/doNimage{bpc 24 eq{colspABC}{colspA}? -setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode bpc 24 eq{[0 1 0 1 -0 1]}{[0 1]}? |/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent -bpc 24 eq{8}{bpc}? |/Interpolate smoothflag | E image}b/doCMYKimage{ -/DeviceCMYK setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 1 0 -1 0 1 0 1]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent 8 | -/Interpolate smoothflag | E image}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Type3_Hdr 2.0 0 -/GreNewFont{10 dict @ 3 1 $ | @ ` 4 1 $/FontType 3 |/FontMatrix ~ |/FontBBox ~ -|/Encoding 256 array | 0 1 255{Encoding ~/.notdef put}for/CharProcs 257 dict | -CharProcs/.notdef{}put/Metrics 257 dict | Metrics/.notdef 3 -1 $ put/BuildChar -{/char ~ |/fontdict ~ |/charname fontdict/Encoding get char get | fontdict -/Metrics get charname get aload ! setcachedevice fontdict ` Encoding char get -CharProcs ~ get E exec}| E definefont !}|/AddChar{` Encoding 3 1 $ put -CharProcs 3 1 $ put Metrics 3 1 $ put E}| -%%EndResource -%%BeginResource: file Pscript_Win_Type1_Hdr 2.0 0 -/FEbuf 2 string |/FEglyph 3 string |/FE{(G00)FEglyph copy ! 1 ~{@ 16 lt{ -/offset 2 store}{/offset 1 store}? @ 16 FEbuf cvrs FEglyph ~ offset ~ -putinterval 1 ^ ~ FEglyph cvn put}for}bind |/Type1Hdr{11 dict `/FontName ~ | -/PaintType ~ |/FontType 1 |/FontMatrix[1 3 ^ V 0 0 1 6 ^ V 0 0]| !/Encoding -256 array 0 1 255{1 ^ ~/.notdef put}for 3 ^ 3 ^ FE | ! !/FontBBox{0 0 0 0}| & -E currentfile eexec}bind | -%%EndResource -/pp 1 string |/ss 1 string |/rledecodebinary{/DC 0 |/BC 0 |{DC mystring length -ge{exit}if currentfile ss readstring ! 0 get/BC ~ | BC 127 le{/BC BC 1 add | -DC 1 DC BC add 1 sub{mystring ~ currentfile ss readstring ! 0 get put}for}{/BC -257 BC sub | currentfile ss readstring ! 0 get/pp ~ | DC 1 DC BC add 1 sub{ -mystring ~ pp put}for}?/DC DC BC add |}loop mystring}b/rledecodeascii{/DC 0 | -/BC 0 |{DC mystring length ge{exit}if currentfile ss readhexstring ! 0 get/BC -~ | BC 127 le{/BC BC 1 add | DC 1 DC BC add 1 sub{mystring ~ currentfile ss -readhexstring ! 0 get put}for}{/BC 257 BC sub | currentfile ss readhexstring ! -0 get/pp ~ | DC 1 DC BC add 1 sub{mystring ~ pp put}for}?/DC DC BC add |}loop -mystring}b/setup1asciidecodeproc{[/rledecodeascii cvx]cvx bind}b -/setup1binarydecodeproc{[/rledecodebinary cvx]cvx bind}b -%%BeginResource: file Pscript_Win_Compat 2.0 0 -userdict/Pscript_Win_Compat 13 dict dup begin/bd{bind def}bind def/ld{load def -}bd/CB{pop pop pop pop}bind def/B{pop pop pop pop}bind def/$x matrix def/SS{ -/pagesave save def}bind def/RS{/pagesave where{pop pagesave restore}{$x matrix -invertmatrix concat}ifelse}bind def/ANSIVec[0/grave 1/acute 2/circumflex 3 -/tilde 4/macron 5/breve 6/dotaccent 7/dieresis 8/ring 9/cedilla 10 -/hungarumlaut 11/ogonek 12/caron 13/dotlessi 39/quotesingle 96/grave 124/bar -130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135 -/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE -145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150 -/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156 -/oe 159/Ydieresis 160/space 161/exclamdown 164/currency 165/yen 166/brokenbar -167/section 168/dieresis 169/copyright 170/ordfeminine 171/guillemotleft 172 -/logicalnot 173/hyphen 174/registered 175/macron 176/degree 177/plusminus 178 -/twosuperior 179/threesuperior 180/acute 181/mu 182/paragraph 183 -/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 187 -/guillemotright 188/onequarter 189/onehalf 190/threequarters 191/questiondown -192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198 -/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204 -/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve -211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223 -/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229 -/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis -236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242 -/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248 -/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254 -/thorn 255/ydieresis]def currentdict{dup type/operatortype eq{[exch]cvx def}{ -pop pop}ifelse}forall/initialize{currentdict exch begin begin}bind def -/terminate{/@FL where not{pop end end}{pop}ifelse}bind def/suspend/terminate -load def/resume/initialize load def/M/moveto load def end put/Courier findfont -10 scalefont setfont -%%EndResource -end /ProcSet defineresource pop -%%EndResource -%%EndProlog - -%%BeginSetup -Pscript_Win_Compat dup /initialize get exec -[ 0 1.000 -1.000 0 0 0 ] false /Pscript_Win_Driver /ProcSet findresource dup /initialize get exec - - -/mysetup [ 0.240 0 0 -0.240 8.880 592.800 ] | -%%EndSetup - -%%Page: 1 1 -%%BeginPageSetup -userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 2550 3300 rf ; -%%EndPageSetup - -: 0 0 3229 2391 rc -2789 1298 N M 0 -51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2789 1247 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2789 1247 N M 336 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3125 1247 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3125 1247 N M 26 25 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1272 N M -26 26 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3125 1298 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3125 1298 N M -336 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2789 1298 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2789 1298 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2789 1298 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -77 1970 N M 0 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -77 1918 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -77 1918 N M 336 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -413 1918 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -413 1918 N M 26 26 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -439 1944 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -439 1944 N M -26 26 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -413 1970 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -413 1970 N M -336 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -77 1970 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -77 1970 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -77 1970 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -77 1195 N M 0 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -77 1143 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -77 1143 N M 336 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -413 1143 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -413 1143 N M 26 26 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -439 1169 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -439 1169 N M -26 26 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -413 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -413 1195 N M -336 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -77 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -77 1195 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -77 1195 N M 0 0 rr : 0 0 0 sco O ; : 2869 1254 264 38 rc 0 0 0 sco %%IncludeFont: Helvetica -(F0) cvn -0.912 - (Helvetica) cvn /Type1 -T -(Helvetica) cvn -mF -(F0_26_34) cvn -F0 -26 0 0 34 0 0 -xMF -F0_26_34 -Ji -2902 1254 M -2.120 0 (output)A -; : 155 1926 264 38 rc 0 0 0 sco F0_26_34 -Ji -188 1926 M -1.825 0 (enable)A -; : 131 1151 297 38 rc 0 0 0 sco F0_26_34 -Ji -164 1151 M -3.123 0 (command)A -; : 0 0 3229 2391 rc -2815 239 N M -26 -26 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2789 213 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2789 213 N M 26 -25 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2815 188 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2815 188 N M 336 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 188 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 188 N M 0 51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 239 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 239 N M -336 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2815 239 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2815 239 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2815 239 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -103 472 N M -26 -26 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -77 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -77 446 N M 26 -26 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -103 420 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -103 420 N M 336 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -439 420 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -439 420 N M 0 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -439 472 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -439 472 N M -336 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -103 472 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -103 472 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -103 472 N M 0 0 rr : 0 0 0 sco O ; : 2877 195 330 38 rc 0 0 0 sco F0_26_34 -Ji -2910 195 M -1.936 0 (feedback)A -; : 194 428 231 38 rc 0 0 0 sco F0_26_34 -Ji -227 428 M -1.423 0 (error)A -; : 1507 2158 374 39 rc 0 0 0 sco F0_26_34 -Ji -1541 2158 M -2.952 0 (max-cmdDD)A -; : 977 1590 330 38 rc 0 0 0 sco F0_26_34 -Ji -1010 1590 M -2.918 0 (max-cmdD)A -; : 1466 1253 408 39 rc 0 0 0 sco F0_26_34 -Ji -1500 1253 M -1.957 0 (max-errorD)A -; : 1736 686 231 38 rc 0 0 0 sco F0_26_34 -Ji -1769 686 M -2.304 0 (Pgain)A -; : 1747 1849 165 38 rc 0 0 0 sco F0_26_34 -Ji -1780 1849 M -2.924 0 (FF2)A -; : 1980 1254 198 38 rc 0 0 0 sco F0_26_34 -Ji -2013 1254 M -1.829 0 (bias)A -; : 1747 1409 165 38 rc 0 0 0 sco F0_26_34 -Ji -1780 1409 M -2.924 0 (FF0)A -; : 1747 1642 165 38 rc 0 0 0 sco F0_26_34 -Ji -1780 1642 M -2.924 0 (FF1)A -; : 1735 944 231 38 rc 0 0 0 sco F0_26_34 -Ji -1768 944 M -2.218 0 (Dgain)A -; : 1742 273 231 38 rc 0 0 0 sco F0_26_34 -Ji -1775 273 M -1.926 0 (Igain)A -; : 1472 582 408 39 rc 0 0 0 sco F0_26_34 -Ji -1506 582 M -1.811 0 (max-errorI)A -; : 2292 1848 408 39 rc 0 0 0 sco F0_26_34 -Ji -2326 1848 M -2.195 0 (max-output)A -; : 909 634 363 38 rc 0 0 0 sco F0_26_34 -Ji -942 634 M -1.816 0 (max-error)A -; : 675 944 330 38 rc 0 0 0 sco F0_26_34 -Ji -708 944 M -2.169 0 (deadband)A -; : 0 0 3229 2391 rc -1472 2151 N M 0 51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1472 2202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1634 N M 0 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -929 1582 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1420 1247 N M 0 51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1420 1298 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 730 N M 0 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1653 678 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 1892 N M 0 -51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1653 1841 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1885 1298 N M 0 -51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1885 1247 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 1453 N M 0 -51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1653 1402 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 1686 N M 0 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1653 1634 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 988 N M 0 -51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1653 937 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 317 N M 0 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1653 265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1420 575 N M 0 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1420 627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2247 1841 N M 0 51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2247 1892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -852 678 N M 0 -51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -852 627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -619 988 N M 0 -51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -619 937 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1472 2202 N M 310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 2202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 1582 N M 310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1239 1582 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1420 1298 N M 310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1730 1298 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 678 N M 310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1963 678 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 1841 N M 310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1963 1841 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1885 1247 N M 310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2195 1247 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 1402 N M 310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1963 1402 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 1634 N M 310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1963 1634 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 937 N M 310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1963 937 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 265 N M 310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1963 265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1420 627 N M 310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1730 627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2247 1892 N M 310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2557 1892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -852 627 N M 310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1162 627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -619 937 N M 310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -929 937 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 2202 N M 0 -51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 2151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1239 1582 N M 0 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1239 1634 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1730 1298 N M 0 -51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1730 1247 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 678 N M 0 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1963 730 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 1841 N M 0 51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1963 1892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2195 1247 N M 0 51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2195 1298 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 1402 N M 0 51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1963 1453 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 1634 N M 0 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1963 1686 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 937 N M 0 51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1963 988 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 265 N M 0 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1963 317 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1730 627 N M 0 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1730 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2557 1892 N M 0 -51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2557 1841 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1162 627 N M 0 51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1162 678 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 937 N M 0 51 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -929 988 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 2151 N M -310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1472 2151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1239 1634 N M -310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -929 1634 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1730 1247 N M -310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1420 1247 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 730 N M -310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1653 730 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 1892 N M -310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1653 1892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2195 1298 N M -310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1885 1298 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 1453 N M -310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1653 1453 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 1686 N M -310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1653 1686 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 988 N M -310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1653 988 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 317 N M -310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1653 317 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1730 575 N M -310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1420 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2557 1841 N M -310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2247 1841 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1162 678 N M -310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -852 678 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 988 N M -310 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -619 988 N M 0 0 rr : 0 0 0 sco O ; : 514 2063 455 77 rc 0 0 0 sco (F0_50_67) cvn -F0 -50 0 0 67 0 0 -xMF -F0_50_67 -Ji -579 2063 M -4.920 0 (pid.0)A -; : 0 0 3229 2391 rc -1756 2099 N M 0 -155 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1756 1944 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1756 1944 N M 155 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1911 1944 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1911 1944 N M 0 155 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1911 2099 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1911 2099 N M -155 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1756 2099 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1214 1841 N M 0 -155 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1214 1686 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1214 1686 N M 155 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1369 1686 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1369 1686 N M 0 155 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1369 1841 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1369 1841 N M -155 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1214 1841 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1704 1195 N M 0 -155 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1704 1040 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1704 1040 N M 155 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1859 1040 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1859 1040 N M 0 155 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1859 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1859 1195 N M -155 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1704 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1704 523 N M 0 -155 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1704 368 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1704 368 N M 155 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1859 368 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1859 368 N M 0 155 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1859 523 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1859 523 N M -155 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1704 523 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2531 1350 N M 0 -155 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2531 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2531 1195 N M 155 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2686 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2686 1195 N M 0 155 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2686 1350 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2686 1350 N M -155 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2531 1350 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1136 885 N M 0 -155 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1136 730 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1136 730 N M 155 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1291 730 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1291 730 N M 0 155 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1291 885 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1291 885 N M -155 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1136 885 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -904 885 N M 0 -155 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -904 730 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -904 730 N M 155 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1059 730 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1059 730 N M 0 155 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1059 885 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1059 885 N M -155 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -904 885 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1756 2022 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1760 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1767 2022 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1775 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 2022 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1790 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1797 2022 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1805 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1812 2022 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1820 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1827 2022 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1835 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1842 2022 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1850 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1857 2022 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1865 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1872 2022 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1880 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1887 2022 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1895 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1902 2022 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1910 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1214 1763 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1217 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1225 1763 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1232 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1240 1763 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1247 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1255 1763 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1262 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1270 1763 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1277 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1285 1763 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1292 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1300 1763 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1307 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1315 1763 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1322 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1330 1763 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1337 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1345 1763 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1352 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1360 1763 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1367 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1704 1118 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1708 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1716 1118 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1723 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1731 1118 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1738 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1746 1118 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1753 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1761 1118 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1768 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1776 1118 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1783 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1791 1118 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1798 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1806 1118 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1813 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1821 1118 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1828 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1836 1118 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1843 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1851 1118 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1858 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1704 446 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1708 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1716 446 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1723 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1731 446 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1738 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1746 446 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1753 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1761 446 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1768 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1776 446 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1783 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1791 446 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1798 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1806 446 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1813 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1821 446 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1828 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1836 446 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1843 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1851 446 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1858 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2531 1272 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2535 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2542 1272 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2550 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2557 1272 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2565 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2572 1272 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2580 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2587 1272 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2595 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2602 1272 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2610 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2617 1272 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2625 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2632 1272 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2640 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2647 1272 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2655 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2662 1272 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2670 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2677 1272 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2685 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1136 808 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1140 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1147 808 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1155 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1162 808 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1170 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1177 808 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1185 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1192 808 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1200 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1207 808 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1215 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1222 808 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1230 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1237 808 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1245 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 808 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1260 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1267 808 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1275 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1282 808 N M 8 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1290 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -904 808 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -907 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -915 808 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -922 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -930 808 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -937 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -945 808 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -952 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -960 808 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -967 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -975 808 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -982 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -990 808 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -997 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1005 808 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1012 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1020 808 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1027 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1035 808 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1042 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1050 808 N M 7 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1057 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1834 1944 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1834 1948 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1834 1955 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1834 1963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1834 1970 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1834 1978 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1834 1985 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1834 1993 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1834 2000 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1834 2008 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1834 2015 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1834 2023 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1834 2030 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1834 2038 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1834 2045 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1834 2053 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1834 2060 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1834 2068 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1834 2075 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1834 2083 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1834 2090 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1834 2098 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1291 1686 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1291 1690 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1291 1697 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1291 1705 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1291 1712 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1291 1720 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1291 1727 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1291 1735 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1291 1742 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1291 1750 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1291 1757 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1291 1765 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1291 1772 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1291 1780 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1291 1787 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1291 1795 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1291 1802 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1291 1810 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1291 1817 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1291 1825 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1291 1832 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1291 1840 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 1040 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 1044 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 1051 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 1059 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 1066 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 1074 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 1081 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 1089 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 1096 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 1104 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 1111 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 1119 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 1126 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 1134 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 1141 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 1149 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 1156 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 1164 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 1171 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 1179 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 1186 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 1194 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 368 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 372 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 380 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 387 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 395 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 402 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 410 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 417 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 425 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 432 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 440 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 455 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 470 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 485 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 500 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 507 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 515 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 522 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2609 1195 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2609 1199 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2609 1206 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2609 1214 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2609 1221 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2609 1229 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2609 1236 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2609 1244 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2609 1251 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2609 1259 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2609 1266 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2609 1274 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2609 1281 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2609 1289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2609 1296 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2609 1304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2609 1311 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2609 1319 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2609 1326 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2609 1334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2609 1341 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2609 1349 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1214 730 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1214 734 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1214 741 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1214 749 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1214 756 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1214 764 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1214 771 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1214 779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1214 786 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1214 794 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1214 801 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1214 809 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1214 816 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1214 824 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1214 831 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1214 839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1214 846 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1214 854 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1214 861 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1214 869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1214 876 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1214 884 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -981 730 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -981 734 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -981 741 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -981 749 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -981 756 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -981 764 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -981 771 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -981 779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -981 786 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -981 794 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -981 801 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -981 809 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -981 816 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -981 824 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -981 831 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -981 839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -981 846 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -981 854 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -981 861 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -981 869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -981 876 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -981 884 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -904 885 N M 51 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -955 833 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -955 833 N M 0 -25 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -955 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -955 808 N M 52 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1007 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1007 808 N M 0 -26 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1007 782 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1007 782 N M 52 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1059 730 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1756 2073 N M 26 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1782 2073 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1214 1815 N M 25 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1239 1815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1704 1169 N M 26 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1730 1169 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1704 498 N M 26 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1730 498 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2531 1324 N M 26 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2557 1324 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1136 859 N M 26 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1162 859 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 2073 N M 103 -103 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1885 1970 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1239 1815 N M 104 -103 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1343 1712 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1730 1169 N M 104 -103 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1834 1066 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1730 498 N M 104 -104 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1834 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2557 1324 N M 103 -103 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2660 1221 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1162 859 N M 103 -103 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1265 756 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1885 1970 N M 26 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1911 1970 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1343 1712 N M 26 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1369 1712 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1834 1066 N M 25 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1859 1066 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1834 394 N M 25 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1859 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2660 1221 N M 26 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2686 1221 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1265 756 N M 26 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1291 756 N M 0 0 rr : 0 0 0 sco O ; -N 542 808 52.000 360 0 An C 1 Lw 1 Lc 1 Lj solid 0 0 0 sco K -N 2169 1763 52.000 360 0 An C 0 0 0 sco K -N 2350 1272 52.000 360 0 An C 0 0 0 sco K -N 2169 808 52.000 360 0 An C 0 0 0 sco K : 0 0 3229 2391 rc -542 808 N M 37 -37 - 1 Lw solid 0 0 0 sco K ; -579 771 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 1763 N M 37 -36 - 1 Lw solid 0 0 0 sco K ; -2206 1727 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2350 1272 N M 37 -36 - 1 Lw solid 0 0 0 sco K ; -2387 1236 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 808 N M 37 -37 - 1 Lw solid 0 0 0 sco K ; -2206 771 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -542 808 N M -37 -37 - 1 Lw solid 0 0 0 sco K ; -505 771 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 1763 N M -36 -36 - 1 Lw solid 0 0 0 sco K ; -2133 1727 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2350 1272 N M -36 -36 - 1 Lw solid 0 0 0 sco K ; -2314 1236 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 808 N M -36 -37 - 1 Lw solid 0 0 0 sco K ; -2133 771 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -542 808 N M -37 36 - 1 Lw solid 0 0 0 sco K ; -505 844 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 1763 N M -36 37 - 1 Lw solid 0 0 0 sco K ; -2133 1800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2350 1272 N M -36 37 - 1 Lw solid 0 0 0 sco K ; -2314 1309 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 808 N M -36 36 - 1 Lw solid 0 0 0 sco K ; -2133 844 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -542 808 N M 37 36 - 1 Lw solid 0 0 0 sco K ; -579 844 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 1763 N M 37 37 - 1 Lw solid 0 0 0 sco K ; -2206 1800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2350 1272 N M 37 37 - 1 Lw solid 0 0 0 sco K ; -2387 1309 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 808 N M 37 36 - 1 Lw solid 0 0 0 sco K ; -2206 844 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -529 777 N M 26 0 - 1 Lw solid 0 0 0 sco K ; -555 777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1732 N M 26 0 - 1 Lw solid 0 0 0 sco K ; -2182 1732 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2337 1241 N M 26 0 - 1 Lw solid 0 0 0 sco K ; -2363 1241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 777 N M 26 0 - 1 Lw solid 0 0 0 sco K ; -2182 777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 1719 N M 0 26 - 1 Lw solid 0 0 0 sco K ; -2169 1745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2350 1229 N M 0 25 - 1 Lw solid 0 0 0 sco K ; -2350 1254 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 764 N M 0 25 - 1 Lw solid 0 0 0 sco K ; -2169 789 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2125 1763 N M 26 0 - 1 Lw solid 0 0 0 sco K ; -2151 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2306 1272 N M 26 0 - 1 Lw solid 0 0 0 sco K ; -2332 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2125 808 N M 26 0 - 1 Lw solid 0 0 0 sco K ; -2151 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2138 1750 N M 0 26 - 1 Lw solid 0 0 0 sco K ; -2138 1776 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2319 1260 N M 0 25 - 1 Lw solid 0 0 0 sco K ; -2319 1285 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2138 795 N M 0 25 - 1 Lw solid 0 0 0 sco K ; -2138 820 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -542 826 N M 0 25 - 1 Lw solid 0 0 0 sco K ; -542 851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 1781 N M 0 26 - 1 Lw solid 0 0 0 sco K ; -2169 1807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2350 1291 N M 0 25 - 1 Lw solid 0 0 0 sco K ; -2350 1316 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 826 N M 0 25 - 1 Lw solid 0 0 0 sco K ; -2169 851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -529 839 N M 26 0 - 1 Lw solid 0 0 0 sco K ; -555 839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1794 N M 26 0 - 1 Lw solid 0 0 0 sco K ; -2182 1794 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2337 1303 N M 26 0 - 1 Lw solid 0 0 0 sco K ; -2363 1303 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 839 N M 26 0 - 1 Lw solid 0 0 0 sco K ; -2182 839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1498 2099 N M 0 -155 - 1 Lw solid 0 0 0 sco K ; -1498 1944 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1498 1944 N M 155 0 - 1 Lw solid 0 0 0 sco K ; -1653 1944 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 1944 N M 26 78 - 1 Lw solid 0 0 0 sco K ; -1679 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1679 2022 N M -26 77 - 1 Lw solid 0 0 0 sco K ; -1653 2099 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1653 2099 N M -155 0 - 1 Lw solid 0 0 0 sco K ; -1498 2099 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1498 2099 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -1498 2099 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -955 1841 N M 0 -155 - 1 Lw solid 0 0 0 sco K ; -955 1686 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -955 1686 N M 155 0 - 1 Lw solid 0 0 0 sco K ; -1110 1686 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1110 1686 N M 26 77 - 1 Lw solid 0 0 0 sco K ; -1136 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1136 1763 N M -26 78 - 1 Lw solid 0 0 0 sco K ; -1110 1841 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1110 1841 N M -155 0 - 1 Lw solid 0 0 0 sco K ; -955 1841 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -955 1841 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -955 1841 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1446 1195 N M 0 -155 - 1 Lw solid 0 0 0 sco K ; -1446 1040 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1446 1040 N M 155 0 - 1 Lw solid 0 0 0 sco K ; -1601 1040 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1601 1040 N M 26 78 - 1 Lw solid 0 0 0 sco K ; -1627 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1627 1118 N M -26 77 - 1 Lw solid 0 0 0 sco K ; -1601 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1601 1195 N M -155 0 - 1 Lw solid 0 0 0 sco K ; -1446 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1446 1195 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -1446 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1446 523 N M 0 -155 - 1 Lw solid 0 0 0 sco K ; -1446 368 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1446 368 N M 155 0 - 1 Lw solid 0 0 0 sco K ; -1601 368 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1601 368 N M 26 78 - 1 Lw solid 0 0 0 sco K ; -1627 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1627 446 N M -26 77 - 1 Lw solid 0 0 0 sco K ; -1601 523 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1601 523 N M -155 0 - 1 Lw solid 0 0 0 sco K ; -1446 523 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1446 523 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -1446 523 N M 0 0 rr : 0 0 0 sco O ; : 1534 1978 99 38 rc 0 0 0 sco F0_26_34 -Ji -1567 1978 M -2.544 0 (d)A -; : 991 1719 99 38 rc 0 0 0 sco F0_26_34 -Ji -1024 1719 M -2.544 0 (d)A -; : 1482 1074 99 38 rc 0 0 0 sco F0_26_34 -Ji -1515 1074 M -2.544 0 (d)A -; : 1524 2029 132 38 rc 0 0 0 sco F0_26_34 -Ji -1557 2029 M -2.829 0 (dT)A -; : 982 1771 132 38 rc 0 0 0 sco F0_26_34 -Ji -1015 1771 M -2.829 0 (dT)A -; : 1473 1125 132 38 rc 0 0 0 sco F0_26_34 -Ji -1506 1125 M -2.829 0 (dT)A -; : 0 0 3229 2391 rc -1549 2022 N M 52 0 - 1 Lw solid 0 0 0 sco K ; -1601 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1007 1763 N M 52 0 - 1 Lw solid 0 0 0 sco K ; -1059 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1498 1118 N M 51 0 - 1 Lw solid 0 0 0 sco K ; -1549 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1549 394 N M -3 0 - 1 Lw solid 0 0 0 sco K ; -1546 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1546 394 N M -3 0 - 1 Lw solid 0 0 0 sco K ; -1543 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1543 394 N M -3 1 - 1 Lw solid 0 0 0 sco K ; -1540 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1540 395 N M -3 1 - 1 Lw solid 0 0 0 sco K ; -1537 396 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1537 396 N M -3 2 - 1 Lw solid 0 0 0 sco K ; -1534 398 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1534 398 N M -2 3 - 1 Lw solid 0 0 0 sco K ; -1532 401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1532 401 N M -2 5 - 1 Lw solid 0 0 0 sco K ; -1530 406 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1530 406 N M -2 5 - 1 Lw solid 0 0 0 sco K ; -1528 411 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1528 411 N M -2 8 - 1 Lw solid 0 0 0 sco K ; -1526 419 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1526 419 N M -1 8 - 1 Lw solid 0 0 0 sco K ; -1525 427 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1525 427 N M -1 9 - 1 Lw solid 0 0 0 sco K ; -1524 436 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1524 436 N M 0 10 - 1 Lw solid 0 0 0 sco K ; -1524 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1524 446 N M -1 10 - 1 Lw solid 0 0 0 sco K ; -1523 456 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1523 456 N M -1 9 - 1 Lw solid 0 0 0 sco K ; -1522 465 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1522 465 N M -1 8 - 1 Lw solid 0 0 0 sco K ; -1521 473 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1521 473 N M -2 7 - 1 Lw solid 0 0 0 sco K ; -1519 480 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1519 480 N M -2 6 - 1 Lw solid 0 0 0 sco K ; -1517 486 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1517 486 N M -2 4 - 1 Lw solid 0 0 0 sco K ; -1515 490 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 490 N M -2 3 - 1 Lw solid 0 0 0 sco K ; -1513 493 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1513 493 N M -3 2 - 1 Lw solid 0 0 0 sco K ; -1510 495 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1510 495 N M -3 2 - 1 Lw solid 0 0 0 sco K ; -1507 497 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1507 497 N M -3 0 - 1 Lw solid 0 0 0 sco K ; -1504 497 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1504 497 N M -3 1 - 1 Lw solid 0 0 0 sco K ; -1501 498 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1501 498 N M -3 0 - 1 Lw solid 0 0 0 sco K ; -1498 498 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -723 808 N M 0 -362 - 1 Lw solid 0 0 0 sco K ; -723 446 N M 0 0 rr : 0 0 0 sco O ; -728 808 N M -2 -5 - -4 -1 - -4 3 - 0 5 - 4 3 - 4 -1 - 2 -4 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -728 808 N M -2 -5 - 0 0 0 sco K ; -726 803 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -726 803 N M -4 -1 - 0 0 0 sco K ; -722 802 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -722 802 N M -4 3 - 0 0 0 sco K ; -718 805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -718 805 N M 0 5 - 0 0 0 sco K ; -718 810 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -718 810 N M 4 3 - 0 0 0 sco K ; -722 813 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -722 813 N M 4 -1 - 0 0 0 sco K ; -726 812 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -726 812 N M 2 -4 - 0 0 0 sco K ; -728 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -723 446 N M -284 0 - 0 0 0 sco K ; -439 446 N M 0 0 rr : 0 0 0 sco O ; -439 446 N M 20 4 - 0 -9 - -20 5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -439 446 N M 20 4 - 0 0 0 sco K ; -459 450 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -459 450 N M 0 -9 - 0 0 0 sco K ; -459 441 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -459 441 N M -20 5 - 0 0 0 sco K ; -439 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -723 808 N M 181 0 - 0 0 0 sco K ; -904 808 N M 0 0 rr : 0 0 0 sco O ; -904 808 N M -21 -5 - 0 9 - 21 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -904 808 N M -21 -5 - 0 0 0 sco K ; -883 803 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -883 803 N M 0 9 - 0 0 0 sco K ; -883 812 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -883 812 N M 21 -4 - 0 0 0 sco K ; -904 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -542 859 N M 0 310 - 0 0 0 sco K ; -542 1169 N M 0 0 rr : 0 0 0 sco O ; -542 859 N M -5 21 - 10 0 - -5 -21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -542 859 N M -5 21 - 0 0 0 sco K ; -537 880 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -537 880 N M 10 0 - 0 0 0 sco K ; -547 880 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -547 880 N M -5 -21 - 0 0 0 sco K ; -542 859 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -929 963 N M 52 0 - 0 0 0 sco K ; -981 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 2177 N M 52 0 - 0 0 0 sco K ; -1834 2177 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1239 1608 N M 52 0 - 0 0 0 sco K ; -1291 1608 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1730 1272 N M 52 0 - 0 0 0 sco K ; -1782 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 704 N M 51 0 - 0 0 0 sco K ; -2014 704 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 1867 N M 51 0 - 0 0 0 sco K ; -2014 1867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 1427 N M 51 0 - 0 0 0 sco K ; -2014 1427 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 1660 N M 51 0 - 0 0 0 sco K ; -2014 1660 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 963 N M 51 0 - 0 0 0 sco K ; -2014 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1963 291 N M 51 0 - 0 0 0 sco K ; -2014 291 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1730 601 N M 52 0 - 0 0 0 sco K ; -1782 601 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2557 1867 N M 52 0 - 0 0 0 sco K ; -2609 1867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1162 653 N M 52 0 - 0 0 0 sco K ; -1214 653 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -981 963 N M 0 -78 - 0 0 0 sco K ; -981 885 N M 0 0 rr : 0 0 0 sco O ; -981 885 N M -4 21 - 9 0 - -5 -21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -981 885 N M -4 21 - 0 0 0 sco K ; -977 906 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -977 906 N M 9 0 - 0 0 0 sco K ; -986 906 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -986 906 N M -5 -21 - 0 0 0 sco K ; -981 885 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1834 2177 N M 0 -78 - 0 0 0 sco K ; -1834 2099 N M 0 0 rr : 0 0 0 sco O ; -1834 2099 N M -5 21 - 9 0 - -4 -21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1834 2099 N M -5 21 - 0 0 0 sco K ; -1829 2120 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1829 2120 N M 9 0 - 0 0 0 sco K ; -1838 2120 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1838 2120 N M -4 -21 - 0 0 0 sco K ; -1834 2099 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1291 1608 N M 0 78 - 0 0 0 sco K ; -1291 1686 N M 0 0 rr : 0 0 0 sco O ; -1291 1686 N M 5 -21 - -9 0 - 4 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1291 1686 N M 5 -21 - 0 0 0 sco K ; -1296 1665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1296 1665 N M -9 0 - 0 0 0 sco K ; -1287 1665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1287 1665 N M 4 21 - 0 0 0 sco K ; -1291 1686 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 1272 N M 0 -77 - 0 0 0 sco K ; -1782 1195 N M 0 0 rr : 0 0 0 sco O ; -1782 1195 N M -5 21 - 9 0 - -4 -21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1782 1195 N M -5 21 - 0 0 0 sco K ; -1777 1216 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1777 1216 N M 9 0 - 0 0 0 sco K ; -1786 1216 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1786 1216 N M -4 -21 - 0 0 0 sco K ; -1782 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 704 N M 0 65 - 0 0 0 sco K ; -2014 769 N M 0 0 rr : 0 0 0 sco O ; -2014 769 N M 5 -21 - -9 0 - 4 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2014 769 N M 5 -21 - 0 0 0 sco K ; -2019 748 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2019 748 N M -9 0 - 0 0 0 sco K ; -2010 748 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2010 748 N M 4 21 - 0 0 0 sco K ; -2014 769 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 1867 N M 0 116 - 0 0 0 sco K ; -2014 1983 N M 0 0 rr : 0 0 0 sco O ; -2014 1983 N M 5 -21 - -9 0 - 4 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2014 1983 N M 5 -21 - 0 0 0 sco K ; -2019 1962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2019 1962 N M -9 0 - 0 0 0 sco K ; -2010 1962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2010 1962 N M 4 21 - 0 0 0 sco K ; -2014 1983 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 1427 N M 0 65 - 0 0 0 sco K ; -2014 1492 N M 0 0 rr : 0 0 0 sco O ; -2014 1492 N M 5 -21 - -9 0 - 4 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2014 1492 N M 5 -21 - 0 0 0 sco K ; -2019 1471 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2019 1471 N M -9 0 - 0 0 0 sco K ; -2010 1471 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2010 1471 N M 4 21 - 0 0 0 sco K ; -2014 1492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 1660 N M 0 65 - 0 0 0 sco K ; -2014 1725 N M 0 0 rr : 0 0 0 sco O ; -2014 1725 N M 5 -21 - -9 0 - 4 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2014 1725 N M 5 -21 - 0 0 0 sco K ; -2019 1704 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2019 1704 N M -9 0 - 0 0 0 sco K ; -2010 1704 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2010 1704 N M 4 21 - 0 0 0 sco K ; -2014 1725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 963 N M 0 116 - 0 0 0 sco K ; -2014 1079 N M 0 0 rr : 0 0 0 sco O ; -2014 1079 N M 5 -21 - -9 0 - 4 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2014 1079 N M 5 -21 - 0 0 0 sco K ; -2019 1058 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2019 1058 N M -9 0 - 0 0 0 sco K ; -2010 1058 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2010 1058 N M 4 21 - 0 0 0 sco K ; -2014 1079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 291 N M 0 116 - 0 0 0 sco K ; -2014 407 N M 0 0 rr : 0 0 0 sco O ; -2014 407 N M 5 -21 - -9 0 - 4 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2014 407 N M 5 -21 - 0 0 0 sco K ; -2019 386 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2019 386 N M -9 0 - 0 0 0 sco K ; -2010 386 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2010 386 N M 4 21 - 0 0 0 sco K ; -2014 407 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1782 601 N M 0 -78 - 0 0 0 sco K ; -1782 523 N M 0 0 rr : 0 0 0 sco O ; -1782 523 N M -5 21 - 9 0 - -4 -21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1782 523 N M -5 21 - 0 0 0 sco K ; -1777 544 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1777 544 N M 9 0 - 0 0 0 sco K ; -1786 544 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1786 544 N M -4 -21 - 0 0 0 sco K ; -1782 523 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2609 1867 N M 0 -517 - 0 0 0 sco K ; -2609 1350 N M 0 0 rr : 0 0 0 sco O ; -2609 1350 N M -5 21 - 9 0 - -4 -21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2609 1350 N M -5 21 - 0 0 0 sco K ; -2604 1371 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2604 1371 N M 9 0 - 0 0 0 sco K ; -2613 1371 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2613 1371 N M -4 -21 - 0 0 0 sco K ; -2609 1350 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1214 653 N M 0 77 - 0 0 0 sco K ; -1214 730 N M 0 0 rr : 0 0 0 sco O ; -1214 730 N M 4 -21 - -9 0 - 5 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1214 730 N M 4 -21 - 0 0 0 sco K ; -1218 709 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1218 709 N M -9 0 - 0 0 0 sco K ; -1209 709 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1209 709 N M 5 21 - 0 0 0 sco K ; -1214 730 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1679 2022 N M 77 0 - 0 0 0 sco K ; -1756 2022 N M 0 0 rr : 0 0 0 sco O ; -1756 2022 N M -21 -5 - 0 9 - 21 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1756 2022 N M -21 -5 - 0 0 0 sco K ; -1735 2017 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1735 2017 N M 0 9 - 0 0 0 sco K ; -1735 2026 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1735 2026 N M 21 -4 - 0 0 0 sco K ; -1756 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1136 1763 N M 78 0 - 0 0 0 sco K ; -1214 1763 N M 0 0 rr : 0 0 0 sco O ; -1214 1763 N M -21 -4 - 0 9 - 21 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1214 1763 N M -21 -4 - 0 0 0 sco K ; -1193 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1193 1759 N M 0 9 - 0 0 0 sco K ; -1193 1768 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1193 1768 N M 21 -5 - 0 0 0 sco K ; -1214 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1627 1118 N M 77 0 - 0 0 0 sco K ; -1704 1118 N M 0 0 rr : 0 0 0 sco O ; -1704 1118 N M -20 -5 - 0 9 - 20 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1704 1118 N M -20 -5 - 0 0 0 sco K ; -1684 1113 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1684 1113 N M 0 9 - 0 0 0 sco K ; -1684 1122 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1684 1122 N M 20 -4 - 0 0 0 sco K ; -1704 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1627 446 N M 77 0 - 0 0 0 sco K ; -1704 446 N M 0 0 rr : 0 0 0 sco O ; -1704 446 N M -20 -5 - 0 9 - 20 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1704 446 N M -20 -5 - 0 0 0 sco K ; -1684 441 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1684 441 N M 0 9 - 0 0 0 sco K ; -1684 450 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1684 450 N M 20 -4 - 0 0 0 sco K ; -1704 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2402 1272 N M 129 0 - 0 0 0 sco K ; -2531 1272 N M 0 0 rr : 0 0 0 sco O ; -2531 1272 N M -21 -4 - 0 9 - 21 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2531 1272 N M -21 -4 - 0 0 0 sco K ; -2510 1268 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2510 1268 N M 0 9 - 0 0 0 sco K ; -2510 1277 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2510 1277 N M 21 -5 - 0 0 0 sco K ; -2531 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1059 808 N M 77 0 - 0 0 0 sco K ; -1136 808 N M 0 0 rr : 0 0 0 sco O ; -1136 808 N M -21 -5 - 0 9 - 21 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1136 808 N M -21 -5 - 0 0 0 sco K ; -1115 803 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1115 803 N M 0 9 - 0 0 0 sco K ; -1115 812 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1115 812 N M 21 -4 - 0 0 0 sco K ; -1136 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1369 446 N M 0 672 - 0 0 0 sco K ; -1369 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1291 808 N M 78 0 - 0 0 0 sco K ; -1369 808 N M 0 0 rr : 0 0 0 sco O ; -1369 808 N M -21 -5 - 0 9 - 21 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1369 808 N M -21 -5 - 0 0 0 sco K ; -1348 803 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1348 803 N M 0 9 - 0 0 0 sco K ; -1348 812 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1348 812 N M 21 -4 - 0 0 0 sco K ; -1369 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1446 446 N M -77 0 - 0 0 0 sco K ; -1369 446 N M 0 0 rr : 0 0 0 sco O ; -1446 446 N M -21 -5 - 0 9 - 21 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1446 446 N M -21 -5 - 0 0 0 sco K ; -1425 441 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1425 441 N M 0 9 - 0 0 0 sco K ; -1425 450 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1425 450 N M 21 -4 - 0 0 0 sco K ; -1446 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1420 2022 N M 78 0 - 0 0 0 sco K ; -1498 2022 N M 0 0 rr : 0 0 0 sco O ; -1498 2022 N M -21 -5 - 0 9 - 21 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1498 2022 N M -21 -5 - 0 0 0 sco K ; -1477 2017 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1477 2017 N M 0 9 - 0 0 0 sco K ; -1477 2026 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1477 2026 N M 21 -4 - 0 0 0 sco K ; -1498 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -542 1763 N M 413 0 - 0 0 0 sco K ; -955 1763 N M 0 0 rr : 0 0 0 sco O ; -955 1763 N M -20 -4 - 0 9 - 20 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -955 1763 N M -20 -4 - 0 0 0 sco K ; -935 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -935 1759 N M 0 9 - 0 0 0 sco K ; -935 1768 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -935 1768 N M 20 -5 - 0 0 0 sco K ; -955 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1369 1118 N M 77 0 - 0 0 0 sco K ; -1446 1118 N M 0 0 rr : 0 0 0 sco O ; -1446 1118 N M -21 -5 - 0 9 - 21 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1446 1118 N M -21 -5 - 0 0 0 sco K ; -1425 1113 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1425 1113 N M 0 9 - 0 0 0 sco K ; -1425 1122 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1425 1122 N M 21 -4 - 0 0 0 sco K ; -1446 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 808 N M -13 -13 - 0 0 0 sco K ; -2001 795 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 2022 N M -13 -13 - 0 0 0 sco K ; -2001 2009 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 1531 N M -13 -13 - 0 0 0 sco K ; -2001 1518 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 1763 N M -13 -13 - 0 0 0 sco K ; -2001 1750 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 1118 N M -13 -13 - 0 0 0 sco K ; -2001 1105 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 446 N M -13 -13 - 0 0 0 sco K ; -2001 433 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 808 N M -13 12 - 0 0 0 sco K ; -2001 820 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 2022 N M -13 13 - 0 0 0 sco K ; -2001 2035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 1531 N M -13 13 - 0 0 0 sco K ; -2001 1544 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 1763 N M -13 13 - 0 0 0 sco K ; -2001 1776 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 1118 N M -13 12 - 0 0 0 sco K ; -2001 1130 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 446 N M -13 13 - 0 0 0 sco K ; -2001 459 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 808 N M 13 12 - 0 0 0 sco K ; -2027 820 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 2022 N M 13 13 - 0 0 0 sco K ; -2027 2035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 1531 N M 13 13 - 0 0 0 sco K ; -2027 1544 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 1763 N M 13 13 - 0 0 0 sco K ; -2027 1776 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 1118 N M 13 12 - 0 0 0 sco K ; -2027 1130 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 446 N M 13 13 - 0 0 0 sco K ; -2027 459 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 808 N M 13 -13 - 0 0 0 sco K ; -2027 795 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 2022 N M 13 -13 - 0 0 0 sco K ; -2027 2009 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 1531 N M 13 -13 - 0 0 0 sco K ; -2027 1518 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 1763 N M 13 -13 - 0 0 0 sco K ; -2027 1750 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 1118 N M 13 -13 - 0 0 0 sco K ; -2027 1105 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2014 446 N M 13 -13 - 0 0 0 sco K ; -2027 433 N M 0 0 rr : 0 0 0 sco O ; -N 2014 808 39.000 360 0 An C 1 Lw solid 0 0 0 sco K -N 2014 2022 39.000 360 0 An C 0 0 0 sco K -N 2014 1531 39.000 360 0 An C 0 0 0 sco K -N 2014 1763 39.000 360 0 An C 0 0 0 sco K -N 2014 1118 39.000 360 0 An C 0 0 0 sco K -N 2014 446 39.000 360 0 An C 0 0 0 sco K : 0 0 3229 2391 rc -2053 446 N M 116 0 - 1 Lw solid 0 0 0 sco K ; -2169 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 1531 N M -116 0 - 1 Lw solid 0 0 0 sco K ; -2053 1531 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 2022 N M -116 0 - 1 Lw solid 0 0 0 sco K ; -2053 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 1118 N M -116 0 - 1 Lw solid 0 0 0 sco K ; -2053 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1976 808 N M -607 0 - 1 Lw solid 0 0 0 sco K ; -1369 808 N M 0 0 rr : 0 0 0 sco O ; -1976 808 N M -21 -5 - 0 9 - 21 -4 - C : 0 0 0 sco O ; 1 Lw solid 0 0 0 sco K : 0 0 3229 2391 rc -1976 808 N M -21 -5 - 0 0 0 sco K ; -1955 803 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1955 803 N M 0 9 - 0 0 0 sco K ; -1955 812 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1955 812 N M 21 -4 - 0 0 0 sco K ; -1976 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2053 1763 N M 65 0 - 0 0 0 sco K ; -2118 1763 N M 0 0 rr : 0 0 0 sco O ; -2118 1763 N M -21 -4 - 0 9 - 21 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2118 1763 N M -21 -4 - 0 0 0 sco K ; -2097 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2097 1759 N M 0 9 - 0 0 0 sco K ; -2097 1768 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2097 1768 N M 21 -5 - 0 0 0 sco K ; -2118 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2195 1272 N M 104 0 - 0 0 0 sco K ; -2299 1272 N M 0 0 rr : 0 0 0 sco O ; -2299 1272 N M -21 -4 - 0 9 - 21 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2299 1272 N M -21 -4 - 0 0 0 sco K ; -2278 1268 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2278 1268 N M 0 9 - 0 0 0 sco K ; -2278 1277 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2278 1277 N M 21 -5 - 0 0 0 sco K ; -2299 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2053 808 N M 65 0 - 0 0 0 sco K ; -2118 808 N M 0 0 rr : 0 0 0 sco O ; -2118 808 N M -21 -5 - 0 9 - 21 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2118 808 N M -21 -5 - 0 0 0 sco K ; -2097 803 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2097 803 N M 0 9 - 0 0 0 sco K ; -2097 812 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2097 812 N M 21 -4 - 0 0 0 sco K ; -2118 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 1531 N M 0 181 - 0 0 0 sco K ; -2169 1712 N M 0 0 rr : 0 0 0 sco O ; -2169 1712 N M 5 -21 - -9 0 - 4 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2169 1712 N M 5 -21 - 0 0 0 sco K ; -2174 1691 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2174 1691 N M -9 0 - 0 0 0 sco K ; -2165 1691 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2165 1691 N M 4 21 - 0 0 0 sco K ; -2169 1712 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2350 808 N M 0 413 - 0 0 0 sco K ; -2350 1221 N M 0 0 rr : 0 0 0 sco O ; -2350 1221 N M 5 -21 - -9 0 - 4 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2350 1221 N M 5 -21 - 0 0 0 sco K ; -2355 1200 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2355 1200 N M -9 0 - 0 0 0 sco K ; -2346 1200 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2346 1200 N M 4 21 - 0 0 0 sco K ; -2350 1221 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 446 N M 0 310 - 0 0 0 sco K ; -2169 756 N M 0 0 rr : 0 0 0 sco O ; -2169 756 N M 5 -21 - -9 0 - 4 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2169 756 N M 5 -21 - 0 0 0 sco K ; -2174 735 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2174 735 N M -9 0 - 0 0 0 sco K ; -2165 735 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2165 735 N M 4 21 - 0 0 0 sco K ; -2169 756 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1976 446 N M -117 0 - 0 0 0 sco K ; -1859 446 N M 0 0 rr : 0 0 0 sco O ; -1976 446 N M -21 -5 - 0 9 - 21 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1976 446 N M -21 -5 - 0 0 0 sco K ; -1955 441 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1955 441 N M 0 9 - 0 0 0 sco K ; -1955 450 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1955 450 N M 21 -4 - 0 0 0 sco K ; -1976 446 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1976 2022 N M -65 0 - 0 0 0 sco K ; -1911 2022 N M 0 0 rr : 0 0 0 sco O ; -1976 2022 N M -21 -5 - 0 9 - 21 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1976 2022 N M -21 -5 - 0 0 0 sco K ; -1955 2017 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1955 2017 N M 0 9 - 0 0 0 sco K ; -1955 2026 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1955 2026 N M 21 -4 - 0 0 0 sco K ; -1976 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1976 1531 N M -1434 0 - 0 0 0 sco K ; -542 1531 N M 0 0 rr : 0 0 0 sco O ; -1976 1531 N M -21 -5 - 0 9 - 21 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1976 1531 N M -21 -5 - 0 0 0 sco K ; -1955 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1955 1526 N M 0 9 - 0 0 0 sco K ; -1955 1535 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1955 1535 N M 21 -4 - 0 0 0 sco K ; -1976 1531 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1976 1763 N M -556 0 - 0 0 0 sco K ; -1420 1763 N M 0 0 rr : 0 0 0 sco O ; -1976 1763 N M -21 -4 - 0 9 - 21 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1976 1763 N M -21 -4 - 0 0 0 sco K ; -1955 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1955 1759 N M 0 9 - 0 0 0 sco K ; -1955 1768 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1955 1768 N M 21 -5 - 0 0 0 sco K ; -1976 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1420 1763 N M -51 0 - 0 0 0 sco K ; -1369 1763 N M 0 0 rr : 0 0 0 sco O ; -1420 1763 N M -20 -4 - 0 9 - 20 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1420 1763 N M -20 -4 - 0 0 0 sco K ; -1400 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1400 1759 N M 0 9 - 0 0 0 sco K ; -1400 1768 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1400 1768 N M 20 -5 - 0 0 0 sco K ; -1420 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1976 1118 N M -117 0 - 0 0 0 sco K ; -1859 1118 N M 0 0 rr : 0 0 0 sco O ; -1976 1118 N M -21 -5 - 0 9 - 21 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1976 1118 N M -21 -5 - 0 0 0 sco K ; -1955 1113 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1955 1113 N M 0 9 - 0 0 0 sco K ; -1955 1122 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1955 1122 N M 21 -4 - 0 0 0 sco K ; -1976 1118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 1815 N M 0 207 - 0 0 0 sco K ; -2169 2022 N M 0 0 rr : 0 0 0 sco O ; -2169 1815 N M -4 21 - 9 0 - -5 -21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2169 1815 N M -4 21 - 0 0 0 sco K ; -2165 1836 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2165 1836 N M 9 0 - 0 0 0 sco K ; -2174 1836 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2174 1836 N M -5 -21 - 0 0 0 sco K ; -2169 1815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2350 1324 N M 0 439 - 0 0 0 sco K ; -2350 1763 N M 0 0 rr : 0 0 0 sco O ; -2350 1324 N M -4 21 - 9 0 - -5 -21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2350 1324 N M -4 21 - 0 0 0 sco K ; -2346 1345 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2346 1345 N M 9 0 - 0 0 0 sco K ; -2355 1345 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2355 1345 N M -5 -21 - 0 0 0 sco K ; -2350 1324 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2169 859 N M 0 259 - 0 0 0 sco K ; -2169 1118 N M 0 0 rr : 0 0 0 sco O ; -2169 859 N M -4 21 - 9 0 - -5 -21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2169 859 N M -4 21 - 0 0 0 sco K ; -2165 880 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2165 880 N M 9 0 - 0 0 0 sco K ; -2174 880 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2174 880 N M -5 -21 - 0 0 0 sco K ; -2169 859 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1420 1763 N M 0 259 - 0 0 0 sco K ; -1420 2022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -542 1763 N M 0 -232 - 0 0 0 sco K ; -542 1531 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2221 808 N M 129 0 - 0 0 0 sco K ; -2350 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2221 1763 N M 129 0 - 0 0 0 sco K ; -2350 1763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -542 1169 N M -103 0 - 0 0 0 sco K ; -439 1169 N M 0 0 rr : 0 0 0 sco O ; -542 1169 N M -21 -4 - 0 9 - 21 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -542 1169 N M -21 -4 - 0 0 0 sco K ; -521 1165 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -521 1165 N M 0 9 - 0 0 0 sco K ; -521 1174 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -521 1174 N M 21 -5 - 0 0 0 sco K ; -542 1169 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -542 1169 N M 0 362 - 0 0 0 sco K ; -542 1531 N M 0 0 rr : 0 0 0 sco O ; -542 1531 N M 5 -21 - -10 0 - 5 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -542 1531 N M 5 -21 - 0 0 0 sco K ; -547 1510 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -547 1510 N M -10 0 - 0 0 0 sco K ; -537 1510 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -537 1510 N M 5 21 - 0 0 0 sco K ; -542 1531 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -594 808 N M 129 0 - 0 0 0 sco K ; -723 808 N M 0 0 rr : 0 0 0 sco O ; -723 808 N M -21 -5 - 0 9 - 21 -4 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -723 808 N M -21 -5 - 0 0 0 sco K ; -702 803 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -702 803 N M 0 9 - 0 0 0 sco K ; -702 812 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -702 812 N M 21 -4 - 0 0 0 sco K ; -723 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2789 1272 N M -103 0 - 0 0 0 sco K ; -2686 1272 N M 0 0 rr : 0 0 0 sco O ; -2789 1272 N M -20 -4 - 0 9 - 20 -5 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2789 1272 N M -20 -4 - 0 0 0 sco K ; -2769 1268 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2769 1268 N M 0 9 - 0 0 0 sco K ; -2769 1277 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2769 1277 N M 20 -5 - 0 0 0 sco K ; -2789 1272 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2789 213 N M -2247 0 - 0 0 0 sco K ; -542 213 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -542 213 N M 0 543 - 0 0 0 sco K ; -542 756 N M 0 0 rr : 0 0 0 sco O ; -542 756 N M 5 -21 - -10 0 - 5 21 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -542 756 N M 5 -21 - 0 0 0 sco K ; -547 735 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -547 735 N M -10 0 - 0 0 0 sco K ; -537 735 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -537 735 N M 5 21 - 0 0 0 sco K ; -542 756 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -129 472 N M 0 671 - 0 0 0 sco K ; -129 1143 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -129 420 N M 0 -310 - 0 0 0 sco K ; -129 110 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -129 110 N M 2970 0 - 0 0 0 sco K ; -3099 110 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3099 110 N M 0 78 - 0 0 0 sco K ; -3099 188 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3099 239 N M 0 1008 - 0 0 0 sco K ; -3099 1247 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3099 1298 N M 0 982 - 0 0 0 sco K ; -3099 2280 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3099 2280 N M -2970 0 - 0 0 0 sco K ; -129 2280 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -129 1918 N M 0 -723 - 0 0 0 sco K ; -129 1195 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -129 2280 N M 0 -310 - 0 0 0 sco K ; -129 1970 N M 0 0 rr : 0 0 0 sco O ; -LH -pagesave restore -%%PageTrailer - -%%Trailer -%%DocumentNeededFonts: -%%DocumentSuppliedFonts: -/Pscript_Win_Driver /ProcSet findresource dup /terminate get exec -Pscript_Win_Compat dup /terminate get exec -%%EOF diff --git a/docs/src/hal/images/pid-block-diag.png b/docs/src/hal/images/pid-block-diag.png deleted file mode 100644 index 173e5830fee..00000000000 Binary files a/docs/src/hal/images/pid-block-diag.png and /dev/null differ diff --git a/docs/src/hal/images/pid_block_diag.svg b/docs/src/hal/images/pid_block_diag.svg deleted file mode 100755 index e58bcb14746..00000000000 --- a/docs/src/hal/images/pid_block_diag.svg +++ /dev/null @@ -1,1396 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - C:\Documents and Settings\mbaillif.AD\Bureau\hal picture\hal_pid_block_diag.dxf - scale = 17.472335 - - - - - - - - - - - - - - ddt - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - ddt - - - - - + - - - - - - - - - - - - - - - - - + - + - - - - - - - - ddt - - - - - - - - - + - + - + - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - feedback - output - Igain - max-errorI - Pgain - Dgain - max-errorD - deadband - max-error - FF0 - FF1 - FF2 - max-output - max-cmdDD - max-cmdD - error - command - enable - pid.0 - bias - - diff --git a/docs/src/hal/images/pluto-pinout.dxf b/docs/src/hal/images/pluto-pinout.dxf deleted file mode 100644 index 43d609f8520..00000000000 --- a/docs/src/hal/images/pluto-pinout.dxf +++ /dev/null @@ -1,4636 +0,0 @@ -999 -dxflib 2.0.4.0 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMADEC - 70 -2 - 9 -$GRIDUNIT - 10 -5.0 - 20 -5.0 - 9 -$DIMASZ - 40 -2.5 - 9 -$DIMGAP - 40 -0.625 - 9 -$LUNITS - 70 -2 - 9 -$AUPREC - 70 -2 - 9 -$SPLINESEGS - 70 -8 - 9 -$INSUNITS - 70 -4 - 9 -$DIMEXO - 40 -0.625 - 9 -$DIMLUNIT - 70 -2 - 9 -$GRIDMODE - 70 -1 - 9 -$DIMTXT - 40 -2.5 - 9 -$LUPREC - 70 -4 - 9 -$DIMSTYLE - 2 -Standard - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$PLIMMAX - 10 -210.0 - 20 -297.0 - 9 -$DIMEXE - 40 -1.25 - 9 -$DIMAUNIT - 70 -0 - 9 -$AUNITS - 70 -0 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -5 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -inputs - 70 -0 - 62 -5 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -outputs - 70 -0 - 62 -3 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -gnd - 70 -0 - 62 -8 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -vcc - 70 -0 - 62 -8 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -2.5 - 42 -0.625 - 43 -3.75 - 44 -1.25 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -2.5 -141 -2.5 -143 -0.03937007874016 -147 -0.625 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -47 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -0.0 - 30 -0.0 - 11 -130.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -48 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -130.0 - 20 -0.0 - 30 -0.0 - 11 -130.0 - 21 -20.0 - 31 -0.0 - 0 -LINE - 5 -49 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -130.0 - 20 -20.0 - 30 -0.0 - 11 -0.0 - 21 -20.0 - 31 -0.0 - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -20.0 - 30 -0.0 - 11 -0.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -4B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -140.0 - 20 -0.0 - 30 -0.0 - 11 -160.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -4C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -0.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -140.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -4E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -140.0 - 20 -60.0 - 30 -0.0 - 11 -140.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -4F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -50 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -51 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -52 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -53 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -130.0 - 20 -0.0 - 30 -0.0 - 11 -140.0 - 21 -0.0 - 31 -0.0 - 0 -MTEXT - 5 -54 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -55 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -65.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QA0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -56 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -65.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QB0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -57 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -85.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QZ0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -58 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -95.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QB1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -59 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -95.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QA1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5A -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -105.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QA2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5B -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -105.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QZ1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5C -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -115.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QB2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5D -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -125.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QZ2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5E -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QB3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5F -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QA3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -60 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -QZ3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -61 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -DN0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -62 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -UP0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -63 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -25.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -UP1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -64 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -25.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -DN1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -65 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -35.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -DN2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -66 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -45.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -UP2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -67 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -45.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -DN3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -68 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -55.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -UP3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -69 -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6A -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -35.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6B -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -55.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6C -100 -AcDbEntity -100 -AcDbMText - 8 -vcc - 62 -256 -370 --1 - 6 -ByLayer - 10 -75.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -VCC - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6D -100 -AcDbEntity -100 -AcDbMText - 8 -vcc - 62 -256 -370 --1 - 6 -ByLayer - 10 -75.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -VCC - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6E -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -85.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6F -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -115.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -70 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -1 -370 --1 - 6 -ByLayer - 10 -124.5 - 20 -24.4999999999998934 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -LED - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -71 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -130.0 - 20 -20.0 - 30 -0.0 - 11 -160.0 - 21 -20.0 - 31 -0.0 - 0 -LINE - 5 -72 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -120.0 - 20 -70.0 - 30 -0.0 - 11 -120.0 - 21 -30.0 - 31 -0.0 - 0 -LINE - 5 -73 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -20.0 - 20 -35.0 - 30 -0.0 - 11 -0.0 - 21 -35.0 - 31 -0.0 - 0 -LINE - 5 -74 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -85.0 - 30 -0.0 - 11 -20.0 - 21 -85.0 - 31 -0.0 - 0 -LINE - 5 -75 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -20.0 - 20 -85.0 - 30 -0.0 - 11 -20.0 - 21 -35.0 - 31 -0.0 - 0 -LINE - 5 -76 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -85.0 - 30 -0.0 - 11 -0.0 - 21 -65.0 - 31 -0.0 - 0 -LINE - 5 -77 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -55.0 - 30 -0.0 - 11 -0.0 - 21 -35.0 - 31 -0.0 - 0 -MTEXT - 5 -78 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -80.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -79 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -70.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7A -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -60.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7B -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -60.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN4 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7C -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -50.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN5 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7D -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -50.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN6 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7E -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -40.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN7 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7F -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -80.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -80 -100 -AcDbEntity -100 -AcDbMText - 8 -vcc - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -70.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -VCC - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -81 -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -40.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -82 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -30.0 - 20 -70.0 - 30 -0.0 - 11 -120.0 - 21 -70.0 - 31 -0.0 - 0 -LINE - 5 -83 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -30.0 - 20 -30.0 - 30 -0.0 - 11 -30.0 - 21 -70.0 - 31 -0.0 - 0 -LINE - 5 -84 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -120.0 - 20 -30.0 - 30 -0.0 - 11 -30.0 - 21 -30.0 - 31 -0.0 - 0 -MTEXT - 5 -85 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -55.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT8 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -86 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -55.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT9 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -87 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -45.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT6 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -88 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -45.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT7 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -89 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -35.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT4 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8A -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -35.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT5 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8B -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -25.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8C -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -25.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8D -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -15.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8E -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -125.0 - 20 -15.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8F -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -75.0 - 20 -50.0 - 30 -0.0 - 40 -5.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -ACEX\~FPGA - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -90 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -80.0 - 20 -85.0 - 30 -0.0 - 40 -5.0 - 41 -100.0 - 71 -2 - 72 -2 - 1 -^^\~Parallel\~Port\~Connector\~^^ - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -91 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -75.0 - 30 -0.0 - 40 -5.0 - 41 -100.0 - 71 -6 - 72 -2 - 1 -Power\PJack\~> - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -92 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -92 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -94 - 3 -HIDETEXT -350 -93 - 0 -DICTIONARYVAR - 5 -93 -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -94 -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/hal/images/pluto-pinout.eps b/docs/src/hal/images/pluto-pinout.eps deleted file mode 100644 index 551c5a2e7d7..00000000000 --- a/docs/src/hal/images/pluto-pinout.eps +++ /dev/null @@ -1,9736 +0,0 @@ -%!PS-Adobe-2.0 EPSF-1.2 -%%Title: -%%Creator: Qt 3.3.4 -%%CreationDate: Mon Jan 29 15:22:04 2007 -%%For:jepler jepler -%%Pages: 1 -%%DocumentFonts: -%%BoundingBox: 0 0 454 242 -%%BeginPreview: 454 242 8 2904 -% 50444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 444444444444444444444444444444445d000000000000000000000000000000000000003f000000 -% 0000000000000000000000113f0000000000000000000000000000000000000020504444445d0000 -% 00000000000000000000000000000000000000000000000000000000000000000000000011110000 -% 000000220000000000000000000000000000000022000000000000000000000000000000003f4444 -% 44443f00000000000000000000000000000000000000000000000000000000002200000000000000 -% 00000000000000000000000000305044441100000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000011110000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 003f0000000000000000000000000000202000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 76444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444a800000000000000000000000000000000000088bb330000 -% 000000000000000000000088c9110000000000000000000000000000000000005076444444768899 -% 11000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000088000000000000000000000000000000008800000000000000000000000000000000984444 -% 444489aa770000000000000000000000000000000000000000000000000000008800000000000000 -% 000000000000000000000055aa905044441100000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88bb3300000000000000000000000000c0c411000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000668811bb2200 -% 00000000000000000000886611bb1100000000000000000000000000000000004444000000000033 -% 88000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000088000000000000000000000000000000008800000000000000000000000000000000880000 -% 00000000775500000000000000000000000000000000000000000000000000008800000000000000 -% 00000000000000000000229900000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000066 -% 8811bb220000000000000000000000993333aa000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000088000000000000000000000000000000004499000011aa11 -% 00000000000000000066770000339900000000000000000000000000000000004444000000000000 -% 88000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000088000000000000000000000000000000008800000000000000000000000000000000880000 -% 00000000009900000000000000000000000000000000000000000000000000008800000000000000 -% 00000000000000000000773300000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000004499 -% 000011aa110000000000000000007766000044990000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000008800000000000000000000000000000033aa0000000033aa -% 00000000000000005599000000005599000000000000000000000000000000004444000000000000 -% a8000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000088000000000000000000000000000000008800000000000000000000000000000000880000 -% 0000000000a800000000000000000000000000000000000000000000000000008800000000000000 -% 00000000000000000000a80000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000033aa00 -% 00000033aa0000000000000000668800000000667700000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000088000000000000000000000000000011bb11000000000044 -% 99000000000000339900000000000066770000000000000000000000000000004444000000000000 -% a80000000000888888a34400000000008f8888a84400000000002288889898110000000044440000 -% 00000088000000000000003388772200000000008800000000000000000000000000000000880000 -% 0000000000a8000000000011668855000000000000a88888a322000000004488c888886600000000 -% 000000000000000000008800000000000000000000000033887722000000000076888888a8660000 -% 00000076888888a87700000000000000228877220000000000001166a888660000000088a8a88888 -% 22000000000033887722000000000076888898660000000000000000000000000000000011bb1100 -% 00000000449900000000000033880000000000008866000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000011bb1100000000000000 -% 66880000000011bb1100000000000000886600000000000000000000000000004444000000000000 -% 88000000000000000000778800000000880000008866000000000000000033bb2200000044440000 -% 0000008800000000000099881133aa33000000008800000000000000000000000000000000880000 -% 0000000000990000000033bb55116699000000000088000022bb1100000000008800000000000000 -% 0000000000000000000088000000000000000000000077882222aa6600000000880000000044bb00 -% 000000880000000055bb00000000006699222299660000000000bb44000000000000000044440000 -% 000000000088882222aa6600000000880000005588000000000000000000000000000011bb110000 -% 000000000066880000000022bb110000000000000099330000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000066330000000000000000 -% 00660000000055110000000000000000008800000000000000000000000000004444000000000022 -% 99000000000000000000009911000000880000000066000000000000000000228800000044440000 -% 000000880000000000447700000000aa000000008800000000000000000000000000000000880000 -% 00000000776600000000aa1100000044880000000088000000443300000000008800000000000000 -% 000000000000000000008800000000000000000000338800000000aa220000008800000000006655 -% 00000088000000000066440000002299000000009933000000555500000000000000000044440000 -% 00000000338800000000aa1100000088000000006600000000000000000000000000006633000000 -% 00000000000066000000005511000000000000000000770000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000050764444445d88aa -% 1100000000000000000000695d00000088000000000000000000000000000000a800000044440000 -% 00000088000000000098000000000060500000008800000000000000000000000000000000984444 -% 44446caa880000000000980000000000a70000000088000000000000000000008800000000000000 -% 00000000000000000000880000000000000000000098220000000050500000008800000000005d5d -% 00000088000000000022a800000089330000000050500000005d5d00000000000000000044440000 -% 00000000982200000000605000000088000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000050764444445d2200 -% 00000000000000000000004444000000880000000000000000000000000000008800000044440000 -% 00000088000000000098000000000050500000008800000000000000000000000000000000984444 -% 44445d11000000000000980000000000980000000088000000000000000000008800000000000000 -% 00000000000000000000880000000000000000000098000000000050500000008800000000004444 -% 00000088000000000000880000009800000000005050000000444400000000000000000044440000 -% 00000000980000000000505000000088000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000000f0f001d1d0000001e0000000038000000000000000000000000112d2222110000 -% 1f0000000808001f22222d0800000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 00000000000055b6988888a844000000880000000000000000001199ae888888a800000044440000 -% 000000880000000000a88888888888a04e0000008800000000000000000000000000000000880000 -% 00000000000000000000880000000000880000000088000000000000000000008800000000000000 -% 00000000000000000000880000000000000000000088000000000044440000008800000000004444 -% 0000008800000000000088000000a88888888888a04e000000444400000000000000000044440000 -% 00000000880000000000444400000088000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000020 -% 504444445d3300000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c00529500000079000000889c0000000000000000000000194d342222110000 -% 700000002222004c22222d4d22000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 0000000000558800000000444400000088000000000000000000bb22000000008800000044440000 -% 00000088000000000088000000000000000000008800000000000000000000000000000000880000 -% 00000000000000000000980000000000980000000088000000000000000000008800000000000000 -% 00000000000000000000980000000000000000000098000000000050500000008800000000004444 -% 00000088000000000000880000008800000000000000000000444400000000000000000044440000 -% 00000000980000000000505000000088000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000050 -% 764444445d88aa110000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c003ca01e0000790000795b7900000000000000000000004c08000000000000 -% 5c330000222200440000000053000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 00000000008800000000004444000000880000000000000000336600000000008800000044440000 -% 00000088000000000098000000000000000000008800000000000000000000000000000000880000 -% 00000000000000000000980000000000980000000088000000000000000000008800000000000000 -% 00000000000000000000981100000000000000000098110000000050500000008800000000004444 -% 00000088000000000000880000009800000000000000000000505000000000000000000044440000 -% 00000000980000000000605000000088000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000033990000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c003c527900007900001e007900000000000000000000004c00000000000000 -% 4455080022220044000000004c000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 0000000000aa0000000000444400000088000000000000000033770000000000880000005d5d0000 -% 000000b000000000009811000000000000000000a800000000000000000000000000000000880000 -% 00000000000000000000aa1100000044770000000088000000000000000000008800000000000000 -% 00000000000000000000557700000000000000000033770000000099220000008800000000004444 -% 00000088000000000000880000008944000000000000000000506000000000000000000044440000 -% 00000000447700000000991100000088000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000880000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c003c3c793c00790000000079000000000000000000000044000011443b0000 -% 44224400222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 000000000033aa11000000444400000088000000000000000000aa44000000008800000022aa1100 -% 000000aa220000000033bb2200000000000000007755000000000000000000000000000000880000 -% 0000000000000000000033bb220055aa110000000088000000000000000000008800000000000000 -% 00000000000000000000009988110000000000000000998811229966000000008800000000004444 -% 000000880000000000008800000011aa330000000000000000119933000000000000000044440000 -% 00000000009988002299660000000088000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000980000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c003c3c0f970079000000007900000000000000000000004400000000440000 -% 44005508222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000002222000000000000 -% 00000000000022989088889822000000440000000000000000000077a38888887600000000448800 -% 00000022881100000000229898888888220000000077440000000000000000000000000000440000 -% 00000000000000000000001177886600000000000044000000000000000000004400000000000000 -% 00000000000000000000000044989888882200000000004488882200000000004400000000002222 -% 0000004400000000000044000000001177a888888822000000001177a08866000000000022220000 -% 00000000000044888822000000000044000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000a80000000000006688882200000000004400000000000000003322000000000044 -% 8888220000000000768888988911 -% 440000000000003c3c003c3c006a4b79000000007900000000000000000000004400000000440000 -% 4400114d222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000880000000011bb660022bb33000000008822000000000000008822000000008888 -% 0011996600000000880000004488 -% 440000000000003c3c003c3c0000a779000000007900000000000000000000005200000000440000 -% 4400004d2e2200440000000057000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 440000000000339900000000884400000011aa000000005555000000000000009900000000448800 -% 000000aa11000000880000000055 -% 440000000000003c3c003c3c00005ba4000000007900000000000000000000004422000000440000 -% 440000085a2200440000001944000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000050 -% 764444446988aa1100000000980000000000980000000011880000003f0000009900000000981100 -% 0000007050000000880000000000 -% 440000000000002d2d002d2d0000009b000000005b0000000000000000000000084d574444470000 -% 33000000492000474444574d08000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000050 -% 764444445d1100000000000098000000000098000000000099000055d70000446600000000980000 -% 0000005050000000880000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000000000000088000000000088000000000088110088804400882200000000a88888 -% 888888a04e000000880000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000000000000098000000000098000000000055551199119900990000000000880000 -% 0000000000000000880000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000000000000098000000000098000000000011887744009911990000000000980000 -% 0000000000000000880000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000000000000077440000001199000000000000aaaa0000558f770000000000882200 -% 0000000000000000880000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000000000000011aa661144bb33000000000000ae80000000d833000000000022bb44 -% 0000000000000000880000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000022 -% 220000000000000000000000000055886611000000000000005c2000000069000000000000001189 -% 9888888822000000440000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000440000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000880000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000880000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000880000000000000000000000000000 -% 0000000000000055000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000880000000000000000000000000000 -% 0000000000000099660000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 880000000044888898a77700000000003399a3888800000000880000000044990000000000000000 -% 0000000000000000669900000000 -% 4400000000003c3c005d8a0000007900001e97978800000000000000000000000844000000004d00 -% 0008555744220000335b4c4411000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000885500000000aa1100000000000000880000118888110000000000000000 -% 0000000000000000006699110000 -% 4400000000003c3c003cac0f0000790000970f003c8a000000000000000000000055000000004d00 -% 00441900000000005500000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 8800000000000000000000a80000005d7a000000000000000088006cbb3300000000000000000000 -% 0000000000000000000033bb1100 -% 4400000000003c3c003c68790000790000000000457f0000000000000000000000441100002a3300 -% 00580000000000005400000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 880000000000000000000088000000444400000000000000009899c0440000000000000000000000 -% 000000000000000000000022aa33 -% 4400000000003c3c003c3c791e00790000000000970f0000000000000000000000193b00004d0800 -% 00440000000000004400000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000008800000044440000000000000000b82211bb0000000000000000000000 -% 00000000000000000000000050b8 -% 4400000000003c3c003c3c1e880079000000005b5b000000000000000000000000005500004d0000 -% 00440000000000004400000000000000880000000000000000000000000000000000000000000000 -% 000000003f9888888888884400008888888888884400006688888888886600006688888888888800 -% 00448888888888882200228888888888882200008888888888884400008888888888886600006688 -% 88888888880000448888888888880000228888888888882200228888888888882200008888888888 -% 88440000888888888888660000668888888888880000448888888888880000228888888888882200 -% 22888888888888440000888888888888660000668888888888660000448888888888880000448888 -% 88888888220022888888888888440000888888888888660000668888888888660000448888888888 -% 880000448888888888880000228888888888883f2200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 880000000066aaa3888888a800000044440000000000000000880000448800000000000000000000 -% 0000000000000000000000669900 -% 4400000000003c3c003c3c00792d790000000f97000000000000000000000000000044112a330000 -% 00440000000000004400000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% a800000011aa00000000008800000044440000000000000000880000009922000000000000000000 -% 0000000000000000000088770000 -% 4400000000003c3c003c3c000f9779000000793c0000000000000000000000000000193b4d080000 -% 004c0000000000004c00000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000022 -% 8800000044770000000000880000005c6900000000000000008800000022aa000000000000000000 -% 0000000000000000009966000000 -% 4400000000003c3c003c3c0000799500001e88000000000000000000000000000000005855000000 -% 004c0000000000005300000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000099 -% 2200000022aa00000000008800000000aa0000000000000000880000000077550000000000000000 -% 0000000000000011bb3300000000 -% 4400000000003c3c003c3c000000c00000ad8779793c000000000000000000000000005c36000000 -% 00195e52442200003b4c4c4411000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000004488a89944 -% 00000000006688a3888888a80000000066aaa3888800000000880000000000aa0000000000000000 -% 0000000000000099330000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000222200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000111100000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000001e1e0045450000003c00005b79953c000000000000000000000000001e1e00741e00 -% 00003c000000004b0000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000003c3c0047a0000000790000000000793c0000000000000000000000003c3c00878800 -% 0000790000004b5b0000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000111100000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000003c3c003c7f5b00007900000000000f790000000000000000000000003c3c0079792d -% 000079000000790f0000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000003c3c003c3ca700007900000000006a4b0000000000000000000000003c3c00790f97 -% 00007900000097000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000003c3c003c3c3c7900790000005bc4b2000000000000000000000000003c3c00790079 -% 3c007900001e79000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000003f444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 444444444444444444444444449b -% 0000000000003c3c003c3c00970f7900000000006a5b0000000000000000000000003c3c00790000 -% a7007900006a2d005b00000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000098444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444ca -% 0000000000003c3c003c3c002d7979000000000000910000000000000000000000003c3c00790000 -% 5b5b7900008800007900000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 0000000000003c3c003c3c0000888700000000001e950000000000000000000000003c3c00790000 -% 0088800000ab7979b2791e0000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 0000000000003c3c003c3c00001eb9000000000f883c0000000000000000000000003c3c00790000 -% 003cb200000000007900000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 0000000000001e1e001e1e0000006800005b79951e000000000000000000000000001e1e003c0000 -% 00007300000000003c00000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000222200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000006 -% 3e4d3706002900000029000d37374a37370000143e37000000000000374a4e140000290000141400 -% 29374a37371b0006373714000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000008800003e -% 1400143e00370000003700000000370000000049002231000000001b3000004500003700001b1b00 -% 000037000000003e140053000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000044 -% 000000440037000000370000000037000000004d000d4400000000252500004400003700001b1b00 -% 0000370000000049000044000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000037 -% 000000370037000000370000000037000000003154590d000000001b1b00003700003700001b1b00 -% 0000370000000043060042000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000333300000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000037 -% 000000370037000000370000000037000000004c062937000000001b1b00003700003700001b1b00 -% 0000370000000014374453000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000008800003d -% 0000003d0044000000440000000037000000004800004b00000000202000003d0000440000252500 -% 0000370000000000000d3e000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000049 -% 0600064300293000003e0000000037000000004300064300000000202600003d0000450000371400 -% 000037000000000000450d000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000333300000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000014 -% 454d45140000373e451b000000003700000000304c3e1400000000063e4a44290000294545370000 -% 00003700000000004c1400000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000a87a00000000000000000077aaa388888800000000b8888888888888000000009922000000 -% 00000000aa000000000000000000000000000000c888888888886600000000c88888889898993300 -% 0000000033aa98988888888800000000000000006cb0000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000aa9900000000000000006666000000000000000000880000000000000000000022aa000000 -% 0000007755000000000000000000000000000000880000000000000000000088000000000011aa00 -% 00000011bb11000000000000000000000000000099b0000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000000f0f001d1d0000001e0000453c3c3c1e000000000000000000000000001e00003800 -% 00000f0f000000001e00000000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00003377991100000000000000aa0000000000000000000088000000000000000000000077770000 -% 000022aa000000000000000000000000000000008800000000000000000000880000000000005555 -% 00000055550000000000000000000000000000009977330000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000333300000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c0052950000007900008e3c3c3c1e00000000000000000000000000790000c700 -% 00003c3c000000796a00000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00008822556600000000000000a80000000000000000000088000000000000000000000000aa2200 -% 0000aa220000000000000000000000000000000088000000000000000000008800000000000011a8 -% 000000a8000000000000000000000000000000556622880000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003ca01e00007900007900000000000000000000000000000000007900009c6a -% 00003c3c00005b6a0000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000bb0000990000000000000088000000000000000000008800000000000000000000000022aa00 -% 00777700000000000000000000000000000000008800000000000000000000880000000000000098 -% 00000088000000000000000000000000000000991100aa0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c528800007900007900000000000000000000000000000000007900007997 -% 0f003c3c000f88000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00338800009911000000000000880000000000000000000088000000000000000000000000007766 -% 22aa0000000000000000000000000000000000008800000000000000000000880000000000004477 -% 00000088000000000000000000000000000000990000775500000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000222200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c793c00790000a479951e0000000000000000000000000000790000793c -% 79003c3c00609c953c00000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 007733000055660000000000008800000000000000000000b88888888822000000000000000000aa -% b022000000000000000000000000000000000000c888888888886600000000880000000000009911 -% 0000008800000000008888b800000000000055660000119900000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c0f970079000000001e972d000000000000000000000000007900007900 -% 791e3c3c00870f006a79000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00aa000000009900000000000088000000000000000000008800000000000000000000000000007a -% c9000000000000000000000000000000000000008800000000000000000000a84444445060996600 -% 00000088000000000000008800000000000099110000009900000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c006a4b7900000000000f95000000000000000000000000007900007900 -% 1e883c3c008700000095000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 228800000000991100000000008800000000000000000000880000000000000000000000000011aa -% 77550000000000000000000000000000000000008800000000000000000000a84444445050110000 -% 00000088000000000000008800000000000099000000006655000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c0000a77900000000000095000000000000000000000000007900007900 -% 00795d3c009500000095000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 77330000000055660000000000880000000000000000000088000000000000000000000000009922 -% 00aa1100000000000000000000000000000000008800000000000000000000880000000000000000 -% 00000088000000000000008800000000005566000000001199000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c00005ba400000000005b4b000000000000000000000000007900007900 -% 000fab3c004b6a000f79000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% cc888888888888cc0000000000880000000000000000000088000000000000000000000000557700 -% 00229900000000000000000000000000000000008800000000000000000000880000000000000000 -% 0000008800000000000000880000000000b4908888888888c2000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000002d2d002d2d000000a400005b79957900000000000000000000000000005b00005b00 -% 0000824500007979881e000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000022 -% 88000000000000992200000000a80000000000000000000088000000000000000000000011aa0000 -% 00007755000000000000000000000000000000008800000000000000000000880000000000000000 -% 000000a8220000000000008800000000009900000000000066550000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000077 -% 33000000000000337700000000991100000000000000000088000000000000000000000099220000 -% 000000aa110000000000000000000000000000008800000000000000000000880000000000000000 -% 00000033880000000000008800000000556600000000000011990000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000000000aa -% 0000000000000000aa0000000022bb22000000000000000088000000000000000000005577000000 -% 00000022990000000000000000000000000000008800000000000000000000880000000000000000 -% 00000000887700000000008800000000991100000000000000990000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000066 -% 00000000000000005500000000002288a3888888000000008f888888888888000000005500000000 -% 00000000550000000000000000000000000000004400000000000000000000440000000000000000 -% 0000000000669898888888a800000000550000000000000000442200000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000222200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 14291b00000d0000000d00061b1b251b1b00000000140000000000000d24250600000d0000060600 -% 141b251b1b0d00141b1b25000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000037 -% 3029303700370000003700061b1b441b1b000000372200000000000d3e242b4c00003700001b1b00 -% 141b441b1b0d00141b1b49000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000042 -% 000000460037000000370000000037000000003029000000000000242400004200003700001b1b00 -% 000037000000000000063e000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000037 -% 000000370037000000370000000037000000004e250d00000000001b1b00003700003700001b1b00 -% 000037000000000000343a000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000111100000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000037 -% 000000370037000000370000000037000000004925451b000000001b1b00003700003700001b1b00 -% 0000370000000000004420000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000037 -% 00000037003d0000003d0000000037000000003d000044000000001b1b00003700003d0000202000 -% 0000370000000000003e00000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000111100000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000008800004a -% 0000004600371b0000430000000037000000004600004600000000242400004200003d0000262600 -% 00003700000000000d3700000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000030 -% 3729372900063e22303700000000370000000045223e22000000000d4c24314c00003e30224c0000 -% 0000370000000000292200000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 142914000000061b1400000000000d00000000001b140000000000000d242500000000141b060000 -% 00000d00000000000d0000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000222200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000002d2d00516a0000005b00005b7979877f00000000000000000000084d524444220000 -% 5c000000191900474444524d08000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003cac0f00007900000000005b3c000000000000000000004411000000000000 -% 64190000222200440000001944000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c687900007900000000008800000000000000000000005400000000000000 -% 48550000222200440000000058000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c970f0079000000003ca01e000000000000000000004400000822110000 -% 44442200222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c1e88007900000000688a1e0000000000000000000044000008224c0000 -% 44005500222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c00881e7900000000791e00000000000000000000004400000000440000 -% 44003333222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c001e887900000000970000000000000000000000004c00000000440000 -% 4400005528220044000000004c000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c000079950000000f790000000000000000000000004c08000000440000 -% 44000022542200440000000853000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c00000fc00000005b4b00000000000000000000000019553b22224c0000 -% 440000006028004c2222345e19000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000222200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000000f0f000f0f0000002b0000000f0000000000000000000000000000001f22221f0000 -% 110000001008001f22222d0000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000333300000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000008800003e -% 44464506003700000037001b374444372900000637000000000000064c42493700003700001b1b00 -% 29375137371b004a373737000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000008800193d -% 00002b250037000000370000001b1b000000002229000000000000252b00004400003700001b1b00 -% 0000370000000037000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000333300000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088001b1b -% 00001b1b0037000000370000001b1b000000003e060000000000001b1b00003700003700001b1b00 -% 0000370000000037000000000088 -% a8888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888c80000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088001b1b -% 00001b1b0037000000370000001b1b0000000045000000000000001b1b00003700003700001b1b00 -% 0000370000000042374422000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088001b1b -% 00001b1b0037000000370000001b1b0000001437003700000000001b1b00003700003700001b1b00 -% 0000370000000000000049000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000333300000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000008800252a -% 000025250044000000440000001b1b0000003f413751370000000025250000440000440000252b00 -% 0000370000000000000048000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000645 -% 060037140037220029290000001b1b000000000000370000000000143000004c0000450d063e0d00 -% 000037000000000000064c000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000014 -% 444622000000303729000000000d0d0000000000001b000000000000294244140000063737140000 -% 00001b0000000029374414000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000222200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000444400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000445044444444444422000044444444444433000033444444444433000022444444444444 -% 00002244444444444400001144444444444411000044444444444422000044444444444433000033 -% 44444444443300002244444444444400002244444444444411001144444444444422000044444444 -% 44442200003344444444443300003344444444444400002244444444444411001144444444444411 -% 00004444444444442200004444444444443300003344444444444400002244444444444400001144 -% 44444444441100004444444444442200004444444444442200003344444444443300003344444444 -% 44440000224444444444441100114444444444765000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000112044444444444422000044444444444433000033444444444433000022444444444444 -% 00002244444444444400001144444444444411000044444444444422000044444444444433000033 -% 44444444443300002244444444444400002244444444444411001144444444444422000044444444 -% 44442200003344444444443300003344444444444400002244444444444411001144444444444411 -% 00004444444444442200004444444444443300003344444444444400002244444444444400001144 -% 44444444441100004444444444442200004444444444442200003344444444443300003344444444 -% 44440000224444444444441100114444444444502000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000006 -% 37493e06002900000029000d37374a37370000143e37060000000000304a44140000290000141400 -% 29374a37371b0029374914000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f0000000000815f5f5f2f002f755f6a -% 6b470000000000000000000000000000000000000000000000000000000000000000000088000037 -% 1400143e00370000003700000000370000000045061447000000001b3000064500003700001b1b00 -% 000037000000000000063e000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f00000000002f2f0000 -% 00770000000000000000000000000000000000000000000000000000000000000000000088000041 -% 000000440037000000370000000037000000000000144a00000000252500004400003700001b1b00 -% 0000370000000000000045000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f00000000002f2f0000 -% 00750000000000000000000000000000000000000000000000000000000000000000000088000037 -% 0000003700370000003700000000370000000000004506000000001b1b00003700003700001b1b00 -% 0000370000000000375937000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f0000000000702f2f1700002f2f0000 -% 005f0000000000000000000000000000000000000000000000000000000000000000000088000037 -% 0000003700370000003700000000370000000000223000000000001b1b00003700003700001b1b00 -% 0000370000000000000d4c000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f0000000000702f2f1700002f2f0000 -% 005f000000000000000000000000000000000000000000000000000000000000000000008800003a -% 0000003700440000004400000000370000000006450000000000001b1b0000370000440000252500 -% 0000370000000000000044000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f00000000002f2f0000 -% 005f000000000000000000000000000000000000000000000000000000000000000000008800003d -% 06000043002930000045000000003700000000371b000000000000202600003d0000450000301b00 -% 0000370000000000000049000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f00000000002f2f0000 -% 006a0000000000000000000000000000000000000000000000000000000000000000000088000014 -% 4c4845140000373e451b000000003700000000543737290000000006454649300000223e3e370000 -% 0000370000000029374e29000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f00000000002f2f0000 -% 00750000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000040755f5f5f0000815f5f5f2f002f755f6a -% 6b470000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% a8888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 8888888888888888d5888888888866000044888888888888000044888888888888000022c8888888 -% 88882200008888888888884400008888888888886600006688888888886600004488888888888800 -% 00228888888888882200228888b8 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c005d95000000790000009c798800000000000000000000001b1b000000370000 -% 44373742450d00000d53491400000000000000000000370000001b1b00254437444c1b000000294a -% 000000000000000000334d54444411005c330000004400005c444454440000000000000000254437 -% 3d492900005114000000370000373743370000000000000000003700000000370025443744452900 -% 00293742450600000000000000004b88959479000000957979957900000000b6a15d000000000000 -% 0000004d000000004d0000115e5244330000335b4c441100000000000000008887a0973c0000005b -% 797979a47f000045a1b71e0000000000000000005b8895a079000000957987878800000000889c00 -% 000000000000005ba1939479000000000000bf00000000005b978879000000000000000088879597 -% 5b000000a47987975b0000007988885b000000000000000d24250000000d0000060600141b251b1b -% 0600000d140000008800000000000000000000000000000000000000000000000000000088000000 -% 00798793a15b000000a47995975b0000007987946a00000000000000000d29200000060600000d00 -% 001b1b251b1b0600001306000088 -% 4400000000003c3c003cac0f00007900005b5b00970f000000000000000000001b1b000000370000 -% 370000000d3700003e0d063e00000000000000000000370000001b1b001b1b0000003e0000293e37 -% 000000000000000000550000000000004455080000440000440000003322000000000000001b1b00 -% 00003e00003a4500000037000000000037140000000000000000370000000037001b1b0000003e00 -% 0000000014370000000000000000880000006a3c0000790000006a2d00005b4b0097000000000000 -% 0000005e000000004d0000441100000000005500000000000000000000002d790000009700000000 -% 000000a7000000790f0f8800000000000000000097000000792d000079000000793c0000795b7900 -% 0000000000000097000000791e000000002d9b4b0000000079000087380000000000002d79000000 -% 880000007900000097000000790000950f00000000000d45242b4c00003700001b1b00141b441b1b -% 06000d4a422200008800000000000000000000000000000000000000000000000000000088000000 -% 2d790000009700000079000000a70000000000007900000000000000223e292d37001b1b00003700 -% 001b1b441b1b060014531b000088 -% 4400000000003c3c003c52880000790000910f005145000000000000000000001b1b000000370000 -% 37000000004200004a00004700000000000000000000370000001b1b001b1b000000420000140037 -% 0000000000000000004c0000000000004422440000440000440000002828000000000000001b1b00 -% 00003d000037371b0000370000000000291b0000000000000000370000000037001b1b0000004600 -% 00000000063700000000000000008700000047470000790000004b3c00009b00006a450000000000 -% 0000003b1900002a3300004c0000000000004c000000000000000000000047470000008700000000 -% 00006a4b0000009b0000a40000000000000000008700000047470000790000005b3c00001e007900 -% 0000000000000087000000474700000000792b8800000000000000a41e0000000000004747000000 -% 870000007900000088000000000000a40f0000000000420d00004200003700001b1b000000370000 -% 0000370d004300008800000000000000000000000000000000000000000000000000000088000000 -% 474700000087000000790000007900000000000079000000000000004600000046001b1b00003700 -% 00000037000000003e201b000088 -% 4400000000003c3c003c3c881e007900007900001e6a000000000000000000001b1b000000370000 -% 370000000d3d00003700002914000000000000000000370000001b1b001b1b000000490000000037 -% 000000000000000000440000112810004400550800440000440000002222000000000000001b1b00 -% 00003700003700450000370000001b374c000000000000000000370000000037001b1b0000004900 -% 000014314e140000000000000000790000003c3c0000873c3c83a70000007900003c5b0000000000 -% 000000114400004d080000440000000000004400000000000000000000003c3c0000007900000000 -% 000f970000003c5b000079000000000000000000790000003c3c0000873c4783a700000000007900 -% 00000000000000790000003c3c000000009700880000000000002d79000000000000003c3c000000 -% 790000008e3c51897900000000003c79000000000000370000003700003700001b1b000000370000 -% 00004300004300008800000000000000000000000000000000000000000000000000000088000000 -% 3c3c000000790000008e3c5c89880000000f518679000000000000003700000037001b1b00003700 -% 0000003700000000001b1b000088 -% 4400000000003c3c003c3c0f88007900009100000091000000000000000000001b1b000000370000 -% 3d1b1b2a450d00004200002424000000000000000000370000001b1b00202f1b253e290000000037 -% 000000000000000000440000113b28004400114400440000440000002222000000000000001b1b00 -% 00003700003700292900370000001b3d4c00000000000000000037000000003700202f1b25373700 -% 0000143150140000000000000000790000003c3c0000873c3c8cab2d00009b000000910000000000 -% 000000005500004d000000440000000000004400000000000000000000003c3c0000007900000000 -% 00793c0000005151000091000000000000000000790000003c3c0000873c4782a72d000000007900 -% 00000000000000790000003c3c0000002d6a005b4b0000000000970f000000000000003c3c000000 -% 790000008e3c5190a70f00000000970f000000000000370000003700003700001b1b000000370000 -% 00004200004200008800000000000000000000000000000000000000000000000000000088000000 -% 3c3c000000790000008e3c5c7da70f00000f518579000000000000003700000037001b1b00003700 -% 0000003700000000001b1b000088 -% 4400000000003c3c003c3c00793c7900007900000f79000000000000000000001b1b000000370000 -% 3d1b1b240d0000003700002914000000000000000000370000001b1b00202f1b2514000000000037 -% 000000000000000000440000002222004400004d11440000440000002222000000000000001b1b00 -% 000037000037000045063700000000002d19000000000000000037000000003700202f1b25140000 -% 00000000063d0000000000000000790000003c3c0000790000000f8800007900003c5b0000000000 -% 000000003b192a33000000440000000000004400000000000000000000003c3c0000007900000000 -% 1e88000000003c5b000079000000000000000000790000003c3c0000790000000f79000000007900 -% 00000000000000790000003c3c000000791e000f88000000004b6a00000000000000003c3c000000 -% 79000000790000003c6a0000006a4b00000000000000370000003700003d00002020000000370000 -% 00004100003d00008800000000000000000000000000000000000000000000000000000088000000 -% 3c3c00000079000000790000003c5b00000000008700000000000000370000003700202000003d00 -% 0000003700000000001b1b000088 -% 4400000000003c3c003c3c000f977900009c0f005f5d00000000000000000000252b000000440000 -% 37000000000000004700004400000000000000000000440000002525001b1b000000000000000037 -% 00000000000000000054000000222200440000114d440000440000002e2e000000000000001b1b00 -% 00004400003700001b3737000000000029290000000000000000440000000d44001b1b0000000000 -% 00000000004800000000000000009c000f4b525200007900000000a70000a000006d450000000000 -% 0000000011444d08000000580000000000005400000000000000000000005252003c1e9500000000 -% 881e0000000000950000a00000000000000000009500004b525200007900000000a7000000007900 -% 0000000000000095001e3c5d52000000b6797979ad00000000a70000000000000000005252003c2d -% 950000007900000000a700000f970000000000000000420d00004200003d00002620000000370000 -% 00003d0d003d00008800000000000000000000000000000000000000000000000000000088000000 -% 5252001e2d950000007900000000a70000000000a000000000000000420000004600202d00003d00 -% 0000003700000000001b1b000088 -% 4400000000003c3c003c3c00005ba400004b5b00880f000000000000000000000645000006450000 -% 37000000000000003e0d003e000000000000000000003e060000450d001b1b000000000000000037 -% 000000000000000000550000002222004400000044540000440000003322000000000000001b1b00 -% 000045000037000000453a0000000000371400000000000000003e0d00003714001b1b0000000000 -% 00000000143000000000000000009700006ab9390000790000002d8800006a3c0097000000000000 -% 0000000000585500000000441900000000005500000000000000000000002d79000f88bb0000002d -% 79000000000000880f1e790000000000000000009700006ab9390000790000002d79000000007900 -% 0000000000000097000079b91d00002d6a0000005b4b0000793c0000000000000000001e79000f97 -% c0000000790000006a4b0000881e00000000000000000d372a2b4500003e30224c06000000370000 -% 00000d474a1b00008800000000000000000000000000000000000000000000000000000088000000 -% 2d79000f79c0000000790000006a4b000000000088000000000000001b45292d3700004c29293700 -% 0000003700000000001b1b000088 -% 4400000000003c3c003c3c000000c00000009c887e0000000000000000000000001445374c140000 -% 37000000000000000d4e4c1f000000000000000000000645374c2900001b1b000000000000000037 -% 000000000000000000334d5444542e0044000000086800005c444454440000000000000000254437 -% 3d4329000037000000144e000037374337000000000000000000063e373e3000001b1b0000000000 -% 00293742450600000000000000004ba7959487971e0095797995970f000000b6a16a000000000000 -% 00000000004d3b00000000085e574433000033534c441100000000000000007987a09788880000ad -% 807979793c000045afb71e0000000000000000005b8895a08ea71e0095797995880f000000007900 -% 000000000000005ba1939482971e00791e0000001e790000c07979791e0000000000000079949597 -% 73a70000a479879479000045b2797979000000000000000d242506000000141b00000000000d0000 -% 0000000d140000008800000000000000000000000000000000000000000000000000000088000000 -% 00799493a188a70000a4798787790000007987a15b0000000000000000142920000000001b140000 -% 0000000d00000000000606000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 440000003a373746300000004a00000014140000193e3100000000000000000000445c4444220000 -% 5c000000191900474444573b080000000000000000004237374e1b00002430000000290000001442 -% 0000000000000000003a37374a300600004a00000014140000223e3e060000000000000000141400 -% 00002900003a37374a37000000143e451b0000000000000000002a5444444400005c000000003300 -% 2750444c531100000000000000004bac9c790f00000000002b88000000000038886d000000000000 -% 00000833000000003b000000445c44330000114c4c44110000000000000000225b4c444400005708 -% 00000033001950444c55190000000000000000004bac9c6a0f0000000000516a00000000000fa400 -% 00000000000000000079a4a4790000000079797979b20000000fa400000000000000000019534844 -% 4400005c0000000033002750444c531900000000000000000f889cac3c0000003c797979799b0000 -% 0f79975b000000008800000000000000000000000000000000000000000000000000000088000000 -% 0079a49b5b000000000000882b000000005b79a46a00000000000000000f889cac4b0000001e7979 -% 79799b00005b79956a0000000088 -% 44000000370000001b370000511400001b1b0000470c3d1b0000000000000000442a000000000000 -% 68110000222200440000002a44000000000000000000370000003e0d001b53000000370000144c3a -% 0000000000000000003700000022370000511b00001b1b00143e000d4300000000000000001b1b00 -% 000037000037000000292900004c0606470c0000000000000011550000000000005c330000004400 -% 222200000855000000000000003c7900002d79000000000079a100000000009c1d873c0000000000 -% 00000055000000005500003b2a00000000005e080000000000000000000011550000000000005444 -% 000000440022220000085e00000000000000004b6a00002d79000000000079940000000000888e00 -% 00000000000000006a5b00006a5b0000000000001e8800000fa78e0000000000000000084d000000 -% 000000543b000000440022220000085e0000000000000000971e0000881e0000000000004b6a0000 -% 882d0080450000008800000000000000000000000000000000000000000000000000000088000000 -% 792d00006a4b0000000000a179000000000000005b6a00000000000000972d0000971e0000000000 -% 005b5b00000000006a5b00000088 -% 4400000037000000004600003a4500001b1b00133300063d00000000000000005200000000000000 -% 4c4d0000222200440000000057000000000000000000370000002424001b34290000370000370637 -% 00000000000000000037000000004200003a4500001b1b00060600004b00000000000000001b1b00 -% 000037000037000000004200000d00003d19000000000000002d2d00000000000044550800004400 -% 22220000005200000000000000515100000091000000000097791e0000002b72000f870000000000 -% 00000044110000193b00005c0000000000005200000000000000000000002d340000000000004455 -% 08000044002222000000520000000000000000910f00000091000000000097881e0000004b2d7900 -% 00000000000000009b0000000091000000000000881e00005b2d7900000000000000002d2d000000 -% 000000445508000044002222000000342d00000000000000910000005151000000000000a7000000 -% 1e00004f8d0000008800000000000000000000000000000000000000000000000000000088000000 -% 9b0000000091000000001e7997000000000000000079000000000000009b00000051510000000000 -% 00a7000000000000007900000088 -% 44000000370000000037000037371b001b1b00202000003d00000000000000004400000000000000 -% 44442200222200440000000044000000000000000000370000001b1b001b1b450600370000000037 -% 0000000000000000003700000000370000372922001b1b000000001b3700000000000000001b1b00 -% 00003700003700000000420000000006450000000000000000222200000000000044224400004400 -% 222200000044000000000000003c3c00000079000000002d6a2d7900000056470000870000000000 -% 000000193b0000441100004400000000000044000000000000000000000022220000000000004419 -% 44000044002222000000440000000000000000790000000079000000002d6a3c6a00000000007900 -% 000000000000000079000000007900000000003c7900000000007900000000000000002222000000 -% 000000441944000044002222000000222200000000000000790000003c3c0000000000793c000000 -% 000000970f0000008800000000000000000000000000000000000000000000000000000088000000 -% 790000000079000000006a2d6a2d0000000000005b5b00000000000000790000003c3c0000000000 -% 793c000000000000793c00000088 -% 44000000370000000037000037004c001b1b00440d00004400000000000000004400001144540000 -% 44085500222200440000000044000000000000000000370000001b1b001b1b1b3700370000000037 -% 000000000000000000370000000037000037004c001b1b000000004c0000000000000000001b1b00 -% 00003700003700000037290000000037140000000000000000222200004464000044004d11004400 -% 222200000044000000000000003c3c0000007900000000791e0097000000950f0000950000000000 -% 00000000550000550000004400000000000044000000000000000000000022220000446400004400 -% 4d11004400222200000044000000000000000079000000007900000000791e009700000000007900 -% 00000000000000007900000000790000000000970f00000000007900000000000000002222000044 -% 64000044004d110044002222000000222200000000000000790000003c3c000000000f9700000000 -% 00004b6a000000008800000000000000000000000000000000000000000000000000000088000000 -% 7900000000790000000097001e79000000005bbdad0f00000000000000790000003c3c000000000f -% 9700000000005bbf9c0000000088 -% 440000003700000000370000370022301b1b00301400003700000000000000004400000000440000 -% 44003b22222200440000000044000000000000000000370000001b1b001b1b003e0d370000000037 -% 0000000000000000003700000000370000370022301b1b000000371b0000000000000000001b1b00 -% 00003700004437374229000000000d3e00000000000000000022220000004400004400114d004400 -% 222200000044000000000000003c3c00000079000000009700006a2d0000791e0000790000000000 -% 000000004411193b0000004400000000000044000000000000000000000022220000004400004400 -% 1144004400222200000044000000000000000079000000007900000000970000791e000000007900 -% 0000000000000000790000000079000000003c6a0000000000007900000000000000002222000000 -% 440000440008550044002222000000222200000000000000790000003c3c00000000792d00000000 -% 000fa700000000008800000000000000000000000000000000000000000000000000000088000000 -% 7900000000790000001e790000970000000000003c6a00000000000000790000003c3c0000000079 -% 3c000000000000005b5b00000088 -% 44000000370000000037000037000045201b00252500004700000000000000004400000000440000 -% 4400005e222200440000000044000000000000000000370000001b1b001b1b000d3e370000000037 -% 000000000000000000370000000037000037000045201b0000064500000000000000000000252500 -% 00004400003700000000000000004506000000000000000000222200000044000044000044224400 -% 222200000044000000000000003c3c000000790000002dab797987950000525200009c0000000000 -% 00000000193b44110000004400000000000044000000000000000000000022220000004400004400 -% 0044224400222200000044000000000000000079000000007900000045ab79798e8a000000007900 -% 000000000000000079000000007900000000a7000000000000007900000000000000002222000000 -% 440000440000442244002222000000222200000000000000790000003c3c0000001e880000000000 -% 00793c00000000008800000000000000000000000000000000000000000000000000000088000000 -% 7900000000790000008a8e7979ab450000000000009500000000000000790000003c3c0000001e88 -% 0000000000000000009500000088 -% 4400000037000000004e00003700001b441b000d3e000d3700000000000000005408000000440000 -% 44000033472200440000000054000000000000000000370000002525001b1b0000373d0000000037 -% 00000000000000000037000000004400003700001b441b00003e0d000000000000000000000d3e00 -% 000037000037000000000000001b37000000000000000000002e3600000044000044000008554400 -% 222200000054000000000000005260005b799a000000791e0000009700001e88002d790000000000 -% 0000000000555500000000540000000000005a00000000000000000000002e360000004400004400 -% 00085544002222000000540000000000000000951e004b799a000000791e00000097000000007900 -% 0000000000000000a000007980950000005b5b000000000000007900000000000000002e3d000000 -% 4400004400000855440022220000004c1800000000000000950000978352000000970f0000000000 -% 1e970000000000008800000000000000000000000000000000000000000000000000000088000000 -% 950000798095000000970000001e790000000000009500000000000000a00000a78c52000000881e -% 00000000000000001e9500000088 -% 440000003d1b1b243e1b0000370000004925000044224e0d0000000000000000224d2d22224c0000 -% 440000006028004c22222d552a000000000000000000411b1b2b4506001b1b000006580000000037 -% 0000000000000000003d1b1b25452200003700000044250019441b1b140000000000000000003737 -% 1b372900003700000000000000531b1b1b0600000000000000084d36222254000044000000335c00 -% 283b22283844000000000000000fa752528eb64b000097000000006a2d0000954bab0f0000000000 -% 000000000057400000000019552d22190000443828220800000000000000005e3028225400004400 -% 00003b5800223b2228334400000000000000001ea752529abf4b00009700000000791e0000007900 -% 00000000000000003c885151b1ab2d000fab3c3c3c3c00000000790000000000000000005e302222 -% 54000044000000335c00283b222838440000000000000000796a5260c08e0f0052953c3c3c2d0000 -% a0523c3c1e0000008800000000000000000000000000000000000000000000000000000088000000 -% 4b885151a6b32d000f88000000009700002d3c51882d00000000000000796a5260c38e0f0047953c -% 3c3c2d00002d3c52a71e00000088 -% 44000000191b1b240d0000000d0000000c0c0000001b0d00000000000000000000112d22221f0000 -% 110000001808001f22222d11000000000000000000001f1b1b25060000060600000019000000000d -% 000000000000000000191b1b250d0000000d0000000c0c000c201b1b140000000000000000000014 -% 1b140000000d00000000000000251b1b1b060000000000000000082e22222e000011000000001f00 -% 10282228280000000000000000000f52522d002d00001e000000000f0f0000003c1e000000000000 -% 000000000018100000000000112d2219000000282822080000000000000000082828222e00001100 -% 0000001f000828222822000000000000000000001e52521e002d00002d000000000f0f0000001e00 -% 0000000000000000001e51511e0f1e0000523c3c3c3c000000001e00000000000000000008282222 -% 2e000011000000001f001028222828000000000000000000002d52520f1e0f00383c3c3c3c2d0000 -% 523c3c3c1e0000008800000000000000000000000000000000000000000000000000000088000000 -% 002d51510f0f1e000f1e000000001e00002d3c511e0000000000000000002d52520f1e0f001d473c -% 3c3c2d00002d3c520f0000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000088000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 76444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 4444444444444444b3444444444433000022444444444444000022444444444444000011b4444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444a0 -%%EndImage -%%EndPreview -save countdictstack mark newpath /showpage {} def /setpagedevice {pop} def -%%EndProlog -%%Page 1 1 - -% Prolog copyright 1994-2003 Trolltech. You may copy this prolog in any way -% that is directly related to this document. For other use of this prolog, -% see your licensing agreement for Qt. -/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D -/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D -/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D -/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read -pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end -d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi -false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88 -0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{ -LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{ -gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get -SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7 -bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL -0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB -exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL -ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1 -eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if -64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3 -i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll -putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3 -1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D -/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3 -colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1 -QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray -QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2 -add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq -{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC -imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel -where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d -/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7 -DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d -/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height -h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4 -DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{ -pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC -WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{ -1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie} -if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4 -2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg -RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0 -exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if -BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h -add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0 -6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT -}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h -D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div -add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1 -ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT -0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy -MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R -{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h -ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry -D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y -w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul -200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90 -x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0 --90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h -ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale -NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS} -D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT -x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP -ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255 -div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0 -B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25 -/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true -exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3 --1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch -/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup -maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding -fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length -dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end -definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d} -D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty -MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch -stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT -1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0 -exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore -showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop -pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D -/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt -ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP} -D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D - -/LArr[ [] [] [ 83.333 25.000 ] [ 25.000 83.333 ] [ 25.000 25.000 ] [ 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 25.000 25.000 ] ] d -/pageinit { -% 210*297mm (portrait) -0 842.04 translate 0.12 -0.12 scale/defM matrix CM d } d -QI -[1 0 0 1 0 0]ST -1 4 B 1 1 PE -NB -W BC -3070 7017 0 HL -3070 6545 7017 VL -0 6545 3070 HL -0 7017 6545 VL -3779 7017 3307 HL -3779 5600 7017 VL -3307 5600 3779 HL -3307 7017 5600 VL -3779 5600 3779 HL -3779 5600 3779 HL -3779 5600 3779 HL -3779 5600 3779 HL -1 4 B 1 1 PE -3121 7017 3070 HL -3198 7017 3147 HL -3274 7017 3223 HL -3307 7017 3300 HL -1 4 0 0 255 1 1 PE -59 6698 6627 VL -83 6627 6698 VL -122 6698 83 6627 DL -122 6627 6698 VL -NP -169 6631 MT -167 6630 LT -166 6628 LT -164 6628 LT -162 6627 LT -160 6627 LT -158 6628 LT -156 6629 LT -155 6630 LT -154 6631 LT -QS -NP -154 6631 MT -153 6633 LT -152 6635 LT -151 6636 LT -150 6638 LT -149 6640 LT -149 6642 LT -148 6644 LT -148 6646 LT -147 6647 LT -QS -NP -147 6678 MT -148 6680 LT -148 6682 LT -149 6684 LT -150 6686 LT -150 6688 LT -151 6690 LT -152 6691 LT -153 6693 LT -154 6694 LT -QS -NP -154 6694 MT -155 6696 LT -157 6697 LT -159 6698 LT -161 6698 LT -163 6698 LT -165 6697 LT -167 6696 LT -168 6695 LT -169 6694 LT -QS -NP -169 6694 MT -170 6693 LT -171 6691 LT -172 6689 LT -173 6687 LT -173 6686 LT -174 6684 LT -175 6682 LT -175 6680 LT -175 6678 LT -QS -NP -175 6678 MT -176 6677 LT -176 6675 LT -177 6673 LT -177 6671 LT -177 6669 LT -177 6667 LT -177 6665 LT -177 6663 LT -QS -NP -177 6663 MT -177 6661 LT -177 6659 LT -177 6657 LT -177 6655 LT -176 6653 LT -176 6651 LT -176 6649 LT -175 6647 LT -QS -NP -175 6647 MT -175 6645 LT -175 6643 LT -174 6641 LT -173 6639 LT -172 6638 LT -171 6636 LT -170 6634 LT -169 6632 LT -169 6631 LT -QS -NP -146 6663 MT -146 6665 LT -146 6667 LT -146 6669 LT -146 6671 LT -146 6673 LT -147 6675 LT -147 6677 LT -147 6678 LT -QS -NP -147 6647 MT -147 6649 LT -147 6651 LT -146 6653 LT -146 6655 LT -146 6657 LT -146 6659 LT -146 6661 LT -146 6663 LT -QS -1449 6879 6919 VL -1472 6863 1464 HL -1488 6919 6879 VL -1464 6934 1472 HL -1472 6919 1496 6934 DL -NP -1464 6863 MT -1462 6864 LT -1460 6864 LT -1458 6865 LT -1457 6865 LT -1455 6867 LT -1453 6868 LT -1452 6869 LT -1451 6871 LT -1450 6873 LT -1449 6875 LT -1449 6877 LT -1449 6879 LT -1449 6879 LT -QS -NP -1488 6879 MT -1488 6877 LT -1487 6875 LT -1487 6873 LT -1486 6872 LT -1485 6870 LT -1484 6868 LT -1482 6867 LT -1480 6866 LT -1479 6865 LT -1477 6864 LT -1475 6864 LT -1473 6863 LT -1472 6863 LT -QS -NP -1472 6934 MT -1474 6934 LT -1476 6934 LT -1478 6933 LT -1480 6932 LT -1482 6931 LT -1483 6930 LT -1484 6928 LT -1486 6927 LT -1487 6925 LT -1487 6923 LT -1488 6921 LT -1488 6919 LT -1488 6919 LT -QS -NP -1449 6919 MT -1449 6921 LT -1449 6923 LT -1450 6924 LT -1451 6926 LT -1452 6928 LT -1453 6929 LT -1454 6931 LT -1456 6932 LT -1458 6933 LT -1460 6934 LT -1462 6934 LT -1464 6934 LT -1464 6934 LT -QS -1543 6863 1519 6934 DL -1567 6934 1543 6863 DL -1560 6915 1526 HL -NP -1613 6867 MT -1612 6866 LT -1610 6865 LT -1608 6864 LT -1607 6863 LT -1605 6864 LT -1603 6864 LT -1601 6865 LT -1599 6867 LT -1599 6867 LT -QS -NP -1599 6867 MT -1598 6869 LT -1597 6871 LT -1596 6872 LT -1595 6874 LT -1594 6876 LT -1593 6878 LT -1593 6880 LT -1592 6882 LT -1592 6883 LT -QS -NP -1592 6915 MT -1592 6917 LT -1593 6919 LT -1593 6920 LT -1594 6922 LT -1595 6924 LT -1596 6926 LT -1597 6928 LT -1598 6929 LT -1599 6930 LT -QS -NP -1599 6930 MT -1600 6932 LT -1602 6933 LT -1604 6934 LT -1606 6934 LT -1608 6934 LT -1609 6934 LT -1611 6933 LT -1613 6931 LT -1613 6930 LT -QS -NP -1613 6930 MT -1614 6929 LT -1615 6927 LT -1616 6925 LT -1617 6924 LT -1618 6922 LT -1619 6920 LT -1619 6918 LT -1620 6916 LT -1620 6915 LT -QS -NP -1620 6915 MT -1621 6913 LT -1621 6911 LT -1621 6909 LT -1621 6907 LT -1622 6905 LT -1622 6903 LT -1622 6901 LT -1622 6899 LT -QS -NP -1622 6899 MT -1622 6897 LT -1622 6895 LT -1622 6893 LT -1621 6891 LT -1621 6889 LT -1621 6887 LT -1620 6885 LT -1620 6883 LT -QS -NP -1620 6883 MT -1620 6881 LT -1619 6879 LT -1619 6877 LT -1618 6876 LT -1617 6874 LT -1616 6872 LT -1615 6870 LT -1614 6869 LT -1613 6867 LT -QS -NP -1590 6899 MT -1590 6901 LT -1590 6903 LT -1590 6905 LT -1591 6907 LT -1591 6909 LT -1591 6911 LT -1592 6913 LT -1592 6915 LT -QS -NP -1592 6883 MT -1592 6885 LT -1591 6887 LT -1591 6889 LT -1591 6891 LT -1590 6893 LT -1590 6895 LT -1590 6897 LT -1590 6899 LT -QS -1452 6643 6682 VL -1476 6627 1468 HL -1492 6682 6643 VL -1468 6698 1476 HL -1476 6682 1500 6698 DL -NP -1468 6627 MT -1466 6627 LT -1464 6628 LT -1462 6628 LT -1461 6629 LT -1459 6630 LT -1457 6632 LT -1456 6633 LT -1455 6635 LT -1454 6637 LT -1453 6638 LT -1453 6640 LT -1453 6642 LT -1452 6643 LT -QS -NP -1492 6643 MT -1492 6641 LT -1491 6639 LT -1491 6637 LT -1490 6635 LT -1489 6634 LT -1487 6632 LT -1486 6631 LT -1484 6630 LT -1483 6629 LT -1481 6628 LT -1479 6628 LT -1477 6627 LT -1476 6627 LT -QS -NP -1476 6698 MT -1478 6698 LT -1480 6698 LT -1482 6697 LT -1484 6696 LT -1485 6695 LT -1487 6694 LT -1488 6692 LT -1490 6691 LT -1490 6689 LT -1491 6687 LT -1492 6685 LT -1492 6683 LT -1492 6682 LT -QS -NP -1452 6682 MT -1453 6684 LT -1453 6686 LT -1454 6688 LT -1454 6690 LT -1456 6692 LT -1457 6693 LT -1458 6695 LT -1460 6696 LT -1462 6697 LT -1464 6697 LT -1466 6698 LT -1468 6698 LT -1468 6698 LT -QS -1523 6627 6698 VL -1543 6627 1523 HL -1544 6659 1523 HL -1563 6679 6678 VL -1523 6698 1544 HL -NP -1543 6659 MT -1545 6659 LT -1547 6658 LT -1549 6658 LT -1551 6657 LT -1552 6656 LT -1554 6654 LT -1555 6653 LT -1556 6651 LT -1557 6650 LT -1558 6648 LT -1559 6646 LT -1559 6644 LT -1559 6642 LT -1558 6640 LT -1558 6638 LT -1557 6636 LT -1556 6634 LT -1555 6633 LT -1553 6631 LT -1552 6630 LT -1550 6629 LT -1548 6628 LT -1546 6628 LT -1544 6627 LT -1543 6627 LT -QS -NP -1563 6678 MT -1563 6676 LT -1562 6674 LT -1562 6672 LT -1561 6670 LT -1560 6668 LT -1559 6666 LT -1558 6665 LT -1556 6664 LT -1555 6662 LT -1553 6661 LT -1551 6660 LT -1549 6660 LT -1547 6659 LT -1545 6659 LT -1544 6659 LT -QS -NP -1544 6698 MT -1546 6698 LT -1548 6698 LT -1550 6697 LT -1552 6696 LT -1553 6696 LT -1555 6694 LT -1557 6693 LT -1558 6692 LT -1559 6690 LT -1560 6688 LT -1561 6687 LT -1562 6685 LT -1562 6683 LT -1563 6681 LT -1563 6679 LT -QS -NP -1609 6631 MT -1608 6630 LT -1606 6628 LT -1605 6628 LT -1603 6627 LT -1601 6627 LT -1599 6628 LT -1597 6629 LT -1595 6630 LT -1595 6631 LT -QS -NP -1595 6631 MT -1594 6633 LT -1593 6635 LT -1592 6636 LT -1591 6638 LT -1590 6640 LT -1589 6642 LT -1589 6644 LT -1588 6646 LT -1588 6647 LT -QS -NP -1588 6678 MT -1588 6680 LT -1589 6682 LT -1590 6684 LT -1590 6686 LT -1591 6688 LT -1592 6690 LT -1593 6691 LT -1594 6693 LT -1595 6694 LT -QS -NP -1595 6694 MT -1596 6696 LT -1598 6697 LT -1600 6698 LT -1602 6698 LT -1604 6698 LT -1606 6697 LT -1607 6696 LT -1609 6695 LT -1609 6694 LT -QS -NP -1609 6694 MT -1610 6693 LT -1612 6691 LT -1612 6689 LT -1613 6687 LT -1614 6686 LT -1615 6684 LT -1615 6682 LT -1616 6680 LT -1616 6678 LT -QS -NP -1616 6678 MT -1617 6677 LT -1617 6675 LT -1617 6673 LT -1617 6671 LT -1618 6669 LT -1618 6667 LT -1618 6665 LT -1618 6663 LT -QS -NP -1618 6663 MT -1618 6661 LT -1618 6659 LT -1618 6657 LT -1617 6655 LT -1617 6653 LT -1617 6651 LT -1617 6649 LT -1616 6647 LT -QS -NP -1616 6647 MT -1616 6645 LT -1615 6643 LT -1615 6641 LT -1614 6639 LT -1613 6638 LT -1612 6636 LT -1611 6634 LT -1610 6632 LT -1609 6631 LT -QS -NP -1586 6663 MT -1586 6665 LT -1586 6667 LT -1587 6669 LT -1587 6671 LT -1587 6673 LT -1587 6675 LT -1588 6677 LT -1588 6678 LT -QS -NP -1588 6647 MT -1588 6649 LT -1587 6651 LT -1587 6653 LT -1587 6655 LT -1587 6657 LT -1586 6659 LT -1586 6661 LT -1586 6663 LT -QS -1925 6643 6682 VL -1948 6627 1941 HL -1964 6682 6643 VL -1941 6698 1948 HL -1948 6682 1972 6698 DL -NP -1941 6627 MT -1939 6627 LT -1937 6628 LT -1935 6628 LT -1933 6629 LT -1931 6630 LT -1930 6632 LT -1928 6633 LT -1927 6635 LT -1926 6637 LT -1926 6638 LT -1925 6640 LT -1925 6642 LT -1925 6643 LT -QS -NP -1964 6643 MT -1964 6641 LT -1964 6639 LT -1963 6637 LT -1962 6635 LT -1961 6634 LT -1960 6632 LT -1958 6631 LT -1957 6630 LT -1955 6629 LT -1953 6628 LT -1951 6628 LT -1949 6627 LT -1948 6627 LT -QS -NP -1948 6698 MT -1950 6698 LT -1952 6698 LT -1954 6697 LT -1956 6696 LT -1958 6695 LT -1959 6694 LT -1961 6692 LT -1962 6691 LT -1963 6689 LT -1964 6687 LT -1964 6685 LT -1964 6683 LT -1964 6682 LT -QS -NP -1925 6682 MT -1925 6684 LT -1925 6686 LT -1926 6688 LT -1927 6690 LT -1928 6692 LT -1929 6693 LT -1931 6695 LT -1932 6696 LT -1934 6697 LT -1936 6697 LT -1938 6698 LT -1940 6698 LT -1941 6698 LT -QS -2035 6627 1996 HL -1996 6698 2035 6627 DL -2035 6698 1996 HL -NP -2082 6631 MT -2080 6630 LT -2079 6628 LT -2077 6628 LT -2075 6627 LT -2073 6627 LT -2071 6628 LT -2069 6629 LT -2068 6630 LT -2067 6631 LT -QS -NP -2067 6631 MT -2066 6633 LT -2065 6635 LT -2064 6636 LT -2063 6638 LT -2062 6640 LT -2062 6642 LT -2061 6644 LT -2061 6646 LT -2060 6647 LT -QS -NP -2060 6678 MT -2061 6680 LT -2061 6682 LT -2062 6684 LT -2063 6686 LT -2063 6688 LT -2064 6690 LT -2065 6691 LT -2066 6693 LT -2067 6694 LT -QS -NP -2067 6694 MT -2069 6696 LT -2070 6697 LT -2072 6698 LT -2074 6698 LT -2076 6698 LT -2078 6697 LT -2080 6696 LT -2081 6695 LT -2082 6694 LT -QS -NP -2082 6694 MT -2083 6693 LT -2084 6691 LT -2085 6689 LT -2086 6687 LT -2087 6686 LT -2087 6684 LT -2088 6682 LT -2088 6680 LT -2089 6678 LT -QS -NP -2089 6678 MT -2089 6677 LT -2089 6675 LT -2090 6673 LT -2090 6671 LT -2090 6669 LT -2090 6667 LT -2090 6665 LT -2090 6663 LT -QS -NP -2090 6663 MT -2090 6661 LT -2090 6659 LT -2090 6657 LT -2090 6655 LT -2090 6653 LT -2089 6651 LT -2089 6649 LT -2089 6647 LT -QS -NP -2089 6647 MT -2088 6645 LT -2088 6643 LT -2087 6641 LT -2086 6639 LT -2085 6638 LT -2085 6636 LT -2084 6634 LT -2082 6632 LT -2082 6631 LT -QS -NP -2059 6663 MT -2059 6665 LT -2059 6667 LT -2059 6669 LT -2059 6671 LT -2059 6673 LT -2060 6675 LT -2060 6677 LT -2060 6678 LT -QS -NP -2060 6647 MT -2060 6649 LT -2060 6651 LT -2059 6653 LT -2059 6655 LT -2059 6657 LT -2059 6659 LT -2059 6661 LT -2059 6663 LT -QS -2169 6643 6682 VL -2193 6627 2185 HL -2208 6682 6643 VL -2185 6698 2193 HL -2193 6682 2216 6698 DL -NP -2185 6627 MT -2183 6627 LT -2181 6628 LT -2179 6628 LT -2177 6629 LT -2175 6630 LT -2174 6632 LT -2172 6633 LT -2171 6635 LT -2170 6637 LT -2170 6638 LT -2169 6640 LT -2169 6642 LT -2169 6643 LT -QS -NP -2208 6643 MT -2208 6641 LT -2208 6639 LT -2207 6637 LT -2206 6635 LT -2205 6634 LT -2204 6632 LT -2202 6631 LT -2201 6630 LT -2199 6629 LT -2197 6628 LT -2195 6628 LT -2193 6627 LT -2193 6627 LT -QS -NP -2193 6698 MT -2195 6698 LT -2196 6698 LT -2198 6697 LT -2200 6696 LT -2202 6695 LT -2203 6694 LT -2205 6692 LT -2206 6691 LT -2207 6689 LT -2208 6687 LT -2208 6685 LT -2208 6683 LT -2208 6682 LT -QS -NP -2169 6682 MT -2169 6684 LT -2169 6686 LT -2170 6688 LT -2171 6690 LT -2172 6692 LT -2173 6693 LT -2175 6695 LT -2176 6696 LT -2178 6697 LT -2180 6697 LT -2182 6698 LT -2184 6698 LT -2185 6698 LT -QS -2240 6627 6698 VL -2259 6627 2240 HL -2260 6659 2240 HL -2279 6679 6678 VL -2240 6698 2260 HL -NP -2259 6659 MT -2261 6659 LT -2263 6658 LT -2265 6658 LT -2267 6657 LT -2269 6656 LT -2270 6654 LT -2272 6653 LT -2273 6651 LT -2274 6650 LT -2274 6648 LT -2275 6646 LT -2275 6644 LT -2275 6642 LT -2275 6640 LT -2274 6638 LT -2274 6636 LT -2272 6634 LT -2271 6633 LT -2270 6631 LT -2268 6630 LT -2267 6629 LT -2265 6628 LT -2263 6628 LT -2261 6627 LT -2259 6627 LT -QS -NP -2279 6678 MT -2279 6676 LT -2279 6674 LT -2278 6672 LT -2277 6670 LT -2277 6668 LT -2275 6666 LT -2274 6665 LT -2273 6664 LT -2271 6662 LT -2269 6661 LT -2268 6660 LT -2266 6660 LT -2264 6659 LT -2262 6659 LT -2260 6659 LT -QS -NP -2260 6698 MT -2262 6698 LT -2264 6698 LT -2266 6697 LT -2268 6696 LT -2270 6696 LT -2271 6694 LT -2273 6693 LT -2274 6692 LT -2276 6690 LT -2277 6688 LT -2278 6687 LT -2278 6685 LT -2279 6683 LT -2279 6681 LT -2279 6679 LT -QS -2318 6627 2303 6643 DL -2318 6698 6627 VL -2165 6879 6919 VL -2189 6863 2181 HL -2204 6919 6879 VL -2181 6934 2189 HL -2189 6919 2212 6934 DL -NP -2181 6863 MT -2179 6864 LT -2177 6864 LT -2175 6865 LT -2173 6865 LT -2171 6867 LT -2170 6868 LT -2168 6869 LT -2167 6871 LT -2166 6873 LT -2166 6875 LT -2165 6877 LT -2165 6879 LT -2165 6879 LT -QS -NP -2204 6879 MT -2204 6877 LT -2204 6875 LT -2203 6873 LT -2202 6872 LT -2201 6870 LT -2200 6868 LT -2198 6867 LT -2197 6866 LT -2195 6865 LT -2193 6864 LT -2191 6864 LT -2189 6863 LT -2189 6863 LT -QS -NP -2189 6934 MT -2191 6934 LT -2193 6934 LT -2194 6933 LT -2196 6932 LT -2198 6931 LT -2199 6930 LT -2201 6928 LT -2202 6927 LT -2203 6925 LT -2204 6923 LT -2204 6921 LT -2204 6919 LT -2204 6919 LT -QS -NP -2165 6919 MT -2165 6921 LT -2165 6923 LT -2166 6924 LT -2167 6926 LT -2168 6928 LT -2169 6929 LT -2171 6931 LT -2172 6932 LT -2174 6933 LT -2176 6934 LT -2178 6934 LT -2180 6934 LT -2181 6934 LT -QS -2259 6863 2236 6934 DL -2283 6934 2259 6863 DL -2277 6915 2242 HL -2322 6863 2307 6879 DL -2322 6934 6863 VL -2393 6643 6682 VL -2417 6627 2409 HL -2433 6682 6643 VL -2409 6698 2417 HL -2417 6682 2441 6698 DL -NP -2409 6627 MT -2407 6627 LT -2405 6628 LT -2403 6628 LT -2401 6629 LT -2400 6630 LT -2398 6632 LT -2397 6633 LT -2396 6635 LT -2395 6637 LT -2394 6638 LT -2394 6640 LT -2393 6642 LT -2393 6643 LT -QS -NP -2433 6643 MT -2433 6641 LT -2432 6639 LT -2432 6637 LT -2431 6635 LT -2430 6634 LT -2428 6632 LT -2427 6631 LT -2425 6630 LT -2423 6629 LT -2422 6628 LT -2420 6628 LT -2418 6627 LT -2417 6627 LT -QS -NP -2417 6698 MT -2419 6698 LT -2421 6698 LT -2423 6697 LT -2425 6696 LT -2426 6695 LT -2428 6694 LT -2429 6692 LT -2430 6691 LT -2431 6689 LT -2432 6687 LT -2432 6685 LT -2433 6683 LT -2433 6682 LT -QS -NP -2393 6682 MT -2393 6684 LT -2394 6686 LT -2394 6688 LT -2395 6690 LT -2396 6692 LT -2398 6693 LT -2399 6695 LT -2401 6696 LT -2403 6697 LT -2404 6697 LT -2406 6698 LT -2408 6698 LT -2409 6698 LT -QS -2488 6627 2464 6698 DL -2511 6698 2488 6627 DL -2505 6678 2471 HL -2535 6698 2566 HL -2565 6646 2535 6698 DL -NP -2565 6646 MT -2566 6644 LT -2566 6642 LT -2566 6640 LT -2566 6639 LT -QS -NP -2566 6639 MT -2565 6637 LT -2564 6635 LT -2563 6634 LT -2562 6632 LT -2561 6631 LT -2559 6630 LT -2557 6629 LT -2555 6628 LT -2553 6628 LT -2551 6627 LT -2549 6627 LT -2547 6628 LT -2546 6628 LT -2544 6629 LT -2542 6630 LT -2540 6631 LT -2539 6633 LT -2538 6634 LT -2537 6636 LT -2536 6638 LT -2535 6639 LT -QS -2405 6879 6919 VL -2429 6863 2421 HL -2444 6919 6879 VL -2421 6934 2429 HL -2429 6919 2452 6934 DL -NP -2421 6863 MT -2419 6864 LT -2417 6864 LT -2415 6865 LT -2413 6865 LT -2411 6867 LT -2410 6868 LT -2409 6869 LT -2407 6871 LT -2406 6873 LT -2406 6875 LT -2405 6877 LT -2405 6879 LT -2405 6879 LT -QS -NP -2444 6879 MT -2444 6877 LT -2444 6875 LT -2443 6873 LT -2442 6872 LT -2441 6870 LT -2440 6868 LT -2439 6867 LT -2437 6866 LT -2435 6865 LT -2433 6864 LT -2431 6864 LT -2429 6863 LT -2429 6863 LT -QS -NP -2429 6934 MT -2431 6934 LT -2433 6934 LT -2435 6933 LT -2436 6932 LT -2438 6931 LT -2440 6930 LT -2441 6928 LT -2442 6927 LT -2443 6925 LT -2444 6923 LT -2444 6921 LT -2444 6919 LT -2444 6919 LT -QS -NP -2405 6919 MT -2405 6921 LT -2406 6923 LT -2406 6924 LT -2407 6926 LT -2408 6928 LT -2409 6929 LT -2411 6931 LT -2413 6932 LT -2414 6933 LT -2416 6934 LT -2418 6934 LT -2420 6934 LT -2421 6934 LT -QS -2515 6863 2476 HL -2476 6934 2515 6863 DL -2515 6934 2476 HL -2555 6863 2539 6879 DL -2555 6934 6863 VL -2633 6643 6682 VL -2657 6627 2649 HL -2673 6682 6643 VL -2649 6698 2657 HL -2657 6682 2681 6698 DL -NP -2649 6627 MT -2647 6627 LT -2645 6628 LT -2643 6628 LT -2641 6629 LT -2640 6630 LT -2638 6632 LT -2637 6633 LT -2636 6635 LT -2635 6637 LT -2634 6638 LT -2634 6640 LT -2633 6642 LT -2633 6643 LT -QS -NP -2673 6643 MT -2673 6641 LT -2672 6639 LT -2672 6637 LT -2671 6635 LT -2670 6634 LT -2668 6632 LT -2667 6631 LT -2665 6630 LT -2663 6629 LT -2662 6628 LT -2660 6628 LT -2658 6627 LT -2657 6627 LT -QS -NP -2657 6698 MT -2659 6698 LT -2661 6698 LT -2663 6697 LT -2665 6696 LT -2666 6695 LT -2668 6694 LT -2669 6692 LT -2670 6691 LT -2671 6689 LT -2672 6687 LT -2673 6685 LT -2673 6683 LT -2673 6682 LT -QS -NP -2633 6682 MT -2634 6684 LT -2634 6686 LT -2635 6688 LT -2635 6690 LT -2636 6692 LT -2638 6693 LT -2639 6695 LT -2641 6696 LT -2643 6697 LT -2645 6697 LT -2646 6698 LT -2648 6698 LT -2649 6698 LT -QS -2704 6627 6698 VL -2724 6627 2704 HL -2725 6659 2704 HL -2744 6679 6678 VL -2704 6698 2725 HL -NP -2724 6659 MT -2726 6659 LT -2728 6658 LT -2730 6658 LT -2732 6657 LT -2733 6656 LT -2735 6654 LT -2736 6653 LT -2737 6651 LT -2738 6650 LT -2739 6648 LT -2739 6646 LT -2740 6644 LT -2740 6642 LT -2739 6640 LT -2739 6638 LT -2738 6636 LT -2737 6634 LT -2736 6633 LT -2734 6631 LT -2733 6630 LT -2731 6629 LT -2729 6628 LT -2727 6628 LT -2725 6627 LT -2724 6627 LT -QS -NP -2744 6678 MT -2744 6676 LT -2743 6674 LT -2743 6672 LT -2742 6670 LT -2741 6668 LT -2740 6666 LT -2739 6665 LT -2737 6664 LT -2736 6662 LT -2734 6661 LT -2732 6660 LT -2730 6660 LT -2728 6659 LT -2726 6659 LT -2725 6659 LT -QS -NP -2725 6698 MT -2727 6698 LT -2729 6698 LT -2731 6697 LT -2732 6696 LT -2734 6696 LT -2736 6694 LT -2737 6693 LT -2739 6692 LT -2740 6690 LT -2741 6688 LT -2742 6687 LT -2743 6685 LT -2743 6683 LT -2744 6681 LT -2744 6679 LT -QS -2767 6698 2799 HL -2798 6646 2767 6698 DL -NP -2798 6646 MT -2798 6644 LT -2799 6642 LT -2798 6640 LT -2798 6639 LT -QS -NP -2798 6639 MT -2798 6637 LT -2797 6635 LT -2796 6634 LT -2794 6632 LT -2793 6631 LT -2791 6630 LT -2789 6629 LT -2788 6628 LT -2786 6628 LT -2784 6627 LT -2782 6627 LT -2780 6628 LT -2778 6628 LT -2776 6629 LT -2774 6630 LT -2773 6631 LT -2771 6633 LT -2770 6634 LT -2769 6636 LT -2768 6638 LT -2768 6639 LT -QS -2870 6879 6919 VL -2893 6863 2885 HL -2909 6919 6879 VL -2885 6934 2893 HL -2893 6919 2917 6934 DL -NP -2885 6863 MT -2883 6864 LT -2881 6864 LT -2879 6865 LT -2878 6865 LT -2876 6867 LT -2874 6868 LT -2873 6869 LT -2872 6871 LT -2871 6873 LT -2870 6875 LT -2870 6877 LT -2870 6879 LT -2870 6879 LT -QS -NP -2909 6879 MT -2909 6877 LT -2908 6875 LT -2908 6873 LT -2907 6872 LT -2906 6870 LT -2905 6868 LT -2903 6867 LT -2901 6866 LT -2900 6865 LT -2898 6864 LT -2896 6864 LT -2894 6863 LT -2893 6863 LT -QS -NP -2893 6934 MT -2895 6934 LT -2897 6934 LT -2899 6933 LT -2901 6932 LT -2903 6931 LT -2904 6930 LT -2905 6928 LT -2907 6927 LT -2908 6925 LT -2908 6923 LT -2909 6921 LT -2909 6919 LT -2909 6919 LT -QS -NP -2870 6919 MT -2870 6921 LT -2870 6923 LT -2871 6924 LT -2872 6926 LT -2873 6928 LT -2874 6929 LT -2875 6931 LT -2877 6932 LT -2879 6933 LT -2881 6934 LT -2883 6934 LT -2885 6934 LT -2885 6934 LT -QS -2980 6863 2940 HL -2940 6934 2980 6863 DL -2980 6934 2940 HL -3003 6934 3035 HL -3034 6882 3003 6934 DL -NP -3034 6882 MT -3035 6880 LT -3035 6878 LT -3035 6876 LT -3034 6875 LT -QS -NP -3034 6875 MT -3034 6873 LT -3033 6872 LT -3032 6870 LT -3031 6868 LT -3029 6867 LT -3027 6866 LT -3026 6865 LT -3024 6864 LT -3022 6864 LT -3020 6863 LT -3018 6864 LT -3016 6864 LT -3014 6864 LT -3012 6865 LT -3010 6866 LT -3009 6867 LT -3007 6869 LT -3006 6870 LT -3005 6872 LT -3004 6874 LT -3004 6875 LT -QS -3342 6643 6682 VL -3366 6627 3358 HL -3381 6682 6643 VL -3358 6698 3366 HL -3366 6682 3389 6698 DL -NP -3358 6627 MT -3356 6627 LT -3354 6628 LT -3352 6628 LT -3350 6629 LT -3348 6630 LT -3347 6632 LT -3345 6633 LT -3344 6635 LT -3343 6637 LT -3343 6638 LT -3342 6640 LT -3342 6642 LT -3342 6643 LT -QS -NP -3381 6643 MT -3381 6641 LT -3381 6639 LT -3380 6637 LT -3379 6635 LT -3378 6634 LT -3377 6632 LT -3375 6631 LT -3374 6630 LT -3372 6629 LT -3370 6628 LT -3368 6628 LT -3366 6627 LT -3366 6627 LT -QS -NP -3366 6698 MT -3368 6698 LT -3370 6698 LT -3371 6697 LT -3373 6696 LT -3375 6695 LT -3376 6694 LT -3378 6692 LT -3379 6691 LT -3380 6689 LT -3381 6687 LT -3381 6685 LT -3381 6683 LT -3381 6682 LT -QS -NP -3342 6682 MT -3342 6684 LT -3342 6686 LT -3343 6688 LT -3344 6690 LT -3345 6692 LT -3346 6693 LT -3348 6695 LT -3349 6696 LT -3351 6697 LT -3353 6697 LT -3355 6698 LT -3357 6698 LT -3358 6698 LT -QS -3413 6627 6698 VL -3432 6627 3413 HL -3433 6659 3413 HL -3452 6679 6678 VL -3413 6698 3433 HL -NP -3432 6659 MT -3434 6659 LT -3436 6658 LT -3438 6658 LT -3440 6657 LT -3442 6656 LT -3443 6654 LT -3445 6653 LT -3446 6651 LT -3447 6650 LT -3448 6648 LT -3448 6646 LT -3448 6644 LT -3448 6642 LT -3448 6640 LT -3447 6638 LT -3447 6636 LT -3446 6634 LT -3444 6633 LT -3443 6631 LT -3441 6630 LT -3440 6629 LT -3438 6628 LT -3436 6628 LT -3434 6627 LT -3432 6627 LT -QS -NP -3452 6678 MT -3452 6676 LT -3452 6674 LT -3451 6672 LT -3450 6670 LT -3450 6668 LT -3448 6666 LT -3447 6665 LT -3446 6664 LT -3444 6662 LT -3442 6661 LT -3441 6660 LT -3439 6660 LT -3437 6659 LT -3435 6659 LT -3433 6659 LT -QS -NP -3433 6698 MT -3435 6698 LT -3437 6698 LT -3439 6697 LT -3441 6696 LT -3443 6696 LT -3444 6694 LT -3446 6693 LT -3447 6692 LT -3449 6690 LT -3450 6688 LT -3451 6687 LT -3451 6685 LT -3452 6683 LT -3452 6681 LT -3452 6679 LT -QS -3492 6627 3476 HL -3484 6659 3492 HL -3507 6682 6675 VL -3476 6698 3492 HL -NP -3492 6659 MT -3494 6659 LT -3495 6658 LT -3497 6658 LT -3499 6657 LT -3501 6656 LT -3502 6654 LT -3504 6653 LT -3505 6651 LT -3506 6650 LT -3507 6648 LT -3507 6646 LT -3507 6644 LT -3507 6642 LT -3507 6640 LT -3506 6638 LT -3506 6636 LT -3505 6634 LT -3503 6633 LT -3502 6631 LT -3500 6630 LT -3499 6629 LT -3497 6628 LT -3495 6628 LT -3493 6627 LT -3492 6627 LT -QS -NP -3507 6675 MT -3507 6673 LT -3507 6671 LT -3506 6669 LT -3505 6667 LT -3504 6665 LT -3503 6664 LT -3501 6662 LT -3500 6661 LT -3498 6660 LT -3496 6659 LT -3494 6659 LT -3492 6659 LT -3492 6659 LT -QS -NP -3492 6698 MT -3494 6698 LT -3495 6698 LT -3497 6697 LT -3499 6696 LT -3501 6695 LT -3502 6694 LT -3504 6692 LT -3505 6691 LT -3506 6689 LT -3507 6687 LT -3507 6685 LT -3507 6683 LT -3507 6682 LT -QS -3338 6879 6919 VL -3362 6863 3354 HL -3377 6919 6879 VL -3354 6934 3362 HL -3362 6919 3385 6934 DL -NP -3354 6863 MT -3352 6864 LT -3350 6864 LT -3348 6865 LT -3346 6865 LT -3344 6867 LT -3343 6868 LT -3341 6869 LT -3340 6871 LT -3339 6873 LT -3339 6875 LT -3338 6877 LT -3338 6879 LT -3338 6879 LT -QS -NP -3377 6879 MT -3377 6877 LT -3377 6875 LT -3376 6873 LT -3375 6872 LT -3374 6870 LT -3373 6868 LT -3372 6867 LT -3370 6866 LT -3368 6865 LT -3366 6864 LT -3364 6864 LT -3362 6863 LT -3362 6863 LT -QS -NP -3362 6934 MT -3364 6934 LT -3366 6934 LT -3367 6933 LT -3369 6932 LT -3371 6931 LT -3373 6930 LT -3374 6928 LT -3375 6927 LT -3376 6925 LT -3377 6923 LT -3377 6921 LT -3377 6919 LT -3377 6919 LT -QS -NP -3338 6919 MT -3338 6921 LT -3339 6923 LT -3339 6924 LT -3340 6926 LT -3341 6928 LT -3342 6929 LT -3344 6931 LT -3345 6932 LT -3347 6933 LT -3349 6934 LT -3351 6934 LT -3353 6934 LT -3354 6934 LT -QS -3432 6863 3409 6934 DL -3456 6934 3432 6863 DL -3450 6915 3415 HL -3495 6863 3480 HL -3488 6895 3495 HL -3511 6919 6911 VL -3480 6934 3495 HL -NP -3495 6895 MT -3497 6895 LT -3499 6894 LT -3501 6894 LT -3503 6893 LT -3505 6892 LT -3506 6891 LT -3508 6889 LT -3509 6887 LT -3510 6886 LT -3511 6884 LT -3511 6882 LT -3511 6880 LT -3511 6878 LT -3511 6876 LT -3510 6874 LT -3510 6872 LT -3508 6870 LT -3507 6869 LT -3506 6867 LT -3504 6866 LT -3503 6865 LT -3501 6864 LT -3499 6864 LT -3497 6864 LT -3495 6863 LT -QS -NP -3511 6911 MT -3511 6909 LT -3511 6907 LT -3510 6905 LT -3509 6903 LT -3508 6901 LT -3507 6900 LT -3505 6898 LT -3504 6897 LT -3502 6896 LT -3500 6896 LT -3498 6895 LT -3496 6895 LT -3495 6895 LT -QS -NP -3495 6934 MT -3497 6934 LT -3499 6934 LT -3501 6933 LT -3503 6932 LT -3505 6931 LT -3506 6930 LT -3508 6928 LT -3509 6927 LT -3510 6925 LT -3511 6923 LT -3511 6921 LT -3511 6919 LT -3511 6919 LT -QS -3578 6879 6919 VL -3602 6863 3594 HL -3617 6919 6879 VL -3594 6934 3602 HL -3602 6919 3625 6934 DL -NP -3594 6863 MT -3592 6864 LT -3590 6864 LT -3588 6865 LT -3586 6865 LT -3584 6867 LT -3583 6868 LT -3582 6869 LT -3580 6871 LT -3580 6873 LT -3579 6875 LT -3578 6877 LT -3578 6879 LT -3578 6879 LT -QS -NP -3617 6879 MT -3617 6877 LT -3617 6875 LT -3616 6873 LT -3615 6872 LT -3614 6870 LT -3613 6868 LT -3612 6867 LT -3610 6866 LT -3608 6865 LT -3606 6864 LT -3604 6864 LT -3602 6863 LT -3602 6863 LT -QS -NP -3602 6934 MT -3604 6934 LT -3606 6934 LT -3608 6933 LT -3609 6932 LT -3611 6931 LT -3613 6930 LT -3614 6928 LT -3615 6927 LT -3616 6925 LT -3617 6923 LT -3617 6921 LT -3617 6919 LT -3617 6919 LT -QS -NP -3578 6919 MT -3578 6921 LT -3579 6923 LT -3579 6924 LT -3580 6926 LT -3581 6928 LT -3582 6929 LT -3584 6931 LT -3586 6932 LT -3587 6933 LT -3589 6934 LT -3591 6934 LT -3593 6934 LT -3594 6934 LT -QS -3688 6863 3649 HL -3649 6934 3688 6863 DL -3688 6934 3649 HL -3728 6863 3712 HL -3720 6895 3728 HL -3743 6919 6911 VL -3712 6934 3728 HL -NP -3728 6895 MT -3730 6895 LT -3732 6894 LT -3734 6894 LT -3735 6893 LT -3737 6892 LT -3739 6891 LT -3740 6889 LT -3741 6887 LT -3742 6886 LT -3743 6884 LT -3743 6882 LT -3743 6880 LT -3743 6878 LT -3743 6876 LT -3743 6874 LT -3742 6872 LT -3741 6870 LT -3740 6869 LT -3738 6867 LT -3737 6866 LT -3735 6865 LT -3733 6864 LT -3731 6864 LT -3729 6864 LT -3728 6863 LT -QS -NP -3743 6911 MT -3743 6909 LT -3743 6907 LT -3742 6905 LT -3741 6903 LT -3740 6901 LT -3739 6900 LT -3738 6898 LT -3736 6897 LT -3734 6896 LT -3732 6896 LT -3730 6895 LT -3728 6895 LT -3728 6895 LT -QS -NP -3728 6934 MT -3730 6934 LT -3732 6934 LT -3734 6933 LT -3735 6932 LT -3737 6931 LT -3739 6930 LT -3740 6928 LT -3741 6927 LT -3742 6925 LT -3743 6923 LT -3743 6921 LT -3743 6919 LT -3743 6919 LT -QS -1 4 0 255 0 1 1 PE -63 6934 39 HL -79 6879 6919 VL -39 6863 63 HL -39 6934 6863 VL -NP -63 6934 MT -65 6934 LT -67 6934 LT -69 6933 LT -71 6932 LT -72 6931 LT -74 6930 LT -75 6928 LT -76 6927 LT -77 6925 LT -78 6923 LT -78 6921 LT -79 6919 LT -79 6919 LT -QS -NP -79 6879 MT -79 6877 LT -78 6875 LT -78 6873 LT -77 6872 LT -76 6870 LT -74 6868 LT -73 6867 LT -71 6866 LT -69 6865 LT -68 6864 LT -66 6864 LT -64 6863 LT -63 6863 LT -QS -102 6863 6934 VL -142 6934 102 6863 DL -142 6863 6934 VL -NP -188 6867 MT -187 6866 LT -185 6865 LT -184 6864 LT -182 6863 LT -180 6864 LT -178 6864 LT -176 6865 LT -174 6867 LT -174 6867 LT -QS -NP -174 6867 MT -173 6869 LT -172 6871 LT -171 6872 LT -170 6874 LT -169 6876 LT -168 6878 LT -168 6880 LT -167 6882 LT -167 6883 LT -QS -NP -167 6915 MT -167 6917 LT -168 6919 LT -169 6920 LT -169 6922 LT -170 6924 LT -171 6926 LT -172 6928 LT -173 6929 LT -174 6930 LT -QS -NP -174 6930 MT -175 6932 LT -177 6933 LT -179 6934 LT -181 6934 LT -183 6934 LT -185 6934 LT -186 6933 LT -188 6931 LT -188 6930 LT -QS -NP -188 6930 MT -189 6929 LT -191 6927 LT -191 6925 LT -192 6924 LT -193 6922 LT -194 6920 LT -194 6918 LT -195 6916 LT -195 6915 LT -QS -NP -195 6915 MT -196 6913 LT -196 6911 LT -196 6909 LT -196 6907 LT -197 6905 LT -197 6903 LT -197 6901 LT -197 6899 LT -QS -NP -197 6899 MT -197 6897 LT -197 6895 LT -197 6893 LT -196 6891 LT -196 6889 LT -196 6887 LT -196 6885 LT -195 6883 LT -QS -NP -195 6883 MT -195 6881 LT -194 6879 LT -194 6877 LT -193 6876 LT -192 6874 LT -191 6872 LT -190 6870 LT -189 6869 LT -188 6867 LT -QS -NP -165 6899 MT -165 6901 LT -165 6903 LT -166 6905 LT -166 6907 LT -166 6909 LT -166 6911 LT -167 6913 LT -167 6915 LT -QS -NP -167 6883 MT -167 6885 LT -166 6887 LT -166 6889 LT -166 6891 LT -166 6893 LT -165 6895 LT -165 6897 LT -165 6899 LT -QS -276 6678 6627 VL -315 6627 6678 VL -NP -276 6678 MT -276 6680 LT -276 6682 LT -276 6684 LT -277 6686 LT -278 6688 LT -279 6690 LT -280 6691 LT -282 6693 LT -283 6694 LT -285 6695 LT -287 6696 LT -288 6697 LT -290 6698 LT -292 6698 LT -294 6698 LT -296 6698 LT -298 6698 LT -300 6697 LT -302 6697 LT -304 6696 LT -306 6695 LT -307 6694 LT -309 6693 LT -310 6691 LT -312 6690 LT -313 6688 LT -313 6686 LT -314 6684 LT -315 6682 LT -315 6680 LT -315 6678 LT -QS -339 6627 6698 VL -362 6627 339 HL -378 6651 6643 VL -339 6667 362 HL -NP -378 6643 MT -378 6641 LT -377 6639 LT -377 6637 LT -376 6635 LT -375 6634 LT -374 6632 LT -372 6631 LT -370 6630 LT -369 6629 LT -367 6628 LT -365 6628 LT -363 6627 LT -362 6627 LT -QS -NP -362 6667 MT -364 6667 LT -366 6666 LT -368 6666 LT -370 6665 LT -372 6664 LT -373 6662 LT -374 6661 LT -376 6659 LT -376 6657 LT -377 6656 LT -378 6654 LT -378 6652 LT -378 6651 LT -QS -NP -424 6631 MT -423 6630 LT -422 6628 LT -420 6628 LT -418 6627 LT -416 6627 LT -414 6628 LT -412 6629 LT -411 6630 LT -410 6631 LT -QS -NP -410 6631 MT -409 6633 LT -408 6635 LT -407 6636 LT -406 6638 LT -405 6640 LT -404 6642 LT -404 6644 LT -403 6646 LT -403 6647 LT -QS -NP -403 6678 MT -404 6680 LT -404 6682 LT -405 6684 LT -405 6686 LT -406 6688 LT -407 6690 LT -408 6691 LT -409 6693 LT -410 6694 LT -QS -NP -410 6694 MT -411 6696 LT -413 6697 LT -415 6698 LT -417 6698 LT -419 6698 LT -421 6697 LT -422 6696 LT -424 6695 LT -424 6694 LT -QS -NP -424 6694 MT -426 6693 LT -427 6691 LT -428 6689 LT -429 6687 LT -429 6686 LT -430 6684 LT -431 6682 LT -431 6680 LT -431 6678 LT -QS -NP -431 6678 MT -432 6677 LT -432 6675 LT -432 6673 LT -433 6671 LT -433 6669 LT -433 6667 LT -433 6665 LT -433 6663 LT -QS -NP -433 6663 MT -433 6661 LT -433 6659 LT -433 6657 LT -433 6655 LT -432 6653 LT -432 6651 LT -432 6649 LT -431 6647 LT -QS -NP -431 6647 MT -431 6645 LT -430 6643 LT -430 6641 LT -429 6639 LT -428 6638 LT -427 6636 LT -426 6634 LT -425 6632 LT -424 6631 LT -QS -NP -402 6663 MT -402 6665 LT -402 6667 LT -402 6669 LT -402 6671 LT -402 6673 LT -402 6675 LT -403 6677 LT -403 6678 LT -QS -NP -403 6647 MT -403 6649 LT -402 6651 LT -402 6653 LT -402 6655 LT -402 6657 LT -402 6659 LT -402 6661 LT -402 6663 LT -QS -520 6678 6627 VL -559 6627 6678 VL -NP -520 6678 MT -520 6680 LT -520 6682 LT -521 6684 LT -521 6686 LT -522 6688 LT -523 6690 LT -524 6691 LT -526 6693 LT -527 6694 LT -529 6695 LT -531 6696 LT -533 6697 LT -534 6698 LT -536 6698 LT -538 6698 LT -540 6698 LT -542 6698 LT -544 6697 LT -546 6697 LT -548 6696 LT -550 6695 LT -551 6694 LT -553 6693 LT -554 6691 LT -556 6690 LT -557 6688 LT -557 6686 LT -558 6684 LT -559 6682 LT -559 6680 LT -559 6678 LT -QS -583 6627 6698 VL -606 6627 583 HL -622 6651 6643 VL -583 6667 606 HL -NP -622 6643 MT -622 6641 LT -621 6639 LT -621 6637 LT -620 6635 LT -619 6634 LT -618 6632 LT -616 6631 LT -614 6630 LT -613 6629 LT -611 6628 LT -609 6628 LT -607 6627 LT -606 6627 LT -QS -NP -606 6667 MT -608 6667 LT -610 6666 LT -612 6666 LT -614 6665 LT -616 6664 LT -617 6662 LT -618 6661 LT -620 6659 LT -621 6657 LT -621 6656 LT -622 6654 LT -622 6652 LT -622 6651 LT -QS -661 6627 646 6643 DL -661 6698 6627 VL -543 6934 520 HL -559 6879 6919 VL -520 6863 543 HL -520 6934 6863 VL -NP -543 6934 MT -545 6934 LT -547 6934 LT -549 6933 LT -551 6932 LT -553 6931 LT -554 6930 LT -555 6928 LT -557 6927 LT -558 6925 LT -558 6923 LT -559 6921 LT -559 6919 LT -559 6919 LT -QS -NP -559 6879 MT -559 6877 LT -558 6875 LT -558 6873 LT -557 6872 LT -556 6870 LT -555 6868 LT -553 6867 LT -551 6866 LT -550 6865 LT -548 6864 LT -546 6864 LT -544 6863 LT -543 6863 LT -QS -583 6863 6934 VL -622 6934 583 6863 DL -622 6863 6934 VL -661 6863 646 6879 DL -661 6934 6863 VL -772 6934 748 HL -787 6879 6919 VL -748 6863 772 HL -748 6934 6863 VL -NP -772 6934 MT -774 6934 LT -775 6934 LT -777 6933 LT -779 6932 LT -781 6931 LT -782 6930 LT -784 6928 LT -785 6927 LT -786 6925 LT -787 6923 LT -787 6921 LT -787 6919 LT -787 6919 LT -QS -NP -787 6879 MT -787 6877 LT -787 6875 LT -786 6873 LT -785 6872 LT -784 6870 LT -783 6868 LT -781 6867 LT -780 6866 LT -778 6865 LT -776 6864 LT -774 6864 LT -772 6863 LT -772 6863 LT -QS -811 6863 6934 VL -850 6934 811 6863 DL -850 6863 6934 VL -874 6934 905 HL -904 6882 874 6934 DL -NP -904 6882 MT -905 6880 LT -905 6878 LT -905 6876 LT -905 6875 LT -QS -NP -905 6875 MT -904 6873 LT -903 6872 LT -902 6870 LT -901 6868 LT -900 6867 LT -898 6866 LT -896 6865 LT -894 6864 LT -892 6864 LT -890 6863 LT -888 6864 LT -886 6864 LT -884 6864 LT -883 6865 LT -881 6866 LT -879 6867 LT -878 6869 LT -877 6870 LT -876 6872 LT -875 6874 LT -874 6875 LT -QS -984 6915 6863 VL -1023 6863 6915 VL -NP -984 6915 MT -984 6917 LT -984 6919 LT -985 6921 LT -986 6922 LT -987 6924 LT -988 6926 LT -989 6928 LT -990 6929 LT -992 6930 LT -993 6931 LT -995 6932 LT -997 6933 LT -999 6934 LT -1001 6934 LT -1003 6934 LT -1005 6934 LT -1007 6934 LT -1009 6934 LT -1011 6933 LT -1013 6932 LT -1014 6931 LT -1016 6930 LT -1017 6929 LT -1019 6927 LT -1020 6926 LT -1021 6924 LT -1022 6922 LT -1023 6920 LT -1023 6918 LT -1023 6916 LT -1023 6915 LT -QS -1047 6863 6934 VL -1071 6863 1047 HL -1086 6887 6879 VL -1047 6903 1071 HL -NP -1086 6879 MT -1086 6877 LT -1086 6875 LT -1085 6873 LT -1084 6872 LT -1083 6870 LT -1082 6868 LT -1081 6867 LT -1079 6866 LT -1077 6865 LT -1075 6864 LT -1073 6864 LT -1071 6863 LT -1071 6863 LT -QS -NP -1071 6903 MT -1073 6903 LT -1075 6902 LT -1077 6902 LT -1078 6901 LT -1080 6900 LT -1082 6898 LT -1083 6897 LT -1084 6895 LT -1085 6894 LT -1086 6892 LT -1086 6890 LT -1086 6888 LT -1086 6887 LT -QS -1110 6934 1142 HL -1140 6882 1110 6934 DL -NP -1140 6882 MT -1141 6880 LT -1142 6878 LT -1141 6876 LT -1141 6875 LT -QS -NP -1141 6875 MT -1140 6873 LT -1140 6872 LT -1138 6870 LT -1137 6868 LT -1136 6867 LT -1134 6866 LT -1132 6865 LT -1130 6864 LT -1128 6864 LT -1126 6863 LT -1124 6864 LT -1122 6864 LT -1121 6864 LT -1119 6865 LT -1117 6866 LT -1115 6867 LT -1114 6869 LT -1113 6870 LT -1112 6872 LT -1111 6874 LT -1111 6875 LT -QS -1008 6698 984 HL -1023 6643 6682 VL -984 6627 1008 HL -984 6698 6627 VL -NP -1008 6698 MT -1010 6698 LT -1012 6698 LT -1014 6697 LT -1015 6696 LT -1017 6695 LT -1019 6694 LT -1020 6692 LT -1021 6691 LT -1022 6689 LT -1023 6687 LT -1023 6685 LT -1023 6683 LT -1023 6682 LT -QS -NP -1023 6643 MT -1023 6641 LT -1023 6639 LT -1022 6637 LT -1021 6635 LT -1020 6634 LT -1019 6632 LT -1018 6631 LT -1016 6630 LT -1014 6629 LT -1012 6628 LT -1010 6628 LT -1008 6627 LT -1008 6627 LT -QS -1047 6627 6698 VL -1086 6698 1047 6627 DL -1086 6627 6698 VL -1126 6627 1110 HL -1118 6659 1126 HL -1142 6682 6675 VL -1110 6698 1126 HL -NP -1126 6659 MT -1128 6659 LT -1130 6658 LT -1132 6658 LT -1133 6657 LT -1135 6656 LT -1137 6654 LT -1138 6653 LT -1139 6651 LT -1140 6650 LT -1141 6648 LT -1141 6646 LT -1142 6644 LT -1141 6642 LT -1141 6640 LT -1141 6638 LT -1140 6636 LT -1139 6634 LT -1138 6633 LT -1136 6631 LT -1135 6630 LT -1133 6629 LT -1131 6628 LT -1129 6628 LT -1127 6627 LT -1126 6627 LT -QS -NP -1142 6675 MT -1141 6673 LT -1141 6671 LT -1140 6669 LT -1140 6667 LT -1138 6665 LT -1137 6664 LT -1136 6662 LT -1134 6661 LT -1132 6660 LT -1130 6659 LT -1128 6659 LT -1126 6659 LT -1126 6659 LT -QS -NP -1126 6698 MT -1128 6698 LT -1130 6698 LT -1132 6697 LT -1133 6696 LT -1135 6695 LT -1137 6694 LT -1138 6692 LT -1139 6691 LT -1140 6689 LT -1141 6687 LT -1141 6685 LT -1142 6683 LT -1142 6682 LT -QS -1220 6678 6627 VL -1260 6627 6678 VL -NP -1220 6678 MT -1220 6680 LT -1221 6682 LT -1221 6684 LT -1222 6686 LT -1223 6688 LT -1224 6690 LT -1225 6691 LT -1226 6693 LT -1228 6694 LT -1230 6695 LT -1231 6696 LT -1233 6697 LT -1235 6698 LT -1237 6698 LT -1239 6698 LT -1241 6698 LT -1243 6698 LT -1245 6697 LT -1247 6697 LT -1249 6696 LT -1251 6695 LT -1252 6694 LT -1254 6693 LT -1255 6691 LT -1256 6690 LT -1257 6688 LT -1258 6686 LT -1259 6684 LT -1259 6682 LT -1260 6680 LT -1260 6678 LT -QS -1283 6627 6698 VL -1307 6627 1283 HL -1323 6651 6643 VL -1283 6667 1307 HL -NP -1323 6643 MT -1322 6641 LT -1322 6639 LT -1321 6637 LT -1321 6635 LT -1320 6634 LT -1318 6632 LT -1317 6631 LT -1315 6630 LT -1313 6629 LT -1311 6628 LT -1310 6628 LT -1308 6627 LT -1307 6627 LT -QS -NP -1307 6667 MT -1309 6667 LT -1311 6666 LT -1313 6666 LT -1315 6665 LT -1316 6664 LT -1318 6662 LT -1319 6661 LT -1320 6659 LT -1321 6657 LT -1322 6656 LT -1322 6654 LT -1323 6652 LT -1323 6651 LT -QS -1362 6627 1346 HL -1354 6659 1362 HL -1378 6682 6675 VL -1346 6698 1362 HL -NP -1362 6659 MT -1364 6659 LT -1366 6658 LT -1368 6658 LT -1370 6657 LT -1371 6656 LT -1373 6654 LT -1374 6653 LT -1375 6651 LT -1376 6650 LT -1377 6648 LT -1377 6646 LT -1378 6644 LT -1378 6642 LT -1377 6640 LT -1377 6638 LT -1376 6636 LT -1375 6634 LT -1374 6633 LT -1372 6631 LT -1371 6630 LT -1369 6629 LT -1367 6628 LT -1365 6628 LT -1363 6627 LT -1362 6627 LT -QS -NP -1378 6675 MT -1378 6673 LT -1377 6671 LT -1377 6669 LT -1376 6667 LT -1375 6665 LT -1373 6664 LT -1372 6662 LT -1370 6661 LT -1368 6660 LT -1367 6659 LT -1365 6659 LT -1363 6659 LT -1362 6659 LT -QS -NP -1362 6698 MT -1364 6698 LT -1366 6698 LT -1368 6697 LT -1370 6696 LT -1371 6695 LT -1373 6694 LT -1374 6692 LT -1375 6691 LT -1376 6689 LT -1377 6687 LT -1377 6685 LT -1378 6683 LT -1378 6682 LT -QS -1 4 127 d2 1 1 PE -287 6863 311 HL -272 6919 6879 VL -311 6934 287 HL -311 6895 6934 VL -299 6895 311 HL -NP -287 6863 MT -285 6864 LT -283 6864 LT -281 6865 LT -280 6865 LT -278 6867 LT -276 6868 LT -275 6869 LT -274 6871 LT -273 6873 LT -272 6875 LT -272 6877 LT -272 6879 LT -272 6879 LT -QS -NP -272 6919 MT -272 6921 LT -272 6923 LT -273 6924 LT -274 6926 LT -275 6928 LT -276 6929 LT -277 6931 LT -279 6932 LT -281 6933 LT -283 6934 LT -285 6934 LT -287 6934 LT -287 6934 LT -QS -335 6863 6934 VL -374 6934 335 6863 DL -374 6863 6934 VL -421 6934 398 HL -437 6879 6919 VL -398 6863 421 HL -398 6934 6863 VL -NP -421 6934 MT -423 6934 LT -425 6934 LT -427 6933 LT -429 6932 LT -431 6931 LT -432 6930 LT -433 6928 LT -435 6927 LT -436 6925 LT -436 6923 LT -437 6921 LT -437 6919 LT -437 6919 LT -QS -NP -437 6879 MT -437 6877 LT -436 6875 LT -436 6873 LT -435 6872 LT -434 6870 LT -433 6868 LT -431 6867 LT -429 6866 LT -428 6865 LT -426 6864 LT -424 6864 LT -422 6863 LT -421 6863 LT -QS -760 6627 783 HL -744 6682 6643 VL -783 6698 760 HL -783 6659 6698 VL -772 6659 783 HL -NP -760 6627 MT -758 6627 LT -756 6628 LT -754 6628 LT -752 6629 LT -750 6630 LT -749 6632 LT -747 6633 LT -746 6635 LT -745 6637 LT -745 6638 LT -744 6640 LT -744 6642 LT -744 6643 LT -QS -NP -744 6682 MT -744 6684 LT -744 6686 LT -745 6688 LT -746 6690 LT -747 6692 LT -748 6693 LT -750 6695 LT -751 6696 LT -753 6697 LT -755 6697 LT -757 6698 LT -759 6698 LT -760 6698 LT -QS -807 6627 6698 VL -846 6698 807 6627 DL -846 6627 6698 VL -894 6698 870 HL -909 6643 6682 VL -870 6627 894 HL -870 6698 6627 VL -NP -894 6698 MT -896 6698 LT -898 6698 LT -899 6697 LT -901 6696 LT -903 6695 LT -904 6694 LT -906 6692 LT -907 6691 LT -908 6689 LT -909 6687 LT -909 6685 LT -909 6683 LT -909 6682 LT -QS -NP -909 6643 MT -909 6641 LT -909 6639 LT -908 6637 LT -907 6635 LT -906 6634 LT -905 6632 LT -903 6631 LT -902 6630 LT -900 6629 LT -898 6628 LT -896 6628 LT -894 6627 LT -894 6627 LT -QS -1232 6863 1256 HL -1216 6919 6879 VL -1256 6934 1232 HL -1256 6895 6934 VL -1244 6895 1256 HL -NP -1232 6863 MT -1230 6864 LT -1228 6864 LT -1226 6865 LT -1224 6865 LT -1223 6867 LT -1221 6868 LT -1220 6869 LT -1219 6871 LT -1218 6873 LT -1217 6875 LT -1217 6877 LT -1216 6879 LT -1216 6879 LT -QS -NP -1216 6919 MT -1216 6921 LT -1217 6923 LT -1217 6924 LT -1218 6926 LT -1219 6928 LT -1221 6929 LT -1222 6931 LT -1224 6932 LT -1226 6933 LT -1227 6934 LT -1229 6934 LT -1231 6934 LT -1232 6934 LT -QS -1279 6863 6934 VL -1319 6934 1279 6863 DL -1319 6863 6934 VL -1366 6934 1342 HL -1382 6879 6919 VL -1342 6863 1366 HL -1342 6934 6863 VL -NP -1366 6934 MT -1368 6934 LT -1370 6934 LT -1372 6933 LT -1374 6932 LT -1375 6931 LT -1377 6930 LT -1378 6928 LT -1379 6927 LT -1380 6925 LT -1381 6923 LT -1381 6921 LT -1382 6919 LT -1382 6919 LT -QS -NP -1382 6879 MT -1382 6877 LT -1381 6875 LT -1381 6873 LT -1380 6872 LT -1379 6870 LT -1377 6868 LT -1376 6867 LT -1374 6866 LT -1372 6865 LT -1371 6864 LT -1369 6864 LT -1367 6863 LT -1366 6863 LT -QS -1716 6698 1693 6627 DL -1740 6627 1716 6698 DL -1779 6627 1795 HL -1763 6682 6643 VL -1795 6698 1779 HL -NP -1779 6627 MT -1777 6627 LT -1775 6628 LT -1773 6628 LT -1772 6629 LT -1770 6630 LT -1768 6632 LT -1767 6633 LT -1766 6635 LT -1765 6637 LT -1764 6638 LT -1764 6640 LT -1763 6642 LT -1763 6643 LT -QS -NP -1763 6682 MT -1764 6684 LT -1764 6686 LT -1765 6688 LT -1765 6690 LT -1767 6692 LT -1768 6693 LT -1769 6695 LT -1771 6696 LT -1773 6697 LT -1775 6697 LT -1777 6698 LT -1779 6698 LT -1779 6698 LT -QS -1834 6627 1850 HL -1819 6682 6643 VL -1850 6698 1834 HL -NP -1834 6627 MT -1832 6627 LT -1830 6628 LT -1828 6628 LT -1827 6629 LT -1825 6630 LT -1823 6632 LT -1822 6633 LT -1821 6635 LT -1820 6637 LT -1819 6638 LT -1819 6640 LT -1819 6642 LT -1819 6643 LT -QS -NP -1819 6682 MT -1819 6684 LT -1819 6686 LT -1820 6688 LT -1821 6690 LT -1822 6692 LT -1823 6693 LT -1824 6695 LT -1826 6696 LT -1828 6697 LT -1830 6697 LT -1832 6698 LT -1834 6698 LT -1834 6698 LT -QS -1716 6934 1693 6863 DL -1740 6863 1716 6934 DL -1779 6863 1795 HL -1763 6919 6879 VL -1795 6934 1779 HL -NP -1779 6863 MT -1777 6864 LT -1775 6864 LT -1773 6865 LT -1772 6865 LT -1770 6867 LT -1768 6868 LT -1767 6869 LT -1766 6871 LT -1765 6873 LT -1764 6875 LT -1764 6877 LT -1763 6879 LT -1763 6879 LT -QS -NP -1763 6919 MT -1764 6921 LT -1764 6923 LT -1765 6924 LT -1765 6926 LT -1767 6928 LT -1768 6929 LT -1769 6931 LT -1771 6932 LT -1773 6933 LT -1775 6934 LT -1777 6934 LT -1779 6934 LT -1779 6934 LT -QS -1834 6863 1850 HL -1819 6919 6879 VL -1850 6934 1834 HL -NP -1834 6863 MT -1832 6864 LT -1830 6864 LT -1828 6865 LT -1827 6865 LT -1825 6867 LT -1823 6868 LT -1822 6869 LT -1821 6871 LT -1820 6873 LT -1819 6875 LT -1819 6877 LT -1819 6879 LT -1819 6879 LT -QS -NP -1819 6919 MT -1819 6921 LT -1819 6923 LT -1820 6924 LT -1821 6926 LT -1822 6928 LT -1823 6929 LT -1824 6931 LT -1826 6932 LT -1828 6933 LT -1830 6934 LT -1832 6934 LT -1834 6934 LT -1834 6934 LT -QS -1941 6863 1964 HL -1925 6919 6879 VL -1964 6934 1941 HL -1964 6895 6934 VL -1952 6895 1964 HL -NP -1941 6863 MT -1939 6864 LT -1937 6864 LT -1935 6865 LT -1933 6865 LT -1931 6867 LT -1930 6868 LT -1928 6869 LT -1927 6871 LT -1926 6873 LT -1926 6875 LT -1925 6877 LT -1925 6879 LT -1925 6879 LT -QS -NP -1925 6919 MT -1925 6921 LT -1925 6923 LT -1926 6924 LT -1927 6926 LT -1928 6928 LT -1929 6929 LT -1931 6931 LT -1932 6932 LT -1934 6933 LT -1936 6934 LT -1938 6934 LT -1940 6934 LT -1941 6934 LT -QS -1988 6863 6934 VL -2027 6934 1988 6863 DL -2027 6863 6934 VL -2074 6934 2051 HL -2090 6879 6919 VL -2051 6863 2074 HL -2051 6934 6863 VL -NP -2074 6934 MT -2076 6934 LT -2078 6934 LT -2080 6933 LT -2082 6932 LT -2084 6931 LT -2085 6930 LT -2087 6928 LT -2088 6927 LT -2089 6925 LT -2089 6923 LT -2090 6921 LT -2090 6919 LT -2090 6919 LT -QS -NP -2090 6879 MT -2090 6877 LT -2090 6875 LT -2089 6873 LT -2088 6872 LT -2087 6870 LT -2086 6868 LT -2084 6867 LT -2083 6866 LT -2081 6865 LT -2079 6864 LT -2077 6864 LT -2075 6863 LT -2074 6863 LT -QS -2649 6863 2673 HL -2633 6919 6879 VL -2673 6934 2649 HL -2673 6895 6934 VL -2661 6895 2673 HL -NP -2649 6863 MT -2647 6864 LT -2645 6864 LT -2643 6865 LT -2641 6865 LT -2640 6867 LT -2638 6868 LT -2637 6869 LT -2636 6871 LT -2635 6873 LT -2634 6875 LT -2634 6877 LT -2633 6879 LT -2633 6879 LT -QS -NP -2633 6919 MT -2634 6921 LT -2634 6923 LT -2635 6924 LT -2635 6926 LT -2636 6928 LT -2638 6929 LT -2639 6931 LT -2641 6932 LT -2643 6933 LT -2645 6934 LT -2646 6934 LT -2648 6934 LT -2649 6934 LT -QS -2696 6863 6934 VL -2736 6934 2696 6863 DL -2736 6863 6934 VL -2783 6934 2759 HL -2799 6879 6919 VL -2759 6863 2783 HL -2759 6934 6863 VL -NP -2783 6934 MT -2785 6934 LT -2787 6934 LT -2789 6933 LT -2791 6932 LT -2792 6931 LT -2794 6930 LT -2795 6928 LT -2796 6927 LT -2797 6925 LT -2798 6923 LT -2798 6921 LT -2799 6919 LT -2799 6919 LT -QS -NP -2799 6879 MT -2799 6877 LT -2798 6875 LT -2798 6873 LT -2797 6872 LT -2796 6870 LT -2794 6868 LT -2793 6867 LT -2791 6866 LT -2789 6865 LT -2788 6864 LT -2786 6864 LT -2784 6863 LT -2783 6863 LT -QS -1 4 255 0 0 1 1 PE -2866 6474 6403 VL -2897 6474 2866 HL -2921 6403 2952 HL -2921 6474 6403 VL -2952 6474 2921 HL -2944 6434 2921 HL -2999 6474 2976 HL -3015 6419 6458 VL -2976 6403 2999 HL -2976 6474 6403 VL -NP -2999 6474 MT -3001 6474 LT -3003 6473 LT -3005 6473 LT -3007 6472 LT -3009 6471 LT -3010 6469 LT -3012 6468 LT -3013 6466 LT -3014 6465 LT -3015 6463 LT -3015 6461 LT -3015 6459 LT -3015 6458 LT -QS -NP -3015 6419 MT -3015 6417 LT -3015 6415 LT -3014 6413 LT -3013 6411 LT -3012 6409 LT -3011 6408 LT -3009 6406 LT -3008 6405 LT -3006 6404 LT -3004 6404 LT -3002 6403 LT -3000 6403 LT -2999 6403 LT -QS -1 4 B 1 1 PE -3121 6545 3070 HL -3198 6545 3147 HL -3274 6545 3223 HL -3351 6545 3300 HL -3427 6545 3376 HL -3504 6545 3453 HL -3580 6545 3529 HL -3657 6545 3606 HL -3734 6545 3683 HL -3779 6545 3759 HL -1 4 B 1 1 PE -2834 5415 5364 VL -2834 5491 5440 VL -2834 5568 5517 VL -2834 5644 5593 VL -2834 5721 5670 VL -2834 5797 5746 VL -2834 5874 5823 VL -2834 5950 5899 VL -2834 6027 5976 VL -2834 6103 6052 VL -2834 6180 6129 VL -2834 6257 6205 VL -2834 6308 6282 VL -0 6190 472 HL -472 5009 0 HL -472 6190 5009 VL -0 5482 5009 VL -0 6190 5718 VL -1 4 0 0 255 1 1 PE -67 5163 5092 VL -91 5092 5163 VL -130 5163 91 5092 DL -130 5092 5163 VL -169 5092 154 5108 DL -169 5163 5092 VL -59 5399 5328 VL -83 5328 5399 VL -122 5399 83 5328 DL -122 5328 5399 VL -146 5399 177 HL -176 5347 146 5399 DL -NP -176 5347 MT -177 5345 LT -177 5343 LT -177 5341 LT -177 5340 LT -QS -NP -177 5340 MT -176 5338 LT -175 5336 LT -174 5335 LT -173 5333 LT -171 5332 LT -170 5331 LT -168 5330 LT -166 5329 LT -164 5329 LT -162 5328 LT -160 5328 LT -158 5329 LT -156 5329 LT -154 5330 LT -153 5331 LT -151 5332 LT -150 5334 LT -148 5335 LT -147 5337 LT -147 5339 LT -146 5340 LT -QS -59 5635 5564 VL -83 5564 5635 VL -122 5635 83 5564 DL -122 5564 5635 VL -161 5564 146 HL -154 5596 161 HL -177 5620 5612 VL -146 5635 161 HL -NP -161 5596 MT -163 5596 LT -165 5595 LT -167 5595 LT -169 5594 LT -171 5593 LT -172 5592 LT -174 5590 LT -175 5588 LT -176 5587 LT -176 5585 LT -177 5583 LT -177 5581 LT -177 5579 LT -177 5577 LT -176 5575 LT -175 5573 LT -174 5571 LT -173 5570 LT -172 5568 LT -170 5567 LT -168 5566 LT -167 5565 LT -165 5565 LT -163 5565 LT -161 5564 LT -QS -NP -177 5612 MT -177 5610 LT -177 5608 LT -176 5606 LT -175 5604 LT -174 5602 LT -173 5601 LT -171 5599 LT -170 5598 LT -168 5597 LT -166 5597 LT -164 5596 LT -162 5596 LT -161 5596 LT -QS -NP -161 5635 MT -163 5635 LT -165 5635 LT -167 5634 LT -169 5633 LT -171 5632 LT -172 5631 LT -174 5629 LT -175 5628 LT -176 5626 LT -176 5624 LT -177 5622 LT -177 5620 LT -177 5620 LT -QS -291 5635 5564 VL -315 5564 5635 VL -354 5635 315 5564 DL -354 5564 5635 VL -405 5604 5635 VL -378 5620 417 HL -394 5564 378 5620 DL -59 5872 5801 VL -83 5801 5872 VL -122 5872 83 5801 DL -122 5801 5872 VL -146 5801 177 HL -146 5832 5801 VL -161 5832 146 HL -177 5856 5848 VL -146 5872 161 HL -NP -177 5848 MT -177 5846 LT -177 5844 LT -176 5842 LT -175 5840 LT -174 5839 LT -173 5837 LT -171 5836 LT -170 5835 LT -168 5834 LT -166 5833 LT -164 5832 LT -162 5832 LT -161 5832 LT -QS -NP -161 5872 MT -163 5871 LT -165 5871 LT -167 5870 LT -169 5870 LT -171 5868 LT -172 5867 LT -174 5866 LT -175 5864 LT -176 5862 LT -176 5860 LT -177 5858 LT -177 5856 LT -177 5856 LT -QS -295 5872 5801 VL -319 5801 5872 VL -358 5872 319 5801 DL -358 5801 5872 VL -382 5856 5842 VL -413 5848 5856 VL -383 5832 398 HL -NP -405 5801 MT -404 5802 LT -402 5803 LT -400 5804 LT -399 5805 LT -397 5807 LT -396 5808 LT -395 5809 LT -393 5811 LT -392 5812 LT -391 5814 LT -390 5816 LT -389 5817 LT -388 5819 LT -387 5821 LT -386 5823 LT -385 5825 LT -384 5826 LT -384 5828 LT -383 5830 LT -383 5832 LT -382 5834 LT -382 5836 LT -382 5838 LT -382 5840 LT -382 5842 LT -QS -NP -382 5856 MT -382 5858 LT -382 5860 LT -383 5862 LT -384 5863 LT -385 5865 LT -386 5867 LT -388 5868 LT -389 5869 LT -391 5870 LT -393 5871 LT -395 5871 LT -397 5872 LT -399 5871 LT -401 5871 LT -403 5871 LT -405 5870 LT -406 5869 LT -408 5868 LT -409 5866 LT -411 5865 LT -412 5863 LT -412 5861 LT -413 5859 LT -413 5857 LT -413 5856 LT -QS -NP -413 5848 MT -413 5846 LT -413 5844 LT -412 5842 LT -411 5840 LT -410 5839 LT -409 5837 LT -407 5836 LT -406 5835 LT -404 5834 LT -402 5833 LT -400 5832 LT -398 5832 LT -398 5832 LT -QS -59 6108 6037 VL -83 6037 6108 VL -122 6108 83 6037 DL -122 6037 6108 VL -177 6037 146 HL -157 6108 177 6037 DL -177 6068 161 HL -1 4 127 d2 1 1 PE -287 5092 311 HL -272 5147 5108 VL -311 5163 287 HL -311 5124 5163 VL -299 5124 311 HL -NP -287 5092 MT -285 5092 LT -283 5093 LT -281 5093 LT -280 5094 LT -278 5095 LT -276 5097 LT -275 5098 LT -274 5100 LT -273 5101 LT -272 5103 LT -272 5105 LT -272 5107 LT -272 5108 LT -QS -NP -272 5147 MT -272 5149 LT -272 5151 LT -273 5153 LT -274 5155 LT -275 5157 LT -276 5158 LT -277 5160 LT -279 5161 LT -281 5162 LT -283 5162 LT -285 5163 LT -287 5163 LT -287 5163 LT -QS -335 5092 5163 VL -374 5163 335 5092 DL -374 5092 5163 VL -421 5163 398 HL -437 5108 5147 VL -398 5092 421 HL -398 5163 5092 VL -NP -421 5163 MT -423 5163 LT -425 5162 LT -427 5162 LT -429 5161 LT -431 5160 LT -432 5159 LT -433 5157 LT -435 5156 LT -436 5154 LT -436 5152 LT -437 5150 LT -437 5148 LT -437 5147 LT -QS -NP -437 5108 MT -437 5106 LT -436 5104 LT -436 5102 LT -435 5100 LT -434 5099 LT -433 5097 LT -431 5096 LT -429 5094 LT -428 5094 LT -426 5093 LT -424 5092 LT -422 5092 LT -421 5092 LT -QS -299 5399 276 5328 DL -323 5328 299 5399 DL -362 5328 378 HL -346 5383 5344 VL -378 5399 362 HL -NP -362 5328 MT -360 5328 LT -358 5329 LT -356 5329 LT -354 5330 LT -353 5331 LT -351 5333 LT -350 5334 LT -349 5336 LT -348 5338 LT -347 5339 LT -347 5341 LT -346 5343 LT -346 5344 LT -QS -NP -346 5383 MT -347 5385 LT -347 5387 LT -348 5389 LT -348 5391 LT -349 5393 LT -351 5394 LT -352 5396 LT -354 5397 LT -356 5398 LT -358 5398 LT -359 5399 LT -361 5399 LT -362 5399 LT -QS -417 5328 433 HL -402 5383 5344 VL -433 5399 417 HL -NP -417 5328 MT -415 5328 LT -413 5329 LT -411 5329 LT -410 5330 LT -408 5331 LT -406 5333 LT -405 5334 LT -404 5336 LT -403 5338 LT -402 5339 LT -402 5341 LT -402 5343 LT -402 5344 LT -QS -NP -402 5383 MT -402 5385 LT -402 5387 LT -403 5389 LT -404 5391 LT -405 5393 LT -406 5394 LT -407 5396 LT -409 5397 LT -411 5398 LT -413 5398 LT -415 5399 LT -417 5399 LT -417 5399 LT -QS -287 6037 311 HL -272 6092 6053 VL -311 6108 287 HL -311 6068 6108 VL -299 6068 311 HL -NP -287 6037 MT -285 6037 LT -283 6037 LT -281 6038 LT -280 6039 LT -278 6040 LT -276 6041 LT -275 6043 LT -274 6044 LT -273 6046 LT -272 6048 LT -272 6050 LT -272 6052 LT -272 6053 LT -QS -NP -272 6092 MT -272 6094 LT -272 6096 LT -273 6098 LT -274 6100 LT -275 6101 LT -276 6103 LT -277 6104 LT -279 6105 LT -281 6106 LT -283 6107 LT -285 6107 LT -287 6108 LT -287 6108 LT -QS -335 6037 6108 VL -374 6108 335 6037 DL -374 6037 6108 VL -421 6108 398 HL -437 6053 6092 VL -398 6037 421 HL -398 6108 6037 VL -NP -421 6108 MT -423 6108 LT -425 6107 LT -427 6107 LT -429 6106 LT -431 6105 LT -432 6103 LT -433 6102 LT -435 6100 LT -436 6098 LT -436 6097 LT -437 6095 LT -437 6093 LT -437 6092 LT -QS -NP -437 6053 MT -437 6051 LT -436 6049 LT -436 6047 LT -435 6045 LT -434 6043 LT -433 6042 LT -431 6040 LT -429 6039 LT -428 6038 LT -426 6038 LT -424 6037 LT -422 6037 LT -421 6037 LT -QS -1 4 B 1 1 PE -760 5364 709 HL -836 5364 785 HL -913 5364 862 HL -989 5364 938 HL -1066 5364 1015 HL -1142 5364 1091 HL -1219 5364 1168 HL -1295 5364 1244 HL -1372 5364 1321 HL -1448 5364 1397 HL -1525 5364 1474 HL -1601 5364 1550 HL -1678 5364 1627 HL -1754 5364 1703 HL -1831 5364 1780 HL -1907 5364 1856 HL -1984 5364 1933 HL -2060 5364 2009 HL -2137 5364 2086 HL -2213 5364 2162 HL -2290 5364 2239 HL -2367 5364 2315 HL -2443 5364 2392 HL -2520 5364 2469 HL -2596 5364 2545 HL -2673 5364 2622 HL -2749 5364 2698 HL -2826 5364 2775 HL -1 4 B 1 1 PE -709 6257 6308 VL -709 6181 6232 VL -709 6104 6155 VL -709 6028 6079 VL -709 5951 6002 VL -709 5875 5926 VL -709 5798 5849 VL -709 5722 5773 VL -709 5645 5696 VL -709 5569 5620 VL -709 5492 5543 VL -709 5416 5467 VL -709 5364 5390 VL -1 4 B 1 1 PE -2783 6308 2834 HL -2707 6308 2758 HL -2630 6308 2681 HL -2554 6308 2605 HL -2477 6308 2528 HL -2401 6308 2452 HL -2324 6308 2375 HL -2247 6308 2298 HL -2171 6308 2222 HL -2094 6308 2145 HL -2018 6308 2069 HL -1941 6308 1992 HL -1865 6308 1916 HL -1788 6308 1839 HL -1712 6308 1763 HL -1635 6308 1686 HL -1559 6308 1610 HL -1482 6308 1533 HL -1406 6308 1457 HL -1329 6308 1380 HL -1253 6308 1304 HL -1176 6308 1227 HL -1100 6308 1151 HL -1023 6308 1074 HL -947 6308 998 HL -870 6308 921 HL -794 6308 845 HL -717 6308 768 HL -1 4 0 255 0 1 1 PE -3329 5702 5734 VL -3349 5688 3343 HL -3362 5734 5702 VL -3343 5748 3349 HL -NP -3343 5688 MT -3341 5689 LT -3339 5689 LT -3337 5690 LT -3335 5691 LT -3333 5692 LT -3332 5694 LT -3331 5695 LT -3330 5697 LT -3330 5699 LT -3329 5701 LT -3329 5702 LT -QS -NP -3362 5702 MT -3362 5700 LT -3362 5698 LT -3361 5696 LT -3360 5694 LT -3359 5693 LT -3357 5691 LT -3355 5690 LT -3354 5689 LT -3352 5689 LT -3350 5689 LT -3349 5688 LT -QS -NP -3349 5748 MT -3351 5747 LT -3353 5747 LT -3355 5746 LT -3357 5745 LT -3358 5744 LT -3360 5742 LT -3361 5741 LT -3361 5739 LT -3362 5737 LT -3362 5735 LT -3362 5734 LT -QS -NP -3329 5734 MT -3330 5736 LT -3330 5738 LT -3331 5740 LT -3332 5742 LT -3333 5744 LT -3335 5745 LT -3336 5746 LT -3338 5747 LT -3340 5747 LT -3342 5748 LT -3343 5748 LT -QS -3382 5731 5688 VL -3415 5688 5731 VL -NP -3382 5731 MT -3382 5733 LT -3382 5735 LT -3383 5737 LT -3384 5739 LT -3385 5741 LT -3386 5742 LT -3388 5744 LT -3389 5745 LT -3391 5746 LT -3393 5747 LT -3395 5747 LT -3397 5747 LT -3399 5748 LT -3401 5747 LT -3403 5747 LT -3405 5746 LT -3406 5745 LT -3408 5744 LT -3410 5743 LT -3411 5742 LT -3412 5740 LT -3413 5738 LT -3414 5736 LT -3414 5735 LT -3415 5733 LT -3415 5731 LT -QS -3474 5688 3434 HL -3454 5748 5688 VL -3493 5734 5728 VL -3520 5728 5734 VL -3495 5703 5700 VL -3518 5700 5703 VL -NP -3493 5734 MT -3494 5736 LT -3494 5738 LT -3495 5740 LT -3496 5742 LT -3497 5744 LT -3499 5745 LT -3500 5746 LT -3502 5747 LT -3504 5747 LT -3506 5748 LT -3508 5747 LT -3510 5747 LT -3512 5746 LT -3514 5745 LT -3515 5744 LT -3517 5743 LT -3518 5741 LT -3519 5739 LT -3519 5737 LT -3520 5735 LT -3520 5734 LT -QS -NP -3520 5728 MT -3520 5726 LT -3519 5724 LT -3518 5722 LT -3517 5720 LT -3516 5719 LT -3515 5717 LT -3513 5716 LT -3511 5716 LT -3509 5715 LT -3507 5715 LT -3505 5715 LT -3503 5715 LT -3501 5716 LT -3500 5717 LT -3498 5718 LT -3497 5719 LT -3495 5721 LT -3494 5723 LT -3494 5725 LT -3494 5727 LT -3493 5728 LT -QS -NP -3495 5703 MT -3495 5705 LT -3496 5707 LT -3497 5709 LT -3498 5711 LT -3499 5712 LT -3501 5713 LT -3503 5714 LT -3505 5715 LT -3507 5715 LT -3509 5715 LT -3511 5714 LT -3512 5713 LT -3514 5712 LT -3515 5711 LT -3517 5709 LT -3517 5707 LT -3518 5705 LT -3518 5703 LT -QS -NP -3518 5700 MT -3518 5698 LT -3517 5696 LT -3517 5694 LT -3515 5693 LT -3514 5691 LT -3512 5690 LT -3510 5689 LT -3509 5689 LT -3507 5688 LT -3505 5689 LT -3503 5689 LT -3501 5690 LT -3499 5691 LT -3498 5693 LT -3497 5694 LT -3496 5696 LT -3495 5698 LT -3495 5700 LT -QS -3566 5702 5734 VL -3585 5688 3579 HL -3598 5734 5702 VL -3579 5748 3585 HL -NP -3579 5688 MT -3577 5689 LT -3575 5689 LT -3573 5690 LT -3571 5691 LT -3570 5692 LT -3568 5694 LT -3567 5695 LT -3566 5697 LT -3566 5699 LT -3566 5701 LT -3566 5702 LT -QS -NP -3598 5702 MT -3598 5700 LT -3598 5698 LT -3597 5696 LT -3596 5694 LT -3595 5693 LT -3593 5691 LT -3592 5690 LT -3590 5689 LT -3588 5689 LT -3586 5689 LT -3585 5688 LT -QS -NP -3585 5748 MT -3587 5747 LT -3589 5747 LT -3591 5746 LT -3593 5745 LT -3594 5744 LT -3596 5742 LT -3597 5741 LT -3598 5739 LT -3598 5737 LT -3598 5735 LT -3598 5734 LT -QS -NP -3566 5734 MT -3566 5736 LT -3566 5738 LT -3567 5740 LT -3568 5742 LT -3569 5744 LT -3571 5745 LT -3572 5746 LT -3574 5747 LT -3576 5747 LT -3578 5748 LT -3579 5748 LT -QS -3618 5731 5688 VL -3651 5688 5731 VL -NP -3618 5731 MT -3618 5733 LT -3619 5735 LT -3619 5737 LT -3620 5739 LT -3621 5741 LT -3622 5742 LT -3624 5744 LT -3625 5745 LT -3627 5746 LT -3629 5747 LT -3631 5747 LT -3633 5747 LT -3635 5748 LT -3637 5747 LT -3639 5747 LT -3641 5746 LT -3642 5745 LT -3644 5744 LT -3646 5743 LT -3647 5742 LT -3648 5740 LT -3649 5738 LT -3650 5736 LT -3651 5735 LT -3651 5733 LT -3651 5731 LT -QS -3710 5688 3671 HL -3690 5748 5688 VL -3756 5702 5713 VL -3730 5708 5702 VL -3755 5721 3743 HL -NP -3736 5748 MT -3738 5746 LT -3740 5745 LT -3741 5744 LT -3743 5743 LT -3744 5741 LT -3746 5740 LT -3747 5739 LT -3748 5737 LT -3749 5735 LT -3750 5734 LT -3751 5732 LT -3752 5730 LT -3753 5728 LT -3754 5726 LT -3754 5725 LT -3755 5723 LT -3755 5721 LT -3756 5719 LT -3756 5717 LT -3756 5715 LT -3756 5713 LT -QS -NP -3756 5702 MT -3756 5700 LT -3755 5698 LT -3755 5696 LT -3754 5694 LT -3752 5693 LT -3751 5691 LT -3749 5690 LT -3747 5689 LT -3745 5689 LT -3743 5689 LT -3741 5689 LT -3739 5689 LT -3737 5690 LT -3736 5691 LT -3734 5692 LT -3733 5693 LT -3732 5695 LT -3731 5697 LT -3730 5699 LT -3730 5701 LT -3730 5702 LT -QS -NP -3730 5708 MT -3730 5710 LT -3730 5712 LT -3731 5714 LT -3732 5716 LT -3733 5717 LT -3735 5719 LT -3736 5720 LT -3738 5721 LT -3740 5721 LT -3742 5721 LT -3743 5721 LT -QS -3329 5938 5971 VL -3349 5925 3343 HL -3362 5971 5938 VL -3343 5984 3349 HL -NP -3343 5925 MT -3341 5925 LT -3339 5925 LT -3337 5926 LT -3335 5927 LT -3334 5928 LT -3332 5930 LT -3331 5932 LT -3330 5933 LT -3330 5935 LT -3329 5937 LT -3329 5938 LT -QS -NP -3362 5938 MT -3362 5936 LT -3362 5934 LT -3361 5932 LT -3360 5930 LT -3359 5929 LT -3357 5927 LT -3355 5926 LT -3354 5925 LT -3352 5925 LT -3350 5925 LT -3349 5925 LT -QS -NP -3349 5984 MT -3351 5984 LT -3353 5983 LT -3355 5982 LT -3357 5981 LT -3358 5980 LT -3360 5979 LT -3361 5977 LT -3361 5975 LT -3362 5973 LT -3362 5971 LT -3362 5971 LT -QS -NP -3329 5971 MT -3330 5973 LT -3330 5975 LT -3331 5976 LT -3332 5978 LT -3333 5980 LT -3335 5981 LT -3336 5982 LT -3338 5983 LT -3340 5983 LT -3342 5984 LT -3343 5984 LT -QS -3382 5967 5925 VL -3415 5925 5967 VL -NP -3382 5967 MT -3382 5969 LT -3382 5971 LT -3383 5973 LT -3384 5975 LT -3385 5977 LT -3386 5978 LT -3388 5980 LT -3389 5981 LT -3391 5982 LT -3393 5983 LT -3395 5983 LT -3397 5984 LT -3399 5984 LT -3401 5984 LT -3403 5983 LT -3405 5983 LT -3406 5982 LT -3408 5981 LT -3410 5979 LT -3411 5978 LT -3412 5976 LT -3413 5974 LT -3414 5973 LT -3414 5971 LT -3415 5969 LT -3415 5967 LT -QS -3474 5925 3434 HL -3454 5984 5925 VL -3493 5971 5959 VL -3520 5964 5971 VL -3494 5951 3507 HL -NP -3513 5925 MT -3511 5926 LT -3510 5927 LT -3508 5928 LT -3507 5929 LT -3505 5931 LT -3504 5932 LT -3503 5934 LT -3501 5935 LT -3500 5937 LT -3499 5939 LT -3498 5940 LT -3497 5942 LT -3496 5944 LT -3496 5946 LT -3495 5948 LT -3495 5950 LT -3494 5952 LT -3494 5954 LT -3494 5956 LT -3493 5958 LT -3493 5959 LT -QS -NP -3493 5971 MT -3494 5973 LT -3494 5975 LT -3495 5976 LT -3496 5978 LT -3497 5980 LT -3499 5981 LT -3500 5982 LT -3502 5983 LT -3504 5983 LT -3506 5984 LT -3508 5984 LT -3510 5983 LT -3512 5983 LT -3514 5982 LT -3515 5980 LT -3517 5979 LT -3518 5977 LT -3519 5976 LT -3519 5974 LT -3520 5972 LT -3520 5971 LT -QS -NP -3520 5964 MT -3520 5962 LT -3519 5960 LT -3518 5958 LT -3517 5956 LT -3516 5955 LT -3515 5954 LT -3513 5953 LT -3511 5952 LT -3509 5951 LT -3507 5951 LT -3507 5951 LT -QS -3566 5938 5971 VL -3585 5925 3579 HL -3598 5971 5938 VL -3579 5984 3585 HL -NP -3579 5925 MT -3577 5925 LT -3575 5925 LT -3573 5926 LT -3571 5927 LT -3570 5928 LT -3568 5930 LT -3567 5932 LT -3566 5933 LT -3566 5935 LT -3566 5937 LT -3566 5938 LT -QS -NP -3598 5938 MT -3598 5936 LT -3598 5934 LT -3597 5932 LT -3596 5930 LT -3595 5929 LT -3593 5927 LT -3592 5926 LT -3590 5925 LT -3588 5925 LT -3586 5925 LT -3585 5925 LT -QS -NP -3585 5984 MT -3587 5984 LT -3589 5983 LT -3591 5982 LT -3593 5981 LT -3594 5980 LT -3596 5979 LT -3597 5977 LT -3598 5975 LT -3598 5973 LT -3598 5971 LT -3598 5971 LT -QS -NP -3566 5971 MT -3566 5973 LT -3566 5975 LT -3567 5976 LT -3568 5978 LT -3569 5980 LT -3571 5981 LT -3572 5982 LT -3574 5983 LT -3576 5983 LT -3578 5984 LT -3579 5984 LT -QS -3618 5967 5925 VL -3651 5925 5967 VL -NP -3618 5967 MT -3618 5969 LT -3619 5971 LT -3619 5973 LT -3620 5975 LT -3621 5977 LT -3622 5978 LT -3624 5980 LT -3625 5981 LT -3627 5982 LT -3629 5983 LT -3631 5983 LT -3633 5984 LT -3635 5984 LT -3637 5984 LT -3639 5983 LT -3641 5983 LT -3642 5982 LT -3644 5981 LT -3646 5979 LT -3647 5978 LT -3648 5976 LT -3649 5974 LT -3650 5973 LT -3651 5971 LT -3651 5969 LT -3651 5967 LT -QS -3710 5925 3671 HL -3690 5984 5925 VL -3756 5925 3730 HL -3740 5984 3756 5925 DL -3756 5951 3743 HL -3326 6174 6207 VL -3346 6161 3339 HL -3359 6207 6174 VL -3339 6220 3346 HL -NP -3339 6161 MT -3337 6161 LT -3335 6161 LT -3333 6162 LT -3332 6163 LT -3330 6165 LT -3329 6166 LT -3328 6168 LT -3327 6170 LT -3326 6171 LT -3326 6173 LT -3326 6174 LT -QS -NP -3359 6174 MT -3359 6172 LT -3358 6170 LT -3358 6168 LT -3357 6166 LT -3355 6165 LT -3354 6164 LT -3352 6162 LT -3350 6162 LT -3348 6161 LT -3346 6161 LT -3346 6161 LT -QS -NP -3346 6220 MT -3348 6220 LT -3350 6219 LT -3352 6219 LT -3353 6218 LT -3355 6216 LT -3356 6215 LT -3357 6213 LT -3358 6211 LT -3359 6209 LT -3359 6207 LT -3359 6207 LT -QS -NP -3326 6207 MT -3326 6209 LT -3327 6211 LT -3328 6213 LT -3329 6214 LT -3330 6216 LT -3331 6217 LT -3333 6218 LT -3335 6219 LT -3337 6220 LT -3339 6220 LT -3339 6220 LT -QS -3379 6203 6161 VL -3411 6161 6203 VL -NP -3379 6203 MT -3379 6205 LT -3379 6207 LT -3380 6209 LT -3381 6211 LT -3382 6213 LT -3383 6214 LT -3384 6216 LT -3386 6217 LT -3388 6218 LT -3389 6219 LT -3391 6219 LT -3393 6220 LT -3395 6220 LT -3397 6220 LT -3399 6219 LT -3401 6219 LT -3403 6218 LT -3405 6217 LT -3406 6215 LT -3408 6214 LT -3409 6212 LT -3410 6211 LT -3411 6209 LT -3411 6207 LT -3411 6205 LT -3411 6203 LT -QS -3471 6161 3431 HL -3451 6220 6161 VL -3513 6194 6220 VL -3490 6207 3523 HL -3503 6161 3490 6207 DL -3566 6174 6207 VL -3585 6161 3579 HL -3598 6207 6174 VL -3579 6220 3585 HL -NP -3579 6161 MT -3577 6161 LT -3575 6161 LT -3573 6162 LT -3571 6163 LT -3570 6165 LT -3568 6166 LT -3567 6168 LT -3566 6170 LT -3566 6171 LT -3566 6173 LT -3566 6174 LT -QS -NP -3598 6174 MT -3598 6172 LT -3598 6170 LT -3597 6168 LT -3596 6166 LT -3595 6165 LT -3593 6164 LT -3592 6162 LT -3590 6162 LT -3588 6161 LT -3586 6161 LT -3585 6161 LT -QS -NP -3585 6220 MT -3587 6220 LT -3589 6219 LT -3591 6219 LT -3593 6218 LT -3594 6216 LT -3596 6215 LT -3597 6213 LT -3598 6211 LT -3598 6209 LT -3598 6207 LT -3598 6207 LT -QS -NP -3566 6207 MT -3566 6209 LT -3566 6211 LT -3567 6213 LT -3568 6214 LT -3569 6216 LT -3571 6217 LT -3572 6218 LT -3574 6219 LT -3576 6220 LT -3578 6220 LT -3579 6220 LT -QS -3618 6203 6161 VL -3651 6161 6203 VL -NP -3618 6203 MT -3618 6205 LT -3619 6207 LT -3619 6209 LT -3620 6211 LT -3621 6213 LT -3622 6214 LT -3624 6216 LT -3625 6217 LT -3627 6218 LT -3629 6219 LT -3631 6219 LT -3633 6220 LT -3635 6220 LT -3637 6220 LT -3639 6219 LT -3641 6219 LT -3642 6218 LT -3644 6217 LT -3646 6215 LT -3647 6214 LT -3648 6212 LT -3649 6211 LT -3650 6209 LT -3651 6207 LT -3651 6205 LT -3651 6203 LT -QS -3710 6161 3671 HL -3690 6220 6161 VL -3730 6161 3756 HL -3730 6187 6161 VL -3743 6187 3730 HL -3756 6207 6200 VL -3730 6220 3743 HL -NP -3756 6200 MT -3756 6198 LT -3755 6196 LT -3755 6194 LT -3754 6193 LT -3752 6191 LT -3751 6190 LT -3749 6189 LT -3747 6188 LT -3745 6187 LT -3743 6187 LT -3743 6187 LT -QS -NP -3743 6220 MT -3745 6220 LT -3747 6219 LT -3749 6219 LT -3750 6218 LT -3752 6216 LT -3753 6215 LT -3754 6213 LT -3755 6211 LT -3756 6209 LT -3756 6207 LT -3756 6207 LT -QS -3329 6410 6443 VL -3349 6397 3343 HL -3362 6443 6410 VL -3343 6456 3349 HL -NP -3343 6397 MT -3341 6397 LT -3339 6398 LT -3337 6398 LT -3335 6399 LT -3334 6401 LT -3332 6402 LT -3331 6404 LT -3330 6406 LT -3330 6408 LT -3329 6410 LT -3329 6410 LT -QS -NP -3362 6410 MT -3362 6408 LT -3362 6406 LT -3361 6404 LT -3360 6403 LT -3359 6401 LT -3357 6400 LT -3355 6399 LT -3354 6398 LT -3352 6397 LT -3350 6397 LT -3349 6397 LT -QS -NP -3349 6456 MT -3351 6456 LT -3353 6455 LT -3355 6455 LT -3357 6454 LT -3358 6452 LT -3360 6451 LT -3361 6449 LT -3361 6447 LT -3362 6445 LT -3362 6443 LT -3362 6443 LT -QS -NP -3329 6443 MT -3330 6445 LT -3330 6447 LT -3331 6449 LT -3332 6450 LT -3333 6452 LT -3335 6453 LT -3336 6454 LT -3338 6455 LT -3340 6456 LT -3342 6456 LT -3343 6456 LT -QS -3382 6440 6397 VL -3415 6397 6440 VL -NP -3382 6440 MT -3382 6442 LT -3382 6444 LT -3383 6446 LT -3384 6447 LT -3385 6449 LT -3386 6451 LT -3388 6452 LT -3389 6453 LT -3391 6454 LT -3393 6455 LT -3395 6456 LT -3397 6456 LT -3399 6456 LT -3401 6456 LT -3403 6456 LT -3405 6455 LT -3406 6454 LT -3408 6453 LT -3410 6452 LT -3411 6450 LT -3412 6449 LT -3413 6447 LT -3414 6445 LT -3414 6443 LT -3415 6441 LT -3415 6440 LT -QS -3474 6397 3434 HL -3454 6456 6397 VL -3493 6456 3520 HL -3519 6412 3493 6456 DL -NP -3519 6412 MT -3520 6411 LT -3520 6409 LT -3519 6407 LT -QS -NP -3519 6407 MT -3519 6405 LT -3518 6403 LT -3517 6402 LT -3515 6400 LT -3513 6399 LT -3512 6398 LT -3510 6397 LT -3508 6397 LT -3506 6397 LT -3504 6397 LT -3502 6398 LT -3500 6399 LT -3498 6400 LT -3497 6401 LT -3496 6403 LT -3495 6405 LT -3494 6406 LT -3494 6407 LT -QS -3566 6410 6443 VL -3585 6397 3579 HL -3598 6443 6410 VL -3579 6456 3585 HL -NP -3579 6397 MT -3577 6397 LT -3575 6398 LT -3573 6398 LT -3571 6399 LT -3570 6401 LT -3568 6402 LT -3567 6404 LT -3566 6406 LT -3566 6408 LT -3566 6410 LT -3566 6410 LT -QS -NP -3598 6410 MT -3598 6408 LT -3598 6406 LT -3597 6404 LT -3596 6403 LT -3595 6401 LT -3593 6400 LT -3592 6399 LT -3590 6398 LT -3588 6397 LT -3586 6397 LT -3585 6397 LT -QS -NP -3585 6456 MT -3587 6456 LT -3589 6455 LT -3591 6455 LT -3593 6454 LT -3594 6452 LT -3596 6451 LT -3597 6449 LT -3598 6447 LT -3598 6445 LT -3598 6443 LT -3598 6443 LT -QS -NP -3566 6443 MT -3566 6445 LT -3566 6447 LT -3567 6449 LT -3568 6450 LT -3569 6452 LT -3571 6453 LT -3572 6454 LT -3574 6455 LT -3576 6456 LT -3578 6456 LT -3579 6456 LT -QS -3618 6440 6397 VL -3651 6397 6440 VL -NP -3618 6440 MT -3618 6442 LT -3619 6444 LT -3619 6446 LT -3620 6447 LT -3621 6449 LT -3622 6451 LT -3624 6452 LT -3625 6453 LT -3627 6454 LT -3629 6455 LT -3631 6456 LT -3633 6456 LT -3635 6456 LT -3637 6456 LT -3639 6456 LT -3641 6455 LT -3642 6454 LT -3644 6453 LT -3646 6452 LT -3647 6450 LT -3648 6449 LT -3649 6447 LT -3650 6445 LT -3651 6443 LT -3651 6441 LT -3651 6440 LT -QS -3710 6397 3671 HL -3690 6456 6397 VL -3743 6397 3730 HL -3736 6423 3743 HL -3756 6443 6436 VL -3730 6456 3743 HL -NP -3743 6423 MT -3745 6423 LT -3747 6423 LT -3749 6422 LT -3750 6421 LT -3752 6420 LT -3753 6418 LT -3754 6416 LT -3755 6415 LT -3756 6413 LT -3756 6411 LT -3756 6409 LT -3755 6407 LT -3755 6405 LT -3754 6403 LT -3753 6401 LT -3751 6400 LT -3750 6399 LT -3748 6398 LT -3746 6397 LT -3744 6397 LT -3743 6397 LT -QS -NP -3756 6436 MT -3756 6434 LT -3755 6432 LT -3755 6431 LT -3754 6429 LT -3752 6427 LT -3751 6426 LT -3749 6425 LT -3747 6424 LT -3745 6424 LT -3743 6423 LT -3743 6423 LT -QS -NP -3743 6456 MT -3745 6456 LT -3747 6455 LT -3749 6455 LT -3750 6454 LT -3752 6452 LT -3753 6451 LT -3754 6449 LT -3755 6447 LT -3756 6445 LT -3756 6443 LT -3756 6443 LT -QS -3572 6646 6679 VL -3592 6633 3585 HL -3605 6679 6646 VL -3585 6692 3592 HL -NP -3585 6633 MT -3583 6633 LT -3581 6634 LT -3580 6635 LT -3578 6636 LT -3576 6637 LT -3575 6638 LT -3574 6640 LT -3573 6642 LT -3572 6644 LT -3572 6646 LT -3572 6646 LT -QS -NP -3605 6646 MT -3605 6644 LT -3604 6642 LT -3604 6641 LT -3603 6639 LT -3601 6637 LT -3600 6636 LT -3598 6635 LT -3596 6634 LT -3594 6633 LT -3592 6633 LT -3592 6633 LT -QS -NP -3592 6692 MT -3594 6692 LT -3596 6692 LT -3598 6691 LT -3599 6690 LT -3601 6689 LT -3602 6687 LT -3603 6685 LT -3604 6684 LT -3605 6682 LT -3605 6680 LT -3605 6679 LT -QS -NP -3572 6679 MT -3572 6681 LT -3573 6683 LT -3574 6685 LT -3575 6687 LT -3576 6688 LT -3577 6690 LT -3579 6691 LT -3581 6691 LT -3583 6692 LT -3585 6692 LT -3585 6692 LT -QS -3625 6676 6633 VL -3657 6633 6676 VL -NP -3625 6676 MT -3625 6678 LT -3625 6680 LT -3626 6682 LT -3627 6684 LT -3628 6685 LT -3629 6687 LT -3630 6688 LT -3632 6689 LT -3634 6690 LT -3635 6691 LT -3637 6692 LT -3639 6692 LT -3641 6692 LT -3643 6692 LT -3645 6692 LT -3647 6691 LT -3649 6690 LT -3651 6689 LT -3652 6688 LT -3654 6686 LT -3655 6685 LT -3656 6683 LT -3657 6681 LT -3657 6679 LT -3657 6677 LT -3657 6676 LT -QS -3717 6633 3677 HL -3697 6692 6633 VL -3749 6633 3736 6646 DL -3749 6692 6633 VL -2857 6646 6679 VL -2877 6633 2870 HL -2890 6679 6646 VL -2870 6692 2877 HL -NP -2870 6633 MT -2868 6633 LT -2866 6634 LT -2864 6635 LT -2863 6636 LT -2861 6637 LT -2860 6638 LT -2859 6640 LT -2858 6642 LT -2857 6644 LT -2857 6646 LT -2857 6646 LT -QS -NP -2890 6646 MT -2890 6644 LT -2889 6642 LT -2889 6641 LT -2888 6639 LT -2886 6637 LT -2885 6636 LT -2883 6635 LT -2881 6634 LT -2879 6633 LT -2877 6633 LT -2877 6633 LT -QS -NP -2877 6692 MT -2879 6692 LT -2881 6692 LT -2883 6691 LT -2884 6690 LT -2886 6689 LT -2887 6687 LT -2888 6685 LT -2889 6684 LT -2890 6682 LT -2890 6680 LT -2890 6679 LT -QS -NP -2857 6679 MT -2857 6681 LT -2858 6683 LT -2858 6685 LT -2859 6687 LT -2861 6688 LT -2862 6690 LT -2864 6691 LT -2866 6691 LT -2868 6692 LT -2870 6692 LT -2870 6692 LT -QS -2910 6676 6633 VL -2942 6633 6676 VL -NP -2910 6676 MT -2910 6678 LT -2910 6680 LT -2911 6682 LT -2912 6684 LT -2913 6685 LT -2914 6687 LT -2915 6688 LT -2917 6689 LT -2919 6690 LT -2920 6691 LT -2922 6692 LT -2924 6692 LT -2926 6692 LT -2928 6692 LT -2930 6692 LT -2932 6691 LT -2934 6690 LT -2936 6689 LT -2937 6688 LT -2939 6686 LT -2940 6685 LT -2941 6683 LT -2942 6681 LT -2942 6679 LT -2942 6677 LT -2942 6676 LT -QS -3001 6633 2962 HL -2982 6692 6633 VL -NP -3040 6636 MT -3039 6635 LT -3037 6634 LT -3035 6633 LT -3033 6633 LT -3031 6634 LT -3030 6635 LT -3028 6636 LT -3028 6636 LT -QS -NP -3028 6636 MT -3027 6638 LT -3026 6640 LT -3025 6642 LT -3024 6643 LT -3024 6645 LT -3023 6647 LT -3023 6649 LT -3022 6650 LT -QS -NP -3022 6676 MT -3023 6678 LT -3023 6680 LT -3024 6682 LT -3025 6683 LT -3026 6685 LT -3027 6687 LT -3028 6689 LT -3028 6689 LT -QS -NP -3028 6689 MT -3030 6691 LT -3031 6692 LT -3033 6692 LT -3035 6692 LT -3037 6692 LT -3039 6691 LT -3040 6689 LT -3040 6689 LT -QS -NP -3040 6689 MT -3041 6687 LT -3042 6686 LT -3043 6684 LT -3044 6682 LT -3045 6680 LT -3045 6678 LT -3046 6676 LT -3046 6676 LT -QS -NP -3046 6676 MT -3046 6674 LT -3047 6672 LT -3047 6670 LT -3047 6668 LT -3047 6666 LT -3047 6664 LT -3047 6663 LT -QS -NP -3047 6663 MT -3047 6661 LT -3047 6659 LT -3047 6657 LT -3047 6655 LT -3047 6653 LT -3046 6651 LT -3046 6650 LT -QS -NP -3046 6650 MT -3046 6648 LT -3045 6646 LT -3044 6644 LT -3044 6642 LT -3043 6640 LT -3042 6638 LT -3041 6637 LT -3040 6636 LT -QS -NP -3021 6663 MT -3021 6665 LT -3021 6667 LT -3021 6669 LT -3022 6671 LT -3022 6673 LT -3022 6675 LT -3022 6676 LT -QS -NP -3022 6650 MT -3022 6652 LT -3022 6654 LT -3022 6656 LT -3021 6658 LT -3021 6660 LT -3021 6662 LT -3021 6663 LT -QS -1 4 B 1 1 PE -1366 5777 1327 5895 DL -1406 5895 1366 5777 DL -1395 5862 1338 HL -1471 5777 1497 HL -1445 5869 5803 VL -1497 5895 1471 HL -NP -1471 5777 MT -1469 5777 LT -1467 5777 LT -1465 5778 LT -1463 5778 LT -1461 5779 LT -1460 5780 LT -1458 5781 LT -1456 5782 LT -1455 5783 LT -1453 5784 LT -1452 5786 LT -1450 5787 LT -1449 5789 LT -1448 5791 LT -1447 5792 LT -1447 5794 LT -1446 5796 LT -1445 5798 LT -1445 5800 LT -1445 5802 LT -1445 5803 LT -QS -NP -1445 5869 MT -1445 5871 LT -1445 5873 LT -1446 5875 LT -1446 5877 LT -1447 5879 LT -1448 5881 LT -1449 5882 LT -1450 5884 LT -1451 5886 LT -1452 5887 LT -1454 5888 LT -1455 5890 LT -1457 5891 LT -1459 5892 LT -1460 5893 LT -1462 5894 LT -1464 5894 LT -1466 5895 LT -1468 5895 LT -1470 5895 LT -1471 5895 LT -QS -1537 5777 1589 HL -1537 5895 5777 VL -1589 5895 1537 HL -1576 5830 1537 HL -1707 5895 1629 5777 DL -1707 5777 1629 5895 DL -1835 5777 1888 HL -1835 5895 5777 VL -1888 5830 1835 HL -1927 5777 5895 VL -1967 5777 1927 HL -1993 5816 5803 VL -1927 5843 1967 HL -NP -1993 5803 MT -1993 5801 LT -1992 5799 LT -1992 5797 LT -1992 5795 LT -1991 5794 LT -1990 5792 LT -1989 5790 LT -1988 5788 LT -1987 5787 LT -1985 5785 LT -1984 5784 LT -1983 5782 LT -1981 5781 LT -1979 5780 LT -1977 5779 LT -1976 5779 LT -1974 5778 LT -1972 5778 LT -1970 5777 LT -1968 5777 LT -1967 5777 LT -QS -NP -1967 5843 MT -1969 5843 LT -1971 5842 LT -1972 5842 LT -1974 5841 LT -1976 5841 LT -1978 5840 LT -1980 5839 LT -1982 5838 LT -1983 5837 LT -1985 5835 LT -1986 5834 LT -1987 5832 LT -1988 5831 LT -1990 5829 LT -1990 5827 LT -1991 5825 LT -1992 5824 LT -1992 5822 LT -1993 5820 LT -1993 5818 LT -1993 5816 LT -QS -2058 5777 2098 HL -2032 5869 5803 VL -2098 5895 2058 HL -2098 5830 5895 VL -2078 5830 2098 HL -NP -2058 5777 MT -2056 5777 LT -2054 5777 LT -2052 5778 LT -2050 5778 LT -2049 5779 LT -2047 5780 LT -2045 5781 LT -2043 5782 LT -2042 5783 LT -2040 5784 LT -2039 5786 LT -2038 5787 LT -2036 5789 LT -2035 5791 LT -2034 5792 LT -2034 5794 LT -2033 5796 LT -2033 5798 LT -2032 5800 LT -2032 5802 LT -2032 5803 LT -QS -NP -2032 5869 MT -2032 5871 LT -2032 5873 LT -2033 5875 LT -2033 5877 LT -2034 5879 LT -2035 5881 LT -2036 5882 LT -2037 5884 LT -2038 5886 LT -2039 5887 LT -2041 5888 LT -2042 5890 LT -2044 5891 LT -2046 5892 LT -2048 5893 LT -2049 5894 LT -2051 5894 LT -2053 5895 LT -2055 5895 LT -2057 5895 LT -2058 5895 LT -QS -2176 5777 2137 5895 DL -2216 5895 2176 5777 DL -2205 5862 2148 HL -636 5009 682 5062 DL -590 5062 636 5009 DL -768 5009 814 5062 DL -722 5062 768 5009 DL -941 5009 5128 VL -981 5009 941 HL -1007 5049 5036 VL -941 5075 981 HL -NP -1007 5036 MT -1007 5034 LT -1007 5032 LT -1006 5030 LT -1006 5028 LT -1005 5026 LT -1004 5024 LT -1003 5022 LT -1002 5021 LT -1001 5019 LT -1000 5018 LT -998 5016 LT -997 5015 LT -995 5014 LT -993 5013 LT -992 5012 LT -990 5011 LT -988 5010 LT -986 5010 LT -984 5010 LT -982 5010 LT -981 5009 LT -QS -NP -981 5075 MT -983 5075 LT -985 5075 LT -987 5074 LT -989 5074 LT -991 5073 LT -992 5072 LT -994 5071 LT -996 5070 LT -997 5069 LT -999 5068 LT -1000 5066 LT -1002 5065 LT -1003 5063 LT -1004 5061 LT -1005 5060 LT -1005 5058 LT -1006 5056 LT -1007 5054 LT -1007 5052 LT -1007 5050 LT -1007 5049 LT -QS -1079 5049 1053 HL -1099 5128 5069 VL -1066 5128 1099 HL -1099 5088 1066 HL -NP -1099 5069 MT -1099 5067 LT -1098 5065 LT -1098 5063 LT -1097 5061 LT -1096 5059 LT -1095 5057 LT -1094 5056 LT -1093 5054 LT -1091 5053 LT -1090 5052 LT -1088 5051 LT -1086 5050 LT -1084 5049 LT -1082 5049 LT -1080 5049 LT -1079 5049 LT -QS -NP -1066 5088 MT -1064 5088 LT -1062 5089 LT -1060 5089 LT -1058 5090 LT -1056 5091 LT -1055 5092 LT -1053 5093 LT -1052 5094 LT -1050 5096 LT -1049 5098 LT -1048 5099 LT -1048 5101 LT -1047 5103 LT -1047 5105 LT -1046 5107 LT -1046 5109 LT -1047 5111 LT -1047 5113 LT -1048 5115 LT -1048 5117 LT -1049 5118 LT -1051 5120 LT -1052 5122 LT -1053 5123 LT -1055 5124 LT -1057 5125 LT -1059 5126 LT -1060 5127 LT -1062 5127 LT -1064 5127 LT -1066 5128 LT -QS -1138 5049 5128 VL -1164 5049 1138 HL -NP -1178 5062 MT -1177 5060 LT -1177 5058 LT -1176 5056 LT -1175 5054 LT -1174 5053 LT -1172 5052 LT -1171 5050 LT -1169 5050 LT -1167 5049 LT -1165 5049 LT -1164 5049 LT -QS -1250 5049 1224 HL -1269 5128 5069 VL -1237 5128 1269 HL -1269 5088 1237 HL -NP -1269 5069 MT -1269 5067 LT -1269 5065 LT -1269 5063 LT -1268 5061 LT -1267 5059 LT -1266 5057 LT -1265 5056 LT -1263 5054 LT -1262 5053 LT -1260 5052 LT -1258 5051 LT -1257 5050 LT -1255 5049 LT -1253 5049 LT -1251 5049 LT -1250 5049 LT -QS -NP -1237 5088 MT -1235 5088 LT -1233 5089 LT -1231 5089 LT -1229 5090 LT -1227 5091 LT -1225 5092 LT -1224 5093 LT -1222 5094 LT -1221 5096 LT -1220 5098 LT -1219 5099 LT -1218 5101 LT -1218 5103 LT -1217 5105 LT -1217 5107 LT -1217 5109 LT -1217 5111 LT -1218 5113 LT -1218 5115 LT -1219 5117 LT -1220 5118 LT -1221 5120 LT -1223 5122 LT -1224 5123 LT -1226 5124 LT -1227 5125 LT -1229 5126 LT -1231 5127 LT -1233 5127 LT -1235 5127 LT -1237 5128 LT -QS -1309 5114 5009 VL -NP -1309 5114 MT -1309 5116 LT -1309 5118 LT -1310 5120 LT -1311 5122 LT -1312 5124 LT -1314 5125 LT -1316 5126 LT -1317 5127 LT -1319 5127 LT -1321 5128 LT -1322 5128 LT -QS -1361 5114 5009 VL -NP -1361 5114 MT -1361 5116 LT -1362 5118 LT -1363 5120 LT -1364 5122 LT -1365 5124 LT -1366 5125 LT -1368 5126 LT -1370 5127 LT -1372 5127 LT -1374 5128 LT -1374 5128 LT -QS -1466 5088 1414 HL -1466 5075 5088 VL -1414 5108 5075 VL -1466 5128 1433 HL -NP -1466 5075 MT -1466 5073 LT -1466 5071 LT -1466 5069 LT -1465 5067 LT -1464 5065 LT -1464 5063 LT -1463 5062 LT -1462 5060 LT -1460 5058 LT -1459 5057 LT -1458 5056 LT -1456 5054 LT -1454 5053 LT -1453 5052 LT -1451 5051 LT -1449 5050 LT -1447 5050 LT -1445 5049 LT -1443 5049 LT -1441 5049 LT -1439 5049 LT -1437 5049 LT -1435 5049 LT -1433 5050 LT -1431 5050 LT -1430 5051 LT -1428 5052 LT -1426 5053 LT -1424 5054 LT -1423 5055 LT -1421 5057 LT -1420 5058 LT -1419 5060 LT -1418 5061 LT -1417 5063 LT -1416 5065 LT -1415 5067 LT -1415 5069 LT -1414 5071 LT -1414 5073 LT -1414 5075 LT -1414 5075 LT -QS -NP -1414 5108 MT -1414 5110 LT -1414 5112 LT -1415 5114 LT -1415 5116 LT -1416 5117 LT -1417 5119 LT -1419 5121 LT -1420 5122 LT -1421 5123 LT -1423 5125 LT -1425 5126 LT -1427 5126 LT -1429 5127 LT -1431 5127 LT -1433 5128 LT -1433 5128 LT -QS -1506 5114 5009 VL -NP -1506 5114 MT -1506 5116 LT -1506 5118 LT -1507 5120 LT -1508 5122 LT -1509 5124 LT -1511 5125 LT -1512 5126 LT -1514 5127 LT -1516 5127 LT -1518 5128 LT -1519 5128 LT -QS -1647 5009 5128 VL -1686 5009 1647 HL -1712 5049 5036 VL -1647 5075 1686 HL -NP -1712 5036 MT -1712 5034 LT -1712 5032 LT -1712 5030 LT -1711 5028 LT -1710 5026 LT -1710 5024 LT -1709 5022 LT -1708 5021 LT -1706 5019 LT -1705 5018 LT -1704 5016 LT -1702 5015 LT -1700 5014 LT -1699 5013 LT -1697 5012 LT -1695 5011 LT -1693 5010 LT -1691 5010 LT -1689 5010 LT -1687 5010 LT -1686 5009 LT -QS -NP -1686 5075 MT -1688 5075 LT -1690 5075 LT -1692 5074 LT -1694 5074 LT -1696 5073 LT -1698 5072 LT -1699 5071 LT -1701 5070 LT -1703 5069 LT -1704 5068 LT -1706 5066 LT -1707 5065 LT -1708 5063 LT -1709 5061 LT -1710 5060 LT -1711 5058 LT -1711 5056 LT -1712 5054 LT -1712 5052 LT -1712 5050 LT -1712 5049 LT -QS -1752 5101 5075 VL -1804 5075 5101 VL -NP -1752 5101 MT -1752 5103 LT -1752 5105 LT -1752 5107 LT -1753 5109 LT -1754 5111 LT -1754 5113 LT -1755 5115 LT -1756 5116 LT -1758 5118 LT -1759 5119 LT -1760 5121 LT -1762 5122 LT -1764 5123 LT -1765 5124 LT -1767 5125 LT -1769 5126 LT -1771 5127 LT -1773 5127 LT -1775 5127 LT -1777 5128 LT -1779 5128 LT -1781 5127 LT -1783 5127 LT -1785 5127 LT -1787 5126 LT -1788 5125 LT -1790 5124 LT -1792 5123 LT -1794 5122 LT -1795 5121 LT -1797 5120 LT -1798 5118 LT -1799 5117 LT -1800 5115 LT -1801 5113 LT -1802 5111 LT -1803 5110 LT -1803 5108 LT -1804 5106 LT -1804 5104 LT -1804 5102 LT -1804 5101 LT -QS -NP -1804 5075 MT -1804 5073 LT -1804 5071 LT -1803 5069 LT -1803 5067 LT -1802 5065 LT -1801 5063 LT -1800 5062 LT -1799 5060 LT -1798 5058 LT -1797 5057 LT -1795 5056 LT -1794 5054 LT -1792 5053 LT -1791 5052 LT -1789 5051 LT -1787 5050 LT -1785 5050 LT -1783 5049 LT -1781 5049 LT -1779 5049 LT -1777 5049 LT -1775 5049 LT -1773 5049 LT -1771 5050 LT -1769 5050 LT -1767 5051 LT -1766 5052 LT -1764 5053 LT -1762 5054 LT -1761 5055 LT -1759 5057 LT -1758 5058 LT -1757 5060 LT -1755 5061 LT -1755 5063 LT -1754 5065 LT -1753 5067 LT -1752 5069 LT -1752 5071 LT -1752 5073 LT -1752 5075 LT -1752 5075 LT -QS -1844 5049 5128 VL -1870 5049 1844 HL -NP -1883 5062 MT -1883 5060 LT -1882 5058 LT -1882 5056 LT -1880 5054 LT -1879 5053 LT -1878 5052 LT -1876 5050 LT -1874 5050 LT -1872 5049 LT -1870 5049 LT -1870 5049 LT -QS -1962 5049 1922 HL -1935 5128 5009 VL -2116 5009 2142 HL -2090 5101 5036 VL -2142 5128 2116 HL -NP -2116 5009 MT -2114 5010 LT -2112 5010 LT -2110 5010 LT -2108 5011 LT -2106 5011 LT -2104 5012 LT -2102 5013 LT -2101 5014 LT -2099 5015 LT -2098 5017 LT -2096 5018 LT -2095 5020 LT -2094 5021 LT -2093 5023 LT -2092 5025 LT -2091 5027 LT -2091 5029 LT -2090 5031 LT -2090 5033 LT -2090 5035 LT -2090 5036 LT -QS -NP -2090 5101 MT -2090 5103 LT -2090 5105 LT -2090 5107 LT -2091 5109 LT -2091 5111 LT -2092 5113 LT -2093 5115 LT -2094 5116 LT -2095 5118 LT -2097 5119 LT -2098 5121 LT -2100 5122 LT -2101 5123 LT -2103 5124 LT -2105 5125 LT -2107 5126 LT -2109 5127 LT -2111 5127 LT -2113 5127 LT -2115 5128 LT -2116 5128 LT -QS -2181 5101 5075 VL -2234 5075 5101 VL -NP -2181 5101 MT -2181 5103 LT -2182 5105 LT -2182 5107 LT -2183 5109 LT -2183 5111 LT -2184 5113 LT -2185 5115 LT -2186 5116 LT -2187 5118 LT -2189 5119 LT -2190 5121 LT -2192 5122 LT -2193 5123 LT -2195 5124 LT -2197 5125 LT -2199 5126 LT -2201 5127 LT -2202 5127 LT -2204 5127 LT -2206 5128 LT -2208 5128 LT -2210 5127 LT -2212 5127 LT -2214 5127 LT -2216 5126 LT -2218 5125 LT -2220 5124 LT -2222 5123 LT -2223 5122 LT -2225 5121 LT -2226 5120 LT -2228 5118 LT -2229 5117 LT -2230 5115 LT -2231 5113 LT -2232 5111 LT -2233 5110 LT -2233 5108 LT -2233 5106 LT -2234 5104 LT -2234 5102 LT -2234 5101 LT -QS -NP -2234 5075 MT -2234 5073 LT -2234 5071 LT -2233 5069 LT -2233 5067 LT -2232 5065 LT -2231 5063 LT -2230 5062 LT -2229 5060 LT -2228 5058 LT -2227 5057 LT -2225 5056 LT -2224 5054 LT -2222 5053 LT -2220 5052 LT -2218 5051 LT -2217 5050 LT -2215 5050 LT -2213 5049 LT -2211 5049 LT -2209 5049 LT -2207 5049 LT -2205 5049 LT -2203 5049 LT -2201 5050 LT -2199 5050 LT -2197 5051 LT -2195 5052 LT -2194 5053 LT -2192 5054 LT -2190 5055 LT -2189 5057 LT -2188 5058 LT -2186 5060 LT -2185 5061 LT -2184 5063 LT -2183 5065 LT -2183 5067 LT -2182 5069 LT -2182 5071 LT -2181 5073 LT -2181 5075 LT -2181 5075 LT -QS -2273 5049 5128 VL -2306 5049 2273 HL -2326 5128 5069 VL -NP -2326 5069 MT -2326 5067 LT -2325 5065 LT -2325 5063 LT -2324 5061 LT -2323 5059 LT -2322 5057 LT -2321 5056 LT -2320 5054 LT -2318 5053 LT -2316 5052 LT -2315 5051 LT -2313 5050 LT -2311 5049 LT -2309 5049 LT -2307 5049 LT -2306 5049 LT -QS -2365 5049 5128 VL -2398 5049 2365 HL -2418 5128 5069 VL -NP -2418 5069 MT -2417 5067 LT -2417 5065 LT -2417 5063 LT -2416 5061 LT -2415 5059 LT -2414 5057 LT -2413 5056 LT -2411 5054 LT -2410 5053 LT -2408 5052 LT -2406 5051 LT -2405 5050 LT -2403 5049 LT -2401 5049 LT -2399 5049 LT -2398 5049 LT -QS -2509 5088 2457 HL -2509 5075 5088 VL -2457 5108 5075 VL -2509 5128 2477 HL -NP -2509 5075 MT -2509 5073 LT -2509 5071 LT -2509 5069 LT -2508 5067 LT -2508 5065 LT -2507 5063 LT -2506 5062 LT -2505 5060 LT -2503 5058 LT -2502 5057 LT -2501 5056 LT -2499 5054 LT -2498 5053 LT -2496 5052 LT -2494 5051 LT -2492 5050 LT -2490 5050 LT -2488 5049 LT -2486 5049 LT -2484 5049 LT -2482 5049 LT -2480 5049 LT -2478 5049 LT -2476 5050 LT -2474 5050 LT -2473 5051 LT -2471 5052 LT -2469 5053 LT -2467 5054 LT -2466 5055 LT -2464 5057 LT -2463 5058 LT -2462 5060 LT -2461 5061 LT -2460 5063 LT -2459 5065 LT -2458 5067 LT -2458 5069 LT -2457 5071 LT -2457 5073 LT -2457 5075 LT -2457 5075 LT -QS -NP -2457 5108 MT -2457 5110 LT -2457 5112 LT -2458 5114 LT -2459 5116 LT -2459 5117 LT -2460 5119 LT -2462 5121 LT -2463 5122 LT -2465 5123 LT -2466 5125 LT -2468 5126 LT -2470 5126 LT -2472 5127 LT -2474 5127 LT -2476 5128 LT -2477 5128 LT -QS -2568 5049 2588 HL -2549 5108 5069 VL -2588 5128 2568 HL -NP -2568 5049 MT -2566 5049 LT -2564 5049 LT -2563 5050 LT -2561 5050 LT -2559 5051 LT -2557 5052 LT -2556 5054 LT -2554 5055 LT -2553 5057 LT -2552 5058 LT -2551 5060 LT -2550 5062 LT -2549 5064 LT -2549 5066 LT -2549 5068 LT -2549 5069 LT -QS -NP -2549 5108 MT -2549 5110 LT -2549 5112 LT -2550 5114 LT -2550 5116 LT -2551 5117 LT -2552 5119 LT -2554 5121 LT -2555 5122 LT -2556 5123 LT -2558 5125 LT -2560 5126 LT -2562 5126 LT -2564 5127 LT -2566 5127 LT -2568 5128 LT -2568 5128 LT -QS -2667 5049 2627 HL -2641 5128 5009 VL -2706 5101 5075 VL -2759 5075 5101 VL -NP -2706 5101 MT -2706 5103 LT -2707 5105 LT -2707 5107 LT -2707 5109 LT -2708 5111 LT -2709 5113 LT -2710 5115 LT -2711 5116 LT -2712 5118 LT -2713 5119 LT -2715 5121 LT -2716 5122 LT -2718 5123 LT -2720 5124 LT -2722 5125 LT -2723 5126 LT -2725 5127 LT -2727 5127 LT -2729 5127 LT -2731 5128 LT -2733 5128 LT -2735 5127 LT -2737 5127 LT -2739 5127 LT -2741 5126 LT -2743 5125 LT -2745 5124 LT -2747 5123 LT -2748 5122 LT -2750 5121 LT -2751 5120 LT -2753 5118 LT -2754 5117 LT -2755 5115 LT -2756 5113 LT -2757 5111 LT -2757 5110 LT -2758 5108 LT -2758 5106 LT -2759 5104 LT -2759 5102 LT -2759 5101 LT -QS -NP -2759 5075 MT -2759 5073 LT -2758 5071 LT -2758 5069 LT -2757 5067 LT -2757 5065 LT -2756 5063 LT -2755 5062 LT -2754 5060 LT -2753 5058 LT -2751 5057 LT -2750 5056 LT -2748 5054 LT -2747 5053 LT -2745 5052 LT -2743 5051 LT -2741 5050 LT -2740 5050 LT -2738 5049 LT -2736 5049 LT -2734 5049 LT -2732 5049 LT -2730 5049 LT -2728 5049 LT -2726 5050 LT -2724 5050 LT -2722 5051 LT -2720 5052 LT -2718 5053 LT -2717 5054 LT -2715 5055 LT -2714 5057 LT -2712 5058 LT -2711 5060 LT -2710 5061 LT -2709 5063 LT -2708 5065 LT -2708 5067 LT -2707 5069 LT -2707 5071 LT -2706 5073 LT -2706 5075 LT -2706 5075 LT -QS -2798 5049 5128 VL -2824 5049 2798 HL -NP -2837 5062 MT -2837 5060 LT -2837 5058 LT -2836 5056 LT -2835 5054 LT -2834 5053 LT -2832 5052 LT -2831 5050 LT -2829 5050 LT -2827 5049 LT -2825 5049 LT -2824 5049 LT -QS -3011 5009 3057 5062 DL -2965 5062 3011 5009 DL -3142 5009 3188 5062 DL -3097 5062 3142 5009 DL -3333 5092 5210 VL -3372 5092 3333 HL -3398 5132 5118 VL -3333 5158 3372 HL -NP -3398 5118 MT -3398 5116 LT -3398 5114 LT -3398 5112 LT -3397 5110 LT -3396 5109 LT -3396 5107 LT -3395 5105 LT -3394 5103 LT -3392 5102 LT -3391 5100 LT -3390 5099 LT -3388 5098 LT -3386 5096 LT -3385 5095 LT -3383 5094 LT -3381 5094 LT -3379 5093 LT -3377 5093 LT -3375 5092 LT -3373 5092 LT -3372 5092 LT -QS -NP -3372 5158 MT -3374 5158 LT -3376 5157 LT -3378 5157 LT -3380 5157 LT -3382 5156 LT -3384 5155 LT -3385 5154 LT -3387 5153 LT -3389 5152 LT -3390 5150 LT -3392 5149 LT -3393 5147 LT -3394 5146 LT -3395 5144 LT -3396 5142 LT -3397 5141 LT -3397 5139 LT -3398 5137 LT -3398 5135 LT -3398 5133 LT -3398 5132 LT -QS -3438 5184 5158 VL -3490 5158 5184 VL -NP -3438 5184 MT -3438 5186 LT -3438 5188 LT -3438 5190 LT -3439 5192 LT -3440 5194 LT -3440 5196 LT -3441 5197 LT -3442 5199 LT -3444 5201 LT -3445 5202 LT -3446 5204 LT -3448 5205 LT -3450 5206 LT -3451 5207 LT -3453 5208 LT -3455 5209 LT -3457 5209 LT -3459 5210 LT -3461 5210 LT -3463 5210 LT -3465 5210 LT -3467 5210 LT -3469 5210 LT -3471 5209 LT -3473 5209 LT -3474 5208 LT -3476 5207 LT -3478 5206 LT -3480 5205 LT -3481 5204 LT -3483 5202 LT -3484 5201 LT -3485 5199 LT -3486 5198 LT -3487 5196 LT -3488 5194 LT -3489 5192 LT -3489 5190 LT -3490 5188 LT -3490 5186 LT -3490 5184 LT -3490 5184 LT -QS -NP -3490 5158 MT -3490 5156 LT -3490 5154 LT -3490 5152 LT -3489 5150 LT -3488 5148 LT -3487 5146 LT -3487 5144 LT -3485 5143 LT -3484 5141 LT -3483 5140 LT -3481 5138 LT -3480 5137 LT -3478 5136 LT -3477 5135 LT -3475 5134 LT -3473 5133 LT -3471 5132 LT -3469 5132 LT -3467 5132 LT -3465 5132 LT -3463 5132 LT -3461 5132 LT -3459 5132 LT -3457 5132 LT -3455 5133 LT -3453 5134 LT -3452 5135 LT -3450 5136 LT -3448 5137 LT -3447 5138 LT -3445 5139 LT -3444 5141 LT -3443 5142 LT -3442 5144 LT -3441 5146 LT -3440 5148 LT -3439 5150 LT -3438 5151 LT -3438 5153 LT -3438 5155 LT -3438 5157 LT -3438 5158 LT -QS -3549 5210 3530 5132 DL -3569 5158 3549 5210 DL -3589 5210 3569 5158 DL -3608 5132 3589 5210 DL -3700 5171 3648 HL -3700 5158 5171 VL -3648 5191 5158 VL -3700 5210 3667 HL -NP -3700 5158 MT -3700 5156 LT -3700 5154 LT -3699 5152 LT -3699 5150 LT -3698 5148 LT -3697 5146 LT -3696 5144 LT -3695 5143 LT -3694 5141 LT -3693 5140 LT -3691 5138 LT -3690 5137 LT -3688 5136 LT -3687 5135 LT -3685 5134 LT -3683 5133 LT -3681 5132 LT -3679 5132 LT -3677 5132 LT -3675 5132 LT -3673 5132 LT -3671 5132 LT -3669 5132 LT -3667 5132 LT -3665 5133 LT -3663 5134 LT -3662 5135 LT -3660 5136 LT -3658 5137 LT -3657 5138 LT -3655 5139 LT -3654 5141 LT -3653 5142 LT -3651 5144 LT -3651 5146 LT -3650 5148 LT -3649 5150 LT -3648 5151 LT -3648 5153 LT -3648 5155 LT -3648 5157 LT -3648 5158 LT -QS -NP -3648 5191 MT -3648 5193 LT -3648 5195 LT -3649 5196 LT -3649 5198 LT -3650 5200 LT -3651 5202 LT -3652 5203 LT -3654 5205 LT -3655 5206 LT -3657 5207 LT -3659 5208 LT -3661 5209 LT -3663 5210 LT -3664 5210 LT -3666 5210 LT -3667 5210 LT -QS -3739 5132 5210 VL -3766 5132 3739 HL -NP -3779 5145 MT -3779 5143 LT -3778 5141 LT -3778 5139 LT -3776 5137 LT -3775 5136 LT -3774 5134 LT -3772 5133 LT -3770 5132 LT -3768 5132 LT -3766 5132 LT -3766 5132 LT -QS -3336 5373 5281 VL -3297 5399 3310 HL -NP -3310 5399 MT -3312 5399 LT -3314 5399 LT -3316 5398 LT -3318 5398 LT -3320 5397 LT -3321 5396 LT -3323 5396 LT -3325 5394 LT -3326 5393 LT -3328 5392 LT -3329 5390 LT -3331 5389 LT -3332 5387 LT -3333 5386 LT -3334 5384 LT -3334 5382 LT -3335 5380 LT -3336 5378 LT -3336 5376 LT -3336 5374 LT -3336 5373 LT -QS -3408 5320 3382 HL -3428 5399 5340 VL -3395 5399 3428 HL -3428 5360 3395 HL -NP -3428 5340 MT -3428 5338 LT -3427 5336 LT -3427 5334 LT -3426 5332 LT -3425 5331 LT -3424 5329 LT -3423 5327 LT -3422 5326 LT -3420 5325 LT -3419 5323 LT -3417 5322 LT -3415 5322 LT -3413 5321 LT -3411 5321 LT -3409 5320 LT -3408 5320 LT -QS -NP -3395 5360 MT -3393 5360 LT -3391 5360 LT -3389 5361 LT -3387 5361 LT -3385 5362 LT -3384 5363 LT -3382 5365 LT -3381 5366 LT -3379 5368 LT -3378 5369 LT -3377 5371 LT -3377 5373 LT -3376 5375 LT -3376 5377 LT -3375 5379 LT -3375 5381 LT -3376 5383 LT -3376 5385 LT -3377 5386 LT -3377 5388 LT -3378 5390 LT -3380 5392 LT -3381 5393 LT -3382 5395 LT -3384 5396 LT -3386 5397 LT -3388 5398 LT -3389 5398 LT -3391 5399 LT -3393 5399 LT -3395 5399 LT -QS -3487 5320 3507 HL -3467 5379 5340 VL -3507 5399 3487 HL -NP -3487 5320 MT -3485 5321 LT -3483 5321 LT -3481 5321 LT -3479 5322 LT -3477 5323 LT -3476 5324 LT -3474 5325 LT -3473 5327 LT -3471 5328 LT -3470 5330 LT -3469 5332 LT -3468 5333 LT -3468 5335 LT -3467 5337 LT -3467 5339 LT -3467 5340 LT -QS -NP -3467 5379 MT -3467 5381 LT -3468 5383 LT -3468 5385 LT -3469 5387 LT -3470 5389 LT -3471 5391 LT -3472 5392 LT -3473 5394 LT -3475 5395 LT -3477 5396 LT -3478 5397 LT -3480 5398 LT -3482 5399 LT -3484 5399 LT -3486 5399 LT -3487 5399 LT -QS -3546 5399 5281 VL -3598 5320 3546 5353 DL -3598 5399 3563 5342 DL -3779 5353 3726 5307 DL -3726 5399 3779 5353 DL - -QP -%%Trailer -cleartomark countdictstack exch sub { end } repeat restore -%%EOF diff --git a/docs/src/hal/images/pluto-pinout.svg b/docs/src/hal/images/pluto-pinout.svg deleted file mode 100755 index ac2bf62949e..00000000000 --- a/docs/src/hal/images/pluto-pinout.svg +++ /dev/null @@ -1,1489 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PowerJack - Parrallel Port Connector - OUT8 - OUT9 - OUT6 - OUT7 - OUT4 - OUT5 - OUT2 - OUT3 - QB3 - OUT1 - QA3 - QZ3 - OUT0 - QZ2 - QZ1 - QZ0 - GND - QB2 - QA2 - QB1 - QA1 - GND - VCC - VCC - QB0 - QA0 - UP3 - DN3 - GND - GND - GND - UP1 - UP0 - UP2 - DN1 - DN1 - DN0 - IN0 - GND - VCC - IN4 - GND - IN6 - IN1 - IN2 - IN3 - IN5 - IN7 - - - - - - - - - - - - - - diff --git a/docs/src/hal/images/pluto-step-pinout.dxf b/docs/src/hal/images/pluto-step-pinout.dxf deleted file mode 100644 index 0e3faf75aca..00000000000 --- a/docs/src/hal/images/pluto-step-pinout.dxf +++ /dev/null @@ -1,4636 +0,0 @@ -999 -dxflib 2.0.4.0 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMADEC - 70 -2 - 9 -$GRIDUNIT - 10 -5.0 - 20 -5.0 - 9 -$DIMASZ - 40 -2.5 - 9 -$DIMGAP - 40 -0.625 - 9 -$LUNITS - 70 -2 - 9 -$AUPREC - 70 -2 - 9 -$SPLINESEGS - 70 -8 - 9 -$INSUNITS - 70 -4 - 9 -$DIMEXO - 40 -0.625 - 9 -$DIMLUNIT - 70 -2 - 9 -$GRIDMODE - 70 -1 - 9 -$DIMTXT - 40 -2.5 - 9 -$LUPREC - 70 -4 - 9 -$DIMSTYLE - 2 -Standard - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$PLIMMAX - 10 -210.0 - 20 -297.0 - 9 -$DIMEXE - 40 -1.25 - 9 -$DIMAUNIT - 70 -0 - 9 -$AUNITS - 70 -0 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -5 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -inputs - 70 -0 - 62 -5 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -44 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -outputs - 70 -0 - 62 -3 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -45 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -gnd - 70 -0 - 62 -8 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -LAYER - 5 -46 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -vcc - 70 -0 - 62 -8 - 6 -CONTINUOUS -370 -18 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -2.5 - 42 -0.625 - 43 -3.75 - 44 -1.25 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -2.5 -141 -2.5 -143 -0.03937007874016 -147 -0.625 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -47 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -0.0 - 30 -0.0 - 11 -130.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -48 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -130.0 - 20 -0.0 - 30 -0.0 - 11 -130.0 - 21 -20.0 - 31 -0.0 - 0 -LINE - 5 -49 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -130.0 - 20 -20.0 - 30 -0.0 - 11 -0.0 - 21 -20.0 - 31 -0.0 - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -20.0 - 30 -0.0 - 11 -0.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -4B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -140.0 - 20 -0.0 - 30 -0.0 - 11 -160.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -4C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -0.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -140.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -4E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -140.0 - 20 -60.0 - 30 -0.0 - 11 -140.0 - 21 -0.0 - 31 -0.0 - 0 -LINE - 5 -4F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -50 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -51 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -52 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -60.0 - 30 -0.0 - 11 -160.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -53 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -130.0 - 20 -0.0 - 30 -0.0 - 11 -140.0 - 21 -0.0 - 31 -0.0 - 0 -MTEXT - 5 -54 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -55 -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -56 -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -35.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -57 -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -55.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -58 -100 -AcDbEntity -100 -AcDbMText - 8 -vcc - 62 -256 -370 --1 - 6 -ByLayer - 10 -75.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -VCC - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -59 -100 -AcDbEntity -100 -AcDbMText - 8 -vcc - 62 -256 -370 --1 - 6 -ByLayer - 10 -75.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -VCC - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5A -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -85.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5B -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -115.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -5C -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -1 -370 --1 - 6 -ByLayer - 10 -124.5 - 20 -24.4999999999998934 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -LED - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -5D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -130.0 - 20 -20.0 - 30 -0.0 - 11 -160.0 - 21 -20.0 - 31 -0.0 - 0 -LINE - 5 -5E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -120.0 - 20 -70.0 - 30 -0.0 - 11 -120.0 - 21 -30.0 - 31 -0.0 - 0 -LINE - 5 -5F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -20.0 - 20 -35.0 - 30 -0.0 - 11 -0.0 - 21 -35.0 - 31 -0.0 - 0 -LINE - 5 -60 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -85.0 - 30 -0.0 - 11 -20.0 - 21 -85.0 - 31 -0.0 - 0 -LINE - 5 -61 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -20.0 - 20 -85.0 - 30 -0.0 - 11 -20.0 - 21 -35.0 - 31 -0.0 - 0 -LINE - 5 -62 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -85.0 - 30 -0.0 - 11 -0.0 - 21 -65.0 - 31 -0.0 - 0 -LINE - 5 -63 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -0.0 - 20 -55.0 - 30 -0.0 - 11 -0.0 - 21 -35.0 - 31 -0.0 - 0 -MTEXT - 5 -64 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -80.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -65 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -70.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -66 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -60.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -67 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -60.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN4 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -68 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -50.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN5 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -69 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -50.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN6 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6A -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -40.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN7 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6B -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -80.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6C -100 -AcDbEntity -100 -AcDbMText - 8 -vcc - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -70.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -VCC - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -6D -100 -AcDbEntity -100 -AcDbMText - 8 -gnd - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -40.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -GND - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -LINE - 5 -6E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -30.0 - 20 -70.0 - 30 -0.0 - 11 -120.0 - 21 -70.0 - 31 -0.0 - 0 -LINE - 5 -6F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -30.0 - 20 -30.0 - 30 -0.0 - 11 -30.0 - 21 -70.0 - 31 -0.0 - 0 -LINE - 5 -70 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -DASHED - 10 -120.0 - 20 -30.0 - 30 -0.0 - 11 -30.0 - 21 -30.0 - 31 -0.0 - 0 -MTEXT - 5 -71 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -55.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT8 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -72 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -55.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT9 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -73 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -45.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT6 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -74 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -45.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT7 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -75 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -35.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT4 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -76 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -35.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT5 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -77 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -25.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -78 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -25.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -79 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -15.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7A -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -125.0 - 20 -15.0 - 30 -0.0 - 40 -2.5 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7B -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -75.0 - 20 -50.0 - 30 -0.0 - 40 -5.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -ACEX\~FPGA - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7C -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -80.0 - 20 -85.0 - 30 -0.0 - 40 -5.0 - 41 -100.0 - 71 -2 - 72 -2 - 1 -^^\~Parallel\~Port\~Connector\~^^ - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7D -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -160.0 - 20 -75.0 - 30 -0.0 - 40 -5.0 - 41 -100.0 - 71 -6 - 72 -2 - 1 -Power\PJack\~> - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7E -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -5.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -DIR0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -7F -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -15.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -ST0 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -80 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -25.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -ST1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -81 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -25.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -DIR1 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -82 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -35.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -DIR2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -83 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -45.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -ST2 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -84 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -45.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -DIR3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -85 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -55.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -ST3 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -86 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -65.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN8 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -87 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -65.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN9 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -88 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -85.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN10 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -89 -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -95.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN11 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8A -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -95.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN12 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8B -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -105.0 - 20 -5.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN13 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8C -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -105.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN14 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8D -100 -AcDbEntity -100 -AcDbMText - 8 -inputs - 62 -256 -370 --1 - 6 -ByLayer - 10 -115.0 - 20 -15.0 - 30 -0.0 - 40 -3.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -IN15 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8E -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -3 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -15.0 - 30 -0.0 - 40 -2.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT12 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -8F -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -3 -370 --1 - 6 -ByLayer - 10 -155.0 - 20 -5.0 - 30 -0.0 - 40 -2.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT13 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -90 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -3 -370 --1 - 6 -ByLayer - 10 -145.0 - 20 -5.0 - 30 -0.0 - 40 -2.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT11 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -91 -100 -AcDbEntity -100 -AcDbMText - 8 -outputs - 62 -3 -370 --1 - 6 -ByLayer - 10 -125.0 - 20 -5.0 - 30 -0.0 - 40 -2.0 - 41 -100.0 - 71 -5 - 72 -2 - 1 -OUT10 - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -92 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -92 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -94 - 3 -HIDETEXT -350 -93 - 0 -DICTIONARYVAR - 5 -93 -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -94 -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/hal/images/pluto-step-pinout.eps b/docs/src/hal/images/pluto-step-pinout.eps deleted file mode 100644 index 3eab4e680a5..00000000000 --- a/docs/src/hal/images/pluto-step-pinout.eps +++ /dev/null @@ -1,9128 +0,0 @@ -%!PS-Adobe-2.0 EPSF-1.2 -%%Title: -%%Creator: Qt 3.3.4 -%%CreationDate: Tue Jul 24 13:10:02 2007 -%%For:jepler jepler -%%Pages: 1 -%%DocumentFonts: -%%BoundingBox: 0 0 454 242 -%%BeginPreview: 454 242 8 2904 -% 50444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 444444444444444444444444444444445d000000000000000000000000000000000000003f000000 -% 0000000000000000000000113f0000000000000000000000000000000000000020504444445d3300 -% 00000000000000000000000000000000000000000000000000000000000000000000000011110000 -% 000000220000000000000000000000000000000022000000000000000000000000000000003f4444 -% 44445c22000000000000000000000000000000000000000000000000000000002200000000000000 -% 00000000000000000000000000505044442200000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000011110000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 003f0000000000000000000000000000003f00000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 76444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444a800000000000000000000000000000000000066c0550000 -% 000000000000000000000088c91100000000000000000000000000000000000050764444445d77aa -% 33000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000088000000000000000000000000000000008800000000000000000000000000000000984444 -% 44445c88880000000000000000000000000000000000000000000000000000008800000000000000 -% 000000000000000000000044aa605044442200000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 55c0660000000000000000000000000099c733000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000559900883300 -% 00000000000000000000996611bb1100000000000000000000000000000000004444000000000011 -% aa000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000088000000000000000000000000000000008800000000000000000000000000000000880000 -% 00000000558800000000000000000000000000000000000000000000000000008800000000000000 -% 0000000000000000000011aa00000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000033 -% 880099550000000000000000000000666611bb110000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000088000000000000000000000000000000003388000011bb33 -% 0000000000000000006666000033bb00000000000000000000000000000000004444000000000000 -% 88000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000088000000000000000000000000000000008800000000000000000000000000000000880000 -% 00000000008800000000000000000000000000000000000000000000000000008800000000000000 -% 00000000000000000000555500000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 000000000000000000000000000000000000000000000000000000000000000000000000000033bb -% 11000088330000000000000000006688000011aa1100000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000008800000000000000000000000000000033bb110000001199 -% 11000000000000006688000000003399000000000000000000000000000000004444000000000000 -% a8000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000088000000000000000000000000000000008800000000000000000000000000000000880000 -% 0000000000a800000000000000000000000000000000000000000000000000008800000000000000 -% 00000000000000000000a80000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000119911 -% 00000011bb330000000000000033990000000033bb00000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000119911000000000033 -% bb110000000000339900000000000066990000000000000000000000000000004444000000000000 -% a80000000000888888a3660000000000768888a86600000000002288889898330000000044440000 -% 00000088000000000000006688883300000000008800000000000000000000000000000000880000 -% 0000000000a8000000000011888866110000000000a88888a344000000004488c888886600000000 -% 00000000000000000000880000000000000000000000004488884400000000003f988888a8881100 -% 0000003f988888988822000000000000448888550000000000001166a388880000000066a8a88888 -% 4400000000004488884400000000003f988888981100000000000000000000000000000011bb3300 -% 00000000119911000000000033bb0000000000003399000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000011bb3300000000000000 -% 33990000000033bb0000000000000000666600000000000000000000000000004444000000000000 -% 8800000000000000000044aa00000000880000006688000000000000000011993300000044440000 -% 00000088000000000000886600228866000000008800000000000000000000000000000000880000 -% 0000000000990000000033bb22004499110000000088000011992200000000008800000000000000 -% 0000000000000000000088000000000000000000000088881111779900000000444400000022bb11 -% 000000444400000022bb22000000006688111177990000000000aa44000000000000000044440000 -% 0000000000888811117799000000004444000022aa00000000000000000000000000000099330000 -% 000000000033bb1100000011bb110000000000000066990000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000022330000000000000000 -% 00442200000044110000000000000000007700000000000000000000000000004444000000000033 -% 99000000000000000000007722000000880000000044000000000000000000009900000044440000 -% 000000880000000000557700000000aa220000008800000000000000000000000000000000880000 -% 00000000666600000000991100000022990000000088000000222200000000008800000000000000 -% 00000000000000000000880000000000000000000033880000000088330000004444000000004466 -% 00000044440000000022880000002299000000007744000000447700000000000000000044440000 -% 00000000338800000000883300000044440000005500000000000000000000000000002244000000 -% 00000000000033220000004411000000000000000000550000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000005da8888888a88899 -% 11000000000000000000005050000000880000000000000000000000000000009800000044440000 -% 000000880000000000a811000000005d5d0000008800000000000000000000000000000000a88888 -% 8888a3aa770000000000a80000000000a80000000088000000000000000000008800000000000000 -% 0000000000000000000088000000000000000000009b330000000022a80000004444000000000098 -% 00000044440000000000980000005d5d0000000011a8000000505000000000000000000044440000 -% 000000008f440000000022a800000044440000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 00000000000000000000004444000000880000000000000000000000000000008800000044440000 -% 00000088000000000088000000000044440000008800000000000000000000000000000000880000 -% 00000000000000000000880000000000880000000088000000000000000000008800000000000000 -% 00000000000000000000880000000000000000000088000000000000880000004444000000000088 -% 00000044440000000000880000004444000000000088000000444400000000000000000044440000 -% 00000000880000000000008800000044440000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000000f0f002b1d0000001e0000000f38000000000000000000000000192d2222110000 -% 270000000808001f2222341100000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 0000000000005598988888a844000000880000000000000000002299ae888888b800000044440000 -% 000000880000000000a88888888888a04e0000008800000000000000000000000000000000880000 -% 00000000000000000000880000000000880000000088000000000000000000008800000000000000 -% 00000000000000000000880000000000000000000088000000000000880000004444000000000088 -% 00000044440000000000880000005da888888888888f000000444400000000000000000044440000 -% 00000000880000000000008800000044440000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000020 -% 50444444505511000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c0052a000000079000000978e0000000000000000000000224d2d2222110000 -% 6c0000002222004c22222d4d2a000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 00000000005577000000004444000000880000000000000000009911000000008800000044440000 -% 00000088000000000088000000000000000000008800000000000000000000000000000000880000 -% 00000000000000000000980000000000980000000088000000000000000000008800000000000000 -% 00000000000000000000980000000000000000000098000000000000980000004444000000000088 -% 00000044440000000000880000004444000000000000000000444400000000000000000044440000 -% 00000000981100000000009800000044440000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000050 -% 764444445055aa330000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c003c952d0000790000792d7900000000000000000000005400000000000000 -% 5444000022220044000000005a000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 00000000008800000000004444000000880000000000000000008800000000008800000044440000 -% 000000880000000000a8000000000000000000008800000000000000000000000000000000880000 -% 00000000000000000000b60000000000980000000088000000000000000000008800000000000000 -% 000000000000000000006c440000000000000000007a440000000022980000004444000000000088 -% 00000044440000000000880000005d5d0000000000000000005d5d00000000000000000044440000 -% 000000006c4400000000229800000044440000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000aa0000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c003c4797000079000000007900000000000000000000004400000000000000 -% 44550800222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 0000000000881100000000444400000088000000000000000000990000000000880000005d760000 -% 000000a800000000008833000000000000000000a800000000000000000000000000000000880000 -% 00000000000000000000992200000033880000000088000000000000000000008800000000000000 -% 00000000000000000000229900000000000000000022aa0000000088220000004444000000000088 -% 00000044440000000000880000003377000000000000000000337700000000000000000044440000 -% 0000000022aa00000000882200000044440000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000554400000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c003c3c793c00790000000079000000000000000000000044000011443b0000 -% 44194400222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004444000000000000 -% 000000000022bb440000004444000000880000000000000000008888110000008800000000aa3300 -% 00000088550000000011bb4400000000000000004488110000000000000000000000000000880000 -% 0000000000000000000022aa662255bb110000000088000000000000000000008800000000000000 -% 000000000000000000000066aa33000000000000000066aa33338866000000004444000000000088 -% 000000444400000000008800000000aa550000000000000000008855000000000000000044440000 -% 000000000066aa333388660000000044440000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000505000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 440000000000003c3c003c3c00970079000000007900000000000000000000004400000000440000 -% 44004d11222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000002222000000000000 -% 000000000000117a9888889822000000440000000000000000000044a38888888f00000000227700 -% 00000000552200000000118998888888220000000033440000000000000000000000000000440000 -% 00000000000000000000000055885500000000000044000000000000000000004400000000000000 -% 00000000000000000000000022899888884400000000002277773300000000002222000000000044 -% 0000002222000000000044000000000055a888888844000000000055a38888000000000022220000 -% 00000000000022777733000000000022220000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 440000000000005d5d00000000006688884400000000004400000000000000001144000000000044 -% 88886600000000003f9888989833 -% 440000000000003c3c003c3c005b5b79000000007900000000000000000000004400000000440000 -% 4400114d222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000883300000000bb6600118888000000006644000000000000005555000000008888 -% 00006688000000004444000011bb -% 440000000000003c3c003c3c00009780000000007900000000000000000000005200000000440000 -% 440000443b2200440000000057000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000033aa0000000055660000000099220000002288000000000000009911000000338800 -% 0000007733000000444400000055 -% 440000000000003c3c003c3c00003cb2000000007900000000000000000000004433000000440000 -% 44000008602200440000002244000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000000005d -% a88888889888991100000000a811000000005d5d000000009900000082000000aa000000006c5d00 -% 00000011a8000000444400000000 -% 440000000000002d2d002d2d00000091000000005b0000000000000000000000003b574444470000 -% 33000000422000474444574400000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000000000000088000000000044440000000099000022d02200228800000000444400 -% 0000000088000000444400000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 440000000000000000000000880000000000444400000000665500775c77006655000000005da888 -% 8888888876000000444400000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 440000000000000000000000980000000000505000000000228800aa00bb00991100000000444400 -% 0000000000000000444400000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 44000000000000000000000098110000000070500000000000aa44770077339900000000005d5d00 -% 0000000000000000444400000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 440000000000000000000000448800000000aa00000000000099a011002298880000000000556600 -% 0000000000000000444400000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000044 -% 4400000000000000000000000077994455aa3300000000000070b0000000cc440000000000009977 -% 5d44444422000000444400000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000011 -% 1100000000000000000000000000224444110000000000000011300000003f000000000000000033 -% 5d44444422000000111100000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 66000000000000000000000000000000000000000000000000660000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000880000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000880000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000880000000000000000000000000000 -% 0000000000000066000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000000000000000000000000000000000880000000000000000000000000000 -% 0000000000000066991100000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 880000000022888888a89911000000003399a8888822000000880000000022aa2200000000000000 -% 000000000000000033bb11000000 -% 4400000000003c3c005d8a0000007900002d9779970f000000000000000000000844000000004d00 -% 0011555244220000335b4c4411000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 88000000000000000000338800000000aa1100000000000000880000008899220000000000000000 -% 00000000000000000022aa330000 -% 4400000000003c3c003cac0f0000790000790f003c7f000000000000000000000055000000004d00 -% 00441100000000004d00000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 8800000000000000000000a800000000a8000000000000000088005dbb4400000000000000000000 -% 0000000000000000000011aa4400 -% 4400000000003c3c003c68790000790000000000477f0000000000000000000000441900002a3300 -% 004c0000000000004c00000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 880000000000000000000088000000008800000000000000009099a8900000000000000000000000 -% 0000000000000000000000009966 -% 4400000000003c3c003c3c881e00790000000000a700000000000000000000000019440000550800 -% 00440000000000004400000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 880000000000115d444444a000000000880000000000000000a82200aa2200000000000000000000 -% 00000000000000000000000033d7 -% 4400000000003c3c003c3c1e790079000000006a4b000000000000000000000000005500084d0000 -% 00440000000000004400000000000000880000000000000000000000000000000000000000000000 -% 000000004ea088888888884400008888888888884400006688888888886600004488888888888800 -% 00448888888888882200228888888888884400008888888888884400006688888888886600006688 -% 88888888880000448888888888880000228888888888882200008888888888884400008888888888 -% 88660000668888888888660000448888888888880000448888888888882200228888888888884400 -% 00888888888888440000668888888888660000668888888888880000448888888888882200228888 -% 88888888440000888888888888440000668888888888660000668888888888880000448888888888 -% 88000022888888888888220000888888888888446600000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 880000000044aa6c444444a00000000088000000000000000088000011aa00000000000000000000 -% 0000000000000000000000668811 -% 4400000000003c3c003c3c00793c790000000f9700000000000000000000000000004411332a0000 -% 00440000000000004400000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% a300000000aa00000000008800000000880000000000000000880000007766000000000000000000 -% 0000000000000000000066990000 -% 4400000000003c3c003c3c000f9779000000792d0000000000000000000000000000193b4d000000 -% 004c0000000000004c00000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000011 -% 99000000008800000000008800000000a300000000000000008800000000aa110000000000000000 -% 0000000000000000009966000000 -% 4400000000003c3c003c3c00005b9c00001e8800000000000000000000000000000000584d000000 -% 004c1100000000005300000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000099 -% 4400000000bb11000000008800000000aa1100000000000000880000000033990000000000000000 -% 0000000000000011995500000000 -% 4400000000003c3c003c3c000000c00000ad8079793c000000000000000000000000005830000000 -% 00115e524422000033534c4411000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000004488a8bb66 -% 000000000033bba8888888b80000000033aaa8888822000000880000000000883300000000000000 -% 00000000000000aa330000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000004400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000002200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000001e1e0045450000003c00005b79954b000000000000000000000000001e1e00741e00 -% 00003c000000004b0000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000003c3c0047a0000000790000000000794b0000000000000000000000003c3c00878800 -% 0000790000004b5b0000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000002200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000003c3c003c7f5b000079000000000000790000000000000000000000003c3c0079792d -% 000079000000880f0000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000003c3c003c3ca70000790000000000794b0000000000000000000000003c3c00790f97 -% 00007900000097000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000 -% 0000000000003c3c003c3c3c7900790000005bc49c000000000000000000000000003c3c00790079 -% 3c007900002d79000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000003f988888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888e6 -% 0000000000003c3c003c3c00970f7900000000004b6a0000000000000000000000003c3c00790000 -% a7007900006a2d007900000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 0000000000003c3c003c3c002d7979000000000000950000000000000000000000003c3c00790000 -% 5b5b7900008800007900000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 0000000000003c3c003c3c0000888700000000000f950000000000000000000000003c3c00790000 -% 00888000009c7979b2791e0000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 0000000000003c3c003c3c00001eb9000000001e792d0000000000000000000000003c3c00790000 -% 003cb200000000007900000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 0000000000001e1e001e1e0000006800005b798a1e000000000000000000000000001e1e003c0000 -% 00007300000000003c00000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000004400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440006 -% 37444314001414000014140037374a37370d000d3e370d0000000000294646290000290000002900 -% 1b374141372900063e3722000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 1b000650001b1b00001b1b000000370000000044060d4900000000134100003a2000370000003700 -% 00001b1b000000371b00470c0088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000004444003d -% 0000003d001b1b00001b1b0000003700000000440006440000000020200000202000370000003700 -% 00001b1b00000042000025200088 -% 11000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 00000037001b1b00001b1b0000003700000000195b5b19000000001b1b00001b1b00370000003700 -% 00001b1b000000371b0030240088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000004400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 00000037001b1b00001b1b00000037000000003e060d3e000000001b1b00001b1b00370000003700 -% 00001b1b00000000374751000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000004444003d -% 0000003d002525000025250000003700000000480000480000000020200000202000440000004700 -% 00001b1b0000000000004c000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000004444003d -% 14000043000d450000450600000037000000004300064300000000193a00003a19003e06001b3000 -% 00001b1b00000000003e1b000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000006600000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440006 -% 3e443d22000029373e29000000002900000000143e37140000000000304642370000143e37370000 -% 0000141400000000302200000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000112000000000000000000000003f444444000000004e444444444444000000002200000000 -% 00000000111100000000000000000000000000005d444444444444000000005d4444445020000000 -% 0000000000002050444444440000000000000000003f000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000089a000000000000000000077aa8944444400000000a0444444444444000000009933000000 -% 00000000aa220000000000000000000000000000a844444444444400000000a84444445090bb3300 -% 000000003399905d44444444000000000000000033c9000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000aaaa00000000000000005577000000000000000000880000000000000000000011bb000000 -% 0000006677000000000000000000000000000000880000000000000000000088000000000000aa22 -% 00000000aa11000000000000000000000000000088a7110000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000000f0f001d1d0000001e0000453c3c3c1e000000000000000000000000001e00003800 -% 00000f0f000000002d00000000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00002288883300000000000000aa0000000000000000000088000000000000000000000055880000 -% 000011aa000000000000000000000000000000008800000000000000000000880000000000003377 -% 0000003366000000000000000000000000000000aa55660000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000006600000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c0052a00000007900008e3c3c3c1e00000000000000000000000000790000c00f -% 00003c3c000000886a00000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00007733337700000000000000a80000000000000000000088000000000000000000000000aa3300 -% 000099220000000000000000000000000000000088000000000000000000008800000000000000a8 -% 0000005d5d0000000000000000000000000000337700990000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c952d00007900007900000000000000000000000000000000007900009579 -% 00003c3c00005b5b0000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000aa0000aa0000000000000088000000000000000000008800000000000000000000000011bb00 -% 00557700000000000000000000000000000000008800000000000000000000880000000000000098 -% 00000044440000000000000000000000000000882200991100000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c479700007900007900000000000000000000000000000000007900007997 -% 0f003c3c000097000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00228800008822000000000000880000000000000000000088000000000000000000000000005588 -% 11aa0000000000000000000000000000000000008800000000000000000000880000000000002288 -% 00000044440000000000000000000000000000aa0000556600000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000006600000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c793c00790000a479953c0000000000000000000000000000790000791e -% 88003c3c0052a4955b00000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 007733000033770000000000008800000000000000000000b88888888844000000000000000000aa -% ae22000000000000000000000000000000000000c88888888888880000000088000000000000aa22 -% 0000004444000000006688a033000000000033770000009900000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c00970079000000000f883c000000000000000000000000007900007900 -% 881e3c3c00871e003c79000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00aa00000000aa000000000000880000000000000000000088000000000000000000000000000060 -% db000000000000000000000000000000000000008800000000000000000000a84444445070aa5500 -% 00000044440000000000004444000000000088220000009911000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c005b5b7900000000000f91000000000000000000000000007900007900 -% 0f883c3c0079000000a4000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 228800000000882200000000008800000000000000000000880000000000000000000000000011aa -% 55880000000000000000000000000000000000008800000000000000000000a84444445050110000 -% 000000444400000000000044440000000000aa000000005566000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c0000978000000000000091000000000000000000000000007900007900 -% 0079683c00910f0000a4000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 77330000000033770000000000880000000000000000000088000000000000000000000000009922 -% 00aa2200000000000000000000000000000000008800000000000000000000880000000000000000 -% 00000044440000000000004444000000003377000000000099000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c00003cb200000000005b5b000000000000000000000000007900007900 -% 000fab3c002d6a001e88000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% cc888888888888cc0000000000880000000000000000000088000000000000000000000000557700 -% 0011aa00000000000000000000000000000000008800000000000000000000880000000000000000 -% 000000444400000000000044440000000098988888888888d0110000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000002d2d002d2d000000a400005b79957900000000000000000000000000005b00005b00 -% 0000695100007988881e000000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000022 -% 88000000000000882200000000980000000000000000000088000000000000000000000011aa0000 -% 00005577000000000000000000000000000000008800000000000000000000880000000000000000 -% 0000005050000000000000444400000000aa00000000000055660000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000077 -% 33000000000000337700000000993300000000000000000088000000000000000000000099220000 -% 00000099220000000000000000000000000000008800000000000000000000880000000000000000 -% 00000022aa0000000000004444000000338800000000000000bb0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000000000aa -% 0000000000000000aa0000000011aa44000000000000000088000000000000000000005577000000 -% 00000011aa0000000000000000000000000000008800000000000000000000880000000000000000 -% 00000000668811000000004444000000773300000000000000992200000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000066 -% 00000000000000005500000000001177a8888888000000008f888888888888000000005500000000 -% 00000000442200000000000000000000000000004400000000000000000000440000000000000000 -% 00000000003398988888889822000000660000000000000000333300000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000004400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 1b443706000d0d00000d0d0037374437370d000000220000000000000642420d00001b0000001b00 -% 1b373d3d3729001b373741190088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000004444001b -% 37061b3e001b1b00001b1b00000037000000000037300000000000004c140d4c0d00370000003700 -% 00001b1b000000000000370d0088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440042 -% 00000046001b1b00001b1b00000037000000001b37000000000000243000002a2400370000003700 -% 00001b1b00000000000045000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000111100000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 00000037001b1b00001b1b000000370000000041241900000000001b1b00001b1b00370000003700 -% 00001b1b00000000002544060088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000002200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 00000037001b1b00001b1b000000370000000046203337000000001b1b00001b1b00370000003700 -% 00001b1b00000000003f2f060088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 000000370020200000202000000037000000003d000044000000001b1b00001b1b003d0000003d00 -% 00001b1b00000000003e00000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000002200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440044 -% 0000004900193300003a1900000037000000004400004400000000253100002b25004300000d3d00 -% 00001b1b00000000003e00000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000004444001b -% 452a333700003737373e00000000370000000037373737000000000045302a3e0600293e22450d00 -% 00001b1b000000001b2900000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 06251900000000141400000000000d00000000000d14000000000000002424060000000d1b000000 -% 0000060600000000060000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000002200000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c005d950000007900005b797987950000000000000000000008445c4444220000 -% 680000002222005444445c4d11000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003cac0f00007900000000006a3c000000000000000000004419000000000000 -% 6422000022220044000000114d000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c5d7900007900000000008800000000000000000000005400000000000000 -% 48550000222200440000000054000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c881e0079000000003ca01e000000000000000000004400000822110000 -% 44333300222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c1e880079000000005d8a1e0000000000000000000044000008224c0000 -% 44005e00222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c00793c7900000000792d00000000000000000000004400000000440000 -% 4400223b222200440000000044000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c000f977900000000880000000000000000000000004c00000000440000 -% 4400005528220044000000004c000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c0000799500000000880000000000000000000000004c11000000440000 -% 4400002254220044000000084c000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c003c3c000000c70000003c5b0000000000000000000000001155524444540000 -% 440000005a2800544444525519000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000004400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000006600000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000333300000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000600000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440029 -% 43464c0d003700000037000d373751373700000037000000000000003e4642450000370000003700 -% 1b374444372900443737370d0088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440049 -% 00000d440037000000370000000037000000000d370000000000001f370000312500370000003700 -% 00001b1b00000037000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000880000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000006600000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 00000037003700000037000000003700000000291b0000000000001b1b00001b1b00370000003700 -% 00001b1b00000037000000000088 -% a8888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888c80000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 0000003700370000003700000000370000000045000000000000001b1b00001b1b00370000003700 -% 00001b1b0000003a374437000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440037 -% 000000370037000000370000000037000000003e003700000000001b1b00001b1b00370000003700 -% 00001b1b0000000000003a130088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000006600000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440044 -% 000000440044000000440000000037000000254e3751370d000000252a0000252500440000004400 -% 00001b1b0000000000002e290088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000004444004c -% 0d002930002930002937000000003700000000000037000000000006450000450d00371b06371b00 -% 00001b1b0000000000063e060088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000004444000d -% 3d4b2900000029372900000000001b0000000000001b0000000000001b42461b00000630371b0000 -% 00000d0d0000001b37441b000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000222200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000004400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000444400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000445044444444444422000044444444444433000033444444444444000022444444444444 -% 00001144444444444411001144444444444411000044444444444422000044444444444433000033 -% 44444444444400002244444444444400001144444444444411001144444444444422000044444444 -% 44443300003344444444444400002244444444444400001144444444444411001144444444444422 -% 00004444444444443300003344444444443300002244444444444400002244444444444411001144 -% 44444444441100004444444444442200004444444444443300003344444444444400002244444444 -% 44440000114444444444441100114444444444449800000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000112044444444444422000044444444444433000033444444444444000022444444444444 -% 00001144444444444411001144444444444411000044444444444422000044444444444433000033 -% 44444444444400002244444444444400001144444444444411001144444444444422000044444444 -% 44443300003344444444444400002244444444444400001144444444444411001144444444444422 -% 00004444444444443300003344444444443300002244444444444400002244444444444411001144 -% 44444444441100004444444444442200004444444444443300003344444444444400002244444444 -% 44440000114444444444441100114444444444443f00000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 37444314001414000014140037374a37370d00143e370d000000000022464a220000290000002900 -% 1b3741413729001b374922000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f0000000000755f5f5f4700008c5f5f -% 755f0000000000000000000000000000000000000000000000000000000000000000000044440030 -% 1b00064c001b1b00001b1b00000037000000003e0606490000000006450000371400370000003700 -% 00001b1b000000000000450d0088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f0000000000005f0000 -% 005f1700000000000000000000000000000000000000000000000000000000000000000044440044 -% 00000044001b1b00001b1b0000003700000000000006470000000025250000252500370000003700 -% 00001b1b000000000000370d0088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f0000000000005f0000 -% 00384000000000000000000000000000000000000000000000000000000000000000000044440037 -% 00000037001b1b00001b1b000000370000000000003e0d000000001b1b00001b1b00370000003700 -% 00001b1b00000000295941000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000006a2f2f230000005f0000 -% 002f2f00000000000000000000000000000000000000000000000000000000000000000044440037 -% 00000037001b1b00001b1b000000370000000000143700000000001b1b00001b1b00370000003700 -% 00001b1b0000000000064c000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000006a2f2f230000005f0000 -% 002f2f00000000000000000000000000000000000000000000000000000000000000000044440037 -% 00000037002a2500002525000000370000000000450600000000001b1b00001b1b00440000004400 -% 00001b1b0000000000002a290088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f0000000000005f0000 -% 002f2f0000000000000000000000000000000000000000000000000000000000000000004444003d -% 06000049000d3e0000450d00000037000000001b30000000000000193a00002d19003e06001b3000 -% 00001b1b0000000000003a130088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f0000000000005f0000 -% 00383800000000000000000000000000000000000000000000000000000000000000000044440006 -% 454749220000293e3e290000000037000000004a3737290000000000374a4a370000143e45370600 -% 00001b1b0000001b374437000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000002f2f00000000005f0000000000005f0000 -% 00642c00000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000040755f5f5f0000755f5f5f4700008c5f64 -% 755f0000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% a8888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 8888888888888888d7888888888888000044888888888888000022888888888888220000a8a88888 -% 88884400008888888888886600006688888888888800004488888888888800002288888888888822 -% 00228888888888884400008888c8 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400000000003c3c005d95000000790000009c798800000000000000000000000d4542373e1b0000 -% 37374444373700000046374700000000000000000000374437373000002937375137370d00000653 -% 2500000000000000002a4d54444411005c330000004400005c444454550800000000000044373742 -% 4c14000037002544373d3d2900001b37424c1400000000000000373d3d3e3700002937375137371b -% 0000373d4337000000000000000000000079005d950000007900001ea779971e0000000000000000 -% 0000004d00000000441100085e52443300002a4d5444110000000000000000790000c70000000079 -% 00000fc70000009b799c0000000000000000003c3c00a45b00000079000000889c00007988885b00 -% 00000000000000790000b22d00000079000000a05d000000880000000000000000000000790000b9 -% 0f0000007900000fb75200957979795b000000000000000d25250600000d0000000d00141b20201b -% 0d00000d1b0000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000001424250600060600000606 -% 00141b20201b0d00000c0c000088 -% 4400000000003c3c003cac0f00007900005b5b00880f0000000000000000000037060000000d0000 -% 00001b1b000000000d3e00371b00000000000000001b290000000d00000000003700000000064c2a -% 1b00000000000000005e000000000000444d080000440000440000002a3300000000000037000000 -% 063e000037001b1b000000370600000000063e00000000000014370000000d000000000037000000 -% 000000000037000000000000000000000079003ca01e0000790000790f000f880000000000000000 -% 0000004d000000005500003b1900000000005e000000000000000000000000790000957900000079 -% 000fa78e00001e8800793c00000000000000003c3c0079a7000000790000795b79001e6a00009500 -% 000000000000007900008097000000790000887f3c00000088000000000000000000000079000095 -% 7900000079000fa75d3c007900000000000000000000064c252b4c0600370000003700141b2f2f1b -% 0d00064f353d00008800000000000000000000000000000000000000000000000000000044440000 -% 14444414001b00001b00293744371b00063a001b37220000000000000d37242b4c001b1b00001b1b -% 00141b2f2f1b0d00065325000088 -% 4400000000003c3c003c52880000790000910f005151000000000000000000003700000000000000 -% 00001b1b000000003e1400063e00000000000000001b220000000000000000003700000000060d1b -% 1b00000000000000004c000000000000442244000044000044000000004c00000000000037000000 -% 003d000037001b1b000000242400000000003e000000000000142900000000000000000037000000 -% 000000000037000000000000000000000079003c5288000079000093000000870000000000000000 -% 000000332a0000193b00004c0000000000004c00000000000000000000000079000079970f000079 -% 000f1e790000882d000f9100000000000000003c3c00794b6a00007900001e00790000000000ab00 -% 0000000000000079000079793c00007900002d3c3c00002d6a000000000000000000000079000079 -% 881e000079000f1e3c3c007900000000000000000000242a00002a240037000000370000001b1b00 -% 00002a20004e00008800000000000000000000000000000000000000000000000000000044440000 -% 4906064400370000370000003700000045410030004e0000000000002a24000042001b1b00001b1b -% 0000001b1b000000372a1b000088 -% 4400000000003c3c003c3c881e007900007900000f79000000000000000000001b4a0d0000000000 -% 00001b1b00000000370000003e000000000000000000491b0000000000000000370000000000001b -% 1b00000000000000004400001128100044004d110044000044000000004400000000000037000000 -% 0037000037001b1b0000003a13000014314922000000000000004931000000000000000037000000 -% 000006244137000000000000000000000079003c3c793c00790000940f0000950000000000000000 -% 000000084d0000441100004400000000000044000000000000000000000000790000791e88000079 -% 000000790000790000008800000000000000003c3c007900970f00790000000079000000004b6a00 -% 000000000000007900007900970000790000003c3c0000792d000000000000000000000079000079 -% 1e880000790000003c3c00873c511e000000000000001b1b00001b1b0037000000370000001b1b00 -% 00003700003706008800000000000000000000000000000000000000000000000000000044440000 -% 370000370037000037000000370000000037000000490000000000001b1b000037001b1b00001b1b -% 0000001b1b000000001b1b000088 -% 4400000000003c3c003c3c0f8800790000910000009100000000000000000000000d3e3e0d000000 -% 00001b1b00000000420000004200000000000000000006373e1b000000000000370000000000001b -% 1b0000000000000000440000113b28004400114d0044000044000000004400000000000037000000 -% 003700003700202f1b243d37000000143147220000000000000000294c2900000000000037000000 -% 00000624383e000000000000000000000079003c3c0f97007900002da75d3c940000000000000000 -% 000000004d00005500000044000000000000440000000000000000000000007900007900881e0079 -% 000000790000910000009100000000000000003c3c0079003c790079000000007900000000a70000 -% 0000000000000079000079005b5b00790000003c3c00009700001e00000000000000000079000079 -% 00793c00790000003c3c00383c51884b0000000000001b1b00001b1b0037000000370000001b1b00 -% 00004a00002a24008800000000000000000000000000000000000000000000000000000044440000 -% 370000370037000037000000370000000037000030220000000000001b1b000037001b1b00001b1b -% 0000001b1b000000001b1b000088 -% 4400000000003c3c003c3c00793c7900007900001e79000000000000000000000000000d44140000 -% 00001b1b00000000370000003e00000000000000000000000039370000000000370000000000001b -% 1b000000000000000044000000222200440000442244000044000000004400000000000037000000 -% 003700003700202f1b2949000000000000004900000000000000000000343e000000000037000000 -% 000000000044000000000000000000000079003c3c005b5b790000000f515d7a0000000000000000 -% 00000000332a193b000000440000000000004400000000000000000000000079000079000f970079 -% 000000790000790000008800000000000000003c3c00790000881e790000000079000000793c0000 -% 00000000000000790000790000970f790000003c3c000f7900007900000000000000000079000079 -% 000f9700790000003c3c0000000000a00000000000001b1b00001b1b003d0000003d0000001b1b00 -% 00003a0c003d06008800000000000000000000000000000000000000000000000000000044440000 -% 3d00003d0044000044000000370000000037000645000000000000001b1b00003700202000002020 -% 0000001b1b000000001b1b000088 -% 4400000000003c3c003c3c000f977900009c0f00455f000000000000000000000000000006370000 -% 00001b1b00000000341400064400000000000000000000000000370000000000370000000000001b -% 1b000000000000000054000000222200440000085544000044000000085400000000000037000000 -% 0044000037001b1b00003e0d0000000000004400000000000000000000003e000000000037000000 -% 000000000044000000000000000000000079003c3c000097800000000000881e0000000000000000 -% 00000000084d44110000005400000000000058000000000000000000000000790000790000793c79 -% 000000790000732d000f9500000000000000003c3c007900001e8879000000007900001e88000000 -% 000000000000007900007900003c79790000003c3c00609c7979b279000000000000000079000079 -% 00005b5b790000003c3c000000000095000000000000242a00002a24004900000d3d0000001b1b00 -% 00002b26004300008800000000000000000000000000000000000000000000000000000044440000 -% 3d060643003e140d45000000370000000037003e0d00000000000000242400004200133a00002620 -% 0000001b1b000000001b1b000088 -% 4400000000003c3c003c3c00005ba400004b5b00971e000000000000000000001400000014370000 -% 00001b1b00000000063e0037140000000000000000060d000000370000000000370000000000001b -% 1b00000000000000005e000000222200440000003b58000044000000332a00000000000037000000 -% 063e000037001b1b00000d3e00000000000637000000000000060d00000045000000000037000000 -% 00000000003e000000000000000000000079003c3c00003cb2000000005b6a000000000000000000 -% 00000000004d5500000000441900000000005500000000000000000000000079000079000000a779 -% 0000007900000f8800792d00000000000000003c3c0079000000798e00000000790000881e000000 -% 000000000000007900007900000097800000003c3c00000000007900000000000000000079000079 -% 00000097800000003c3c000000000f8800000000000006452b253e00002937224c0d0000001b1b00 -% 00000646413700008800000000000000000000000000000000000000000000000000000044440000 -% 1444441400063737060000001b000000001b004737370000000000001445242b4500003e37224c00 -% 0000001b1b000000001b1b000088 -% 4400000000003c3c003c3c000000c00000009c887e0000000000000000000000144c3e4645060000 -% 00001b1b0000000000463e47000000000000000000063e45443e140000000000370000000000001b -% 1b00000000000000002a555444542e0044000000006c00005c4444544d0000000000000044373742 -% 4c14000037001b1b0000003e06001b3742451400000000000006373e3d4929000000000037000000 -% 0000373d4929000000000000000000000079003c3c000000c0000000796a00000000000000000000 -% 0000000000424e00000000085557443300002a5e5444110000000000000000790000790000005b9c -% 000000790000009b889c0000000000000000003c3c00790000000fb900000000790045b279797900 -% 00000000000000790000790000002dab0000003c3c00000000007900000000000000000079000079 -% 0000003cab0000003c3c003c7991a72d00000000000000062525060000000d1b0600000000060600 -% 00000006140000008800000000000000000000000000000000000000000000000000000044440000 -% 000000000000000000000000000000000000000000000000000000000006242500000000141b0000 -% 0000000606000000000606000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 4400004a3737491b00001414003a37374637000000003d410c00000000000000003b5c4444220000 -% 5c000000191900474444573b08000000000000001f4137473e0d00002900004237374e2200000000 -% 4a000000000000004a37374e1b00001414003a37374a300600000d374c220000000000000000374e -% 3e300d00003737414137370d0000374537060000000000000000225b4c4444000057080000003300 -% 005c444c5b1900000000000000000000005b00516a0000005b00000079a779000000000000000000 -% 00000833000000002a1900003b5c44330000084d5844110000000000000000195b4c444400005208 -% 0000003300005c444c5b190000000000000000002d2d009b0f0000005b00000076510000008e4500 -% 00000000000000005b0039820000005b0000000fa400007979954b000000000000000000195b4c44 -% 44000052110000003300005c444c4c22000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 440000370000003e0d001b1b00370000001b37000022350c4100000000000000442a000000000000 -% 68110000222200440000002244000000000000001b1b00000d450000370000370000003e1400003e -% 4a00000000000000370000003e14001b1b00370000001b3700003e0d004119000000000000292900 -% 001422000000001b1b00000000293000144300000000000000085500000000000054440000004400 -% 004400000855000000000000000000000079003cac0f00007900004b6a006a4b0000000000000000 -% 0000005500000000550000333b0000000000550800000000000000000000085e0000000000004c4d -% 00000044000044000008550800000000000000003c3c008e790000007900005ba03c0000887f3c00 -% 000000000000000079003cac0f00007900000fa78e0000000000792d000000000000000055080000 -% 0000004c440000004400004400000055110000000000000019280d000d000006060d1b251b140000 -% 1f0000140d0000008800000000000000000000000000000000000000000000000000000044440000 -% 000d291900060600000d001b20201b06000c0c0006190000000000000019290d000d000006060d1b -% 251b1b000019000d201900000088 -% 440000370000002424001b1b0037000000004a00004900003d000000000000005200000000000000 -% 4c4d0000222200440000000052000000000000001b1b000000460000370000370000002424001429 -% 370000000000000037000000242a001b1b0037000000004200000d00002e34000000000000370000 -% 000000000000001b1b000000000d0000004b000000000000002d34000000000000444d1100004400 -% 004400000052000000000000000000000079003c68790000790000aa2b0000aa0000000000000000 -% 00000044110000114d0000520000000000005700000000000000000000002d34000000000000444d -% 110000440000440000002d2d00000000000000003c3c0079881e0000790000793c3c002d5b3c3c00 -% 000000000000000079003c527900007900005b2d7900000000002d79000000000000000052000000 -% 000000444422000044000044000000342d000000000000223a234c003700001b1b0d1b441b140014 -% 5100144a4f0600008800000000000000000000000000000000000000000000000000000044440000 -% 0d45293a221b1b000037001b2f2f1b06065325003e41000000000000223a294c0d3700001b1b0d1b -% 441b1b001451000d203a22000088 -% 440000370000001b1b001b1b0037000000004a00003d0000311b0000000000004400000000000000 -% 44442200222200440000000044000000000000001b1b000000370000370000370000002424000000 -% 3700000000000000370000001b1b001b1b0037000000004200000000004506000000000000293300 -% 000000000000001b1b00000000000000292900000000000000222200000000000044114d00004400 -% 004400000044000000000000000000000079003c3c880f007900002d7900793c0000000000000000 -% 000000194400003b2200004400000000000044000000000000000000000022220000000000004408 -% 4d000044000044000000222200000000000000003c3c00790f880000790000003c3c0000003c3c00 -% 000000000000000079003c3c881e007900000000790000000000882d000000000000000044000000 -% 00000044085500004400004400000022220000000000004400002f253700001b1b00003700000029 -% 3700460d2a2400008800000000000000000000000000000000000000000000000000000044440000 -% 25250000441b1b00003700001b1b00001b2a1b0d143700000000000044000025253700001b1b0000 -% 3700000022370000001b37000088 -% 440000370000001b1b001b1b00370000002930000044000025250000000000004400001144540000 -% 44085500222200440000000044000000000000001b1b00000037000037000037000006450d000000 -% 3700000000000000370000001b1b001b1b0037000000293700000000293000000000000000002a3e -% 1b0000000000001b1b00000000000006450000000000000000222200004464000044004d11004400 -% 004400000044000000000000000000000079003c3c1e88007900000fb6b9a60f0000000000000000 -% 00000000550000550000004400000000000044000000000000000000000022220000446400004400 -% 44220044000044000000222200000000000000003c3c007900793c00790000003c3c0000003c3c00 -% 000000000000000079003c3c1e880079000000007900000079c49c00000000000000000044000033 -% 54220044003b2a004400004400000022220000000000003700001b1b3700001b1b00003700000000 -% 370044000d4400008800000000000000000000000000000000000000000000000000000044440000 -% 1b1b0000371b1b00003700001b1b0000001b1b0000370000000000003700001b1b3700001b1b0000 -% 3700000000370000425a0c000088 -% 440000370000001b1b001b1b0044373759330000003700001b1b0000000000004400000000440000 -% 44003b22222200440000000044000000000000001b1b0000003700003700004a3737571b00000000 -% 3700000000000000370000001b1b001b1b0044373757370000000006450000000000000000000006 -% 374c06000000001b1b00000000000037140000000000000000222200000044000044000855004400 -% 004400000044000000000000000000000079003c3c00792d790000792d002d790000000000000000 -% 000000003b1911440000004400000000000044000000000000000000000022220000004400004400 -% 08550044000044000000222200000000000000003c3c0079000f9700790000003c3c0000003c3c00 -% 000000000000000079003c3c00793c79000000007900000000005b4b000000000000000044000000 -% 2222004400005e004400004400000022220000000000003700001b1b3d0000202000003700000000 -% 37003d00192d00008800000000000000000000000000000000000000000000000000000044440000 -% 1b1b000037202000003d00001b1b0000001b1b0000370000000000003700001b1b3d000020200000 -% 3700000000370000000d44000088 -% 440000370000001b1b001b1b003700001b370000004900003f140000000000004400000000440000 -% 4400005e222200440000000044000000000000001b1b0000003700003700003700003e0d00000000 -% 3700000000000000370000001b1b001b1b003700000d3e00000000371b0000000000000000000000 -% 000d3e000000001b1b00000000001437000000000000000000222200000044000044000044224400 -% 004400000044000000000000000000000079003c3c000f977900009c0000009c0000000000000000 -% 0000000011443b190000004400000000000044000000000000000000000022220000004400004400 -% 00333344000044000000222200000000000000003c3c007900005b5b790000003c3c0000003c3c00 -% 000000000000000079003c3c000f9779000000007900000000000095000000000000000044000000 -% 2222004400002a33440000440000002222000000000000420600351f371b003a1300003700000000 -% 3700371b331900008800000000000000000000000000000000000000000000000000000044440000 -% 2430000d42133a001b3700001b1b0000001b1b0000370000000000004206002a24371b003a190000 -% 3700000000370000000d42000088 -% 440000370000002b25001b1b0037000000370600003e060045000000000000005408000000440000 -% 44000033472200440000000054000000000000001b1b0000004900003700003700000d3e00000000 -% 3700000000000000370000002b2b001b1b0037000000370600000d3e000000000000000000000000 -% 00003e000000001b1b000000000045060000000000000000002e3d000000440000440000084d4400 -% 004400000054000000000000000000000079003c3c00006a9c000095000000950000000000000000 -% 0000000000555500000000540800000000005a00000000000000000000002e3d0000004400004400 -% 00005e44000044000000452700000000000000003c3c007900000097800000003c3c0000003c3c00 -% 000000000000000079003c3c00005b9c000000007900000000001e8a000000000000000054000000 -% 2222004400000055480000440000003d2e0000000000001443473e00063737370000002900000000 -% 2900063f420000008800000000000000000000000000000000000000000000000000000044440000 -% 003e48430d0037373e060000141400000014140000290000000000000d43493e00063e3737000000 -% 290000000029001b3d430d000088 -% 440000441b1b264506001b1b00370000000d3700001447373500000000000000224d2d22224c0000 -% 440000006028004c22222d552a00000000000000202f1b253037000037000037000000370d000000 -% 3700000000000000441b1b2b3e06001b1b00370000000d3700004e201b1b0d0000000000001b3e22 -% 24451b000000001b1b00000000313a1b1b1400000000000000005e30282254000044000000335c00 -% 005422283855000000000000000000000079003c3c000000c700002d973c883c0000000000000000 -% 0000000000445000000000194d2d22190000443b2e22080000000000000000553028225400004400 -% 00002a600000542228385e0000000000000000003c3c00790000003cb20000003c3c0000003c3c00 -% 000000000000000079003c3c000000c7000000007900003c3c60a70f00000000000000004d382822 -% 3b22004400000022640000542228305e080000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 440000251b1b200600000606000d000000000d000000141b000000000000000000112d22221f0000 -% 110000001808001f22222d1100000000000000000c201b25140000000d00000d0000000606000000 -% 0d00000000000000251b1b250600000606000d000000001400002a1b1b1b0d00000000000000061b -% 240d0000000000060600000000191b1b1b140000000000000000082828222e000011000000001f00 -% 002e2228280000000000000000000000001e000f0f000000380000001e3c2d000000000000000000 -% 000000000010100000000000112d2219000000192e22080000000000000000002828222e00001100 -% 0000001f00002e222828000000000000000000000f0f001e00000000450000000f0f0000000f0f00 -% 00000000000000001e000f0f00000038000000001e00003c3c520f00000000000000000000282822 -% 28080011000000002600002e22282800000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 44000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000008800000000000000000000000000000000000000000000000000000044440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088 -% 76444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 4444444444444444b44444444444440000224444444444440000114444444444441100007f7f4444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 44444444444444444444444444a8 -%%EndImage -%%EndPreview -save countdictstack mark newpath /showpage {} def /setpagedevice {pop} def -%%EndProlog -%%Page 1 1 -%%DocumentFonts: - -% Prolog copyright 1994-2003 Trolltech. You may copy this prolog in any way -% that is directly related to this document. For other use of this prolog, -% see your licensing agreement for Qt. -/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D -/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D -/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D -/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read -pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end -d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi -false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88 -0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{ -LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{ -gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get -SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7 -bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL -0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB -exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL -ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1 -eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if -64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3 -i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll -putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3 -1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D -/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3 -colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1 -QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray -QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2 -add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq -{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC -imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel -where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d -/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7 -DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d -/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height -h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4 -DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{ -pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC -WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{ -1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie} -if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4 -2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg -RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0 -exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if -BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h -add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0 -6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT -}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h -D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div -add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1 -ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT -0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy -MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R -{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h -ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry -D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y -w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul -200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90 -x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0 --90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h -ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale -NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS} -D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT -x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP -ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255 -div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0 -B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25 -/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true -exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3 --1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch -/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup -maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding -fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length -dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end -definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d} -D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty -MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch -stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT -1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0 -exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore -showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop -pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D -/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt -ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP} -D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D - -/LArr[ [] [] [ 83.333 25.000 ] [ 25.000 83.333 ] [ 25.000 25.000 ] [ 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 25.000 25.000 ] ] d -/pageinit { -% 297*420mm (portrait) -0 1191 translate 0.12 -0.12 scale/defM matrix CM d } d -QI -[1 0 0 1 0 0]ST -1 4 B 1 1 PE -NB -W BC -3072 9925 0 HL -3072 9452 9925 VL -0 9452 3072 HL -0 9925 9452 VL -3781 9925 3308 HL -3781 8507 9925 VL -3308 8507 3781 HL -3308 9925 8507 VL -3781 8507 3781 HL -3781 8507 3781 HL -3781 8507 3781 HL -3781 8507 3781 HL -1 4 B 1 1 PE -3123 9925 3072 HL -3199 9925 3148 HL -3276 9925 3225 HL -3308 9925 3301 HL -1 4 0 0 255 1 1 PE -59 9606 9535 VL -83 9535 9606 VL -122 9606 83 9535 DL -122 9535 9606 VL -NP -169 9539 MT -167 9538 LT -166 9536 LT -164 9535 LT -162 9535 LT -160 9535 LT -158 9536 LT -156 9537 LT -155 9538 LT -154 9539 LT -QS -NP -154 9539 MT -153 9541 LT -152 9542 LT -151 9544 LT -150 9546 LT -149 9548 LT -149 9550 LT -148 9552 LT -148 9554 LT -147 9555 LT -QS -NP -147 9586 MT -148 9588 LT -148 9590 LT -149 9592 LT -150 9594 LT -150 9596 LT -151 9598 LT -152 9599 LT -153 9601 LT -154 9602 LT -QS -NP -154 9602 MT -156 9604 LT -157 9605 LT -159 9606 LT -161 9606 LT -163 9606 LT -165 9605 LT -167 9604 LT -168 9603 LT -169 9602 LT -QS -NP -169 9602 MT -170 9600 LT -171 9599 LT -172 9597 LT -173 9595 LT -174 9593 LT -174 9591 LT -175 9590 LT -175 9588 LT -176 9586 LT -QS -NP -176 9586 MT -176 9584 LT -176 9582 LT -177 9580 LT -177 9578 LT -177 9576 LT -177 9574 LT -177 9572 LT -177 9571 LT -QS -NP -177 9571 MT -177 9569 LT -177 9567 LT -177 9565 LT -177 9563 LT -177 9561 LT -176 9559 LT -176 9557 LT -176 9555 LT -QS -NP -176 9555 MT -175 9553 LT -175 9551 LT -174 9549 LT -173 9547 LT -172 9545 LT -172 9544 LT -171 9542 LT -169 9540 LT -169 9539 LT -QS -NP -146 9571 MT -146 9573 LT -146 9575 LT -146 9577 LT -146 9579 LT -146 9581 LT -147 9583 LT -147 9584 LT -147 9586 LT -QS -NP -147 9555 MT -147 9557 LT -147 9559 LT -146 9561 LT -146 9563 LT -146 9565 LT -146 9567 LT -146 9569 LT -146 9571 LT -QS -1 4 127 d2 1 1 PE -287 9771 311 HL -272 9827 9787 VL -311 9842 287 HL -311 9803 9842 VL -299 9803 311 HL -NP -287 9771 MT -285 9772 LT -284 9772 LT -282 9773 LT -280 9773 LT -278 9774 LT -277 9776 LT -275 9777 LT -274 9779 LT -273 9781 LT -272 9783 LT -272 9784 LT -272 9786 LT -272 9787 LT -QS -NP -272 9827 MT -272 9829 LT -272 9831 LT -273 9832 LT -274 9834 LT -275 9836 LT -276 9837 LT -278 9839 LT -279 9840 LT -281 9841 LT -283 9842 LT -285 9842 LT -287 9842 LT -287 9842 LT -QS -335 9771 9842 VL -374 9842 335 9771 DL -374 9771 9842 VL -421 9842 398 HL -437 9787 9827 VL -398 9771 421 HL -398 9842 9771 VL -NP -421 9842 MT -423 9842 LT -425 9842 LT -427 9841 LT -429 9840 LT -431 9839 LT -432 9838 LT -434 9836 LT -435 9835 LT -436 9833 LT -436 9831 LT -437 9829 LT -437 9827 LT -437 9827 LT -QS -NP -437 9787 MT -437 9785 LT -437 9783 LT -436 9781 LT -435 9779 LT -434 9778 LT -433 9776 LT -431 9775 LT -430 9774 LT -428 9773 LT -426 9772 LT -424 9772 LT -422 9771 LT -421 9771 LT -QS -760 9535 784 HL -744 9590 9551 VL -784 9606 760 HL -784 9567 9606 VL -772 9567 784 HL -NP -760 9535 MT -758 9535 LT -756 9536 LT -754 9536 LT -752 9537 LT -751 9538 LT -749 9540 LT -748 9541 LT -747 9543 LT -746 9544 LT -745 9546 LT -745 9548 LT -744 9550 LT -744 9551 LT -QS -NP -744 9590 MT -744 9592 LT -745 9594 LT -745 9596 LT -746 9598 LT -747 9600 LT -749 9601 LT -750 9603 LT -752 9604 LT -754 9605 LT -755 9605 LT -757 9606 LT -759 9606 LT -760 9606 LT -QS -807 9535 9606 VL -847 9606 807 9535 DL -847 9535 9606 VL -894 9606 870 HL -910 9551 9590 VL -870 9535 894 HL -870 9606 9535 VL -NP -894 9606 MT -896 9606 LT -898 9606 LT -900 9605 LT -902 9604 LT -903 9603 LT -905 9602 LT -906 9600 LT -907 9599 LT -908 9597 LT -909 9595 LT -909 9593 LT -910 9591 LT -910 9590 LT -QS -NP -910 9551 MT -910 9549 LT -909 9547 LT -909 9545 LT -908 9543 LT -907 9542 LT -905 9540 LT -904 9539 LT -902 9537 LT -900 9537 LT -899 9536 LT -897 9535 LT -895 9535 LT -894 9535 LT -QS -1233 9771 1256 HL -1217 9827 9787 VL -1256 9842 1233 HL -1256 9803 9842 VL -1244 9803 1256 HL -NP -1233 9771 MT -1231 9772 LT -1229 9772 LT -1227 9773 LT -1225 9773 LT -1223 9774 LT -1222 9776 LT -1220 9777 LT -1219 9779 LT -1218 9781 LT -1218 9783 LT -1217 9784 LT -1217 9786 LT -1217 9787 LT -QS -NP -1217 9827 MT -1217 9829 LT -1217 9831 LT -1218 9832 LT -1219 9834 LT -1220 9836 LT -1221 9837 LT -1223 9839 LT -1224 9840 LT -1226 9841 LT -1228 9842 LT -1230 9842 LT -1232 9842 LT -1233 9842 LT -QS -1280 9771 9842 VL -1319 9842 1280 9771 DL -1319 9771 9842 VL -1367 9842 1343 HL -1382 9787 9827 VL -1343 9771 1367 HL -1343 9842 9771 VL -NP -1367 9842 MT -1369 9842 LT -1370 9842 LT -1372 9841 LT -1374 9840 LT -1376 9839 LT -1377 9838 LT -1379 9836 LT -1380 9835 LT -1381 9833 LT -1382 9831 LT -1382 9829 LT -1382 9827 LT -1382 9827 LT -QS -NP -1382 9787 MT -1382 9785 LT -1382 9783 LT -1381 9781 LT -1380 9779 LT -1379 9778 LT -1378 9776 LT -1376 9775 LT -1375 9774 LT -1373 9773 LT -1371 9772 LT -1369 9772 LT -1367 9771 LT -1367 9771 LT -QS -1717 9606 1693 9535 DL -1741 9535 1717 9606 DL -1780 9535 1796 HL -1764 9590 9551 VL -1796 9606 1780 HL -NP -1780 9535 MT -1778 9535 LT -1776 9536 LT -1774 9536 LT -1772 9537 LT -1771 9538 LT -1769 9540 LT -1768 9541 LT -1767 9543 LT -1766 9544 LT -1765 9546 LT -1764 9548 LT -1764 9550 LT -1764 9551 LT -QS -NP -1764 9590 MT -1764 9592 LT -1765 9594 LT -1765 9596 LT -1766 9598 LT -1767 9600 LT -1769 9601 LT -1770 9603 LT -1772 9604 LT -1774 9605 LT -1775 9605 LT -1777 9606 LT -1779 9606 LT -1780 9606 LT -QS -1835 9535 1851 HL -1819 9590 9551 VL -1851 9606 1835 HL -NP -1835 9535 MT -1833 9535 LT -1831 9536 LT -1829 9536 LT -1827 9537 LT -1826 9538 LT -1824 9540 LT -1823 9541 LT -1822 9543 LT -1821 9544 LT -1820 9546 LT -1820 9548 LT -1819 9550 LT -1819 9551 LT -QS -NP -1819 9590 MT -1820 9592 LT -1820 9594 LT -1821 9596 LT -1821 9598 LT -1822 9600 LT -1824 9601 LT -1825 9603 LT -1827 9604 LT -1829 9605 LT -1831 9605 LT -1832 9606 LT -1834 9606 LT -1835 9606 LT -QS -1717 9842 1693 9771 DL -1741 9771 1717 9842 DL -1780 9771 1796 HL -1764 9827 9787 VL -1796 9842 1780 HL -NP -1780 9771 MT -1778 9772 LT -1776 9772 LT -1774 9773 LT -1772 9773 LT -1771 9774 LT -1769 9776 LT -1768 9777 LT -1767 9779 LT -1766 9781 LT -1765 9783 LT -1764 9784 LT -1764 9786 LT -1764 9787 LT -QS -NP -1764 9827 MT -1764 9829 LT -1765 9831 LT -1765 9832 LT -1766 9834 LT -1767 9836 LT -1769 9837 LT -1770 9839 LT -1772 9840 LT -1774 9841 LT -1775 9842 LT -1777 9842 LT -1779 9842 LT -1780 9842 LT -QS -1835 9771 1851 HL -1819 9827 9787 VL -1851 9842 1835 HL -NP -1835 9771 MT -1833 9772 LT -1831 9772 LT -1829 9773 LT -1827 9773 LT -1826 9774 LT -1824 9776 LT -1823 9777 LT -1822 9779 LT -1821 9781 LT -1820 9783 LT -1820 9784 LT -1819 9786 LT -1819 9787 LT -QS -NP -1819 9827 MT -1820 9829 LT -1820 9831 LT -1821 9832 LT -1821 9834 LT -1822 9836 LT -1824 9837 LT -1825 9839 LT -1827 9840 LT -1829 9841 LT -1831 9842 LT -1832 9842 LT -1834 9842 LT -1835 9842 LT -QS -1941 9771 1965 HL -1926 9827 9787 VL -1965 9842 1941 HL -1965 9803 9842 VL -1953 9803 1965 HL -NP -1941 9771 MT -1939 9772 LT -1938 9772 LT -1936 9773 LT -1934 9773 LT -1932 9774 LT -1931 9776 LT -1929 9777 LT -1928 9779 LT -1927 9781 LT -1926 9783 LT -1926 9784 LT -1926 9786 LT -1926 9787 LT -QS -NP -1926 9827 MT -1926 9829 LT -1926 9831 LT -1927 9832 LT -1928 9834 LT -1929 9836 LT -1930 9837 LT -1932 9839 LT -1933 9840 LT -1935 9841 LT -1937 9842 LT -1939 9842 LT -1941 9842 LT -1941 9842 LT -QS -1989 9771 9842 VL -2028 9842 1989 9771 DL -2028 9771 9842 VL -2075 9842 2052 HL -2091 9787 9827 VL -2052 9771 2075 HL -2052 9842 9771 VL -NP -2075 9842 MT -2077 9842 LT -2079 9842 LT -2081 9841 LT -2083 9840 LT -2085 9839 LT -2086 9838 LT -2088 9836 LT -2089 9835 LT -2090 9833 LT -2090 9831 LT -2091 9829 LT -2091 9827 LT -2091 9827 LT -QS -NP -2091 9787 MT -2091 9785 LT -2091 9783 LT -2090 9781 LT -2089 9779 LT -2088 9778 LT -2087 9776 LT -2085 9775 LT -2084 9774 LT -2082 9773 LT -2080 9772 LT -2078 9772 LT -2076 9771 LT -2075 9771 LT -QS -2650 9771 2674 HL -2635 9827 9787 VL -2674 9842 2650 HL -2674 9803 9842 VL -2662 9803 2674 HL -NP -2650 9771 MT -2648 9772 LT -2646 9772 LT -2644 9773 LT -2643 9773 LT -2641 9774 LT -2639 9776 LT -2638 9777 LT -2637 9779 LT -2636 9781 LT -2635 9783 LT -2635 9784 LT -2635 9786 LT -2635 9787 LT -QS -NP -2635 9827 MT -2635 9829 LT -2635 9831 LT -2636 9832 LT -2637 9834 LT -2638 9836 LT -2639 9837 LT -2640 9839 LT -2642 9840 LT -2644 9841 LT -2646 9842 LT -2648 9842 LT -2650 9842 LT -2650 9842 LT -QS -2698 9771 9842 VL -2737 9842 2698 9771 DL -2737 9771 9842 VL -2784 9842 2761 HL -2800 9787 9827 VL -2761 9771 2784 HL -2761 9842 9771 VL -NP -2784 9842 MT -2786 9842 LT -2788 9842 LT -2790 9841 LT -2792 9840 LT -2794 9839 LT -2795 9838 LT -2796 9836 LT -2798 9835 LT -2799 9833 LT -2799 9831 LT -2800 9829 LT -2800 9827 LT -2800 9827 LT -QS -NP -2800 9787 MT -2800 9785 LT -2799 9783 LT -2799 9781 LT -2798 9779 LT -2797 9778 LT -2796 9776 LT -2794 9775 LT -2793 9774 LT -2791 9773 LT -2789 9772 LT -2787 9772 LT -2785 9771 LT -2784 9771 LT -QS -1 4 255 0 0 1 1 PE -2867 9382 9311 VL -2898 9382 2867 HL -2922 9311 2954 HL -2922 9382 9311 VL -2954 9382 2922 HL -2946 9342 2922 HL -3001 9382 2977 HL -3017 9326 9366 VL -2977 9311 3001 HL -2977 9382 9311 VL -NP -3001 9382 MT -3003 9381 LT -3005 9381 LT -3007 9380 LT -3009 9380 LT -3010 9378 LT -3012 9377 LT -3013 9376 LT -3014 9374 LT -3015 9372 LT -3016 9370 LT -3016 9368 LT -3017 9366 LT -3017 9366 LT -QS -NP -3017 9326 MT -3016 9324 LT -3016 9322 LT -3015 9321 LT -3015 9319 LT -3013 9317 LT -3012 9316 LT -3011 9314 LT -3009 9313 LT -3007 9312 LT -3005 9311 LT -3004 9311 LT -3002 9311 LT -3001 9311 LT -QS -1 4 B 1 1 PE -3123 9452 3072 HL -3199 9452 3148 HL -3276 9452 3225 HL -3352 9452 3301 HL -3429 9452 3378 HL -3506 9452 3455 HL -3582 9452 3531 HL -3659 9452 3608 HL -3735 9452 3684 HL -3781 9452 3761 HL -1 4 B 1 1 PE -2835 8322 8271 VL -2835 8399 8348 VL -2835 8475 8424 VL -2835 8552 8501 VL -2835 8628 8577 VL -2835 8705 8654 VL -2835 8781 8730 VL -2835 8858 8807 VL -2835 8934 8883 VL -2835 9011 8960 VL -2835 9088 9037 VL -2835 9164 9113 VL -2835 9216 9190 VL -0 9098 473 HL -473 7917 0 HL -473 9098 7917 VL -0 8389 7917 VL -0 9098 8625 VL -1 4 0 0 255 1 1 PE -67 8070 7999 VL -91 7999 8070 VL -130 8070 91 7999 DL -130 7999 8070 VL -169 7999 154 8015 DL -169 8070 7999 VL -59 8306 8236 VL -83 8236 8306 VL -122 8306 83 8236 DL -122 8236 8306 VL -146 8306 177 HL -176 8254 146 8306 DL -NP -176 8254 MT -177 8252 LT -177 8250 LT -177 8248 LT -177 8247 LT -QS -NP -177 8247 MT -176 8245 LT -175 8244 LT -174 8242 LT -173 8240 LT -171 8239 LT -170 8238 LT -168 8237 LT -166 8236 LT -164 8236 LT -162 8236 LT -160 8236 LT -158 8236 LT -156 8236 LT -154 8237 LT -153 8238 LT -151 8239 LT -150 8241 LT -148 8242 LT -147 8244 LT -147 8246 LT -146 8247 LT -QS -59 8543 8472 VL -83 8472 8543 VL -122 8543 83 8472 DL -122 8472 8543 VL -161 8472 146 HL -154 8503 161 HL -177 8527 8519 VL -146 8543 161 HL -NP -161 8503 MT -163 8503 LT -165 8503 LT -167 8502 LT -169 8501 LT -171 8500 LT -172 8499 LT -174 8497 LT -175 8496 LT -176 8494 LT -177 8492 LT -177 8490 LT -177 8488 LT -177 8486 LT -177 8484 LT -176 8482 LT -176 8481 LT -175 8479 LT -173 8477 LT -172 8476 LT -170 8475 LT -169 8474 LT -167 8473 LT -165 8472 LT -163 8472 LT -161 8472 LT -QS -NP -177 8519 MT -177 8517 LT -177 8515 LT -176 8513 LT -175 8511 LT -174 8510 LT -173 8508 LT -171 8507 LT -170 8506 LT -168 8505 LT -166 8504 LT -164 8504 LT -162 8503 LT -161 8503 LT -QS -NP -161 8543 MT -163 8543 LT -165 8542 LT -167 8542 LT -169 8541 LT -171 8540 LT -172 8538 LT -174 8537 LT -175 8535 LT -176 8533 LT -177 8532 LT -177 8530 LT -177 8528 LT -177 8527 LT -QS -291 8543 8472 VL -315 8472 8543 VL -354 8543 315 8472 DL -354 8472 8543 VL -406 8511 8543 VL -378 8527 417 HL -394 8472 378 8527 DL -59 8779 8708 VL -83 8708 8779 VL -122 8779 83 8708 DL -122 8708 8779 VL -146 8708 177 HL -146 8740 8708 VL -161 8740 146 HL -177 8763 8755 VL -146 8779 161 HL -NP -177 8755 MT -177 8753 LT -177 8751 LT -176 8750 LT -175 8748 LT -174 8746 LT -173 8744 LT -171 8743 LT -170 8742 LT -168 8741 LT -166 8740 LT -164 8740 LT -162 8740 LT -161 8740 LT -QS -NP -161 8779 MT -163 8779 LT -165 8779 LT -167 8778 LT -169 8777 LT -171 8776 LT -172 8775 LT -174 8773 LT -175 8772 LT -176 8770 LT -177 8768 LT -177 8766 LT -177 8764 LT -177 8763 LT -QS -295 8779 8708 VL -319 8708 8779 VL -358 8779 319 8708 DL -358 8708 8779 VL -382 8763 8749 VL -414 8755 8763 VL -383 8740 398 HL -NP -406 8708 MT -404 8709 LT -402 8710 LT -401 8711 LT -399 8713 LT -398 8714 LT -396 8715 LT -395 8717 LT -393 8718 LT -392 8720 LT -391 8721 LT -390 8723 LT -389 8725 LT -388 8727 LT -387 8728 LT -386 8730 LT -385 8732 LT -385 8734 LT -384 8736 LT -383 8738 LT -383 8740 LT -383 8742 LT -382 8744 LT -382 8746 LT -382 8748 LT -382 8749 LT -QS -NP -382 8763 MT -382 8765 LT -383 8767 LT -383 8769 LT -384 8771 LT -385 8773 LT -386 8774 LT -388 8776 LT -389 8777 LT -391 8778 LT -393 8778 LT -395 8779 LT -397 8779 LT -399 8779 LT -401 8779 LT -403 8778 LT -405 8777 LT -407 8776 LT -408 8775 LT -410 8774 LT -411 8772 LT -412 8770 LT -413 8769 LT -413 8767 LT -413 8765 LT -414 8763 LT -QS -NP -414 8755 MT -413 8753 LT -413 8751 LT -412 8750 LT -412 8748 LT -410 8746 LT -409 8744 LT -408 8743 LT -406 8742 LT -404 8741 LT -402 8740 LT -400 8740 LT -398 8740 LT -398 8740 LT -QS -59 9015 8944 VL -83 8944 9015 VL -122 9015 83 8944 DL -122 8944 9015 VL -177 8944 146 HL -158 9015 177 8944 DL -177 8976 161 HL -1 4 127 d2 1 1 PE -287 7999 311 HL -272 8054 8015 VL -311 8070 287 HL -311 8031 8070 VL -299 8031 311 HL -NP -287 7999 MT -285 7999 LT -284 8000 LT -282 8000 LT -280 8001 LT -278 8002 LT -277 8004 LT -275 8005 LT -274 8007 LT -273 8009 LT -272 8010 LT -272 8012 LT -272 8014 LT -272 8015 LT -QS -NP -272 8054 MT -272 8056 LT -272 8058 LT -273 8060 LT -274 8062 LT -275 8064 LT -276 8065 LT -278 8067 LT -279 8068 LT -281 8069 LT -283 8069 LT -285 8070 LT -287 8070 LT -287 8070 LT -QS -335 7999 8070 VL -374 8070 335 7999 DL -374 7999 8070 VL -421 8070 398 HL -437 8015 8054 VL -398 7999 421 HL -398 8070 7999 VL -NP -421 8070 MT -423 8070 LT -425 8070 LT -427 8069 LT -429 8068 LT -431 8067 LT -432 8066 LT -434 8064 LT -435 8063 LT -436 8061 LT -436 8059 LT -437 8057 LT -437 8055 LT -437 8054 LT -QS -NP -437 8015 MT -437 8013 LT -437 8011 LT -436 8009 LT -435 8007 LT -434 8006 LT -433 8004 LT -431 8003 LT -430 8002 LT -428 8001 LT -426 8000 LT -424 7999 LT -422 7999 LT -421 7999 LT -QS -299 8306 276 8236 DL -323 8236 299 8306 DL -362 8236 378 HL -347 8291 8251 VL -378 8306 362 HL -NP -362 8236 MT -360 8236 LT -358 8236 LT -356 8237 LT -355 8238 LT -353 8239 LT -351 8240 LT -350 8241 LT -349 8243 LT -348 8245 LT -347 8247 LT -347 8249 LT -347 8251 LT -347 8251 LT -QS -NP -347 8291 MT -347 8293 LT -347 8295 LT -348 8297 LT -349 8298 LT -350 8300 LT -351 8302 LT -352 8303 LT -354 8304 LT -356 8305 LT -358 8306 LT -360 8306 LT -362 8306 LT -362 8306 LT -QS -417 8236 433 HL -402 8291 8251 VL -433 8306 417 HL -NP -417 8236 MT -415 8236 LT -413 8236 LT -412 8237 LT -410 8238 LT -408 8239 LT -407 8240 LT -405 8241 LT -404 8243 LT -403 8245 LT -402 8247 LT -402 8249 LT -402 8251 LT -402 8251 LT -QS -NP -402 8291 MT -402 8293 LT -402 8295 LT -403 8297 LT -404 8298 LT -405 8300 LT -406 8302 LT -408 8303 LT -409 8304 LT -411 8305 LT -413 8306 LT -415 8306 LT -417 8306 LT -417 8306 LT -QS -287 8944 311 HL -272 9000 8960 VL -311 9015 287 HL -311 8976 9015 VL -299 8976 311 HL -NP -287 8944 MT -285 8945 LT -284 8945 LT -282 8946 LT -280 8946 LT -278 8947 LT -277 8949 LT -275 8950 LT -274 8952 LT -273 8954 LT -272 8956 LT -272 8957 LT -272 8959 LT -272 8960 LT -QS -NP -272 9000 MT -272 9002 LT -272 9004 LT -273 9005 LT -274 9007 LT -275 9009 LT -276 9010 LT -278 9012 LT -279 9013 LT -281 9014 LT -283 9015 LT -285 9015 LT -287 9015 LT -287 9015 LT -QS -335 8944 9015 VL -374 9015 335 8944 DL -374 8944 9015 VL -421 9015 398 HL -437 8960 9000 VL -398 8944 421 HL -398 9015 8944 VL -NP -421 9015 MT -423 9015 LT -425 9015 LT -427 9014 LT -429 9013 LT -431 9012 LT -432 9011 LT -434 9009 LT -435 9008 LT -436 9006 LT -436 9004 LT -437 9002 LT -437 9000 LT -437 9000 LT -QS -NP -437 8960 MT -437 8958 LT -437 8956 LT -436 8954 LT -435 8952 LT -434 8951 LT -433 8949 LT -431 8948 LT -430 8947 LT -428 8946 LT -426 8945 LT -424 8945 LT -422 8944 LT -421 8944 LT -QS -1 4 B 1 1 PE -760 8271 709 HL -836 8271 785 HL -913 8271 862 HL -990 8271 939 HL -1066 8271 1015 HL -1143 8271 1092 HL -1219 8271 1168 HL -1296 8271 1245 HL -1372 8271 1321 HL -1449 8271 1398 HL -1525 8271 1474 HL -1602 8271 1551 HL -1679 8271 1628 HL -1755 8271 1704 HL -1832 8271 1781 HL -1908 8271 1857 HL -1985 8271 1934 HL -2061 8271 2010 HL -2138 8271 2087 HL -2214 8271 2163 HL -2291 8271 2240 HL -2368 8271 2317 HL -2444 8271 2393 HL -2521 8271 2470 HL -2597 8271 2546 HL -2674 8271 2623 HL -2750 8271 2699 HL -2827 8271 2776 HL -1 4 B 1 1 PE -709 9165 9216 VL -709 9089 9140 VL -709 9012 9063 VL -709 8935 8986 VL -709 8859 8910 VL -709 8782 8833 VL -709 8706 8757 VL -709 8629 8680 VL -709 8553 8604 VL -709 8476 8527 VL -709 8400 8451 VL -709 8323 8374 VL -709 8271 8297 VL -1 4 B 1 1 PE -2784 9216 2835 HL -2708 9216 2759 HL -2631 9216 2682 HL -2555 9216 2606 HL -2478 9216 2529 HL -2402 9216 2453 HL -2325 9216 2376 HL -2248 9216 2300 HL -2172 9216 2223 HL -2095 9216 2146 HL -2019 9216 2070 HL -1942 9216 1993 HL -1866 9216 1917 HL -1789 9216 1840 HL -1713 9216 1764 HL -1636 9216 1687 HL -1559 9216 1611 HL -1483 9216 1534 HL -1406 9216 1457 HL -1330 9216 1381 HL -1253 9216 1304 HL -1177 9216 1228 HL -1100 9216 1151 HL -1024 9216 1075 HL -947 9216 998 HL -870 9216 922 HL -794 9216 845 HL -717 9216 768 HL -1 4 0 255 0 1 1 PE -3331 8609 8642 VL -3351 8596 3344 HL -3364 8642 8609 VL -3344 8655 3351 HL -NP -3344 8596 MT -3342 8596 LT -3340 8597 LT -3338 8597 LT -3337 8598 LT -3335 8600 LT -3334 8601 LT -3333 8603 LT -3332 8605 LT -3331 8606 LT -3331 8608 LT -3331 8609 LT -QS -NP -3364 8609 MT -3364 8607 LT -3363 8605 LT -3362 8603 LT -3361 8601 LT -3360 8600 LT -3359 8599 LT -3357 8597 LT -3355 8597 LT -3353 8596 LT -3351 8596 LT -3351 8596 LT -QS -NP -3351 8655 MT -3353 8655 LT -3355 8654 LT -3356 8654 LT -3358 8653 LT -3360 8651 LT -3361 8650 LT -3362 8648 LT -3363 8646 LT -3364 8644 LT -3364 8642 LT -3364 8642 LT -QS -NP -3331 8642 MT -3331 8644 LT -3332 8646 LT -3332 8648 LT -3333 8649 LT -3335 8651 LT -3336 8652 LT -3338 8653 LT -3340 8654 LT -3342 8655 LT -3344 8655 LT -3344 8655 LT -QS -3383 8639 8596 VL -3416 8596 8639 VL -NP -3383 8639 MT -3384 8641 LT -3384 8643 LT -3385 8644 LT -3385 8646 LT -3386 8648 LT -3388 8650 LT -3389 8651 LT -3391 8652 LT -3392 8653 LT -3394 8654 LT -3396 8655 LT -3398 8655 LT -3400 8655 LT -3402 8655 LT -3404 8654 LT -3406 8654 LT -3408 8653 LT -3410 8652 LT -3411 8651 LT -3412 8649 LT -3414 8647 LT -3415 8646 LT -3415 8644 LT -3416 8642 LT -3416 8640 LT -3416 8639 LT -QS -3475 8596 3436 HL -3456 8655 8596 VL -3495 8642 8635 VL -3521 8635 8642 VL -3497 8611 8607 VL -3520 8607 8611 VL -NP -3495 8642 MT -3495 8644 LT -3496 8646 LT -3496 8648 LT -3497 8649 LT -3499 8651 LT -3500 8652 LT -3502 8653 LT -3504 8654 LT -3506 8655 LT -3508 8655 LT -3510 8655 LT -3512 8655 LT -3514 8654 LT -3515 8653 LT -3517 8652 LT -3518 8650 LT -3519 8649 LT -3520 8647 LT -3521 8645 LT -3521 8643 LT -3521 8642 LT -QS -NP -3521 8635 MT -3521 8633 LT -3521 8631 LT -3520 8629 LT -3519 8628 LT -3518 8626 LT -3516 8625 LT -3514 8624 LT -3513 8623 LT -3511 8622 LT -3509 8622 LT -3507 8622 LT -3505 8623 LT -3503 8623 LT -3501 8624 LT -3500 8625 LT -3498 8627 LT -3497 8629 LT -3496 8630 LT -3495 8632 LT -3495 8634 LT -3495 8635 LT -QS -NP -3497 8611 MT -3497 8613 LT -3497 8615 LT -3498 8616 LT -3499 8618 LT -3501 8619 LT -3502 8621 LT -3504 8621 LT -3506 8622 LT -3508 8622 LT -3510 8622 LT -3512 8621 LT -3514 8621 LT -3516 8619 LT -3517 8618 LT -3518 8616 LT -3519 8615 LT -3520 8613 LT -3520 8611 LT -QS -NP -3520 8607 MT -3520 8605 LT -3519 8603 LT -3518 8602 LT -3517 8600 LT -3516 8599 LT -3514 8597 LT -3512 8597 LT -3510 8596 LT -3508 8596 LT -3506 8596 LT -3504 8597 LT -3502 8597 LT -3501 8599 LT -3499 8600 LT -3498 8602 LT -3497 8604 LT -3497 8605 LT -3497 8607 LT -QS -3567 8609 8642 VL -3587 8596 3580 HL -3600 8642 8609 VL -3580 8655 3587 HL -NP -3580 8596 MT -3578 8596 LT -3576 8597 LT -3575 8597 LT -3573 8598 LT -3571 8600 LT -3570 8601 LT -3569 8603 LT -3568 8605 LT -3568 8606 LT -3567 8608 LT -3567 8609 LT -QS -NP -3600 8609 MT -3600 8607 LT -3599 8605 LT -3599 8603 LT -3598 8601 LT -3596 8600 LT -3595 8599 LT -3593 8597 LT -3591 8597 LT -3589 8596 LT -3587 8596 LT -3587 8596 LT -QS -NP -3587 8655 MT -3589 8655 LT -3591 8654 LT -3593 8654 LT -3594 8653 LT -3596 8651 LT -3597 8650 LT -3598 8648 LT -3599 8646 LT -3600 8644 LT -3600 8642 LT -3600 8642 LT -QS -NP -3567 8642 MT -3567 8644 LT -3568 8646 LT -3569 8648 LT -3570 8649 LT -3571 8651 LT -3572 8652 LT -3574 8653 LT -3576 8654 LT -3578 8655 LT -3580 8655 LT -3580 8655 LT -QS -3620 8639 8596 VL -3653 8596 8639 VL -NP -3620 8639 MT -3620 8641 LT -3620 8643 LT -3621 8644 LT -3622 8646 LT -3623 8648 LT -3624 8650 LT -3625 8651 LT -3627 8652 LT -3629 8653 LT -3631 8654 LT -3632 8655 LT -3634 8655 LT -3636 8655 LT -3638 8655 LT -3640 8654 LT -3642 8654 LT -3644 8653 LT -3646 8652 LT -3647 8651 LT -3649 8649 LT -3650 8647 LT -3651 8646 LT -3652 8644 LT -3652 8642 LT -3653 8640 LT -3653 8639 LT -QS -3712 8596 3672 HL -3692 8655 8596 VL -3758 8609 8621 VL -3731 8616 8609 VL -3757 8629 3744 HL -NP -3738 8655 MT -3740 8654 LT -3741 8653 LT -3743 8652 LT -3744 8650 LT -3746 8649 LT -3747 8647 LT -3749 8646 LT -3750 8644 LT -3751 8643 LT -3752 8641 LT -3753 8639 LT -3754 8638 LT -3755 8636 LT -3755 8634 LT -3756 8632 LT -3757 8630 LT -3757 8628 LT -3757 8626 LT -3757 8624 LT -3758 8622 LT -3758 8621 LT -QS -NP -3758 8609 MT -3757 8607 LT -3757 8605 LT -3756 8603 LT -3755 8601 LT -3754 8600 LT -3752 8599 LT -3751 8597 LT -3749 8597 LT -3747 8596 LT -3745 8596 LT -3743 8596 LT -3741 8596 LT -3739 8597 LT -3737 8598 LT -3736 8599 LT -3734 8601 LT -3733 8602 LT -3732 8604 LT -3732 8606 LT -3731 8608 LT -3731 8609 LT -QS -NP -3731 8616 MT -3732 8618 LT -3732 8620 LT -3733 8621 LT -3734 8623 LT -3735 8625 LT -3737 8626 LT -3738 8627 LT -3740 8628 LT -3742 8628 LT -3744 8629 LT -3744 8629 LT -QS -3331 8845 8878 VL -3351 8832 3344 HL -3364 8878 8845 VL -3344 8891 3351 HL -NP -3344 8832 MT -3342 8832 LT -3340 8833 LT -3338 8834 LT -3337 8835 LT -3335 8836 LT -3334 8837 LT -3333 8839 LT -3332 8841 LT -3331 8843 LT -3331 8845 LT -3331 8845 LT -QS -NP -3364 8845 MT -3364 8843 LT -3363 8841 LT -3362 8839 LT -3361 8838 LT -3360 8836 LT -3359 8835 LT -3357 8834 LT -3355 8833 LT -3353 8832 LT -3351 8832 LT -3351 8832 LT -QS -NP -3351 8891 MT -3353 8891 LT -3355 8891 LT -3356 8890 LT -3358 8889 LT -3360 8888 LT -3361 8886 LT -3362 8884 LT -3363 8883 LT -3364 8881 LT -3364 8879 LT -3364 8878 LT -QS -NP -3331 8878 MT -3331 8880 LT -3332 8882 LT -3332 8884 LT -3333 8886 LT -3335 8887 LT -3336 8889 LT -3338 8890 LT -3340 8890 LT -3342 8891 LT -3344 8891 LT -3344 8891 LT -QS -3383 8875 8832 VL -3416 8832 8875 VL -NP -3383 8875 MT -3384 8877 LT -3384 8879 LT -3385 8881 LT -3385 8883 LT -3386 8884 LT -3388 8886 LT -3389 8887 LT -3391 8888 LT -3392 8889 LT -3394 8890 LT -3396 8891 LT -3398 8891 LT -3400 8891 LT -3402 8891 LT -3404 8891 LT -3406 8890 LT -3408 8889 LT -3410 8888 LT -3411 8887 LT -3412 8885 LT -3414 8884 LT -3415 8882 LT -3415 8880 LT -3416 8878 LT -3416 8876 LT -3416 8875 LT -QS -3475 8832 3436 HL -3456 8891 8832 VL -3495 8878 8866 VL -3521 8872 8878 VL -3496 8858 3508 HL -NP -3515 8832 MT -3513 8833 LT -3511 8834 LT -3510 8836 LT -3508 8837 LT -3507 8838 LT -3505 8840 LT -3504 8841 LT -3503 8843 LT -3502 8844 LT -3501 8846 LT -3500 8848 LT -3499 8850 LT -3498 8851 LT -3497 8853 LT -3497 8855 LT -3496 8857 LT -3496 8859 LT -3495 8861 LT -3495 8863 LT -3495 8865 LT -3495 8866 LT -QS -NP -3495 8878 MT -3495 8880 LT -3496 8882 LT -3496 8884 LT -3497 8886 LT -3499 8887 LT -3500 8889 LT -3502 8890 LT -3504 8890 LT -3506 8891 LT -3508 8891 LT -3510 8891 LT -3512 8891 LT -3514 8890 LT -3515 8889 LT -3517 8888 LT -3518 8887 LT -3519 8885 LT -3520 8883 LT -3521 8881 LT -3521 8879 LT -3521 8878 LT -QS -NP -3521 8872 MT -3521 8870 LT -3521 8868 LT -3520 8866 LT -3519 8864 LT -3518 8862 LT -3516 8861 LT -3514 8860 LT -3513 8859 LT -3511 8859 LT -3509 8858 LT -3508 8858 LT -QS -3567 8845 8878 VL -3587 8832 3580 HL -3600 8878 8845 VL -3580 8891 3587 HL -NP -3580 8832 MT -3578 8832 LT -3576 8833 LT -3575 8834 LT -3573 8835 LT -3571 8836 LT -3570 8837 LT -3569 8839 LT -3568 8841 LT -3568 8843 LT -3567 8845 LT -3567 8845 LT -QS -NP -3600 8845 MT -3600 8843 LT -3599 8841 LT -3599 8839 LT -3598 8838 LT -3596 8836 LT -3595 8835 LT -3593 8834 LT -3591 8833 LT -3589 8832 LT -3587 8832 LT -3587 8832 LT -QS -NP -3587 8891 MT -3589 8891 LT -3591 8891 LT -3593 8890 LT -3594 8889 LT -3596 8888 LT -3597 8886 LT -3598 8884 LT -3599 8883 LT -3600 8881 LT -3600 8879 LT -3600 8878 LT -QS -NP -3567 8878 MT -3567 8880 LT -3568 8882 LT -3569 8884 LT -3570 8886 LT -3571 8887 LT -3572 8889 LT -3574 8890 LT -3576 8890 LT -3578 8891 LT -3580 8891 LT -3580 8891 LT -QS -3620 8875 8832 VL -3653 8832 8875 VL -NP -3620 8875 MT -3620 8877 LT -3620 8879 LT -3621 8881 LT -3622 8883 LT -3623 8884 LT -3624 8886 LT -3625 8887 LT -3627 8888 LT -3629 8889 LT -3631 8890 LT -3632 8891 LT -3634 8891 LT -3636 8891 LT -3638 8891 LT -3640 8891 LT -3642 8890 LT -3644 8889 LT -3646 8888 LT -3647 8887 LT -3649 8885 LT -3650 8884 LT -3651 8882 LT -3652 8880 LT -3652 8878 LT -3653 8876 LT -3653 8875 LT -QS -3712 8832 3672 HL -3692 8891 8832 VL -3758 8832 3731 HL -3741 8891 3758 8832 DL -3758 8858 3744 HL -3328 9082 9114 VL -3347 9068 3341 HL -3361 9114 9082 VL -3341 9128 3347 HL -NP -3341 9068 MT -3339 9069 LT -3337 9069 LT -3335 9070 LT -3333 9071 LT -3332 9072 LT -3330 9074 LT -3329 9075 LT -3328 9077 LT -3328 9079 LT -3328 9081 LT -3328 9082 LT -QS -NP -3361 9082 MT -3360 9080 LT -3360 9078 LT -3359 9076 LT -3358 9074 LT -3357 9073 LT -3355 9071 LT -3354 9070 LT -3352 9069 LT -3350 9069 LT -3348 9068 LT -3347 9068 LT -QS -NP -3347 9128 MT -3349 9127 LT -3351 9127 LT -3353 9126 LT -3355 9125 LT -3356 9124 LT -3358 9122 LT -3359 9121 LT -3360 9119 LT -3360 9117 LT -3361 9115 LT -3361 9114 LT -QS -NP -3328 9114 MT -3328 9116 LT -3328 9118 LT -3329 9120 LT -3330 9122 LT -3331 9123 LT -3333 9125 LT -3335 9126 LT -3336 9127 LT -3338 9127 LT -3340 9128 LT -3341 9128 LT -QS -3380 9111 9068 VL -3413 9068 9111 VL -NP -3380 9111 MT -3380 9113 LT -3381 9115 LT -3381 9117 LT -3382 9119 LT -3383 9121 LT -3384 9122 LT -3386 9124 LT -3387 9125 LT -3389 9126 LT -3391 9127 LT -3393 9127 LT -3395 9127 LT -3397 9128 LT -3399 9127 LT -3401 9127 LT -3403 9126 LT -3405 9125 LT -3406 9124 LT -3408 9123 LT -3409 9122 LT -3410 9120 LT -3411 9118 LT -3412 9116 LT -3413 9115 LT -3413 9113 LT -3413 9111 LT -QS -3472 9068 3433 HL -3452 9128 9068 VL -3515 9101 9128 VL -3492 9114 3525 HL -3505 9068 3492 9114 DL -3567 9082 9114 VL -3587 9068 3580 HL -3600 9114 9082 VL -3580 9128 3587 HL -NP -3580 9068 MT -3578 9069 LT -3576 9069 LT -3575 9070 LT -3573 9071 LT -3571 9072 LT -3570 9074 LT -3569 9075 LT -3568 9077 LT -3568 9079 LT -3567 9081 LT -3567 9082 LT -QS -NP -3600 9082 MT -3600 9080 LT -3599 9078 LT -3599 9076 LT -3598 9074 LT -3596 9073 LT -3595 9071 LT -3593 9070 LT -3591 9069 LT -3589 9069 LT -3587 9068 LT -3587 9068 LT -QS -NP -3587 9128 MT -3589 9127 LT -3591 9127 LT -3593 9126 LT -3594 9125 LT -3596 9124 LT -3597 9122 LT -3598 9121 LT -3599 9119 LT -3600 9117 LT -3600 9115 LT -3600 9114 LT -QS -NP -3567 9114 MT -3567 9116 LT -3568 9118 LT -3569 9120 LT -3570 9122 LT -3571 9123 LT -3572 9125 LT -3574 9126 LT -3576 9127 LT -3578 9127 LT -3580 9128 LT -3580 9128 LT -QS -3620 9111 9068 VL -3653 9068 9111 VL -NP -3620 9111 MT -3620 9113 LT -3620 9115 LT -3621 9117 LT -3622 9119 LT -3623 9121 LT -3624 9122 LT -3625 9124 LT -3627 9125 LT -3629 9126 LT -3631 9127 LT -3632 9127 LT -3634 9127 LT -3636 9128 LT -3638 9127 LT -3640 9127 LT -3642 9126 LT -3644 9125 LT -3646 9124 LT -3647 9123 LT -3649 9122 LT -3650 9120 LT -3651 9118 LT -3652 9116 LT -3652 9115 LT -3653 9113 LT -3653 9111 LT -QS -3712 9068 3672 HL -3692 9128 9068 VL -3731 9068 3758 HL -3731 9095 9068 VL -3744 9095 3731 HL -3758 9114 9108 VL -3731 9128 3744 HL -NP -3758 9108 MT -3757 9106 LT -3757 9104 LT -3756 9102 LT -3755 9100 LT -3754 9099 LT -3752 9097 LT -3751 9096 LT -3749 9096 LT -3747 9095 LT -3745 9095 LT -3744 9095 LT -QS -NP -3744 9128 MT -3746 9127 LT -3748 9127 LT -3750 9126 LT -3752 9125 LT -3754 9124 LT -3755 9122 LT -3756 9121 LT -3757 9119 LT -3757 9117 LT -3758 9115 LT -3758 9114 LT -QS -3331 9318 9351 VL -3351 9305 3344 HL -3364 9351 9318 VL -3344 9364 3351 HL -NP -3344 9305 MT -3342 9305 LT -3340 9305 LT -3338 9306 LT -3337 9307 LT -3335 9308 LT -3334 9310 LT -3333 9312 LT -3332 9313 LT -3331 9315 LT -3331 9317 LT -3331 9318 LT -QS -NP -3364 9318 MT -3364 9316 LT -3363 9314 LT -3362 9312 LT -3361 9310 LT -3360 9309 LT -3359 9307 LT -3357 9306 LT -3355 9306 LT -3353 9305 LT -3351 9305 LT -3351 9305 LT -QS -NP -3351 9364 MT -3353 9364 LT -3355 9363 LT -3356 9362 LT -3358 9361 LT -3360 9360 LT -3361 9359 LT -3362 9357 LT -3363 9355 LT -3364 9353 LT -3364 9351 LT -3364 9351 LT -QS -NP -3331 9351 MT -3331 9353 LT -3332 9355 LT -3332 9357 LT -3333 9358 LT -3335 9360 LT -3336 9361 LT -3338 9362 LT -3340 9363 LT -3342 9364 LT -3344 9364 LT -3344 9364 LT -QS -3383 9347 9305 VL -3416 9305 9347 VL -NP -3383 9347 MT -3384 9349 LT -3384 9351 LT -3385 9353 LT -3385 9355 LT -3386 9357 LT -3388 9358 LT -3389 9360 LT -3391 9361 LT -3392 9362 LT -3394 9363 LT -3396 9363 LT -3398 9364 LT -3400 9364 LT -3402 9364 LT -3404 9363 LT -3406 9363 LT -3408 9362 LT -3410 9361 LT -3411 9359 LT -3412 9358 LT -3414 9356 LT -3415 9355 LT -3415 9353 LT -3416 9351 LT -3416 9349 LT -3416 9347 LT -QS -3475 9305 3436 HL -3456 9364 9305 VL -3495 9364 3521 HL -3520 9320 3495 9364 DL -NP -3520 9320 MT -3521 9318 LT -3521 9316 LT -3521 9315 LT -QS -NP -3521 9315 MT -3520 9313 LT -3519 9311 LT -3518 9309 LT -3517 9308 LT -3515 9307 LT -3513 9306 LT -3511 9305 LT -3509 9305 LT -3507 9305 LT -3505 9305 LT -3504 9306 LT -3502 9306 LT -3500 9308 LT -3499 9309 LT -3497 9311 LT -3496 9312 LT -3496 9314 LT -3495 9315 LT -QS -3567 9318 9351 VL -3587 9305 3580 HL -3600 9351 9318 VL -3580 9364 3587 HL -NP -3580 9305 MT -3578 9305 LT -3576 9305 LT -3575 9306 LT -3573 9307 LT -3571 9308 LT -3570 9310 LT -3569 9312 LT -3568 9313 LT -3568 9315 LT -3567 9317 LT -3567 9318 LT -QS -NP -3600 9318 MT -3600 9316 LT -3599 9314 LT -3599 9312 LT -3598 9310 LT -3596 9309 LT -3595 9307 LT -3593 9306 LT -3591 9306 LT -3589 9305 LT -3587 9305 LT -3587 9305 LT -QS -NP -3587 9364 MT -3589 9364 LT -3591 9363 LT -3593 9362 LT -3594 9361 LT -3596 9360 LT -3597 9359 LT -3598 9357 LT -3599 9355 LT -3600 9353 LT -3600 9351 LT -3600 9351 LT -QS -NP -3567 9351 MT -3567 9353 LT -3568 9355 LT -3569 9357 LT -3570 9358 LT -3571 9360 LT -3572 9361 LT -3574 9362 LT -3576 9363 LT -3578 9364 LT -3580 9364 LT -3580 9364 LT -QS -3620 9347 9305 VL -3653 9305 9347 VL -NP -3620 9347 MT -3620 9349 LT -3620 9351 LT -3621 9353 LT -3622 9355 LT -3623 9357 LT -3624 9358 LT -3625 9360 LT -3627 9361 LT -3629 9362 LT -3631 9363 LT -3632 9363 LT -3634 9364 LT -3636 9364 LT -3638 9364 LT -3640 9363 LT -3642 9363 LT -3644 9362 LT -3646 9361 LT -3647 9359 LT -3649 9358 LT -3650 9356 LT -3651 9355 LT -3652 9353 LT -3652 9351 LT -3653 9349 LT -3653 9347 LT -QS -3712 9305 3672 HL -3692 9364 9305 VL -3744 9305 3731 HL -3738 9331 3744 HL -3758 9351 9344 VL -3731 9364 3744 HL -NP -3744 9331 MT -3746 9331 LT -3748 9330 LT -3750 9330 LT -3752 9329 LT -3754 9327 LT -3755 9326 LT -3756 9324 LT -3757 9322 LT -3757 9320 LT -3758 9318 LT -3758 9316 LT -3757 9314 LT -3756 9313 LT -3756 9311 LT -3754 9309 LT -3753 9308 LT -3751 9307 LT -3749 9306 LT -3748 9305 LT -3746 9305 LT -3744 9305 LT -QS -NP -3758 9344 MT -3757 9342 LT -3757 9340 LT -3756 9338 LT -3755 9337 LT -3754 9335 LT -3752 9334 LT -3751 9333 LT -3749 9332 LT -3747 9331 LT -3745 9331 LT -3744 9331 LT -QS -NP -3744 9364 MT -3746 9364 LT -3748 9363 LT -3750 9362 LT -3752 9361 LT -3754 9360 LT -3755 9359 LT -3756 9357 LT -3757 9355 LT -3757 9353 LT -3758 9351 LT -3758 9351 LT -QS -3574 9554 9587 VL -3594 9541 3587 HL -3607 9587 9554 VL -3587 9600 3594 HL -NP -3587 9541 MT -3585 9541 LT -3583 9542 LT -3581 9542 LT -3579 9543 LT -3578 9545 LT -3577 9546 LT -3575 9548 LT -3575 9550 LT -3574 9552 LT -3574 9554 LT -3574 9554 LT -QS -NP -3607 9554 MT -3606 9552 LT -3606 9550 LT -3605 9548 LT -3604 9547 LT -3603 9545 LT -3601 9544 LT -3600 9543 LT -3598 9542 LT -3596 9541 LT -3594 9541 LT -3594 9541 LT -QS -NP -3594 9600 MT -3596 9600 LT -3597 9599 LT -3599 9599 LT -3601 9598 LT -3603 9596 LT -3604 9595 LT -3605 9593 LT -3606 9591 LT -3606 9590 LT -3607 9588 LT -3607 9587 LT -QS -NP -3574 9587 MT -3574 9589 LT -3574 9591 LT -3575 9593 LT -3576 9595 LT -3577 9596 LT -3579 9597 LT -3581 9598 LT -3582 9599 LT -3584 9600 LT -3586 9600 LT -3587 9600 LT -QS -3626 9584 9541 VL -3659 9541 9584 VL -NP -3626 9584 MT -3626 9586 LT -3627 9588 LT -3627 9590 LT -3628 9591 LT -3629 9593 LT -3631 9595 LT -3632 9596 LT -3634 9597 LT -3635 9598 LT -3637 9599 LT -3639 9600 LT -3641 9600 LT -3643 9600 LT -3645 9600 LT -3647 9600 LT -3649 9599 LT -3651 9598 LT -3652 9597 LT -3654 9596 LT -3655 9594 LT -3657 9593 LT -3657 9591 LT -3658 9589 LT -3659 9587 LT -3659 9585 LT -3659 9584 LT -QS -3718 9541 3679 HL -3699 9600 9541 VL -3751 9541 3738 9554 DL -3751 9600 9541 VL -2858 9554 9587 VL -2878 9541 2872 HL -2891 9587 9554 VL -2872 9600 2878 HL -NP -2872 9541 MT -2870 9541 LT -2868 9542 LT -2866 9542 LT -2864 9543 LT -2862 9545 LT -2861 9546 LT -2860 9548 LT -2859 9550 LT -2859 9552 LT -2858 9554 LT -2858 9554 LT -QS -NP -2891 9554 MT -2891 9552 LT -2891 9550 LT -2890 9548 LT -2889 9547 LT -2888 9545 LT -2886 9544 LT -2884 9543 LT -2883 9542 LT -2881 9541 LT -2879 9541 LT -2878 9541 LT -QS -NP -2878 9600 MT -2880 9600 LT -2882 9599 LT -2884 9599 LT -2886 9598 LT -2887 9596 LT -2889 9595 LT -2890 9593 LT -2890 9591 LT -2891 9590 LT -2891 9588 LT -2891 9587 LT -QS -NP -2858 9587 MT -2859 9589 LT -2859 9591 LT -2860 9593 LT -2861 9595 LT -2862 9596 LT -2864 9597 LT -2865 9598 LT -2867 9599 LT -2869 9600 LT -2871 9600 LT -2872 9600 LT -QS -2911 9584 9541 VL -2944 9541 9584 VL -NP -2911 9584 MT -2911 9586 LT -2911 9588 LT -2912 9590 LT -2913 9591 LT -2914 9593 LT -2915 9595 LT -2917 9596 LT -2918 9597 LT -2920 9598 LT -2922 9599 LT -2924 9600 LT -2926 9600 LT -2928 9600 LT -2930 9600 LT -2932 9600 LT -2933 9599 LT -2935 9598 LT -2937 9597 LT -2939 9596 LT -2940 9594 LT -2941 9593 LT -2942 9591 LT -2943 9589 LT -2943 9587 LT -2944 9585 LT -2944 9584 LT -QS -3003 9541 2963 HL -2983 9600 9541 VL -NP -3042 9544 MT -3040 9543 LT -3039 9542 LT -3037 9541 LT -3035 9541 LT -3033 9542 LT -3031 9543 LT -3030 9544 LT -3030 9544 LT -QS -NP -3030 9544 MT -3028 9546 LT -3027 9548 LT -3026 9549 LT -3026 9551 LT -3025 9553 LT -3024 9555 LT -3024 9557 LT -3024 9557 LT -QS -NP -3024 9584 MT -3024 9586 LT -3025 9588 LT -3026 9589 LT -3026 9591 LT -3027 9593 LT -3028 9595 LT -3029 9596 LT -3030 9597 LT -QS -NP -3030 9597 MT -3031 9598 LT -3033 9599 LT -3035 9600 LT -3037 9600 LT -3039 9599 LT -3040 9598 LT -3042 9597 LT -3042 9597 LT -QS -NP -3042 9597 MT -3043 9595 LT -3044 9593 LT -3045 9592 LT -3046 9590 LT -3046 9588 LT -3047 9586 LT -3047 9584 LT -3047 9584 LT -QS -NP -3047 9584 MT -3048 9582 LT -3048 9580 LT -3048 9578 LT -3049 9576 LT -3049 9574 LT -3049 9572 LT -3049 9571 LT -QS -NP -3049 9571 MT -3049 9569 LT -3049 9567 LT -3048 9565 LT -3048 9563 LT -3048 9561 LT -3048 9559 LT -3047 9557 LT -QS -NP -3047 9557 MT -3047 9555 LT -3046 9554 LT -3046 9552 LT -3045 9550 LT -3044 9548 LT -3043 9546 LT -3042 9545 LT -3042 9544 LT -QS -NP -3022 9571 MT -3023 9573 LT -3023 9575 LT -3023 9577 LT -3023 9579 LT -3023 9581 LT -3024 9583 LT -3024 9584 LT -QS -NP -3024 9557 MT -3023 9559 LT -3023 9561 LT -3023 9563 LT -3023 9565 LT -3023 9567 LT -3023 9569 LT -3022 9571 LT -QS -1 4 B 1 1 PE -1367 8684 1327 8803 DL -1406 8803 1367 8684 DL -1395 8770 1338 HL -1472 8684 1498 HL -1446 8776 8711 VL -1498 8803 1472 HL -NP -1472 8684 MT -1470 8685 LT -1468 8685 LT -1466 8685 LT -1464 8686 LT -1462 8686 LT -1460 8687 LT -1459 8688 LT -1457 8689 LT -1455 8690 LT -1454 8692 LT -1452 8693 LT -1451 8695 LT -1450 8696 LT -1449 8698 LT -1448 8700 LT -1447 8702 LT -1447 8704 LT -1446 8706 LT -1446 8708 LT -1446 8710 LT -1446 8711 LT -QS -NP -1446 8776 MT -1446 8778 LT -1446 8780 LT -1446 8782 LT -1447 8784 LT -1447 8786 LT -1448 8788 LT -1449 8790 LT -1450 8791 LT -1452 8793 LT -1453 8795 LT -1454 8796 LT -1456 8797 LT -1457 8798 LT -1459 8799 LT -1461 8800 LT -1463 8801 LT -1465 8802 LT -1467 8802 LT -1469 8802 LT -1471 8803 LT -1472 8803 LT -QS -1538 8684 1590 HL -1538 8803 8684 VL -1590 8803 1538 HL -1577 8737 1538 HL -1708 8803 1629 8684 DL -1708 8684 1629 8803 DL -1836 8684 1889 HL -1836 8803 8684 VL -1889 8737 1836 HL -1928 8684 8803 VL -1967 8684 1928 HL -1994 8724 8711 VL -1928 8750 1967 HL -NP -1994 8711 MT -1994 8709 LT -1993 8707 LT -1993 8705 LT -1992 8703 LT -1992 8701 LT -1991 8699 LT -1990 8697 LT -1989 8696 LT -1988 8694 LT -1986 8693 LT -1985 8691 LT -1983 8690 LT -1982 8689 LT -1980 8688 LT -1978 8687 LT -1976 8686 LT -1975 8685 LT -1973 8685 LT -1971 8685 LT -1969 8685 LT -1967 8684 LT -QS -NP -1967 8750 MT -1969 8750 LT -1971 8750 LT -1973 8749 LT -1975 8749 LT -1977 8748 LT -1979 8747 LT -1981 8746 LT -1982 8745 LT -1984 8744 LT -1986 8743 LT -1987 8741 LT -1988 8740 LT -1989 8738 LT -1990 8737 LT -1991 8735 LT -1992 8733 LT -1993 8731 LT -1993 8729 LT -1993 8727 LT -1994 8725 LT -1994 8724 LT -QS -2059 8684 2099 HL -2033 8776 8711 VL -2099 8803 2059 HL -2099 8737 8803 VL -2079 8737 2099 HL -NP -2059 8684 MT -2057 8685 LT -2055 8685 LT -2053 8685 LT -2051 8686 LT -2050 8686 LT -2048 8687 LT -2046 8688 LT -2044 8689 LT -2043 8690 LT -2041 8692 LT -2040 8693 LT -2038 8695 LT -2037 8696 LT -2036 8698 LT -2035 8700 LT -2035 8702 LT -2034 8704 LT -2034 8706 LT -2033 8708 LT -2033 8710 LT -2033 8711 LT -QS -NP -2033 8776 MT -2033 8778 LT -2033 8780 LT -2034 8782 LT -2034 8784 LT -2035 8786 LT -2036 8788 LT -2037 8790 LT -2038 8791 LT -2039 8793 LT -2040 8795 LT -2042 8796 LT -2043 8797 LT -2045 8798 LT -2047 8799 LT -2048 8800 LT -2050 8801 LT -2052 8802 LT -2054 8802 LT -2056 8802 LT -2058 8803 LT -2059 8803 LT -QS -2177 8684 2138 8803 DL -2217 8803 2177 8684 DL -2206 8770 2149 HL -637 7917 683 7969 DL -591 7969 637 7917 DL -768 7917 814 7969 DL -722 7969 768 7917 DL -942 7917 8035 VL -981 7917 942 HL -1007 7956 7943 VL -942 7982 981 HL -NP -1007 7943 MT -1007 7941 LT -1007 7939 LT -1007 7937 LT -1006 7935 LT -1006 7933 LT -1005 7931 LT -1004 7929 LT -1003 7928 LT -1002 7926 LT -1000 7925 LT -999 7923 LT -997 7922 LT -996 7921 LT -994 7920 LT -992 7919 LT -990 7918 LT -988 7918 LT -986 7917 LT -984 7917 LT -982 7917 LT -981 7917 LT -QS -NP -981 7982 MT -983 7982 LT -985 7982 LT -987 7982 LT -989 7981 LT -991 7980 LT -993 7980 LT -995 7979 LT -996 7977 LT -998 7976 LT -999 7975 LT -1001 7973 LT -1002 7972 LT -1003 7970 LT -1004 7969 LT -1005 7967 LT -1006 7965 LT -1007 7963 LT -1007 7961 LT -1007 7959 LT -1007 7957 LT -1007 7956 LT -QS -1080 7956 1053 HL -1099 8035 7976 VL -1067 8035 1099 HL -1099 7995 1067 HL -NP -1099 7976 MT -1099 7974 LT -1099 7972 LT -1098 7970 LT -1098 7968 LT -1097 7966 LT -1096 7964 LT -1095 7963 LT -1093 7961 LT -1092 7960 LT -1090 7959 LT -1088 7958 LT -1086 7957 LT -1085 7957 LT -1083 7956 LT -1081 7956 LT -1080 7956 LT -QS -NP -1067 7995 MT -1065 7995 LT -1063 7996 LT -1061 7996 LT -1059 7997 LT -1057 7998 LT -1055 7999 LT -1054 8000 LT -1052 8002 LT -1051 8003 LT -1050 8005 LT -1049 8006 LT -1048 8008 LT -1047 8010 LT -1047 8012 LT -1047 8014 LT -1047 8016 LT -1047 8018 LT -1048 8020 LT -1048 8022 LT -1049 8024 LT -1050 8026 LT -1051 8027 LT -1052 8029 LT -1054 8030 LT -1055 8031 LT -1057 8032 LT -1059 8033 LT -1061 8034 LT -1063 8034 LT -1065 8035 LT -1067 8035 LT -QS -1139 7956 8035 VL -1165 7956 1139 HL -NP -1178 7969 MT -1178 7967 LT -1178 7965 LT -1177 7963 LT -1176 7962 LT -1174 7960 LT -1173 7959 LT -1171 7958 LT -1169 7957 LT -1168 7956 LT -1166 7956 LT -1165 7956 LT -QS -1250 7956 1224 HL -1270 8035 7976 VL -1237 8035 1270 HL -1270 7995 1237 HL -NP -1270 7976 MT -1270 7974 LT -1270 7972 LT -1269 7970 LT -1268 7968 LT -1268 7966 LT -1266 7964 LT -1265 7963 LT -1264 7961 LT -1262 7960 LT -1261 7959 LT -1259 7958 LT -1257 7957 LT -1255 7957 LT -1253 7956 LT -1251 7956 LT -1250 7956 LT -QS -NP -1237 7995 MT -1235 7995 LT -1233 7996 LT -1231 7996 LT -1229 7997 LT -1228 7998 LT -1226 7999 LT -1224 8000 LT -1223 8002 LT -1222 8003 LT -1220 8005 LT -1219 8006 LT -1219 8008 LT -1218 8010 LT -1218 8012 LT -1218 8014 LT -1218 8016 LT -1218 8018 LT -1218 8020 LT -1219 8022 LT -1220 8024 LT -1221 8026 LT -1222 8027 LT -1223 8029 LT -1225 8030 LT -1226 8031 LT -1228 8032 LT -1230 8033 LT -1232 8034 LT -1233 8034 LT -1235 8035 LT -1237 8035 LT -QS -1309 8022 7917 VL -NP -1309 8022 MT -1310 8024 LT -1310 8026 LT -1311 8027 LT -1312 8029 LT -1313 8031 LT -1315 8032 LT -1316 8033 LT -1318 8034 LT -1320 8034 LT -1322 8035 LT -1323 8035 LT -QS -1362 8022 7917 VL -NP -1362 8022 MT -1362 8024 LT -1363 8026 LT -1363 8027 LT -1364 8029 LT -1366 8031 LT -1367 8032 LT -1369 8033 LT -1371 8034 LT -1373 8034 LT -1375 8035 LT -1375 8035 LT -QS -1467 7995 1414 HL -1467 7982 7995 VL -1414 8015 7982 VL -1467 8035 1434 HL -NP -1467 7982 MT -1467 7980 LT -1467 7978 LT -1466 7976 LT -1466 7974 LT -1465 7972 LT -1464 7971 LT -1463 7969 LT -1462 7967 LT -1461 7966 LT -1460 7964 LT -1458 7963 LT -1457 7961 LT -1455 7960 LT -1453 7959 LT -1452 7958 LT -1450 7958 LT -1448 7957 LT -1446 7956 LT -1444 7956 LT -1442 7956 LT -1440 7956 LT -1438 7956 LT -1436 7956 LT -1434 7957 LT -1432 7957 LT -1430 7958 LT -1428 7959 LT -1427 7960 LT -1425 7961 LT -1423 7962 LT -1422 7964 LT -1421 7965 LT -1419 7967 LT -1418 7969 LT -1417 7970 LT -1416 7972 LT -1416 7974 LT -1415 7976 LT -1415 7978 LT -1415 7980 LT -1414 7982 LT -1414 7982 LT -QS -NP -1414 8015 MT -1415 8017 LT -1415 8019 LT -1415 8021 LT -1416 8023 LT -1417 8025 LT -1418 8026 LT -1419 8028 LT -1421 8029 LT -1422 8031 LT -1424 8032 LT -1426 8033 LT -1427 8034 LT -1429 8034 LT -1431 8035 LT -1433 8035 LT -1434 8035 LT -QS -1506 8022 7917 VL -NP -1506 8022 MT -1506 8024 LT -1507 8026 LT -1508 8027 LT -1509 8029 LT -1510 8031 LT -1511 8032 LT -1513 8033 LT -1515 8034 LT -1517 8034 LT -1519 8035 LT -1519 8035 LT -QS -1647 7917 8035 VL -1687 7917 1647 HL -1713 7956 7943 VL -1647 7982 1687 HL -NP -1713 7943 MT -1713 7941 LT -1713 7939 LT -1712 7937 LT -1712 7935 LT -1711 7933 LT -1710 7931 LT -1709 7929 LT -1708 7928 LT -1707 7926 LT -1706 7925 LT -1704 7923 LT -1703 7922 LT -1701 7921 LT -1699 7920 LT -1698 7919 LT -1696 7918 LT -1694 7918 LT -1692 7917 LT -1690 7917 LT -1688 7917 LT -1687 7917 LT -QS -NP -1687 7982 MT -1689 7982 LT -1691 7982 LT -1693 7982 LT -1695 7981 LT -1697 7980 LT -1698 7980 LT -1700 7979 LT -1702 7977 LT -1703 7976 LT -1705 7975 LT -1706 7973 LT -1708 7972 LT -1709 7970 LT -1710 7969 LT -1711 7967 LT -1711 7965 LT -1712 7963 LT -1713 7961 LT -1713 7959 LT -1713 7957 LT -1713 7956 LT -QS -1752 8008 7982 VL -1805 7982 8008 VL -NP -1752 8008 MT -1753 8010 LT -1753 8012 LT -1753 8014 LT -1754 8016 LT -1754 8018 LT -1755 8020 LT -1756 8022 LT -1757 8023 LT -1758 8025 LT -1760 8027 LT -1761 8028 LT -1763 8029 LT -1764 8030 LT -1766 8031 LT -1768 8032 LT -1770 8033 LT -1772 8034 LT -1774 8034 LT -1776 8035 LT -1778 8035 LT -1780 8035 LT -1782 8035 LT -1783 8034 LT -1785 8034 LT -1787 8033 LT -1789 8033 LT -1791 8032 LT -1793 8031 LT -1794 8030 LT -1796 8028 LT -1797 8027 LT -1799 8025 LT -1800 8024 LT -1801 8022 LT -1802 8020 LT -1803 8019 LT -1804 8017 LT -1804 8015 LT -1805 8013 LT -1805 8011 LT -1805 8009 LT -1805 8008 LT -QS -NP -1805 7982 MT -1805 7980 LT -1805 7978 LT -1804 7976 LT -1804 7974 LT -1803 7972 LT -1802 7971 LT -1801 7969 LT -1800 7967 LT -1799 7966 LT -1798 7964 LT -1796 7963 LT -1795 7961 LT -1793 7960 LT -1791 7959 LT -1790 7958 LT -1788 7958 LT -1786 7957 LT -1784 7956 LT -1782 7956 LT -1780 7956 LT -1778 7956 LT -1776 7956 LT -1774 7956 LT -1772 7957 LT -1770 7957 LT -1768 7958 LT -1766 7959 LT -1765 7960 LT -1763 7961 LT -1761 7962 LT -1760 7964 LT -1759 7965 LT -1757 7967 LT -1756 7969 LT -1755 7970 LT -1754 7972 LT -1754 7974 LT -1753 7976 LT -1753 7978 LT -1753 7980 LT -1752 7982 LT -1752 7982 LT -QS -1844 7956 8035 VL -1871 7956 1844 HL -NP -1884 7969 MT -1884 7967 LT -1883 7965 LT -1882 7963 LT -1881 7962 LT -1880 7960 LT -1879 7959 LT -1877 7958 LT -1875 7957 LT -1873 7956 LT -1871 7956 LT -1871 7956 LT -QS -1962 7956 1923 HL -1936 8035 7917 VL -2117 7917 2143 HL -2090 8008 7943 VL -2143 8035 2117 HL -NP -2117 7917 MT -2115 7917 LT -2113 7917 LT -2111 7917 LT -2109 7918 LT -2107 7918 LT -2105 7919 LT -2103 7920 LT -2102 7921 LT -2100 7923 LT -2099 7924 LT -2097 7925 LT -2096 7927 LT -2095 7928 LT -2094 7930 LT -2093 7932 LT -2092 7934 LT -2091 7936 LT -2091 7938 LT -2091 7940 LT -2090 7942 LT -2090 7943 LT -QS -NP -2090 8008 MT -2091 8010 LT -2091 8012 LT -2091 8014 LT -2092 8016 LT -2092 8018 LT -2093 8020 LT -2094 8022 LT -2095 8023 LT -2096 8025 LT -2098 8027 LT -2099 8028 LT -2101 8029 LT -2102 8030 LT -2104 8031 LT -2106 8032 LT -2108 8033 LT -2110 8034 LT -2112 8034 LT -2114 8035 LT -2116 8035 LT -2117 8035 LT -QS -2182 8008 7982 VL -2235 7982 8008 VL -NP -2182 8008 MT -2182 8010 LT -2183 8012 LT -2183 8014 LT -2184 8016 LT -2184 8018 LT -2185 8020 LT -2186 8022 LT -2187 8023 LT -2188 8025 LT -2190 8027 LT -2191 8028 LT -2193 8029 LT -2194 8030 LT -2196 8031 LT -2198 8032 LT -2200 8033 LT -2202 8034 LT -2203 8034 LT -2205 8035 LT -2207 8035 LT -2209 8035 LT -2211 8035 LT -2213 8034 LT -2215 8034 LT -2217 8033 LT -2219 8033 LT -2221 8032 LT -2223 8031 LT -2224 8030 LT -2226 8028 LT -2227 8027 LT -2229 8025 LT -2230 8024 LT -2231 8022 LT -2232 8020 LT -2233 8019 LT -2234 8017 LT -2234 8015 LT -2235 8013 LT -2235 8011 LT -2235 8009 LT -2235 8008 LT -QS -NP -2235 7982 MT -2235 7980 LT -2235 7978 LT -2234 7976 LT -2234 7974 LT -2233 7972 LT -2232 7971 LT -2231 7969 LT -2230 7967 LT -2229 7966 LT -2228 7964 LT -2226 7963 LT -2225 7961 LT -2223 7960 LT -2221 7959 LT -2219 7958 LT -2218 7958 LT -2216 7957 LT -2214 7956 LT -2212 7956 LT -2210 7956 LT -2208 7956 LT -2206 7956 LT -2204 7956 LT -2202 7957 LT -2200 7957 LT -2198 7958 LT -2196 7959 LT -2195 7960 LT -2193 7961 LT -2191 7962 LT -2190 7964 LT -2189 7965 LT -2187 7967 LT -2186 7969 LT -2185 7970 LT -2184 7972 LT -2184 7974 LT -2183 7976 LT -2183 7978 LT -2182 7980 LT -2182 7982 LT -2182 7982 LT -QS -2274 7956 8035 VL -2307 7956 2274 HL -2327 8035 7976 VL -NP -2327 7976 MT -2327 7974 LT -2326 7972 LT -2326 7970 LT -2325 7968 LT -2324 7966 LT -2323 7964 LT -2322 7963 LT -2321 7961 LT -2319 7960 LT -2317 7959 LT -2316 7958 LT -2314 7957 LT -2312 7957 LT -2310 7956 LT -2308 7956 LT -2307 7956 LT -QS -2366 7956 8035 VL -2399 7956 2366 HL -2419 8035 7976 VL -NP -2419 7976 MT -2419 7974 LT -2418 7972 LT -2418 7970 LT -2417 7968 LT -2416 7966 LT -2415 7964 LT -2414 7963 LT -2412 7961 LT -2411 7960 LT -2409 7959 LT -2408 7958 LT -2406 7957 LT -2404 7957 LT -2402 7956 LT -2400 7956 LT -2399 7956 LT -QS -2511 7995 2458 HL -2511 7982 7995 VL -2458 8015 7982 VL -2511 8035 2478 HL -NP -2511 7982 MT -2510 7980 LT -2510 7978 LT -2510 7976 LT -2509 7974 LT -2509 7972 LT -2508 7971 LT -2507 7969 LT -2506 7967 LT -2505 7966 LT -2503 7964 LT -2502 7963 LT -2500 7961 LT -2499 7960 LT -2497 7959 LT -2495 7958 LT -2493 7958 LT -2491 7957 LT -2489 7956 LT -2487 7956 LT -2485 7956 LT -2483 7956 LT -2481 7956 LT -2480 7956 LT -2478 7957 LT -2476 7957 LT -2474 7958 LT -2472 7959 LT -2470 7960 LT -2469 7961 LT -2467 7962 LT -2466 7964 LT -2464 7965 LT -2463 7967 LT -2462 7969 LT -2461 7970 LT -2460 7972 LT -2459 7974 LT -2459 7976 LT -2458 7978 LT -2458 7980 LT -2458 7982 LT -2458 7982 LT -QS -NP -2458 8015 MT -2458 8017 LT -2458 8019 LT -2459 8021 LT -2460 8023 LT -2461 8025 LT -2462 8026 LT -2463 8028 LT -2464 8029 LT -2466 8031 LT -2467 8032 LT -2469 8033 LT -2471 8034 LT -2473 8034 LT -2475 8035 LT -2477 8035 LT -2478 8035 LT -QS -2570 7956 2589 HL -2550 8015 7976 VL -2589 8035 2570 HL -NP -2570 7956 MT -2568 7956 LT -2566 7956 LT -2564 7957 LT -2562 7958 LT -2560 7958 LT -2558 7960 LT -2557 7961 LT -2555 7962 LT -2554 7964 LT -2553 7965 LT -2552 7967 LT -2551 7969 LT -2551 7971 LT -2550 7973 LT -2550 7975 LT -2550 7976 LT -QS -NP -2550 8015 MT -2550 8017 LT -2550 8019 LT -2551 8021 LT -2552 8023 LT -2552 8025 LT -2553 8026 LT -2555 8028 LT -2556 8029 LT -2558 8031 LT -2559 8032 LT -2561 8033 LT -2563 8034 LT -2565 8034 LT -2567 8035 LT -2569 8035 LT -2570 8035 LT -QS -2668 7956 2629 HL -2642 8035 7917 VL -2707 8008 7982 VL -2760 7982 8008 VL -NP -2707 8008 MT -2708 8010 LT -2708 8012 LT -2708 8014 LT -2709 8016 LT -2709 8018 LT -2710 8020 LT -2711 8022 LT -2712 8023 LT -2713 8025 LT -2715 8027 LT -2716 8028 LT -2718 8029 LT -2719 8030 LT -2721 8031 LT -2723 8032 LT -2725 8033 LT -2727 8034 LT -2729 8034 LT -2731 8035 LT -2733 8035 LT -2735 8035 LT -2736 8035 LT -2738 8034 LT -2740 8034 LT -2742 8033 LT -2744 8033 LT -2746 8032 LT -2748 8031 LT -2749 8030 LT -2751 8028 LT -2752 8027 LT -2754 8025 LT -2755 8024 LT -2756 8022 LT -2757 8020 LT -2758 8019 LT -2759 8017 LT -2759 8015 LT -2760 8013 LT -2760 8011 LT -2760 8009 LT -2760 8008 LT -QS -NP -2760 7982 MT -2760 7980 LT -2760 7978 LT -2759 7976 LT -2759 7974 LT -2758 7972 LT -2757 7971 LT -2756 7969 LT -2755 7967 LT -2754 7966 LT -2753 7964 LT -2751 7963 LT -2750 7961 LT -2748 7960 LT -2746 7959 LT -2745 7958 LT -2743 7958 LT -2741 7957 LT -2739 7956 LT -2737 7956 LT -2735 7956 LT -2733 7956 LT -2731 7956 LT -2729 7956 LT -2727 7957 LT -2725 7957 LT -2723 7958 LT -2721 7959 LT -2720 7960 LT -2718 7961 LT -2716 7962 LT -2715 7964 LT -2714 7965 LT -2712 7967 LT -2711 7969 LT -2710 7970 LT -2709 7972 LT -2709 7974 LT -2708 7976 LT -2708 7978 LT -2708 7980 LT -2707 7982 LT -2707 7982 LT -QS -2799 7956 8035 VL -2826 7956 2799 HL -NP -2839 7969 MT -2839 7967 LT -2838 7965 LT -2837 7963 LT -2836 7962 LT -2835 7960 LT -2834 7959 LT -2832 7958 LT -2830 7957 LT -2828 7956 LT -2826 7956 LT -2826 7956 LT -QS -3013 7917 3059 7969 DL -2967 7969 3013 7917 DL -3144 7917 3190 7969 DL -3098 7969 3144 7917 DL -3334 7999 8117 VL -3374 7999 3334 HL -3400 8039 8026 VL -3334 8065 3374 HL -NP -3400 8026 MT -3400 8024 LT -3400 8022 LT -3399 8020 LT -3399 8018 LT -3398 8016 LT -3397 8014 LT -3396 8012 LT -3395 8010 LT -3394 8009 LT -3393 8007 LT -3391 8006 LT -3390 8005 LT -3388 8004 LT -3386 8003 LT -3385 8002 LT -3383 8001 LT -3381 8000 LT -3379 8000 LT -3377 7999 LT -3375 7999 LT -3374 7999 LT -QS -NP -3374 8065 MT -3376 8065 LT -3378 8065 LT -3380 8064 LT -3382 8064 LT -3383 8063 LT -3385 8062 LT -3387 8061 LT -3389 8060 LT -3390 8059 LT -3392 8058 LT -3393 8056 LT -3394 8055 LT -3396 8053 LT -3397 8051 LT -3398 8050 LT -3398 8048 LT -3399 8046 LT -3399 8044 LT -3400 8042 LT -3400 8040 LT -3400 8039 LT -QS -3439 8091 8065 VL -3492 8065 8091 VL -NP -3439 8091 MT -3439 8093 LT -3440 8095 LT -3440 8097 LT -3440 8099 LT -3441 8101 LT -3442 8103 LT -3443 8105 LT -3444 8106 LT -3445 8108 LT -3447 8109 LT -3448 8111 LT -3450 8112 LT -3451 8113 LT -3453 8114 LT -3455 8115 LT -3457 8116 LT -3458 8116 LT -3460 8117 LT -3462 8117 LT -3464 8117 LT -3466 8117 LT -3468 8117 LT -3470 8117 LT -3472 8117 LT -3474 8116 LT -3476 8115 LT -3478 8114 LT -3480 8113 LT -3481 8112 LT -3483 8111 LT -3484 8110 LT -3486 8108 LT -3487 8107 LT -3488 8105 LT -3489 8103 LT -3490 8101 LT -3490 8099 LT -3491 8097 LT -3491 8096 LT -3492 8094 LT -3492 8092 LT -3492 8091 LT -QS -NP -3492 8065 MT -3492 8063 LT -3491 8061 LT -3491 8059 LT -3491 8057 LT -3490 8055 LT -3489 8053 LT -3488 8052 LT -3487 8050 LT -3486 8048 LT -3485 8047 LT -3483 8045 LT -3482 8044 LT -3480 8043 LT -3478 8042 LT -3476 8041 LT -3475 8040 LT -3473 8040 LT -3471 8039 LT -3469 8039 LT -3467 8039 LT -3465 8039 LT -3463 8039 LT -3461 8039 LT -3459 8040 LT -3457 8040 LT -3455 8041 LT -3453 8042 LT -3451 8043 LT -3450 8044 LT -3448 8045 LT -3447 8046 LT -3445 8048 LT -3444 8050 LT -3443 8051 LT -3442 8053 LT -3441 8055 LT -3441 8057 LT -3440 8059 LT -3440 8061 LT -3439 8063 LT -3439 8065 LT -3439 8065 LT -QS -3551 8117 3531 8039 DL -3571 8065 3551 8117 DL -3590 8117 3571 8065 DL -3610 8039 3590 8117 DL -3702 8078 3649 HL -3702 8065 8078 VL -3649 8098 8065 VL -3702 8117 3669 HL -NP -3702 8065 MT -3702 8063 LT -3702 8061 LT -3701 8059 LT -3701 8057 LT -3700 8055 LT -3699 8053 LT -3698 8052 LT -3697 8050 LT -3696 8048 LT -3695 8047 LT -3693 8045 LT -3692 8044 LT -3690 8043 LT -3688 8042 LT -3686 8041 LT -3685 8040 LT -3683 8040 LT -3681 8039 LT -3679 8039 LT -3677 8039 LT -3675 8039 LT -3673 8039 LT -3671 8039 LT -3669 8040 LT -3667 8040 LT -3665 8041 LT -3663 8042 LT -3662 8043 LT -3660 8044 LT -3658 8045 LT -3657 8046 LT -3656 8048 LT -3654 8050 LT -3653 8051 LT -3652 8053 LT -3651 8055 LT -3651 8057 LT -3650 8059 LT -3650 8061 LT -3649 8063 LT -3649 8065 LT -3649 8065 LT -QS -NP -3649 8098 MT -3649 8100 LT -3650 8102 LT -3650 8104 LT -3651 8106 LT -3652 8107 LT -3653 8109 LT -3654 8111 LT -3655 8112 LT -3657 8113 LT -3659 8114 LT -3660 8115 LT -3662 8116 LT -3664 8117 LT -3666 8117 LT -3668 8117 LT -3669 8117 LT -QS -3741 8039 8117 VL -3767 8039 3741 HL -NP -3781 8052 MT -3780 8050 LT -3780 8048 LT -3779 8046 LT -3778 8044 LT -3777 8043 LT -3775 8041 LT -3774 8040 LT -3772 8039 LT -3770 8039 LT -3768 8039 LT -3767 8039 LT -QS -3338 8280 8188 VL -3298 8306 3311 HL -NP -3311 8306 MT -3313 8306 LT -3315 8306 LT -3317 8306 LT -3319 8305 LT -3321 8305 LT -3323 8304 LT -3325 8303 LT -3326 8302 LT -3328 8300 LT -3329 8299 LT -3331 8298 LT -3332 8296 LT -3333 8295 LT -3334 8293 LT -3335 8291 LT -3336 8289 LT -3337 8287 LT -3337 8285 LT -3337 8283 LT -3338 8281 LT -3338 8280 LT -QS -3410 8228 3383 HL -3429 8306 8247 VL -3397 8306 3429 HL -3429 8267 3397 HL -NP -3429 8247 MT -3429 8245 LT -3429 8243 LT -3429 8241 LT -3428 8240 LT -3427 8238 LT -3426 8236 LT -3425 8235 LT -3423 8233 LT -3422 8232 LT -3420 8231 LT -3418 8230 LT -3416 8229 LT -3415 8228 LT -3413 8228 LT -3411 8228 LT -3410 8228 LT -QS -NP -3397 8267 MT -3395 8267 LT -3393 8267 LT -3391 8268 LT -3389 8269 LT -3387 8270 LT -3385 8271 LT -3384 8272 LT -3382 8273 LT -3381 8275 LT -3380 8276 LT -3379 8278 LT -3378 8280 LT -3378 8282 LT -3377 8284 LT -3377 8286 LT -3377 8288 LT -3377 8290 LT -3378 8292 LT -3378 8294 LT -3379 8296 LT -3380 8297 LT -3381 8299 LT -3382 8300 LT -3384 8302 LT -3386 8303 LT -3387 8304 LT -3389 8305 LT -3391 8306 LT -3393 8306 LT -3395 8306 LT -3397 8306 LT -QS -3489 8228 3508 HL -3469 8287 8247 VL -3508 8306 3489 HL -NP -3489 8228 MT -3487 8228 LT -3485 8228 LT -3483 8229 LT -3481 8229 LT -3479 8230 LT -3477 8231 LT -3476 8232 LT -3474 8234 LT -3473 8235 LT -3472 8237 LT -3471 8239 LT -3470 8241 LT -3469 8243 LT -3469 8244 LT -3469 8246 LT -3469 8247 LT -QS -NP -3469 8287 MT -3469 8289 LT -3469 8291 LT -3470 8293 LT -3470 8295 LT -3471 8296 LT -3472 8298 LT -3474 8300 LT -3475 8301 LT -3477 8302 LT -3478 8304 LT -3480 8304 LT -3482 8305 LT -3484 8306 LT -3486 8306 LT -3488 8306 LT -3489 8306 LT -QS -3548 8306 8188 VL -3600 8228 3548 8260 DL -3600 8306 3565 8250 DL -3781 8260 3728 8215 DL -3728 8306 3781 8260 DL -1 4 0 255 0 1 1 PE -51 9842 28 HL -67 9787 9827 VL -28 9771 51 HL -28 9842 9771 VL -NP -51 9842 MT -53 9842 LT -55 9842 LT -57 9841 LT -59 9840 LT -61 9839 LT -62 9838 LT -63 9836 LT -65 9835 LT -66 9833 LT -66 9831 LT -67 9829 LT -67 9827 LT -67 9827 LT -QS -NP -67 9787 MT -67 9785 LT -66 9783 LT -66 9781 LT -65 9779 LT -64 9778 LT -63 9776 LT -61 9775 LT -59 9774 LT -58 9773 LT -56 9772 LT -54 9772 LT -52 9771 LT -51 9771 LT -QS -91 9842 9771 VL -114 9771 9842 VL -138 9771 114 HL -154 9795 9787 VL -114 9811 138 HL -154 9842 138 9811 DL -NP -154 9787 MT -153 9785 LT -153 9783 LT -152 9781 LT -152 9779 LT -151 9778 LT -149 9776 LT -148 9775 LT -146 9774 LT -144 9773 LT -142 9772 LT -141 9772 LT -139 9771 LT -138 9771 LT -QS -NP -138 9811 MT -140 9811 LT -142 9810 LT -144 9810 LT -146 9809 LT -147 9808 LT -149 9806 LT -150 9805 LT -151 9803 LT -152 9802 LT -153 9800 LT -153 9798 LT -154 9796 LT -154 9795 LT -QS -NP -200 9775 MT -199 9774 LT -197 9773 LT -195 9772 LT -193 9771 LT -191 9772 LT -190 9772 LT -188 9773 LT -186 9775 LT -186 9775 LT -QS -NP -186 9775 MT -185 9777 LT -184 9779 LT -183 9780 LT -182 9782 LT -181 9784 LT -180 9786 LT -180 9788 LT -179 9790 LT -179 9791 LT -QS -NP -179 9823 MT -179 9825 LT -180 9826 LT -180 9828 LT -181 9830 LT -182 9832 LT -183 9834 LT -184 9836 LT -185 9837 LT -186 9838 LT -QS -NP -186 9838 MT -187 9840 LT -189 9841 LT -190 9842 LT -192 9842 LT -194 9842 LT -196 9842 LT -198 9841 LT -200 9839 LT -200 9838 LT -QS -NP -200 9838 MT -201 9837 LT -202 9835 LT -203 9833 LT -204 9831 LT -205 9830 LT -206 9828 LT -206 9826 LT -207 9824 LT -207 9823 LT -QS -NP -207 9823 MT -207 9821 LT -208 9819 LT -208 9817 LT -208 9815 LT -209 9813 LT -209 9811 LT -209 9809 LT -209 9807 LT -QS -NP -209 9807 MT -209 9805 LT -209 9803 LT -208 9801 LT -208 9799 LT -208 9797 LT -208 9795 LT -207 9793 LT -207 9791 LT -QS -NP -207 9791 MT -207 9789 LT -206 9787 LT -206 9785 LT -205 9783 LT -204 9782 LT -203 9780 LT -202 9778 LT -201 9776 LT -200 9775 LT -QS -NP -177 9807 MT -177 9809 LT -177 9811 LT -177 9813 LT -178 9815 LT -178 9817 LT -178 9819 LT -178 9821 LT -179 9823 LT -QS -NP -179 9791 MT -178 9793 LT -178 9795 LT -178 9797 LT -178 9799 LT -177 9801 LT -177 9803 LT -177 9805 LT -177 9807 LT -QS -303 9576 280 9565 DL -NP -311 9541 MT -309 9540 LT -307 9539 LT -306 9538 LT -304 9538 LT -302 9537 LT -300 9537 LT -298 9536 LT -296 9536 LT -294 9536 LT -292 9535 LT -290 9535 LT -288 9535 LT -287 9535 LT -QS -NP -287 9535 MT -285 9535 LT -284 9536 LT -282 9536 LT -280 9537 LT -278 9538 LT -277 9540 LT -275 9541 LT -274 9543 LT -273 9544 LT -272 9546 LT -272 9548 LT -272 9550 LT -272 9552 LT -272 9554 LT -273 9556 LT -273 9558 LT -274 9560 LT -276 9561 LT -277 9563 LT -279 9564 LT -280 9565 LT -QS -NP -295 9606 MT -297 9606 LT -299 9606 LT -301 9605 LT -303 9604 LT -305 9603 LT -306 9602 LT -308 9600 LT -309 9599 LT -310 9597 LT -310 9595 LT -311 9593 LT -311 9591 LT -311 9589 LT -311 9587 LT -310 9585 LT -309 9583 LT -308 9581 LT -307 9580 LT -306 9578 LT -304 9577 LT -303 9576 LT -QS -NP -272 9600 MT -274 9601 LT -275 9602 LT -277 9603 LT -279 9603 LT -281 9604 LT -283 9605 LT -285 9605 LT -287 9605 LT -289 9606 LT -291 9606 LT -293 9606 LT -295 9606 LT -295 9606 LT -QS -382 9535 335 HL -358 9606 9535 VL -NP -429 9539 MT -427 9538 LT -426 9536 LT -424 9535 LT -422 9535 LT -420 9535 LT -418 9536 LT -416 9537 LT -415 9538 LT -414 9539 LT -QS -NP -414 9539 MT -413 9541 LT -412 9542 LT -411 9544 LT -410 9546 LT -409 9548 LT -409 9550 LT -408 9552 LT -408 9554 LT -407 9555 LT -QS -NP -407 9586 MT -408 9588 LT -408 9590 LT -409 9592 LT -410 9594 LT -410 9596 LT -411 9598 LT -412 9599 LT -413 9601 LT -414 9602 LT -QS -NP -414 9602 MT -415 9604 LT -417 9605 LT -419 9606 LT -421 9606 LT -423 9606 LT -425 9605 LT -427 9604 LT -428 9603 LT -429 9602 LT -QS -NP -429 9602 MT -430 9600 LT -431 9599 LT -432 9597 LT -433 9595 LT -433 9593 LT -434 9591 LT -435 9590 LT -435 9588 LT -435 9586 LT -QS -NP -435 9586 MT -436 9584 LT -436 9582 LT -437 9580 LT -437 9578 LT -437 9576 LT -437 9574 LT -437 9572 LT -437 9571 LT -QS -NP -437 9571 MT -437 9569 LT -437 9567 LT -437 9565 LT -437 9563 LT -436 9561 LT -436 9559 LT -436 9557 LT -435 9555 LT -QS -NP -435 9555 MT -435 9553 LT -435 9551 LT -434 9549 LT -433 9547 LT -432 9545 LT -431 9544 LT -430 9542 LT -429 9540 LT -429 9539 LT -QS -NP -406 9571 MT -406 9573 LT -406 9575 LT -406 9577 LT -406 9579 LT -406 9581 LT -407 9583 LT -407 9584 LT -407 9586 LT -QS -NP -407 9555 MT -407 9557 LT -407 9559 LT -406 9561 LT -406 9563 LT -406 9565 LT -406 9567 LT -406 9569 LT -406 9571 LT -QS -547 9576 524 9565 DL -NP -555 9541 MT -553 9540 LT -552 9539 LT -550 9538 LT -548 9538 LT -546 9537 LT -544 9537 LT -542 9536 LT -540 9536 LT -538 9536 LT -536 9535 LT -534 9535 LT -532 9535 LT -532 9535 LT -QS -NP -532 9535 MT -530 9535 LT -528 9536 LT -526 9536 LT -524 9537 LT -522 9538 LT -521 9540 LT -519 9541 LT -518 9543 LT -517 9544 LT -517 9546 LT -516 9548 LT -516 9550 LT -516 9552 LT -516 9554 LT -517 9556 LT -518 9558 LT -519 9560 LT -520 9561 LT -521 9563 LT -523 9564 LT -524 9565 LT -QS -NP -540 9606 MT -542 9606 LT -543 9606 LT -545 9605 LT -547 9604 LT -549 9603 LT -550 9602 LT -552 9600 LT -553 9599 LT -554 9597 LT -555 9595 LT -555 9593 LT -555 9591 LT -555 9589 LT -555 9587 LT -554 9585 LT -554 9583 LT -553 9581 LT -551 9580 LT -550 9578 LT -548 9577 LT -547 9576 LT -QS -NP -516 9600 MT -518 9601 LT -520 9602 LT -521 9603 LT -523 9603 LT -525 9604 LT -527 9605 LT -529 9605 LT -531 9605 LT -533 9606 LT -535 9606 LT -537 9606 LT -539 9606 LT -540 9606 LT -QS -626 9535 579 HL -603 9606 9535 VL -666 9535 650 9551 DL -666 9606 9535 VL -532 9842 508 HL -547 9787 9827 VL -508 9771 532 HL -508 9842 9771 VL -NP -532 9842 MT -534 9842 LT -536 9842 LT -538 9841 LT -539 9840 LT -541 9839 LT -543 9838 LT -544 9836 LT -545 9835 LT -546 9833 LT -547 9831 LT -547 9829 LT -547 9827 LT -547 9827 LT -QS -NP -547 9787 MT -547 9785 LT -547 9783 LT -546 9781 LT -545 9779 LT -544 9778 LT -543 9776 LT -542 9775 LT -540 9774 LT -538 9773 LT -536 9772 LT -534 9772 LT -532 9771 LT -532 9771 LT -QS -571 9842 9771 VL -595 9771 9842 VL -618 9771 595 HL -634 9795 9787 VL -595 9811 618 HL -634 9842 618 9811 DL -NP -634 9787 MT -634 9785 LT -634 9783 LT -633 9781 LT -632 9779 LT -631 9778 LT -630 9776 LT -628 9775 LT -627 9774 LT -625 9773 LT -623 9772 LT -621 9772 LT -619 9771 LT -618 9771 LT -QS -NP -618 9811 MT -620 9811 LT -622 9810 LT -624 9810 LT -626 9809 LT -628 9808 LT -629 9806 LT -631 9805 LT -632 9803 LT -633 9802 LT -633 9800 LT -634 9798 LT -634 9796 LT -634 9795 LT -QS -673 9771 658 9787 DL -673 9842 9771 VL -760 9842 736 HL -776 9787 9827 VL -736 9771 760 HL -736 9842 9771 VL -NP -760 9842 MT -762 9842 LT -764 9842 LT -766 9841 LT -768 9840 LT -769 9839 LT -771 9838 LT -772 9836 LT -773 9835 LT -774 9833 LT -775 9831 LT -776 9829 LT -776 9827 LT -776 9827 LT -QS -NP -776 9787 MT -776 9785 LT -775 9783 LT -775 9781 LT -774 9779 LT -773 9778 LT -771 9776 LT -770 9775 LT -768 9774 LT -767 9773 LT -765 9772 LT -763 9772 LT -761 9771 LT -760 9771 LT -QS -799 9842 9771 VL -823 9771 9842 VL -847 9771 823 HL -862 9795 9787 VL -823 9811 847 HL -862 9842 847 9811 DL -NP -862 9787 MT -862 9785 LT -862 9783 LT -861 9781 LT -860 9779 LT -859 9778 LT -858 9776 LT -857 9775 LT -855 9774 LT -853 9773 LT -851 9772 LT -849 9772 LT -847 9771 LT -847 9771 LT -QS -NP -847 9811 MT -849 9811 LT -851 9810 LT -853 9810 LT -854 9809 LT -856 9808 LT -858 9806 LT -859 9805 LT -860 9803 LT -861 9802 LT -862 9800 LT -862 9798 LT -862 9796 LT -862 9795 LT -QS -886 9842 918 HL -917 9790 886 9842 DL -NP -917 9790 MT -917 9788 LT -918 9786 LT -917 9784 LT -917 9783 LT -QS -NP -917 9783 MT -916 9781 LT -916 9780 LT -915 9778 LT -913 9776 LT -912 9775 LT -910 9774 LT -908 9773 LT -906 9772 LT -905 9772 LT -903 9771 LT -901 9771 LT -899 9772 LT -897 9772 LT -895 9773 LT -893 9774 LT -891 9775 LT -890 9777 LT -889 9778 LT -888 9780 LT -887 9782 LT -887 9783 LT -QS -1011 9813 989 9801 DL -NP -1020 9777 MT -1018 9776 LT -1016 9775 LT -1014 9775 LT -1013 9774 LT -1011 9773 LT -1009 9773 LT -1007 9772 LT -1005 9772 LT -1003 9772 LT -1001 9772 LT -999 9771 LT -997 9771 LT -996 9771 LT -QS -NP -996 9771 MT -994 9772 LT -992 9772 LT -990 9773 LT -989 9773 LT -987 9774 LT -985 9776 LT -984 9777 LT -983 9779 LT -982 9781 LT -981 9783 LT -981 9784 LT -981 9786 LT -981 9788 LT -981 9790 LT -981 9792 LT -982 9794 LT -983 9796 LT -985 9798 LT -986 9799 LT -988 9800 LT -989 9801 LT -QS -NP -1004 9842 MT -1006 9842 LT -1008 9842 LT -1010 9841 LT -1012 9840 LT -1014 9839 LT -1015 9838 LT -1016 9836 LT -1018 9835 LT -1019 9833 LT -1019 9831 LT -1020 9829 LT -1020 9827 LT -1020 9825 LT -1020 9823 LT -1019 9821 LT -1018 9819 LT -1017 9818 LT -1016 9816 LT -1015 9815 LT -1013 9814 LT -1011 9813 LT -QS -NP -981 9837 MT -982 9838 LT -984 9838 LT -986 9839 LT -988 9840 LT -990 9840 LT -992 9841 LT -994 9841 LT -996 9842 LT -998 9842 LT -1000 9842 LT -1002 9842 LT -1004 9842 LT -1004 9842 LT -QS -1091 9771 1044 HL -1067 9842 9771 VL -1114 9842 1146 HL -1145 9790 1114 9842 DL -NP -1145 9790 MT -1146 9788 LT -1146 9786 LT -1146 9784 LT -1145 9783 LT -QS -NP -1145 9783 MT -1145 9781 LT -1144 9780 LT -1143 9778 LT -1142 9776 LT -1140 9775 LT -1139 9774 LT -1137 9773 LT -1135 9772 LT -1133 9772 LT -1131 9771 LT -1129 9771 LT -1127 9772 LT -1125 9772 LT -1123 9773 LT -1121 9774 LT -1120 9775 LT -1118 9777 LT -1117 9778 LT -1116 9780 LT -1115 9782 LT -1115 9783 LT -QS -996 9606 973 HL -1012 9551 9590 VL -973 9535 996 HL -973 9606 9535 VL -NP -996 9606 MT -998 9606 LT -1000 9606 LT -1002 9605 LT -1004 9604 LT -1006 9603 LT -1007 9602 LT -1009 9600 LT -1010 9599 LT -1011 9597 LT -1011 9595 LT -1012 9593 LT -1012 9591 LT -1012 9590 LT -QS -NP -1012 9551 MT -1012 9549 LT -1012 9547 LT -1011 9545 LT -1010 9543 LT -1009 9542 LT -1008 9540 LT -1006 9539 LT -1005 9537 LT -1003 9537 LT -1001 9536 LT -999 9535 LT -997 9535 LT -996 9535 LT -QS -1036 9606 9535 VL -1059 9535 9606 VL -1083 9535 1059 HL -1099 9559 9551 VL -1059 9575 1083 HL -1099 9606 1083 9575 DL -NP -1099 9551 MT -1099 9549 LT -1098 9547 LT -1098 9545 LT -1097 9543 LT -1096 9542 LT -1094 9540 LT -1093 9539 LT -1091 9537 LT -1089 9537 LT -1088 9536 LT -1086 9535 LT -1084 9535 LT -1083 9535 LT -QS -NP -1083 9575 MT -1085 9574 LT -1087 9574 LT -1089 9573 LT -1091 9573 LT -1092 9571 LT -1094 9570 LT -1095 9569 LT -1096 9567 LT -1097 9565 LT -1098 9563 LT -1099 9561 LT -1099 9559 LT -1099 9559 LT -QS -1138 9535 1122 HL -1130 9567 1138 HL -1154 9590 9582 VL -1122 9606 1138 HL -NP -1138 9567 MT -1140 9567 LT -1142 9566 LT -1144 9565 LT -1146 9565 LT -1147 9564 LT -1149 9562 LT -1150 9561 LT -1152 9559 LT -1152 9557 LT -1153 9556 LT -1154 9554 LT -1154 9552 LT -1154 9550 LT -1154 9548 LT -1153 9546 LT -1152 9544 LT -1151 9542 LT -1150 9540 LT -1149 9539 LT -1147 9538 LT -1145 9537 LT -1143 9536 LT -1141 9535 LT -1139 9535 LT -1138 9535 LT -QS -NP -1154 9582 MT -1154 9580 LT -1153 9578 LT -1153 9577 LT -1152 9575 LT -1151 9573 LT -1149 9571 LT -1148 9570 LT -1146 9569 LT -1145 9568 LT -1143 9567 LT -1141 9567 LT -1139 9567 LT -1138 9567 LT -QS -NP -1138 9606 MT -1140 9606 LT -1142 9606 LT -1144 9605 LT -1146 9604 LT -1147 9603 LT -1149 9602 LT -1150 9600 LT -1152 9599 LT -1152 9597 LT -1153 9595 LT -1154 9593 LT -1154 9591 LT -1154 9590 LT -QS -1248 9576 1225 9565 DL -NP -1256 9541 MT -1254 9540 LT -1253 9539 LT -1251 9538 LT -1249 9538 LT -1247 9537 LT -1245 9537 LT -1243 9536 LT -1241 9536 LT -1239 9536 LT -1237 9535 LT -1235 9535 LT -1233 9535 LT -1233 9535 LT -QS -NP -1233 9535 MT -1231 9535 LT -1229 9536 LT -1227 9536 LT -1225 9537 LT -1223 9538 LT -1222 9540 LT -1220 9541 LT -1219 9543 LT -1218 9544 LT -1218 9546 LT -1217 9548 LT -1217 9550 LT -1217 9552 LT -1217 9554 LT -1218 9556 LT -1219 9558 LT -1220 9560 LT -1221 9561 LT -1222 9563 LT -1224 9564 LT -1225 9565 LT -QS -NP -1241 9606 MT -1243 9606 LT -1244 9606 LT -1246 9605 LT -1248 9604 LT -1250 9603 LT -1251 9602 LT -1253 9600 LT -1254 9599 LT -1255 9597 LT -1256 9595 LT -1256 9593 LT -1256 9591 LT -1256 9589 LT -1256 9587 LT -1255 9585 LT -1255 9583 LT -1254 9581 LT -1252 9580 LT -1251 9578 LT -1249 9577 LT -1248 9576 LT -QS -NP -1217 9600 MT -1219 9601 LT -1221 9602 LT -1222 9603 LT -1224 9603 LT -1226 9604 LT -1228 9605 LT -1230 9605 LT -1232 9605 LT -1234 9606 LT -1236 9606 LT -1238 9606 LT -1240 9606 LT -1241 9606 LT -QS -1327 9535 1280 HL -1304 9606 9535 VL -1367 9535 1351 HL -1359 9567 1367 HL -1382 9590 9582 VL -1351 9606 1367 HL -NP -1367 9567 MT -1369 9567 LT -1370 9566 LT -1372 9565 LT -1374 9565 LT -1376 9564 LT -1377 9562 LT -1379 9561 LT -1380 9559 LT -1381 9557 LT -1382 9556 LT -1382 9554 LT -1382 9552 LT -1382 9550 LT -1382 9548 LT -1381 9546 LT -1381 9544 LT -1380 9542 LT -1378 9540 LT -1377 9539 LT -1375 9538 LT -1374 9537 LT -1372 9536 LT -1370 9535 LT -1368 9535 LT -1367 9535 LT -QS -NP -1382 9582 MT -1382 9580 LT -1382 9578 LT -1381 9577 LT -1380 9575 LT -1379 9573 LT -1378 9571 LT -1376 9570 LT -1375 9569 LT -1373 9568 LT -1371 9567 LT -1369 9567 LT -1367 9567 LT -1367 9567 LT -QS -NP -1367 9606 MT -1369 9606 LT -1370 9606 LT -1372 9605 LT -1374 9604 LT -1376 9603 LT -1377 9602 LT -1379 9600 LT -1380 9599 LT -1381 9597 LT -1382 9595 LT -1382 9593 LT -1382 9591 LT -1382 9590 LT -QS -1 4 0 0 255 1 1 PE -1477 9842 9771 VL -1500 9771 9842 VL -1540 9842 1500 9771 DL -1540 9771 9842 VL -1563 9827 9819 VL -1595 9819 9827 VL -1565 9789 9785 VL -1593 9785 9789 VL -NP -1563 9827 MT -1564 9829 LT -1564 9831 LT -1565 9832 LT -1565 9834 LT -1567 9836 LT -1568 9837 LT -1569 9839 LT -1571 9840 LT -1573 9841 LT -1575 9842 LT -1577 9842 LT -1578 9842 LT -1581 9842 LT -1582 9842 LT -1584 9841 LT -1586 9841 LT -1588 9840 LT -1590 9838 LT -1591 9837 LT -1592 9835 LT -1593 9834 LT -1594 9832 LT -1595 9830 LT -1595 9828 LT -1595 9827 LT -QS -NP -1595 9819 MT -1595 9817 LT -1594 9815 LT -1594 9813 LT -1593 9811 LT -1592 9809 LT -1591 9808 LT -1589 9806 LT -1587 9805 LT -1586 9804 LT -1584 9804 LT -1582 9803 LT -1580 9803 LT -1578 9803 LT -1576 9803 LT -1574 9804 LT -1572 9805 LT -1570 9806 LT -1569 9807 LT -1567 9808 LT -1566 9810 LT -1565 9812 LT -1564 9813 LT -1564 9815 LT -1563 9817 LT -1563 9819 LT -QS -NP -1565 9789 MT -1566 9791 LT -1566 9793 LT -1567 9795 LT -1568 9797 LT -1569 9798 LT -1570 9800 LT -1572 9801 LT -1574 9802 LT -1576 9802 LT -1578 9803 LT -1580 9803 LT -1582 9803 LT -1584 9802 LT -1585 9801 LT -1587 9800 LT -1589 9799 LT -1590 9798 LT -1591 9796 LT -1592 9794 LT -1593 9792 LT -1593 9790 LT -1593 9789 LT -QS -NP -1593 9785 MT -1593 9783 LT -1592 9781 LT -1592 9779 LT -1591 9778 LT -1589 9776 LT -1588 9775 LT -1586 9773 LT -1585 9773 LT -1583 9772 LT -1581 9772 LT -1579 9771 LT -1577 9772 LT -1575 9772 LT -1573 9773 LT -1571 9774 LT -1570 9775 LT -1568 9777 LT -1567 9778 LT -1566 9780 LT -1566 9782 LT -1565 9784 LT -1565 9785 LT -QS -1477 9606 9535 VL -1500 9535 9606 VL -1540 9606 1500 9535 DL -1540 9535 9606 VL -1595 9551 9565 VL -1563 9559 9551 VL -1594 9575 1579 HL -NP -1571 9606 MT -1573 9605 LT -1575 9604 LT -1576 9603 LT -1578 9601 LT -1579 9600 LT -1581 9599 LT -1582 9597 LT -1584 9596 LT -1585 9594 LT -1586 9593 LT -1587 9591 LT -1588 9589 LT -1589 9588 LT -1590 9586 LT -1591 9584 LT -1592 9582 LT -1592 9580 LT -1593 9578 LT -1594 9576 LT -1594 9575 LT -1594 9573 LT -1595 9571 LT -1595 9569 LT -1595 9567 LT -1595 9565 LT -QS -NP -1595 9551 MT -1595 9549 LT -1594 9547 LT -1594 9545 LT -1593 9543 LT -1592 9542 LT -1591 9540 LT -1589 9539 LT -1587 9537 LT -1586 9537 LT -1584 9536 LT -1582 9535 LT -1580 9535 LT -1578 9535 LT -1576 9535 LT -1574 9536 LT -1572 9537 LT -1570 9538 LT -1569 9539 LT -1567 9540 LT -1566 9542 LT -1565 9544 LT -1564 9546 LT -1564 9548 LT -1563 9550 LT -1563 9551 LT -QS -NP -1563 9559 MT -1564 9561 LT -1564 9563 LT -1565 9565 LT -1565 9566 LT -1567 9568 LT -1568 9570 LT -1569 9571 LT -1571 9572 LT -1573 9573 LT -1575 9574 LT -1577 9574 LT -1578 9574 LT -1579 9575 LT -QS -1930 9606 9535 VL -1953 9535 9606 VL -1993 9606 1953 9535 DL -1993 9535 9606 VL -2032 9535 2016 9551 DL -2032 9606 9535 VL -NP -2079 9539 MT -2077 9538 LT -2076 9536 LT -2074 9535 LT -2072 9535 LT -2070 9535 LT -2068 9536 LT -2066 9537 LT -2065 9538 LT -2064 9539 LT -QS -NP -2064 9539 MT -2063 9541 LT -2062 9542 LT -2061 9544 LT -2060 9546 LT -2059 9548 LT -2059 9550 LT -2058 9552 LT -2058 9554 LT -2057 9555 LT -QS -NP -2057 9586 MT -2058 9588 LT -2058 9590 LT -2059 9592 LT -2060 9594 LT -2060 9596 LT -2061 9598 LT -2062 9599 LT -2063 9601 LT -2064 9602 LT -QS -NP -2064 9602 MT -2066 9604 LT -2067 9605 LT -2069 9606 LT -2071 9606 LT -2073 9606 LT -2075 9605 LT -2077 9604 LT -2078 9603 LT -2079 9602 LT -QS -NP -2079 9602 MT -2080 9600 LT -2081 9599 LT -2082 9597 LT -2083 9595 LT -2084 9593 LT -2084 9591 LT -2085 9590 LT -2085 9588 LT -2086 9586 LT -QS -NP -2086 9586 MT -2086 9584 LT -2086 9582 LT -2087 9580 LT -2087 9578 LT -2087 9576 LT -2087 9574 LT -2087 9572 LT -2087 9571 LT -QS -NP -2087 9571 MT -2087 9569 LT -2087 9567 LT -2087 9565 LT -2087 9563 LT -2087 9561 LT -2086 9559 LT -2086 9557 LT -2086 9555 LT -QS -NP -2086 9555 MT -2085 9553 LT -2085 9551 LT -2084 9549 LT -2083 9547 LT -2082 9545 LT -2082 9544 LT -2081 9542 LT -2079 9540 LT -2079 9539 LT -QS -NP -2056 9571 MT -2056 9573 LT -2056 9575 LT -2056 9577 LT -2056 9579 LT -2056 9581 LT -2057 9583 LT -2057 9584 LT -2057 9586 LT -QS -NP -2057 9555 MT -2057 9557 LT -2057 9559 LT -2056 9561 LT -2056 9563 LT -2056 9565 LT -2056 9567 LT -2056 9569 LT -2056 9571 LT -QS -2174 9842 9771 VL -2197 9771 9842 VL -2237 9842 2197 9771 DL -2237 9771 9842 VL -2276 9771 2260 9787 DL -2276 9842 9771 VL -2316 9771 2300 9787 DL -2316 9842 9771 VL -2166 9606 9535 VL -2190 9535 9606 VL -2229 9606 2190 9535 DL -2229 9535 9606 VL -2268 9535 2253 9551 DL -2268 9606 9535 VL -2292 9606 2323 HL -2322 9554 2292 9606 DL -NP -2322 9554 MT -2323 9552 LT -2323 9550 LT -2323 9548 LT -2323 9547 LT -QS -NP -2323 9547 MT -2322 9545 LT -2321 9543 LT -2320 9542 LT -2319 9540 LT -2318 9539 LT -2316 9537 LT -2314 9537 LT -2312 9536 LT -2310 9535 LT -2308 9535 LT -2306 9535 LT -2304 9535 LT -2303 9536 LT -2301 9537 LT -2299 9538 LT -2297 9539 LT -2296 9540 LT -2295 9542 LT -2294 9544 LT -2293 9546 LT -2292 9547 LT -QS -2402 9842 9771 VL -2426 9771 9842 VL -2465 9842 2426 9771 DL -2465 9771 9842 VL -2505 9771 2489 9787 DL -2505 9842 9771 VL -2544 9771 2528 HL -2536 9803 2544 HL -2560 9827 9819 VL -2528 9842 2544 HL -NP -2544 9803 MT -2546 9803 LT -2548 9802 LT -2550 9802 LT -2552 9801 LT -2553 9800 LT -2555 9799 LT -2556 9797 LT -2557 9795 LT -2558 9794 LT -2559 9792 LT -2560 9790 LT -2560 9788 LT -2560 9786 LT -2559 9784 LT -2559 9782 LT -2558 9780 LT -2557 9778 LT -2556 9777 LT -2554 9775 LT -2553 9774 LT -2551 9773 LT -2549 9772 LT -2547 9772 LT -2545 9771 LT -2544 9771 LT -QS -NP -2560 9819 MT -2560 9817 LT -2559 9815 LT -2559 9813 LT -2558 9811 LT -2557 9809 LT -2555 9808 LT -2554 9806 LT -2552 9805 LT -2551 9804 LT -2549 9804 LT -2547 9803 LT -2545 9803 LT -2544 9803 LT -QS -NP -2544 9842 MT -2546 9842 LT -2548 9842 LT -2550 9841 LT -2552 9840 LT -2553 9839 LT -2555 9838 LT -2556 9836 LT -2557 9835 LT -2558 9833 LT -2559 9831 LT -2560 9829 LT -2560 9827 LT -2560 9827 LT -QS -2398 9606 9535 VL -2422 9535 9606 VL -2461 9606 2422 9535 DL -2461 9535 9606 VL -2501 9535 2485 9551 DL -2501 9606 9535 VL -2552 9575 9606 VL -2524 9590 2564 HL -2540 9535 2524 9590 DL -2639 9606 9535 VL -2662 9535 9606 VL -2702 9606 2662 9535 DL -2702 9535 9606 VL -2741 9535 2725 9551 DL -2741 9606 9535 VL -2765 9535 2796 HL -2765 9567 9535 VL -2780 9567 2765 HL -2796 9590 9582 VL -2765 9606 2780 HL -NP -2796 9582 MT -2796 9580 LT -2796 9578 LT -2795 9577 LT -2794 9575 LT -2793 9573 LT -2792 9571 LT -2790 9570 LT -2789 9569 LT -2787 9568 LT -2785 9567 LT -2783 9567 LT -2781 9567 LT -2780 9567 LT -QS -NP -2780 9606 MT -2782 9606 LT -2784 9606 LT -2786 9605 LT -2788 9604 LT -2790 9603 LT -2791 9602 LT -2793 9600 LT -2794 9599 LT -2795 9597 LT -2795 9595 LT -2796 9593 LT -2796 9591 LT -2796 9590 LT -QS -1 4 0 255 0 1 1 PE -3337 9557 9584 VL -3353 9547 3347 HL -3363 9584 9557 VL -3347 9594 3353 HL -NP -3347 9547 MT -3345 9547 LT -3343 9548 LT -3342 9549 LT -3340 9550 LT -3339 9551 LT -3338 9553 LT -3337 9555 LT -3337 9557 LT -3337 9557 LT -QS -NP -3363 9557 MT -3363 9555 LT -3362 9554 LT -3361 9552 LT -3360 9550 LT -3359 9549 LT -3357 9548 LT -3355 9547 LT -3353 9547 LT -3353 9547 LT -QS -NP -3353 9594 MT -3355 9594 LT -3357 9593 LT -3358 9593 LT -3360 9591 LT -3361 9590 LT -3362 9588 LT -3363 9586 LT -3363 9584 LT -3363 9584 LT -QS -NP -3337 9584 MT -3337 9586 LT -3338 9588 LT -3339 9589 LT -3340 9591 LT -3341 9592 LT -3343 9593 LT -3345 9594 LT -3347 9594 LT -3347 9594 LT -QS -3379 9581 9547 VL -3405 9547 9581 VL -NP -3379 9581 MT -3379 9583 LT -3379 9585 LT -3380 9587 LT -3381 9589 LT -3383 9590 LT -3384 9591 LT -3386 9593 LT -3388 9593 LT -3389 9594 LT -3391 9594 LT -3393 9594 LT -3395 9594 LT -3397 9593 LT -3399 9592 LT -3401 9591 LT -3402 9589 LT -3403 9588 LT -3404 9586 LT -3405 9584 LT -3405 9582 LT -3405 9581 LT -QS -3452 9547 3421 HL -3437 9594 9547 VL -3479 9547 3468 9557 DL -3479 9594 9547 VL -3494 9594 3515 HL -3515 9559 3494 9594 DL -NP -3515 9559 MT -3515 9557 LT -3515 9555 LT -3515 9555 LT -QS -NP -3515 9555 MT -3514 9553 LT -3513 9551 LT -3512 9550 LT -3510 9549 LT -3509 9548 LT -3507 9547 LT -3505 9547 LT -3503 9547 LT -3501 9548 LT -3499 9549 LT -3497 9550 LT -3496 9552 LT -3495 9553 LT -3495 9555 LT -QS -3573 9794 9820 VL -3589 9783 3584 HL -3599 9820 9794 VL -3584 9830 3589 HL -NP -3584 9783 MT -3582 9783 LT -3580 9784 LT -3578 9785 LT -3576 9786 LT -3575 9788 LT -3574 9789 LT -3573 9791 LT -3573 9793 LT -3573 9794 LT -QS -NP -3599 9794 MT -3599 9792 LT -3599 9790 LT -3598 9788 LT -3596 9786 LT -3595 9785 LT -3593 9784 LT -3591 9784 LT -3589 9783 LT -3589 9783 LT -QS -NP -3589 9830 MT -3591 9830 LT -3593 9830 LT -3595 9829 LT -3596 9828 LT -3598 9826 LT -3599 9824 LT -3599 9822 LT -3599 9820 LT -3599 9820 LT -QS -NP -3573 9820 MT -3573 9822 LT -3574 9824 LT -3575 9826 LT -3576 9827 LT -3578 9829 LT -3579 9830 LT -3581 9830 LT -3583 9830 LT -3584 9830 LT -QS -3615 9817 9783 VL -3641 9783 9817 VL -NP -3615 9817 MT -3615 9819 LT -3616 9821 LT -3617 9823 LT -3618 9825 LT -3619 9826 LT -3620 9828 LT -3622 9829 LT -3624 9830 LT -3626 9830 LT -3628 9830 LT -3630 9830 LT -3632 9830 LT -3634 9829 LT -3635 9828 LT -3637 9827 LT -3638 9826 LT -3640 9824 LT -3640 9822 LT -3641 9820 LT -3641 9818 LT -3641 9817 LT -QS -3689 9783 3657 HL -3673 9830 9783 VL -3715 9783 3704 9794 DL -3715 9830 9783 VL -3741 9783 3731 HL -3736 9804 3741 HL -3752 9820 9815 VL -3731 9830 3741 HL -NP -3741 9804 MT -3743 9804 LT -3745 9803 LT -3747 9803 LT -3748 9801 LT -3750 9800 LT -3751 9798 LT -3751 9796 LT -3752 9794 LT -3752 9792 LT -3751 9790 LT -3750 9788 LT -3749 9787 LT -3748 9785 LT -3746 9784 LT -3744 9784 LT -3742 9783 LT -3741 9783 LT -QS -NP -3752 9815 MT -3752 9813 LT -3751 9811 LT -3750 9809 LT -3749 9807 LT -3747 9806 LT -3745 9805 LT -3744 9805 LT -3742 9804 LT -3741 9804 LT -QS -NP -3741 9830 MT -3743 9830 LT -3745 9830 LT -3747 9829 LT -3748 9828 LT -3750 9826 LT -3751 9824 LT -3751 9822 LT -3752 9820 LT -3752 9820 LT -QS -3342 9794 9820 VL -3358 9783 3353 HL -3368 9820 9794 VL -3353 9830 3358 HL -NP -3353 9783 MT -3351 9783 LT -3349 9784 LT -3347 9785 LT -3345 9786 LT -3344 9788 LT -3343 9789 LT -3342 9791 LT -3342 9793 LT -3342 9794 LT -QS -NP -3368 9794 MT -3368 9792 LT -3368 9790 LT -3367 9788 LT -3365 9786 LT -3364 9785 LT -3362 9784 LT -3360 9784 LT -3358 9783 LT -3358 9783 LT -QS -NP -3358 9830 MT -3360 9830 LT -3362 9830 LT -3364 9829 LT -3365 9828 LT -3366 9826 LT -3367 9824 LT -3368 9822 LT -3368 9820 LT -3368 9820 LT -QS -NP -3342 9820 MT -3342 9822 LT -3343 9824 LT -3344 9826 LT -3345 9827 LT -3347 9829 LT -3348 9830 LT -3350 9830 LT -3352 9830 LT -3353 9830 LT -QS -3384 9817 9783 VL -3410 9783 9817 VL -NP -3384 9817 MT -3384 9819 LT -3385 9821 LT -3385 9823 LT -3387 9825 LT -3388 9826 LT -3389 9828 LT -3391 9829 LT -3393 9830 LT -3395 9830 LT -3397 9830 LT -3399 9830 LT -3401 9830 LT -3403 9829 LT -3404 9828 LT -3406 9827 LT -3407 9826 LT -3409 9824 LT -3409 9822 LT -3410 9820 LT -3410 9818 LT -3410 9817 LT -QS -3458 9783 3426 HL -3442 9830 9783 VL -3484 9783 3473 9794 DL -3484 9830 9783 VL -3510 9783 3500 9794 DL -3510 9830 9783 VL -2864 9794 9820 VL -2880 9783 2875 HL -2891 9820 9794 VL -2875 9830 2880 HL -NP -2875 9783 MT -2873 9783 LT -2871 9784 LT -2869 9785 LT -2868 9786 LT -2866 9788 LT -2865 9789 LT -2865 9791 LT -2864 9793 LT -2864 9794 LT -QS -NP -2891 9794 MT -2890 9792 LT -2890 9790 LT -2889 9788 LT -2888 9786 LT -2886 9785 LT -2884 9784 LT -2882 9784 LT -2880 9783 LT -2880 9783 LT -QS -NP -2880 9830 MT -2882 9830 LT -2884 9830 LT -2886 9829 LT -2887 9828 LT -2889 9826 LT -2890 9824 LT -2890 9822 LT -2891 9820 LT -2891 9820 LT -QS -NP -2864 9820 MT -2865 9822 LT -2865 9824 LT -2866 9826 LT -2867 9827 LT -2869 9829 LT -2871 9830 LT -2872 9830 LT -2874 9830 LT -2875 9830 LT -QS -2906 9817 9783 VL -2933 9783 9817 VL -NP -2906 9817 MT -2906 9819 LT -2907 9821 LT -2908 9823 LT -2909 9825 LT -2910 9826 LT -2911 9828 LT -2913 9829 LT -2915 9830 LT -2917 9830 LT -2919 9830 LT -2921 9830 LT -2923 9830 LT -2925 9829 LT -2927 9828 LT -2928 9827 LT -2930 9826 LT -2931 9824 LT -2932 9822 LT -2932 9820 LT -2933 9818 LT -2933 9817 LT -QS -2980 9783 2948 HL -2964 9830 9783 VL -3006 9783 2996 9794 DL -3006 9830 9783 VL -NP -3037 9786 MT -3036 9784 LT -3034 9783 LT -3032 9783 LT -3030 9784 LT -3028 9785 LT -3028 9786 LT -QS -NP -3028 9786 MT -3026 9788 LT -3025 9789 LT -3025 9791 LT -3024 9793 LT -3023 9795 LT -3023 9796 LT -QS -NP -3023 9817 MT -3023 9819 LT -3024 9821 LT -3025 9823 LT -3026 9825 LT -3027 9827 LT -3028 9828 LT -QS -NP -3028 9828 MT -3029 9829 LT -3031 9830 LT -3033 9830 LT -3035 9830 LT -3036 9829 LT -3037 9828 LT -QS -NP -3037 9828 MT -3038 9826 LT -3039 9824 LT -3040 9823 LT -3041 9821 LT -3041 9819 LT -3042 9817 LT -QS -NP -3042 9817 MT -3042 9815 LT -3042 9813 LT -3043 9811 LT -3043 9809 LT -3043 9807 LT -3043 9807 LT -QS -NP -3043 9807 MT -3043 9805 LT -3043 9803 LT -3042 9801 LT -3042 9799 LT -3042 9797 LT -3042 9796 LT -QS -NP -3042 9796 MT -3041 9794 LT -3041 9792 LT -3040 9791 LT -3039 9789 LT -3038 9787 LT -3037 9786 LT -QS -NP -3022 9807 MT -3022 9809 LT -3022 9811 LT -3022 9813 LT -3022 9815 LT -3023 9817 LT -3023 9817 LT -QS -NP -3023 9796 MT -3023 9798 LT -3022 9800 LT -3022 9802 LT -3022 9804 LT -3022 9806 LT -3022 9807 LT -QS - -QP -%%DocumentFonts: -%%Trailer -cleartomark countdictstack exch sub { end } repeat restore -%%EOF diff --git a/docs/src/hal/images/pluto_step_waveform.dxf b/docs/src/hal/images/pluto_step_waveform.dxf deleted file mode 100644 index de31d013df4..00000000000 --- a/docs/src/hal/images/pluto_step_waveform.dxf +++ /dev/null @@ -1,2812 +0,0 @@ -999 -dxflib 2.0.4.0 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMASZ - 40 -2.5 - 9 -$GRIDUNIT - 10 -0.0 - 20 -0.0 - 9 -$DIMADEC - 70 -2 - 9 -$DIMGAP - 40 -3.0 - 9 -$SPLINESEGS - 70 -8 - 9 -$AUPREC - 70 -2 - 9 -$LUNITS - 70 -2 - 9 -$DIMEXO - 40 -2.0 - 9 -$INSUNITS - 70 -4 - 9 -$DIMLUNIT - 70 -2 - 9 -$DIMTXT - 40 -3.0 - 9 -$GRIDMODE - 70 -1 - 9 -$LUPREC - 70 -4 - 9 -$PSVPSCALE - 40 -0.7751394482850703 - 9 -$DIMSTYLE - 2 -Standard - 9 -$PLIMMAX - 10 -210.0 - 20 -297.0 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$PINSBASE - 10 -3.7151379287324211 - 20 -85.5199195288551408 - 30 -0.0 - 9 -$DIMEXE - 40 -1.25 - 9 -$DIMAUNIT - 70 -0 - 9 -$AUNITS - 70 -0 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -2 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -50 -390 -F - 0 -LAYER - 5 -43 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -dims - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -13 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -1.0 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -2.5 - 42 -0.625 - 43 -3.75 - 44 -1.25 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -2.5 -141 -2.5 -143 -0.03937007874016 -147 -0.625 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -44 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -60.0 - 20 -60.0 - 30 -0.0 - 11 -70.0 - 21 -80.0 - 31 -0.0 - 0 -LINE - 5 -45 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -70.0 - 20 -80.0 - 30 -0.0 - 11 -80.0 - 21 -80.0 - 31 -0.0 - 0 -LINE - 5 -46 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -80.0 - 20 -80.0 - 30 -0.0 - 11 -90.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -47 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -110.0 - 20 -60.0 - 30 -0.0 - 11 -120.0 - 21 -80.0 - 31 -0.0 - 0 -LINE - 5 -48 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -130.0 - 20 -80.0 - 30 -0.0 - 11 -140.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -49 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -120.0 - 20 -80.0 - 30 -0.0 - 11 -130.0 - 21 -80.0 - 31 -0.0 - 0 -LINE - 5 -4A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -90.0 - 20 -60.0 - 30 -0.0 - 11 -110.0 - 21 -60.0 - 31 -0.0 - 0 -DIMENSION - 5 -4B -100 -AcDbEntity - 8 -dims - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -130.0 - 20 -130.0 - 30 -0.0 - 11 -120.0 - 21 -134.5 - 31 -0.0 - 70 -0 - 71 -5 - 72 -0 - 41 -1.0 - 42 -0.0 - 1 -steplen - 3 -Standard -100 -AcDbAlignedDimension - 13 -110.0 - 23 -60.0 - 33 -0.0 - 14 -130.0 - 24 -80.0 - 34 -0.0 - 50 -0.0 -100 -AcDbRotatedDimension - 0 -DIMENSION - 5 -4C -100 -AcDbEntity - 8 -dims - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -160.0 - 20 -130.0 - 30 -0.0 - 11 -145.0 - 21 -134.5 - 31 -0.0 - 70 -0 - 71 -5 - 72 -0 - 41 -1.0 - 42 -0.0 - 1 -stepspace - 3 -Standard -100 -AcDbAlignedDimension - 13 -130.0 - 23 -80.0 - 33 -0.0 - 14 -160.0 - 24 -60.0 - 34 -0.0 - 50 -0.0 -100 -AcDbRotatedDimension - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -50.0 - 20 -60.0 - 30 -0.0 - 11 -60.0 - 21 -60.0 - 31 -0.0 - 0 -MTEXT - 5 -4E -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -50.0 - 20 -70.0 - 30 -0.0 - 40 -6.0 - 41 -100.0 - 71 -6 - 72 -2 - 1 -STEP - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -MTEXT - 5 -4F -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -50.0 - 20 -20.0 - 30 -0.0 - 40 -6.0 - 41 -100.0 - 71 -6 - 72 -2 - 1 -DIRECTION - 7 -normallatin1 - 50 -0.0 - 73 -0 - 44 -1.0 - 0 -DIMENSION - 5 -50 -100 -AcDbEntity - 8 -dims - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -130.0 - 20 -130.0 - 30 -0.0 - 11 -120.0 - 21 -134.5 - 31 -0.0 - 70 -0 - 71 -5 - 72 -0 - 41 -1.0 - 42 -0.0 - 1 -steplen - 3 -Standard -100 -AcDbAlignedDimension - 13 -110.0 - 23 -60.0 - 33 -0.0 - 14 -130.0 - 24 -80.0 - 34 -0.0 - 50 -0.0 -100 -AcDbRotatedDimension - 0 -DIMENSION - 5 -51 -100 -AcDbEntity - 8 -dims - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -160.0 - 20 -130.0 - 30 -0.0 - 11 -145.0 - 21 -134.5 - 31 -0.0 - 70 -0 - 71 -5 - 72 -0 - 41 -1.0 - 42 -0.0 - 1 -stepspace - 3 -Standard -100 -AcDbAlignedDimension - 13 -130.0 - 23 -80.0 - 33 -0.0 - 14 -160.0 - 24 -60.0 - 34 -0.0 - 50 -0.0 -100 -AcDbRotatedDimension - 0 -DIMENSION - 5 -52 -100 -AcDbEntity - 8 -dims - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -140.0 - 20 -130.0 - 30 -0.0 - 11 -95.0 - 21 -134.5 - 31 -0.0 - 70 -0 - 71 -5 - 72 -0 - 41 -1.0 - 42 -0.0 - 1 -stepspace - 3 -Standard -100 -AcDbAlignedDimension - 13 -80.0 - 23 -80.0 - 33 -0.0 - 14 -110.0 - 24 -60.0 - 34 -0.0 - 50 -0.0 -100 -AcDbRotatedDimension - 0 -LINE - 5 -53 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -210.0 - 20 -60.0 - 30 -0.0 - 11 -220.0 - 21 -80.0 - 31 -0.0 - 0 -LINE - 5 -54 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -220.0 - 20 -80.0 - 30 -0.0 - 11 -230.0 - 21 -80.0 - 31 -0.0 - 0 -LINE - 5 -55 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -230.0 - 20 -80.0 - 30 -0.0 - 11 -240.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -56 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -240.0 - 20 -60.0 - 30 -0.0 - 11 -250.0 - 21 -60.0 - 31 -0.0 - 0 -LINE - 5 -57 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -180.0 - 20 -30.0 - 30 -0.0 - 11 -250.0 - 21 -30.0 - 31 -0.0 - 0 -LINE - 5 -58 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -170.0 - 20 -10.0 - 30 -0.0 - 11 -180.0 - 21 -30.0 - 31 -0.0 - 0 -LINE - 5 -59 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -50.0 - 20 -10.0 - 30 -0.0 - 11 -170.0 - 21 -10.0 - 31 -0.0 - 0 -DIMENSION - 5 -5A -100 -AcDbEntity - 8 -dims - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -190.0 - 20 -140.0 - 30 -0.0 - 11 -150.0 - 21 -144.5 - 31 -0.0 - 70 -0 - 71 -5 - 72 -0 - 41 -1.0 - 42 -0.0 - 1 -dirtime - 3 -Standard -100 -AcDbAlignedDimension - 13 -130.0 - 23 -80.0 - 33 -0.0 - 14 -170.0 - 24 -10.0 - 34 -0.0 - 50 -0.0 -100 -AcDbRotatedDimension - 0 -DIMENSION - 5 -5B -100 -AcDbEntity - 8 -dims - 62 -256 -370 --1 - 6 -ByLayer -100 -AcDbDimension - 10 -210.0 - 20 -140.0 - 30 -0.0 - 11 -190.0 - 21 -144.5 - 31 -0.0 - 70 -0 - 71 -5 - 72 -0 - 41 -1.0 - 42 -0.0 - 1 -dirtime - 3 -Standard -100 -AcDbAlignedDimension - 13 -170.0 - 23 -10.0 - 33 -0.0 - 14 -210.0 - 24 -60.0 - 34 -0.0 - 50 -0.0 -100 -AcDbRotatedDimension - 0 -LINE - 5 -5C -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -140.0 - 20 -60.0 - 30 -0.0 - 11 -210.0 - 21 -60.0 - 31 -0.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -5D - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -5D -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -5F - 3 -HIDETEXT -350 -5E - 0 -DICTIONARYVAR - 5 -5E -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -5F -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/hal/images/pluto_step_waveform.eps b/docs/src/hal/images/pluto_step_waveform.eps deleted file mode 100644 index f4bd27bd91f..00000000000 --- a/docs/src/hal/images/pluto_step_waveform.eps +++ /dev/null @@ -1,6297 +0,0 @@ -%!PS-Adobe-2.0 EPSF-1.2 -%%Title: -%%Creator: Qt 3.3.6 -%%CreationDate: Tue Jul 24 09:11:22 2007 -%%For:jeplerjepler jepler -%%Pages: 1 -%%DocumentFonts: -%%BoundingBox: 34 263 561 564 -%%EndComments - -%%BeginProlog -%%BeginPreview: 527 301 8 4214 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000022002200000000000022000000220000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000220000220000000000002200000022000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000044001100000000000044000000110000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000110000000000004400000011000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000225d445d00110040504000117644110011004044505d220000114422 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000335d761100110040502200117644110011004044 -% 505d2200002244110000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000a0110044004400440088000044000000440044004411a01100aa4488 -% 11000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000009000440000440044006600004400000044004400 -% 44229000009944991100000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000500000440044004400000000440000004400440044005000005c004e -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000005000440000440044000000004400000044004400 -% 44005000004e004e0000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000044000044004400440000000044000000440044004400440011764450 -% 11000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000004400440000440044000000004400000044004400 -% 44004400117644501100000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000098000044004400440000000044000000440044004400440000890000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000008900440000440044000000004400000044004400 -% 44004400006c00000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000005569443f002200220000000022000000220022002200220000555d44 -% 11000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000555d5d1100220022000000002200000022002200 -% 2200220000665d441100000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000001144000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000022220000000076000000223300000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000003322000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000cacbd7e8f9e1444444444444444444444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 444444444444444444444444444444444444444444444444c5ffe8dcd1c4e0d1d7e8f8cb44444444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 4444444444444444444444444444444444444444444444444444444444444444e1f9e8d7d1ca2000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000768fb0c8d8c8000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000a3e0c8b89b50a18fb8c8d8b800000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000c8d8c8b88f760000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000022000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000003f000000000000000000 -% 000000003f000000000000000000000000000000000044000000000000000000000000000000003f -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000044000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000760000000000000000000000000000000000440000000000000000000000000000000076 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000004433000076442200004444000030445c1100002044220030445d220000445d33000022 -% 5d2200004444000000000000000000000000000000000000003d763f0020b6763f0020765c000070 -% 769800007600000076760000587697200000000000004400000000000000000000003d763f0020b6 -% 763f0000765c00007076842000003f7620005776983f000076983f00005c883f0000765c00000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000022a02266000044000000885544880044002290005577226600440011a000000000a0110090 -% 1100007755447700000000000000000000000000000000005cc55ca3000076000000d776b7760076 -% 0076c000760000b77676a30076003fcf00000000000044000000000000000000005cd15cb7000076 -% 000000c876b78e0076005ccf00a3b63fa300760020cf00000020cf0020cf200000c876b78e000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000022b022000000440000005c00005c0044000050004499110000440000500000000050110050 -% 0000004e00005c000000000000000000000000000000000076df2000000076000000840000840076 -% 0000880076000097000084007600008700000000000044000000000000000000003fe73f00000076 -% 000000970000840076000088008ed7200000760000980000000087000087000000a7000097000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000001177a8000044000000694444400044000044000022908900440000440011a05076110044 -% 0000006944444000000000000000000000000000000000000020c8c9000076000000b67676570076 -% 00007600760000a7767670007600007600000000000044000000000000000000000020b7e2000076 -% 000000a7767657007600007600003fd6ba0076000076003fcf87b6000076000000a7767670000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000011220088000044000000891100000044000089002211009900440000980033660044000098 -% 0000007a1100000000000000000000000000000000000000202000d7000076000000d60000000076 -% 0020c900b70000c920000000760000760000000000004400000000000000000000202000d7000076 -% 000000d600000000760020d6003f0000b700760000d600767600760000c9000000d6000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000001177555c00002200000022774433005d4477220011667030005d446955000070505d110055 -% 692200117a4433000000000000000000000000000000000020b7a35700003f0000005ca7763f00a7 -% 76ba20005c5c003fb6765c003f00003f000000000000440000000000000000000020a3a38400003f -% 0000005cb6763f00a776ba20003fa3af57009876a7760000c0889800008e983f005cb6765c000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000044000000000000000000440000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000076 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000007600000000000000000076000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000022000000000000000000220000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000000003f -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000003f0000000000000000003f000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000022440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000002244000000009b0000003f7600000000000000000000000000000000 -% 000000000000000000000000000000003f5c00000000ca0000003f76000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00003f5c000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000c5d1d7e8f8e54444 -% 44444444444444444444444444444444444444444444444444444444444444444444444444444444 -% 444444444444444444444444a4ffeee2d7c5faf8f9fefffc76767676767676767676767676767676 -% 76767676767676767676767676767676f3fffffcf9f0fff8f9fefffc767676767676767676767676 -% 76767676767676767676767676767676767676767676767676767676767676767676767676767676 -% 7676f3fffffbf9f09600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000006985b0c8e0d00000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000008fe0c8c09b50c3c5ecf4fcf400000000000000000000000000000000 -% 00000000000000000000000000000000e6fcf4f0d887e6c5ecf4fcf4000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000e6fcf4f0d8767600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000004400000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000ca0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000002200000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000810000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000099ffffffffffffffffffffffffffffffffffffffffffffee11000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000000000000000000000000a4 -% ffffffffffffffffffffffffffffffffffffffffffffee0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000000d8ffffffffffffffffffffffffffffffffffffffff -% ffffc800000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000011f0f08888888888888888888888888888888888888888a8ff88000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000000000000000000000011f0 -% e08888888888888888888888888888888888888888b8ff6600000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000000066ffc088888888888888888888888888888888888888 -% 88c8ff44000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000088ff66000000000000000000000000000000000000000000bbee110000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000000000000000000000088ff -% 44000000000000000000000000000000000000000000dddd00000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000000000000000000000000000ddee1100000000000000000000000000000000000000 -% 0011eebb000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000011eedd0000000000000000000000000000000000000000000044ff880000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000000000000000000000000000011eebb -% 0000000000000000000000000000000000000000000066ff66000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000000000000000000000000066ff880000000000000000000000000000000000000000 -% 000088ff440000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000088ff660000000000000000000000000000000000000000000000bbee1100000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000000000000000000000000000088ff44 -% 0000000000000000000000000000000000000000000000dddd000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000000000000000000000000000ddee110000000000000000000000000000000000000000 -% 000011eebb0000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000011eedd00000000000000000000000000000000000000000000000044ff8800000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000011eebb00 -% 000000000000000000000000000000000000000000000066ff660000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000000000000000000000000066ff88000000000000000000000000000000000000000000 -% 00000088ff4400000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000088ff6600000000000000000000000000000000000000000000000000bbee11000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000000000088ff4400 -% 000000000000000000000000000000000000000000000000dddd0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000000ddee11000000000000000000000000000000000000000000 -% 00000011eebb00000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000011eedd000000000000000000000000000000000000000000000000000044ff88000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000000000000000011eebb0000 -% 00000000000000000000000000000000000000000000000066ff6600000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000000066ff8800000000000000000000000000000000000000000000 -% 0000000088ff44000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000088ff66000000000000000000000000000000000000000000000000000000bbee110000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000000000000000088ff440000 -% 00000000000000000000000000000000000000000000000000dddd00000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000000000000000000000ddee1100000000000000000000000000000000000000000000 -% 0000000011eebb000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000011eedd0000000000000000000000000000000000000000000000000000000044ff880000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000000000000000000000011eebb000000 -% 0000000000000000000000000000000000000000000000000066ff66000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000000000000000000066ff880000000000000000000000000000000000000000000000 -% 000000000088ff440000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000088ff660000000000000000000000000000000000000000000000000000000000bbee1100 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000000000000000000000088ff44000000 -% 0000000000000000000000000000000000000000000000000000dddd000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000000000000000000000ddee110000000000000000000000000000000000000000000000 -% 000000000011eebb0000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000011eedd00000000000000000000000000000000000000000000000000000000000044ff8800 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000011eebb00000000 -% 000000000000000000000000000000000000000000000000000066ff660000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000000000000000000066ff88000000000000000000000000000000000000000000000000 -% 00000000000088ff4400000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000088ff6600000000000000000000000000000000000000000000000000000000000000bbee11 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000000000088ff4400000000 -% 000000000000000000000000000000000000000000000000000000dddd0000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000000ddee11000000000000000000000000000000000000000000000000 -% 00000000000011eebb00000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000011eedd000000000000000000000000000000000000000000000000000000000000000044ff88 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000000000011eebb0000000000 -% 00000000000000000000000000000000000000000000000000000066ff6600000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000000066ff8800000000000000000000000000000000000000000000000000 -% 0000000000000088ff44000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000088ff66000000000000000000000000000000000000000000000000000000000000000000bbee -% 11000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000000000088ff440000000000 -% 00000000000000000000000000000000000000000000000000000000dddd00000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000000000000000ddee1100000000000000000000000000000000000000000000000000 -% 0000000000000011eebb000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000077b0908844000000000077888888a0a0888888550000008e9088888888770000005ca0 -% 888888a4661100000000000000000000000000000000000000000000000000000000000000000000 -% 0011eedd0000000000000000000000000000000000000000000000000000000000000000000044ff -% 88000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000000000000000011eebb000000000000 -% 0000000000000000000000000000000000000000000000000000000066ff66000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000000000000066ff880000000000000000000000000000000000000000000000000000 -% 000000000000000088ff440000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000011ccffffffffffee66000022eeffffffffffffffffcc000000ffffffffffffee220000e0ff -% fffffffcffee33000000000000000000000000000000000000000000000000000000000000000000 -% 0088ff660000000000000000000000000000000000000000000000000000000000000000000000bb -% ee110000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000000000000000088ff44000000000000 -% 0000000000000000000000000000000000000000000000000000000000dddd000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000000000000000ddee110000000000000000000000000000000000000000000000000000 -% 000000000000000011eebb0000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000088ff6600002266bbaa00000000000000bbbb00000000000000ff880000000000000000bbbb -% 0000000044eeaa000000000000000000000000000000000000000000000000000000000000000000 -% 11eedd00000000000000000000000000000000000000000000000000000000000000000000000044 -% ff880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000011eebb00000000000000 -% 000000000000000000000000000000000000000000000000000000000066ff660000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000000000000066ff88000000000000000000000000000000000000000000000000000000 -% 00000000000000000088ff4400000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000bbcc0000000000000000000000000000bbbb00000000000000ff880000000000000000bbbb -% 0000000000a0ff000000000000000000000000000000000000000000000000000000000000000000 -% 88ff6600000000000000000000000000000000000000000000000000000000000000000000000000 -% bbee1100000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000000000088ff4400000000000000 -% 000000000000000000000000000000000000000000000000000000000000dddd0000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000000ddee11000000000000000000000000000000000000000000000000000000 -% 00000000000000000011eebb00000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000bbbb0000000000000000000000000000bbbb00000000000000ff880000000000000000bbbb -% 0000000000a0ff000000000000000000000000000000000000000000000000000000000000000011 -% eedd0000000000000000000000000000000000000000000000000000000000000000000000000000 -% 44ff8800000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000011eebb0000000000000000 -% 00000000000000000000000000000000000000000000000000000000000066ff6600000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000000066ff8800000000000000000000000000000000000000000000000000000000 -% 0000000000000000000088ff44000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000aaff3300000000000000000000000000bbbb00000000000000ff880000000000000000bbbb -% 0000000000a4fc000000000000000000000000000000000000000000000000000000000000000088 -% ff660000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00bbee11000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000000000088ff440000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000dddd00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000000000ddee1100000000000000000000000000000000000000000000000000000000 -% 0000000000000000000011eebb000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000033f1fea7220000000000000000000000bbbb00000000000000ffe0bbbbbb8800000000bbbb -% 0000000000bbf10000000000000000000000000000000000000000000000000000000000000011ee -% dd000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0044ff88000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000000000011eebb000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000066ff66000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000000066ff880000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000088ff440000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000011c2ffff9922000000000000000000bbbb00000000000000ffe0bbbbbb8800000000c0cd -% 4444444eaaff880000000000000000000000000000000000000000000000000000000000000088ff -% 66000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000bbee110000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000000000088ff44000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000dddd000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000000000ddee110000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000011eebb0000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000022aaffff900000000000000000bbbb00000000000000ff880000000000000000e4ff -% ffffffffff880000000000000000000000000000000000000000000000000000000000000011eedd -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000044ff880000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000011eebb00000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000066ff660000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000000066ff88000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000088ff4400000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000044c9ff7700000000000000bbbb00000000000000ff880000000000000000c0cd -% 4444444e11000000000000000000000000000000000000000000000000000000000000000088ff66 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000bbee1100000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000000000088ff4400000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000dddd0000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000000ddee11000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000011eebb00000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000ddcc00000000000000bbbb00000000000000ff880000000000000000bbbb -% 00000000000000000000000000000000000000000000000000000000000000000000000011eedd00 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000044ff8800000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000011eebb0000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000066ff6600000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000000066ff8800000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000088ff44000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000aaee00000000000000bbbb00000000000000ff880000000000000000bbbb -% 00000000000000000000000000000000000000000000000000000000000000000000000088ff6600 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000bbee11000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000000000088ff440000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000dddd00000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000000ddee1100000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000011eebb000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000033330000000011ddcc00000000000000bbbb00000000000000ff880000000000000000bbbb -% 000000000000000000000000000000000000000000000000000000000000000000000011eedd0000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000044ff88000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000011eebb000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000066ff66000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000000066ff880000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000088ff440000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000bbffdd9990b0ddff5500000000000000bbbb00000000000000ffc88888888877000000bbbb -% 000000000000000000000000000000000000000000000000000000000000000000000088ff660000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000bbee110000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000000000088ff44000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000dddd000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000000ddee110000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000011eebb0000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000001166aaffffffee660000000000000000888800000000000000f5ffffffffffee2200008888 -% 0000000000000000000000000000000000000000000000000000000000000000000011eedd000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000044ff880000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000011eebb00000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000066ff660000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000000066ff88000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000088ff4400000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000088ff66000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000bbee1100000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000000000088ff4400000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000dddd0000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000000ddee11000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000011eebb00000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000011eedd00000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000044ff8800000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000011eebb0000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000066ff6600 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00000066ff8800000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000088ff44000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000088ff6600000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000bbee11000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0000000088ff440000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000dddd00 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000000ddee1100000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000011eebb000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000011eedd0000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000044ff88000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000011eebb000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000066ff66 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 000066ff880000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000088ff440000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000088ff660000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000bbee110000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b00000088ff44000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000000dddd -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0000ddee110000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000011eebb0000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000011eedd000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000044ff880000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000011eebb00000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000000066ff -% 66000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 0066ff88000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000088ff4400000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000088ff66000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000bbee1100000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b000088ff4400000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000000000dd -% dd000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 00ddee11000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000011eebb00000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000011eedd00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000044ff8800000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0011eebb0000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000066 -% ff660000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% 66ff8800000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000088ff44000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000088ff6600000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000bbee11000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b0088ff440000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% dddd0000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440000 -% ddee1100000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000011eebb000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000011eedd0000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000044ff88000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000009b11eebb000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 66ff6600000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000007600000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000440066 -% ff880000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000088ff440000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000088ff660000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000bbee110000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000005888ff44000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00dddd00000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000003f00000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000002200dd -% ee110000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000011eebb0000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000011eedd000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000044ff880000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000011eebb00000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0066ff66000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000000000000000000066ff -% 88000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000088ff4400000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000088ff66000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000bbee1100000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000088ff4400000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000dddd000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000000ddee -% 11000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000011eebb00000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000011eedd00000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000044ff8800000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000011eebb0000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000066ff660000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000000000000000000066ff88 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000088ff44000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000022eeffffffffffffffffffffffffffffffffffffffffffff6600000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000d2ffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffff440000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000e9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000011f8ffffffffffffffffffffffffffffffff -% ffffffffffff88 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000778888888888888888888888888888888888888888908e0000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000030a888888888888888888888888888888888888888888888888888 -% 8888888888888888888888888888888888988e000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000030a08888888888888888888888888888888888888888888888888888888888888888888888 -% 888888888888888888888888888888888888888888888888888888888888bf888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888a04e00 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000005ca0888888888888888888888888888888 -% 88888888888833 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 0000000000000000000000d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffff88 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 0000000000000000000044ffd0888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888833 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000000bbff22000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000000044ff9900000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 000000000000000000bbff2200000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 000000000000000044ff990000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 0000000000000000bbff220000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 0000000000000044ff99000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000000bbff22000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000000044ff9900000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 000000000000bbff2200000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 000000000044ff990000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 0000000000bbff220000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 0000000044ff99000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000000bbff22000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 20ddc0bbbbe0ae44000000006666000020ddc0bbbbd7c266000000005ce0bbbbbbbbbb6600000000 -% 44bbe0bbbb8800000088bbbbbbd7d7bbbbbbaa11000088330000000044bbe0e0a044000000008f99 -% 00000000003388000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00000044ff9900000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 50ffcdbbbbe0f2ff77000000bbbb000050ffcdbbbbd7f5ff99000000a0ffbbbbbbbbbb6600000066 -% ffffe0bbbb8800000088bbbbbbededbbbbbbaa110000ff8800000088fff2e0e0ffff66000000e0ff -% 330000000088ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 000000bbff2200000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff4400000011aaff220000bbbb000044ff440000001199ff55000088ff000000000000000022ee -% cc220000000000000000000000bbbb00000000000000ff88000033ff9911000011ccff220000c4ff -% bb0000000088ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 000044ff990000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000022ff920000bbbb000044ff440000000011ffa0000088ff000000000000000050ff -% 60000000000000000000000000bbbb00000000000000ff88000092ff220000000050ff500000bbe0 -% ff4400000088ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 0000bbff220000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000000ffa00000bbbb000044ff440000000000ffa0000088ff000000000000000050ff -% 50000000000000000000000000bbbb00000000000000ff880000a0ff000000000050ff500000bbc0 -% eedd00000088ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 0044ff99000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000000ff880000bbbb000044ff440000000000fca4000088ff000000000000000044ff -% 44000000000000000000000000bbbb00000000000000ff88000088ff000000000044ff440000bbbb -% 77ff66000088ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 00bbff22000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000000ff880000bbbb000044ff440000000044ff660000a0ffbbbbbbaa1100000044ff -% 44000000000000000000000000bbbb00000000000000ff88000088ff000000000044ff440000bbbb -% 00ddee110088ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% 44ff9900000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000000ff880000bbbb000044ff7644446897eeee110000a0ffbbbbbbaa1100000044ff -% 44000000000000000000000000bbbb00000000000000ff88000088ff000000000044ff440000bbbb -% 0055ff880088ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000000 -% bbff2200000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000000ff880000bbbb00005dffffffffffffbb3300000088ff000000000000000044ff -% 44000000000000000000000000bbbb00000000000000ff88000088ff000000000044ff440000bbbb -% 0000bbee2288ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000000044 -% ff990000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000000ff880000bbbb000044ff764444a2ff660000000088ff000000000000000044ff -% 44000000000000000000000000bbbb00000000000000ff88000088ff000000000044ff440000bbbb -% 000044ff9988ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000760000000000000000bb -% ff220000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000000ff900000bbbb000044ff44000011eedd0000000088ff000000000000000044ff -% 44000000000000000000000000bbbb00000000000000ff88000090ff000000000044ff440000bbbb -% 00000099ffa0ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000760000000000000044ff -% 99000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000011ffb00000bbbb000044ff4400000088ff6600000088ff00000000000000005dff -% 5d000000000000000000000000bbbb00000000000000ff880000b0ff00000000005dff5d0000bbbb -% 00000022ffe0ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000007600000000000000bbff -% 22000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ff440000000088ff330000bbbb000044ff4400000011eedd00000088ff000000000000000033ff -% aa000000000000000000000000bbbb00000000000000ff88000055ff770000000088ff330000bbbb -% 0000000088ffff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000007600000000000044ff99 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 44ffa88888b0b0ffbb000000bbbb000044ff440000000088ff55000090ff88888888883300000088 -% ffc0b088885500000000000000bbbb00000000000000ff88000000bbffb0b0b0c0ff99000000bbbb -% 0000000011f8ff000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000000bbff22 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 3ffdfffffffff499110000008888000022dd220000000011cc6600008effffffffffff8800000000 -% 88e9ffffffcc00000000000000888800000000000000cc550000001188f4fffff499000000008888 -% 000000000099f5000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000000044ff9900 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000760000000000bbff2200 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000760000000044ff990000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000007600000000bbff220000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000007600000044ff99000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000000bbff22000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000076000044ff9900000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000760000bbff2200000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000760044ff990000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000007600bbff220000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000007644ff99000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 0000000000000000000000000000000000000000000000000000000000003fbbff22000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000044ff9900000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000000bbff2200000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000000000000000000000000000000000000000000000000000044ff990000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 000000000022eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -% ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff220000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000077888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 88888888888888888888888888888888888888888888888888888888888888888888888888888888 -% 8888888888888888888888888888888888888888888888888888888888904e000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -% 00000000000000 -%%EndImage -%%EndPreview -save countdictstack mark newpath /showpage {} def /setpagedevice {pop} def -%%EndProlog -%%Page: 1 1 -%%BeginDocument: /net/filesrv1/sd3a/users/jepler/xfer.ps -%%DocumentFonts: - -% Prolog copyright 1994-2005 Trolltech. You may copy this prolog in any way -% that is directly related to this document. For other use of this prolog, -% see your licensing agreement for Qt. -/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D -/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D -/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D -/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read -pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end -d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi -false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88 -0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{ -LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{ -gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get -SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7 -bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL -0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB -exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL -ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1 -eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if -64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3 -i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll -putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3 -1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D -/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3 -colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1 -QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray -QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2 -add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq -{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC -imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel -where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d -/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7 -DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d -/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height -h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4 -DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{ -pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC -WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{ -1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie} -if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4 -2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg -RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0 -exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if -BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h -add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0 -6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT -}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h -D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div -add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1 -ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT -0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy -MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R -{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h -ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry -D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y -w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul -200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90 -x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0 --90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h -ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale -NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS} -D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT -x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP -ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255 -div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0 -B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25 -/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true -exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3 --1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch -/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup -maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding -fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length -dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end -definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d} -D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty -MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch -stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT -1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0 -exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore -showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop -pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D -/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt -ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP} -D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D - -/LArr[ [] [] [ 83.333 25.000 ] [ 25.000 83.333 ] [ 25.000 25.000 ] [ 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 ] [ 41.667 25.000 25.000 25.000 25.000 ] [ 25.000 41.667 25.000 25.000 25.000 25.000 ] ] d -/pageinit { -% 297*420mm (portrait) -0 1191 translate 0.12 -0.12 scale/defM matrix CM d } d -QI -[1 0 0 1 0 0]ST -1 12 B 1 1 PE -NB -W BC -1369 6440 1186 6806 DL -1552 6440 1369 HL -1735 6806 1552 6440 DL -2285 6440 2102 6806 DL -2651 6806 2468 6440 DL -2468 6440 2285 HL -2102 6806 1735 HL -1 3 B 1 1 PE -2468 5524 2102 HL -1 B BR -NP -2102 5524 MT -2147 5516 LT -2147 5532 LT -CP BF QS -NP -2468 5524 MT -2422 5532 LT -2422 5516 LT -CP BF QS -NP -2181 5436 MT -2179 5435 LT -2177 5434 LT -2175 5434 LT -2173 5433 LT -2171 5433 LT -2169 5433 LT -2167 5433 LT -2165 5434 LT -2164 5434 LT -2162 5434 LT -QS -NP -2162 5434 MT -2160 5435 LT -2159 5437 LT -2158 5438 LT -2157 5440 LT -2157 5442 LT -2158 5444 LT -2159 5446 LT -2160 5447 LT -2162 5448 LT -QS -2176 5454 2162 5448 DL -NP -2176 5468 MT -2177 5467 LT -2179 5466 LT -2180 5464 LT -2181 5462 LT -2181 5460 LT -2180 5458 LT -2179 5456 LT -2178 5455 LT -2176 5454 LT -QS -NP -2157 5466 MT -2158 5467 LT -2160 5468 LT -2162 5468 LT -2164 5469 LT -2166 5469 LT -2168 5469 LT -2170 5469 LT -2172 5469 LT -2174 5468 LT -2176 5468 LT -QS -2218 5432 2199 HL -2205 5469 5414 VL -2260 5451 2236 HL -2260 5445 5451 VL -NP -2260 5445 MT -2260 5443 LT -2260 5441 LT -2259 5439 LT -2258 5437 LT -2257 5436 LT -2255 5434 LT -2253 5433 LT -2251 5433 LT -2249 5432 LT -2247 5432 LT -2245 5433 LT -2243 5433 LT -2242 5434 LT -2240 5436 LT -2239 5437 LT -2238 5439 LT -2237 5440 LT -2236 5442 LT -2236 5444 LT -2236 5445 LT -QS -2236 5460 5445 VL -NP -2236 5460 MT -2236 5462 LT -2237 5464 LT -2238 5466 LT -2239 5467 LT -2241 5468 LT -2243 5469 LT -2245 5469 LT -2245 5469 LT -QS -2260 5469 2245 HL -2294 5469 2279 HL -NP -2294 5469 MT -2296 5469 LT -2298 5468 LT -2300 5467 LT -2301 5466 LT -2302 5464 LT -2303 5462 LT -2303 5460 LT -2303 5460 LT -QS -2303 5442 5460 VL -NP -2303 5442 MT -2303 5440 LT -2302 5438 LT -2301 5436 LT -2300 5435 LT -2298 5433 LT -2296 5433 LT -2294 5432 LT -2294 5432 LT -QS -2279 5432 2294 HL -2279 5487 5432 VL -2321 5463 5414 VL -NP -2321 5463 MT -2322 5465 LT -2323 5467 LT -2324 5468 LT -2326 5469 LT -2328 5469 LT -QS -2370 5451 2346 HL -2370 5445 5451 VL -NP -2370 5445 MT -2370 5443 LT -2370 5441 LT -2369 5439 LT -2368 5437 LT -2366 5436 LT -2365 5434 LT -2363 5433 LT -2361 5433 LT -2359 5432 LT -2357 5432 LT -2355 5433 LT -2353 5433 LT -2352 5434 LT -2350 5436 LT -2349 5437 LT -2347 5439 LT -2347 5440 LT -2346 5442 LT -2346 5444 LT -2346 5445 LT -QS -2346 5460 5445 VL -NP -2346 5460 MT -2346 5462 LT -2347 5464 LT -2348 5466 LT -2349 5467 LT -2351 5468 LT -2353 5469 LT -2355 5469 LT -2355 5469 LT -QS -2370 5469 2355 HL -2389 5432 5469 VL -2404 5432 2389 HL -NP -2413 5442 MT -2413 5440 LT -2412 5438 LT -2411 5436 LT -2410 5435 LT -2408 5433 LT -2406 5433 LT -2404 5432 LT -2404 5432 LT -QS -2413 5469 5442 VL -2102 5501 6769 VL -2468 5501 6403 VL -3017 5524 2468 HL -NP -2468 5524 MT -2514 5516 LT -2514 5532 LT -CP BF QS -NP -3017 5524 MT -2972 5532 LT -2972 5516 LT -CP BF QS -NP -2590 5436 MT -2588 5435 LT -2586 5434 LT -2584 5434 LT -2583 5433 LT -2581 5433 LT -2579 5433 LT -2577 5433 LT -2575 5434 LT -2573 5434 LT -2571 5434 LT -QS -NP -2571 5434 MT -2569 5435 LT -2568 5437 LT -2567 5438 LT -2566 5440 LT -2566 5442 LT -2567 5444 LT -2568 5446 LT -2569 5447 LT -2571 5448 LT -QS -2585 5454 2571 5448 DL -NP -2585 5468 MT -2586 5467 LT -2588 5466 LT -2589 5464 LT -2590 5462 LT -2590 5460 LT -2589 5458 LT -2588 5456 LT -2587 5455 LT -2585 5454 LT -QS -NP -2566 5466 MT -2568 5467 LT -2569 5468 LT -2571 5468 LT -2573 5469 LT -2575 5469 LT -2577 5469 LT -2579 5469 LT -2581 5469 LT -2583 5468 LT -2585 5468 LT -QS -2627 5432 2608 HL -2615 5469 5414 VL -2669 5451 2645 HL -2669 5445 5451 VL -NP -2669 5445 MT -2669 5443 LT -2669 5441 LT -2668 5439 LT -2667 5437 LT -2666 5436 LT -2664 5434 LT -2662 5433 LT -2660 5433 LT -2658 5432 LT -2656 5432 LT -2654 5433 LT -2652 5433 LT -2651 5434 LT -2649 5436 LT -2648 5437 LT -2647 5439 LT -2646 5440 LT -2645 5442 LT -2645 5444 LT -2645 5445 LT -QS -2645 5460 5445 VL -NP -2645 5460 MT -2645 5462 LT -2646 5464 LT -2647 5466 LT -2648 5467 LT -2650 5468 LT -2652 5469 LT -2654 5469 LT -2654 5469 LT -QS -2669 5469 2654 HL -2703 5469 2688 HL -NP -2703 5469 MT -2705 5469 LT -2707 5468 LT -2709 5467 LT -2710 5466 LT -2711 5464 LT -2712 5462 LT -2712 5460 LT -2712 5460 LT -QS -2712 5442 5460 VL -NP -2712 5442 MT -2712 5440 LT -2711 5438 LT -2710 5436 LT -2709 5435 LT -2707 5433 LT -2705 5433 LT -2703 5432 LT -2703 5432 LT -QS -2688 5432 2703 HL -2688 5487 5432 VL -NP -2755 5436 MT -2753 5435 LT -2751 5434 LT -2749 5434 LT -2747 5433 LT -2745 5433 LT -2743 5433 LT -2741 5433 LT -2739 5434 LT -2737 5434 LT -2736 5434 LT -QS -NP -2736 5434 MT -2734 5435 LT -2733 5437 LT -2732 5438 LT -2731 5440 LT -2731 5442 LT -2732 5444 LT -2733 5446 LT -2734 5447 LT -2736 5448 LT -QS -2750 5454 2736 5448 DL -NP -2750 5468 MT -2751 5467 LT -2753 5466 LT -2754 5464 LT -2754 5462 LT -2754 5460 LT -2754 5458 LT -2753 5456 LT -2751 5455 LT -2750 5454 LT -QS -NP -2731 5466 MT -2732 5467 LT -2734 5468 LT -2736 5468 LT -2738 5469 LT -2740 5469 LT -2742 5469 LT -2744 5469 LT -2746 5469 LT -2748 5468 LT -2750 5468 LT -QS -2789 5469 2773 HL -NP -2789 5469 MT -2791 5469 LT -2792 5468 LT -2794 5467 LT -2796 5466 LT -2797 5464 LT -2797 5462 LT -2798 5460 LT -2798 5460 LT -QS -2798 5442 5460 VL -NP -2798 5442 MT -2797 5440 LT -2797 5438 LT -2796 5436 LT -2794 5435 LT -2793 5433 LT -2791 5433 LT -2789 5432 LT -2789 5432 LT -QS -2773 5432 2789 HL -2773 5487 5432 VL -2831 5432 2819 HL -NP -2840 5442 MT -2840 5440 LT -2840 5438 LT -2838 5436 LT -2837 5435 LT -2835 5433 LT -2834 5433 LT -2832 5432 LT -2831 5432 LT -QS -2840 5469 5442 VL -2825 5469 2840 HL -NP -2825 5451 MT -2823 5451 LT -2821 5452 LT -2820 5453 LT -2818 5454 LT -2817 5456 LT -2816 5458 LT -2816 5460 LT -2816 5462 LT -2817 5464 LT -2818 5465 LT -2819 5467 LT -2821 5468 LT -2823 5469 LT -2825 5469 LT -2825 5469 LT -QS -2840 5451 2825 HL -2868 5432 2877 HL -NP -2868 5432 MT -2866 5433 LT -2864 5433 LT -2862 5434 LT -2861 5436 LT -2860 5437 LT -2859 5439 LT -2859 5441 LT -2859 5442 LT -QS -2859 5460 5442 VL -NP -2859 5460 MT -2859 5462 LT -2860 5464 LT -2861 5466 LT -2862 5467 LT -2864 5468 LT -2866 5469 LT -2868 5469 LT -2868 5469 LT -QS -2877 5469 2868 HL -2920 5451 2895 HL -2920 5445 5451 VL -NP -2920 5445 MT -2920 5443 LT -2919 5441 LT -2918 5439 LT -2917 5437 LT -2916 5436 LT -2914 5434 LT -2913 5433 LT -2911 5433 LT -2909 5432 LT -2907 5432 LT -2905 5433 LT -2903 5433 LT -2901 5434 LT -2899 5436 LT -2898 5437 LT -2897 5439 LT -2896 5440 LT -2896 5442 LT -2895 5444 LT -2895 5445 LT -QS -2895 5460 5445 VL -NP -2895 5460 MT -2896 5462 LT -2896 5464 LT -2897 5466 LT -2899 5467 LT -2900 5468 LT -2902 5469 LT -2904 5469 LT -2905 5469 LT -QS -2920 5469 2905 HL -2468 5501 6403 VL -3017 5501 6769 VL -1 12 B 1 1 PE -1186 6806 1003 HL -696 6632 662 6614 DL -NP -710 6577 MT -708 6576 LT -706 6575 LT -704 6574 LT -702 6573 LT -701 6573 LT -699 6572 LT -697 6572 LT -695 6571 LT -693 6570 LT -691 6570 LT -689 6570 LT -687 6569 LT -685 6569 LT -683 6569 LT -681 6568 LT -679 6568 LT -677 6568 LT -675 6568 LT -673 6568 LT -673 6568 LT -QS -NP -673 6568 MT -671 6568 LT -669 6568 LT -667 6569 LT -665 6569 LT -663 6570 LT -662 6571 LT -660 6572 LT -658 6573 LT -657 6574 LT -655 6576 LT -654 6577 LT -653 6579 LT -652 6581 LT -651 6582 LT -650 6584 LT -649 6586 LT -649 6588 LT -649 6590 LT -649 6592 LT -649 6594 LT -649 6596 LT -649 6598 LT -650 6600 LT -651 6602 LT -651 6604 LT -652 6605 LT -654 6607 LT -655 6609 LT -656 6610 LT -658 6611 LT -659 6613 LT -661 6614 LT -662 6614 LT -QS -NP -685 6678 MT -687 6678 LT -689 6678 LT -691 6677 LT -693 6677 LT -695 6676 LT -697 6675 LT -699 6674 LT -700 6673 LT -702 6672 LT -703 6670 LT -704 6669 LT -706 6667 LT -707 6665 LT -708 6663 LT -708 6662 LT -709 6660 LT -709 6658 LT -710 6656 LT -710 6654 LT -710 6652 LT -709 6650 LT -709 6648 LT -709 6646 LT -708 6644 LT -707 6642 LT -706 6640 LT -705 6639 LT -704 6637 LT -702 6636 LT -701 6634 LT -699 6633 LT -697 6632 LT -696 6632 LT -QS -NP -649 6669 MT -650 6670 LT -652 6671 LT -654 6672 LT -656 6672 LT -658 6673 LT -660 6674 LT -662 6674 LT -664 6675 LT -665 6675 LT -667 6676 LT -669 6676 LT -671 6677 LT -673 6677 LT -675 6677 LT -677 6677 LT -679 6678 LT -681 6678 LT -683 6678 LT -685 6678 LT -685 6678 LT -QS -820 6568 746 HL -783 6678 6568 VL -856 6568 905 HL -856 6678 6568 VL -905 6678 856 HL -893 6617 856 HL -942 6568 6678 VL -978 6568 942 HL -1003 6605 6592 VL -942 6629 978 HL -NP -1003 6592 MT -1003 6590 LT -1002 6588 LT -1002 6586 LT -1001 6585 LT -1001 6583 LT -1000 6581 LT -999 6579 LT -998 6577 LT -996 6576 LT -995 6575 LT -993 6573 LT -992 6572 LT -990 6571 LT -988 6570 LT -987 6569 LT -985 6569 LT -983 6568 LT -981 6568 LT -979 6568 LT -978 6568 LT -QS -NP -978 6629 MT -980 6629 LT -982 6629 LT -984 6628 LT -986 6628 LT -988 6627 LT -990 6626 LT -992 6625 LT -993 6624 LT -995 6623 LT -996 6621 LT -998 6620 LT -999 6618 LT -1000 6616 LT -1001 6615 LT -1001 6613 LT -1002 6611 LT -1002 6609 LT -1003 6607 LT -1003 6605 LT -1003 6605 LT -QS -331 7594 295 HL -356 7508 7569 VL -295 7484 331 HL -295 7594 7484 VL -NP -331 7594 MT -333 7594 LT -335 7593 LT -337 7593 LT -339 7592 LT -341 7592 LT -343 7591 LT -344 7590 LT -346 7589 LT -348 7587 LT -349 7586 LT -350 7584 LT -352 7583 LT -353 7581 LT -353 7579 LT -354 7577 LT -355 7575 LT -355 7574 LT -356 7572 LT -356 7570 LT -356 7569 LT -QS -NP -356 7508 MT -356 7506 LT -355 7504 LT -355 7502 LT -354 7500 LT -354 7498 LT -353 7497 LT -352 7495 LT -351 7493 LT -349 7492 LT -348 7490 LT -346 7489 LT -345 7488 LT -343 7487 LT -341 7486 LT -339 7485 LT -337 7485 LT -336 7484 LT -334 7484 LT -332 7484 LT -331 7484 LT -QS -392 7594 7484 VL -429 7484 7594 VL -466 7484 429 HL -490 7520 7508 VL -429 7545 466 HL -490 7594 466 7545 DL -NP -490 7508 MT -490 7506 LT -490 7504 LT -489 7502 LT -489 7500 LT -488 7498 LT -487 7497 LT -486 7495 LT -485 7493 LT -484 7492 LT -482 7490 LT -481 7489 LT -479 7488 LT -477 7487 LT -476 7486 LT -474 7485 LT -472 7485 LT -470 7484 LT -468 7484 LT -466 7484 LT -466 7484 LT -QS -NP -466 7545 MT -468 7545 LT -470 7544 LT -471 7544 LT -473 7543 LT -475 7543 LT -477 7542 LT -479 7541 LT -480 7540 LT -482 7538 LT -483 7537 LT -485 7536 LT -486 7534 LT -487 7532 LT -488 7530 LT -489 7529 LT -489 7527 LT -490 7525 LT -490 7523 LT -490 7521 LT -490 7520 LT -QS -527 7484 575 HL -527 7594 7484 VL -575 7594 527 HL -563 7533 527 HL -636 7484 661 HL -612 7569 7508 VL -661 7594 636 HL -NP -636 7484 MT -634 7484 LT -632 7484 LT -631 7484 LT -629 7485 LT -627 7486 LT -625 7487 LT -623 7488 LT -622 7489 LT -620 7490 LT -619 7492 LT -617 7493 LT -616 7495 LT -615 7496 LT -614 7498 LT -613 7500 LT -613 7502 LT -612 7504 LT -612 7506 LT -612 7508 LT -612 7508 LT -QS -NP -612 7569 MT -612 7571 LT -612 7573 LT -613 7575 LT -613 7577 LT -614 7579 LT -615 7581 LT -616 7582 LT -617 7584 LT -618 7586 LT -620 7587 LT -621 7588 LT -623 7590 LT -625 7591 LT -626 7591 LT -628 7592 LT -630 7593 LT -632 7593 LT -634 7594 LT -636 7594 LT -636 7594 LT -QS -771 7484 698 HL -734 7594 7484 VL -807 7594 7484 VL -844 7508 7569 VL -881 7484 868 HL -905 7569 7508 VL -868 7594 881 HL -NP -868 7484 MT -866 7484 LT -864 7484 LT -863 7484 LT -861 7485 LT -859 7486 LT -857 7487 LT -855 7488 LT -854 7489 LT -852 7490 LT -851 7492 LT -849 7493 LT -848 7495 LT -847 7496 LT -846 7498 LT -845 7500 LT -845 7502 LT -844 7504 LT -844 7506 LT -844 7508 LT -844 7508 LT -QS -NP -905 7508 MT -905 7506 LT -905 7504 LT -904 7502 LT -904 7500 LT -903 7498 LT -902 7497 LT -901 7495 LT -900 7493 LT -899 7492 LT -897 7490 LT -896 7489 LT -894 7488 LT -892 7487 LT -891 7486 LT -889 7485 LT -887 7485 LT -885 7484 LT -883 7484 LT -881 7484 LT -881 7484 LT -QS -NP -881 7594 MT -883 7594 LT -885 7593 LT -887 7593 LT -889 7592 LT -890 7592 LT -892 7591 LT -894 7590 LT -896 7589 LT -897 7587 LT -899 7586 LT -900 7584 LT -901 7583 LT -902 7581 LT -903 7579 LT -904 7577 LT -904 7575 LT -905 7574 LT -905 7572 LT -905 7570 LT -905 7569 LT -QS -NP -844 7569 MT -844 7571 LT -844 7573 LT -845 7575 LT -845 7577 LT -846 7579 LT -847 7581 LT -848 7582 LT -849 7584 LT -850 7586 LT -852 7587 LT -853 7588 LT -855 7590 LT -857 7591 LT -858 7591 LT -860 7592 LT -862 7593 LT -864 7593 LT -866 7594 LT -868 7594 LT -868 7594 LT -QS -942 7484 7594 VL -1003 7594 942 7484 DL -1003 7484 7594 VL -1 3 B 1 1 PE -2468 5524 2102 HL -NP -2102 5524 MT -2147 5516 LT -2147 5532 LT -CP BF QS -NP -2468 5524 MT -2422 5532 LT -2422 5516 LT -CP BF QS -NP -2181 5436 MT -2179 5435 LT -2177 5434 LT -2175 5434 LT -2173 5433 LT -2171 5433 LT -2169 5433 LT -2167 5433 LT -2165 5434 LT -2164 5434 LT -2162 5434 LT -QS -NP -2162 5434 MT -2160 5435 LT -2159 5437 LT -2158 5438 LT -2157 5440 LT -2157 5442 LT -2158 5444 LT -2159 5446 LT -2160 5447 LT -2162 5448 LT -QS -2176 5454 2162 5448 DL -NP -2176 5468 MT -2177 5467 LT -2179 5466 LT -2180 5464 LT -2181 5462 LT -2181 5460 LT -2180 5458 LT -2179 5456 LT -2178 5455 LT -2176 5454 LT -QS -NP -2157 5466 MT -2158 5467 LT -2160 5468 LT -2162 5468 LT -2164 5469 LT -2166 5469 LT -2168 5469 LT -2170 5469 LT -2172 5469 LT -2174 5468 LT -2176 5468 LT -QS -2218 5432 2199 HL -2205 5469 5414 VL -2260 5451 2236 HL -2260 5445 5451 VL -NP -2260 5445 MT -2260 5443 LT -2260 5441 LT -2259 5439 LT -2258 5437 LT -2257 5436 LT -2255 5434 LT -2253 5433 LT -2251 5433 LT -2249 5432 LT -2247 5432 LT -2245 5433 LT -2243 5433 LT -2242 5434 LT -2240 5436 LT -2239 5437 LT -2238 5439 LT -2237 5440 LT -2236 5442 LT -2236 5444 LT -2236 5445 LT -QS -2236 5460 5445 VL -NP -2236 5460 MT -2236 5462 LT -2237 5464 LT -2238 5466 LT -2239 5467 LT -2241 5468 LT -2243 5469 LT -2245 5469 LT -2245 5469 LT -QS -2260 5469 2245 HL -2294 5469 2279 HL -NP -2294 5469 MT -2296 5469 LT -2298 5468 LT -2300 5467 LT -2301 5466 LT -2302 5464 LT -2303 5462 LT -2303 5460 LT -2303 5460 LT -QS -2303 5442 5460 VL -NP -2303 5442 MT -2303 5440 LT -2302 5438 LT -2301 5436 LT -2300 5435 LT -2298 5433 LT -2296 5433 LT -2294 5432 LT -2294 5432 LT -QS -2279 5432 2294 HL -2279 5487 5432 VL -2321 5463 5414 VL -NP -2321 5463 MT -2322 5465 LT -2323 5467 LT -2324 5468 LT -2326 5469 LT -2328 5469 LT -QS -2370 5451 2346 HL -2370 5445 5451 VL -NP -2370 5445 MT -2370 5443 LT -2370 5441 LT -2369 5439 LT -2368 5437 LT -2366 5436 LT -2365 5434 LT -2363 5433 LT -2361 5433 LT -2359 5432 LT -2357 5432 LT -2355 5433 LT -2353 5433 LT -2352 5434 LT -2350 5436 LT -2349 5437 LT -2347 5439 LT -2347 5440 LT -2346 5442 LT -2346 5444 LT -2346 5445 LT -QS -2346 5460 5445 VL -NP -2346 5460 MT -2346 5462 LT -2347 5464 LT -2348 5466 LT -2349 5467 LT -2351 5468 LT -2353 5469 LT -2355 5469 LT -2355 5469 LT -QS -2370 5469 2355 HL -2389 5432 5469 VL -2404 5432 2389 HL -NP -2413 5442 MT -2413 5440 LT -2412 5438 LT -2411 5436 LT -2410 5435 LT -2408 5433 LT -2406 5433 LT -2404 5432 LT -2404 5432 LT -QS -2413 5469 5442 VL -2102 5501 6769 VL -2468 5501 6403 VL -3017 5524 2468 HL -NP -2468 5524 MT -2514 5516 LT -2514 5532 LT -CP BF QS -NP -3017 5524 MT -2972 5532 LT -2972 5516 LT -CP BF QS -NP -2590 5436 MT -2588 5435 LT -2586 5434 LT -2584 5434 LT -2583 5433 LT -2581 5433 LT -2579 5433 LT -2577 5433 LT -2575 5434 LT -2573 5434 LT -2571 5434 LT -QS -NP -2571 5434 MT -2569 5435 LT -2568 5437 LT -2567 5438 LT -2566 5440 LT -2566 5442 LT -2567 5444 LT -2568 5446 LT -2569 5447 LT -2571 5448 LT -QS -2585 5454 2571 5448 DL -NP -2585 5468 MT -2586 5467 LT -2588 5466 LT -2589 5464 LT -2590 5462 LT -2590 5460 LT -2589 5458 LT -2588 5456 LT -2587 5455 LT -2585 5454 LT -QS -NP -2566 5466 MT -2568 5467 LT -2569 5468 LT -2571 5468 LT -2573 5469 LT -2575 5469 LT -2577 5469 LT -2579 5469 LT -2581 5469 LT -2583 5468 LT -2585 5468 LT -QS -2627 5432 2608 HL -2615 5469 5414 VL -2669 5451 2645 HL -2669 5445 5451 VL -NP -2669 5445 MT -2669 5443 LT -2669 5441 LT -2668 5439 LT -2667 5437 LT -2666 5436 LT -2664 5434 LT -2662 5433 LT -2660 5433 LT -2658 5432 LT -2656 5432 LT -2654 5433 LT -2652 5433 LT -2651 5434 LT -2649 5436 LT -2648 5437 LT -2647 5439 LT -2646 5440 LT -2645 5442 LT -2645 5444 LT -2645 5445 LT -QS -2645 5460 5445 VL -NP -2645 5460 MT -2645 5462 LT -2646 5464 LT -2647 5466 LT -2648 5467 LT -2650 5468 LT -2652 5469 LT -2654 5469 LT -2654 5469 LT -QS -2669 5469 2654 HL -2703 5469 2688 HL -NP -2703 5469 MT -2705 5469 LT -2707 5468 LT -2709 5467 LT -2710 5466 LT -2711 5464 LT -2712 5462 LT -2712 5460 LT -2712 5460 LT -QS -2712 5442 5460 VL -NP -2712 5442 MT -2712 5440 LT -2711 5438 LT -2710 5436 LT -2709 5435 LT -2707 5433 LT -2705 5433 LT -2703 5432 LT -2703 5432 LT -QS -2688 5432 2703 HL -2688 5487 5432 VL -NP -2755 5436 MT -2753 5435 LT -2751 5434 LT -2749 5434 LT -2747 5433 LT -2745 5433 LT -2743 5433 LT -2741 5433 LT -2739 5434 LT -2737 5434 LT -2736 5434 LT -QS -NP -2736 5434 MT -2734 5435 LT -2733 5437 LT -2732 5438 LT -2731 5440 LT -2731 5442 LT -2732 5444 LT -2733 5446 LT -2734 5447 LT -2736 5448 LT -QS -2750 5454 2736 5448 DL -NP -2750 5468 MT -2751 5467 LT -2753 5466 LT -2754 5464 LT -2754 5462 LT -2754 5460 LT -2754 5458 LT -2753 5456 LT -2751 5455 LT -2750 5454 LT -QS -NP -2731 5466 MT -2732 5467 LT -2734 5468 LT -2736 5468 LT -2738 5469 LT -2740 5469 LT -2742 5469 LT -2744 5469 LT -2746 5469 LT -2748 5468 LT -2750 5468 LT -QS -2789 5469 2773 HL -NP -2789 5469 MT -2791 5469 LT -2792 5468 LT -2794 5467 LT -2796 5466 LT -2797 5464 LT -2797 5462 LT -2798 5460 LT -2798 5460 LT -QS -2798 5442 5460 VL -NP -2798 5442 MT -2797 5440 LT -2797 5438 LT -2796 5436 LT -2794 5435 LT -2793 5433 LT -2791 5433 LT -2789 5432 LT -2789 5432 LT -QS -2773 5432 2789 HL -2773 5487 5432 VL -2831 5432 2819 HL -NP -2840 5442 MT -2840 5440 LT -2840 5438 LT -2838 5436 LT -2837 5435 LT -2835 5433 LT -2834 5433 LT -2832 5432 LT -2831 5432 LT -QS -2840 5469 5442 VL -2825 5469 2840 HL -NP -2825 5451 MT -2823 5451 LT -2821 5452 LT -2820 5453 LT -2818 5454 LT -2817 5456 LT -2816 5458 LT -2816 5460 LT -2816 5462 LT -2817 5464 LT -2818 5465 LT -2819 5467 LT -2821 5468 LT -2823 5469 LT -2825 5469 LT -2825 5469 LT -QS -2840 5451 2825 HL -2868 5432 2877 HL -NP -2868 5432 MT -2866 5433 LT -2864 5433 LT -2862 5434 LT -2861 5436 LT -2860 5437 LT -2859 5439 LT -2859 5441 LT -2859 5442 LT -QS -2859 5460 5442 VL -NP -2859 5460 MT -2859 5462 LT -2860 5464 LT -2861 5466 LT -2862 5467 LT -2864 5468 LT -2866 5469 LT -2868 5469 LT -2868 5469 LT -QS -2877 5469 2868 HL -2920 5451 2895 HL -2920 5445 5451 VL -NP -2920 5445 MT -2920 5443 LT -2919 5441 LT -2918 5439 LT -2917 5437 LT -2916 5436 LT -2914 5434 LT -2913 5433 LT -2911 5433 LT -2909 5432 LT -2907 5432 LT -2905 5433 LT -2903 5433 LT -2901 5434 LT -2899 5436 LT -2898 5437 LT -2897 5439 LT -2896 5440 LT -2896 5442 LT -2895 5444 LT -2895 5445 LT -QS -2895 5460 5445 VL -NP -2895 5460 MT -2896 5462 LT -2896 5464 LT -2897 5466 LT -2899 5467 LT -2900 5468 LT -2902 5469 LT -2904 5469 LT -2905 5469 LT -QS -2920 5469 2905 HL -2468 5501 6403 VL -3017 5501 6769 VL -2102 5524 1552 HL -NP -1552 5524 MT -1598 5516 LT -1598 5532 LT -CP BF QS -NP -2102 5524 MT -2056 5532 LT -2056 5516 LT -CP BF QS -NP -1674 5436 MT -1673 5435 LT -1671 5434 LT -1669 5434 LT -1667 5433 LT -1665 5433 LT -1663 5433 LT -1661 5433 LT -1659 5434 LT -1657 5434 LT -1655 5434 LT -QS -NP -1655 5434 MT -1654 5435 LT -1652 5437 LT -1651 5438 LT -1650 5440 LT -1650 5442 LT -1651 5444 LT -1652 5446 LT -1653 5447 LT -1655 5448 LT -QS -1669 5454 1655 5448 DL -NP -1669 5468 MT -1671 5467 LT -1672 5466 LT -1673 5464 LT -1674 5462 LT -1674 5460 LT -1673 5458 LT -1672 5456 LT -1671 5455 LT -1669 5454 LT -QS -NP -1650 5466 MT -1652 5467 LT -1654 5468 LT -1656 5468 LT -1658 5469 LT -1660 5469 LT -1662 5469 LT -1664 5469 LT -1665 5469 LT -1667 5468 LT -1669 5468 LT -QS -1711 5432 1693 HL -1699 5469 5414 VL -1754 5451 1729 HL -1754 5445 5451 VL -NP -1754 5445 MT -1754 5443 LT -1753 5441 LT -1752 5439 LT -1751 5437 LT -1750 5436 LT -1748 5434 LT -1746 5433 LT -1745 5433 LT -1743 5432 LT -1741 5432 LT -1739 5433 LT -1737 5433 LT -1735 5434 LT -1733 5436 LT -1732 5437 LT -1731 5439 LT -1730 5440 LT -1729 5442 LT -1729 5444 LT -1729 5445 LT -QS -1729 5460 5445 VL -NP -1729 5460 MT -1730 5462 LT -1730 5464 LT -1731 5466 LT -1733 5467 LT -1734 5468 LT -1736 5469 LT -1738 5469 LT -1738 5469 LT -QS -1754 5469 1738 HL -1787 5469 1772 HL -NP -1787 5469 MT -1789 5469 LT -1791 5468 LT -1793 5467 LT -1794 5466 LT -1795 5464 LT -1796 5462 LT -1796 5460 LT -1796 5460 LT -QS -1796 5442 5460 VL -NP -1796 5442 MT -1796 5440 LT -1796 5438 LT -1795 5436 LT -1793 5435 LT -1791 5433 LT -1790 5433 LT -1788 5432 LT -1787 5432 LT -QS -1772 5432 1787 HL -1772 5487 5432 VL -NP -1839 5436 MT -1837 5435 LT -1835 5434 LT -1834 5434 LT -1832 5433 LT -1830 5433 LT -1828 5433 LT -1826 5433 LT -1824 5434 LT -1822 5434 LT -1820 5434 LT -QS -NP -1820 5434 MT -1818 5435 LT -1817 5437 LT -1816 5438 LT -1815 5440 LT -1815 5442 LT -1816 5444 LT -1817 5446 LT -1818 5447 LT -1820 5448 LT -QS -1834 5454 1820 5448 DL -NP -1834 5468 MT -1836 5467 LT -1837 5466 LT -1838 5464 LT -1839 5462 LT -1839 5460 LT -1838 5458 LT -1837 5456 LT -1836 5455 LT -1834 5454 LT -QS -NP -1815 5466 MT -1817 5467 LT -1818 5468 LT -1820 5468 LT -1822 5469 LT -1824 5469 LT -1826 5469 LT -1828 5469 LT -1830 5469 LT -1832 5468 LT -1834 5468 LT -QS -1873 5469 1857 HL -NP -1873 5469 MT -1875 5469 LT -1877 5468 LT -1878 5467 LT -1880 5466 LT -1881 5464 LT -1882 5462 LT -1882 5460 LT -1882 5460 LT -QS -1882 5442 5460 VL -NP -1882 5442 MT -1882 5440 LT -1881 5438 LT -1880 5436 LT -1879 5435 LT -1877 5433 LT -1875 5433 LT -1873 5432 LT -1873 5432 LT -QS -1857 5432 1873 HL -1857 5487 5432 VL -1915 5432 1903 HL -NP -1925 5442 MT -1924 5440 LT -1924 5438 LT -1923 5436 LT -1921 5435 LT -1920 5433 LT -1918 5433 LT -1916 5432 LT -1915 5432 LT -QS -1925 5469 5442 VL -1909 5469 1925 HL -NP -1909 5451 MT -1907 5451 LT -1905 5452 LT -1904 5453 LT -1902 5454 LT -1901 5456 LT -1901 5458 LT -1900 5460 LT -1900 5462 LT -1901 5464 LT -1902 5465 LT -1903 5467 LT -1905 5468 LT -1907 5469 LT -1909 5469 LT -1909 5469 LT -QS -1925 5451 1909 HL -1952 5432 1961 HL -NP -1952 5432 MT -1950 5433 LT -1948 5433 LT -1947 5434 LT -1945 5436 LT -1944 5437 LT -1943 5439 LT -1943 5441 LT -1943 5442 LT -QS -1943 5460 5442 VL -NP -1943 5460 MT -1943 5462 LT -1944 5464 LT -1945 5466 LT -1946 5467 LT -1948 5468 LT -1950 5469 LT -1952 5469 LT -1952 5469 LT -QS -1961 5469 1952 HL -2004 5451 1980 HL -2004 5445 5451 VL -NP -2004 5445 MT -2004 5443 LT -2003 5441 LT -2003 5439 LT -2001 5437 LT -2000 5436 LT -1999 5434 LT -1997 5433 LT -1995 5433 LT -1993 5432 LT -1991 5432 LT -1989 5433 LT -1987 5433 LT -1985 5434 LT -1984 5436 LT -1982 5437 LT -1981 5439 LT -1980 5440 LT -1980 5442 LT -1980 5444 LT -1980 5445 LT -QS -1980 5460 5445 VL -NP -1980 5460 MT -1980 5462 LT -1980 5464 LT -1982 5466 LT -1983 5467 LT -1985 5468 LT -1986 5469 LT -1988 5469 LT -1989 5469 LT -QS -2004 5469 1989 HL -1552 5501 6403 VL -2102 5501 6769 VL -1 12 B 1 1 PE -4116 6440 3933 6806 DL -4300 6440 4116 HL -4483 6806 4300 6440 DL -4666 6806 4483 HL -4666 7356 3384 HL -3384 7356 3201 7722 DL -3201 7722 1003 HL -1 3 B 1 1 PE -3201 5341 2468 HL -NP -2468 5341 MT -2514 5333 LT -2514 5348 LT -CP BF QS -NP -3201 5341 MT -3155 5348 LT -3155 5333 LT -CP BF QS -2743 5286 5231 VL -2727 5286 2743 HL -NP -2718 5277 MT -2719 5279 LT -2719 5281 LT -2720 5282 LT -2722 5284 LT -2723 5285 LT -2725 5286 LT -2727 5286 LT -2727 5286 LT -QS -2718 5258 5277 VL -NP -2727 5249 MT -2725 5249 LT -2724 5250 LT -2722 5251 LT -2720 5253 LT -2719 5254 LT -2719 5256 LT -2718 5258 LT -2718 5258 LT -QS -2743 5249 2727 HL -2761 5249 5286 VL -2761 5231 5234 VL -2779 5249 5286 VL -2792 5249 2779 HL -NP -2798 5255 MT -2797 5253 LT -2796 5252 LT -2795 5250 LT -2793 5249 LT -2792 5249 LT -QS -2834 5249 2816 HL -2822 5286 5231 VL -2853 5249 5286 VL -2853 5231 5234 VL -2871 5249 5286 VL -2898 5249 2871 HL -NP -2908 5258 MT -2907 5256 LT -2907 5255 LT -2906 5253 LT -2904 5251 LT -2903 5250 LT -2901 5250 LT -2899 5249 LT -2898 5249 LT -QS -2908 5286 5258 VL -2889 5286 5249 VL -2950 5268 2926 HL -2950 5261 5268 VL -NP -2950 5261 MT -2950 5259 LT -2950 5258 LT -2949 5256 LT -2948 5254 LT -2946 5253 LT -2945 5251 LT -2943 5250 LT -2941 5250 LT -2939 5249 LT -2937 5249 LT -2935 5250 LT -2933 5250 LT -2932 5251 LT -2930 5252 LT -2929 5254 LT -2927 5256 LT -2927 5257 LT -2926 5259 LT -2926 5261 LT -2926 5261 LT -QS -2926 5277 5261 VL -NP -2926 5277 MT -2926 5279 LT -2927 5281 LT -2928 5282 LT -2929 5284 LT -2931 5285 LT -2933 5286 LT -2935 5286 LT -2935 5286 LT -QS -2950 5286 2935 HL -2468 5318 6403 VL -3201 5318 7685 VL -3933 5341 3201 HL -NP -3201 5341 MT -3246 5333 LT -3246 5348 LT -CP BF QS -NP -3933 5341 MT -3887 5348 LT -3887 5333 LT -CP BF QS -3475 5286 5231 VL -3460 5286 3475 HL -NP -3451 5277 MT -3451 5279 LT -3452 5281 LT -3453 5282 LT -3454 5284 LT -3456 5285 LT -3458 5286 LT -3460 5286 LT -3460 5286 LT -QS -3451 5258 5277 VL -NP -3460 5249 MT -3458 5249 LT -3456 5250 LT -3454 5251 LT -3453 5253 LT -3452 5254 LT -3451 5256 LT -3451 5258 LT -3451 5258 LT -QS -3475 5249 3460 HL -3494 5249 5286 VL -3494 5231 5234 VL -3512 5249 5286 VL -3524 5249 3512 HL -NP -3530 5255 MT -3530 5253 LT -3529 5252 LT -3527 5250 LT -3526 5249 LT -3524 5249 LT -QS -3567 5249 3549 HL -3555 5286 5231 VL -3585 5249 5286 VL -3585 5231 5234 VL -3604 5249 5286 VL -3631 5249 3604 HL -NP -3640 5258 MT -3640 5256 LT -3639 5255 LT -3638 5253 LT -3637 5251 LT -3635 5250 LT -3633 5250 LT -3631 5249 LT -3631 5249 LT -QS -3640 5286 5258 VL -3622 5286 5249 VL -3683 5268 3659 HL -3683 5261 5268 VL -NP -3683 5261 MT -3683 5259 LT -3682 5258 LT -3681 5256 LT -3680 5254 LT -3679 5253 LT -3677 5251 LT -3676 5250 LT -3674 5250 LT -3672 5249 LT -3670 5249 LT -3668 5250 LT -3666 5250 LT -3664 5251 LT -3663 5252 LT -3661 5254 LT -3660 5256 LT -3659 5257 LT -3659 5259 LT -3659 5261 LT -3659 5261 LT -QS -3659 5277 5261 VL -NP -3659 5277 MT -3659 5279 LT -3659 5281 LT -3660 5282 LT -3662 5284 LT -3664 5285 LT -3665 5286 LT -3667 5286 LT -3668 5286 LT -QS -3683 5286 3668 HL -3201 5318 7685 VL -3933 5318 6769 VL -1 12 B 1 1 PE -3933 6806 2651 HL - -QP -%%DocumentFonts: -%%EndDocument -%%Trailer -cleartomark countdictstack exch sub { end } repeat restore -%%EOF diff --git a/docs/src/hal/images/ptest-final.png b/docs/src/hal/images/ptest-final.png deleted file mode 100644 index 38bfc6a33a8..00000000000 Binary files a/docs/src/hal/images/ptest-final.png and /dev/null differ diff --git a/docs/src/hal/images/ptest.png b/docs/src/hal/images/ptest.png deleted file mode 100644 index ceae1095123..00000000000 Binary files a/docs/src/hal/images/ptest.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_AXIS_fr.png b/docs/src/hal/images/pyvcp_AXIS_fr.png deleted file mode 100644 index e3515a613e5..00000000000 Binary files a/docs/src/hal/images/pyvcp_AXIS_fr.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_axis_lathe.png b/docs/src/hal/images/pyvcp_axis_lathe.png deleted file mode 100644 index 5f76959b755..00000000000 Binary files a/docs/src/hal/images/pyvcp_axis_lathe.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_bar.png b/docs/src/hal/images/pyvcp_bar.png deleted file mode 100644 index 4fc85910fa1..00000000000 Binary files a/docs/src/hal/images/pyvcp_bar.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_borders.png b/docs/src/hal/images/pyvcp_borders.png deleted file mode 100644 index a4916d579ff..00000000000 Binary files a/docs/src/hal/images/pyvcp_borders.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_button.png b/docs/src/hal/images/pyvcp_button.png deleted file mode 100644 index d099042b81b..00000000000 Binary files a/docs/src/hal/images/pyvcp_button.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_checkbutton.png b/docs/src/hal/images/pyvcp_checkbutton.png deleted file mode 100644 index 1b2cfd1b2ad..00000000000 Binary files a/docs/src/hal/images/pyvcp_checkbutton.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_checkbutton1.png b/docs/src/hal/images/pyvcp_checkbutton1.png deleted file mode 100644 index a990acb5f39..00000000000 Binary files a/docs/src/hal/images/pyvcp_checkbutton1.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_checkbutton2.png b/docs/src/hal/images/pyvcp_checkbutton2.png deleted file mode 100644 index 8b64c06c4f5..00000000000 Binary files a/docs/src/hal/images/pyvcp_checkbutton2.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_dial.png b/docs/src/hal/images/pyvcp_dial.png deleted file mode 100644 index c8e0dfd356a..00000000000 Binary files a/docs/src/hal/images/pyvcp_dial.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_group.png b/docs/src/hal/images/pyvcp_group.png deleted file mode 100644 index d4391f58eaf..00000000000 Binary files a/docs/src/hal/images/pyvcp_group.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_hbox.png b/docs/src/hal/images/pyvcp_hbox.png deleted file mode 100644 index ca0b1e47ad9..00000000000 Binary files a/docs/src/hal/images/pyvcp_hbox.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_image01.png b/docs/src/hal/images/pyvcp_image01.png deleted file mode 100644 index 00565d87a08..00000000000 Binary files a/docs/src/hal/images/pyvcp_image01.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_image02.png b/docs/src/hal/images/pyvcp_image02.png deleted file mode 100644 index a74969fa79c..00000000000 Binary files a/docs/src/hal/images/pyvcp_image02.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_image_u32_01.png b/docs/src/hal/images/pyvcp_image_u32_01.png deleted file mode 100644 index ba110e8e821..00000000000 Binary files a/docs/src/hal/images/pyvcp_image_u32_01.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_jogwheel.png b/docs/src/hal/images/pyvcp_jogwheel.png deleted file mode 100644 index 45668b2a87b..00000000000 Binary files a/docs/src/hal/images/pyvcp_jogwheel.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_label.png b/docs/src/hal/images/pyvcp_label.png deleted file mode 100644 index 989c2340af0..00000000000 Binary files a/docs/src/hal/images/pyvcp_label.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_label_fr.png b/docs/src/hal/images/pyvcp_label_fr.png deleted file mode 100644 index f691d3403f8..00000000000 Binary files a/docs/src/hal/images/pyvcp_label_fr.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_labelframe.png b/docs/src/hal/images/pyvcp_labelframe.png deleted file mode 100644 index 1a6cf19cea9..00000000000 Binary files a/docs/src/hal/images/pyvcp_labelframe.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_labelframe_fr1.png b/docs/src/hal/images/pyvcp_labelframe_fr1.png deleted file mode 100644 index 09031989fad..00000000000 Binary files a/docs/src/hal/images/pyvcp_labelframe_fr1.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_led.png b/docs/src/hal/images/pyvcp_led.png deleted file mode 100644 index 89c2f93693d..00000000000 Binary files a/docs/src/hal/images/pyvcp_led.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_meter.png b/docs/src/hal/images/pyvcp_meter.png deleted file mode 100644 index c2ba54fee63..00000000000 Binary files a/docs/src/hal/images/pyvcp_meter.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_mypanel.png b/docs/src/hal/images/pyvcp_mypanel.png deleted file mode 100644 index bb312ce7316..00000000000 Binary files a/docs/src/hal/images/pyvcp_mypanel.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_mypanel_fr.png b/docs/src/hal/images/pyvcp_mypanel_fr.png deleted file mode 100644 index f9744724dae..00000000000 Binary files a/docs/src/hal/images/pyvcp_mypanel_fr.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_number.png b/docs/src/hal/images/pyvcp_number.png deleted file mode 100644 index d1e82855450..00000000000 Binary files a/docs/src/hal/images/pyvcp_number.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_radiobutton.png b/docs/src/hal/images/pyvcp_radiobutton.png deleted file mode 100644 index 6fce620b4a8..00000000000 Binary files a/docs/src/hal/images/pyvcp_radiobutton.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_radiobutton_fr.png b/docs/src/hal/images/pyvcp_radiobutton_fr.png deleted file mode 100644 index 790988b7383..00000000000 Binary files a/docs/src/hal/images/pyvcp_radiobutton_fr.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_rectled.png b/docs/src/hal/images/pyvcp_rectled.png deleted file mode 100644 index d15d618c147..00000000000 Binary files a/docs/src/hal/images/pyvcp_rectled.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_s32.png b/docs/src/hal/images/pyvcp_s32.png deleted file mode 100644 index 3798afd7e16..00000000000 Binary files a/docs/src/hal/images/pyvcp_s32.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_scale.png b/docs/src/hal/images/pyvcp_scale.png deleted file mode 100644 index 01662dc7d0c..00000000000 Binary files a/docs/src/hal/images/pyvcp_scale.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_spinbox.png b/docs/src/hal/images/pyvcp_spinbox.png deleted file mode 100644 index 77577cbe1a7..00000000000 Binary files a/docs/src/hal/images/pyvcp_spinbox.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_table.png b/docs/src/hal/images/pyvcp_table.png deleted file mode 100644 index ea4a31b78c7..00000000000 Binary files a/docs/src/hal/images/pyvcp_table.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_tabs1.png b/docs/src/hal/images/pyvcp_tabs1.png deleted file mode 100644 index 2a2232390e2..00000000000 Binary files a/docs/src/hal/images/pyvcp_tabs1.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_tabs2.png b/docs/src/hal/images/pyvcp_tabs2.png deleted file mode 100644 index ae0a4af66de..00000000000 Binary files a/docs/src/hal/images/pyvcp_tabs2.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_tabs3.png b/docs/src/hal/images/pyvcp_tabs3.png deleted file mode 100644 index e3fe71df348..00000000000 Binary files a/docs/src/hal/images/pyvcp_tabs3.png and /dev/null differ diff --git a/docs/src/hal/images/pyvcp_vbox.png b/docs/src/hal/images/pyvcp_vbox.png deleted file mode 100644 index 82855991000..00000000000 Binary files a/docs/src/hal/images/pyvcp_vbox.png and /dev/null differ diff --git a/docs/src/hal/images/remote-start.dxf b/docs/src/hal/images/remote-start.dxf deleted file mode 100644 index 4f5e0213ced..00000000000 --- a/docs/src/hal/images/remote-start.dxf +++ /dev/null @@ -1,2878 +0,0 @@ -999 -dxflib 2.0.4.8 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1015 - 9 -$HANDSEED - 5 -FFFF - 9 -$DIMASZ - 40 -0.1 - 9 -$DIMGAP - 40 -0.025 - 9 -$DIMEXO - 40 -0.025 - 9 -$INSUNITS - 70 -1 - 9 -$DIMTXT - 40 -0.1 - 9 -$PLIMMAX - 10 -8.2677165354330722 - 20 -11.6929133858267722 - 9 -$PLIMMIN - 10 -0.0 - 20 -0.0 - 9 -$DIMEXE - 40 -0.05 - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -100 -AcDbSymbolTable - 70 -1 - 0 -VPORT - 5 -30 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*Active - 70 -0 - 10 -0.0 - 20 -0.0 - 11 -1.0 - 21 -1.0 - 12 -286.3055555555554861 - 22 -148.5 - 13 -0.0 - 23 -0.0 - 14 -10.0 - 24 -10.0 - 15 -10.0 - 25 -10.0 - 16 -0.0 - 26 -0.0 - 36 -1.0 - 17 -0.0 - 27 -0.0 - 37 -0.0 - 40 -297.0 - 41 -1.92798353909465 - 42 -50.0 - 43 -0.0 - 44 -0.0 - 50 -0.0 - 51 -0.0 - 71 -0 - 72 -100 - 73 -1 - 74 -3 - 75 -1 - 76 -1 - 77 -0 - 78 -0 -281 -0 - 65 -1 -110 -0.0 -120 -0.0 -130 -0.0 -111 -1.0 -121 -0.0 -131 -0.0 -112 -0.0 -122 -1.0 -132 -0.0 - 79 -0 -146 -0.0 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -100 -AcDbSymbolTable - 70 -21 - 0 -LTYPE - 5 -14 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -15 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 -0 - 3 - - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -16 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CONTINUOUS - 70 -0 - 3 -Solid line - 72 -65 - 73 -0 - 40 -0.0 - 0 -LTYPE - 5 -31 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 -0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -6.3499999999999996 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -32 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 -0 - 3 -Dot (.5x) ..................................... - 72 -65 - 73 -2 - 40 -3.1749999999999998 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -33 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 -0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 -65 - 73 -2 - 40 -12.6999999999999993 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -34 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 -0 - 3 -Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ - 72 -65 - 73 -2 - 40 -19.0500000000000007 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -35 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 -0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 -65 - 73 -2 - 40 -9.5250000000000004 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -36 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 -0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 -65 - 73 -2 - 40 -38.1000000000000014 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -37 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 -0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 -65 - 73 -4 - 40 -25.3999999999999986 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -38 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 -0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 -65 - 73 -4 - 40 -12.6999999999999993 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -39 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 -0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3A -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 -0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 -65 - 73 -6 - 40 -31.75 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3B -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 -0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 -65 - 73 -6 - 40 -15.875 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3C -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 -0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 -65 - 73 -6 - 40 -63.5 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -3D -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 -0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 -65 - 73 -4 - 40 -50.7999999999999972 - 49 -31.75 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -3E -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 -0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 -65 - 73 -4 - 40 -28.5749999999999993 - 49 -19.0500000000000007 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -3.1749999999999998 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -3F -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 -0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 -65 - 73 -4 - 40 -101.5999999999999943 - 49 -63.5 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -LTYPE - 5 -40 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 -0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 -65 - 73 -6 - 40 -44.4500000000000028 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -12.6999999999999993 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 49 -0.0 - 74 -0 - 49 --6.3499999999999996 - 74 -0 - 0 -LTYPE - 5 -41 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 -0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 -65 - 73 -6 - 40 -22.2250000000000014 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -6.3499999999999996 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 49 -0.0 - 74 -0 - 49 --3.1749999999999998 - 74 -0 - 0 -LTYPE - 5 -42 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 -0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 -65 - 73 -6 - 40 -88.9000000000000057 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -25.3999999999999986 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 49 -0.0 - 74 -0 - 49 --12.6999999999999993 - 74 -0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -100 -AcDbSymbolTable - 70 -1 - 0 -LAYER - 5 -10 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 -0 - 62 -7 - 6 -CONTINUOUS -370 -0 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -100 -AcDbSymbolTable - 70 -1 - 0 -STYLE - 5 -11 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -Standard - 70 -0 - 40 -0.0 - 41 -0.75 - 50 -0.0 - 71 -0 - 42 -2.5 - 3 -txt - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -100 -AcDbSymbolTable - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -100 -AcDbSymbolTable - 70 -1 - 0 -APPID - 5 -12 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 -0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -100 -AcDbSymbolTable - 70 -1 -100 -AcDbDimStyleTable - 71 -0 - 0 -DIMSTYLE -105 -27 -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 41 -0.1 - 42 -0.025 - 43 -3.75 - 44 -0.05 - 70 -0 - 73 -0 - 74 -0 - 77 -1 - 78 -8 -140 -0.1 -141 -2.5 -143 -0.03937007874016 -147 -0.025 -171 -3 -172 -1 -271 -2 -272 -2 -274 -3 -278 -44 -283 -0 -284 -8 -340 -11 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -100 -AcDbSymbolTable - 70 -1 - 0 -BLOCK_RECORD - 5 -1F -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space -340 -22 - 0 -BLOCK_RECORD - 5 -1B -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space -340 -1E - 0 -BLOCK_RECORD - 5 -23 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space0 -340 -26 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -100 -AcDbEntity - 67 -1 - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -24 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space0 - 70 -0 - 10 -0.0 - 20 -0.0 - 30 -0.0 - 3 -*Paper_Space0 - 1 - - 0 -ENDBLK - 5 -25 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -MTEXT - 5 -43 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10.0 - 20 -9.0 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -5 - 72 -0 - 1 -Remote\PRun\~Btn - 7 -normallatin1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LINE - 5 -44 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9.8000000000000007 - 20 -8.4000000000000004 - 30 -0.0 - 11 -9.0 - 21 -8.4000000000000004 - 31 -0.0 - 0 -LINE - 5 -45 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9.8000000000000007 - 20 -8.7000000000000011 - 30 -0.0 - 11 -9.8000000000000007 - 21 -8.1000000000000014 - 31 -0.0 - 0 -LINE - 5 -46 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10.2000000000000011 - 20 -8.7000000000000011 - 30 -0.0 - 11 -10.2000000000000011 - 21 -8.1000000000000014 - 31 -0.0 - 0 -LINE - 5 -47 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10.2000000000000011 - 20 -8.4000000000000004 - 30 -0.0 - 11 -11.8000000000000007 - 21 -8.4000000000000004 - 31 -0.0 - 0 -MTEXT - 5 -48 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -12.7000000000000011 - 20 -8.4000000000000004 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -5 - 72 -0 - 1 -halui.mode.auto - 7 -normallatin1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LINE - 5 -49 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -13.6000000000000014 - 20 -7.9000000000000004 - 30 -0.0 - 11 -11.8000000000000007 - 21 -7.9000000000000004 - 31 -0.0 - 0 -MTEXT - 5 -4A -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -12.6000000000000014 - 20 -7.7000000000000011 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -5 - 72 -0 - 1 -and2.0.in0 - 7 -normallatin1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LINE - 5 -4B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11.8000000000000007 - 20 -7.5000000000000009 - 30 -0.0 - 11 -13.6000000000000014 - 21 -7.5000000000000009 - 31 -0.0 - 0 -MTEXT - 5 -4C -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -12.6000000000000014 - 20 -7.3000000000000007 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -5 - 72 -0 - 1 -and2.0.in1 - 7 -normallatin1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LINE - 5 -4D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -13.6000000000000014 - 20 -7.1000000000000005 - 30 -0.0 - 11 -13.6000000000000014 - 21 -7.9000000000000004 - 31 -0.0 - 0 -LINE - 5 -4E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11.8000000000000007 - 20 -7.9000000000000004 - 30 -0.0 - 11 -11.8000000000000007 - 21 -7.1000000000000005 - 31 -0.0 - 0 -LINE - 5 -4F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11.8000000000000007 - 20 -7.1000000000000005 - 30 -0.0 - 11 -13.6000000000000014 - 21 -7.1000000000000005 - 31 -0.0 - 0 -LINE - 5 -50 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11.8000000000000007 - 20 -8.6000000000000014 - 30 -0.0 - 11 -13.6000000000000014 - 21 -8.6000000000000014 - 31 -0.0 - 0 -LINE - 5 -51 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -13.6000000000000014 - 20 -8.6000000000000014 - 30 -0.0 - 11 -13.6000000000000014 - 21 -8.2000000000000011 - 31 -0.0 - 0 -LINE - 5 -52 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11.8000000000000007 - 20 -8.6000000000000014 - 30 -0.0 - 11 -11.8000000000000007 - 21 -8.2000000000000011 - 31 -0.0 - 0 -LINE - 5 -53 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -13.6000000000000014 - 20 -8.2000000000000011 - 30 -0.0 - 11 -11.8000000000000007 - 21 -8.2000000000000011 - 31 -0.0 - 0 -MTEXT - 5 -54 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10.0 - 20 -7.3000000000000007 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -5 - 72 -0 - 1 -halui.mode.is-auto - 7 -normallatin1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LINE - 5 -55 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10.9000000000000004 - 20 -7.5000000000000009 - 30 -0.0 - 11 -9.0 - 21 -7.5000000000000009 - 31 -0.0 - 0 -LINE - 5 -56 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9.0 - 20 -7.5000000000000009 - 30 -0.0 - 11 -9.0 - 21 -7.1000000000000005 - 31 -0.0 - 0 -LINE - 5 -57 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9.0 - 20 -7.1000000000000005 - 30 -0.0 - 11 -10.9000000000000004 - 21 -7.1000000000000005 - 31 -0.0 - 0 -LINE - 5 -58 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10.9000000000000004 - 20 -7.1000000000000005 - 30 -0.0 - 11 -10.9000000000000004 - 21 -7.5000000000000009 - 31 -0.0 - 0 -LINE - 5 -59 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10.9000000000000004 - 20 -7.3000000000000007 - 30 -0.0 - 11 -11.8000000000000007 - 21 -7.3000000000000007 - 31 -0.0 - 0 -LINE - 5 -5A -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11.3000000000000007 - 20 -7.7000000000000011 - 30 -0.0 - 11 -11.3000000000000007 - 21 -8.4000000000000004 - 31 -0.0 - 0 -LINE - 5 -5B -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11.8000000000000007 - 20 -7.7000000000000011 - 30 -0.0 - 11 -11.3000000000000007 - 21 -7.7000000000000011 - 31 -0.0 - 0 -MTEXT - 5 -5C -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10.0 - 20 -6.7000000000000011 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -5 - 72 -0 - 1 -and2.0.out - 7 -normallatin1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -LINE - 5 -5D -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9.0 - 20 -6.9000000000000004 - 30 -0.0 - 11 -10.9000000000000004 - 21 -6.9000000000000004 - 31 -0.0 - 0 -LINE - 5 -5E -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10.9000000000000004 - 20 -6.9000000000000004 - 30 -0.0 - 11 -10.9000000000000004 - 21 -6.5000000000000009 - 31 -0.0 - 0 -LINE - 5 -5F -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10.9000000000000004 - 20 -6.5000000000000009 - 30 -0.0 - 11 -9.0 - 21 -6.5000000000000009 - 31 -0.0 - 0 -LINE - 5 -60 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -9.0 - 20 -6.5000000000000009 - 30 -0.0 - 11 -9.0 - 21 -6.9000000000000004 - 31 -0.0 - 0 -LINE - 5 -61 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11.8000000000000007 - 20 -6.9000000000000004 - 30 -0.0 - 11 -11.8000000000000007 - 21 -6.5000000000000009 - 31 -0.0 - 0 -LINE - 5 -62 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -11.8000000000000007 - 20 -6.5000000000000009 - 30 -0.0 - 11 -13.6000000000000014 - 21 -6.5000000000000009 - 31 -0.0 - 0 -LINE - 5 -63 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -13.6000000000000014 - 20 -6.5000000000000009 - 30 -0.0 - 11 -13.6000000000000014 - 21 -6.9000000000000004 - 31 -0.0 - 0 -LINE - 5 -64 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -13.6000000000000014 - 20 -6.9000000000000004 - 30 -0.0 - 11 -11.8000000000000007 - 21 -6.9000000000000004 - 31 -0.0 - 0 -LINE - 5 -65 -100 -AcDbEntity -100 -AcDbLine - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -10.9000000000000004 - 20 -6.7000000000000011 - 30 -0.0 - 11 -11.8000000000000007 - 21 -6.7000000000000011 - 31 -0.0 - 0 -MTEXT - 5 -66 -100 -AcDbEntity -100 -AcDbMText - 8 -0 - 62 -256 -370 --1 - 6 -ByLayer - 10 -12.7000000000000011 - 20 -6.7000000000000011 - 30 -0.0 - 40 -0.125 - 41 -100.0 - 71 -5 - 72 -0 - 1 -halui.program.run - 7 -normallatin1 - 50 -0.0 - 73 -1 - 44 -1.0 - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -100 -AcDbDictionary -280 -0 -281 -1 - 3 -ACAD_GROUP -350 -D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -AcDbVariableDictionary -350 -67 - 0 -DICTIONARY - 5 -D -100 -AcDbDictionary -280 -0 -281 -1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -100 -AcDbDictionary -281 -1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -ACDBPLACEHOLDER - 5 -F - 0 -DICTIONARY - 5 -17 -100 -AcDbDictionary -280 -0 -281 -1 - 3 -Standard -350 -18 - 0 -MLINESTYLE - 5 -18 -100 -AcDbMlineStyle - 2 -STANDARD - 70 -0 - 3 - - 62 -256 - 51 -90.0 - 52 -90.0 - 71 -2 - 49 -0.5 - 62 -256 - 6 -BYLAYER - 49 --0.5 - 62 -256 - 6 -BYLAYER - 0 -DICTIONARY - 5 -19 -100 -AcDbDictionary -280 -0 -281 -1 - 0 -DICTIONARY - 5 -1A -100 -AcDbDictionary -281 -1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -LAYOUT - 5 -1E -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 -1 - 71 -1 - 10 -0.0 - 20 -0.0 - 11 -420.0 - 21 -297.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -100000000000000000000.0 - 24 -100000000000000000000.0 - 34 -100000000000000000000.0 - 15 --100000000000000000000.0 - 25 --100000000000000000000.0 - 35 --100000000000000000000.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1B - 0 -LAYOUT - 5 -22 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -1712 - 72 -0 - 73 -0 - 74 -0 - 7 - - 75 -0 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 -1 - 71 -0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -1F - 0 -LAYOUT - 5 -26 -100 -AcDbPlotSettings - 1 - - 2 -C:\Program Files\AutoCAD 2002\plotters\DWF ePlot (optimized for plotting).pc3 - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 -688 - 72 -0 - 73 -0 - 74 -5 - 7 - - 75 -16 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 -1 - 71 -2 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 -0 -330 -23 - 0 -DICTIONARY - 5 -67 -100 -AcDbDictionary -281 -1 - 3 -DIMASSOC -350 -69 - 3 -HIDETEXT -350 -68 - 0 -DICTIONARYVAR - 5 -68 -100 -DictionaryVariables -280 -0 - 1 -2 - 0 -DICTIONARYVAR - 5 -69 -100 -DictionaryVariables -280 -0 - 1 -1 - 0 -ENDSEC - 0 -EOF diff --git a/docs/src/hal/images/remote-start.png b/docs/src/hal/images/remote-start.png deleted file mode 100644 index 773ec105347..00000000000 Binary files a/docs/src/hal/images/remote-start.png and /dev/null differ diff --git a/docs/src/hal/images/signal-direction.odg b/docs/src/hal/images/signal-direction.odg deleted file mode 100644 index 2e4a00d39ad..00000000000 Binary files a/docs/src/hal/images/signal-direction.odg and /dev/null differ diff --git a/docs/src/hal/images/signal-direction.png b/docs/src/hal/images/signal-direction.png deleted file mode 100644 index 0d77210b08d..00000000000 Binary files a/docs/src/hal/images/signal-direction.png and /dev/null differ diff --git a/docs/src/hal/images/softstart-scope.png b/docs/src/hal/images/softstart-scope.png deleted file mode 100644 index 2062d1e3187..00000000000 Binary files a/docs/src/hal/images/softstart-scope.png and /dev/null differ diff --git a/docs/src/hal/images/softstart-scope_fr.png b/docs/src/hal/images/softstart-scope_fr.png deleted file mode 100644 index e7df0ba82fd..00000000000 Binary files a/docs/src/hal/images/softstart-scope_fr.png and /dev/null differ diff --git a/docs/src/hal/images/stepgen-block-diag.eps b/docs/src/hal/images/stepgen-block-diag.eps deleted file mode 100644 index 4da262e84fc..00000000000 --- a/docs/src/hal/images/stepgen-block-diag.eps +++ /dev/null @@ -1,4492 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Title: H:\emcdev\emc2head\docs\src\hal\hal_stepgen_block_diag.FC7 -%%BoundingBox: 19 9 593 784 -%%Creator: PSCRIPT.DRV Version 4.0 -%%CreationDate: 03/28/07 23:54:51 -%%Pages: 1 -%%Requirements: None -%%DocumentNeededFonts: (atend) -%%DocumentSuppliedFonts: (atend) -%%LanguageLevel: 1 -%%EndComments - -%%BeginProlog -%%BeginProcSet: Pscript_Res_Emul 1.0 0 -/defineresource where{pop}{userdict begin/defineresource{userdict/Resources 2 -copy known{get begin}{15 dict dup begin put}ifelse exch readonly exch -currentdict 1 index known not{dup 30 dict def}if load 3 -1 roll 2 index put -end}bind readonly def/findresource{userdict/Resources get exch get exch get} -bind readonly def/resourceforall{pop pop pop pop}bind readonly def -/resourcestatus{userdict/Resources 2 copy known{get exch 2 copy known{get exch -known{0 -1 true}{pop pop false}ifelse}{pop pop pop false}ifelse}{pop pop false -}ifelse}bind readonly def end}ifelse -%%EndProcSet -%%BeginResource: procset Pscript_Win_Driver 2.0 0 -/Pscript_Win_Driver 200 dict dup begin -%%BeginResource: file Pscript_FatalError 2.0 0 -/FatalErrorIf{{initgraphics findfont exch scalefont setfont counttomark 3 div -cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def -%%EndResource -/VM? {vmstatus exch sub exch pop gt { [ -(This job requires more memory than is available in this printer.) 100 500 -(Try one or more of the following, and then print again:) 100 485 -(In the PostScript dialog box, click Optimize For Portability.) 115 470 -(In the Device Options dialog box, make sure the Available Printer Memory is accurate.) 115 455 -(Reduce the number of fonts in the document.) 115 440 -(Print the document in parts.) 115 425 -12 /Times-Roman showpage -(%%[ PrinterError: Low Printer VM ]%%) = -true FatalErrorIf}if} bind def -%%BeginResource: file Pscript_Win_Utils 2.0 0 -/|/def load def/,/load load |/~/exch , |/?/ifelse , |/!/pop , |/`/begin , |/^ -/index , |/@/dup , |/+/translate , |/$/roll , |/U/userdict , |/M/moveto , |/- -/rlineto , |/&/currentdict , |/:/gsave , |/;/grestore , |/F/false , |/T/true , -|/N/newpath , |/E/end , |/Ac/arc , |/An/arcn , |/A/ashow , |/D/awidthshow , | -/C/closepath , |/V/div , |/O/eofill , |/L/fill , |/I/lineto , |/-C/rcurveto , -|/-M/rmoveto , |/+S/scale , |/Ji/setfont , |/Lc/setlinecap , |/Lj/setlinejoin -, |/Lw/setlinewidth , |/S/show , |/LH/showpage , |/K/stroke , |/W/widthshow , -|/R/rotate , |/b{bind |}bind |/bd{bind |}bind |/xd{~ |}bd/ld{, |}bd/lw/Lw ld -/lc/Lc ld/lj/Lj ld/sg/setgray ld/L2? F/languagelevel where{! languagelevel 2 -ge{! T}if}if |/g{@ not{U/DefIf_save save put}if U/DefIf_bool 2 ^ put}b -/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e{DefIf_El ! -}b/self & |/reinitialize{[/TextInit/GraphInit/UtilsInit counttomark{@ where{ -self eq}{F}?{cvx exec}{!}?}repeat cleartomark}b/initialize{`{/ADO_mxRot ~ | -/TextInitialised? F | reinitialize E}{U/Pscript_Win_Data 200 dict @ ` put -/ADO_mxRot ~ |/TextInitialised? F | reinitialize}?}b/terminate{!{& self eq{ -exit}{E}?}loop E}b/suspend/terminate , |/resume{` Pscript_Win_Data `}b/snap{ -transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~ itransform}b -/dsnap{dtransform round ~ round ~ idtransform}b<04>cvn{}|/setjn{{statusdict -/jobname known{statusdict/jobname 3 -1 $ put}if}stopped cleartomark}b/solid{[] -0 setdash}b/setdsh{0 setdash}b/colspRefresh{}b/rp{4 2 $ M 1 ^ 0 - 0 ~ - neg 0 --}b/rr{1 ^ 0 - 0 ~ - neg 0 - C}b -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L1 2.0 0 -L2? not g{/rf{N rp L}b/fx{1 1 dtransform @ 0 ge{1 sub 1}{1 add -0.25}? 3 -1 $ -@ 0 ge{1 sub 1}{1 add -0.25}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{ -4 -2 $ snap + +S fx rf}b/rs{N rp C K}b/rc{N rp clip N}b/sg{setgray}b/sco{ -setrgbcolor}b/sgco{{sg}{sco}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L2 2.0 0 -L2? g{/colspA/DeviceGray |/colspABC/DeviceRGB |/setAorABC{{colspA}{colspABC}? -setcolorspace}b/rf/rectfill , |/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5 -}? 3 -1 $ @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ -idtransform}b/BZ{4 -2 $ snap + +S fx rf}b/rs/rectstroke , |/rc/rectclip , |/sg -{@ @ setcolor}b/sco{setcolor}b/colspRefresh{colspABC setcolorspace}b/sgco{{sg -}{sco}?}b/UtilsInit{F setglobal}b/definecolorrendering{/ColorRendering -defineresource !}b/findcolorrendering{@/ColorRendering resourcestatus{! ! -/ColorRendering findresource T}{! F}?}b/selectcolorrendering{@/ColorRendering -resourcestatus{! !/ColorRendering}{!/DefaultColorRendering/ColorRendering}? -findresource setcolorrendering}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Encoding 2.0 0 -/bullets{{/bullet}repeat}b/ANSIEncoding[/grave/acute/circumflex/tilde/macron -/breve/dotaccent/dieresis/ring/cedilla/hungarumlaut/ogonek/caron/dotlessi 18 -bullets StandardEncoding 32 95 getinterval aload ! 3 bullets/quotesinglbase -/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron -/guilsinglleft/OE 4 bullets/quoteleft/quoteright/quotedblleft/quotedblright -/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 2 bullets -/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section -/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered -/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph -/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter -/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis -/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute -/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls -/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute -/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve -/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex -/udieresis/yacute/thorn/ydieresis]| ANSIEncoding @ 39/quotesingle put 96/grave -put/ANSIEncodingOld ANSIEncoding 256 array copy | ANSIEncodingOld @[138 153 -154 169 172 174 177 178 179 181 185 188 189 190 208 215 221 222 240 247 253 -254]{/bullet put @}forall 166/bar put 176/ring put -%%EndResource -%%BeginResource: file Pscript_Win_Text 2.0 0 -/TextInit{TextInitialised? not{/Pscript_Windows_Font & |/TextInitialised? T | -/fM[1 0 0 -1 0 0]|/mFM matrix |/iMat[1 0 0.212557 neg 1 0 0]|}if}b/xUP null | -/yUP null |/uW null |/xSP null |/ySP null |/sW null |/copyfont{1 ^ length add -dict `{1 ^/FID ne{|}{! !}?}forall & E}b/rF{3 copyfont @ `/Encoding -ANSIEncoding &/CharStrings known{CharStrings/Eth known not{! ANSIEncodingOld} -if}if | E}b/mF{findfont ~{@/Encoding get @ StandardEncoding eq{! T}{{ -ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get -StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{rF}{3 copyfont}? ` -/OrigFontType ~ |/OrigFontName ~ | & E 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 -put fM makefont Pscript_Windows_Font 3 1 $ put}b/xF{scalefont -Pscript_Windows_Font 3 1 $ put}b/xMF{mFM astore makefont Pscript_Windows_Font -3 1 $ put}b/xF2/scalefont , |/xMF2{mFM astore makefont}b/sLT{: Lw -M -currentpoint snap M 0 - 0 Lc K ;}b/sSU{N/uW ~ |/yUP ~ |/xUP ~ |}b/sU{xUP yUP -uW sLT}b/sST{N/sW ~ |/ySP ~ |/xSP ~ |}b/sT{xSP ySP sW sLT}b/sR{: + R 0 0 M}b -/sRxy{: matrix astore concat 0 0 M}b/eR/; , | -%%EndResource -%%BeginResource: file Pscript_Win_Text_Bold 2.0 0 -/mBF{@ 4 copyfont `/FontName ~ |/OrigFontType ~ |/OrigFontName ~ | 0 -FontMatrix idtransform ! &/PaintType known{PaintType 0 eq{/PaintType 2 | -/StrokeWidth ~ |}{PaintType 1 eq PaintType 2 eq or PaintType 3 eq or & -/StrokeWidth known and{StrokeWidth add/StrokeWidth ~ |}{!}?}?}{!}? @ & E -definefont Pscript_Windows_Font 3 1 $ put}b/xBF{Pscript_Windows_Font ` 1 ^ -/FontName get 1 ^ scalefont 3 1 $ scalefont 2 copy ~ | ~ ! | E}b/xMBF{mFM -astore Pscript_Windows_Font ` 1 ^/FontName get 1 ^ makefont 3 1 $ makefont 2 -copy ~ | ~ ! | E}b/xBF2{/sB0 ~ mBF/sB1 sB0 3 -1 $ xBF sB1}b/xMBF2{/sB0 ~ mBF -mFM astore/sB1 sB0 3 -1 $ xMBF sB1}b/sB{: Pscript_Windows_Font currentfont get -Ji @ S ; S}b/asB{: Pscript_Windows_Font currentfont get Ji 3 copy A ; A}b/wsB{ -: Pscript_Windows_Font currentfont get Ji 4 copy W ; W}b/awsB{: -Pscript_Windows_Font currentfont get Ji 6 copy D ; D}b/sBT3{: @ S ; 1 1 -M S}b -/asBT3{: 3 copy A ; 1 1 -M A}b/wsBT3{: 4 copy W ; 1 1 -M W}b/awsBT3{: 6 copy D -; 1 1 -M D}b/mIF{iMat 4 3 -1 $ put 2 copyfont `/OrigFontType ~ |/OrigFontName -~ | @ & E definefont iMat makefont Pscript_Windows_Font 3 1 $ put}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics 2.0 0 -/SavedCTM null |/CTMsave{/SavedCTM SavedCTM currentmatrix |}b/CTMrestore{ -SavedCTM setmatrix}b/mp null |/ADO_mxRot null |/GDIHMatrix null | -/GDIHPatternDict 22 dict | GDIHPatternDict `/PatternType 1 |/PaintType 2 | -/Reps L2?{1}{5}? |/XStep 8 Reps mul |/YStep XStep |/BBox[0 0 XStep YStep]| -/TilingType 1 |/PaintProc{` 1 Lw[]0 setdash PaintData , exec E}b/FGnd null | -/BGnd null |/HS_Horizontal{horiz}b/HS_Vertical{vert}b/HS_FDiagonal{fdiag}b -/HS_BDiagonal{biag}b/HS_Cross{horiz vert}b/HS_DiagCross{fdiag biag}b/MaxXYStep -XStep YStep gt{XStep}{YStep}? |/horiz{Reps{0 4 M XStep 0 - 0 8 +}repeat 0 -8 -Reps mul + K}b/vert{Reps{4 0 M 0 YStep - 8 0 +}repeat 0 -8 Reps mul + K}b/biag -{Reps{0 0 M MaxXYStep @ - 0 YStep neg M MaxXYStep @ - 0 8 +}repeat 0 -8 Reps -mul + 0 YStep M 8 8 - K}b/fdiag{Reps{0 0 M MaxXYStep @ neg - 0 YStep M -MaxXYStep @ neg - 0 8 +}repeat 0 -8 Reps mul + MaxXYStep @ M 8 -8 - K}b E -/makehatch{GDIHPatternDict/PaintData 3 -1 $ put CTMsave GDIHMatrix setmatrix -GDIHPatternDict matrix mp CTMrestore ~ U ~ 2 ^ put}b/h0{/h0/HS_Horizontal -makehatch}b/h1{/h1/HS_Vertical makehatch}b/h2{/h2/HS_FDiagonal makehatch}b/h3{ -/h3/HS_BDiagonal makehatch}b/h4{/h4/HS_Cross makehatch}b/h5{/h5/HS_DiagCross -makehatch}b/GDIBWPatternDict 17 dict @ `/PatternType 1 |/PaintType L2?{1}{2}? -|/RepsV L2?{1}{6}? |/RepsH L2?{1}{5}? |/BBox[0 0 RepsH 1]|/TilingType 1 | -/XStep 1 |/YStep 1 |/Height 8 RepsV mul |/Width 8 |/mx[Width 0 0 Height neg 0 -Height]|/FGnd null |/BGnd null |/SetBGndFGnd L2?{{BGnd null ne{BGnd aload ! -sgco BBox aload ! 2 ^ sub ~ 3 ^ sub ~ rf}if FGnd null ne{FGnd aload ! sgco}if} -}{{}}? b/PaintProc{` SetBGndFGnd RepsH{Width Height F mx PaintData imagemask -Width 0 +}repeat E}b E |/GDIBWPatternMx null |/pfprep{save 4 1 $ -/PatternOfTheDay 4 1 $ GDIBWPatternDict `/PaintData ~ |/BGnd ~ |/FGnd ~ | E -CTMsave GDIBWPatternMx setmatrix GDIBWPatternDict matrix mp CTMrestore ~ !}b -/hrf null |/prf{pfprep ~ 6 1 $ 5 hrf restore}b/GraphInit{GDIHMatrix null eq{ -/SavedCTM matrix | : ADO_mxRot concat 0 0 snap + : 0.48 @ GDIHPatternDict ` -YStep mul ~ XStep mul ~ dsnap YStep V ~ XStep V ~ E +S/GDIHMatrix matrix -currentmatrix readonly | ; : 0.24 -0.24 +S GDIBWPatternDict ` Width Height E -dsnap +S/GDIBWPatternMx matrix currentmatrix readonly | ; ;}if}b/cirp{360 0 An -C}b/ellp{CTMsave + +S 0.5 0 M 0 0 0.5 360 0 An C CTMrestore}b/rrp{/rad ~ |/y2 -~ |/x2 ~ |/y1 ~ |/x1 ~ | x2 x1 add 2 V y1 M x1 y1 x1 y2 rad arct x1 y2 x2 y2 -rad arct x2 y2 x2 y1 rad arct x2 y1 x1 y1 rad arct C}b/RRp{CTMsave + +S/dyS ~ -|/dxS ~ | dxS 2 V 0 M 0 0 0 dyS 0.5 arct 0 dyS dxS dyS 0.5 arct dxS dyS dxS 0 -0.5 arct dxS 0 0 0 0.5 arct C CTMrestore}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L1 2.0 0 -L2? not g{/arct{arcto ! ! ! !}b/GDIpattfill{@ ` BGnd null ne PaintType 2 eq -and{: BGnd aload ! sgco fEOFill{O}{L}? ; FGnd aload ! U/fGray 2 ^ put{2}{4}? --1 $}if E @ patterncalc : 4 ^/PaintType get 2 eq{fGray{6 -1 $ sg}{8 -3 $ sco}? -}if fEOFill{eoclip}{clip}? N patternfill ; N}b/hrf{/fGray 1 ^ 6 eq | -4 $ N rp -C/fEOFill F | GDIpattfill}b/hfMain{/fEOFill ~ |/fGray ~ | GDIpattfill}b/hf{T -hfMain}b/hfW{F hfMain}b/hs{currentpoint strokepath M hfW}b/pfMain{/fEOFill ~ | -pfprep GDIpattfill restore N}b/pf{T pfMain}b/pfW{F pfMain}b/ps{currentpoint -strokepath M pfW}b/mpstr 1 string |/mp{~ @ length 12 add dict copy ` -/PatternCTM matrix currentmatrix |/PatternMatrix ~ |/PatWidth XStep mpstr -length mul |/PatHeight YStep |/FontType 3 |/Encoding 256 array | 3 string 0 1 -255{Encoding ~ @ 3 ^ cvs cvn put}for !/FontMatrix matrix |/FontBBox BBox | -/BuildChar{! @ ` XStep 0 FontBBox aload ! setcachedevice/PaintProc , E : exec -;}b & E ~ @ 3 -1 $ definefont}b/patterncalc{` : PatternCTM setmatrix -PatternMatrix concat BBox aload ! ! ! + pathbbox ; PatHeight V ceiling 4 1 $ -PatWidth V ceiling 4 1 $ PatHeight V floor 4 1 $ PatWidth V floor 4 1 $ 2 ^ -sub cvi abs ~ 3 ^ sub cvi abs ~ 4 2 $ PatHeight mul ~ PatWidth mul ~ E}b -/patternfill{5 -1 $ @ ` Ji PatternCTM setmatrix PatternMatrix concat 0 2 ^ 2 ^ -M 0 1 mpstr length 1 sub{1 ^ mpstr 3 1 $ put}for ! 2 ^{currentpoint 5 ^{mpstr -S}repeat YStep add M}repeat ! ! ! ! E}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L2 2.0 0 -L2? g{/mp/makepattern , |/hrf{6 eq setAorABC setpattern rectfill}b/hf{ -setAorABC setpattern O}b/hfW{setAorABC setpattern L}b/hs{setAorABC setpattern -K}b/pf{pfprep setpattern O restore N}b/pfW{pfprep setpattern L restore N}b/ps{ -pfprep setpattern K restore N}b}e -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images 2.0 0 -/iw 0 |/ih 0 |/im_save 0 |/s 0 |/polarity 0 |/smoothflag 0 |/mystring 0 |/bpc -0 |/setup1asciiproc{[currentfile mystring/readhexstring cvx/! cvx]cvx bind}b -/setup1binaryproc{[currentfile mystring/readstring cvx/! cvx]cvx bind}b -/setup2asciiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}b -/setup2binaryproc{currentfile/RunLengthDecode filter}b/mycolorspace{colspABC}| -/myimagedict{/myimagedict 10 dict | myimagedict @ `/ImageType 1 | -/MultipleDataSource F | E}b/imageprocarray[/setup1binaryproc/setup1asciiproc -/setup2binaryproc/setup2asciiproc/setup1binarydecodeproc/setup1asciidecodeproc -]|/L2Polarity{{[1 0]}{[0 1]}?}b/Q{/im_save save | imageprocarray ~ get/s ~ , | -L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring ~ -string |/bpc ~ |/ih ~ |/iw ~ |}b/X{/im_save save | imageprocarray ~ get/s ~ , -| L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring -~ string |/bpc ~ |/ih ~ |/iw ~ |}b/Z{im_save restore}b/Y{sgco myimagedict @ ` -/Width iw |/Height ih |/Decode polarity |/ImageMatrix[iw 0 0 ih 0 0]| -/DataSource s |/BitsPerComponent 1 |/Interpolate smoothflag | E imagemask}b -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images_L1 2.0 0 -L2? not g{/setup2asciiproc{[/Level2ImagesError , aload ! T FatalErrorIf}b -/setup2binaryproc/setup2asciiproc , |/L2Polarity{}|/Y{sgco iw ih polarity[iw 0 -0 ih 0 0]s imagemask}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L1 2.0 0 -L2? not g{/testsystemdict{where{systemdict eq{T}{F}?}{F}?}b/c 1 |/colorimage -where{! T}{F}?{/c 0 statusdict `/processcolors where{! ! processcolors}{ -/deviceinfo where{! deviceinfo/Colors known{!{deviceinfo/Colors get}}if}if}? E -| c 0 ne{/colorimage testsystemdict/setcolortransfer testsystemdict -/currentcolortransfer testsystemdict/currentcmykcolor testsystemdict and and -and not{/c 0 |}if}if}if c @ 1 ne ~ @ 3 ne ~ 4 ne and and{/c 0 |}if c 1 eq g{ -/expandbw{expandfactor mul round cvi bwclut ~ get 255 V}b/doclutimage{!/bwclut -~ | bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/expandfactor ~ |[/expandbw ,/exec , @ -currenttransfer ~]cvx bind settransfer iw ih bpc[iw 0 0 ih 0 0]s image}b}e c @ -3 eq ~ 4 eq or g{/nullproc{{}}|/concatutil{/exec , 7 -1 $/exec ,}b/defsubclut{ -1 add getinterval |}b/spconcattransfer{/Dclut ~ |/Cclut ~ |/Bclut ~ |/Aclut ~ -|/ncompute ~ , | currentcolortransfer[{Aclut ncompute}concatutil]cvx[{Bclut -ncompute}concatutil]cvx[{Cclut ncompute}concatutil]cvx[{Dclut ncompute} -concatutil]cvx setcolortransfer}b/setuprgbcluts{/bit3x rgbclut length 3 sub | -/bit1x bit3x 3 idiv |/rclut rgbclut |/gclut rclut 1 bit3x defsubclut/bclut -rclut 2 bit3x defsubclut}b}e c 3 eq g{/3compute{~ bit3x mul round cvi get 255 -V}b/doclutimage{/rgbclut ~ | ! setuprgbcluts/3compute rclut gclut bclut @ -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @]cvx nullproc nullproc -T 3 colorimage}b}e c 4 eq g{/ftoint{1 ~ sub 255 mul round cvi}b/stuffclut{ -cmykindex 3 -1 $ put}b/4compute{~ bit4x mul round cvi get 255 V}b -/invalidcolortable? T |/computecmykclut{setuprgbcluts/bit4x rgbclut length 3 -idiv 4 mul 4 sub |/cmykclut bit4x 4 add string |/cclut cmykclut |/mclut cclut -1 bit4x defsubclut/yclut cclut 2 bit4x defsubclut/kclut cclut 3 bit4x -defsubclut/cmykindex 0 | 0 1 bit1x{@/cmykindex ~ bit1x ~ sub 4 mul | 3 mul @ -rclut ~ get 255 V ~ @ gclut ~ get 255 V ~ bclut ~ get 255 V setrgbcolor -currentcmykcolor ftoint kclut stuffclut ftoint yclut stuffclut ftoint mclut -stuffclut ftoint cclut stuffclut}for}b/doclutimage{/rgbclut ~ | ! -invalidcolortable?{computecmykclut}if/4compute cclut mclut yclut kclut -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @ @]cvx nullproc -nullproc nullproc T 4 colorimage}b}e c 0 eq g{/a{3 mul 3 getinterval -putinterval ~ 3 add ~ 3 copy}b/8lookup/a , |/4lookup{/byte 1 ^ | -4 bitshift a -byte 15 and a}b/2lookup{/byte 1 ^ | -6 bitshift a byte -4 bitshift 3 and a -byte -2 bitshift 3 and a byte 3 and a}b/colorexpand{mystringexp 0 rgbclut 3 -copy 7 -1 $/mylookup , forall ! ! ! ! !}b/createexpandstr{/mystringexp ~ -mystring length mul string |}b/doclutimage{/rgbclut ~ | !/mylookup bpc 8 eq{3 -createexpandstr/8lookup}{bpc 4 eq{6 createexpandstr/4lookup}{12 -createexpandstr/2lookup}?}? , | iw ih bpc[iw 0 0 ih 0 0][s/exec ,/colorexpand -,/exec ,]cvx F 3 colorimage}b}e/colorimage where{! T}{F}? g{/do24image{iw ih 8 -[iw 0 0 ih 0 0]s F 3 colorimage}b}DefIf_El{/rgbtogray{/str ~ |/len str length -|/smlen len 3 idiv |/rstr str |/gstr str 1 len 1 sub getinterval |/bstr str 2 -len 2 sub getinterval | str @ 0 1 smlen 1 sub{@ 3 mul rstr 1 ^ get 0.3 mul -gstr 2 ^ get 0.59 mul add bstr 3 -1 $ get 0.11 mul add round cvi put @}for ! 0 -smlen getinterval}b/do24image{iw ih 8[iw 0 0 ih 0 0][s/exec ,/rgbtogray ,/exec -,]cvx bind image}b}e/doNimage{bpc 24 eq{do24image}{iw ih bpc[iw 0 0 ih 0 0]s -image}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L2 2.0 0 -L2? g{/doclutimage{/rgbclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[ -/Indexed colspABC hival rgbclut]setcolorspace myimagedict @ `/Width iw | -/Height ih |/Decode[0 hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s | -/BitsPerComponent bpc |/Interpolate smoothflag | E image}b/doCMYKclutimage{ -/CMYKclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[/Indexed/DeviceCMYK -hival CMYKclut]setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 -hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent bpc | -/Interpolate smoothflag | E image}b/doNimage{bpc 24 eq{colspABC}{colspA}? -setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode bpc 24 eq{[0 1 0 1 -0 1]}{[0 1]}? |/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent -bpc 24 eq{8}{bpc}? |/Interpolate smoothflag | E image}b/doCMYKimage{ -/DeviceCMYK setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 1 0 -1 0 1 0 1]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent 8 | -/Interpolate smoothflag | E image}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Type3_Hdr 2.0 0 -/GreNewFont{10 dict @ 3 1 $ | @ ` 4 1 $/FontType 3 |/FontMatrix ~ |/FontBBox ~ -|/Encoding 256 array | 0 1 255{Encoding ~/.notdef put}for/CharProcs 257 dict | -CharProcs/.notdef{}put/Metrics 257 dict | Metrics/.notdef 3 -1 $ put/BuildChar -{/char ~ |/fontdict ~ |/charname fontdict/Encoding get char get | fontdict -/Metrics get charname get aload ! setcachedevice fontdict ` Encoding char get -CharProcs ~ get E exec}| E definefont !}|/AddChar{` Encoding 3 1 $ put -CharProcs 3 1 $ put Metrics 3 1 $ put E}| -%%EndResource -%%BeginResource: file Pscript_Win_Type1_Hdr 2.0 0 -/FEbuf 2 string |/FEglyph 3 string |/FE{(G00)FEglyph copy ! 1 ~{@ 16 lt{ -/offset 2 store}{/offset 1 store}? @ 16 FEbuf cvrs FEglyph ~ offset ~ -putinterval 1 ^ ~ FEglyph cvn put}for}bind |/Type1Hdr{11 dict `/FontName ~ | -/PaintType ~ |/FontType 1 |/FontMatrix[1 3 ^ V 0 0 1 6 ^ V 0 0]| !/Encoding -256 array 0 1 255{1 ^ ~/.notdef put}for 3 ^ 3 ^ FE | ! !/FontBBox{0 0 0 0}| & -E currentfile eexec}bind | -%%EndResource -/pp 1 string |/ss 1 string |/rledecodebinary{/DC 0 |/BC 0 |{DC mystring length -ge{exit}if currentfile ss readstring ! 0 get/BC ~ | BC 127 le{/BC BC 1 add | -DC 1 DC BC add 1 sub{mystring ~ currentfile ss readstring ! 0 get put}for}{/BC -257 BC sub | currentfile ss readstring ! 0 get/pp ~ | DC 1 DC BC add 1 sub{ -mystring ~ pp put}for}?/DC DC BC add |}loop mystring}b/rledecodeascii{/DC 0 | -/BC 0 |{DC mystring length ge{exit}if currentfile ss readhexstring ! 0 get/BC -~ | BC 127 le{/BC BC 1 add | DC 1 DC BC add 1 sub{mystring ~ currentfile ss -readhexstring ! 0 get put}for}{/BC 257 BC sub | currentfile ss readhexstring ! -0 get/pp ~ | DC 1 DC BC add 1 sub{mystring ~ pp put}for}?/DC DC BC add |}loop -mystring}b/setup1asciidecodeproc{[/rledecodeascii cvx]cvx bind}b -/setup1binarydecodeproc{[/rledecodebinary cvx]cvx bind}b -%%BeginResource: file Pscript_Win_Compat 2.0 0 -userdict/Pscript_Win_Compat 13 dict dup begin/bd{bind def}bind def/ld{load def -}bd/CB{pop pop pop pop}bind def/B{pop pop pop pop}bind def/$x matrix def/SS{ -/pagesave save def}bind def/RS{/pagesave where{pop pagesave restore}{$x matrix -invertmatrix concat}ifelse}bind def/ANSIVec[0/grave 1/acute 2/circumflex 3 -/tilde 4/macron 5/breve 6/dotaccent 7/dieresis 8/ring 9/cedilla 10 -/hungarumlaut 11/ogonek 12/caron 13/dotlessi 39/quotesingle 96/grave 124/bar -130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135 -/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE -145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150 -/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156 -/oe 159/Ydieresis 160/space 161/exclamdown 164/currency 165/yen 166/brokenbar -167/section 168/dieresis 169/copyright 170/ordfeminine 171/guillemotleft 172 -/logicalnot 173/hyphen 174/registered 175/macron 176/degree 177/plusminus 178 -/twosuperior 179/threesuperior 180/acute 181/mu 182/paragraph 183 -/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 187 -/guillemotright 188/onequarter 189/onehalf 190/threequarters 191/questiondown -192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198 -/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204 -/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve -211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223 -/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229 -/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis -236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242 -/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248 -/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254 -/thorn 255/ydieresis]def currentdict{dup type/operatortype eq{[exch]cvx def}{ -pop pop}ifelse}forall/initialize{currentdict exch begin begin}bind def -/terminate{/@FL where not{pop end end}{pop}ifelse}bind def/suspend/terminate -load def/resume/initialize load def/M/moveto load def end put/Courier findfont -10 scalefont setfont -%%EndResource -end /ProcSet defineresource pop -%%EndResource -%%EndProlog - -%%BeginSetup -Pscript_Win_Compat dup /initialize get exec -[ 1.000 0 0 1.000 0 0 ] false /Pscript_Win_Driver /ProcSet findresource dup /initialize get exec - - -/mysetup [ 0.240 0 0 -0.240 18.960 782.880 ] | -%%EndSetup - -%%Page: 1 1 -%%BeginPageSetup -userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 2550 3300 rf ; -%%EndPageSetup - -: 0 0 2391 3229 rc -57 2691 N M 0 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 2660 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 2660 N M 198 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -255 2660 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -255 2660 N M 16 16 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -271 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 2676 N M -16 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -255 2691 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -255 2691 N M -198 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 2691 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 2691 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 2691 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 2691 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 2691 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 1774 N M 0 -30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 1744 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 1744 N M 198 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -255 1744 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -255 1744 N M 16 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -271 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 1759 N M -16 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -255 1774 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -255 1774 N M -198 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 1774 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 1774 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 1774 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 1774 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 1774 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 858 N M 0 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 827 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 827 N M 198 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -255 827 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -255 827 N M 16 16 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -271 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 843 N M -16 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -255 858 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -255 858 N M -198 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 858 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 858 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 858 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 858 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 858 N M 0 0 rr : 0 0 0 sco O ; : 98 2665 266 22 rc 0 0 0 sco %%IncludeFont: Helvetica -(F0) cvn -0.900 - (Helvetica) cvn /Type1 -T -(Helvetica) cvn -mF -(F0_15_20) cvn -F0 -15 0 0 20 0 0 -xMF -F0_15_20 -Ji -117 2665 M -0.805 0 (velocity-cmd)A -; : 97 1749 266 22 rc 0 0 0 sco F0_15_20 -Ji -116 1749 M -0.832 0 (position-cmd)A -; : 97 832 266 22 rc 0 0 0 sco F0_15_20 -Ji -116 832 M -0.832 0 (position-cmd)A -; : 0 0 2391 3229 rc -2318 2233 N M 15 -16 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2333 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2333 2217 N M -15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2202 N M -199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 2202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2202 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 2233 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2233 N M 199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2233 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2233 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2233 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2233 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2233 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2370 N M 15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2333 2355 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2333 2355 N M -15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2340 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2340 N M -199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 2340 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2340 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 2370 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2370 N M 199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2370 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2370 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2370 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2370 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2370 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2324 N M 15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2333 2309 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2333 2309 N M -15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2294 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2294 N M -199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 2294 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2294 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 2324 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2324 N M 199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2324 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2324 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2324 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2324 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2324 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 1408 N M 15 -16 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2333 1392 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2333 1392 N M -15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 1377 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 1377 N M -199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 1377 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 1377 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 1408 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 1408 N M 199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 1408 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 1408 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 1408 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 1408 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 1408 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 491 N M 15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2333 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2333 476 N M -15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 461 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 461 N M -199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 461 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 461 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 491 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 491 N M 199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 491 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 491 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 491 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 491 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 491 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2187 N M 15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2333 2172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2333 2172 N M -15 -16 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2156 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2156 N M -199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 2156 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2156 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 2187 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2187 N M 199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2187 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2187 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2187 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2187 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2187 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2279 N M 15 -16 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2333 2263 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2333 2263 N M -15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2248 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2248 N M -199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 2248 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2248 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 2279 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2279 N M 199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2279 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2279 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2279 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 2279 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 2279 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 1316 N M 15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2333 1301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2333 1301 N M -15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 1286 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 1286 N M -199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 1286 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 1286 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 1316 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 1316 N M 199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 1316 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 1316 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 1316 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 1316 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 1316 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 400 N M 15 -16 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2333 384 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2333 384 N M -15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 369 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 369 N M -199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 369 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 369 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2119 400 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 400 N M 199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 400 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 400 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 400 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2318 400 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2318 400 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 2233 N M -15 -16 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 2217 N M 15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 2202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 2202 N M 199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -271 2202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 2202 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -271 2233 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 2233 N M -199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 2233 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 2233 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 2233 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 2233 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 2233 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 1316 N M -15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 1301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 1301 N M 15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 1286 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 1286 N M 199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -271 1286 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 1286 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -271 1316 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 1316 N M -199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 1316 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 1316 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 1316 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 1316 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 1316 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 400 N M -15 -16 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 384 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 384 N M 15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 369 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 369 N M 199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -271 369 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 369 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -271 400 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 400 N M -199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 400 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 400 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 400 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 400 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 400 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 2294 N M -15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 2279 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 2279 N M 15 -16 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 2263 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 2263 N M 199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -271 2263 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 2263 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -271 2294 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 2294 N M -199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 2294 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 2294 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 2294 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 2294 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 2294 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 1377 N M -15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 1362 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 1362 N M 15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 1347 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 1347 N M 199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -271 1347 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 1347 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -271 1377 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 1377 N M -199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 1377 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 1377 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 1377 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 1377 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 1377 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 461 N M -15 -16 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -57 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -57 445 N M 15 -15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 430 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 430 N M 199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -271 430 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 430 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -271 461 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 461 N M -199 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 461 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 461 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 461 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -72 461 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -72 461 N M 0 0 rr : 0 0 0 sco O ; : 2177 2207 171 22 rc 0 0 0 sco F0_15_20 -Ji -2196 2207 M -0.734 0 (phase-B)A -; : 2177 2345 171 22 rc 0 0 0 sco F0_15_20 -Ji -2196 2345 M -0.734 0 (phase-E)A -; : 2176 2299 171 22 rc 0 0 0 sco F0_15_20 -Ji -2195 2299 M -0.759 0 (phase-D)A -; : 2188 1382 114 22 rc 0 0 0 sco F0_15_20 -Ji -2207 1382 M -0.538 0 (down)A -; : 2192 466 114 22 rc 0 0 0 sco F0_15_20 -Ji -2211 466 M -0.663 0 (step)A -; : 2177 2161 171 22 rc 0 0 0 sco F0_15_20 -Ji -2196 2161 M -0.734 0 (phase-A)A -; : 2176 2253 171 22 rc 0 0 0 sco F0_15_20 -Ji -2195 2253 M -0.759 0 (phase-C)A -; : 2198 1290 76 22 rc 0 0 0 sco F0_15_20 -Ji -2217 1290 M -0.660 0 (up)A -; : 2198 374 95 22 rc 0 0 0 sco F0_15_20 -Ji -2217 374 M -0.778 0 (dir)A -; : 677 1669 171 22 rc 0 0 0 sco F0_15_20 -Ji -696 1669 M -0.760 0 (pos err)A -; : 677 752 171 22 rc 0 0 0 sco F0_15_20 -Ji -696 752 M -0.760 0 (pos err)A -; : 682 1791 171 22 rc 0 0 0 sco F0_15_20 -Ji -701 1791 M -0.476 0 (vel err)A -; : 682 874 171 22 rc 0 0 0 sco F0_15_20 -Ji -701 874 M -0.476 0 (vel err)A -; : 136 2207 152 22 rc 0 0 0 sco F0_15_20 -Ji -155 2207 M -0.802 0 (counts)A -; : 136 1290 152 22 rc 0 0 0 sco F0_15_20 -Ji -155 1290 M -0.802 0 (counts)A -; : 136 374 152 22 rc 0 0 0 sco F0_15_20 -Ji -155 374 M -0.802 0 (counts)A -; : 122 2268 247 22 rc 0 0 0 sco F0_15_20 -Ji -141 2268 M -0.710 0 (position-fb)A -; : 122 1352 247 22 rc 0 0 0 sco F0_15_20 -Ji -141 1352 M -0.710 0 (position-fb)A -; : 122 435 247 22 rc 0 0 0 sco F0_15_20 -Ji -141 435 M -0.710 0 (position-fb)A -; : 798 2833 190 22 rc 0 0 0 sco F0_15_20 -Ji -817 2833 M -0.707 0 (maxaccel)A -; : 706 1917 190 22 rc 0 0 0 sco F0_15_20 -Ji -725 1917 M -0.707 0 (maxaccel)A -; : 706 1000 190 22 rc 0 0 0 sco F0_15_20 -Ji -725 1000 M -0.707 0 (maxaccel)A -; : 803 2788 171 22 rc 0 0 0 sco F0_15_20 -Ji -822 2788 M -0.689 0 (maxfreq)A -; : 1093 1871 171 22 rc 0 0 0 sco F0_15_20 -Ji -1112 1871 M -0.689 0 (maxfreq)A -; : 1093 954 171 22 rc 0 0 0 sco F0_15_20 -Ji -1112 954 M -0.689 0 (maxfreq)A -; : 1586 2654 190 22 rc 0 0 0 sco F0_15_20 -Ji -1605 2654 M -0.664 0 (position)A -; : 1586 1737 190 22 rc 0 0 0 sco F0_15_20 -Ji -1605 1737 M -0.664 0 (position)A -; : 1586 821 190 22 rc 0 0 0 sco F0_15_20 -Ji -1605 821 M -0.664 0 (position)A -; : 1569 2677 247 22 rc 0 0 0 sco F0_15_20 -Ji -1588 2677 M -0.846 0 (accumulator)A -; : 1569 1760 247 22 rc 0 0 0 sco F0_15_20 -Ji -1588 1760 M -0.846 0 (accumulator)A -; : 1569 844 247 22 rc 0 0 0 sco F0_15_20 -Ji -1588 844 M -0.846 0 (accumulator)A -; : 1860 2241 152 22 rc 0 0 0 sco F0_15_20 -Ji -1879 2241 M -0.468 0 (lookup)A -; : 1866 2264 133 22 rc 0 0 0 sco F0_15_20 -Ji -1885 2264 M -0.496 0 (table)A -; : 1149 2665 114 22 rc 0 0 0 sco F0_15_20 -Ji -1168 2665 M -0.958 0 (ramp)A -; : 1440 2665 114 22 rc 0 0 0 sco F0_15_20 -Ji -1459 2665 M -0.958 0 (ramp)A -; : 1440 1749 114 22 rc 0 0 0 sco F0_15_20 -Ji -1459 1749 M -0.958 0 (ramp)A -; : 1440 832 114 22 rc 0 0 0 sco F0_15_20 -Ji -1459 832 M -0.958 0 (ramp)A -; : 830 2238 133 22 rc 0 0 0 sco F0_15_20 -Ji -849 2238 M -0.664 0 (latch)A -; : 830 1321 133 22 rc 0 0 0 sco F0_15_20 -Ji -849 1321 M -0.664 0 (latch)A -; : 830 404 133 22 rc 0 0 0 sco F0_15_20 -Ji -849 404 M -0.664 0 (latch)A -; : 1866 2463 133 22 rc 0 0 0 sco F0_15_20 -Ji -1885 2463 M -0.696 0 (state)A -; : 1853 1546 171 22 rc 0 0 0 sco F0_15_20 -Ji -1872 1546 M -0.614 0 (up/down)A -; : 1856 630 190 22 rc 0 0 0 sco F0_15_20 -Ji -1875 630 M -0.727 0 (step/dir)A -; : 1856 2486 171 22 rc 0 0 0 sco F0_15_20 -Ji -1875 2486 M -0.854 0 (counter)A -; : 1867 1569 133 22 rc 0 0 0 sco F0_15_20 -Ji -1886 1569 M -0.632 0 (logic)A -; : 1867 653 133 22 rc 0 0 0 sco F0_15_20 -Ji -1886 653 M -0.632 0 (logic)A -; : 1870 2509 95 22 rc 0 0 0 sco F0_15_20 -Ji -1889 2509 M -0.660 0 (and)A -; : 1870 1592 95 22 rc 0 0 0 sco F0_15_20 -Ji -1889 1592 M -0.660 0 (and)A -; : 1870 676 95 22 rc 0 0 0 sco F0_15_20 -Ji -1889 676 M -0.660 0 (and)A -; : 1861 2532 152 22 rc 0 0 0 sco F0_15_20 -Ji -1880 2532 M -0.833 0 (timing)A -; : 1861 1615 152 22 rc 0 0 0 sco F0_15_20 -Ji -1880 1615 M -0.833 0 (timing)A -; : 1861 699 152 22 rc 0 0 0 sco F0_15_20 -Ji -1880 699 M -0.833 0 (timing)A -; : 1116 2513 209 22 rc 0 0 0 sco F0_15_20 -Ji -1135 2513 M -0.904 0 (frequency)A -; : 1147 1596 209 22 rc 0 0 0 sco F0_15_20 -Ji -1166 1596 M -0.904 0 (frequency)A -; : 1147 679 209 22 rc 0 0 0 sco F0_15_20 -Ji -1166 679 M -0.904 0 (frequency)A -; : 2091 1550 209 22 rc 0 0 0 sco F0_15_20 -Ji -2110 1550 M -0.737 0 (stepspace)A -; : 2091 634 209 22 rc 0 0 0 sco F0_15_20 -Ji -2110 634 M -0.737 0 (stepspace)A -; : 2099 679 190 22 rc 0 0 0 sco F0_15_20 -Ji -2118 679 M -0.706 0 (dirsetup)A -; : 2099 2513 190 22 rc 0 0 0 sco F0_15_20 -Ji -2118 2513 M -0.686 0 (dirdelay)A -; : 2099 1642 190 22 rc 0 0 0 sco F0_15_20 -Ji -2118 1642 M -0.686 0 (dirdelay)A -; : 2104 725 171 22 rc 0 0 0 sco F0_15_20 -Ji -2123 725 M -0.569 0 (dirhold)A -; : 2102 2467 171 22 rc 0 0 0 sco F0_15_20 -Ji -2121 2467 M -0.520 0 (steplen)A -; : 2102 1504 171 22 rc 0 0 0 sco F0_15_20 -Ji -2121 1504 M -0.520 0 (steplen)A -; : 2102 588 171 22 rc 0 0 0 sco F0_15_20 -Ji -2121 588 M -0.520 0 (steplen)A -; : 1604 2131 209 22 rc 0 0 0 sco F0_15_20 -Ji -1623 2131 M -0.738 0 (rawcounts)A -; : 1604 1214 209 22 rc 0 0 0 sco F0_15_20 -Ji -1623 1214 M -0.738 0 (rawcounts)A -; : 1604 298 209 22 rc 0 0 0 sco F0_15_20 -Ji -1623 298 M -0.738 0 (rawcounts)A -; : 155 2558 304 22 rc 0 0 0 sco F0_15_20 -Ji -174 2558 M -0.665 0 (position-scale)A -; : 140 1642 304 22 rc 0 0 0 sco F0_15_20 -Ji -159 1642 M -0.665 0 (position-scale)A -; : 140 725 304 22 rc 0 0 0 sco F0_15_20 -Ji -159 725 M -0.665 0 (position-scale)A -; : 0 0 2391 3229 rc -760 2859 N M 0 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -760 2828 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -668 1942 N M 0 -30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -668 1912 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -668 1026 N M 0 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -668 995 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -760 2813 N M 0 -30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -760 2783 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1050 1897 N M 0 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1050 1866 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1050 980 N M 0 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1050 949 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1080 2538 N M 0 -30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1080 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1111 1622 N M 0 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1111 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1111 705 N M 0 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1111 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 1576 N M 0 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 1545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 659 N M 0 -30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 629 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 705 N M 0 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 2538 N M 0 -30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 1667 N M 0 -30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 751 N M 0 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 720 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 2492 N M 0 -30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 2462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 1530 N M 0 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 1499 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 613 N M 0 -30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 583 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 2156 N M 0 -30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1569 2126 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 1240 N M 0 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1569 1209 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 323 N M 0 -30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1569 293 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -133 2584 N M 0 -30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -133 2554 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -118 1667 N M 0 -30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -118 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -118 751 N M 0 -31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -118 720 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -760 2828 N M 183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -943 2828 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -668 1912 N M 183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -851 1912 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -668 995 N M 183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -851 995 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -760 2783 N M 183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -943 2783 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1050 1866 N M 183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1233 1866 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1050 949 N M 183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1233 949 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1080 2508 N M 184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1264 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1111 1591 N M 183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1294 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1111 674 N M 183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1294 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 1545 N M -184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 1545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 629 N M -184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 629 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 674 N M -184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 2508 N M -184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 1637 N M -184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 720 N M -184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 720 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 2462 N M -184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 2462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 1499 N M -184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 1499 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2239 583 N M -184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 583 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 2126 N M 184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1753 2126 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 1209 N M 184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1753 1209 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 293 N M 184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1753 293 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -133 2554 N M 184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -317 2554 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -118 1637 N M 183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -301 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -118 720 N M 183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -301 720 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 2828 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -943 2859 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -851 1912 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -851 1942 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -851 995 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -851 1026 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 2783 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -943 2813 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 1866 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1233 1897 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 949 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1233 980 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1264 2508 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1264 2538 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1294 1591 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1294 1622 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1294 674 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1294 705 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 1545 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 1576 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 629 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 674 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 705 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 2508 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 2538 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 1637 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 1667 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 720 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 751 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 2462 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 2492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 1499 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 1530 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 583 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2055 613 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1753 2126 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1753 2156 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1753 1209 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1753 1240 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1753 293 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1753 323 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -317 2554 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -317 2584 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -301 1637 N M 0 30 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -301 1667 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -301 720 N M 0 31 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -301 751 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 2859 N M -183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -760 2859 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -851 1942 N M -183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -668 1942 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -851 1026 N M -183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -668 1026 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 2813 N M -183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -760 2813 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 1897 N M -183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1050 1897 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 980 N M -183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1050 980 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1264 2538 N M -184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1080 2538 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1294 1622 N M -183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1111 1622 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1294 705 N M -183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1111 705 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 1576 N M 184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 1576 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 659 N M 184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 705 N M 184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 705 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 2538 N M 184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 2538 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 1667 N M 184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 1667 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 751 N M 184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 751 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 2492 N M 184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 2492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 1530 N M 184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 1530 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2055 613 N M 184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2239 613 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1753 2156 N M -184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1569 2156 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1753 1240 N M -184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1569 1240 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1753 323 N M -184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1569 323 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -317 2584 N M -184 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -133 2584 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -301 1667 N M -183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -118 1667 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -301 751 N M -183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -118 751 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 2722 N M 0 -92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1569 2630 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 2630 N M 122 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1691 2630 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1691 2630 N M 0 92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1691 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1691 2722 N M -122 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1569 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 2722 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1569 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 1805 N M 0 -92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1569 1713 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 1713 N M 122 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1691 1713 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1691 1713 N M 0 92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1691 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1691 1805 N M -122 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1569 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 1805 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1569 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 888 N M 0 -91 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1569 797 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 797 N M 122 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1691 797 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1691 797 N M 0 91 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1691 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1691 888 N M -122 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1569 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 888 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1569 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1142 2722 N M 0 -92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1142 2630 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1142 2630 N M 91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1233 2630 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 2630 N M 0 92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1233 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 2722 N M -91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1142 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1142 2722 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1142 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1432 2722 N M 0 -92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1432 2630 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1432 2630 N M 91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1523 2630 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1523 2630 N M 0 92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1523 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1523 2722 N M -91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1432 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1432 2722 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1432 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1432 1805 N M 0 -92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1432 1713 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1432 1713 N M 91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1523 1713 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1523 1713 N M 0 92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1523 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1523 1805 N M -91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1432 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1432 1805 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1432 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1432 888 N M 0 -91 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1432 797 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1432 797 N M 91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1523 797 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1523 797 N M 0 91 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1523 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1523 888 N M -91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1432 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1432 888 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1432 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 1805 N M 0 -92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -943 1713 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 1713 N M 92 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1035 1713 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1035 1713 N M 0 92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1035 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1035 1805 N M -92 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -943 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 1805 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -943 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 888 N M 0 -91 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -943 797 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 797 N M 92 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1035 797 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1035 797 N M 0 91 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1035 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1035 888 N M -92 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -943 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 888 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -943 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 2722 N M 0 -92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -943 2630 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 2630 N M 92 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1035 2630 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1035 2630 N M 0 92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1035 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1035 2722 N M -92 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -943 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 2722 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -943 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 2554 N M 0 -92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1676 2462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 2462 N M 92 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1768 2462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1768 2462 N M 0 92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1768 2554 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1768 2554 N M -92 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1676 2554 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 2554 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1676 2554 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 1637 N M 0 -92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1676 1545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 1545 N M 92 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1768 1545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1768 1545 N M 0 92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1768 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1768 1637 N M -92 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1676 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 1637 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1676 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 720 N M 0 -91 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1676 629 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 629 N M 92 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1768 629 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1768 629 N M 0 91 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1768 720 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1768 720 N M -92 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1676 720 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 720 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1676 720 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 1805 N M 0 -92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1233 1713 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 1713 N M 92 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1325 1713 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1325 1713 N M 0 92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1325 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1325 1805 N M -92 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1233 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 1805 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1233 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 888 N M 0 -91 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1233 797 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 797 N M 92 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1325 797 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1325 797 N M 0 91 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1325 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1325 888 N M -92 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1233 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 888 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1233 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -821 2309 N M 0 -122 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -821 2187 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -821 2187 N M 91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -912 2187 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 2187 N M 0 122 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -912 2309 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 2309 N M -91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -821 2309 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -821 2309 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -821 2309 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -821 1392 N M 0 -122 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -821 1270 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -821 1270 N M 91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -912 1270 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 1270 N M 0 122 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -912 1392 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 1392 N M -91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -821 1392 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -821 1392 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -821 1392 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -821 476 N M 0 -122 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -821 354 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -821 354 N M 91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -912 354 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 354 N M 0 122 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -912 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 476 N M -91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -821 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -821 476 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -821 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 2309 N M 0 -92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1857 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 2217 N M 91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1948 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 2217 N M 0 92 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1948 2309 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 2309 N M -91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1857 2309 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 2309 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1857 2309 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 2569 N M 0 -122 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1857 2447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 2447 N M 91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1948 2447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 2447 N M 0 122 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1948 2569 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 2569 N M -91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1857 2569 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 2569 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1857 2569 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 1652 N M 0 -122 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1857 1530 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 1530 N M 91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1948 1530 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 1530 N M 0 122 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1948 1652 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 1652 N M -91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1857 1652 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 1652 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1857 1652 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 736 N M 0 -123 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1857 613 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 613 N M 91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1948 613 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 613 N M 0 123 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1948 736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 736 N M -91 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1857 736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 736 N M 0 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1857 736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -947 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -950 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -954 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -958 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -962 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -969 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -973 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -977 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -980 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -984 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -988 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -992 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -995 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -999 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1003 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1007 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1010 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1014 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1018 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1022 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1025 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1029 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1033 1759 N M 2 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1035 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -947 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -950 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -954 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -958 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -962 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -969 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -973 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -977 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -980 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -984 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -988 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -992 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -995 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -999 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1003 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1007 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1010 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1014 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1018 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1022 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1025 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1029 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1033 843 N M 2 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1035 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 2676 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -947 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -950 2676 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -954 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -958 2676 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -962 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2676 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -969 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -973 2676 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -977 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -980 2676 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -984 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -988 2676 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -992 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -995 2676 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -999 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1003 2676 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1007 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1010 2676 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1014 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1018 2676 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1022 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1025 2676 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1029 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1033 2676 N M 2 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1035 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 2508 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1680 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1684 2508 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1687 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1691 2508 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1695 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1699 2508 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1702 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1706 2508 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1710 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1714 2508 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1717 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1721 2508 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1725 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1729 2508 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1732 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1736 2508 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1740 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1744 2508 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1747 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1751 2508 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1755 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1759 2508 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1762 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1766 2508 N M 2 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1768 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 1591 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1680 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1684 1591 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1687 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1691 1591 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1695 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1699 1591 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1702 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1706 1591 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1710 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1714 1591 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1717 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1721 1591 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1725 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1729 1591 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1732 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1736 1591 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1740 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1744 1591 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1747 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1751 1591 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1755 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1759 1591 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1762 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1766 1591 N M 2 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1768 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 674 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1680 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1684 674 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1687 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1691 674 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1695 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1699 674 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1702 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1706 674 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1710 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1714 674 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1717 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1721 674 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1725 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1729 674 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1732 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1736 674 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1740 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1744 674 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1747 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1751 674 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1755 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1759 674 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1762 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1766 674 N M 2 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1768 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1237 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1241 1759 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1244 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1248 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1256 1759 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1259 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1263 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1267 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1271 1759 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1274 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1278 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1282 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1286 1759 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1289 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1293 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1297 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1301 1759 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1304 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1308 1759 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1312 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1316 1759 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1319 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1323 1759 N M 2 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1325 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1237 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1241 843 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1244 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1248 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1256 843 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1259 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1263 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1267 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1271 843 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1274 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1278 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1282 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1286 843 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1289 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1293 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1297 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1301 843 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1304 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1308 843 N M 4 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1312 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1316 843 N M 3 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1319 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1323 843 N M 2 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1325 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1713 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 1717 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1721 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 1725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1728 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 1732 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1736 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 1740 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1743 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 1747 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1751 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 1755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1758 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 1762 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1766 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 1770 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1773 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 1777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1781 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 1785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1788 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 1792 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1796 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 1800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1803 N M 0 2 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 797 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 804 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 812 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 819 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 827 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 830 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 834 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 838 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 842 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 849 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 853 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 857 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 860 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 864 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 868 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 872 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 875 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 879 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 883 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 887 N M 0 1 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 2630 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 2634 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 2637 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 2641 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 2645 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 2649 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 2652 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 2656 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 2660 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 2664 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 2667 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 2671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 2675 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 2679 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 2682 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 2686 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 2690 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 2694 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 2697 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 2701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 2705 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 2709 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 2712 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 2716 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 2720 N M 0 2 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -989 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2462 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2466 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2469 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2473 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2477 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2481 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2484 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2488 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2492 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2496 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2499 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2503 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2507 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2511 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2514 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2518 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2522 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2529 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2533 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2537 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2541 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2544 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2548 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2552 N M 0 2 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2554 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1545 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1549 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1553 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1557 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1560 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1564 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1568 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1572 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1575 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1579 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1583 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1587 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1590 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1594 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1598 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1602 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1605 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1609 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1613 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1617 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1620 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1624 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1628 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1632 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1635 N M 0 2 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 629 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 632 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 636 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 640 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 644 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 647 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 651 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 655 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 659 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 662 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 666 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 670 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 674 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 677 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 681 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 685 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 689 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 692 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 696 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 700 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 704 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 707 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 711 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 715 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 719 N M 0 1 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 720 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 1713 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 1717 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 1721 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 1725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 1728 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 1732 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 1736 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 1740 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 1743 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 1747 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 1751 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 1755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 1758 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 1762 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 1766 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 1770 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 1773 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 1777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 1781 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 1785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 1788 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 1792 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 1796 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 1800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 1803 N M 0 2 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 797 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 804 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 808 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 812 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 819 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 827 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 830 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 834 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 838 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 842 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 849 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 853 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 857 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 860 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 864 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 868 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 872 N M 0 3 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 875 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 879 N M 0 4 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 883 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 887 N M 0 1 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1279 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 1790 N M 15 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -958 1790 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 873 N M 15 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -958 873 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 2706 N M 15 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -958 2706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 1790 N M 15 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1248 1790 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 873 N M 15 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1248 873 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -958 1790 N M 61 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1019 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -958 873 N M 61 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1019 812 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -958 2706 N M 61 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1019 2645 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1248 1790 N M 62 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1310 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1248 873 N M 62 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1310 812 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1019 1729 N M 16 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1035 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1019 812 N M 16 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1035 812 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1019 2645 N M 16 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1035 2645 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1310 1729 N M 15 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1325 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1310 812 N M 15 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1325 812 N M 0 0 rr : 0 0 0 sco O ; -N 637 1820 31.000 360 0 An C 1 Lw 1 Lc 1 Lj solid 0 0 0 sco K -N 637 904 31.000 360 0 An C 0 0 0 sco K -N 637 1698 31.000 360 0 An C 0 0 0 sco K -N 637 781 31.000 360 0 An C 0 0 0 sco K : 0 0 2391 3229 rc -637 1820 N M 22 -21 - 1 Lw solid 0 0 0 sco K ; -659 1799 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 904 N M 22 -22 - 1 Lw solid 0 0 0 sco K ; -659 882 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 1698 N M 22 -22 - 1 Lw solid 0 0 0 sco K ; -659 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 781 N M 22 -21 - 1 Lw solid 0 0 0 sco K ; -659 760 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 1820 N M -21 -21 - 1 Lw solid 0 0 0 sco K ; -616 1799 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 904 N M -21 -22 - 1 Lw solid 0 0 0 sco K ; -616 882 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 1698 N M -21 -22 - 1 Lw solid 0 0 0 sco K ; -616 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 781 N M -21 -21 - 1 Lw solid 0 0 0 sco K ; -616 760 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 1820 N M -21 22 - 1 Lw solid 0 0 0 sco K ; -616 1842 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 904 N M -21 21 - 1 Lw solid 0 0 0 sco K ; -616 925 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 1698 N M -21 22 - 1 Lw solid 0 0 0 sco K ; -616 1720 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 781 N M -21 22 - 1 Lw solid 0 0 0 sco K ; -616 803 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 1820 N M 22 22 - 1 Lw solid 0 0 0 sco K ; -659 1842 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 904 N M 22 21 - 1 Lw solid 0 0 0 sco K ; -659 925 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 1698 N M 22 22 - 1 Lw solid 0 0 0 sco K ; -659 1720 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 781 N M 22 22 - 1 Lw solid 0 0 0 sco K ; -659 803 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -630 1839 N M 15 0 - 1 Lw solid 0 0 0 sco K ; -645 1839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -630 922 N M 15 0 - 1 Lw solid 0 0 0 sco K ; -645 922 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -630 1680 N M 15 0 - 1 Lw solid 0 0 0 sco K ; -645 1680 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -630 763 N M 15 0 - 1 Lw solid 0 0 0 sco K ; -645 763 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -627 1820 N M -16 0 - 1 Lw solid 0 0 0 sco K ; -611 1820 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -627 904 N M -16 0 - 1 Lw solid 0 0 0 sco K ; -611 904 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -627 1698 N M -16 0 - 1 Lw solid 0 0 0 sco K ; -611 1698 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -627 781 N M -16 0 - 1 Lw solid 0 0 0 sco K ; -611 781 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -619 1813 N M 0 15 - 1 Lw solid 0 0 0 sco K ; -619 1828 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -619 896 N M 0 15 - 1 Lw solid 0 0 0 sco K ; -619 911 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -619 1690 N M 0 16 - 1 Lw solid 0 0 0 sco K ; -619 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -619 774 N M 0 15 - 1 Lw solid 0 0 0 sco K ; -619 789 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -454 1866 N M 0 -92 - 1 Lw solid 0 0 0 sco K ; -454 1774 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -454 1774 N M 92 0 - 1 Lw solid 0 0 0 sco K ; -546 1774 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -546 1774 N M 15 46 - 1 Lw solid 0 0 0 sco K ; -561 1820 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -561 1820 N M -15 46 - 1 Lw solid 0 0 0 sco K ; -546 1866 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -546 1866 N M -92 0 - 1 Lw solid 0 0 0 sco K ; -454 1866 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -454 1866 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -454 1866 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -454 1866 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -454 1866 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -454 949 N M 0 -91 - 1 Lw solid 0 0 0 sco K ; -454 858 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -454 858 N M 92 0 - 1 Lw solid 0 0 0 sco K ; -546 858 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -546 858 N M 15 46 - 1 Lw solid 0 0 0 sco K ; -561 904 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -561 904 N M -15 45 - 1 Lw solid 0 0 0 sco K ; -546 949 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -546 949 N M -92 0 - 1 Lw solid 0 0 0 sco K ; -454 949 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -454 949 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -454 949 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -454 949 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -454 949 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1080 1805 N M 0 -92 - 1 Lw solid 0 0 0 sco K ; -1080 1713 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1080 1713 N M 92 0 - 1 Lw solid 0 0 0 sco K ; -1172 1713 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1172 1713 N M 15 46 - 1 Lw solid 0 0 0 sco K ; -1187 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1187 1759 N M -15 46 - 1 Lw solid 0 0 0 sco K ; -1172 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1172 1805 N M -92 0 - 1 Lw solid 0 0 0 sco K ; -1080 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1080 1805 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -1080 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1080 1805 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -1080 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1080 888 N M 0 -91 - 1 Lw solid 0 0 0 sco K ; -1080 797 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1080 797 N M 92 0 - 1 Lw solid 0 0 0 sco K ; -1172 797 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1172 797 N M 15 46 - 1 Lw solid 0 0 0 sco K ; -1187 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1187 843 N M -15 45 - 1 Lw solid 0 0 0 sco K ; -1172 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1172 888 N M -92 0 - 1 Lw solid 0 0 0 sco K ; -1080 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1080 888 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -1080 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1080 888 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -1080 888 N M 0 0 rr : 0 0 0 sco O ; : 476 1795 57 22 rc 0 0 0 sco F0_15_20 -Ji -495 1795 M -0.660 0 (d)A -; : 476 878 57 22 rc 0 0 0 sco F0_15_20 -Ji -495 878 M -0.660 0 (d)A -; : 471 1825 76 22 rc 0 0 0 sco F0_15_20 -Ji -490 1825 M -0.748 0 (dT)A -; : 471 909 76 22 rc 0 0 0 sco F0_15_20 -Ji -490 909 M -0.748 0 (dT)A -; : 0 0 2391 3229 rc -485 1820 N M 30 0 - 1 Lw solid 0 0 0 sco K ; -515 1820 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -485 904 N M 30 0 - 1 Lw solid 0 0 0 sco K ; -515 904 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1142 1729 N M -2 0 - 1 Lw solid 0 0 0 sco K ; -1140 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1140 1729 N M -2 0 - 1 Lw solid 0 0 0 sco K ; -1138 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1138 1729 N M -2 0 - 1 Lw solid 0 0 0 sco K ; -1136 1729 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1136 1729 N M -2 1 - 1 Lw solid 0 0 0 sco K ; -1134 1730 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1134 1730 N M -1 1 - 1 Lw solid 0 0 0 sco K ; -1133 1731 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1133 1731 N M -2 2 - 1 Lw solid 0 0 0 sco K ; -1131 1733 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1131 1733 N M -1 2 - 1 Lw solid 0 0 0 sco K ; -1130 1735 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1130 1735 N M -1 4 - 1 Lw solid 0 0 0 sco K ; -1129 1739 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1129 1739 N M -1 4 - 1 Lw solid 0 0 0 sco K ; -1128 1743 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1128 1743 N M -1 5 - 1 Lw solid 0 0 0 sco K ; -1127 1748 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1127 1748 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1127 1753 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1127 1753 N M -1 6 - 1 Lw solid 0 0 0 sco K ; -1126 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1126 1759 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -1126 1765 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1126 1765 N M -1 5 - 1 Lw solid 0 0 0 sco K ; -1125 1770 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1125 1770 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1125 1775 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1125 1775 N M -1 4 - 1 Lw solid 0 0 0 sco K ; -1124 1779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 1779 N M -1 4 - 1 Lw solid 0 0 0 sco K ; -1123 1783 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1123 1783 N M -2 2 - 1 Lw solid 0 0 0 sco K ; -1121 1785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1121 1785 N M -1 2 - 1 Lw solid 0 0 0 sco K ; -1120 1787 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1120 1787 N M -2 1 - 1 Lw solid 0 0 0 sco K ; -1118 1788 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1118 1788 N M -1 1 - 1 Lw solid 0 0 0 sco K ; -1117 1789 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1117 1789 N M -2 1 - 1 Lw solid 0 0 0 sco K ; -1115 1790 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1115 1790 N M -2 0 - 1 Lw solid 0 0 0 sco K ; -1113 1790 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1113 1790 N M -2 0 - 1 Lw solid 0 0 0 sco K ; -1111 1790 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1142 812 N M -2 0 - 1 Lw solid 0 0 0 sco K ; -1140 812 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1140 812 N M -2 0 - 1 Lw solid 0 0 0 sco K ; -1138 812 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1138 812 N M -2 1 - 1 Lw solid 0 0 0 sco K ; -1136 813 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1136 813 N M -2 0 - 1 Lw solid 0 0 0 sco K ; -1134 813 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1134 813 N M -1 1 - 1 Lw solid 0 0 0 sco K ; -1133 814 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1133 814 N M -2 2 - 1 Lw solid 0 0 0 sco K ; -1131 816 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1131 816 N M -1 3 - 1 Lw solid 0 0 0 sco K ; -1130 819 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1130 819 N M -1 3 - 1 Lw solid 0 0 0 sco K ; -1129 822 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1129 822 N M -1 4 - 1 Lw solid 0 0 0 sco K ; -1128 826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1128 826 N M -1 5 - 1 Lw solid 0 0 0 sco K ; -1127 831 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1127 831 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -1127 837 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1127 837 N M -1 6 - 1 Lw solid 0 0 0 sco K ; -1126 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1126 843 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1126 848 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1126 848 N M -1 6 - 1 Lw solid 0 0 0 sco K ; -1125 854 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1125 854 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1125 859 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1125 859 N M -1 4 - 1 Lw solid 0 0 0 sco K ; -1124 863 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1124 863 N M -1 3 - 1 Lw solid 0 0 0 sco K ; -1123 866 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1123 866 N M -2 3 - 1 Lw solid 0 0 0 sco K ; -1121 869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1121 869 N M -1 2 - 1 Lw solid 0 0 0 sco K ; -1120 871 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1120 871 N M -2 1 - 1 Lw solid 0 0 0 sco K ; -1118 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1118 872 N M -1 1 - 1 Lw solid 0 0 0 sco K ; -1117 873 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1117 873 N M -2 0 - 1 Lw solid 0 0 0 sco K ; -1115 873 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1115 873 N M -2 0 - 1 Lw solid 0 0 0 sco K ; -1113 873 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1113 873 N M -2 0 - 1 Lw solid 0 0 0 sco K ; -1111 873 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 2798 N M 46 0 - 1 Lw solid 0 0 0 sco K ; -989 2798 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 1881 N M 46 0 - 1 Lw solid 0 0 0 sco K ; -1279 1881 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 965 N M 46 0 - 1 Lw solid 0 0 0 sco K ; -1279 965 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 2798 N M 0 -76 - 1 Lw solid 0 0 0 sco K ; -989 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 2722 N M -3 12 - 1 Lw solid 0 0 0 sco K ; -986 2734 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -986 2734 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -991 2734 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -991 2734 N M -2 -12 - 1 Lw solid 0 0 0 sco K ; -989 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 1881 N M 0 -76 - 1 Lw solid 0 0 0 sco K ; -1279 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 965 N M 0 -77 - 1 Lw solid 0 0 0 sco K ; -1279 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 1805 N M -3 12 - 1 Lw solid 0 0 0 sco K ; -1276 1817 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1276 1817 N M 6 0 - 1 Lw solid 0 0 0 sco K ; -1282 1817 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1282 1817 N M -3 -12 - 1 Lw solid 0 0 0 sco K ; -1279 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1279 888 N M -3 13 - 1 Lw solid 0 0 0 sco K ; -1276 901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1276 901 N M 6 0 - 1 Lw solid 0 0 0 sco K ; -1282 901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1282 901 N M -3 -13 - 1 Lw solid 0 0 0 sco K ; -1279 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1814 2141 N M 0 367 - 1 Lw solid 0 0 0 sco K ; -1814 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1814 1224 N M 0 367 - 1 Lw solid 0 0 0 sco K ; -1814 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1814 308 N M 0 366 - 1 Lw solid 0 0 0 sco K ; -1814 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -362 2676 N M -7 -8 - 1 Lw solid 0 0 0 sco K ; -355 2668 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 1759 N M -7 -8 - 1 Lw solid 0 0 0 sco K ; -340 1751 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 843 N M -7 -8 - 1 Lw solid 0 0 0 sco K ; -340 835 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -362 2279 N M -7 -8 - 1 Lw solid 0 0 0 sco K ; -355 2271 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 1362 N M -7 -8 - 1 Lw solid 0 0 0 sco K ; -340 1354 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 445 N M -7 -7 - 1 Lw solid 0 0 0 sco K ; -340 438 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -362 2676 N M -7 7 - 1 Lw solid 0 0 0 sco K ; -355 2683 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 1759 N M -7 8 - 1 Lw solid 0 0 0 sco K ; -340 1767 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 843 N M -7 7 - 1 Lw solid 0 0 0 sco K ; -340 850 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -362 2279 N M -7 7 - 1 Lw solid 0 0 0 sco K ; -355 2286 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 1362 N M -7 8 - 1 Lw solid 0 0 0 sco K ; -340 1370 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 445 N M -7 8 - 1 Lw solid 0 0 0 sco K ; -340 453 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -362 2676 N M 8 7 - 1 Lw solid 0 0 0 sco K ; -370 2683 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 1759 N M 8 8 - 1 Lw solid 0 0 0 sco K ; -355 1767 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 843 N M 8 7 - 1 Lw solid 0 0 0 sco K ; -355 850 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -362 2279 N M 8 7 - 1 Lw solid 0 0 0 sco K ; -370 2286 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 1362 N M 8 8 - 1 Lw solid 0 0 0 sco K ; -355 1370 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 445 N M 8 8 - 1 Lw solid 0 0 0 sco K ; -355 453 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -362 2676 N M 8 -8 - 1 Lw solid 0 0 0 sco K ; -370 2668 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 1759 N M 8 -8 - 1 Lw solid 0 0 0 sco K ; -355 1751 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 843 N M 8 -8 - 1 Lw solid 0 0 0 sco K ; -355 835 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -362 2279 N M 8 -8 - 1 Lw solid 0 0 0 sco K ; -370 2271 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 1362 N M 8 -8 - 1 Lw solid 0 0 0 sco K ; -355 1354 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 445 N M 8 -7 - 1 Lw solid 0 0 0 sco K ; -355 438 N M 0 0 rr : 0 0 0 sco O ; -N 362 2676 23.000 360 0 An C 0 0 0 sco K -N 347 1759 23.000 360 0 An C 0 0 0 sco K -N 347 843 23.000 360 0 An C 0 0 0 sco K -N 362 2279 23.000 360 0 An C 0 0 0 sco K -N 347 1362 23.000 360 0 An C 0 0 0 sco K -N 347 445 23.000 360 0 An C 0 0 0 sco K : 0 0 2391 3229 rc -87 2294 N M 0 366 - 1 Lw solid 0 0 0 sco K ; -87 2660 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -87 1377 N M 0 367 - 1 Lw solid 0 0 0 sco K ; -87 1744 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -87 461 N M 0 366 - 1 Lw solid 0 0 0 sco K ; -87 827 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -87 2233 N M 0 30 - 1 Lw solid 0 0 0 sco K ; -87 2263 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -87 1316 N M 0 31 - 1 Lw solid 0 0 0 sco K ; -87 1347 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -87 400 N M 0 30 - 1 Lw solid 0 0 0 sco K ; -87 430 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -87 2202 N M 0 -107 - 1 Lw solid 0 0 0 sco K ; -87 2095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -87 1286 N M 0 -107 - 1 Lw solid 0 0 0 sco K ; -87 1179 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -87 369 N M 0 -107 - 1 Lw solid 0 0 0 sco K ; -87 262 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -87 2095 N M 2216 0 - 1 Lw solid 0 0 0 sco K ; -2303 2095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -87 1179 N M 2216 0 - 1 Lw solid 0 0 0 sco K ; -2303 1179 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -87 262 N M 2216 0 - 1 Lw solid 0 0 0 sco K ; -2303 262 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2303 2233 N M 0 15 - 1 Lw solid 0 0 0 sco K ; -2303 2248 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2303 2187 N M 0 15 - 1 Lw solid 0 0 0 sco K ; -2303 2202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2303 2095 N M 0 61 - 1 Lw solid 0 0 0 sco K ; -2303 2156 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2303 1179 N M 0 107 - 1 Lw solid 0 0 0 sco K ; -2303 1286 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2303 262 N M 0 107 - 1 Lw solid 0 0 0 sco K ; -2303 369 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2303 2279 N M 0 15 - 1 Lw solid 0 0 0 sco K ; -2303 2294 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2303 1316 N M 0 61 - 1 Lw solid 0 0 0 sco K ; -2303 1377 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2303 400 N M 0 61 - 1 Lw solid 0 0 0 sco K ; -2303 461 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2303 2370 N M 0 596 - 1 Lw solid 0 0 0 sco K ; -2303 2966 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2303 2324 N M 0 16 - 1 Lw solid 0 0 0 sco K ; -2303 2340 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2303 1408 N M 0 641 - 1 Lw solid 0 0 0 sco K ; -2303 2049 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2303 491 N M 0 642 - 1 Lw solid 0 0 0 sco K ; -2303 1133 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2303 2966 N M -2216 0 - 1 Lw solid 0 0 0 sco K ; -87 2966 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2303 2049 N M -2216 0 - 1 Lw solid 0 0 0 sco K ; -87 2049 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2303 1133 N M -2216 0 - 1 Lw solid 0 0 0 sco K ; -87 1133 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -87 2966 N M 0 -275 - 1 Lw solid 0 0 0 sco K ; -87 2691 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -87 2049 N M 0 -275 - 1 Lw solid 0 0 0 sco K ; -87 1774 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -87 1133 N M 0 -275 - 1 Lw solid 0 0 0 sco K ; -87 858 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1753 2141 N M 61 0 - 1 Lw solid 0 0 0 sco K ; -1814 2141 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1753 1224 N M 61 0 - 1 Lw solid 0 0 0 sco K ; -1814 1224 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1753 308 N M 61 0 - 1 Lw solid 0 0 0 sco K ; -1814 308 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1753 2141 N M 12 3 - 1 Lw solid 0 0 0 sco K ; -1765 2144 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1765 2144 N M 0 -6 - 1 Lw solid 0 0 0 sco K ; -1765 2138 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1765 2138 N M -12 3 - 1 Lw solid 0 0 0 sco K ; -1753 2141 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1753 1224 N M 12 3 - 1 Lw solid 0 0 0 sco K ; -1765 1227 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1765 1227 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -1765 1222 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1765 1222 N M -12 2 - 1 Lw solid 0 0 0 sco K ; -1753 1224 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1753 308 N M 12 3 - 1 Lw solid 0 0 0 sco K ; -1765 311 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1765 311 N M 0 -6 - 1 Lw solid 0 0 0 sco K ; -1765 305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1765 305 N M -12 3 - 1 Lw solid 0 0 0 sco K ; -1753 308 N M 0 0 rr : 0 0 0 sco O ; : 1911 2375 133 22 rc 0 0 0 sco F0_15_20 -Ji -1930 2375 M -0.696 0 (state)A -; : 1811 2650 114 22 rc 0 0 0 sco F0_15_20 -Ji -1830 2650 M -0.413 0 (hold)A -; : 1811 1733 114 22 rc 0 0 0 sco F0_15_20 -Ji -1830 1733 M -0.413 0 (hold)A -; : 1811 817 114 22 rc 0 0 0 sco F0_15_20 -Ji -1830 817 M -0.413 0 (hold)A -; : 0 0 2391 3229 rc -912 2217 N M 13 3 - 1 Lw solid 0 0 0 sco K ; -925 2220 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -925 2220 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -925 2215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -925 2215 N M -13 2 - 1 Lw solid 0 0 0 sco K ; -912 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 1301 N M 13 3 - 1 Lw solid 0 0 0 sco K ; -925 1304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -925 1304 N M 0 -6 - 1 Lw solid 0 0 0 sco K ; -925 1298 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -925 1298 N M -13 3 - 1 Lw solid 0 0 0 sco K ; -912 1301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 384 N M 13 3 - 1 Lw solid 0 0 0 sco K ; -925 387 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -925 387 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -925 382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -925 382 N M -13 2 - 1 Lw solid 0 0 0 sco K ; -912 384 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 2279 N M 13 2 - 1 Lw solid 0 0 0 sco K ; -925 2281 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -925 2281 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -925 2276 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -925 2276 N M -13 3 - 1 Lw solid 0 0 0 sco K ; -912 2279 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 1362 N M 13 3 - 1 Lw solid 0 0 0 sco K ; -925 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -925 1365 N M 0 -6 - 1 Lw solid 0 0 0 sco K ; -925 1359 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -925 1359 N M -13 3 - 1 Lw solid 0 0 0 sco K ; -912 1362 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 445 N M 13 3 - 1 Lw solid 0 0 0 sco K ; -925 448 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -925 448 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -925 443 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -925 443 N M -13 2 - 1 Lw solid 0 0 0 sco K ; -912 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -385 2279 N M 436 0 - 1 Lw solid 0 0 0 sco K ; -821 2279 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -370 1362 N M 267 0 - 1 Lw solid 0 0 0 sco K ; -637 1362 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -370 445 N M 267 0 - 1 Lw solid 0 0 0 sco K ; -637 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -385 2279 N M 13 2 - 1 Lw solid 0 0 0 sco K ; -398 2281 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -398 2281 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -398 2276 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -398 2276 N M -13 3 - 1 Lw solid 0 0 0 sco K ; -385 2279 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -370 1362 N M 12 3 - 1 Lw solid 0 0 0 sco K ; -382 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -382 1365 N M 0 -6 - 1 Lw solid 0 0 0 sco K ; -382 1359 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -382 1359 N M -12 3 - 1 Lw solid 0 0 0 sco K ; -370 1362 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -370 445 N M 12 3 - 1 Lw solid 0 0 0 sco K ; -382 448 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -382 448 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -382 443 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -382 443 N M -12 2 - 1 Lw solid 0 0 0 sco K ; -370 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 1362 N M 184 0 - 1 Lw solid 0 0 0 sco K ; -821 1362 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 445 N M 184 0 - 1 Lw solid 0 0 0 sco K ; -821 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 1362 N M 13 3 - 1 Lw solid 0 0 0 sco K ; -650 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -650 1365 N M 0 -6 - 1 Lw solid 0 0 0 sco K ; -650 1359 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -650 1359 N M -13 3 - 1 Lw solid 0 0 0 sco K ; -637 1362 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 445 N M 13 3 - 1 Lw solid 0 0 0 sco K ; -650 448 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -650 448 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -650 443 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -650 443 N M -13 2 - 1 Lw solid 0 0 0 sco K ; -637 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -362 2569 N M 0 84 - 1 Lw solid 0 0 0 sco K ; -362 2653 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -362 2653 N M 3 -12 - 1 Lw solid 0 0 0 sco K ; -365 2641 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -365 2641 N M -5 0 - 1 Lw solid 0 0 0 sco K ; -360 2641 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -360 2641 N M 2 12 - 1 Lw solid 0 0 0 sco K ; -362 2653 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 1652 N M 0 84 - 1 Lw solid 0 0 0 sco K ; -347 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 736 N M 0 84 - 1 Lw solid 0 0 0 sco K ; -347 820 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 1736 N M 3 -12 - 1 Lw solid 0 0 0 sco K ; -350 1724 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -350 1724 N M -6 0 - 1 Lw solid 0 0 0 sco K ; -344 1724 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -344 1724 N M 3 12 - 1 Lw solid 0 0 0 sco K ; -347 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 820 N M 3 -13 - 1 Lw solid 0 0 0 sco K ; -350 807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -350 807 N M -6 0 - 1 Lw solid 0 0 0 sco K ; -344 807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -344 807 N M 3 13 - 1 Lw solid 0 0 0 sco K ; -347 820 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -821 2217 N M -550 0 - 1 Lw solid 0 0 0 sco K ; -271 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -821 1301 N M -550 0 - 1 Lw solid 0 0 0 sco K ; -271 1301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -821 384 N M -550 0 - 1 Lw solid 0 0 0 sco K ; -271 384 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 2217 N M 12 3 - 1 Lw solid 0 0 0 sco K ; -283 2220 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -283 2220 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -283 2215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -283 2215 N M -12 2 - 1 Lw solid 0 0 0 sco K ; -271 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 1301 N M 12 3 - 1 Lw solid 0 0 0 sco K ; -283 1304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -283 1304 N M 0 -6 - 1 Lw solid 0 0 0 sco K ; -283 1298 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -283 1298 N M -12 3 - 1 Lw solid 0 0 0 sco K ; -271 1301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 384 N M 12 3 - 1 Lw solid 0 0 0 sco K ; -283 387 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -283 387 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -283 382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -283 382 N M -12 2 - 1 Lw solid 0 0 0 sco K ; -271 384 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -340 2279 N M -69 0 - 1 Lw solid 0 0 0 sco K ; -271 2279 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -324 1362 N M -53 0 - 1 Lw solid 0 0 0 sco K ; -271 1362 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -324 445 N M -53 0 - 1 Lw solid 0 0 0 sco K ; -271 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 2279 N M 12 2 - 1 Lw solid 0 0 0 sco K ; -283 2281 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -283 2281 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -283 2276 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -283 2276 N M -12 3 - 1 Lw solid 0 0 0 sco K ; -271 2279 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 1362 N M 12 3 - 1 Lw solid 0 0 0 sco K ; -283 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -283 1365 N M 0 -6 - 1 Lw solid 0 0 0 sco K ; -283 1359 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -283 1359 N M -12 3 - 1 Lw solid 0 0 0 sco K ; -271 1362 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -271 445 N M 12 3 - 1 Lw solid 0 0 0 sco K ; -283 448 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -283 448 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -283 443 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -283 443 N M -12 2 - 1 Lw solid 0 0 0 sco K ; -271 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2401 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2408 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2416 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2423 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2431 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2438 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2446 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2453 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2461 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2468 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2476 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2483 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2491 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2498 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2506 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2513 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2521 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2528 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2536 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2543 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2551 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2558 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2566 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2573 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2581 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2588 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2596 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2603 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2611 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2618 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2626 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2633 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2641 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2648 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2656 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2663 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2671 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2678 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2686 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2693 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2701 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2708 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2716 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2723 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2731 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2738 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2746 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2753 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2761 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2768 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2776 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2783 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2791 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2798 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2806 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2813 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2821 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2828 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2836 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2851 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2858 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2866 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2873 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2881 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2896 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2903 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2911 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2918 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2926 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2933 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2941 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2948 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2956 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 2963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1484 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1499 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1507 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1514 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1522 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1529 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1537 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1544 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1552 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1559 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1574 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1582 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1589 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1597 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1604 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1612 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1619 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1634 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1642 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1649 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1657 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1664 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1672 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1679 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1694 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1702 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1709 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1717 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1724 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1732 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1739 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1747 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1754 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1762 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1769 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1784 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1792 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1799 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1814 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1822 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1829 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1837 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1844 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1852 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1859 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1874 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1882 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1889 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1897 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1904 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1912 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1919 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1934 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1942 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1949 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1957 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1964 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1972 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1979 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 1987 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1994 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2002 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2009 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2017 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2024 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2032 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2039 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2047 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 568 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 583 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 590 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 598 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 613 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 620 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 628 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 643 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 650 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 658 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 673 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 680 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 688 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 703 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 710 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 718 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 733 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 740 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 748 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 763 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 770 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 778 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 793 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 800 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 808 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 823 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 830 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 838 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 853 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 860 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 868 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 875 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 883 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 890 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 898 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 905 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 913 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 920 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 928 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 935 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 943 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 950 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 958 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 965 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 973 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 980 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 988 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 995 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1003 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1010 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1018 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1025 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1033 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1040 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1048 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1055 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1063 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1070 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1078 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1085 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1093 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1100 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1108 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1115 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1123 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1130 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2095 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2103 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2110 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2118 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2125 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2133 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2140 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2148 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2155 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2163 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2170 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2178 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2185 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2193 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2200 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2208 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2215 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2223 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2230 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2238 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2245 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2253 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2260 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2268 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2275 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2283 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2290 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2298 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2305 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2313 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2320 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2328 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2335 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2343 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2350 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2358 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2365 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2373 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2380 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 2388 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2395 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -1401 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1179 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1186 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1194 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1201 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1209 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1216 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1224 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1231 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1239 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1246 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1254 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1261 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1269 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1276 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1284 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1291 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1299 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1306 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1314 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1321 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1329 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1336 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1344 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1351 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1359 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1366 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1374 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1381 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1389 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1396 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1404 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1411 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1419 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1426 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1434 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1441 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1449 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1456 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1464 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1401 1471 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1479 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1401 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 262 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 270 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 277 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 285 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 292 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 300 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 307 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 315 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 322 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 330 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 337 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 345 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 352 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 360 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 367 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 375 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 382 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 390 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 397 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 405 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 412 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 420 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 427 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 435 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 442 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 450 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 457 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 465 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 472 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 480 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 487 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 495 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 502 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 510 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 517 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 525 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 532 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 540 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 547 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1401 555 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 562 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -1401 568 N M 0 0 rr : 0 0 0 sco O ; : 1848 2910 285 22 rc 0 0 0 sco F0_15_20 -Ji -1867 2910 M -0.665 0 (make_pulses\(\))A -; : 1848 1993 285 22 rc 0 0 0 sco F0_15_20 -Ji -1867 1993 M -0.665 0 (make_pulses\(\))A -; : 1848 1061 285 22 rc 0 0 0 sco F0_15_20 -Ji -1867 1061 M -0.665 0 (make_pulses\(\))A -; : 1933 1779 285 22 rc 0 0 0 sco F0_15_20 -Ji -1952 1779 M -1.002 0 (STEP TYPE = 1)A -; : 1931 2696 380 22 rc 0 0 0 sco F0_15_20 -Ji -1950 2696 M -0.945 0 (STEP TYPE = 2 - 14)A -; : 322 2910 418 22 rc 0 0 0 sco F0_15_20 -Ji -341 2910 M -1.060 0 (CTRL TYPE = VELOCITY)A -; : 324 1993 418 22 rc 0 0 0 sco F0_15_20 -Ji -343 1993 M -0.985 0 (CTRL TYPE = POSITION)A -; : 324 1077 418 22 rc 0 0 0 sco F0_15_20 -Ji -343 1077 M -0.985 0 (CTRL TYPE = POSITION)A -; : 1856 909 285 22 rc 0 0 0 sco F0_15_20 -Ji -1875 909 M -1.002 0 (STEP TYPE = 0)A -; : 416 2849 285 22 rc 0 0 0 sco F0_15_20 -Ji -435 2849 M -0.766 0 (update_freq\(\))A -; : 416 1932 285 22 rc 0 0 0 sco F0_15_20 -Ji -435 1932 M -0.766 0 (update_freq\(\))A -; : 416 1015 285 22 rc 0 0 0 sco F0_15_20 -Ji -435 1015 M -0.766 0 (update_freq\(\))A -; : 613 2131 380 22 rc 0 0 0 sco F0_15_20 -Ji -632 2131 M -0.775 0 (capture_position\(\))A -; : 613 1214 380 22 rc 0 0 0 sco F0_15_20 -Ji -632 1214 M -0.775 0 (capture_position\(\))A -; : 613 298 380 22 rc 0 0 0 sco F0_15_20 -Ji -632 298 M -0.775 0 (capture_position\(\))A -; : 97 2884 407 44 rc 0 0 0 sco (F0_30_40) cvn -F0 -30 0 0 40 0 0 -xMF -F0_30_40 -Ji -134 2884 M -2.249 0 (stepgen.0)A -; : 97 1968 407 44 rc 0 0 0 sco F0_30_40 -Ji -134 1968 M -2.249 0 (stepgen.0)A -; : 97 1051 407 44 rc 0 0 0 sco F0_30_40 -Ji -134 1051 M -2.249 0 (stepgen.0)A -; : 0 0 2391 3229 rc -340 2676 N M -69 0 - 1 Lw solid 0 0 0 sco K ; -271 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -340 2676 N M -13 -3 - 1 Lw solid 0 0 0 sco K ; -327 2673 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -327 2673 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -327 2678 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -327 2678 N M 13 -2 - 1 Lw solid 0 0 0 sco K ; -340 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -324 1759 N M -53 0 - 1 Lw solid 0 0 0 sco K ; -271 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -324 843 N M -53 0 - 1 Lw solid 0 0 0 sco K ; -271 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -324 1759 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -312 1756 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -312 1756 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -312 1762 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -312 1762 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -324 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -324 843 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -312 840 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -312 840 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -312 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -312 845 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -324 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1035 1759 N M 45 0 - 1 Lw solid 0 0 0 sco K ; -1080 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1035 843 N M 45 0 - 1 Lw solid 0 0 0 sco K ; -1080 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1080 1759 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -1068 1756 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1068 1756 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -1068 1762 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1068 1762 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -1080 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1080 843 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -1068 840 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1068 840 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1068 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1068 845 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -1080 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 2676 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -931 2673 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -931 2673 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -931 2678 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -931 2678 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -943 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1187 1759 N M 46 0 - 1 Lw solid 0 0 0 sco K ; -1233 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1187 843 N M 46 0 - 1 Lw solid 0 0 0 sco K ; -1233 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 1759 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -1221 1756 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1221 1756 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -1221 1762 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1221 1762 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -1233 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 843 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -1221 840 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1221 840 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1221 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1221 845 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -1233 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1233 2676 N M 92 0 - 1 Lw solid 0 0 0 sco K ; -1325 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1325 2676 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -1313 2673 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1313 2673 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1313 2678 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1313 2678 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -1325 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1325 1759 N M 46 0 - 1 Lw solid 0 0 0 sco K ; -1371 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1325 843 N M 46 0 - 1 Lw solid 0 0 0 sco K ; -1371 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 1759 N M -13 -3 - 1 Lw solid 0 0 0 sco K ; -1358 1756 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1358 1756 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -1358 1762 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1358 1762 N M 13 -3 - 1 Lw solid 0 0 0 sco K ; -1371 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 843 N M -13 -3 - 1 Lw solid 0 0 0 sco K ; -1358 840 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1358 840 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1358 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1358 845 N M 13 -2 - 1 Lw solid 0 0 0 sco K ; -1371 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1035 2676 N M 107 0 - 1 Lw solid 0 0 0 sco K ; -1142 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1142 2676 N M -13 -3 - 1 Lw solid 0 0 0 sco K ; -1129 2673 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1129 2673 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1129 2678 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1129 2678 N M 13 -2 - 1 Lw solid 0 0 0 sco K ; -1142 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1325 2676 N M 107 0 - 1 Lw solid 0 0 0 sco K ; -1432 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 1759 N M 61 0 - 1 Lw solid 0 0 0 sco K ; -1432 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 843 N M 61 0 - 1 Lw solid 0 0 0 sco K ; -1432 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1432 2676 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -1420 2673 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1420 2673 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1420 2678 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1420 2678 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -1432 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1432 1759 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -1420 1756 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1420 1756 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -1420 1762 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1420 1762 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -1432 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1432 843 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -1420 840 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1420 840 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1420 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1420 845 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -1432 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1187 2844 N M 0 -122 - 1 Lw solid 0 0 0 sco K ; -1187 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1187 2722 N M -2 12 - 1 Lw solid 0 0 0 sco K ; -1185 2734 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1185 2734 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -1190 2734 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1190 2734 N M -3 -12 - 1 Lw solid 0 0 0 sco K ; -1187 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1478 2844 N M 0 -122 - 1 Lw solid 0 0 0 sco K ; -1478 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1478 1927 N M 0 -122 - 1 Lw solid 0 0 0 sco K ; -1478 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1478 1011 N M 0 -123 - 1 Lw solid 0 0 0 sco K ; -1478 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1478 2722 N M -3 12 - 1 Lw solid 0 0 0 sco K ; -1475 2734 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1475 2734 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -1480 2734 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1480 2734 N M -2 -12 - 1 Lw solid 0 0 0 sco K ; -1478 2722 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1478 1805 N M -3 12 - 1 Lw solid 0 0 0 sco K ; -1475 1817 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1475 1817 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -1480 1817 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1480 1817 N M -2 -12 - 1 Lw solid 0 0 0 sco K ; -1478 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1478 888 N M -3 13 - 1 Lw solid 0 0 0 sco K ; -1475 901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1475 901 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -1480 901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1480 901 N M -2 -13 - 1 Lw solid 0 0 0 sco K ; -1478 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1394 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1386 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1379 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1364 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1356 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1349 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1341 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1334 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1326 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1319 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1311 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1304 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1296 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1289 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1281 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1274 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1266 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1259 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1251 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1244 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1236 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1229 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1221 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1214 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1206 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1199 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1191 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1184 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1176 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1169 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1161 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1154 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1146 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1139 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1131 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1124 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1109 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1101 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1094 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1086 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1079 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1071 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1064 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1056 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1049 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1041 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1034 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1026 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1019 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1011 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1004 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -996 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -989 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -981 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -974 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -966 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -959 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -951 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -944 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -936 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -929 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -921 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -914 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -906 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -899 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -891 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -884 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -876 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -869 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -861 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -854 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -846 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -839 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -831 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -824 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -816 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -809 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -801 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -794 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -786 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -779 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -771 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -764 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -756 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -749 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -741 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -734 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -726 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -719 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -711 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -704 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -696 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -689 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -681 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -674 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -666 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -659 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -651 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -644 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -636 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -629 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -621 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -614 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -606 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -599 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -591 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -584 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -576 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -569 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -561 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -554 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -546 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -539 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -531 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -524 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -516 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -509 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -501 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -494 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -486 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -479 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -471 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -464 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -456 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -449 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -441 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -434 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -426 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -419 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -411 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -404 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -396 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -389 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -381 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -374 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -366 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -359 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -351 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -344 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -336 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -329 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -321 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -314 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -306 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -299 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -291 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -284 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -276 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -269 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -261 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -254 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -246 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -239 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -231 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -224 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -216 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -209 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -201 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -194 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -186 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -179 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -171 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -164 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -156 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -149 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -141 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -134 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -126 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -119 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -111 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -104 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -96 2401 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -89 2401 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1394 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1386 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1379 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1364 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1356 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1349 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1341 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1334 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1326 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1319 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1311 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1304 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1296 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1289 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1281 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1274 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1266 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1259 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1251 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1244 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1236 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1229 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1221 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1214 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1206 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1199 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1191 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1184 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1176 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1169 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1161 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1154 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1146 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1139 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1131 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1124 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1109 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1101 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1094 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1086 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1079 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1071 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1064 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1056 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1049 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1041 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1034 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1026 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1019 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1011 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1004 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -996 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -989 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -981 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -974 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -966 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -959 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -951 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -944 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -936 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -929 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -921 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -914 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -906 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -899 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -891 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -884 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -876 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -869 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -861 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -854 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -846 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -839 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -831 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -824 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -816 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -809 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -801 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -794 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -786 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -779 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -771 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -764 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -756 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -749 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -741 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -734 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -726 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -719 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -711 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -704 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -696 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -689 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -681 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -674 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -666 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -659 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -651 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -644 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -636 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -629 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -621 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -614 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -606 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -599 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -591 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -584 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -576 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -569 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -561 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -554 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -546 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -539 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -531 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -524 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -516 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -509 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -501 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -494 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -486 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -479 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -471 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -464 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -456 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -449 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -441 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -434 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -426 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -419 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -411 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -404 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -396 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -389 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -381 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -374 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -366 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -359 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -351 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -344 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -336 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -329 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -321 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -314 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -306 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -299 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -291 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -284 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -276 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -269 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -261 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -254 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -246 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -239 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -231 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -224 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -216 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -209 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -201 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -194 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -186 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -179 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -171 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -164 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -156 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -149 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -141 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -134 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -126 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -119 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -111 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -104 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -96 1484 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -89 1484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1401 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1394 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1386 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1379 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1364 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1356 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1349 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1341 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1334 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1326 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1319 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1311 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1304 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1296 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1289 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1281 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1274 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1266 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1259 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1251 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1244 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1236 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1229 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1221 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1214 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1206 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1199 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1191 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1184 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1176 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1169 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1161 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1154 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1146 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1139 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1131 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1124 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1109 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1101 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1094 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1086 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1079 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1071 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1064 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1056 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1049 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1041 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1034 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1026 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1019 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1011 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1004 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -996 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -989 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -981 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -974 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -966 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -959 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -951 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -944 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -936 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -929 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -921 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -914 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -906 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -899 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -891 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -884 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -876 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -869 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -861 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -854 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -846 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -839 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -831 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -824 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -816 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -809 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -801 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -794 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -786 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -779 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -771 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -764 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -756 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -749 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -741 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -734 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -726 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -719 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -711 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -704 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -696 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -689 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -681 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -674 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -666 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -659 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -651 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -644 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -636 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -629 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -621 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -614 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -606 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -599 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -591 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -584 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -576 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -569 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -561 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -554 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -546 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -539 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -531 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -524 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -516 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -509 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -501 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -494 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -486 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -479 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -471 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -464 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -456 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -449 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -441 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -434 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -426 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -419 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -411 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -404 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -396 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -389 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -381 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -374 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -366 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -359 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -351 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -344 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -336 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -329 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -321 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -314 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -306 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -299 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -291 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -284 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -276 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -269 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -261 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -254 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -246 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -239 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -231 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -224 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -216 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -209 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -201 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -194 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -186 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -179 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -171 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -164 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -156 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -149 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -141 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -134 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -126 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -119 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -111 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -104 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -96 568 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -89 568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2058 1331 N M 0 -30 - 1 Lw solid 0 0 0 sco K ; -2058 1301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2058 415 N M 0 -31 - 1 Lw solid 0 0 0 sco K ; -2058 384 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2058 1362 N M 0 30 - 1 Lw solid 0 0 0 sco K ; -2058 1392 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2058 445 N M 0 31 - 1 Lw solid 0 0 0 sco K ; -2058 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1903 2676 N M -212 0 - 1 Lw solid 0 0 0 sco K ; -1691 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1903 1759 N M -212 0 - 1 Lw solid 0 0 0 sco K ; -1691 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1903 843 N M -212 0 - 1 Lw solid 0 0 0 sco K ; -1691 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1523 2676 N M 46 0 - 1 Lw solid 0 0 0 sco K ; -1569 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1523 1759 N M 46 0 - 1 Lw solid 0 0 0 sco K ; -1569 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1523 843 N M 46 0 - 1 Lw solid 0 0 0 sco K ; -1569 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1691 2676 N M 13 -3 - 1 Lw solid 0 0 0 sco K ; -1704 2673 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1704 2673 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1704 2678 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1704 2678 N M -13 -2 - 1 Lw solid 0 0 0 sco K ; -1691 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1691 1759 N M 13 -3 - 1 Lw solid 0 0 0 sco K ; -1704 1756 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1704 1756 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -1704 1762 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1704 1762 N M -13 -3 - 1 Lw solid 0 0 0 sco K ; -1691 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1691 843 N M 13 -3 - 1 Lw solid 0 0 0 sco K ; -1704 840 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1704 840 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1704 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1704 845 N M -13 -2 - 1 Lw solid 0 0 0 sco K ; -1691 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 2676 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -1557 2673 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1557 2673 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1557 2678 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1557 2678 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -1569 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 1759 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -1557 1756 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1557 1756 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -1557 1762 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1557 1762 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -1569 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1569 843 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -1557 840 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1557 840 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1557 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1557 845 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -1569 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1918 1530 N M 0 -168 - 1 Lw solid 0 0 0 sco K ; -1918 1362 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1918 613 N M 0 -168 - 1 Lw solid 0 0 0 sco K ; -1918 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1887 1530 N M 0 -199 - 1 Lw solid 0 0 0 sco K ; -1887 1331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1887 613 N M 0 -198 - 1 Lw solid 0 0 0 sco K ; -1887 415 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2058 384 N M 61 0 - 1 Lw solid 0 0 0 sco K ; -2119 384 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 384 N M -12 -2 - 1 Lw solid 0 0 0 sco K ; -2107 382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 382 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -2107 387 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 387 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -2119 384 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2058 476 N M 61 0 - 1 Lw solid 0 0 0 sco K ; -2119 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 476 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -2107 473 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 473 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -2107 479 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 479 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -2119 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1887 1331 N M 171 0 - 1 Lw solid 0 0 0 sco K ; -2058 1331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1887 415 N M 171 0 - 1 Lw solid 0 0 0 sco K ; -2058 415 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1918 1362 N M 140 0 - 1 Lw solid 0 0 0 sco K ; -2058 1362 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1918 445 N M 140 0 - 1 Lw solid 0 0 0 sco K ; -2058 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2010 1606 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -2010 1652 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2010 690 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -2010 736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2010 1652 N M 45 0 - 1 Lw solid 0 0 0 sco K ; -2055 1652 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2010 736 N M 45 0 - 1 Lw solid 0 0 0 sco K ; -2055 736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 674 N M 0 16 - 1 Lw solid 0 0 0 sco K ; -2025 690 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 690 N M 30 0 - 1 Lw solid 0 0 0 sco K ; -2055 690 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1576 N M 0 -15 - 1 Lw solid 0 0 0 sco K ; -2025 1561 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 659 N M 0 -15 - 1 Lw solid 0 0 0 sco K ; -2025 644 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1561 N M 30 0 - 1 Lw solid 0 0 0 sco K ; -2055 1561 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 644 N M 30 0 - 1 Lw solid 0 0 0 sco K ; -2055 644 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2010 1561 N M 0 -46 - 1 Lw solid 0 0 0 sco K ; -2010 1515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2010 644 N M 0 -46 - 1 Lw solid 0 0 0 sco K ; -2010 598 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2010 1515 N M 45 0 - 1 Lw solid 0 0 0 sco K ; -2055 1515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2010 598 N M 45 0 - 1 Lw solid 0 0 0 sco K ; -2055 598 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 2477 N M 107 0 - 1 Lw solid 0 0 0 sco K ; -2055 2477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 1561 N M 62 0 - 1 Lw solid 0 0 0 sco K ; -2010 1561 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 644 N M 62 0 - 1 Lw solid 0 0 0 sco K ; -2010 644 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 2477 N M 13 -3 - 1 Lw solid 0 0 0 sco K ; -1961 2474 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 2474 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -1961 2480 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 2480 N M -13 -3 - 1 Lw solid 0 0 0 sco K ; -1948 2477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 1561 N M 13 -3 - 1 Lw solid 0 0 0 sco K ; -1961 1558 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 1558 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1961 1563 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 1563 N M -13 -2 - 1 Lw solid 0 0 0 sco K ; -1948 1561 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 644 N M 13 -3 - 1 Lw solid 0 0 0 sco K ; -1961 641 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 641 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -1961 647 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 647 N M -13 -3 - 1 Lw solid 0 0 0 sco K ; -1948 644 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 1576 N M 77 0 - 1 Lw solid 0 0 0 sco K ; -2025 1576 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 659 N M 77 0 - 1 Lw solid 0 0 0 sco K ; -2025 659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 1576 N M 13 -3 - 1 Lw solid 0 0 0 sco K ; -1961 1573 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 1573 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -1961 1579 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 1579 N M -13 -3 - 1 Lw solid 0 0 0 sco K ; -1948 1576 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 659 N M 13 -2 - 1 Lw solid 0 0 0 sco K ; -1961 657 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 657 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1961 662 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 662 N M -13 -3 - 1 Lw solid 0 0 0 sco K ; -1948 659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 674 N M 77 0 - 1 Lw solid 0 0 0 sco K ; -2025 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 674 N M 13 -2 - 1 Lw solid 0 0 0 sco K ; -1961 672 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 672 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1961 677 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 677 N M -13 -3 - 1 Lw solid 0 0 0 sco K ; -1948 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 2523 N M 107 0 - 1 Lw solid 0 0 0 sco K ; -2055 2523 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 1606 N M 62 0 - 1 Lw solid 0 0 0 sco K ; -2010 1606 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 690 N M 62 0 - 1 Lw solid 0 0 0 sco K ; -2010 690 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 2523 N M 13 -3 - 1 Lw solid 0 0 0 sco K ; -1961 2520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 2520 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -1961 2526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 2526 N M -13 -3 - 1 Lw solid 0 0 0 sco K ; -1948 2523 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 1606 N M 13 -2 - 1 Lw solid 0 0 0 sco K ; -1961 1604 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 1604 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1961 1609 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 1609 N M -13 -3 - 1 Lw solid 0 0 0 sco K ; -1948 1606 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1948 690 N M 13 -3 - 1 Lw solid 0 0 0 sco K ; -1961 687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 687 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1961 692 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1961 692 N M -13 -2 - 1 Lw solid 0 0 0 sco K ; -1948 690 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2058 1301 N M 61 0 - 1 Lw solid 0 0 0 sco K ; -2119 1301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 1301 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -2107 1298 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 1298 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -2107 1304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 1304 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -2119 1301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2058 1392 N M 61 0 - 1 Lw solid 0 0 0 sco K ; -2119 1392 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 1392 N M -12 -2 - 1 Lw solid 0 0 0 sco K ; -2107 1390 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 1390 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -2107 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 1395 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -2119 1392 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2058 2217 N M 0 31 - 1 Lw solid 0 0 0 sco K ; -2058 2248 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2058 2248 N M -110 0 - 1 Lw solid 0 0 0 sco K ; -1948 2248 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2043 2172 N M 0 61 - 1 Lw solid 0 0 0 sco K ; -2043 2233 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2043 2233 N M -95 0 - 1 Lw solid 0 0 0 sco K ; -1948 2233 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2058 2309 N M 0 -30 - 1 Lw solid 0 0 0 sco K ; -2058 2279 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2058 2279 N M -110 0 - 1 Lw solid 0 0 0 sco K ; -1948 2279 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2043 2355 N M 0 -61 - 1 Lw solid 0 0 0 sco K ; -2043 2294 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2043 2294 N M -95 0 - 1 Lw solid 0 0 0 sco K ; -1948 2294 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2355 N M -76 0 - 1 Lw solid 0 0 0 sco K ; -2043 2355 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2355 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -2107 2352 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 2352 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -2107 2358 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 2358 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -2119 2355 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2309 N M -61 0 - 1 Lw solid 0 0 0 sco K ; -2058 2309 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2309 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -2107 2306 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 2306 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -2107 2312 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 2312 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -2119 2309 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2263 N M -171 0 - 1 Lw solid 0 0 0 sco K ; -1948 2263 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2263 N M -12 -2 - 1 Lw solid 0 0 0 sco K ; -2107 2261 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 2261 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -2107 2266 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 2266 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -2119 2263 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2217 N M -61 0 - 1 Lw solid 0 0 0 sco K ; -2058 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2217 N M -12 -2 - 1 Lw solid 0 0 0 sco K ; -2107 2215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 2215 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -2107 2220 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 2220 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -2119 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2172 N M -76 0 - 1 Lw solid 0 0 0 sco K ; -2043 2172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2119 2172 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -2107 2169 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 2169 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -2107 2174 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2107 2174 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -2119 2172 N M 0 0 rr : 0 0 0 sco O ; : 333 2451 95 22 rc 0 0 0 sco F0_15_20 -Ji -352 2451 M -0.330 0 (1/x)A -; : 318 1535 95 22 rc 0 0 0 sco F0_15_20 -Ji -337 1535 M -0.330 0 (1/x)A -; : 318 618 95 22 rc 0 0 0 sco F0_15_20 -Ji -337 618 M -0.330 0 (1/x)A -; : 0 0 2391 3229 rc -332 2492 N M 0 -61 - 1 Lw solid 0 0 0 sco K ; -332 2431 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -332 2431 N M 61 0 - 1 Lw solid 0 0 0 sco K ; -393 2431 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -393 2431 N M 0 61 - 1 Lw solid 0 0 0 sco K ; -393 2492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -393 2492 N M -61 0 - 1 Lw solid 0 0 0 sco K ; -332 2492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -332 2492 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -332 2492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -317 1576 N M 0 -61 - 1 Lw solid 0 0 0 sco K ; -317 1515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -317 1515 N M 61 0 - 1 Lw solid 0 0 0 sco K ; -378 1515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -378 1515 N M 0 61 - 1 Lw solid 0 0 0 sco K ; -378 1576 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -378 1576 N M -61 0 - 1 Lw solid 0 0 0 sco K ; -317 1576 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -317 1576 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -317 1576 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -317 659 N M 0 -61 - 1 Lw solid 0 0 0 sco K ; -317 598 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -317 598 N M 61 0 - 1 Lw solid 0 0 0 sco K ; -378 598 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -378 598 N M 0 61 - 1 Lw solid 0 0 0 sco K ; -378 659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -378 659 N M -61 0 - 1 Lw solid 0 0 0 sco K ; -317 659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -317 659 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -317 659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -362 2492 N M 0 77 - 1 Lw solid 0 0 0 sco K ; -362 2569 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -362 2492 N M -2 13 - 1 Lw solid 0 0 0 sco K ; -360 2505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -360 2505 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -365 2505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -365 2505 N M -3 -13 - 1 Lw solid 0 0 0 sco K ; -362 2492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 1576 N M 0 76 - 1 Lw solid 0 0 0 sco K ; -347 1652 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 659 N M 0 77 - 1 Lw solid 0 0 0 sco K ; -347 736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 1576 N M -3 12 - 1 Lw solid 0 0 0 sco K ; -344 1588 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -344 1588 N M 6 0 - 1 Lw solid 0 0 0 sco K ; -350 1588 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -350 1588 N M -3 -12 - 1 Lw solid 0 0 0 sco K ; -347 1576 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 659 N M -3 12 - 1 Lw solid 0 0 0 sco K ; -344 671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -344 671 N M 6 0 - 1 Lw solid 0 0 0 sco K ; -350 671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -350 671 N M -3 -12 - 1 Lw solid 0 0 0 sco K ; -347 659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -362 2301 N M 0 130 - 1 Lw solid 0 0 0 sco K ; -362 2431 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 1385 N M 0 130 - 1 Lw solid 0 0 0 sco K ; -347 1515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 468 N M 0 130 - 1 Lw solid 0 0 0 sco K ; -347 598 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -362 2301 N M -2 13 - 1 Lw solid 0 0 0 sco K ; -360 2314 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -360 2314 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -365 2314 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -365 2314 N M -3 -13 - 1 Lw solid 0 0 0 sco K ; -362 2301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 1385 N M -3 12 - 1 Lw solid 0 0 0 sco K ; -344 1397 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -344 1397 N M 6 0 - 1 Lw solid 0 0 0 sco K ; -350 1397 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -350 1397 N M -3 -12 - 1 Lw solid 0 0 0 sco K ; -347 1385 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 468 N M -3 12 - 1 Lw solid 0 0 0 sco K ; -344 480 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -344 480 N M 6 0 - 1 Lw solid 0 0 0 sco K ; -350 480 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -350 480 N M -3 -12 - 1 Lw solid 0 0 0 sco K ; -347 468 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -317 2569 N M 45 0 - 1 Lw solid 0 0 0 sco K ; -362 2569 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -362 2569 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -350 2566 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -350 2566 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -350 2571 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -350 2571 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -362 2569 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -301 1652 N M 46 0 - 1 Lw solid 0 0 0 sco K ; -347 1652 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -301 736 N M 46 0 - 1 Lw solid 0 0 0 sco K ; -347 736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 1652 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -335 1649 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -335 1649 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -335 1655 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -335 1655 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -347 1652 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -347 736 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -335 733 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -335 733 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -335 738 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -335 738 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -347 736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -408 1698 N M 0 122 - 1 Lw solid 0 0 0 sco K ; -408 1820 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -408 781 N M 0 123 - 1 Lw solid 0 0 0 sco K ; -408 904 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -607 1698 N M -199 0 - 1 Lw solid 0 0 0 sco K ; -408 1698 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -607 781 N M -199 0 - 1 Lw solid 0 0 0 sco K ; -408 781 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -607 1698 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -595 1695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -595 1695 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -595 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -595 1701 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -607 1698 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -607 781 N M -12 -2 - 1 Lw solid 0 0 0 sco K ; -595 779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -595 779 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -595 784 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -595 784 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -607 781 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -454 1820 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -408 1820 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -454 904 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -408 904 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -454 1820 N M -12 -2 - 1 Lw solid 0 0 0 sco K ; -442 1818 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -442 1818 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -442 1823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -442 1823 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -454 1820 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -454 904 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -442 901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -442 901 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -442 906 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -442 906 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -454 904 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -561 1820 N M 46 0 - 1 Lw solid 0 0 0 sco K ; -607 1820 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -561 904 N M 46 0 - 1 Lw solid 0 0 0 sco K ; -607 904 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -607 1820 N M -12 -2 - 1 Lw solid 0 0 0 sco K ; -595 1818 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -595 1818 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -595 1823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -595 1823 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -607 1820 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -607 904 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -595 901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -595 901 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -595 906 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -595 906 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -607 904 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 1667 N M 0 -305 - 1 Lw solid 0 0 0 sco K ; -637 1362 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 751 N M 0 -306 - 1 Lw solid 0 0 0 sco K ; -637 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 1667 N M 3 -12 - 1 Lw solid 0 0 0 sco K ; -640 1655 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -640 1655 N M -5 0 - 1 Lw solid 0 0 0 sco K ; -635 1655 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -635 1655 N M 2 12 - 1 Lw solid 0 0 0 sco K ; -637 1667 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 751 N M 3 -12 - 1 Lw solid 0 0 0 sco K ; -640 739 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -640 739 N M -5 0 - 1 Lw solid 0 0 0 sco K ; -635 739 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -635 739 N M 2 12 - 1 Lw solid 0 0 0 sco K ; -637 751 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 1851 N M 0 137 - 1 Lw solid 0 0 0 sco K ; -637 1988 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 934 N M 0 138 - 1 Lw solid 0 0 0 sco K ; -637 1072 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 1851 N M -2 12 - 1 Lw solid 0 0 0 sco K ; -635 1863 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -635 1863 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -640 1863 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -640 1863 N M -3 -12 - 1 Lw solid 0 0 0 sco K ; -637 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 934 N M -2 12 - 1 Lw solid 0 0 0 sco K ; -635 946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -635 946 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -640 946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -640 946 N M -3 -12 - 1 Lw solid 0 0 0 sco K ; -637 934 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -668 1698 N M 107 0 - 1 Lw solid 0 0 0 sco K ; -775 1698 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -668 781 N M 107 0 - 1 Lw solid 0 0 0 sco K ; -775 781 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -775 1698 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -763 1695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -763 1695 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -763 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -763 1701 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -775 1698 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -775 781 N M -12 -2 - 1 Lw solid 0 0 0 sco K ; -763 779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -763 779 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -763 784 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -763 784 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -775 781 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -744 1820 N M 31 0 - 1 Lw solid 0 0 0 sco K ; -775 1820 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -744 904 N M 31 0 - 1 Lw solid 0 0 0 sco K ; -775 904 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -775 1820 N M -12 -2 - 1 Lw solid 0 0 0 sco K ; -763 1818 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -763 1818 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -763 1823 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -763 1823 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -775 1820 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -775 904 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -763 901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -763 901 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -763 906 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -763 906 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -775 904 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -775 1851 N M 0 -184 - 1 Lw solid 0 0 0 sco K ; -775 1667 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -775 1667 N M 122 0 - 1 Lw solid 0 0 0 sco K ; -897 1667 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -897 1667 N M 0 184 - 1 Lw solid 0 0 0 sco K ; -897 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -897 1851 N M -122 0 - 1 Lw solid 0 0 0 sco K ; -775 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -775 1851 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -775 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -775 934 N M 0 -183 - 1 Lw solid 0 0 0 sco K ; -775 751 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -775 751 N M 122 0 - 1 Lw solid 0 0 0 sco K ; -897 751 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -897 751 N M 0 183 - 1 Lw solid 0 0 0 sco K ; -897 934 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -897 934 N M -122 0 - 1 Lw solid 0 0 0 sco K ; -775 934 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -775 934 N M 0 0 - 1 Lw solid 0 0 0 sco K ; -775 934 N M 0 0 rr : 0 0 0 sco O ; : 792 1737 171 22 rc 0 0 0 sco F0_15_20 -Ji -811 1737 M -0.712 0 (control)A -; : 792 821 171 22 rc 0 0 0 sco F0_15_20 -Ji -811 821 M -0.712 0 (control)A -; : 786 1760 190 22 rc 0 0 0 sco F0_15_20 -Ji -805 1760 M -0.683 0 (equation)A -; : 786 844 190 22 rc 0 0 0 sco F0_15_20 -Ji -805 844 M -0.683 0 (equation)A -; : 0 0 2391 3229 rc -943 1759 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -897 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 843 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -897 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 1759 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -931 1756 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -931 1756 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -931 1762 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -931 1762 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -943 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 843 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -931 840 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -931 840 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -931 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -931 845 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -943 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -836 1851 N M -3 12 - 1 Lw solid 0 0 0 sco K ; -833 1863 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -833 1863 N M 6 0 - 1 Lw solid 0 0 0 sco K ; -839 1863 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -839 1863 N M -3 -12 - 1 Lw solid 0 0 0 sco K ; -836 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -836 934 N M -3 12 - 1 Lw solid 0 0 0 sco K ; -833 946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -833 946 N M 6 0 - 1 Lw solid 0 0 0 sco K ; -839 946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -839 946 N M -3 -12 - 1 Lw solid 0 0 0 sco K ; -836 934 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1805 N M 0 122 - 1 Lw solid 0 0 0 sco K ; -989 1927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 888 N M 0 123 - 1 Lw solid 0 0 0 sco K ; -989 1011 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1805 N M -3 12 - 1 Lw solid 0 0 0 sco K ; -986 1817 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -986 1817 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -991 1817 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -991 1817 N M -2 -12 - 1 Lw solid 0 0 0 sco K ; -989 1805 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 888 N M -3 13 - 1 Lw solid 0 0 0 sco K ; -986 901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -986 901 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -991 901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -991 901 N M -2 -13 - 1 Lw solid 0 0 0 sco K ; -989 888 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -851 1927 N M 61 0 - 1 Lw solid 0 0 0 sco K ; -912 1927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -851 1011 N M 61 0 - 1 Lw solid 0 0 0 sco K ; -912 1011 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 1927 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -900 1924 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -900 1924 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -900 1930 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -900 1930 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -912 1927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 1011 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -900 1008 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -900 1008 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -900 1013 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -900 1013 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -912 1011 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 2844 N M 244 0 - 1 Lw solid 0 0 0 sco K ; -1187 2844 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 1927 N M 77 0 - 1 Lw solid 0 0 0 sco K ; -989 1927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 1011 N M 77 0 - 1 Lw solid 0 0 0 sco K ; -989 1011 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1187 2844 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -1175 2841 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1175 2841 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -1175 2846 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1175 2846 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -1187 2844 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1927 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -977 1924 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -977 1924 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -977 1930 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -977 1930 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -989 1927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1011 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -977 1008 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -977 1008 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -977 1013 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -977 1013 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -989 1011 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 1988 N M -734 0 - 1 Lw solid 0 0 0 sco K ; -637 1988 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 1072 N M -734 0 - 1 Lw solid 0 0 0 sco K ; -637 1072 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 1988 N M 13 3 - 1 Lw solid 0 0 0 sco K ; -650 1991 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -650 1991 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -650 1986 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -650 1986 N M -13 2 - 1 Lw solid 0 0 0 sco K ; -637 1988 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -637 1072 N M 13 2 - 1 Lw solid 0 0 0 sco K ; -650 1074 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -650 1074 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -650 1069 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -650 1069 N M -13 3 - 1 Lw solid 0 0 0 sco K ; -637 1072 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 1759 N M 0 229 - 1 Lw solid 0 0 0 sco K ; -1371 1988 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 843 N M 0 229 - 1 Lw solid 0 0 0 sco K ; -1371 1072 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 1988 N M 2 -12 - 1 Lw solid 0 0 0 sco K ; -1373 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1373 1976 N M -5 0 - 1 Lw solid 0 0 0 sco K ; -1368 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1368 1976 N M 3 12 - 1 Lw solid 0 0 0 sco K ; -1371 1988 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 1072 N M 2 -13 - 1 Lw solid 0 0 0 sco K ; -1373 1059 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1373 1059 N M -5 0 - 1 Lw solid 0 0 0 sco K ; -1368 1059 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1368 1059 N M 3 13 - 1 Lw solid 0 0 0 sco K ; -1371 1072 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -668 1820 N M 76 0 - 1 Lw solid 0 0 0 sco K ; -744 1820 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -668 904 N M 76 0 - 1 Lw solid 0 0 0 sco K ; -744 904 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1187 2844 N M 291 0 - 1 Lw solid 0 0 0 sco K ; -1478 2844 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1927 N M 489 0 - 1 Lw solid 0 0 0 sco K ; -1478 1927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -989 1011 N M 489 0 - 1 Lw solid 0 0 0 sco K ; -1478 1011 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1325 2523 N M 0 153 - 1 Lw solid 0 0 0 sco K ; -1325 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1325 2523 N M -3 12 - 1 Lw solid 0 0 0 sco K ; -1322 2535 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1322 2535 N M 6 0 - 1 Lw solid 0 0 0 sco K ; -1328 2535 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1328 2535 N M -3 -12 - 1 Lw solid 0 0 0 sco K ; -1325 2523 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1630 2508 N M 0 122 - 1 Lw solid 0 0 0 sco K ; -1630 2630 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1630 1591 N M 0 122 - 1 Lw solid 0 0 0 sco K ; -1630 1713 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1630 674 N M 0 123 - 1 Lw solid 0 0 0 sco K ; -1630 797 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 1606 N M 0 153 - 1 Lw solid 0 0 0 sco K ; -1371 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 690 N M 0 153 - 1 Lw solid 0 0 0 sco K ; -1371 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1630 2508 N M -2 12 - 1 Lw solid 0 0 0 sco K ; -1628 2520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1628 2520 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -1633 2520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1633 2520 N M -3 -12 - 1 Lw solid 0 0 0 sco K ; -1630 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1630 1591 N M -2 12 - 1 Lw solid 0 0 0 sco K ; -1628 1603 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1628 1603 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -1633 1603 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1633 1603 N M -3 -12 - 1 Lw solid 0 0 0 sco K ; -1630 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1630 674 N M -2 13 - 1 Lw solid 0 0 0 sco K ; -1628 687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1628 687 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -1633 687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1633 687 N M -3 -13 - 1 Lw solid 0 0 0 sco K ; -1630 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1903 2309 N M -3 12 - 1 Lw solid 0 0 0 sco K ; -1900 2321 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1900 2321 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -1905 2321 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1905 2321 N M -2 -12 - 1 Lw solid 0 0 0 sco K ; -1903 2309 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1814 2217 N M -3 13 - 1 Lw solid 0 0 0 sco K ; -1811 2230 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1811 2230 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -1816 2230 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1816 2230 N M -2 -13 - 1 Lw solid 0 0 0 sco K ; -1814 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1814 1301 N M -3 12 - 1 Lw solid 0 0 0 sco K ; -1811 1313 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1811 1313 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -1816 1313 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1816 1313 N M -2 -12 - 1 Lw solid 0 0 0 sco K ; -1814 1301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1814 384 N M -3 12 - 1 Lw solid 0 0 0 sco K ; -1811 396 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1811 396 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -1816 396 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1816 396 N M -2 -12 - 1 Lw solid 0 0 0 sco K ; -1814 384 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1630 2279 N M -2 12 - 1 Lw solid 0 0 0 sco K ; -1628 2291 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1628 2291 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -1633 2291 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1633 2291 N M -3 -12 - 1 Lw solid 0 0 0 sco K ; -1630 2279 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1630 1362 N M -2 12 - 1 Lw solid 0 0 0 sco K ; -1628 1374 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1628 1374 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -1633 1374 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1633 1374 N M -3 -12 - 1 Lw solid 0 0 0 sco K ; -1630 1362 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1630 445 N M -2 13 - 1 Lw solid 0 0 0 sco K ; -1628 458 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1628 458 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -1633 458 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1633 458 N M -3 -13 - 1 Lw solid 0 0 0 sco K ; -1630 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 1606 N M -3 13 - 1 Lw solid 0 0 0 sco K ; -1368 1619 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1368 1619 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -1373 1619 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1373 1619 N M -2 -13 - 1 Lw solid 0 0 0 sco K ; -1371 1606 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1371 690 N M -3 12 - 1 Lw solid 0 0 0 sco K ; -1368 702 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1368 702 N M 5 0 - 1 Lw solid 0 0 0 sco K ; -1373 702 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1373 702 N M -2 -12 - 1 Lw solid 0 0 0 sco K ; -1371 690 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -943 2676 N M -558 0 - 1 Lw solid 0 0 0 sco K ; -385 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -408 1759 N M -38 0 - 1 Lw solid 0 0 0 sco K ; -370 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -408 843 N M -38 0 - 1 Lw solid 0 0 0 sco K ; -370 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -408 1759 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -396 1756 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -396 1756 N M 0 6 - 1 Lw solid 0 0 0 sco K ; -396 1762 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -396 1762 N M 12 -3 - 1 Lw solid 0 0 0 sco K ; -408 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -408 843 N M -12 -3 - 1 Lw solid 0 0 0 sco K ; -396 840 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -396 840 N M 0 5 - 1 Lw solid 0 0 0 sco K ; -396 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -396 845 N M 12 -2 - 1 Lw solid 0 0 0 sco K ; -408 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1264 2523 N M 61 0 - 1 Lw solid 0 0 0 sco K ; -1325 2523 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1264 2523 N M 12 3 - 1 Lw solid 0 0 0 sco K ; -1276 2526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1276 2526 N M 0 -6 - 1 Lw solid 0 0 0 sco K ; -1276 2520 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1276 2520 N M -12 3 - 1 Lw solid 0 0 0 sco K ; -1264 2523 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 2508 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -1630 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 1591 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -1630 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 674 N M -46 0 - 1 Lw solid 0 0 0 sco K ; -1630 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 2508 N M -89 0 - 1 Lw solid 0 0 0 sco K ; -1768 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 1591 N M -89 0 - 1 Lw solid 0 0 0 sco K ; -1768 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 674 N M -89 0 - 1 Lw solid 0 0 0 sco K ; -1768 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1294 1606 N M 77 0 - 1 Lw solid 0 0 0 sco K ; -1371 1606 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1294 690 N M 77 0 - 1 Lw solid 0 0 0 sco K ; -1371 690 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1814 2508 N M -13 2 - 1 Lw solid 0 0 0 sco K ; -1801 2510 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1801 2510 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -1801 2505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1801 2505 N M 13 3 - 1 Lw solid 0 0 0 sco K ; -1814 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1814 1591 N M -13 3 - 1 Lw solid 0 0 0 sco K ; -1801 1594 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1801 1594 N M 0 -6 - 1 Lw solid 0 0 0 sco K ; -1801 1588 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1801 1588 N M 13 3 - 1 Lw solid 0 0 0 sco K ; -1814 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1814 674 N M -13 3 - 1 Lw solid 0 0 0 sco K ; -1801 677 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1801 677 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -1801 672 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1801 672 N M 13 2 - 1 Lw solid 0 0 0 sco K ; -1814 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 2508 N M -12 2 - 1 Lw solid 0 0 0 sco K ; -1664 2510 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1664 2510 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -1664 2505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1664 2505 N M 12 3 - 1 Lw solid 0 0 0 sco K ; -1676 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 1591 N M -12 3 - 1 Lw solid 0 0 0 sco K ; -1664 1594 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1664 1594 N M 0 -6 - 1 Lw solid 0 0 0 sco K ; -1664 1588 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1664 1588 N M 12 3 - 1 Lw solid 0 0 0 sco K ; -1676 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1676 674 N M -12 3 - 1 Lw solid 0 0 0 sco K ; -1664 677 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1664 677 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -1664 672 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1664 672 N M 12 2 - 1 Lw solid 0 0 0 sco K ; -1676 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 2508 N M -12 2 - 1 Lw solid 0 0 0 sco K ; -1845 2510 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1845 2510 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -1845 2505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1845 2505 N M 12 3 - 1 Lw solid 0 0 0 sco K ; -1857 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 1591 N M -12 3 - 1 Lw solid 0 0 0 sco K ; -1845 1594 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1845 1594 N M 0 -6 - 1 Lw solid 0 0 0 sco K ; -1845 1588 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1845 1588 N M 12 3 - 1 Lw solid 0 0 0 sco K ; -1857 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1857 674 N M -12 3 - 1 Lw solid 0 0 0 sco K ; -1845 677 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1845 677 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -1845 672 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1845 672 N M 12 2 - 1 Lw solid 0 0 0 sco K ; -1857 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1294 1606 N M 13 3 - 1 Lw solid 0 0 0 sco K ; -1307 1609 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1307 1609 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -1307 1604 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1307 1604 N M -13 2 - 1 Lw solid 0 0 0 sco K ; -1294 1606 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1294 690 N M 13 2 - 1 Lw solid 0 0 0 sco K ; -1307 692 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1307 692 N M 0 -5 - 1 Lw solid 0 0 0 sco K ; -1307 687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1307 687 N M -13 3 - 1 Lw solid 0 0 0 sco K ; -1294 690 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1903 2569 N M 0 107 - 1 Lw solid 0 0 0 sco K ; -1903 2676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1903 1652 N M 0 107 - 1 Lw solid 0 0 0 sco K ; -1903 1759 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1903 736 N M 0 107 - 1 Lw solid 0 0 0 sco K ; -1903 843 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1903 2309 N M 0 138 - 1 Lw solid 0 0 0 sco K ; -1903 2447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1630 2279 N M 0 229 - 1 Lw solid 0 0 0 sco K ; -1630 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1630 1362 N M 0 229 - 1 Lw solid 0 0 0 sco K ; -1630 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1630 445 N M 0 229 - 1 Lw solid 0 0 0 sco K ; -1630 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1726 2508 N M 0 -8 - 1 Lw solid 0 0 0 sco K ; -1726 2500 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1726 1591 N M 0 -8 - 1 Lw solid 0 0 0 sco K ; -1726 1583 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1726 674 N M 0 -7 - 1 Lw solid 0 0 0 sco K ; -1726 667 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1718 2508 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1718 2515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1718 1591 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1718 1599 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1718 674 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1718 682 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1726 2500 N M 7 0 - 1 Lw solid 0 0 0 sco K ; -1733 2500 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1726 1583 N M 7 0 - 1 Lw solid 0 0 0 sco K ; -1733 1583 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1726 667 N M 7 0 - 1 Lw solid 0 0 0 sco K ; -1733 667 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1718 2515 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1711 2515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1718 1599 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1711 1599 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1718 682 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1711 682 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1733 2500 N M 0 -8 - 1 Lw solid 0 0 0 sco K ; -1733 2492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1733 1583 N M 0 -7 - 1 Lw solid 0 0 0 sco K ; -1733 1576 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1733 667 N M 0 -8 - 1 Lw solid 0 0 0 sco K ; -1733 659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1711 2515 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1711 2523 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1711 1599 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1711 1606 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1711 682 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1711 690 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1733 2492 N M 8 0 - 1 Lw solid 0 0 0 sco K ; -1741 2492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1733 1576 N M 8 0 - 1 Lw solid 0 0 0 sco K ; -1741 1576 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1733 659 N M 8 0 - 1 Lw solid 0 0 0 sco K ; -1741 659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1711 2523 N M -8 0 - 1 Lw solid 0 0 0 sco K ; -1703 2523 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1711 1606 N M -8 0 - 1 Lw solid 0 0 0 sco K ; -1703 1606 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1711 690 N M -8 0 - 1 Lw solid 0 0 0 sco K ; -1703 690 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1741 2492 N M 0 -7 - 1 Lw solid 0 0 0 sco K ; -1741 2485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1741 1576 N M 0 -8 - 1 Lw solid 0 0 0 sco K ; -1741 1568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1741 659 N M 0 -7 - 1 Lw solid 0 0 0 sco K ; -1741 652 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1703 2523 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1703 2531 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1703 1606 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1703 1614 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1703 690 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1703 697 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1741 2485 N M 8 0 - 1 Lw solid 0 0 0 sco K ; -1749 2485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1741 1568 N M 8 0 - 1 Lw solid 0 0 0 sco K ; -1749 1568 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1741 652 N M 8 0 - 1 Lw solid 0 0 0 sco K ; -1749 652 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1703 2531 N M -8 0 - 1 Lw solid 0 0 0 sco K ; -1695 2531 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1703 1614 N M -8 0 - 1 Lw solid 0 0 0 sco K ; -1695 1614 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1703 697 N M -8 0 - 1 Lw solid 0 0 0 sco K ; -1695 697 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1749 2485 N M 0 -8 - 1 Lw solid 0 0 0 sco K ; -1749 2477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1749 1568 N M 0 -7 - 1 Lw solid 0 0 0 sco K ; -1749 1561 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1749 652 N M 0 -8 - 1 Lw solid 0 0 0 sco K ; -1749 644 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1695 2531 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1695 2538 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1695 1614 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1695 1622 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1695 697 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1695 705 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1718 2508 N M 8 0 - 1 Lw solid 0 0 0 sco K ; -1726 2508 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1718 1591 N M 8 0 - 1 Lw solid 0 0 0 sco K ; -1726 1591 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1718 674 N M 8 0 - 1 Lw solid 0 0 0 sco K ; -1726 674 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1749 2477 N M 7 0 - 1 Lw solid 0 0 0 sco K ; -1756 2477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1749 1561 N M 7 0 - 1 Lw solid 0 0 0 sco K ; -1756 1561 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1749 644 N M 7 0 - 1 Lw solid 0 0 0 sco K ; -1756 644 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1756 2477 N M 0 -8 - 1 Lw solid 0 0 0 sco K ; -1756 2469 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1756 1561 N M 0 -8 - 1 Lw solid 0 0 0 sco K ; -1756 1553 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1756 644 N M 0 -8 - 1 Lw solid 0 0 0 sco K ; -1756 636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1756 2469 N M 8 0 - 1 Lw solid 0 0 0 sco K ; -1764 2469 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1756 1553 N M 8 0 - 1 Lw solid 0 0 0 sco K ; -1764 1553 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1756 636 N M 8 0 - 1 Lw solid 0 0 0 sco K ; -1764 636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1764 2469 N M 0 -7 - 1 Lw solid 0 0 0 sco K ; -1764 2462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1764 1553 N M 0 -8 - 1 Lw solid 0 0 0 sco K ; -1764 1545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1764 636 N M 0 -7 - 1 Lw solid 0 0 0 sco K ; -1764 629 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1695 2538 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1688 2538 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1695 1622 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1688 1622 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1695 705 N M -7 0 - 1 Lw solid 0 0 0 sco K ; -1688 705 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1688 2538 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1688 2546 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1688 1622 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1688 1629 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1688 705 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1688 713 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1688 2546 N M -8 0 - 1 Lw solid 0 0 0 sco K ; -1680 2546 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1688 1629 N M -8 0 - 1 Lw solid 0 0 0 sco K ; -1680 1629 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1688 713 N M -8 0 - 1 Lw solid 0 0 0 sco K ; -1680 713 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1680 2546 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1680 2554 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1680 1629 N M 0 8 - 1 Lw solid 0 0 0 sco K ; -1680 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1680 713 N M 0 7 - 1 Lw solid 0 0 0 sco K ; -1680 720 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -836 1851 N M 0 30 - 1 Lw solid 0 0 0 sco K ; -836 1881 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -836 934 N M 0 31 - 1 Lw solid 0 0 0 sco K ; -836 965 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -836 1881 N M 76 0 - 1 Lw solid 0 0 0 sco K ; -912 1881 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -836 965 N M 76 0 - 1 Lw solid 0 0 0 sco K ; -912 965 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 1881 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -912 1927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 965 N M 0 46 - 1 Lw solid 0 0 0 sco K ; -912 1011 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1814 2217 N M -902 0 - 1 Lw solid 0 0 0 sco K ; -912 2217 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1814 1301 N M -902 0 - 1 Lw solid 0 0 0 sco K ; -912 1301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1814 384 N M -902 0 - 1 Lw solid 0 0 0 sco K ; -912 384 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 2279 N M 718 0 - 1 Lw solid 0 0 0 sco K ; -1630 2279 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 1362 N M 718 0 - 1 Lw solid 0 0 0 sco K ; -1630 1362 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -912 445 N M 718 0 - 1 Lw solid 0 0 0 sco K ; -1630 445 N M 0 0 rr : 0 0 0 sco O ; -LH -pagesave restore -%%PageTrailer - -%%Trailer -%%DocumentNeededFonts: -%%DocumentSuppliedFonts: -/Pscript_Win_Driver /ProcSet findresource dup /terminate get exec -Pscript_Win_Compat dup /terminate get exec -%%EOF diff --git a/docs/src/hal/images/stepgen-block-diag.png b/docs/src/hal/images/stepgen-block-diag.png deleted file mode 100644 index ca97fc76f8b..00000000000 Binary files a/docs/src/hal/images/stepgen-block-diag.png and /dev/null differ diff --git a/docs/src/hal/images/stepgen-block-diag.svg b/docs/src/hal/images/stepgen-block-diag.svg deleted file mode 100755 index 0b49a2880e0..00000000000 --- a/docs/src/hal/images/stepgen-block-diag.svg +++ /dev/null @@ -1,3116 +0,0 @@ - - - -image/svg+xmlstepgen-block-diag.svg11.11.2011linuxcnc.org1/x - - - - - - -+ - - - - - - -- - - - - - - -+ - - - - - - -- - - - - - - -1/x - - - - - - -+ - - - - - - -- - - - - - - -+ - - - - - - -- - - - - - - -1/x - - - - - - -hold - - - - - -counts - - - - - -position-fb - - - - - -position-scale - - - - - -position-cmd - - - - - -ddt - - - - - -latch - - - - - -controlequation - - - - - -maxaccel - - - - - -maxfreq - - - - - -frequency - - - - - -ramp - - - - - -positionaccumulator - - - - - -step/dirlogicandtiming - - - - - -stepplen - - - - - -stepspace - - - - - -dirsetup - - - - - -dirhold - - - - - -dir - - - - - -step - - - - - -rawcounts - - - - - -capture_position() - - - - - -dirdelay - - - - - -up - - - - - -down - - - - - -counts - - - - - -position-fb - - - - - -position-scale - - - - - -position-cmd - - - - - -ddt - - - - - -latch - - - - - -controlequation - - - - - -maxaccel - - - - - -maxfreq - - - - - -frequency - - - - - -ramp - - - - - -positionaccumulator - - - - - -step/dirlogicandtiming - - - - - -stepplen - - - - - -stepspace - - - - - -rawcounts - - - - - -capture_position() - - - - - -make_pulses() - - - - - -STEP TYPE = 0 - - - - - -update_freq() - - - - - -CTRL TYPE = POSITION - - - - - -stepgen.0 - - - - - -make_pulses() - - - - - -STEP TYPE = 1 - - - - - -update_freq() - - - - - -CTRL TYPE = POSITION - - - - - - - - -counts - - - - - -position-fb - - - - - -position-scale - - - - - -position-cmd - - - - - -latch - - - - - -maxaccel - - - - - -maxfreq - - - - - -frequency - - - - - -ramp - - - - - -positionaccumulator - - - - - -step/dirlogicandtiming - - - - - -rawcounts - - - - - -capture_position() - - - - - -make_pulses() - - - - - -STEP TYPE = 2-14 - - - - - -update_freq() - - - - - -CTRL TYPE = VELOCITY - - - - - - - - -phase-A - - - - - -phase-B - - - - - -phase-C - - - - - -phase-D - - - - - -phase-E - - - - - -dirdelay - - - - - -stepplen - - - - - -lookuptable - - - - - -state - - - - - -hold - - - - - -hold - - - - - -ramp - - - - - -stepgen.0 - - -stepgen.0 - - - diff --git a/docs/src/hal/images/stepgen-type0.eps b/docs/src/hal/images/stepgen-type0.eps deleted file mode 100644 index bb6b5ae2877..00000000000 --- a/docs/src/hal/images/stepgen-type0.eps +++ /dev/null @@ -1,652 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Title: D:\JMK\Drawings\hal-stepgen-type0.FC7 -%%BoundingBox: 19 9 784 593 -%%Creator: PSCRIPT.DRV Version 4.0 -%%CreationDate: 06/04/04 23:25:26 -%%Pages: 1 -%%Requirements: None -%%DocumentNeededFonts: (atend) -%%DocumentSuppliedFonts: (atend) -%%LanguageLevel: 1 -%%EndComments - -%%BeginProlog -%%BeginProcSet: Pscript_Res_Emul 1.0 0 -/defineresource where{pop}{userdict begin/defineresource{userdict/Resources 2 -copy known{get begin}{15 dict dup begin put}ifelse exch readonly exch -currentdict 1 index known not{dup 30 dict def}if load 3 -1 roll 2 index put -end}bind readonly def/findresource{userdict/Resources get exch get exch get} -bind readonly def/resourceforall{pop pop pop pop}bind readonly def -/resourcestatus{userdict/Resources 2 copy known{get exch 2 copy known{get exch -known{0 -1 true}{pop pop false}ifelse}{pop pop pop false}ifelse}{pop pop false -}ifelse}bind readonly def end}ifelse -%%EndProcSet -%%BeginResource: procset Pscript_Win_Driver 2.0 0 -/Pscript_Win_Driver 200 dict dup begin -%%BeginResource: file Pscript_FatalError 2.0 0 -/FatalErrorIf{{initgraphics findfont exch scalefont setfont counttomark 3 div -cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def -%%EndResource -/VM? {vmstatus exch sub exch pop gt { [ -(This job requires more memory than is available in this printer.) 100 500 -(Try one or more of the following, and then print again:) 100 485 -(In the PostScript dialog box, click Optimize For Portability.) 115 470 -(In the Device Options dialog box, make sure the Available Printer Memory is accurate.) 115 455 -(Reduce the number of fonts in the document.) 115 440 -(Print the document in parts.) 115 425 -12 /Times-Roman showpage -(%%[ PrinterError: Low Printer VM ]%%) = -true FatalErrorIf}if} bind def -%%BeginResource: file Pscript_Win_Utils 2.0 0 -/|/def load def/,/load load |/~/exch , |/?/ifelse , |/!/pop , |/`/begin , |/^ -/index , |/@/dup , |/+/translate , |/$/roll , |/U/userdict , |/M/moveto , |/- -/rlineto , |/&/currentdict , |/:/gsave , |/;/grestore , |/F/false , |/T/true , -|/N/newpath , |/E/end , |/Ac/arc , |/An/arcn , |/A/ashow , |/D/awidthshow , | -/C/closepath , |/V/div , |/O/eofill , |/L/fill , |/I/lineto , |/-C/rcurveto , -|/-M/rmoveto , |/+S/scale , |/Ji/setfont , |/Lc/setlinecap , |/Lj/setlinejoin -, |/Lw/setlinewidth , |/S/show , |/LH/showpage , |/K/stroke , |/W/widthshow , -|/R/rotate , |/b{bind |}bind |/bd{bind |}bind |/xd{~ |}bd/ld{, |}bd/lw/Lw ld -/lc/Lc ld/lj/Lj ld/sg/setgray ld/L2? F/languagelevel where{! languagelevel 2 -ge{! T}if}if |/g{@ not{U/DefIf_save save put}if U/DefIf_bool 2 ^ put}b -/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e{DefIf_El ! -}b/self & |/reinitialize{[/TextInit/GraphInit/UtilsInit counttomark{@ where{ -self eq}{F}?{cvx exec}{!}?}repeat cleartomark}b/initialize{`{/ADO_mxRot ~ | -/TextInitialised? F | reinitialize E}{U/Pscript_Win_Data 200 dict @ ` put -/ADO_mxRot ~ |/TextInitialised? F | reinitialize}?}b/terminate{!{& self eq{ -exit}{E}?}loop E}b/suspend/terminate , |/resume{` Pscript_Win_Data `}b/snap{ -transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~ itransform}b -/dsnap{dtransform round ~ round ~ idtransform}b<04>cvn{}|/setjn{{statusdict -/jobname known{statusdict/jobname 3 -1 $ put}if}stopped cleartomark}b/solid{[] -0 setdash}b/setdsh{0 setdash}b/colspRefresh{}b/rp{4 2 $ M 1 ^ 0 - 0 ~ - neg 0 --}b/rr{1 ^ 0 - 0 ~ - neg 0 - C}b -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L1 2.0 0 -L2? not g{/rf{N rp L}b/fx{1 1 dtransform @ 0 ge{1 sub 1}{1 add -0.25}? 3 -1 $ -@ 0 ge{1 sub 1}{1 add -0.25}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{ -4 -2 $ snap + +S fx rf}b/rs{N rp C K}b/rc{N rp clip N}b/sg{setgray}b/sco{ -setrgbcolor}b/sgco{{sg}{sco}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L2 2.0 0 -L2? g{/colspA/DeviceGray |/colspABC/DeviceRGB |/setAorABC{{colspA}{colspABC}? -setcolorspace}b/rf/rectfill , |/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5 -}? 3 -1 $ @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ -idtransform}b/BZ{4 -2 $ snap + +S fx rf}b/rs/rectstroke , |/rc/rectclip , |/sg -{@ @ setcolor}b/sco{setcolor}b/colspRefresh{colspABC setcolorspace}b/sgco{{sg -}{sco}?}b/UtilsInit{F setglobal}b/definecolorrendering{/ColorRendering -defineresource !}b/findcolorrendering{@/ColorRendering resourcestatus{! ! -/ColorRendering findresource T}{! F}?}b/selectcolorrendering{@/ColorRendering -resourcestatus{! !/ColorRendering}{!/DefaultColorRendering/ColorRendering}? -findresource setcolorrendering}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Encoding 2.0 0 -/bullets{{/bullet}repeat}b/ANSIEncoding[/grave/acute/circumflex/tilde/macron -/breve/dotaccent/dieresis/ring/cedilla/hungarumlaut/ogonek/caron/dotlessi 18 -bullets StandardEncoding 32 95 getinterval aload ! 3 bullets/quotesinglbase -/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron -/guilsinglleft/OE 4 bullets/quoteleft/quoteright/quotedblleft/quotedblright -/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 2 bullets -/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section -/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered -/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph -/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter -/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis -/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute -/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls -/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute -/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve -/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex -/udieresis/yacute/thorn/ydieresis]| ANSIEncoding @ 39/quotesingle put 96/grave -put/ANSIEncodingOld ANSIEncoding 256 array copy | ANSIEncodingOld @[138 153 -154 169 172 174 177 178 179 181 185 188 189 190 208 215 221 222 240 247 253 -254]{/bullet put @}forall 166/bar put 176/ring put -%%EndResource -%%BeginResource: file Pscript_Win_Text 2.0 0 -/TextInit{TextInitialised? not{/Pscript_Windows_Font & |/TextInitialised? T | -/fM[1 0 0 -1 0 0]|/mFM matrix |/iMat[1 0 0.212557 neg 1 0 0]|}if}b/xUP null | -/yUP null |/uW null |/xSP null |/ySP null |/sW null |/copyfont{1 ^ length add -dict `{1 ^/FID ne{|}{! !}?}forall & E}b/rF{3 copyfont @ `/Encoding -ANSIEncoding &/CharStrings known{CharStrings/Eth known not{! ANSIEncodingOld} -if}if | E}b/mF{findfont ~{@/Encoding get @ StandardEncoding eq{! T}{{ -ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get -StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{rF}{3 copyfont}? ` -/OrigFontType ~ |/OrigFontName ~ | & E 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 -put fM makefont Pscript_Windows_Font 3 1 $ put}b/xF{scalefont -Pscript_Windows_Font 3 1 $ put}b/xMF{mFM astore makefont Pscript_Windows_Font -3 1 $ put}b/xF2/scalefont , |/xMF2{mFM astore makefont}b/sLT{: Lw -M -currentpoint snap M 0 - 0 Lc K ;}b/sSU{N/uW ~ |/yUP ~ |/xUP ~ |}b/sU{xUP yUP -uW sLT}b/sST{N/sW ~ |/ySP ~ |/xSP ~ |}b/sT{xSP ySP sW sLT}b/sR{: + R 0 0 M}b -/sRxy{: matrix astore concat 0 0 M}b/eR/; , | -%%EndResource -%%BeginResource: file Pscript_Win_Text_Bold 2.0 0 -/mBF{@ 4 copyfont `/FontName ~ |/OrigFontType ~ |/OrigFontName ~ | 0 -FontMatrix idtransform ! &/PaintType known{PaintType 0 eq{/PaintType 2 | -/StrokeWidth ~ |}{PaintType 1 eq PaintType 2 eq or PaintType 3 eq or & -/StrokeWidth known and{StrokeWidth add/StrokeWidth ~ |}{!}?}?}{!}? @ & E -definefont Pscript_Windows_Font 3 1 $ put}b/xBF{Pscript_Windows_Font ` 1 ^ -/FontName get 1 ^ scalefont 3 1 $ scalefont 2 copy ~ | ~ ! | E}b/xMBF{mFM -astore Pscript_Windows_Font ` 1 ^/FontName get 1 ^ makefont 3 1 $ makefont 2 -copy ~ | ~ ! | E}b/xBF2{/sB0 ~ mBF/sB1 sB0 3 -1 $ xBF sB1}b/xMBF2{/sB0 ~ mBF -mFM astore/sB1 sB0 3 -1 $ xMBF sB1}b/sB{: Pscript_Windows_Font currentfont get -Ji @ S ; S}b/asB{: Pscript_Windows_Font currentfont get Ji 3 copy A ; A}b/wsB{ -: Pscript_Windows_Font currentfont get Ji 4 copy W ; W}b/awsB{: -Pscript_Windows_Font currentfont get Ji 6 copy D ; D}b/sBT3{: @ S ; 1 1 -M S}b -/asBT3{: 3 copy A ; 1 1 -M A}b/wsBT3{: 4 copy W ; 1 1 -M W}b/awsBT3{: 6 copy D -; 1 1 -M D}b/mIF{iMat 4 3 -1 $ put 2 copyfont `/OrigFontType ~ |/OrigFontName -~ | @ & E definefont iMat makefont Pscript_Windows_Font 3 1 $ put}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics 2.0 0 -/SavedCTM null |/CTMsave{/SavedCTM SavedCTM currentmatrix |}b/CTMrestore{ -SavedCTM setmatrix}b/mp null |/ADO_mxRot null |/GDIHMatrix null | -/GDIHPatternDict 22 dict | GDIHPatternDict `/PatternType 1 |/PaintType 2 | -/Reps L2?{1}{5}? |/XStep 8 Reps mul |/YStep XStep |/BBox[0 0 XStep YStep]| -/TilingType 1 |/PaintProc{` 1 Lw[]0 setdash PaintData , exec E}b/FGnd null | -/BGnd null |/HS_Horizontal{horiz}b/HS_Vertical{vert}b/HS_FDiagonal{fdiag}b -/HS_BDiagonal{biag}b/HS_Cross{horiz vert}b/HS_DiagCross{fdiag biag}b/MaxXYStep -XStep YStep gt{XStep}{YStep}? |/horiz{Reps{0 4 M XStep 0 - 0 8 +}repeat 0 -8 -Reps mul + K}b/vert{Reps{4 0 M 0 YStep - 8 0 +}repeat 0 -8 Reps mul + K}b/biag -{Reps{0 0 M MaxXYStep @ - 0 YStep neg M MaxXYStep @ - 0 8 +}repeat 0 -8 Reps -mul + 0 YStep M 8 8 - K}b/fdiag{Reps{0 0 M MaxXYStep @ neg - 0 YStep M -MaxXYStep @ neg - 0 8 +}repeat 0 -8 Reps mul + MaxXYStep @ M 8 -8 - K}b E -/makehatch{GDIHPatternDict/PaintData 3 -1 $ put CTMsave GDIHMatrix setmatrix -GDIHPatternDict matrix mp CTMrestore ~ U ~ 2 ^ put}b/h0{/h0/HS_Horizontal -makehatch}b/h1{/h1/HS_Vertical makehatch}b/h2{/h2/HS_FDiagonal makehatch}b/h3{ -/h3/HS_BDiagonal makehatch}b/h4{/h4/HS_Cross makehatch}b/h5{/h5/HS_DiagCross -makehatch}b/GDIBWPatternDict 17 dict @ `/PatternType 1 |/PaintType L2?{1}{2}? -|/RepsV L2?{1}{6}? |/RepsH L2?{1}{5}? |/BBox[0 0 RepsH 1]|/TilingType 1 | -/XStep 1 |/YStep 1 |/Height 8 RepsV mul |/Width 8 |/mx[Width 0 0 Height neg 0 -Height]|/FGnd null |/BGnd null |/SetBGndFGnd L2?{{BGnd null ne{BGnd aload ! -sgco BBox aload ! 2 ^ sub ~ 3 ^ sub ~ rf}if FGnd null ne{FGnd aload ! sgco}if} -}{{}}? b/PaintProc{` SetBGndFGnd RepsH{Width Height F mx PaintData imagemask -Width 0 +}repeat E}b E |/GDIBWPatternMx null |/pfprep{save 4 1 $ -/PatternOfTheDay 4 1 $ GDIBWPatternDict `/PaintData ~ |/BGnd ~ |/FGnd ~ | E -CTMsave GDIBWPatternMx setmatrix GDIBWPatternDict matrix mp CTMrestore ~ !}b -/hrf null |/prf{pfprep ~ 6 1 $ 5 hrf restore}b/GraphInit{GDIHMatrix null eq{ -/SavedCTM matrix | : ADO_mxRot concat 0 0 snap + : 0.48 @ GDIHPatternDict ` -YStep mul ~ XStep mul ~ dsnap YStep V ~ XStep V ~ E +S/GDIHMatrix matrix -currentmatrix readonly | ; : 0.24 -0.24 +S GDIBWPatternDict ` Width Height E -dsnap +S/GDIBWPatternMx matrix currentmatrix readonly | ; ;}if}b/cirp{360 0 An -C}b/ellp{CTMsave + +S 0.5 0 M 0 0 0.5 360 0 An C CTMrestore}b/rrp{/rad ~ |/y2 -~ |/x2 ~ |/y1 ~ |/x1 ~ | x2 x1 add 2 V y1 M x1 y1 x1 y2 rad arct x1 y2 x2 y2 -rad arct x2 y2 x2 y1 rad arct x2 y1 x1 y1 rad arct C}b/RRp{CTMsave + +S/dyS ~ -|/dxS ~ | dxS 2 V 0 M 0 0 0 dyS 0.5 arct 0 dyS dxS dyS 0.5 arct dxS dyS dxS 0 -0.5 arct dxS 0 0 0 0.5 arct C CTMrestore}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L1 2.0 0 -L2? not g{/arct{arcto ! ! ! !}b/GDIpattfill{@ ` BGnd null ne PaintType 2 eq -and{: BGnd aload ! sgco fEOFill{O}{L}? ; FGnd aload ! U/fGray 2 ^ put{2}{4}? --1 $}if E @ patterncalc : 4 ^/PaintType get 2 eq{fGray{6 -1 $ sg}{8 -3 $ sco}? -}if fEOFill{eoclip}{clip}? N patternfill ; N}b/hrf{/fGray 1 ^ 6 eq | -4 $ N rp -C/fEOFill F | GDIpattfill}b/hfMain{/fEOFill ~ |/fGray ~ | GDIpattfill}b/hf{T -hfMain}b/hfW{F hfMain}b/hs{currentpoint strokepath M hfW}b/pfMain{/fEOFill ~ | -pfprep GDIpattfill restore N}b/pf{T pfMain}b/pfW{F pfMain}b/ps{currentpoint -strokepath M pfW}b/mpstr 1 string |/mp{~ @ length 12 add dict copy ` -/PatternCTM matrix currentmatrix |/PatternMatrix ~ |/PatWidth XStep mpstr -length mul |/PatHeight YStep |/FontType 3 |/Encoding 256 array | 3 string 0 1 -255{Encoding ~ @ 3 ^ cvs cvn put}for !/FontMatrix matrix |/FontBBox BBox | -/BuildChar{! @ ` XStep 0 FontBBox aload ! setcachedevice/PaintProc , E : exec -;}b & E ~ @ 3 -1 $ definefont}b/patterncalc{` : PatternCTM setmatrix -PatternMatrix concat BBox aload ! ! ! + pathbbox ; PatHeight V ceiling 4 1 $ -PatWidth V ceiling 4 1 $ PatHeight V floor 4 1 $ PatWidth V floor 4 1 $ 2 ^ -sub cvi abs ~ 3 ^ sub cvi abs ~ 4 2 $ PatHeight mul ~ PatWidth mul ~ E}b -/patternfill{5 -1 $ @ ` Ji PatternCTM setmatrix PatternMatrix concat 0 2 ^ 2 ^ -M 0 1 mpstr length 1 sub{1 ^ mpstr 3 1 $ put}for ! 2 ^{currentpoint 5 ^{mpstr -S}repeat YStep add M}repeat ! ! ! ! E}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L2 2.0 0 -L2? g{/mp/makepattern , |/hrf{6 eq setAorABC setpattern rectfill}b/hf{ -setAorABC setpattern O}b/hfW{setAorABC setpattern L}b/hs{setAorABC setpattern -K}b/pf{pfprep setpattern O restore N}b/pfW{pfprep setpattern L restore N}b/ps{ -pfprep setpattern K restore N}b}e -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images 2.0 0 -/iw 0 |/ih 0 |/im_save 0 |/s 0 |/polarity 0 |/smoothflag 0 |/mystring 0 |/bpc -0 |/setup1asciiproc{[currentfile mystring/readhexstring cvx/! cvx]cvx bind}b -/setup1binaryproc{[currentfile mystring/readstring cvx/! cvx]cvx bind}b -/setup2asciiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}b -/setup2binaryproc{currentfile/RunLengthDecode filter}b/mycolorspace{colspABC}| -/myimagedict{/myimagedict 10 dict | myimagedict @ `/ImageType 1 | -/MultipleDataSource F | E}b/imageprocarray[/setup1binaryproc/setup1asciiproc -/setup2binaryproc/setup2asciiproc/setup1binarydecodeproc/setup1asciidecodeproc -]|/L2Polarity{{[1 0]}{[0 1]}?}b/Q{/im_save save | imageprocarray ~ get/s ~ , | -L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring ~ -string |/bpc ~ |/ih ~ |/iw ~ |}b/X{/im_save save | imageprocarray ~ get/s ~ , -| L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring -~ string |/bpc ~ |/ih ~ |/iw ~ |}b/Z{im_save restore}b/Y{sgco myimagedict @ ` -/Width iw |/Height ih |/Decode polarity |/ImageMatrix[iw 0 0 ih 0 0]| -/DataSource s |/BitsPerComponent 1 |/Interpolate smoothflag | E imagemask}b -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images_L1 2.0 0 -L2? not g{/setup2asciiproc{[/Level2ImagesError , aload ! T FatalErrorIf}b -/setup2binaryproc/setup2asciiproc , |/L2Polarity{}|/Y{sgco iw ih polarity[iw 0 -0 ih 0 0]s imagemask}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L1 2.0 0 -L2? not g{/testsystemdict{where{systemdict eq{T}{F}?}{F}?}b/c 1 |/colorimage -where{! T}{F}?{/c 0 statusdict `/processcolors where{! ! processcolors}{ -/deviceinfo where{! deviceinfo/Colors known{!{deviceinfo/Colors get}}if}if}? E -| c 0 ne{/colorimage testsystemdict/setcolortransfer testsystemdict -/currentcolortransfer testsystemdict/currentcmykcolor testsystemdict and and -and not{/c 0 |}if}if}if c @ 1 ne ~ @ 3 ne ~ 4 ne and and{/c 0 |}if c 1 eq g{ -/expandbw{expandfactor mul round cvi bwclut ~ get 255 V}b/doclutimage{!/bwclut -~ | bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/expandfactor ~ |[/expandbw ,/exec , @ -currenttransfer ~]cvx bind settransfer iw ih bpc[iw 0 0 ih 0 0]s image}b}e c @ -3 eq ~ 4 eq or g{/nullproc{{}}|/concatutil{/exec , 7 -1 $/exec ,}b/defsubclut{ -1 add getinterval |}b/spconcattransfer{/Dclut ~ |/Cclut ~ |/Bclut ~ |/Aclut ~ -|/ncompute ~ , | currentcolortransfer[{Aclut ncompute}concatutil]cvx[{Bclut -ncompute}concatutil]cvx[{Cclut ncompute}concatutil]cvx[{Dclut ncompute} -concatutil]cvx setcolortransfer}b/setuprgbcluts{/bit3x rgbclut length 3 sub | -/bit1x bit3x 3 idiv |/rclut rgbclut |/gclut rclut 1 bit3x defsubclut/bclut -rclut 2 bit3x defsubclut}b}e c 3 eq g{/3compute{~ bit3x mul round cvi get 255 -V}b/doclutimage{/rgbclut ~ | ! setuprgbcluts/3compute rclut gclut bclut @ -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @]cvx nullproc nullproc -T 3 colorimage}b}e c 4 eq g{/ftoint{1 ~ sub 255 mul round cvi}b/stuffclut{ -cmykindex 3 -1 $ put}b/4compute{~ bit4x mul round cvi get 255 V}b -/invalidcolortable? T |/computecmykclut{setuprgbcluts/bit4x rgbclut length 3 -idiv 4 mul 4 sub |/cmykclut bit4x 4 add string |/cclut cmykclut |/mclut cclut -1 bit4x defsubclut/yclut cclut 2 bit4x defsubclut/kclut cclut 3 bit4x -defsubclut/cmykindex 0 | 0 1 bit1x{@/cmykindex ~ bit1x ~ sub 4 mul | 3 mul @ -rclut ~ get 255 V ~ @ gclut ~ get 255 V ~ bclut ~ get 255 V setrgbcolor -currentcmykcolor ftoint kclut stuffclut ftoint yclut stuffclut ftoint mclut -stuffclut ftoint cclut stuffclut}for}b/doclutimage{/rgbclut ~ | ! -invalidcolortable?{computecmykclut}if/4compute cclut mclut yclut kclut -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @ @]cvx nullproc -nullproc nullproc T 4 colorimage}b}e c 0 eq g{/a{3 mul 3 getinterval -putinterval ~ 3 add ~ 3 copy}b/8lookup/a , |/4lookup{/byte 1 ^ | -4 bitshift a -byte 15 and a}b/2lookup{/byte 1 ^ | -6 bitshift a byte -4 bitshift 3 and a -byte -2 bitshift 3 and a byte 3 and a}b/colorexpand{mystringexp 0 rgbclut 3 -copy 7 -1 $/mylookup , forall ! ! ! ! !}b/createexpandstr{/mystringexp ~ -mystring length mul string |}b/doclutimage{/rgbclut ~ | !/mylookup bpc 8 eq{3 -createexpandstr/8lookup}{bpc 4 eq{6 createexpandstr/4lookup}{12 -createexpandstr/2lookup}?}? , | iw ih bpc[iw 0 0 ih 0 0][s/exec ,/colorexpand -,/exec ,]cvx F 3 colorimage}b}e/colorimage where{! T}{F}? g{/do24image{iw ih 8 -[iw 0 0 ih 0 0]s F 3 colorimage}b}DefIf_El{/rgbtogray{/str ~ |/len str length -|/smlen len 3 idiv |/rstr str |/gstr str 1 len 1 sub getinterval |/bstr str 2 -len 2 sub getinterval | str @ 0 1 smlen 1 sub{@ 3 mul rstr 1 ^ get 0.3 mul -gstr 2 ^ get 0.59 mul add bstr 3 -1 $ get 0.11 mul add round cvi put @}for ! 0 -smlen getinterval}b/do24image{iw ih 8[iw 0 0 ih 0 0][s/exec ,/rgbtogray ,/exec -,]cvx bind image}b}e/doNimage{bpc 24 eq{do24image}{iw ih bpc[iw 0 0 ih 0 0]s -image}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L2 2.0 0 -L2? g{/doclutimage{/rgbclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[ -/Indexed colspABC hival rgbclut]setcolorspace myimagedict @ `/Width iw | -/Height ih |/Decode[0 hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s | -/BitsPerComponent bpc |/Interpolate smoothflag | E image}b/doCMYKclutimage{ -/CMYKclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[/Indexed/DeviceCMYK -hival CMYKclut]setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 -hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent bpc | -/Interpolate smoothflag | E image}b/doNimage{bpc 24 eq{colspABC}{colspA}? -setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode bpc 24 eq{[0 1 0 1 -0 1]}{[0 1]}? |/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent -bpc 24 eq{8}{bpc}? |/Interpolate smoothflag | E image}b/doCMYKimage{ -/DeviceCMYK setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 1 0 -1 0 1 0 1]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent 8 | -/Interpolate smoothflag | E image}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Type3_Hdr 2.0 0 -/GreNewFont{10 dict @ 3 1 $ | @ ` 4 1 $/FontType 3 |/FontMatrix ~ |/FontBBox ~ -|/Encoding 256 array | 0 1 255{Encoding ~/.notdef put}for/CharProcs 257 dict | -CharProcs/.notdef{}put/Metrics 257 dict | Metrics/.notdef 3 -1 $ put/BuildChar -{/char ~ |/fontdict ~ |/charname fontdict/Encoding get char get | fontdict -/Metrics get charname get aload ! setcachedevice fontdict ` Encoding char get -CharProcs ~ get E exec}| E definefont !}|/AddChar{` Encoding 3 1 $ put -CharProcs 3 1 $ put Metrics 3 1 $ put E}| -%%EndResource -%%BeginResource: file Pscript_Win_Type1_Hdr 2.0 0 -/FEbuf 2 string |/FEglyph 3 string |/FE{(G00)FEglyph copy ! 1 ~{@ 16 lt{ -/offset 2 store}{/offset 1 store}? @ 16 FEbuf cvrs FEglyph ~ offset ~ -putinterval 1 ^ ~ FEglyph cvn put}for}bind |/Type1Hdr{11 dict `/FontName ~ | -/PaintType ~ |/FontType 1 |/FontMatrix[1 3 ^ V 0 0 1 6 ^ V 0 0]| !/Encoding -256 array 0 1 255{1 ^ ~/.notdef put}for 3 ^ 3 ^ FE | ! !/FontBBox{0 0 0 0}| & -E currentfile eexec}bind | -%%EndResource -/pp 1 string |/ss 1 string |/rledecodebinary{/DC 0 |/BC 0 |{DC mystring length -ge{exit}if currentfile ss readstring ! 0 get/BC ~ | BC 127 le{/BC BC 1 add | -DC 1 DC BC add 1 sub{mystring ~ currentfile ss readstring ! 0 get put}for}{/BC -257 BC sub | currentfile ss readstring ! 0 get/pp ~ | DC 1 DC BC add 1 sub{ -mystring ~ pp put}for}?/DC DC BC add |}loop mystring}b/rledecodeascii{/DC 0 | -/BC 0 |{DC mystring length ge{exit}if currentfile ss readhexstring ! 0 get/BC -~ | BC 127 le{/BC BC 1 add | DC 1 DC BC add 1 sub{mystring ~ currentfile ss -readhexstring ! 0 get put}for}{/BC 257 BC sub | currentfile ss readhexstring ! -0 get/pp ~ | DC 1 DC BC add 1 sub{mystring ~ pp put}for}?/DC DC BC add |}loop -mystring}b/setup1asciidecodeproc{[/rledecodeascii cvx]cvx bind}b -/setup1binarydecodeproc{[/rledecodebinary cvx]cvx bind}b -%%BeginResource: file Pscript_Win_Compat 2.0 0 -userdict/Pscript_Win_Compat 13 dict dup begin/bd{bind def}bind def/ld{load def -}bd/CB{pop pop pop pop}bind def/B{pop pop pop pop}bind def/$x matrix def/SS{ -/pagesave save def}bind def/RS{/pagesave where{pop pagesave restore}{$x matrix -invertmatrix concat}ifelse}bind def/ANSIVec[0/grave 1/acute 2/circumflex 3 -/tilde 4/macron 5/breve 6/dotaccent 7/dieresis 8/ring 9/cedilla 10 -/hungarumlaut 11/ogonek 12/caron 13/dotlessi 39/quotesingle 96/grave 124/bar -130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135 -/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE -145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150 -/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156 -/oe 159/Ydieresis 160/space 161/exclamdown 164/currency 165/yen 166/brokenbar -167/section 168/dieresis 169/copyright 170/ordfeminine 171/guillemotleft 172 -/logicalnot 173/hyphen 174/registered 175/macron 176/degree 177/plusminus 178 -/twosuperior 179/threesuperior 180/acute 181/mu 182/paragraph 183 -/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 187 -/guillemotright 188/onequarter 189/onehalf 190/threequarters 191/questiondown -192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198 -/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204 -/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve -211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223 -/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229 -/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis -236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242 -/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248 -/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254 -/thorn 255/ydieresis]def currentdict{dup type/operatortype eq{[exch]cvx def}{ -pop pop}ifelse}forall/initialize{currentdict exch begin begin}bind def -/terminate{/@FL where not{pop end end}{pop}ifelse}bind def/suspend/terminate -load def/resume/initialize load def/M/moveto load def end put/Courier findfont -10 scalefont setfont -%%EndResource -end /ProcSet defineresource pop -%%EndResource -%%EndProlog - -%%BeginSetup -Pscript_Win_Compat dup /initialize get exec -[ 0 1.000 -1.000 0 0 0 ] false /Pscript_Win_Driver /ProcSet findresource dup /initialize get exec - - -/mysetup [ 0.240 0 0 -0.240 8.880 592.800 ] | -%%EndSetup - -%%Page: 1 1 -%%BeginPageSetup -userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 2550 3300 rf ; -%%EndPageSetup - -: 0 0 3229 2391 rc -295 920 N M 513 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -808 920 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -808 920 N M 36 -73 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -844 847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -844 847 N M 293 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1137 847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1137 847 N M 37 73 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1174 920 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1174 920 N M 439 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1613 920 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1613 920 N M 37 -73 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1650 847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1650 847 N M 293 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1943 847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1943 847 N M 36 73 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1979 920 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1979 920 N M 659 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2638 920 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2638 920 N M 37 -73 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2675 847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2675 847 N M 293 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2968 847 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2968 847 N M 37 73 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3005 920 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3005 920 N M 146 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 920 N M 0 0 rr : 0 0 0 sco O ; : 2706 1042 405 53 rc 0 0 0 sco %%IncludeFont: Helvetica -(F0) cvn -0.896 - (Helvetica) cvn /Type1 -T -(Helvetica) cvn -mF -(F0_35_48) cvn -F0 -35 0 0 48 0 0 -xMF -F0_35_48 -Ji -2751 1042 M -3.880 0 (steplen)A -; : 1681 1042 405 53 rc 0 0 0 sco F0_35_48 -Ji -1726 1042 M -3.880 0 (steplen)A -; : 2128 1015 495 53 rc 0 0 0 sco F0_35_48 -Ji -2173 1015 M -4.274 0 (stepspace)A -; : 2178 1070 315 53 rc 0 0 0 sco F0_35_48 -Ji -2223 1070 M -3.661 0 (\(min\))A -; : 1249 1015 495 53 rc 0 0 0 sco F0_35_48 -Ji -1294 1015 M -4.274 0 (stepspace)A -; : 1299 1070 315 53 rc 0 0 0 sco F0_35_48 -Ji -1344 1070 M -3.661 0 (\(min\))A -; : 2352 1234 450 53 rc 0 0 0 sco F0_35_48 -Ji -2397 1234 M -3.688 0 (dirsetup)A -; : 2380 1289 315 53 rc 0 0 0 sco F0_35_48 -Ji -2425 1289 M -3.661 0 (\(min\))A -; : 539 1234 450 53 rc 0 0 0 sco F0_35_48 -Ji -584 1234 M -3.688 0 (dirsetup)A -; : 567 1289 315 53 rc 0 0 0 sco F0_35_48 -Ji -612 1289 M -3.661 0 (\(min\))A -; : 2016 1234 405 53 rc 0 0 0 sco F0_35_48 -Ji -2061 1234 M -3.566 0 (dirhold)A -; : 2032 1289 315 53 rc 0 0 0 sco F0_35_48 -Ji -2077 1289 M -3.661 0 (\(min\))A -; : 876 1042 405 53 rc 0 0 0 sco F0_35_48 -Ji -921 1042 M -3.880 0 (steplen)A -; : 0 0 3229 2391 rc -826 939 N M 0 421 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -826 1360 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1155 939 N M 0 219 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1155 1158 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1961 939 N M 0 421 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1961 1360 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2657 939 N M 0 421 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2657 1360 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2986 939 N M 0 219 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2986 1158 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -295 1543 N M 183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -478 1543 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -478 1543 N M 37 -73 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -515 1470 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -295 1470 N M 183 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -478 1470 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -478 1470 N M 37 73 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -515 1543 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -515 1543 N M 1757 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2272 1543 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2272 1543 N M 37 -73 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2309 1470 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2309 1470 N M 842 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1470 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1543 N M -842 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2309 1543 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2309 1543 N M -37 -73 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2272 1470 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2272 1470 N M -1757 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -515 1470 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -496 1451 N M 0 -238 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -496 1213 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2290 1451 N M 0 -238 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2290 1213 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -899 1067 N M -73 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -826 1067 N M 0 0 rr : 0 0 0 sco O ; -826 1067 N M 29 6 - 0 -13 - -29 7 - C : 0 0 0 sco O ; 1 Lw 1 Lc 1 Lj 0 0 0 sco K : 0 0 3229 2391 rc -826 1067 N M 29 6 - 0 0 0 sco K ; -855 1073 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1073 N M 0 -13 - 0 0 0 sco K ; -855 1060 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -855 1060 N M -29 7 - 0 0 0 sco K ; -826 1067 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -570 1287 N M -74 0 - 0 0 0 sco K ; -496 1287 N M 0 0 rr : 0 0 0 sco O ; -496 1287 N M 30 6 - 0 -13 - -30 7 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -496 1287 N M 30 6 - 0 0 0 sco K ; -526 1293 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -526 1293 N M 0 -13 - 0 0 0 sco K ; -526 1280 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -526 1280 N M -30 7 - 0 0 0 sco K ; -496 1287 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -753 1287 N M 73 0 - 0 0 0 sco K ; -826 1287 N M 0 0 rr : 0 0 0 sco O ; -826 1287 N M -29 -7 - 0 13 - 29 -6 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -826 1287 N M -29 -7 - 0 0 0 sco K ; -797 1280 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -797 1280 N M 0 13 - 0 0 0 sco K ; -797 1293 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -797 1293 N M 29 -6 - 0 0 0 sco K ; -826 1287 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1082 1067 N M 73 0 - 0 0 0 sco K ; -1155 1067 N M 0 0 rr : 0 0 0 sco O ; -1155 1067 N M -29 -7 - 0 13 - 29 -6 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1155 1067 N M -29 -7 - 0 0 0 sco K ; -1126 1060 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1126 1060 N M 0 13 - 0 0 0 sco K ; -1126 1073 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1126 1073 N M 29 -6 - 0 0 0 sco K ; -1155 1067 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1284 1067 N M -129 0 - 0 0 0 sco K ; -1155 1067 N M 0 0 rr : 0 0 0 sco O ; -1155 1067 N M 30 6 - 0 -13 - -30 7 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1155 1067 N M 30 6 - 0 0 0 sco K ; -1185 1073 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1185 1073 N M 0 -13 - 0 0 0 sco K ; -1185 1060 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1185 1060 N M -30 7 - 0 0 0 sco K ; -1155 1067 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1503 1067 N M 128 0 - 0 0 0 sco K ; -1631 1067 N M 0 0 rr : 0 0 0 sco O ; -1631 1067 N M -29 -7 - 0 13 - 29 -6 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1631 1067 N M -29 -7 - 0 0 0 sco K ; -1602 1060 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1602 1060 N M 0 13 - 0 0 0 sco K ; -1602 1073 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1602 1073 N M 29 -6 - 0 0 0 sco K ; -1631 1067 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1631 939 N M 0 219 - 0 0 0 sco K ; -1631 1158 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1705 1067 N M -74 0 - 0 0 0 sco K ; -1631 1067 N M 0 0 rr : 0 0 0 sco O ; -1631 1067 N M 30 6 - 0 -13 - -30 7 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1631 1067 N M 30 6 - 0 0 0 sco K ; -1661 1073 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1661 1073 N M 0 -13 - 0 0 0 sco K ; -1661 1060 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1661 1060 N M -30 7 - 0 0 0 sco K ; -1631 1067 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1888 1067 N M 73 0 - 0 0 0 sco K ; -1961 1067 N M 0 0 rr : 0 0 0 sco O ; -1961 1067 N M -29 -7 - 0 13 - 29 -6 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1961 1067 N M -29 -7 - 0 0 0 sco K ; -1932 1060 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1932 1060 N M 0 13 - 0 0 0 sco K ; -1932 1073 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1932 1073 N M 29 -6 - 0 0 0 sco K ; -1961 1067 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2126 1067 N M -165 0 - 0 0 0 sco K ; -1961 1067 N M 0 0 rr : 0 0 0 sco O ; -1961 1067 N M 29 6 - 0 -13 - -29 7 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1961 1067 N M 29 6 - 0 0 0 sco K ; -1990 1073 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1990 1073 N M 0 -13 - 0 0 0 sco K ; -1990 1060 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1990 1060 N M -29 7 - 0 0 0 sco K ; -1961 1067 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2419 1067 N M 238 0 - 0 0 0 sco K ; -2657 1067 N M 0 0 rr : 0 0 0 sco O ; -2657 1067 N M -30 -7 - 0 13 - 30 -6 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2657 1067 N M -30 -7 - 0 0 0 sco K ; -2627 1060 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2627 1060 N M 0 13 - 0 0 0 sco K ; -2627 1073 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2627 1073 N M 30 -6 - 0 0 0 sco K ; -2657 1067 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2730 1067 N M -73 0 - 0 0 0 sco K ; -2657 1067 N M 0 0 rr : 0 0 0 sco O ; -2657 1067 N M 29 6 - 0 -13 - -29 7 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2657 1067 N M 29 6 - 0 0 0 sco K ; -2686 1073 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2686 1073 N M 0 -13 - 0 0 0 sco K ; -2686 1060 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2686 1060 N M -29 7 - 0 0 0 sco K ; -2657 1067 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2913 1067 N M 73 0 - 0 0 0 sco K ; -2986 1067 N M 0 0 rr : 0 0 0 sco O ; -2986 1067 N M -29 -7 - 0 13 - 29 -6 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2986 1067 N M -29 -7 - 0 0 0 sco K ; -2957 1060 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2957 1060 N M 0 13 - 0 0 0 sco K ; -2957 1073 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2957 1073 N M 29 -6 - 0 0 0 sco K ; -2986 1067 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2565 1287 N M 92 0 - 0 0 0 sco K ; -2657 1287 N M 0 0 rr : 0 0 0 sco O ; -2657 1287 N M -30 -7 - 0 13 - 30 -6 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2657 1287 N M -30 -7 - 0 0 0 sco K ; -2627 1280 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2627 1280 N M 0 13 - 0 0 0 sco K ; -2627 1293 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2627 1293 N M 30 -6 - 0 0 0 sco K ; -2657 1287 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2290 1287 N M 92 0 - 0 0 0 sco K ; -2382 1287 N M 0 0 rr : 0 0 0 sco O ; -2290 1287 N M 30 6 - 0 -13 - -30 7 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2290 1287 N M 30 6 - 0 0 0 sco K ; -2320 1293 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2320 1293 N M 0 -13 - 0 0 0 sco K ; -2320 1280 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2320 1280 N M -30 7 - 0 0 0 sco K ; -2290 1287 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2199 1287 N M 91 0 - 0 0 0 sco K ; -2290 1287 N M 0 0 rr : 0 0 0 sco O ; -2290 1287 N M -29 -7 - 0 13 - 29 -6 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -2290 1287 N M -29 -7 - 0 0 0 sco K ; -2261 1280 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2261 1280 N M 0 13 - 0 0 0 sco K ; -2261 1293 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2261 1293 N M 29 -6 - 0 0 0 sco K ; -2290 1287 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2052 1287 N M -91 0 - 0 0 0 sco K ; -1961 1287 N M 0 0 rr : 0 0 0 sco O ; -1961 1287 N M 29 6 - 0 -13 - -29 7 - C : 0 0 0 sco O ; 0 0 0 sco K : 0 0 3229 2391 rc -1961 1287 N M 29 6 - 0 0 0 sco K ; -1990 1293 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1990 1293 N M 0 -13 - 0 0 0 sco K ; -1990 1280 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1990 1280 N M -29 7 - 0 0 0 sco K ; -1961 1287 N M 0 0 rr : 0 0 0 sco O ; : 131 859 270 53 rc 0 0 0 sco F0_35_48 -Ji -176 859 M -3.963 0 (step)A -; : 49 1482 495 53 rc 0 0 0 sco F0_35_48 -Ji -94 1482 M -3.526 0 (direction)A -; -LH -pagesave restore -%%PageTrailer - -%%Trailer -%%DocumentNeededFonts: -%%DocumentSuppliedFonts: -/Pscript_Win_Driver /ProcSet findresource dup /terminate get exec -Pscript_Win_Compat dup /terminate get exec -%%EOF diff --git a/docs/src/hal/images/stepgen-type0.png b/docs/src/hal/images/stepgen-type0.png deleted file mode 100644 index 4a8540c98e6..00000000000 Binary files a/docs/src/hal/images/stepgen-type0.png and /dev/null differ diff --git a/docs/src/hal/images/stepgen-type0.svg b/docs/src/hal/images/stepgen-type0.svg deleted file mode 100755 index d3147bca96b..00000000000 --- a/docs/src/hal/images/stepgen-type0.svg +++ /dev/null @@ -1,636 +0,0 @@ - - - -stepgen-type11-14image/svg+xmlstepgen-type11-1423.11.2011linuxcnc.orgStepgenCopyright 2011 linuxcnc.org - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -step - - - - - - - - -direction - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -stepspace(min) - - - -steplen - - - - - -stepspace(min) - - - -dirsetup(min) - - - -dirhold(min) - - - -dirsetup(min) - - - -steplen - - -steplen - - - \ No newline at end of file diff --git a/docs/src/hal/images/stepgen-type11-14.eps b/docs/src/hal/images/stepgen-type11-14.eps deleted file mode 100644 index 25077e9ee83..00000000000 --- a/docs/src/hal/images/stepgen-type11-14.eps +++ /dev/null @@ -1,3242 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Title: D:\JMK\Drawings\hal-stepgen-type11-14.FC7 -%%BoundingBox: 19 9 593 784 -%%Creator: PSCRIPT.DRV Version 4.0 -%%CreationDate: 06/04/04 23:30:07 -%%Pages: 1 -%%Requirements: None -%%DocumentNeededFonts: (atend) -%%DocumentSuppliedFonts: (atend) -%%LanguageLevel: 1 -%%EndComments - -%%BeginProlog -%%BeginProcSet: Pscript_Res_Emul 1.0 0 -/defineresource where{pop}{userdict begin/defineresource{userdict/Resources 2 -copy known{get begin}{15 dict dup begin put}ifelse exch readonly exch -currentdict 1 index known not{dup 30 dict def}if load 3 -1 roll 2 index put -end}bind readonly def/findresource{userdict/Resources get exch get exch get} -bind readonly def/resourceforall{pop pop pop pop}bind readonly def -/resourcestatus{userdict/Resources 2 copy known{get exch 2 copy known{get exch -known{0 -1 true}{pop pop false}ifelse}{pop pop pop false}ifelse}{pop pop false -}ifelse}bind readonly def end}ifelse -%%EndProcSet -%%BeginResource: procset Pscript_Win_Driver 2.0 0 -/Pscript_Win_Driver 200 dict dup begin -%%BeginResource: file Pscript_FatalError 2.0 0 -/FatalErrorIf{{initgraphics findfont exch scalefont setfont counttomark 3 div -cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def -%%EndResource -/VM? {vmstatus exch sub exch pop gt { [ -(This job requires more memory than is available in this printer.) 100 500 -(Try one or more of the following, and then print again:) 100 485 -(In the PostScript dialog box, click Optimize For Portability.) 115 470 -(In the Device Options dialog box, make sure the Available Printer Memory is accurate.) 115 455 -(Reduce the number of fonts in the document.) 115 440 -(Print the document in parts.) 115 425 -12 /Times-Roman showpage -(%%[ PrinterError: Low Printer VM ]%%) = -true FatalErrorIf}if} bind def -%%BeginResource: file Pscript_Win_Utils 2.0 0 -/|/def load def/,/load load |/~/exch , |/?/ifelse , |/!/pop , |/`/begin , |/^ -/index , |/@/dup , |/+/translate , |/$/roll , |/U/userdict , |/M/moveto , |/- -/rlineto , |/&/currentdict , |/:/gsave , |/;/grestore , |/F/false , |/T/true , -|/N/newpath , |/E/end , |/Ac/arc , |/An/arcn , |/A/ashow , |/D/awidthshow , | -/C/closepath , |/V/div , |/O/eofill , |/L/fill , |/I/lineto , |/-C/rcurveto , -|/-M/rmoveto , |/+S/scale , |/Ji/setfont , |/Lc/setlinecap , |/Lj/setlinejoin -, |/Lw/setlinewidth , |/S/show , |/LH/showpage , |/K/stroke , |/W/widthshow , -|/R/rotate , |/b{bind |}bind |/bd{bind |}bind |/xd{~ |}bd/ld{, |}bd/lw/Lw ld -/lc/Lc ld/lj/Lj ld/sg/setgray ld/L2? F/languagelevel where{! languagelevel 2 -ge{! T}if}if |/g{@ not{U/DefIf_save save put}if U/DefIf_bool 2 ^ put}b -/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e{DefIf_El ! -}b/self & |/reinitialize{[/TextInit/GraphInit/UtilsInit counttomark{@ where{ -self eq}{F}?{cvx exec}{!}?}repeat cleartomark}b/initialize{`{/ADO_mxRot ~ | -/TextInitialised? F | reinitialize E}{U/Pscript_Win_Data 200 dict @ ` put -/ADO_mxRot ~ |/TextInitialised? F | reinitialize}?}b/terminate{!{& self eq{ -exit}{E}?}loop E}b/suspend/terminate , |/resume{` Pscript_Win_Data `}b/snap{ -transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~ itransform}b -/dsnap{dtransform round ~ round ~ idtransform}b<04>cvn{}|/setjn{{statusdict -/jobname known{statusdict/jobname 3 -1 $ put}if}stopped cleartomark}b/solid{[] -0 setdash}b/setdsh{0 setdash}b/colspRefresh{}b/rp{4 2 $ M 1 ^ 0 - 0 ~ - neg 0 --}b/rr{1 ^ 0 - 0 ~ - neg 0 - C}b -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L1 2.0 0 -L2? not g{/rf{N rp L}b/fx{1 1 dtransform @ 0 ge{1 sub 1}{1 add -0.25}? 3 -1 $ -@ 0 ge{1 sub 1}{1 add -0.25}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{ -4 -2 $ snap + +S fx rf}b/rs{N rp C K}b/rc{N rp clip N}b/sg{setgray}b/sco{ -setrgbcolor}b/sgco{{sg}{sco}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L2 2.0 0 -L2? g{/colspA/DeviceGray |/colspABC/DeviceRGB |/setAorABC{{colspA}{colspABC}? -setcolorspace}b/rf/rectfill , |/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5 -}? 3 -1 $ @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ -idtransform}b/BZ{4 -2 $ snap + +S fx rf}b/rs/rectstroke , |/rc/rectclip , |/sg -{@ @ setcolor}b/sco{setcolor}b/colspRefresh{colspABC setcolorspace}b/sgco{{sg -}{sco}?}b/UtilsInit{F setglobal}b/definecolorrendering{/ColorRendering -defineresource !}b/findcolorrendering{@/ColorRendering resourcestatus{! ! -/ColorRendering findresource T}{! F}?}b/selectcolorrendering{@/ColorRendering -resourcestatus{! !/ColorRendering}{!/DefaultColorRendering/ColorRendering}? -findresource setcolorrendering}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Encoding 2.0 0 -/bullets{{/bullet}repeat}b/ANSIEncoding[/grave/acute/circumflex/tilde/macron -/breve/dotaccent/dieresis/ring/cedilla/hungarumlaut/ogonek/caron/dotlessi 18 -bullets StandardEncoding 32 95 getinterval aload ! 3 bullets/quotesinglbase -/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron -/guilsinglleft/OE 4 bullets/quoteleft/quoteright/quotedblleft/quotedblright -/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 2 bullets -/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section -/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered -/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph -/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter -/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis -/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute -/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls -/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute -/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve -/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex -/udieresis/yacute/thorn/ydieresis]| ANSIEncoding @ 39/quotesingle put 96/grave -put/ANSIEncodingOld ANSIEncoding 256 array copy | ANSIEncodingOld @[138 153 -154 169 172 174 177 178 179 181 185 188 189 190 208 215 221 222 240 247 253 -254]{/bullet put @}forall 166/bar put 176/ring put -%%EndResource -%%BeginResource: file Pscript_Win_Text 2.0 0 -/TextInit{TextInitialised? not{/Pscript_Windows_Font & |/TextInitialised? T | -/fM[1 0 0 -1 0 0]|/mFM matrix |/iMat[1 0 0.212557 neg 1 0 0]|}if}b/xUP null | -/yUP null |/uW null |/xSP null |/ySP null |/sW null |/copyfont{1 ^ length add -dict `{1 ^/FID ne{|}{! !}?}forall & E}b/rF{3 copyfont @ `/Encoding -ANSIEncoding &/CharStrings known{CharStrings/Eth known not{! ANSIEncodingOld} -if}if | E}b/mF{findfont ~{@/Encoding get @ StandardEncoding eq{! T}{{ -ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get -StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{rF}{3 copyfont}? ` -/OrigFontType ~ |/OrigFontName ~ | & E 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 -put fM makefont Pscript_Windows_Font 3 1 $ put}b/xF{scalefont -Pscript_Windows_Font 3 1 $ put}b/xMF{mFM astore makefont Pscript_Windows_Font -3 1 $ put}b/xF2/scalefont , |/xMF2{mFM astore makefont}b/sLT{: Lw -M -currentpoint snap M 0 - 0 Lc K ;}b/sSU{N/uW ~ |/yUP ~ |/xUP ~ |}b/sU{xUP yUP -uW sLT}b/sST{N/sW ~ |/ySP ~ |/xSP ~ |}b/sT{xSP ySP sW sLT}b/sR{: + R 0 0 M}b -/sRxy{: matrix astore concat 0 0 M}b/eR/; , | -%%EndResource -%%BeginResource: file Pscript_Win_Text_Bold 2.0 0 -/mBF{@ 4 copyfont `/FontName ~ |/OrigFontType ~ |/OrigFontName ~ | 0 -FontMatrix idtransform ! &/PaintType known{PaintType 0 eq{/PaintType 2 | -/StrokeWidth ~ |}{PaintType 1 eq PaintType 2 eq or PaintType 3 eq or & -/StrokeWidth known and{StrokeWidth add/StrokeWidth ~ |}{!}?}?}{!}? @ & E -definefont Pscript_Windows_Font 3 1 $ put}b/xBF{Pscript_Windows_Font ` 1 ^ -/FontName get 1 ^ scalefont 3 1 $ scalefont 2 copy ~ | ~ ! | E}b/xMBF{mFM -astore Pscript_Windows_Font ` 1 ^/FontName get 1 ^ makefont 3 1 $ makefont 2 -copy ~ | ~ ! | E}b/xBF2{/sB0 ~ mBF/sB1 sB0 3 -1 $ xBF sB1}b/xMBF2{/sB0 ~ mBF -mFM astore/sB1 sB0 3 -1 $ xMBF sB1}b/sB{: Pscript_Windows_Font currentfont get -Ji @ S ; S}b/asB{: Pscript_Windows_Font currentfont get Ji 3 copy A ; A}b/wsB{ -: Pscript_Windows_Font currentfont get Ji 4 copy W ; W}b/awsB{: -Pscript_Windows_Font currentfont get Ji 6 copy D ; D}b/sBT3{: @ S ; 1 1 -M S}b -/asBT3{: 3 copy A ; 1 1 -M A}b/wsBT3{: 4 copy W ; 1 1 -M W}b/awsBT3{: 6 copy D -; 1 1 -M D}b/mIF{iMat 4 3 -1 $ put 2 copyfont `/OrigFontType ~ |/OrigFontName -~ | @ & E definefont iMat makefont Pscript_Windows_Font 3 1 $ put}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics 2.0 0 -/SavedCTM null |/CTMsave{/SavedCTM SavedCTM currentmatrix |}b/CTMrestore{ -SavedCTM setmatrix}b/mp null |/ADO_mxRot null |/GDIHMatrix null | -/GDIHPatternDict 22 dict | GDIHPatternDict `/PatternType 1 |/PaintType 2 | -/Reps L2?{1}{5}? |/XStep 8 Reps mul |/YStep XStep |/BBox[0 0 XStep YStep]| -/TilingType 1 |/PaintProc{` 1 Lw[]0 setdash PaintData , exec E}b/FGnd null | -/BGnd null |/HS_Horizontal{horiz}b/HS_Vertical{vert}b/HS_FDiagonal{fdiag}b -/HS_BDiagonal{biag}b/HS_Cross{horiz vert}b/HS_DiagCross{fdiag biag}b/MaxXYStep -XStep YStep gt{XStep}{YStep}? |/horiz{Reps{0 4 M XStep 0 - 0 8 +}repeat 0 -8 -Reps mul + K}b/vert{Reps{4 0 M 0 YStep - 8 0 +}repeat 0 -8 Reps mul + K}b/biag -{Reps{0 0 M MaxXYStep @ - 0 YStep neg M MaxXYStep @ - 0 8 +}repeat 0 -8 Reps -mul + 0 YStep M 8 8 - K}b/fdiag{Reps{0 0 M MaxXYStep @ neg - 0 YStep M -MaxXYStep @ neg - 0 8 +}repeat 0 -8 Reps mul + MaxXYStep @ M 8 -8 - K}b E -/makehatch{GDIHPatternDict/PaintData 3 -1 $ put CTMsave GDIHMatrix setmatrix -GDIHPatternDict matrix mp CTMrestore ~ U ~ 2 ^ put}b/h0{/h0/HS_Horizontal -makehatch}b/h1{/h1/HS_Vertical makehatch}b/h2{/h2/HS_FDiagonal makehatch}b/h3{ -/h3/HS_BDiagonal makehatch}b/h4{/h4/HS_Cross makehatch}b/h5{/h5/HS_DiagCross -makehatch}b/GDIBWPatternDict 17 dict @ `/PatternType 1 |/PaintType L2?{1}{2}? -|/RepsV L2?{1}{6}? |/RepsH L2?{1}{5}? |/BBox[0 0 RepsH 1]|/TilingType 1 | -/XStep 1 |/YStep 1 |/Height 8 RepsV mul |/Width 8 |/mx[Width 0 0 Height neg 0 -Height]|/FGnd null |/BGnd null |/SetBGndFGnd L2?{{BGnd null ne{BGnd aload ! -sgco BBox aload ! 2 ^ sub ~ 3 ^ sub ~ rf}if FGnd null ne{FGnd aload ! sgco}if} -}{{}}? b/PaintProc{` SetBGndFGnd RepsH{Width Height F mx PaintData imagemask -Width 0 +}repeat E}b E |/GDIBWPatternMx null |/pfprep{save 4 1 $ -/PatternOfTheDay 4 1 $ GDIBWPatternDict `/PaintData ~ |/BGnd ~ |/FGnd ~ | E -CTMsave GDIBWPatternMx setmatrix GDIBWPatternDict matrix mp CTMrestore ~ !}b -/hrf null |/prf{pfprep ~ 6 1 $ 5 hrf restore}b/GraphInit{GDIHMatrix null eq{ -/SavedCTM matrix | : ADO_mxRot concat 0 0 snap + : 0.48 @ GDIHPatternDict ` -YStep mul ~ XStep mul ~ dsnap YStep V ~ XStep V ~ E +S/GDIHMatrix matrix -currentmatrix readonly | ; : 0.24 -0.24 +S GDIBWPatternDict ` Width Height E -dsnap +S/GDIBWPatternMx matrix currentmatrix readonly | ; ;}if}b/cirp{360 0 An -C}b/ellp{CTMsave + +S 0.5 0 M 0 0 0.5 360 0 An C CTMrestore}b/rrp{/rad ~ |/y2 -~ |/x2 ~ |/y1 ~ |/x1 ~ | x2 x1 add 2 V y1 M x1 y1 x1 y2 rad arct x1 y2 x2 y2 -rad arct x2 y2 x2 y1 rad arct x2 y1 x1 y1 rad arct C}b/RRp{CTMsave + +S/dyS ~ -|/dxS ~ | dxS 2 V 0 M 0 0 0 dyS 0.5 arct 0 dyS dxS dyS 0.5 arct dxS dyS dxS 0 -0.5 arct dxS 0 0 0 0.5 arct C CTMrestore}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L1 2.0 0 -L2? not g{/arct{arcto ! ! ! !}b/GDIpattfill{@ ` BGnd null ne PaintType 2 eq -and{: BGnd aload ! sgco fEOFill{O}{L}? ; FGnd aload ! U/fGray 2 ^ put{2}{4}? --1 $}if E @ patterncalc : 4 ^/PaintType get 2 eq{fGray{6 -1 $ sg}{8 -3 $ sco}? -}if fEOFill{eoclip}{clip}? N patternfill ; N}b/hrf{/fGray 1 ^ 6 eq | -4 $ N rp -C/fEOFill F | GDIpattfill}b/hfMain{/fEOFill ~ |/fGray ~ | GDIpattfill}b/hf{T -hfMain}b/hfW{F hfMain}b/hs{currentpoint strokepath M hfW}b/pfMain{/fEOFill ~ | -pfprep GDIpattfill restore N}b/pf{T pfMain}b/pfW{F pfMain}b/ps{currentpoint -strokepath M pfW}b/mpstr 1 string |/mp{~ @ length 12 add dict copy ` -/PatternCTM matrix currentmatrix |/PatternMatrix ~ |/PatWidth XStep mpstr -length mul |/PatHeight YStep |/FontType 3 |/Encoding 256 array | 3 string 0 1 -255{Encoding ~ @ 3 ^ cvs cvn put}for !/FontMatrix matrix |/FontBBox BBox | -/BuildChar{! @ ` XStep 0 FontBBox aload ! setcachedevice/PaintProc , E : exec -;}b & E ~ @ 3 -1 $ definefont}b/patterncalc{` : PatternCTM setmatrix -PatternMatrix concat BBox aload ! ! ! + pathbbox ; PatHeight V ceiling 4 1 $ -PatWidth V ceiling 4 1 $ PatHeight V floor 4 1 $ PatWidth V floor 4 1 $ 2 ^ -sub cvi abs ~ 3 ^ sub cvi abs ~ 4 2 $ PatHeight mul ~ PatWidth mul ~ E}b -/patternfill{5 -1 $ @ ` Ji PatternCTM setmatrix PatternMatrix concat 0 2 ^ 2 ^ -M 0 1 mpstr length 1 sub{1 ^ mpstr 3 1 $ put}for ! 2 ^{currentpoint 5 ^{mpstr -S}repeat YStep add M}repeat ! ! ! ! E}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L2 2.0 0 -L2? g{/mp/makepattern , |/hrf{6 eq setAorABC setpattern rectfill}b/hf{ -setAorABC setpattern O}b/hfW{setAorABC setpattern L}b/hs{setAorABC setpattern -K}b/pf{pfprep setpattern O restore N}b/pfW{pfprep setpattern L restore N}b/ps{ -pfprep setpattern K restore N}b}e -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images 2.0 0 -/iw 0 |/ih 0 |/im_save 0 |/s 0 |/polarity 0 |/smoothflag 0 |/mystring 0 |/bpc -0 |/setup1asciiproc{[currentfile mystring/readhexstring cvx/! cvx]cvx bind}b -/setup1binaryproc{[currentfile mystring/readstring cvx/! cvx]cvx bind}b -/setup2asciiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}b -/setup2binaryproc{currentfile/RunLengthDecode filter}b/mycolorspace{colspABC}| -/myimagedict{/myimagedict 10 dict | myimagedict @ `/ImageType 1 | -/MultipleDataSource F | E}b/imageprocarray[/setup1binaryproc/setup1asciiproc -/setup2binaryproc/setup2asciiproc/setup1binarydecodeproc/setup1asciidecodeproc -]|/L2Polarity{{[1 0]}{[0 1]}?}b/Q{/im_save save | imageprocarray ~ get/s ~ , | -L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring ~ -string |/bpc ~ |/ih ~ |/iw ~ |}b/X{/im_save save | imageprocarray ~ get/s ~ , -| L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring -~ string |/bpc ~ |/ih ~ |/iw ~ |}b/Z{im_save restore}b/Y{sgco myimagedict @ ` -/Width iw |/Height ih |/Decode polarity |/ImageMatrix[iw 0 0 ih 0 0]| -/DataSource s |/BitsPerComponent 1 |/Interpolate smoothflag | E imagemask}b -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images_L1 2.0 0 -L2? not g{/setup2asciiproc{[/Level2ImagesError , aload ! T FatalErrorIf}b -/setup2binaryproc/setup2asciiproc , |/L2Polarity{}|/Y{sgco iw ih polarity[iw 0 -0 ih 0 0]s imagemask}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L1 2.0 0 -L2? not g{/testsystemdict{where{systemdict eq{T}{F}?}{F}?}b/c 1 |/colorimage -where{! T}{F}?{/c 0 statusdict `/processcolors where{! ! processcolors}{ -/deviceinfo where{! deviceinfo/Colors known{!{deviceinfo/Colors get}}if}if}? E -| c 0 ne{/colorimage testsystemdict/setcolortransfer testsystemdict -/currentcolortransfer testsystemdict/currentcmykcolor testsystemdict and and -and not{/c 0 |}if}if}if c @ 1 ne ~ @ 3 ne ~ 4 ne and and{/c 0 |}if c 1 eq g{ -/expandbw{expandfactor mul round cvi bwclut ~ get 255 V}b/doclutimage{!/bwclut -~ | bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/expandfactor ~ |[/expandbw ,/exec , @ -currenttransfer ~]cvx bind settransfer iw ih bpc[iw 0 0 ih 0 0]s image}b}e c @ -3 eq ~ 4 eq or g{/nullproc{{}}|/concatutil{/exec , 7 -1 $/exec ,}b/defsubclut{ -1 add getinterval |}b/spconcattransfer{/Dclut ~ |/Cclut ~ |/Bclut ~ |/Aclut ~ -|/ncompute ~ , | currentcolortransfer[{Aclut ncompute}concatutil]cvx[{Bclut -ncompute}concatutil]cvx[{Cclut ncompute}concatutil]cvx[{Dclut ncompute} -concatutil]cvx setcolortransfer}b/setuprgbcluts{/bit3x rgbclut length 3 sub | -/bit1x bit3x 3 idiv |/rclut rgbclut |/gclut rclut 1 bit3x defsubclut/bclut -rclut 2 bit3x defsubclut}b}e c 3 eq g{/3compute{~ bit3x mul round cvi get 255 -V}b/doclutimage{/rgbclut ~ | ! setuprgbcluts/3compute rclut gclut bclut @ -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @]cvx nullproc nullproc -T 3 colorimage}b}e c 4 eq g{/ftoint{1 ~ sub 255 mul round cvi}b/stuffclut{ -cmykindex 3 -1 $ put}b/4compute{~ bit4x mul round cvi get 255 V}b -/invalidcolortable? T |/computecmykclut{setuprgbcluts/bit4x rgbclut length 3 -idiv 4 mul 4 sub |/cmykclut bit4x 4 add string |/cclut cmykclut |/mclut cclut -1 bit4x defsubclut/yclut cclut 2 bit4x defsubclut/kclut cclut 3 bit4x -defsubclut/cmykindex 0 | 0 1 bit1x{@/cmykindex ~ bit1x ~ sub 4 mul | 3 mul @ -rclut ~ get 255 V ~ @ gclut ~ get 255 V ~ bclut ~ get 255 V setrgbcolor -currentcmykcolor ftoint kclut stuffclut ftoint yclut stuffclut ftoint mclut -stuffclut ftoint cclut stuffclut}for}b/doclutimage{/rgbclut ~ | ! -invalidcolortable?{computecmykclut}if/4compute cclut mclut yclut kclut -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @ @]cvx nullproc -nullproc nullproc T 4 colorimage}b}e c 0 eq g{/a{3 mul 3 getinterval -putinterval ~ 3 add ~ 3 copy}b/8lookup/a , |/4lookup{/byte 1 ^ | -4 bitshift a -byte 15 and a}b/2lookup{/byte 1 ^ | -6 bitshift a byte -4 bitshift 3 and a -byte -2 bitshift 3 and a byte 3 and a}b/colorexpand{mystringexp 0 rgbclut 3 -copy 7 -1 $/mylookup , forall ! ! ! ! !}b/createexpandstr{/mystringexp ~ -mystring length mul string |}b/doclutimage{/rgbclut ~ | !/mylookup bpc 8 eq{3 -createexpandstr/8lookup}{bpc 4 eq{6 createexpandstr/4lookup}{12 -createexpandstr/2lookup}?}? , | iw ih bpc[iw 0 0 ih 0 0][s/exec ,/colorexpand -,/exec ,]cvx F 3 colorimage}b}e/colorimage where{! T}{F}? g{/do24image{iw ih 8 -[iw 0 0 ih 0 0]s F 3 colorimage}b}DefIf_El{/rgbtogray{/str ~ |/len str length -|/smlen len 3 idiv |/rstr str |/gstr str 1 len 1 sub getinterval |/bstr str 2 -len 2 sub getinterval | str @ 0 1 smlen 1 sub{@ 3 mul rstr 1 ^ get 0.3 mul -gstr 2 ^ get 0.59 mul add bstr 3 -1 $ get 0.11 mul add round cvi put @}for ! 0 -smlen getinterval}b/do24image{iw ih 8[iw 0 0 ih 0 0][s/exec ,/rgbtogray ,/exec -,]cvx bind image}b}e/doNimage{bpc 24 eq{do24image}{iw ih bpc[iw 0 0 ih 0 0]s -image}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L2 2.0 0 -L2? g{/doclutimage{/rgbclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[ -/Indexed colspABC hival rgbclut]setcolorspace myimagedict @ `/Width iw | -/Height ih |/Decode[0 hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s | -/BitsPerComponent bpc |/Interpolate smoothflag | E image}b/doCMYKclutimage{ -/CMYKclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[/Indexed/DeviceCMYK -hival CMYKclut]setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 -hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent bpc | -/Interpolate smoothflag | E image}b/doNimage{bpc 24 eq{colspABC}{colspA}? -setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode bpc 24 eq{[0 1 0 1 -0 1]}{[0 1]}? |/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent -bpc 24 eq{8}{bpc}? |/Interpolate smoothflag | E image}b/doCMYKimage{ -/DeviceCMYK setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 1 0 -1 0 1 0 1]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent 8 | -/Interpolate smoothflag | E image}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Type3_Hdr 2.0 0 -/GreNewFont{10 dict @ 3 1 $ | @ ` 4 1 $/FontType 3 |/FontMatrix ~ |/FontBBox ~ -|/Encoding 256 array | 0 1 255{Encoding ~/.notdef put}for/CharProcs 257 dict | -CharProcs/.notdef{}put/Metrics 257 dict | Metrics/.notdef 3 -1 $ put/BuildChar -{/char ~ |/fontdict ~ |/charname fontdict/Encoding get char get | fontdict -/Metrics get charname get aload ! setcachedevice fontdict ` Encoding char get -CharProcs ~ get E exec}| E definefont !}|/AddChar{` Encoding 3 1 $ put -CharProcs 3 1 $ put Metrics 3 1 $ put E}| -%%EndResource -%%BeginResource: file Pscript_Win_Type1_Hdr 2.0 0 -/FEbuf 2 string |/FEglyph 3 string |/FE{(G00)FEglyph copy ! 1 ~{@ 16 lt{ -/offset 2 store}{/offset 1 store}? @ 16 FEbuf cvrs FEglyph ~ offset ~ -putinterval 1 ^ ~ FEglyph cvn put}for}bind |/Type1Hdr{11 dict `/FontName ~ | -/PaintType ~ |/FontType 1 |/FontMatrix[1 3 ^ V 0 0 1 6 ^ V 0 0]| !/Encoding -256 array 0 1 255{1 ^ ~/.notdef put}for 3 ^ 3 ^ FE | ! !/FontBBox{0 0 0 0}| & -E currentfile eexec}bind | -%%EndResource -/pp 1 string |/ss 1 string |/rledecodebinary{/DC 0 |/BC 0 |{DC mystring length -ge{exit}if currentfile ss readstring ! 0 get/BC ~ | BC 127 le{/BC BC 1 add | -DC 1 DC BC add 1 sub{mystring ~ currentfile ss readstring ! 0 get put}for}{/BC -257 BC sub | currentfile ss readstring ! 0 get/pp ~ | DC 1 DC BC add 1 sub{ -mystring ~ pp put}for}?/DC DC BC add |}loop mystring}b/rledecodeascii{/DC 0 | -/BC 0 |{DC mystring length ge{exit}if currentfile ss readhexstring ! 0 get/BC -~ | BC 127 le{/BC BC 1 add | DC 1 DC BC add 1 sub{mystring ~ currentfile ss -readhexstring ! 0 get put}for}{/BC 257 BC sub | currentfile ss readhexstring ! -0 get/pp ~ | DC 1 DC BC add 1 sub{mystring ~ pp put}for}?/DC DC BC add |}loop -mystring}b/setup1asciidecodeproc{[/rledecodeascii cvx]cvx bind}b -/setup1binarydecodeproc{[/rledecodebinary cvx]cvx bind}b -%%BeginResource: file Pscript_Win_Compat 2.0 0 -userdict/Pscript_Win_Compat 13 dict dup begin/bd{bind def}bind def/ld{load def -}bd/CB{pop pop pop pop}bind def/B{pop pop pop pop}bind def/$x matrix def/SS{ -/pagesave save def}bind def/RS{/pagesave where{pop pagesave restore}{$x matrix -invertmatrix concat}ifelse}bind def/ANSIVec[0/grave 1/acute 2/circumflex 3 -/tilde 4/macron 5/breve 6/dotaccent 7/dieresis 8/ring 9/cedilla 10 -/hungarumlaut 11/ogonek 12/caron 13/dotlessi 39/quotesingle 96/grave 124/bar -130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135 -/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE -145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150 -/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156 -/oe 159/Ydieresis 160/space 161/exclamdown 164/currency 165/yen 166/brokenbar -167/section 168/dieresis 169/copyright 170/ordfeminine 171/guillemotleft 172 -/logicalnot 173/hyphen 174/registered 175/macron 176/degree 177/plusminus 178 -/twosuperior 179/threesuperior 180/acute 181/mu 182/paragraph 183 -/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 187 -/guillemotright 188/onequarter 189/onehalf 190/threequarters 191/questiondown -192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198 -/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204 -/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve -211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223 -/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229 -/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis -236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242 -/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248 -/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254 -/thorn 255/ydieresis]def currentdict{dup type/operatortype eq{[exch]cvx def}{ -pop pop}ifelse}forall/initialize{currentdict exch begin begin}bind def -/terminate{/@FL where not{pop end end}{pop}ifelse}bind def/suspend/terminate -load def/resume/initialize load def/M/moveto load def end put/Courier findfont -10 scalefont setfont -%%EndResource -end /ProcSet defineresource pop -%%EndResource -%%EndProlog - -%%BeginSetup -Pscript_Win_Compat dup /initialize get exec -[ 1.000 0 0 1.000 0 0 ] false /Pscript_Win_Driver /ProcSet findresource dup /initialize get exec - - -/mysetup [ 0.240 0 0 -0.240 18.960 782.880 ] | -%%EndSetup - -%%Page: 1 1 -%%BeginPageSetup -userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 2550 3300 rf ; -%%EndPageSetup - -: 1297 102 111 44 rc 0 0 0 sco %%IncludeFont: Helvetica -(F0) cvn -0.923 - (Helvetica) cvn /Type1 -T -(Helvetica) cvn -mF -(F0_30_39) cvn -F0 -30 0 0 39 0 0 -xMF -F0_30_39 -Ji -1334 102 M -2.320 0 (0)A -; : 1297 889 111 44 rc 0 0 0 sco F0_30_39 -Ji -1334 889 M -2.320 0 (0)A -; : 540 102 111 44 rc 0 0 0 sco F0_30_39 -Ji -577 102 M -2.320 0 (0)A -; : 540 889 111 44 rc 0 0 0 sco F0_30_39 -Ji -577 889 M -2.320 0 (0)A -; : 540 2464 111 44 rc 0 0 0 sco F0_30_39 -Ji -577 2464 M -2.320 0 (0)A -; : 540 1676 111 44 rc 0 0 0 sco F0_30_39 -Ji -577 1676 M -2.320 0 (0)A -; : 1448 102 111 44 rc 0 0 0 sco F0_30_39 -Ji -1485 102 M -2.320 0 (1)A -; : 1448 889 111 44 rc 0 0 0 sco F0_30_39 -Ji -1485 889 M -2.320 0 (1)A -; : 691 102 111 44 rc 0 0 0 sco F0_30_39 -Ji -728 102 M -2.320 0 (1)A -; : 691 889 111 44 rc 0 0 0 sco F0_30_39 -Ji -728 889 M -2.320 0 (1)A -; : 691 2464 111 44 rc 0 0 0 sco F0_30_39 -Ji -728 2464 M -2.320 0 (1)A -; : 691 1676 111 44 rc 0 0 0 sco F0_30_39 -Ji -728 1676 M -2.320 0 (1)A -; : 1600 102 111 44 rc 0 0 0 sco F0_30_39 -Ji -1637 102 M -2.320 0 (2)A -; : 1600 889 111 44 rc 0 0 0 sco F0_30_39 -Ji -1637 889 M -2.320 0 (2)A -; : 843 102 111 44 rc 0 0 0 sco F0_30_39 -Ji -880 102 M -2.320 0 (2)A -; : 843 889 111 44 rc 0 0 0 sco F0_30_39 -Ji -880 889 M -2.320 0 (2)A -; : 843 2464 111 44 rc 0 0 0 sco F0_30_39 -Ji -880 2464 M -2.320 0 (2)A -; : 843 1676 111 44 rc 0 0 0 sco F0_30_39 -Ji -880 1676 M -2.320 0 (2)A -; : 1903 102 111 44 rc 0 0 0 sco F0_30_39 -Ji -1940 102 M -2.320 0 (4)A -; : 1903 889 111 44 rc 0 0 0 sco F0_30_39 -Ji -1940 889 M -2.320 0 (4)A -; : 1145 102 111 44 rc 0 0 0 sco F0_30_39 -Ji -1182 102 M -2.320 0 (4)A -; : 1145 889 111 44 rc 0 0 0 sco F0_30_39 -Ji -1182 889 M -2.320 0 (4)A -; : 1145 2464 111 44 rc 0 0 0 sco F0_30_39 -Ji -1182 2464 M -2.320 0 (4)A -; : 1145 1676 111 44 rc 0 0 0 sco F0_30_39 -Ji -1182 1676 M -2.320 0 (4)A -; : 1751 102 111 44 rc 0 0 0 sco F0_30_39 -Ji -1788 102 M -2.320 0 (3)A -; : 1751 889 111 44 rc 0 0 0 sco F0_30_39 -Ji -1788 889 M -2.320 0 (3)A -; : 994 102 111 44 rc 0 0 0 sco F0_30_39 -Ji -1031 102 M -2.320 0 (3)A -; : 994 889 111 44 rc 0 0 0 sco F0_30_39 -Ji -1031 889 M -2.320 0 (3)A -; : 994 2464 111 44 rc 0 0 0 sco F0_30_39 -Ji -1031 2464 M -2.320 0 (3)A -; : 994 1676 111 44 rc 0 0 0 sco F0_30_39 -Ji -1031 1676 M -2.320 0 (3)A -; : 1297 2464 111 44 rc 0 0 0 sco F0_30_39 -Ji -1334 2464 M -2.320 0 (5)A -; : 1297 1676 111 44 rc 0 0 0 sco F0_30_39 -Ji -1334 1676 M -2.320 0 (5)A -; : 1448 2464 111 44 rc 0 0 0 sco F0_30_39 -Ji -1485 2464 M -2.320 0 (6)A -; : 1448 1676 111 44 rc 0 0 0 sco F0_30_39 -Ji -1485 1676 M -2.320 0 (6)A -; : 1600 2464 111 44 rc 0 0 0 sco F0_30_39 -Ji -1637 2464 M -2.320 0 (7)A -; : 1600 1676 111 44 rc 0 0 0 sco F0_30_39 -Ji -1637 1676 M -2.320 0 (7)A -; : 1751 2464 111 44 rc 0 0 0 sco F0_30_39 -Ji -1788 2464 M -2.320 0 (8)A -; : 1751 1676 111 44 rc 0 0 0 sco F0_30_39 -Ji -1788 1676 M -2.320 0 (8)A -; : 1903 2464 111 44 rc 0 0 0 sco F0_30_39 -Ji -1940 2464 M -2.320 0 (9)A -; : 1903 1676 111 44 rc 0 0 0 sco F0_30_39 -Ji -1940 1676 M -2.320 0 (9)A -; : 2054 102 111 44 rc 0 0 0 sco F0_30_39 -Ji -2091 102 M -2.320 0 (0)A -; : 2054 889 111 44 rc 0 0 0 sco F0_30_39 -Ji -2091 889 M -2.320 0 (0)A -; : 2054 2464 111 44 rc 0 0 0 sco F0_30_39 -Ji -2091 2464 M -2.320 0 (0)A -; : 2054 1676 111 44 rc 0 0 0 sco F0_30_39 -Ji -2091 1676 M -2.320 0 (0)A -; : 158 102 518 44 rc 0 0 0 sco F0_30_39 -Ji -195 102 M -2.603 0 (STEP TYPE 11)A -; : 158 889 518 44 rc 0 0 0 sco F0_30_39 -Ji -195 889 M -2.603 0 (STEP TYPE 12)A -; : 158 2464 518 44 rc 0 0 0 sco F0_30_39 -Ji -195 2464 M -2.603 0 (STEP TYPE 14)A -; : 158 1676 518 44 rc 0 0 0 sco F0_30_39 -Ji -195 1676 M -2.603 0 (STEP TYPE 13)A -; : 216 223 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 223 M -2.469 0 (phase-A)A -; : 216 1010 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 1010 M -2.469 0 (phase-A)A -; : 216 2585 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 2585 M -2.469 0 (phase-A)A -; : 216 1798 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 1798 M -2.469 0 (phase-A)A -; : 216 344 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 344 M -2.469 0 (phase-B)A -; : 216 1131 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 1131 M -2.469 0 (phase-B)A -; : 216 2706 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 2706 M -2.469 0 (phase-B)A -; : 216 1919 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 1919 M -2.469 0 (phase-B)A -; : 216 465 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 465 M -2.519 0 (phase-C)A -; : 216 1252 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 1252 M -2.519 0 (phase-C)A -; : 216 2827 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 2827 M -2.519 0 (phase-C)A -; : 216 2040 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 2040 M -2.519 0 (phase-C)A -; : 216 586 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 586 M -2.519 0 (phase-D)A -; : 216 1374 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 1374 M -2.519 0 (phase-D)A -; : 216 2948 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 2948 M -2.519 0 (phase-D)A -; : 216 2161 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 2161 M -2.519 0 (phase-D)A -; : 216 707 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 707 M -2.469 0 (phase-E)A -; : 216 1495 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 1495 M -2.469 0 (phase-E)A -; : 216 3070 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 3070 M -2.469 0 (phase-E)A -; : 216 2282 333 44 rc 0 0 0 sco F0_30_39 -Ji -253 2282 M -2.469 0 (phase-E)A -; : 0 0 2391 3229 rc -813 77 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 85 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 100 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 115 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 130 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 145 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 160 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 175 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 190 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 205 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 220 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 235 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 250 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 280 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 295 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 310 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 325 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 340 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 355 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 370 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 385 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 400 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 415 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 430 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 460 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 490 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 520 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 535 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 550 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 565 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 580 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 595 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 610 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 625 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 640 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 655 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 670 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 685 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 700 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 715 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 730 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 760 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 775 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 864 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 887 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 902 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 917 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 932 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 947 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 977 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 992 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1007 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1037 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1052 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1067 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1082 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1097 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1112 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1127 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1142 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1157 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1187 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1217 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1232 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1247 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1262 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1277 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1292 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1307 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1322 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1337 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1352 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1367 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1397 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1412 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1427 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1442 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1457 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1472 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1487 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1502 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1517 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1532 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1547 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1562 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2439 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2462 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2492 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2507 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2522 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2537 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2552 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2582 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2597 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2612 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2642 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2657 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2672 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2702 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2717 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2732 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2747 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2762 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2792 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2822 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2837 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2852 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2882 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2897 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2912 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2942 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2957 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2972 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2987 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 3002 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 3017 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 3032 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 3047 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 3062 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 3077 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 3092 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 3107 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 3122 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 3137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1652 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1674 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1689 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1704 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1719 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1734 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1749 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1764 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1794 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1809 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1824 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1854 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1884 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1899 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1914 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1929 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1944 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1959 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 1974 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 1989 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2004 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2034 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2049 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2064 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2094 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2124 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2139 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2154 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2169 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2184 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2199 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2214 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2229 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2244 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2259 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2274 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2304 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2319 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -813 2334 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -813 2349 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 77 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 85 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 100 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 115 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 130 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 145 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 160 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 175 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 190 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 205 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 220 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 235 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 250 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 280 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 295 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 310 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 325 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 340 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 355 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 370 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 385 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 400 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 415 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 430 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 460 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 490 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 520 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 535 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 550 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 565 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 580 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 595 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 610 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 625 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 640 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 655 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 670 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 685 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 700 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 715 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 730 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 760 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 775 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 864 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 887 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 902 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 917 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 932 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 947 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 977 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 992 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1007 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1037 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1052 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1067 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1082 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1097 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1112 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1127 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1142 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1157 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1187 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1217 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1232 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1247 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1262 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1277 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1292 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1307 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1322 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1337 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1352 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1367 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1397 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1412 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1427 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1442 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1457 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1472 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1487 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1502 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1517 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1532 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1547 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1562 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2439 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2462 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2492 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2507 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2522 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2537 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2552 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2582 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2597 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2612 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2642 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2657 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2672 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2702 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2717 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2732 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2747 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2762 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2792 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2822 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2837 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2852 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2882 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2897 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2912 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2942 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2957 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2972 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2987 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 3002 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 3017 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 3032 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 3047 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 3062 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 3077 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 3092 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 3107 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 3122 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 3137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1652 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1674 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1689 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1704 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1719 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1734 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1749 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1764 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1794 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1809 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1824 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1854 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1884 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1899 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1914 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1929 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1944 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1959 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 1974 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 1989 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2004 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2034 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2049 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2064 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2094 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2124 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2139 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2154 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2169 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2184 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2199 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2214 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2229 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2244 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2259 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2274 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2304 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2319 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -965 2334 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -965 2349 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 77 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 85 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 100 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 115 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 130 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 145 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 160 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 175 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 190 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 205 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 220 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 235 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 250 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 280 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 295 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 310 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 325 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 340 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 355 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 370 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 385 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 400 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 415 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 430 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 460 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 490 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 520 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 535 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 550 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 565 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 580 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 595 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 610 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 625 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 640 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 655 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 670 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 685 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 700 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 715 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 730 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 760 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 775 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 864 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 887 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 902 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 917 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 932 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 947 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 977 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 992 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1007 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1037 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1052 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1067 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1082 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1097 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1112 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1127 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1142 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1157 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1187 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1217 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1232 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1247 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1262 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1277 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1292 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1307 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1322 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1337 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1352 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1367 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1397 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1412 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1427 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1442 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1457 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1472 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1487 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1502 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1517 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1532 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1547 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1562 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2439 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2462 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2492 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2507 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2522 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2537 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2552 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2582 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2597 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2612 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2642 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2657 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2672 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2702 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2717 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2732 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2747 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2762 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2792 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2822 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2837 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2852 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2882 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2897 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2912 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2942 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2957 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2972 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2987 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 3002 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 3017 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 3032 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 3047 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 3062 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 3077 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 3092 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 3107 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 3122 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 3137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1652 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1674 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1689 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1704 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1719 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1734 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1749 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1764 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1794 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1809 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1824 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1854 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1884 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1899 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1914 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1929 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1944 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1959 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 1974 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 1989 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2004 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2034 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2049 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2064 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2094 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2124 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2139 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2154 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2169 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2184 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2199 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2214 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2229 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2244 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2259 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2274 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2304 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2319 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1116 2334 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1116 2349 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 77 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 85 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 100 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 115 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 130 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 145 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 160 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 175 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 190 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 205 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 220 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 235 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 250 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 280 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 295 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 310 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 325 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 340 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 355 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 370 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 385 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 400 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 415 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 430 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 460 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 490 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 520 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 535 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 550 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 565 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 580 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 595 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 610 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 625 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 640 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 655 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 670 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 685 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 700 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 715 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 730 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 760 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 775 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 864 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 887 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 902 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 917 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 932 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 947 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 977 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 992 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1007 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1037 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1052 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1067 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1082 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1097 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1112 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1127 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1142 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1157 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1187 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1217 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1232 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1247 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1262 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1277 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1292 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1307 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1322 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1337 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1352 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1367 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1397 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1412 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1427 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1442 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1457 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1472 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1487 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1502 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1517 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1532 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1547 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1562 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2439 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2462 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2492 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2507 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2522 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2537 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2552 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2582 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2597 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2612 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2642 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2657 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2672 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2702 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2717 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2732 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2747 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2762 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2792 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2822 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2837 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2852 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2882 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2897 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2912 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2942 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2957 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2972 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2987 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 3002 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 3017 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 3032 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 3047 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 3062 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 3077 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 3092 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 3107 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 3122 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 3137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1652 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1674 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1689 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1704 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1719 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1734 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1749 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1764 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1794 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1809 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1824 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1854 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1884 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1899 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1914 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1929 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1944 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1959 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 1974 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 1989 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2004 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2034 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2049 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2064 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2094 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2124 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2139 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2154 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2169 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2184 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2199 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2214 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2229 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2244 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2259 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2274 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2304 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2319 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1268 2334 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1268 2349 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 77 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 85 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 100 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 115 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 130 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 145 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 160 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 175 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 190 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 205 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 220 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 235 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 250 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 280 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 295 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 310 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 325 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 340 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 355 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 370 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 385 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 400 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 415 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 430 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 460 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 490 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 520 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 535 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 550 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 565 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 580 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 595 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 610 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 625 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 640 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 655 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 670 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 685 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 700 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 715 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 730 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 760 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 775 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 864 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 887 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 902 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 917 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 932 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 947 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 977 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 992 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1007 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1037 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1052 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1067 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1082 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1097 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1112 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1127 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1142 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1157 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1187 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1217 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1232 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1247 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1262 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1277 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1292 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1307 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1322 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1337 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1352 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1367 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1397 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1412 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1427 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1442 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1457 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1472 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1487 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1502 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1517 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1532 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1547 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1562 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2439 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2462 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2492 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2507 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2522 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2537 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2552 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2582 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2597 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2612 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2642 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2657 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2672 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2702 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2717 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2732 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2747 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2762 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2792 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2822 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2837 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2852 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2882 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2897 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2912 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2942 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2957 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2972 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2987 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 3002 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 3017 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 3032 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 3047 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 3062 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 3077 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 3092 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 3107 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 3122 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 3137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1652 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1674 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1689 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1704 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1719 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1734 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1749 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1764 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1794 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1809 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1824 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1854 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1884 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1899 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1914 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1929 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1944 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1959 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 1974 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 1989 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2004 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2034 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2049 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2064 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2094 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2124 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2139 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2154 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2169 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2184 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2199 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2214 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2229 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2244 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2259 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2274 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2304 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2319 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1419 2334 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1419 2349 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 77 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 85 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 100 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 115 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 130 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 145 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 160 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 175 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 190 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 205 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 220 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 235 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 250 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 280 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 295 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 310 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 325 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 340 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 355 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 370 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 385 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 400 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 415 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 430 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 460 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 490 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 520 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 535 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 550 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 565 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 580 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 595 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 610 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 625 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 640 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 655 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 670 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 685 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 700 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 715 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 730 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 760 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 775 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 864 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 887 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 902 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 917 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 932 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 947 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 977 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 992 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1007 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1037 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1052 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1067 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1082 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1097 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1112 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1127 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1142 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1157 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1187 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1217 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1232 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1247 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1262 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1277 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1292 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1307 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1322 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1337 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1352 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1367 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1397 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1412 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1427 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1442 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1457 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1472 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1487 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1502 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1517 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1532 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1547 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1562 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2439 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2462 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2492 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2507 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2522 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2537 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2552 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2582 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2597 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2612 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2642 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2657 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2672 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2702 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2717 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2732 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2747 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2762 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2792 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2822 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2837 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2852 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2882 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2897 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2912 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2942 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2957 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2972 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2987 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 3002 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 3017 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 3032 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 3047 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 3062 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 3077 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 3092 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 3107 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 3122 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 3137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1652 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1674 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1689 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1704 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1719 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1734 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1749 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1764 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1794 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1809 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1824 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1854 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1884 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1899 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1914 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1929 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1944 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1959 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 1974 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 1989 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2004 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2034 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2049 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2064 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2094 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2124 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2139 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2154 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2169 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2184 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2199 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2214 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2229 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2244 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2259 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2274 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2304 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2319 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1571 2334 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1571 2349 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 77 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 85 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 100 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 115 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 130 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 145 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 160 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 175 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 190 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 205 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 220 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 235 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 250 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 280 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 295 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 310 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 325 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 340 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 355 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 370 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 385 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 400 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 415 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 430 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 460 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 490 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 520 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 535 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 550 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 565 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 580 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 595 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 610 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 625 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 640 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 655 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 670 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 685 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 700 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 715 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 730 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 760 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 775 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 864 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 887 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 902 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 917 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 932 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 947 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 977 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 992 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1007 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1037 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1052 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1067 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1082 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1097 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1112 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1127 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1142 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1157 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1187 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1217 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1232 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1247 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1262 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1277 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1292 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1307 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1322 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1337 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1352 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1367 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1397 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1412 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1427 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1442 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1457 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1472 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1487 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1502 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1517 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1532 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1547 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1562 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2439 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2462 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2492 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2507 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2522 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2537 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2552 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2582 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2597 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2612 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2642 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2657 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2672 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2702 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2717 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2732 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2747 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2762 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2792 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2822 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2837 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2852 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2882 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2897 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2912 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2942 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2957 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2972 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2987 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 3002 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 3017 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 3032 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 3047 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 3062 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 3077 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 3092 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 3107 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 3122 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 3137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1652 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1674 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1689 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1704 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1719 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1734 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1749 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1764 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1794 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1809 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1824 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1854 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1884 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1899 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1914 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1929 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1944 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1959 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 1974 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 1989 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2004 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2034 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2049 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2064 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2094 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2124 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2139 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2154 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2169 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2184 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2199 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2214 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2229 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2244 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2259 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2274 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2304 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2319 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1722 2334 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1722 2349 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 77 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 85 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 100 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 115 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 130 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 145 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 160 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 175 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 190 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 205 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 220 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 235 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 250 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 280 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 295 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 310 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 325 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 340 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 355 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 370 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 385 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 400 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 415 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 430 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 460 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 490 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 520 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 535 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 550 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 565 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 580 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 595 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 610 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 625 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 640 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 655 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 670 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 685 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 700 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 715 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 730 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 760 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 775 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 864 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 887 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 902 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 917 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 932 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 947 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 977 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 992 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1007 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1037 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1052 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1067 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1082 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1097 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1112 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1127 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1142 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1157 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1187 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1217 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1232 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1247 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1262 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1277 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1292 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1307 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1322 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1337 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1352 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1367 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1397 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1412 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1427 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1442 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1457 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1472 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1487 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1502 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1517 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1532 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1547 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1562 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2439 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2462 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2492 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2507 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2522 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2537 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2552 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2582 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2597 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2612 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2642 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2657 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2672 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2702 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2717 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2732 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2747 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2762 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2792 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2822 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2837 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2852 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2882 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2897 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2912 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2942 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2957 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2972 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2987 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 3002 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 3017 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 3032 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 3047 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 3062 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 3077 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 3092 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 3107 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 3122 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 3137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1652 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1674 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1689 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1704 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1719 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1734 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1749 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1764 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1794 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1809 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1824 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1854 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1884 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1899 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1914 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1929 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1944 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1959 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 1974 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 1989 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2004 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2034 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2049 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2064 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2094 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2124 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2139 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2154 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2169 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2184 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2199 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2214 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2229 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2244 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2259 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2274 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2304 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2319 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1873 2334 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1873 2349 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 77 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 85 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 100 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 115 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 130 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 145 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 160 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 175 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 190 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 205 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 220 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 235 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 250 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 280 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 295 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 310 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 325 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 340 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 355 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 370 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 385 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 400 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 415 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 430 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 460 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 490 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 520 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 535 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 550 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 565 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 580 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 595 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 610 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 625 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 640 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 655 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 670 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 685 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 700 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 715 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 730 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 760 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 775 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 864 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 887 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 902 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 917 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 932 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 947 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 977 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 992 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1007 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1037 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1052 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1067 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1082 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1097 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1112 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1127 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1142 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1157 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1187 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1217 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1232 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1247 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1262 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1277 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1292 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1307 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1322 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1337 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1352 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1367 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1397 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1412 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1427 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1442 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1457 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1472 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1487 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1502 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1517 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1532 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1547 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1562 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2439 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2462 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2492 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2507 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2522 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2537 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2552 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2582 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2597 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2612 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2642 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2657 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2672 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2702 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2717 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2732 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2747 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2762 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2792 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2822 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2837 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2852 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2882 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2897 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2912 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2942 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2957 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2972 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2987 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 3002 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 3017 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 3032 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 3047 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 3062 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 3077 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 3092 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 3107 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 3122 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 3137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1652 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1674 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1689 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1704 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1719 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1734 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1749 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1764 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1794 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1809 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1824 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1854 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1884 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1899 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1914 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1929 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1944 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1959 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 1974 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 1989 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2004 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2034 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2049 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2064 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2094 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2124 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2139 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2154 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2169 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2184 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2199 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2214 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2229 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2244 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2259 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2274 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2304 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2319 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2176 2334 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2176 2349 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 77 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 85 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 100 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 115 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 130 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 145 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 160 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 175 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 190 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 205 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 220 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 235 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 250 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 280 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 295 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 310 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 325 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 340 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 355 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 370 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 385 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 400 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 415 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 430 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 460 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 490 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 520 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 535 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 550 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 565 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 580 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 595 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 610 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 625 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 640 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 655 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 670 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 685 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 700 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 715 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 730 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 760 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 775 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 864 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 887 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 902 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 917 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 932 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 947 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 977 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 992 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1007 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1037 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1052 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1067 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1082 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1097 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1112 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1127 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1142 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1157 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1187 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1217 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1232 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1247 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1262 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1277 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1292 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1307 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1322 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1337 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1352 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1367 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1397 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1412 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1427 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1442 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1457 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1472 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1487 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1502 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1517 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1532 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1547 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1562 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2439 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2462 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2492 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2507 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2522 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2537 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2552 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2582 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2597 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2612 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2642 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2657 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2672 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2702 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2717 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2732 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2747 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2762 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2792 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2822 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2837 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2852 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2882 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2897 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2912 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2942 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2957 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2972 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2987 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 3002 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 3017 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 3032 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 3047 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 3062 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 3077 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 3092 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 3107 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 3122 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 3137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1652 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1674 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1689 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1704 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1719 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1734 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1749 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1764 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1794 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1809 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1824 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1854 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1884 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1899 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1914 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1929 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1944 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1959 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 1974 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 1989 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2004 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2034 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2049 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2064 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2094 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2124 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2139 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2154 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2169 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2184 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2199 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2214 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2229 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2244 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2259 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2274 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2304 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2319 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2025 2334 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2025 2349 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 77 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 85 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 100 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 115 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 130 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 145 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 160 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 175 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 190 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 205 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 220 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 235 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 250 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 280 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 295 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 310 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 325 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 340 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 355 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 370 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 385 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 400 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 415 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 430 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 460 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 490 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 520 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 535 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 550 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 565 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 580 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 595 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 610 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 625 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 640 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 655 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 670 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 685 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 700 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 715 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 730 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 760 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 775 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 864 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 887 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 902 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 917 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 932 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 947 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 977 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 992 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1007 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1037 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1052 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1067 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1082 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1097 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1112 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1127 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1142 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1157 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1187 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1217 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1232 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1247 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1262 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1277 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1292 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1307 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1322 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1337 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1352 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1367 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1397 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1412 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1427 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1442 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1457 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1472 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1487 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1502 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1517 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1532 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1547 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1562 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2439 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2462 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2492 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2507 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2522 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2537 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2552 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2582 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2597 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2612 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2642 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2657 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2672 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2702 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2717 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2732 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2747 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2762 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2792 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2822 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2837 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2852 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2882 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2897 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2912 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2942 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2957 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2972 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2987 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 3002 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 3017 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 3032 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 3047 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 3062 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 3077 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 3092 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 3107 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 3122 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 3137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1652 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1674 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1689 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1704 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1719 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1734 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1749 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1764 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1794 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1809 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1824 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1854 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1884 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1899 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1914 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1929 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1944 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1959 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 1974 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 1989 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2004 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2034 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2049 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2064 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2094 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2124 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2139 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2154 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2169 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2184 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2199 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2214 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2229 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2244 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2259 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2274 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2304 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2319 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -511 2334 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -511 2349 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 77 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 85 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 100 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 115 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 130 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 145 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 160 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 175 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 190 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 205 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 220 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 235 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 250 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 265 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 280 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 295 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 310 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 325 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 340 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 355 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 370 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 385 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 400 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 415 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 430 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 445 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 460 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 475 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 490 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 505 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 520 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 535 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 550 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 565 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 580 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 595 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 610 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 625 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 640 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 655 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 670 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 685 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 700 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 715 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 730 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 745 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 760 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 775 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 864 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 887 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 902 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 917 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 932 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 947 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 962 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 977 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 992 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1007 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1022 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1037 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1052 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1067 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1082 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1097 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1112 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1127 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1142 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1157 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1172 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1187 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1202 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1217 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1232 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1247 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1262 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1277 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1292 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1307 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1322 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1337 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1352 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1367 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1382 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1397 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1412 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1427 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1442 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1457 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1472 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1487 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1502 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1517 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1532 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1547 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1562 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2439 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2447 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2462 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2477 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2492 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2507 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2522 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2537 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2552 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2567 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2582 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2597 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2612 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2627 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2642 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2657 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2672 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2702 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2717 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2732 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2747 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2762 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2777 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2792 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2807 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2822 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2837 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2852 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2867 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2882 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2897 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2912 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2927 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2942 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2957 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2972 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2987 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 3002 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 3017 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 3032 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 3047 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 3062 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 3077 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 3092 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 3107 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 3122 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 3137 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1652 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1659 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1674 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1689 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1704 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1719 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1734 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1749 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1764 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1779 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1794 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1809 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1824 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1839 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1854 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1869 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1884 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1899 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1914 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1929 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1944 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1959 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 1974 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 1989 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2004 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2019 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2034 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2049 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2064 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2079 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2094 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2124 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2139 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2154 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2169 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2184 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2199 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2214 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2229 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2244 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2259 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2274 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2289 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2304 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2319 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -662 2334 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -662 2349 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 213 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -647 213 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -647 213 N M 30 61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -677 274 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -677 274 N M 576 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1253 274 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1253 274 N M 30 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1283 213 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1283 213 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1404 213 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1404 213 N M 30 61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1434 274 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1434 274 N M 576 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2010 274 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2010 274 N M 30 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2040 213 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2040 213 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 213 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 516 N M 272 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -798 516 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 637 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -950 637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 758 N M 575 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1101 758 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 395 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -647 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -798 516 N M 31 -60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -829 456 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -950 637 N M 30 -60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -980 577 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1101 758 N M 30 -60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1131 698 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -647 395 N M 30 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -677 334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -829 456 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -950 456 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -980 577 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1101 577 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1131 698 N M 122 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1253 698 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -677 334 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -798 334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -950 456 N M 30 60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -980 516 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1101 577 N M 30 60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1131 637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1253 698 N M 30 60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1283 758 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -798 334 N M 31 61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -829 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -980 516 N M 575 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1555 516 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1131 637 N M 576 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1707 637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1283 758 N M 575 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1858 758 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -829 395 N M 575 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1404 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1555 516 N M 31 -60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1586 456 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1707 637 N M 30 -60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1737 577 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1858 758 N M 31 -60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1889 698 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1404 395 N M 30 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1434 334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1586 456 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1707 456 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1737 577 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1858 577 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1889 698 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2010 698 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1434 334 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1555 334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1707 456 N M 30 60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1737 516 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1858 577 N M 31 60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1889 637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2010 698 N M 30 60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2040 758 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1555 334 N M 31 61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1586 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1737 516 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 516 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1889 637 N M 272 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2040 758 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 758 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1586 395 N M 575 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 1001 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -647 1001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -647 1001 N M 30 60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -677 1061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -677 1061 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1101 1061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1101 1061 N M 30 -60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1131 1001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1131 1001 N M 273 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1404 1001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1404 1001 N M 30 60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1434 1061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1434 1061 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1858 1061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1858 1061 N M 31 -60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1889 1001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1889 1001 N M 272 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 1001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 1122 N M 272 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -798 1122 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -798 1122 N M 31 60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -829 1182 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -829 1182 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1253 1182 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1253 1182 N M 30 -60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1283 1122 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1283 1122 N M 272 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1555 1122 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1555 1122 N M 31 60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1586 1182 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1586 1182 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2010 1182 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2010 1182 N M 30 -60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2040 1122 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2040 1122 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 1122 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 1425 N M 272 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -798 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 1546 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -950 1546 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 1304 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -647 1304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -798 1425 N M 31 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -829 1364 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -950 1546 N M 30 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -980 1485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -647 1304 N M 30 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -677 1243 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -829 1364 N M 272 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1101 1364 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -980 1485 N M 273 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1253 1485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -677 1243 N M 273 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -950 1243 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1101 1364 N M 30 61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1131 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1253 1485 N M 30 61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1283 1546 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -950 1243 N M 30 61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -980 1304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1131 1425 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1555 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1283 1546 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1707 1546 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -980 1304 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1404 1304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1555 1425 N M 31 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1586 1364 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1707 1546 N M 30 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1737 1485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1404 1304 N M 30 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1434 1243 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1586 1364 N M 272 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1858 1364 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1737 1485 N M 273 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2010 1485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1434 1243 N M 273 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1707 1243 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1858 1364 N M 31 61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1889 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2010 1485 N M 30 61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2040 1546 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1707 1243 N M 30 61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1737 1304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1889 1425 N M 272 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2040 1546 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 1546 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1737 1304 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 1304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 2576 N M 272 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -798 2576 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 1788 N M 272 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -798 1788 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -798 2576 N M 31 60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -829 2636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -798 1788 N M 31 61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -829 1849 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -829 2636 N M 726 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1555 2636 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -829 1849 N M 1029 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1858 1849 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1555 2636 N M 31 -60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1586 2576 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1858 1849 N M 31 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1889 1788 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1586 2576 N M 575 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 2576 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1889 1788 N M 272 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 1788 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 2878 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -647 2878 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 2091 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -950 2091 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 3000 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -950 3000 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 2212 N M 727 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1253 2212 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 3121 N M 727 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1253 3121 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 2333 N M 1029 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1555 2333 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 1970 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -647 1970 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -647 2878 N M 30 -60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -677 2818 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -950 2091 N M 30 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -980 2030 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -950 3000 N M 30 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -980 2939 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1253 2212 N M 30 -60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1283 2152 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1253 3121 N M 30 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1283 3060 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1555 2333 N M 31 -60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1586 2273 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -647 1970 N M 30 -61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -677 1909 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -677 2818 N M 727 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1404 2818 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -980 2030 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1404 2030 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -980 2939 N M 727 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1707 2939 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1283 2152 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1707 2152 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1283 3060 N M 727 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2010 3060 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1586 2273 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2010 2273 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -526 2697 N M 575 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1101 2697 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -677 1909 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1101 1909 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1404 2818 N M 30 60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1434 2878 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1404 2030 N M 30 61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1434 2091 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1707 2939 N M 30 61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1737 3000 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1707 2152 N M 30 60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1737 2212 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2010 3060 N M 30 61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2040 3121 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2010 2273 N M 30 60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2040 2333 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1101 2697 N M 30 60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1131 2757 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1101 1909 N M 30 61 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1131 1970 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1434 2878 N M 727 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 2878 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1434 2091 N M 727 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 2091 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1737 3000 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 3000 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1737 2212 N M 424 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 2212 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2040 3121 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 3121 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -2040 2333 N M 121 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 2333 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1131 2757 N M 727 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1858 2757 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1131 1970 N M 1030 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 1970 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1858 2757 N M 31 -60 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1889 2697 N M 0 0 rr : 0 0 0 sco O ; : 0 0 2391 3229 rc -1889 2697 N M 272 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2161 2697 N M 0 0 rr : 0 0 0 sco O ; -LH -pagesave restore -%%PageTrailer - -%%Trailer -%%DocumentNeededFonts: -%%DocumentSuppliedFonts: -/Pscript_Win_Driver /ProcSet findresource dup /terminate get exec -Pscript_Win_Compat dup /terminate get exec -%%EOF diff --git a/docs/src/hal/images/stepgen-type11-14.png b/docs/src/hal/images/stepgen-type11-14.png deleted file mode 100644 index 3fca5c21d8e..00000000000 Binary files a/docs/src/hal/images/stepgen-type11-14.png and /dev/null differ diff --git a/docs/src/hal/images/stepgen-type11-14.svg b/docs/src/hal/images/stepgen-type11-14.svg deleted file mode 100755 index d359bffda94..00000000000 --- a/docs/src/hal/images/stepgen-type11-14.svg +++ /dev/null @@ -1,1534 +0,0 @@ - - - -stepgen-type11-14image/svg+xmlstepgen-type11-1423.11.2011linuxcnc.orgStepgenCopyright 2011 linuxcnc.org0 - - - - - -1 - - - - - -2 - - - - - -3 - - - - - -4 - - - - - -0 - - - - - -1 - - - - - -2 - - - - - -3 - - - - - -4 - - - - - -0 - - - - - -phase-A - - - - - -phase-B - - - - - -phase-C - - - - - -phase-D - - - - - -phase-E - - - - - -STEP TYPE 11 - - - - - -STEP TYPE 12 - - - - - -STEP TYPE 13 - - - - - -STEP TYPE 14 - - - - - -0 - - - - - -1 - - - - - -2 - - - - - -3 - - - - - -4 - - - - - -0 - - - - - -1 - - - - - -2 - - - - - -3 - - - - - -4 - - - - - -0 - - - - - -0 - - - - - -1 - - - - - -2 - - - - - -3 - - - - - -4 - - - - - -5 - - - - - -6 - - - - - -7 - - - - - -8 - - - - - -9 - - - - - -0 - - - - - -0 - - - - - -1 - - - - - -2 - - - - - -3 - - - - - -4 - - - - - -5 - - - - - -6 - - - - - -7 - - - - - -8 - - - - - -9 - - - - - -0 - - - - - -phase-A - - - - - -phase-B - - - - - -phase-C - - - - - -phase-D - - - - - -phase-E - - - - - -phase-A - - - - - -phase-B - - - - - -phase-C - - - - - -phase-D - - - - - -phase-E - - - - - -phase-A - - - - - -phase-B - - - - - -phase-C - - - - - -phase-D - - - - - -phase-E - - - - - - diff --git a/docs/src/hal/images/stepgen-type2-4.eps b/docs/src/hal/images/stepgen-type2-4.eps deleted file mode 100644 index 3f9a6e4d53a..00000000000 --- a/docs/src/hal/images/stepgen-type2-4.eps +++ /dev/null @@ -1,2240 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Title: D:\JMK\Drawings\hal-stepgen-type2-4.FC7 -%%BoundingBox: 19 9 784 593 -%%Creator: PSCRIPT.DRV Version 4.0 -%%CreationDate: 10/05/04 21:23:15 -%%Pages: 1 -%%Requirements: None -%%DocumentNeededFonts: (atend) -%%DocumentSuppliedFonts: (atend) -%%LanguageLevel: 1 -%%EndComments - -%%BeginProlog -%%BeginProcSet: Pscript_Res_Emul 1.0 0 -/defineresource where{pop}{userdict begin/defineresource{userdict/Resources 2 -copy known{get begin}{15 dict dup begin put}ifelse exch readonly exch -currentdict 1 index known not{dup 30 dict def}if load 3 -1 roll 2 index put -end}bind readonly def/findresource{userdict/Resources get exch get exch get} -bind readonly def/resourceforall{pop pop pop pop}bind readonly def -/resourcestatus{userdict/Resources 2 copy known{get exch 2 copy known{get exch -known{0 -1 true}{pop pop false}ifelse}{pop pop pop false}ifelse}{pop pop false -}ifelse}bind readonly def end}ifelse -%%EndProcSet -%%BeginResource: procset Pscript_Win_Driver 2.0 0 -/Pscript_Win_Driver 200 dict dup begin -%%BeginResource: file Pscript_FatalError 2.0 0 -/FatalErrorIf{{initgraphics findfont exch scalefont setfont counttomark 3 div -cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def -%%EndResource -/VM? {vmstatus exch sub exch pop gt { [ -(This job requires more memory than is available in this printer.) 100 500 -(Try one or more of the following, and then print again:) 100 485 -(In the PostScript dialog box, click Optimize For Portability.) 115 470 -(In the Device Options dialog box, make sure the Available Printer Memory is accurate.) 115 455 -(Reduce the number of fonts in the document.) 115 440 -(Print the document in parts.) 115 425 -12 /Times-Roman showpage -(%%[ PrinterError: Low Printer VM ]%%) = -true FatalErrorIf}if} bind def -%%BeginResource: file Pscript_Win_Utils 2.0 0 -/|/def load def/,/load load |/~/exch , |/?/ifelse , |/!/pop , |/`/begin , |/^ -/index , |/@/dup , |/+/translate , |/$/roll , |/U/userdict , |/M/moveto , |/- -/rlineto , |/&/currentdict , |/:/gsave , |/;/grestore , |/F/false , |/T/true , -|/N/newpath , |/E/end , |/Ac/arc , |/An/arcn , |/A/ashow , |/D/awidthshow , | -/C/closepath , |/V/div , |/O/eofill , |/L/fill , |/I/lineto , |/-C/rcurveto , -|/-M/rmoveto , |/+S/scale , |/Ji/setfont , |/Lc/setlinecap , |/Lj/setlinejoin -, |/Lw/setlinewidth , |/S/show , |/LH/showpage , |/K/stroke , |/W/widthshow , -|/R/rotate , |/b{bind |}bind |/bd{bind |}bind |/xd{~ |}bd/ld{, |}bd/lw/Lw ld -/lc/Lc ld/lj/Lj ld/sg/setgray ld/L2? F/languagelevel where{! languagelevel 2 -ge{! T}if}if |/g{@ not{U/DefIf_save save put}if U/DefIf_bool 2 ^ put}b -/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e{DefIf_El ! -}b/self & |/reinitialize{[/TextInit/GraphInit/UtilsInit counttomark{@ where{ -self eq}{F}?{cvx exec}{!}?}repeat cleartomark}b/initialize{`{/ADO_mxRot ~ | -/TextInitialised? F | reinitialize E}{U/Pscript_Win_Data 200 dict @ ` put -/ADO_mxRot ~ |/TextInitialised? F | reinitialize}?}b/terminate{!{& self eq{ -exit}{E}?}loop E}b/suspend/terminate , |/resume{` Pscript_Win_Data `}b/snap{ -transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~ itransform}b -/dsnap{dtransform round ~ round ~ idtransform}b<04>cvn{}|/setjn{{statusdict -/jobname known{statusdict/jobname 3 -1 $ put}if}stopped cleartomark}b/solid{[] -0 setdash}b/setdsh{0 setdash}b/colspRefresh{}b/rp{4 2 $ M 1 ^ 0 - 0 ~ - neg 0 --}b/rr{1 ^ 0 - 0 ~ - neg 0 - C}b -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L1 2.0 0 -L2? not g{/rf{N rp L}b/fx{1 1 dtransform @ 0 ge{1 sub 1}{1 add -0.25}? 3 -1 $ -@ 0 ge{1 sub 1}{1 add -0.25}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{ -4 -2 $ snap + +S fx rf}b/rs{N rp C K}b/rc{N rp clip N}b/sg{setgray}b/sco{ -setrgbcolor}b/sgco{{sg}{sco}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L2 2.0 0 -L2? g{/colspA/DeviceGray |/colspABC/DeviceRGB |/setAorABC{{colspA}{colspABC}? -setcolorspace}b/rf/rectfill , |/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5 -}? 3 -1 $ @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ -idtransform}b/BZ{4 -2 $ snap + +S fx rf}b/rs/rectstroke , |/rc/rectclip , |/sg -{@ @ setcolor}b/sco{setcolor}b/colspRefresh{colspABC setcolorspace}b/sgco{{sg -}{sco}?}b/UtilsInit{F setglobal}b/definecolorrendering{/ColorRendering -defineresource !}b/findcolorrendering{@/ColorRendering resourcestatus{! ! -/ColorRendering findresource T}{! F}?}b/selectcolorrendering{@/ColorRendering -resourcestatus{! !/ColorRendering}{!/DefaultColorRendering/ColorRendering}? -findresource setcolorrendering}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Encoding 2.0 0 -/bullets{{/bullet}repeat}b/ANSIEncoding[/grave/acute/circumflex/tilde/macron -/breve/dotaccent/dieresis/ring/cedilla/hungarumlaut/ogonek/caron/dotlessi 18 -bullets StandardEncoding 32 95 getinterval aload ! 3 bullets/quotesinglbase -/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron -/guilsinglleft/OE 4 bullets/quoteleft/quoteright/quotedblleft/quotedblright -/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 2 bullets -/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section -/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered -/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph -/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter -/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis -/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute -/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls -/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute -/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve -/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex -/udieresis/yacute/thorn/ydieresis]| ANSIEncoding @ 39/quotesingle put 96/grave -put/ANSIEncodingOld ANSIEncoding 256 array copy | ANSIEncodingOld @[138 153 -154 169 172 174 177 178 179 181 185 188 189 190 208 215 221 222 240 247 253 -254]{/bullet put @}forall 166/bar put 176/ring put -%%EndResource -%%BeginResource: file Pscript_Win_Text 2.0 0 -/TextInit{TextInitialised? not{/Pscript_Windows_Font & |/TextInitialised? T | -/fM[1 0 0 -1 0 0]|/mFM matrix |/iMat[1 0 0.212557 neg 1 0 0]|}if}b/xUP null | -/yUP null |/uW null |/xSP null |/ySP null |/sW null |/copyfont{1 ^ length add -dict `{1 ^/FID ne{|}{! !}?}forall & E}b/rF{3 copyfont @ `/Encoding -ANSIEncoding &/CharStrings known{CharStrings/Eth known not{! ANSIEncodingOld} -if}if | E}b/mF{findfont ~{@/Encoding get @ StandardEncoding eq{! T}{{ -ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get -StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{rF}{3 copyfont}? ` -/OrigFontType ~ |/OrigFontName ~ | & E 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 -put fM makefont Pscript_Windows_Font 3 1 $ put}b/xF{scalefont -Pscript_Windows_Font 3 1 $ put}b/xMF{mFM astore makefont Pscript_Windows_Font -3 1 $ put}b/xF2/scalefont , |/xMF2{mFM astore makefont}b/sLT{: Lw -M -currentpoint snap M 0 - 0 Lc K ;}b/sSU{N/uW ~ |/yUP ~ |/xUP ~ |}b/sU{xUP yUP -uW sLT}b/sST{N/sW ~ |/ySP ~ |/xSP ~ |}b/sT{xSP ySP sW sLT}b/sR{: + R 0 0 M}b -/sRxy{: matrix astore concat 0 0 M}b/eR/; , | -%%EndResource -%%BeginResource: file Pscript_Win_Text_Bold 2.0 0 -/mBF{@ 4 copyfont `/FontName ~ |/OrigFontType ~ |/OrigFontName ~ | 0 -FontMatrix idtransform ! &/PaintType known{PaintType 0 eq{/PaintType 2 | -/StrokeWidth ~ |}{PaintType 1 eq PaintType 2 eq or PaintType 3 eq or & -/StrokeWidth known and{StrokeWidth add/StrokeWidth ~ |}{!}?}?}{!}? @ & E -definefont Pscript_Windows_Font 3 1 $ put}b/xBF{Pscript_Windows_Font ` 1 ^ -/FontName get 1 ^ scalefont 3 1 $ scalefont 2 copy ~ | ~ ! | E}b/xMBF{mFM -astore Pscript_Windows_Font ` 1 ^/FontName get 1 ^ makefont 3 1 $ makefont 2 -copy ~ | ~ ! | E}b/xBF2{/sB0 ~ mBF/sB1 sB0 3 -1 $ xBF sB1}b/xMBF2{/sB0 ~ mBF -mFM astore/sB1 sB0 3 -1 $ xMBF sB1}b/sB{: Pscript_Windows_Font currentfont get -Ji @ S ; S}b/asB{: Pscript_Windows_Font currentfont get Ji 3 copy A ; A}b/wsB{ -: Pscript_Windows_Font currentfont get Ji 4 copy W ; W}b/awsB{: -Pscript_Windows_Font currentfont get Ji 6 copy D ; D}b/sBT3{: @ S ; 1 1 -M S}b -/asBT3{: 3 copy A ; 1 1 -M A}b/wsBT3{: 4 copy W ; 1 1 -M W}b/awsBT3{: 6 copy D -; 1 1 -M D}b/mIF{iMat 4 3 -1 $ put 2 copyfont `/OrigFontType ~ |/OrigFontName -~ | @ & E definefont iMat makefont Pscript_Windows_Font 3 1 $ put}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics 2.0 0 -/SavedCTM null |/CTMsave{/SavedCTM SavedCTM currentmatrix |}b/CTMrestore{ -SavedCTM setmatrix}b/mp null |/ADO_mxRot null |/GDIHMatrix null | -/GDIHPatternDict 22 dict | GDIHPatternDict `/PatternType 1 |/PaintType 2 | -/Reps L2?{1}{5}? |/XStep 8 Reps mul |/YStep XStep |/BBox[0 0 XStep YStep]| -/TilingType 1 |/PaintProc{` 1 Lw[]0 setdash PaintData , exec E}b/FGnd null | -/BGnd null |/HS_Horizontal{horiz}b/HS_Vertical{vert}b/HS_FDiagonal{fdiag}b -/HS_BDiagonal{biag}b/HS_Cross{horiz vert}b/HS_DiagCross{fdiag biag}b/MaxXYStep -XStep YStep gt{XStep}{YStep}? |/horiz{Reps{0 4 M XStep 0 - 0 8 +}repeat 0 -8 -Reps mul + K}b/vert{Reps{4 0 M 0 YStep - 8 0 +}repeat 0 -8 Reps mul + K}b/biag -{Reps{0 0 M MaxXYStep @ - 0 YStep neg M MaxXYStep @ - 0 8 +}repeat 0 -8 Reps -mul + 0 YStep M 8 8 - K}b/fdiag{Reps{0 0 M MaxXYStep @ neg - 0 YStep M -MaxXYStep @ neg - 0 8 +}repeat 0 -8 Reps mul + MaxXYStep @ M 8 -8 - K}b E -/makehatch{GDIHPatternDict/PaintData 3 -1 $ put CTMsave GDIHMatrix setmatrix -GDIHPatternDict matrix mp CTMrestore ~ U ~ 2 ^ put}b/h0{/h0/HS_Horizontal -makehatch}b/h1{/h1/HS_Vertical makehatch}b/h2{/h2/HS_FDiagonal makehatch}b/h3{ -/h3/HS_BDiagonal makehatch}b/h4{/h4/HS_Cross makehatch}b/h5{/h5/HS_DiagCross -makehatch}b/GDIBWPatternDict 17 dict @ `/PatternType 1 |/PaintType L2?{1}{2}? -|/RepsV L2?{1}{6}? |/RepsH L2?{1}{5}? |/BBox[0 0 RepsH 1]|/TilingType 1 | -/XStep 1 |/YStep 1 |/Height 8 RepsV mul |/Width 8 |/mx[Width 0 0 Height neg 0 -Height]|/FGnd null |/BGnd null |/SetBGndFGnd L2?{{BGnd null ne{BGnd aload ! -sgco BBox aload ! 2 ^ sub ~ 3 ^ sub ~ rf}if FGnd null ne{FGnd aload ! sgco}if} -}{{}}? b/PaintProc{` SetBGndFGnd RepsH{Width Height F mx PaintData imagemask -Width 0 +}repeat E}b E |/GDIBWPatternMx null |/pfprep{save 4 1 $ -/PatternOfTheDay 4 1 $ GDIBWPatternDict `/PaintData ~ |/BGnd ~ |/FGnd ~ | E -CTMsave GDIBWPatternMx setmatrix GDIBWPatternDict matrix mp CTMrestore ~ !}b -/hrf null |/prf{pfprep ~ 6 1 $ 5 hrf restore}b/GraphInit{GDIHMatrix null eq{ -/SavedCTM matrix | : ADO_mxRot concat 0 0 snap + : 0.48 @ GDIHPatternDict ` -YStep mul ~ XStep mul ~ dsnap YStep V ~ XStep V ~ E +S/GDIHMatrix matrix -currentmatrix readonly | ; : 0.24 -0.24 +S GDIBWPatternDict ` Width Height E -dsnap +S/GDIBWPatternMx matrix currentmatrix readonly | ; ;}if}b/cirp{360 0 An -C}b/ellp{CTMsave + +S 0.5 0 M 0 0 0.5 360 0 An C CTMrestore}b/rrp{/rad ~ |/y2 -~ |/x2 ~ |/y1 ~ |/x1 ~ | x2 x1 add 2 V y1 M x1 y1 x1 y2 rad arct x1 y2 x2 y2 -rad arct x2 y2 x2 y1 rad arct x2 y1 x1 y1 rad arct C}b/RRp{CTMsave + +S/dyS ~ -|/dxS ~ | dxS 2 V 0 M 0 0 0 dyS 0.5 arct 0 dyS dxS dyS 0.5 arct dxS dyS dxS 0 -0.5 arct dxS 0 0 0 0.5 arct C CTMrestore}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L1 2.0 0 -L2? not g{/arct{arcto ! ! ! !}b/GDIpattfill{@ ` BGnd null ne PaintType 2 eq -and{: BGnd aload ! sgco fEOFill{O}{L}? ; FGnd aload ! U/fGray 2 ^ put{2}{4}? --1 $}if E @ patterncalc : 4 ^/PaintType get 2 eq{fGray{6 -1 $ sg}{8 -3 $ sco}? -}if fEOFill{eoclip}{clip}? N patternfill ; N}b/hrf{/fGray 1 ^ 6 eq | -4 $ N rp -C/fEOFill F | GDIpattfill}b/hfMain{/fEOFill ~ |/fGray ~ | GDIpattfill}b/hf{T -hfMain}b/hfW{F hfMain}b/hs{currentpoint strokepath M hfW}b/pfMain{/fEOFill ~ | -pfprep GDIpattfill restore N}b/pf{T pfMain}b/pfW{F pfMain}b/ps{currentpoint -strokepath M pfW}b/mpstr 1 string |/mp{~ @ length 12 add dict copy ` -/PatternCTM matrix currentmatrix |/PatternMatrix ~ |/PatWidth XStep mpstr -length mul |/PatHeight YStep |/FontType 3 |/Encoding 256 array | 3 string 0 1 -255{Encoding ~ @ 3 ^ cvs cvn put}for !/FontMatrix matrix |/FontBBox BBox | -/BuildChar{! @ ` XStep 0 FontBBox aload ! setcachedevice/PaintProc , E : exec -;}b & E ~ @ 3 -1 $ definefont}b/patterncalc{` : PatternCTM setmatrix -PatternMatrix concat BBox aload ! ! ! + pathbbox ; PatHeight V ceiling 4 1 $ -PatWidth V ceiling 4 1 $ PatHeight V floor 4 1 $ PatWidth V floor 4 1 $ 2 ^ -sub cvi abs ~ 3 ^ sub cvi abs ~ 4 2 $ PatHeight mul ~ PatWidth mul ~ E}b -/patternfill{5 -1 $ @ ` Ji PatternCTM setmatrix PatternMatrix concat 0 2 ^ 2 ^ -M 0 1 mpstr length 1 sub{1 ^ mpstr 3 1 $ put}for ! 2 ^{currentpoint 5 ^{mpstr -S}repeat YStep add M}repeat ! ! ! ! E}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L2 2.0 0 -L2? g{/mp/makepattern , |/hrf{6 eq setAorABC setpattern rectfill}b/hf{ -setAorABC setpattern O}b/hfW{setAorABC setpattern L}b/hs{setAorABC setpattern -K}b/pf{pfprep setpattern O restore N}b/pfW{pfprep setpattern L restore N}b/ps{ -pfprep setpattern K restore N}b}e -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images 2.0 0 -/iw 0 |/ih 0 |/im_save 0 |/s 0 |/polarity 0 |/smoothflag 0 |/mystring 0 |/bpc -0 |/setup1asciiproc{[currentfile mystring/readhexstring cvx/! cvx]cvx bind}b -/setup1binaryproc{[currentfile mystring/readstring cvx/! cvx]cvx bind}b -/setup2asciiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}b -/setup2binaryproc{currentfile/RunLengthDecode filter}b/mycolorspace{colspABC}| -/myimagedict{/myimagedict 10 dict | myimagedict @ `/ImageType 1 | -/MultipleDataSource F | E}b/imageprocarray[/setup1binaryproc/setup1asciiproc -/setup2binaryproc/setup2asciiproc/setup1binarydecodeproc/setup1asciidecodeproc -]|/L2Polarity{{[1 0]}{[0 1]}?}b/Q{/im_save save | imageprocarray ~ get/s ~ , | -L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring ~ -string |/bpc ~ |/ih ~ |/iw ~ |}b/X{/im_save save | imageprocarray ~ get/s ~ , -| L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring -~ string |/bpc ~ |/ih ~ |/iw ~ |}b/Z{im_save restore}b/Y{sgco myimagedict @ ` -/Width iw |/Height ih |/Decode polarity |/ImageMatrix[iw 0 0 ih 0 0]| -/DataSource s |/BitsPerComponent 1 |/Interpolate smoothflag | E imagemask}b -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images_L1 2.0 0 -L2? not g{/setup2asciiproc{[/Level2ImagesError , aload ! T FatalErrorIf}b -/setup2binaryproc/setup2asciiproc , |/L2Polarity{}|/Y{sgco iw ih polarity[iw 0 -0 ih 0 0]s imagemask}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L1 2.0 0 -L2? not g{/testsystemdict{where{systemdict eq{T}{F}?}{F}?}b/c 1 |/colorimage -where{! T}{F}?{/c 0 statusdict `/processcolors where{! ! processcolors}{ -/deviceinfo where{! deviceinfo/Colors known{!{deviceinfo/Colors get}}if}if}? E -| c 0 ne{/colorimage testsystemdict/setcolortransfer testsystemdict -/currentcolortransfer testsystemdict/currentcmykcolor testsystemdict and and -and not{/c 0 |}if}if}if c @ 1 ne ~ @ 3 ne ~ 4 ne and and{/c 0 |}if c 1 eq g{ -/expandbw{expandfactor mul round cvi bwclut ~ get 255 V}b/doclutimage{!/bwclut -~ | bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/expandfactor ~ |[/expandbw ,/exec , @ -currenttransfer ~]cvx bind settransfer iw ih bpc[iw 0 0 ih 0 0]s image}b}e c @ -3 eq ~ 4 eq or g{/nullproc{{}}|/concatutil{/exec , 7 -1 $/exec ,}b/defsubclut{ -1 add getinterval |}b/spconcattransfer{/Dclut ~ |/Cclut ~ |/Bclut ~ |/Aclut ~ -|/ncompute ~ , | currentcolortransfer[{Aclut ncompute}concatutil]cvx[{Bclut -ncompute}concatutil]cvx[{Cclut ncompute}concatutil]cvx[{Dclut ncompute} -concatutil]cvx setcolortransfer}b/setuprgbcluts{/bit3x rgbclut length 3 sub | -/bit1x bit3x 3 idiv |/rclut rgbclut |/gclut rclut 1 bit3x defsubclut/bclut -rclut 2 bit3x defsubclut}b}e c 3 eq g{/3compute{~ bit3x mul round cvi get 255 -V}b/doclutimage{/rgbclut ~ | ! setuprgbcluts/3compute rclut gclut bclut @ -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @]cvx nullproc nullproc -T 3 colorimage}b}e c 4 eq g{/ftoint{1 ~ sub 255 mul round cvi}b/stuffclut{ -cmykindex 3 -1 $ put}b/4compute{~ bit4x mul round cvi get 255 V}b -/invalidcolortable? T |/computecmykclut{setuprgbcluts/bit4x rgbclut length 3 -idiv 4 mul 4 sub |/cmykclut bit4x 4 add string |/cclut cmykclut |/mclut cclut -1 bit4x defsubclut/yclut cclut 2 bit4x defsubclut/kclut cclut 3 bit4x -defsubclut/cmykindex 0 | 0 1 bit1x{@/cmykindex ~ bit1x ~ sub 4 mul | 3 mul @ -rclut ~ get 255 V ~ @ gclut ~ get 255 V ~ bclut ~ get 255 V setrgbcolor -currentcmykcolor ftoint kclut stuffclut ftoint yclut stuffclut ftoint mclut -stuffclut ftoint cclut stuffclut}for}b/doclutimage{/rgbclut ~ | ! -invalidcolortable?{computecmykclut}if/4compute cclut mclut yclut kclut -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @ @]cvx nullproc -nullproc nullproc T 4 colorimage}b}e c 0 eq g{/a{3 mul 3 getinterval -putinterval ~ 3 add ~ 3 copy}b/8lookup/a , |/4lookup{/byte 1 ^ | -4 bitshift a -byte 15 and a}b/2lookup{/byte 1 ^ | -6 bitshift a byte -4 bitshift 3 and a -byte -2 bitshift 3 and a byte 3 and a}b/colorexpand{mystringexp 0 rgbclut 3 -copy 7 -1 $/mylookup , forall ! ! ! ! !}b/createexpandstr{/mystringexp ~ -mystring length mul string |}b/doclutimage{/rgbclut ~ | !/mylookup bpc 8 eq{3 -createexpandstr/8lookup}{bpc 4 eq{6 createexpandstr/4lookup}{12 -createexpandstr/2lookup}?}? , | iw ih bpc[iw 0 0 ih 0 0][s/exec ,/colorexpand -,/exec ,]cvx F 3 colorimage}b}e/colorimage where{! T}{F}? g{/do24image{iw ih 8 -[iw 0 0 ih 0 0]s F 3 colorimage}b}DefIf_El{/rgbtogray{/str ~ |/len str length -|/smlen len 3 idiv |/rstr str |/gstr str 1 len 1 sub getinterval |/bstr str 2 -len 2 sub getinterval | str @ 0 1 smlen 1 sub{@ 3 mul rstr 1 ^ get 0.3 mul -gstr 2 ^ get 0.59 mul add bstr 3 -1 $ get 0.11 mul add round cvi put @}for ! 0 -smlen getinterval}b/do24image{iw ih 8[iw 0 0 ih 0 0][s/exec ,/rgbtogray ,/exec -,]cvx bind image}b}e/doNimage{bpc 24 eq{do24image}{iw ih bpc[iw 0 0 ih 0 0]s -image}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L2 2.0 0 -L2? g{/doclutimage{/rgbclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[ -/Indexed colspABC hival rgbclut]setcolorspace myimagedict @ `/Width iw | -/Height ih |/Decode[0 hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s | -/BitsPerComponent bpc |/Interpolate smoothflag | E image}b/doCMYKclutimage{ -/CMYKclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[/Indexed/DeviceCMYK -hival CMYKclut]setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 -hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent bpc | -/Interpolate smoothflag | E image}b/doNimage{bpc 24 eq{colspABC}{colspA}? -setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode bpc 24 eq{[0 1 0 1 -0 1]}{[0 1]}? |/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent -bpc 24 eq{8}{bpc}? |/Interpolate smoothflag | E image}b/doCMYKimage{ -/DeviceCMYK setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 1 0 -1 0 1 0 1]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent 8 | -/Interpolate smoothflag | E image}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Type3_Hdr 2.0 0 -/GreNewFont{10 dict @ 3 1 $ | @ ` 4 1 $/FontType 3 |/FontMatrix ~ |/FontBBox ~ -|/Encoding 256 array | 0 1 255{Encoding ~/.notdef put}for/CharProcs 257 dict | -CharProcs/.notdef{}put/Metrics 257 dict | Metrics/.notdef 3 -1 $ put/BuildChar -{/char ~ |/fontdict ~ |/charname fontdict/Encoding get char get | fontdict -/Metrics get charname get aload ! setcachedevice fontdict ` Encoding char get -CharProcs ~ get E exec}| E definefont !}|/AddChar{` Encoding 3 1 $ put -CharProcs 3 1 $ put Metrics 3 1 $ put E}| -%%EndResource -%%BeginResource: file Pscript_Win_Type1_Hdr 2.0 0 -/FEbuf 2 string |/FEglyph 3 string |/FE{(G00)FEglyph copy ! 1 ~{@ 16 lt{ -/offset 2 store}{/offset 1 store}? @ 16 FEbuf cvrs FEglyph ~ offset ~ -putinterval 1 ^ ~ FEglyph cvn put}for}bind |/Type1Hdr{11 dict `/FontName ~ | -/PaintType ~ |/FontType 1 |/FontMatrix[1 3 ^ V 0 0 1 6 ^ V 0 0]| !/Encoding -256 array 0 1 255{1 ^ ~/.notdef put}for 3 ^ 3 ^ FE | ! !/FontBBox{0 0 0 0}| & -E currentfile eexec}bind | -%%EndResource -/pp 1 string |/ss 1 string |/rledecodebinary{/DC 0 |/BC 0 |{DC mystring length -ge{exit}if currentfile ss readstring ! 0 get/BC ~ | BC 127 le{/BC BC 1 add | -DC 1 DC BC add 1 sub{mystring ~ currentfile ss readstring ! 0 get put}for}{/BC -257 BC sub | currentfile ss readstring ! 0 get/pp ~ | DC 1 DC BC add 1 sub{ -mystring ~ pp put}for}?/DC DC BC add |}loop mystring}b/rledecodeascii{/DC 0 | -/BC 0 |{DC mystring length ge{exit}if currentfile ss readhexstring ! 0 get/BC -~ | BC 127 le{/BC BC 1 add | DC 1 DC BC add 1 sub{mystring ~ currentfile ss -readhexstring ! 0 get put}for}{/BC 257 BC sub | currentfile ss readhexstring ! -0 get/pp ~ | DC 1 DC BC add 1 sub{mystring ~ pp put}for}?/DC DC BC add |}loop -mystring}b/setup1asciidecodeproc{[/rledecodeascii cvx]cvx bind}b -/setup1binarydecodeproc{[/rledecodebinary cvx]cvx bind}b -%%BeginResource: file Pscript_Win_Compat 2.0 0 -userdict/Pscript_Win_Compat 13 dict dup begin/bd{bind def}bind def/ld{load def -}bd/CB{pop pop pop pop}bind def/B{pop pop pop pop}bind def/$x matrix def/SS{ -/pagesave save def}bind def/RS{/pagesave where{pop pagesave restore}{$x matrix -invertmatrix concat}ifelse}bind def/ANSIVec[0/grave 1/acute 2/circumflex 3 -/tilde 4/macron 5/breve 6/dotaccent 7/dieresis 8/ring 9/cedilla 10 -/hungarumlaut 11/ogonek 12/caron 13/dotlessi 39/quotesingle 96/grave 124/bar -130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135 -/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE -145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150 -/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156 -/oe 159/Ydieresis 160/space 161/exclamdown 164/currency 165/yen 166/brokenbar -167/section 168/dieresis 169/copyright 170/ordfeminine 171/guillemotleft 172 -/logicalnot 173/hyphen 174/registered 175/macron 176/degree 177/plusminus 178 -/twosuperior 179/threesuperior 180/acute 181/mu 182/paragraph 183 -/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 187 -/guillemotright 188/onequarter 189/onehalf 190/threequarters 191/questiondown -192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198 -/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204 -/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve -211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223 -/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229 -/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis -236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242 -/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248 -/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254 -/thorn 255/ydieresis]def currentdict{dup type/operatortype eq{[exch]cvx def}{ -pop pop}ifelse}forall/initialize{currentdict exch begin begin}bind def -/terminate{/@FL where not{pop end end}{pop}ifelse}bind def/suspend/terminate -load def/resume/initialize load def/M/moveto load def end put/Courier findfont -10 scalefont setfont -%%EndResource -end /ProcSet defineresource pop -%%EndResource -%%EndProlog - -%%BeginSetup -Pscript_Win_Compat dup /initialize get exec -[ 0 1.000 -1.000 0 0 0 ] false /Pscript_Win_Driver /ProcSet findresource dup /initialize get exec - - -/mysetup [ 0.240 0 0 -0.240 8.880 592.800 ] | -%%EndSetup - -%%Page: 1 1 -%%BeginPageSetup -userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 2550 3300 rf ; -%%EndPageSetup - -: 653 799 159 65 rc 0 0 0 sco %%IncludeFont: Helvetica -(F0) cvn -0.930 - (Helvetica) cvn /Type1 -T -(Helvetica) cvn -mF -(F0_43_57) cvn -F0 -43 0 0 57 0 0 -xMF -F0_43_57 -Ji -706 799 M -4.092 0 (0)A -; : 653 1639 159 65 rc 0 0 0 sco F0_43_57 -Ji -706 1639 M -4.092 0 (0)A -; : 653 92 159 65 rc 0 0 0 sco F0_43_57 -Ji -706 92 M -4.092 0 (0)A -; : 874 799 159 65 rc 0 0 0 sco F0_43_57 -Ji -927 799 M -4.092 0 (1)A -; : 874 1639 159 65 rc 0 0 0 sco F0_43_57 -Ji -927 1639 M -4.092 0 (1)A -; : 874 92 159 65 rc 0 0 0 sco F0_43_57 -Ji -927 92 M -4.092 0 (1)A -; : 1095 799 159 65 rc 0 0 0 sco F0_43_57 -Ji -1148 799 M -4.092 0 (2)A -; : 1095 1639 159 65 rc 0 0 0 sco F0_43_57 -Ji -1148 1639 M -4.092 0 (2)A -; : 1095 92 159 65 rc 0 0 0 sco F0_43_57 -Ji -1148 92 M -4.092 0 (2)A -; : 1537 799 159 65 rc 0 0 0 sco F0_43_57 -Ji -1590 799 M -4.092 0 (1)A -; : 1537 1639 159 65 rc 0 0 0 sco F0_43_57 -Ji -1590 1639 M -4.092 0 (4)A -; : 1537 92 159 65 rc 0 0 0 sco F0_43_57 -Ji -1590 92 M -4.092 0 (0)A -; : 1316 799 159 65 rc 0 0 0 sco F0_43_57 -Ji -1369 799 M -4.092 0 (0)A -; : 1316 1639 159 65 rc 0 0 0 sco F0_43_57 -Ji -1369 1639 M -4.092 0 (3)A -; : 1316 92 159 65 rc 0 0 0 sco F0_43_57 -Ji -1369 92 M -4.092 0 (3)A -; : 1757 799 159 65 rc 0 0 0 sco F0_43_57 -Ji -1810 799 M -4.092 0 (2)A -; : 1757 1639 159 65 rc 0 0 0 sco F0_43_57 -Ji -1810 1639 M -4.092 0 (5)A -; : 1757 92 159 65 rc 0 0 0 sco F0_43_57 -Ji -1810 92 M -4.092 0 (1)A -; : 1978 799 159 65 rc 0 0 0 sco F0_43_57 -Ji -2031 799 M -4.092 0 (0)A -; : 1978 1639 159 65 rc 0 0 0 sco F0_43_57 -Ji -2031 1639 M -4.092 0 (0)A -; : 1978 92 159 65 rc 0 0 0 sco F0_43_57 -Ji -2031 92 M -4.092 0 (2)A -; : 2199 799 159 65 rc 0 0 0 sco F0_43_57 -Ji -2252 799 M -4.092 0 (1)A -; : 2199 1639 159 65 rc 0 0 0 sco F0_43_57 -Ji -2252 1639 M -4.092 0 (1)A -; : 2199 92 159 65 rc 0 0 0 sco F0_43_57 -Ji -2252 92 M -4.092 0 (3)A -; : 2420 799 159 65 rc 0 0 0 sco F0_43_57 -Ji -2473 799 M -4.092 0 (2)A -; : 2420 1639 159 65 rc 0 0 0 sco F0_43_57 -Ji -2473 1639 M -4.092 0 (2)A -; : 2420 92 159 65 rc 0 0 0 sco F0_43_57 -Ji -2473 92 M -4.092 0 (0)A -; : 2641 799 159 65 rc 0 0 0 sco F0_43_57 -Ji -2694 799 M -4.092 0 (0)A -; : 2641 1639 159 65 rc 0 0 0 sco F0_43_57 -Ji -2694 1639 M -4.092 0 (3)A -; : 2862 1639 159 65 rc 0 0 0 sco F0_43_57 -Ji -2915 1639 M -4.092 0 (4)A -; : 108 799 689 65 rc 0 0 0 sco F0_43_57 -Ji -161 799 M -4.414 0 (STEP TYPE 3)A -; : 108 1639 689 65 rc 0 0 0 sco F0_43_57 -Ji -161 1639 M -4.414 0 (STEP TYPE 4)A -; : 108 92 689 65 rc 0 0 0 sco F0_43_57 -Ji -161 92 M -4.414 0 (STEP TYPE 2)A -; : 180 976 477 65 rc 0 0 0 sco F0_43_57 -Ji -233 976 M -4.124 0 (phase-A)A -; : 180 1816 477 65 rc 0 0 0 sco F0_43_57 -Ji -233 1816 M -4.124 0 (phase-A)A -; : 180 269 477 65 rc 0 0 0 sco F0_43_57 -Ji -233 269 M -4.124 0 (phase-A)A -; : 180 1153 477 65 rc 0 0 0 sco F0_43_57 -Ji -233 1153 M -4.124 0 (phase-B)A -; : 180 1993 477 65 rc 0 0 0 sco F0_43_57 -Ji -233 1993 M -4.124 0 (phase-B)A -; : 180 446 477 65 rc 0 0 0 sco F0_43_57 -Ji -233 446 M -4.124 0 (phase-B)A -; : 180 1330 477 65 rc 0 0 0 sco F0_43_57 -Ji -233 1330 M -4.215 0 (phase-C)A -; : 180 2170 477 65 rc 0 0 0 sco F0_43_57 -Ji -233 2170 M -4.215 0 (phase-C)A -; : 0 0 3229 2391 rc -631 521 N M 177 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -808 521 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -808 521 N M 44 -88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -852 433 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -852 433 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1250 433 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1250 433 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1294 521 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1294 521 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1692 521 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1692 521 N M 44 -88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1736 433 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1736 433 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2134 433 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2134 433 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2178 521 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2178 521 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2576 521 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -631 256 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1029 256 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1029 256 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1073 344 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1073 344 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1471 344 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1471 344 N M 44 -88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 256 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 256 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1913 256 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1913 256 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1957 344 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1957 344 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2355 344 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2355 344 N M 44 -88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2399 256 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2399 256 N M 177 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2576 256 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 57 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 64 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 79 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 94 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 109 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 139 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 154 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 169 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 184 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 199 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 214 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 229 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 244 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 259 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 274 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 289 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 319 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 349 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 364 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 379 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 409 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 424 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 439 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 454 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 469 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 499 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 514 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 529 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 544 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 559 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 574 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 589 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 604 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1604 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1611 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1626 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1641 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1656 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1686 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1716 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1731 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1746 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1761 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1776 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1791 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1806 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1821 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1836 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1866 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1881 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1896 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1911 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1926 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1941 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1956 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1971 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1986 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 2001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 2016 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 2031 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 2046 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 2061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 2076 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 2091 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 2106 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 2121 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 2136 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 2151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 2166 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 2181 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 2196 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 2211 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 2226 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 2241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 2256 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 2271 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 2286 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 2301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 2316 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 2331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 764 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 772 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 787 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 802 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 817 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 832 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 847 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 862 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 877 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 907 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 922 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 937 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 952 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 967 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 982 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 997 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1012 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1027 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1042 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1057 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1072 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1087 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1102 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1117 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1132 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1147 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1177 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1192 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1207 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1222 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1237 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1252 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1267 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1282 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1297 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1312 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1327 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1342 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1357 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1372 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1387 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1402 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1417 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1432 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1447 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1051 1477 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1051 1492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 57 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 64 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 79 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 94 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 109 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 139 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 154 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 169 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 184 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 199 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 214 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 229 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 244 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 259 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 274 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 289 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 319 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 349 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 364 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 379 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 409 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 424 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 439 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 454 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 469 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 499 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 514 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 529 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 544 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 559 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 574 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 589 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 604 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1604 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1611 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1626 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1641 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1656 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1686 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1716 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1731 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1746 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1761 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1776 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1791 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1806 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1821 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1836 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1866 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1881 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1896 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1911 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1926 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1941 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1956 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1971 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1986 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 2001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 2016 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 2031 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 2046 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 2061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 2076 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 2091 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 2106 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 2121 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 2136 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 2151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 2166 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 2181 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 2196 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 2211 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 2226 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 2241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 2256 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 2271 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 2286 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 2301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 2316 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 2331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 764 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 772 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 787 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 802 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 817 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 832 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 847 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 862 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 877 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 907 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 922 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 937 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 952 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 967 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 982 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 997 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1012 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1027 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1042 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1057 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1072 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1087 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1102 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1117 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1132 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1147 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1177 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1192 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1207 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1222 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1237 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1252 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1267 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1282 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1297 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1312 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1327 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1342 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1357 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1372 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1387 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1402 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1417 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1432 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1447 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1272 1477 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1272 1492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 57 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 64 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 79 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 94 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 109 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 139 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 154 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 169 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 184 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 199 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 214 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 229 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 244 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 259 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 274 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 289 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 319 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 349 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 364 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 379 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 409 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 424 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 439 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 454 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 469 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 499 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 514 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 529 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 544 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 559 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 574 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 589 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 604 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1604 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1611 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1626 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1641 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1656 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1686 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1716 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1731 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1746 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1761 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1776 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1791 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1806 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1821 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1836 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1866 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1881 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1896 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1911 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1926 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1941 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1956 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1971 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1986 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 2001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 2016 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 2031 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 2046 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 2061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 2076 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 2091 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 2106 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 2121 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 2136 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 2151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 2166 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 2181 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 2196 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 2211 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 2226 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 2241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 2256 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 2271 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 2286 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 2301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 2316 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 2331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 764 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 772 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 787 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 802 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 817 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 832 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 847 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 862 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 877 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 907 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 922 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 937 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 952 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 967 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 982 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 997 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1012 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1027 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1042 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1057 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1072 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1087 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1102 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1117 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1132 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1147 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1177 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1192 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1207 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1222 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1237 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1252 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1267 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1282 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1297 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1312 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1327 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1342 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1357 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1372 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1387 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1402 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1417 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1432 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1447 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1493 1477 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1493 1492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 57 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 64 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 79 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 94 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 109 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 139 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 154 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 169 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 184 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 199 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 214 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 229 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 244 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 259 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 274 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 289 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 319 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 349 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 364 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 379 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 409 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 424 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 439 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 454 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 469 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 499 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 514 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 529 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 544 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 559 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 574 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 589 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 604 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1604 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1611 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1626 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1641 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1656 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1686 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1716 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1731 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1746 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1761 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1776 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1791 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1806 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1821 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1836 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1866 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1881 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1896 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1911 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1926 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1941 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1956 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1971 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1986 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 2001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 2016 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 2031 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 2046 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 2061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 2076 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 2091 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 2106 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 2121 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 2136 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 2151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 2166 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 2181 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 2196 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 2211 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 2226 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 2241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 2256 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 2271 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 2286 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 2301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 2316 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 2331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 764 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 772 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 787 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 802 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 817 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 832 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 847 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 862 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 877 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 907 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 922 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 937 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 952 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 967 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 982 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 997 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1012 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1027 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1042 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1057 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1072 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1087 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1102 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1117 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1132 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1147 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1177 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1192 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1207 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1222 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1237 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1252 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1267 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1282 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1297 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1312 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1327 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1342 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1357 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1372 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1387 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1402 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1417 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1432 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1447 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1714 1477 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1714 1492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 57 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 64 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 79 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 94 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 109 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 139 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 154 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 169 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 184 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 199 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 214 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 229 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 244 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 259 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 274 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 289 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 319 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 349 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 364 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 379 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 409 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 424 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 439 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 454 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 469 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 499 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 514 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 529 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 544 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 559 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 574 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 589 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 604 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1604 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1611 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1626 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1641 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1656 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1686 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1716 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1731 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1746 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1761 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1776 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1791 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1806 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1821 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1836 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1866 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1881 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1896 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1911 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1926 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1941 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1956 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1971 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1986 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 2001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 2016 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 2031 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 2046 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 2061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 2076 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 2091 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 2106 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 2121 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 2136 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 2151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 2166 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 2181 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 2196 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 2211 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 2226 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 2241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 2256 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 2271 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 2286 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 2301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 2316 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 2331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 764 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 772 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 787 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 802 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 817 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 832 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 847 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 862 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 877 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 907 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 922 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 937 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 952 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 967 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 982 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 997 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1012 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1027 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1042 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1057 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1072 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1087 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1102 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1117 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1132 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1147 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1177 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1192 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1207 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1222 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1237 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1252 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1267 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1282 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1297 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1312 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1327 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1342 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1357 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1372 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1387 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1402 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1417 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1432 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1447 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1935 1477 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1935 1492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 57 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 64 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 79 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 94 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 109 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 139 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 154 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 169 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 184 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 199 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 214 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 229 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 244 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 259 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 274 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 289 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 319 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 349 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 364 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 379 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 409 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 424 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 439 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 454 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 469 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 499 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 514 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 529 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 544 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 559 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 574 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 589 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 604 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1604 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1611 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1626 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1641 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1656 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1686 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1716 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1731 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1746 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1761 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1776 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1791 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1806 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1821 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1836 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1866 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1881 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1896 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1911 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1926 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1941 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1956 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1971 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1986 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 2001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 2016 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 2031 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 2046 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 2061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 2076 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 2091 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 2106 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 2121 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 2136 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 2151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 2166 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 2181 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 2196 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 2211 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 2226 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 2241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 2256 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 2271 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 2286 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 2301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 2316 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 2331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 764 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 772 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 787 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 802 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 817 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 832 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 847 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 862 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 877 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 907 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 922 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 937 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 952 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 967 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 982 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 997 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1012 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1027 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1042 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1057 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1072 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1087 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1102 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1117 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1132 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1147 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1177 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1192 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1207 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1222 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1237 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1252 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1267 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1282 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1297 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1312 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1327 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1342 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1357 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1372 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1387 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1402 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1417 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1432 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1447 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2156 1477 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2156 1492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 57 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 64 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 79 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 94 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 109 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 139 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 154 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 169 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 184 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 199 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 214 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 229 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 244 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 259 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 274 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 289 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 319 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 349 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 364 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 379 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 409 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 424 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 439 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 454 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 469 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 499 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 514 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 529 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 544 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 559 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 574 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 589 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 604 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1604 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1611 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1626 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1641 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1656 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1686 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1716 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1731 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1746 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1761 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1776 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1791 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1806 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1821 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1836 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1866 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1881 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1896 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1911 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1926 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1941 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1956 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1971 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1986 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 2001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 2016 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 2031 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 2046 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 2061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 2076 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 2091 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 2106 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 2121 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 2136 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 2151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 2166 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 2181 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 2196 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 2211 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 2226 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 2241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 2256 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 2271 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 2286 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 2301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 2316 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 2331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 764 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 772 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 787 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 802 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 817 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 832 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 847 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 862 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 877 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 907 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 922 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 937 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 952 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 967 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 982 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 997 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1012 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1027 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1042 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1057 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1072 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1087 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1102 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1117 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1132 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1147 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1177 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1192 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1207 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1222 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1237 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1252 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1267 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1282 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1297 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1312 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1327 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1342 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1357 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1372 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1387 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1402 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1417 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1432 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1447 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2377 1477 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2377 1492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 57 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 64 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 79 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 94 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 109 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 139 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 154 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 169 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 184 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 199 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 214 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 229 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 244 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 259 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 274 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 289 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 319 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 349 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 364 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 379 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 409 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 424 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 439 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 454 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 469 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 499 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 514 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 529 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 544 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 559 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 574 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 589 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 604 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1604 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1611 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1626 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1641 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1656 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1686 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1716 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1731 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1746 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1761 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1776 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1791 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1806 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1821 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1836 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1866 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1881 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1896 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1911 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1926 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1941 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1956 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1971 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1986 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 2001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 2016 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 2031 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 2046 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 2061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 2076 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 2091 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 2106 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 2121 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 2136 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 2151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 2166 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 2181 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 2196 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 2211 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 2226 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 2241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 2256 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 2271 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 2286 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 2301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 2316 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 2331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 764 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 772 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 787 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 802 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 817 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 832 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 847 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 862 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 877 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 907 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 922 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 937 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 952 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 967 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 982 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 997 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1012 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1027 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1042 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1057 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1072 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1087 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1102 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1117 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1132 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1147 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1177 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1192 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1207 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1222 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1237 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1252 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1267 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1282 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1297 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1312 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1327 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1342 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1357 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1372 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1387 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1402 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1417 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1432 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1447 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2598 1477 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2598 1492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 1604 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 1611 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 1626 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 1641 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 1656 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 1671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 1686 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 1716 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 1731 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 1746 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 1761 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 1776 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 1791 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 1806 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 1821 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 1836 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 1866 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 1881 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 1896 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 1911 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 1926 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 1941 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 1956 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 1971 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 1986 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 2001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 2016 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 2031 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 2046 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 2061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 2076 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 2091 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 2106 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 2121 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 2136 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 2151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 2166 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 2181 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 2196 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 2211 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 2226 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 2241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 2256 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 2271 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 2286 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 2301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3040 2316 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3040 2331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1604 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1611 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1626 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1641 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1656 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1686 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1716 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1731 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1746 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1761 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1776 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1791 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1806 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1821 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1836 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1866 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1881 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1896 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1911 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1926 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1941 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1956 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1971 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1986 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 2001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 2016 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 2031 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 2046 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 2061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 2076 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 2091 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 2106 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 2121 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 2136 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 2151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 2166 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 2181 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 2196 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 2211 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 2226 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 2241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 2256 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 2271 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 2286 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 2301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 2316 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 2331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 764 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 772 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 787 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 802 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 817 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 832 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 847 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 862 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 877 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 907 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 922 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 937 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 952 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 967 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 982 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 997 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1012 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1027 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1042 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1057 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1072 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1087 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1102 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1117 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1132 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1147 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1177 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1192 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1207 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1222 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1237 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1252 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1267 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1282 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1297 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1312 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1327 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1342 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1357 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1372 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1387 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1402 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1417 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1432 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1447 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2819 1477 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2819 1492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 57 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 64 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 79 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 94 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 109 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 139 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 154 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 169 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 184 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 199 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 214 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 229 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 244 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 259 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 274 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 289 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 319 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 349 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 364 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 379 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 409 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 424 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 439 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 454 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 469 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 499 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 514 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 529 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 544 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 559 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 574 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 589 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 604 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1604 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1611 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1626 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1641 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1656 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1686 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1716 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1731 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1746 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1761 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1776 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1791 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1806 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1821 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1836 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1866 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1881 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1896 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1911 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1926 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1941 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1956 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1971 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1986 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 2001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 2016 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 2031 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 2046 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 2061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 2076 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 2091 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 2106 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 2121 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 2136 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 2151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 2166 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 2181 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 2196 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 2211 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 2226 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 2241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 2256 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 2271 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 2286 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 2301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 2316 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 2331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 764 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 772 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 787 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 802 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 817 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 832 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 847 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 862 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 877 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 907 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 922 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 937 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 952 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 967 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 982 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 997 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1012 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1027 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1042 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1057 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1072 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1087 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1102 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1117 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1132 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1147 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1177 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1192 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1207 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1222 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1237 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1252 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1267 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1282 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1297 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1312 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1327 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1342 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1357 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1372 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1387 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1402 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1417 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1432 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1447 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -609 1477 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -609 1492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 57 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 64 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 79 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 94 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 109 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 124 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 139 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 154 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 169 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 184 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 199 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 214 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 229 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 244 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 259 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 274 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 289 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 304 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 319 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 334 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 349 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 364 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 379 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 394 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 409 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 424 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 439 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 454 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 469 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 484 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 499 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 514 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 529 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 544 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 559 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 574 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 589 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 604 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1604 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1611 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1626 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1641 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1656 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1671 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1686 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1701 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1716 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1731 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1746 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1761 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1776 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1791 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1806 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1821 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1836 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1851 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1866 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1881 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1896 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1911 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1926 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1941 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1956 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1971 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1986 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 2001 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 2016 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 2031 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 2046 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 2061 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 2076 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 2091 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 2106 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 2121 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 2136 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 2151 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 2166 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 2181 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 2196 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 2211 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 2226 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 2241 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 2256 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 2271 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 2286 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 2301 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 2316 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 2331 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 764 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 772 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 787 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 802 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 817 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 832 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 847 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 862 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 877 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 892 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 907 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 922 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 937 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 952 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 967 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 982 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 997 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1012 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1027 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1042 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1057 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1072 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1087 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1102 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1117 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1132 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1147 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1177 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1192 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1207 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1222 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1237 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1252 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1267 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1282 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1297 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1312 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1327 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1342 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1357 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1372 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1387 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1402 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1417 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1432 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1447 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1462 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -830 1477 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -830 1492 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -631 963 N M 177 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -808 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -808 963 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -852 1051 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -852 1051 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1250 1051 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1250 1051 N M 44 -88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1294 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1294 963 N M 177 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1471 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1471 963 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1051 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1051 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1913 1051 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1913 1051 N M 44 -88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1957 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1957 963 N M 177 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2134 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2134 963 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2178 1051 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2178 1051 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2576 1051 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2576 1051 N M 44 -88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2620 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2620 963 N M 177 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2797 963 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -631 1228 N M 177 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -808 1228 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -808 1228 N M 44 -88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -852 1140 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -852 1140 N M 177 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1029 1140 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1029 1140 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1073 1228 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1073 1228 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1471 1228 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1471 1228 N M 44 -88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1140 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1140 N M 177 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1692 1140 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1692 1140 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1736 1228 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1736 1228 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2134 1228 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2134 1228 N M 44 -88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2178 1140 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2178 1140 N M 177 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2355 1140 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2355 1140 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2399 1228 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2399 1228 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2797 1228 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -631 1405 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1029 1405 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1029 1405 N M 44 -88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1073 1317 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1073 1317 N M 177 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1250 1317 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1250 1317 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1294 1405 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1294 1405 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1692 1405 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1692 1405 N M 44 -88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1736 1317 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1736 1317 N M 177 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1913 1317 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1913 1317 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1957 1405 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1957 1405 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2355 1405 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2355 1405 N M 44 -88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2399 1317 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2399 1317 N M 177 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2576 1317 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2576 1317 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2620 1405 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2620 1405 N M 177 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2797 1405 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -631 1803 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1029 1803 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1029 1803 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1073 1891 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -631 2068 N M 177 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -808 2068 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -808 2068 N M 44 -88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -852 1980 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -852 1980 N M 619 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1471 1980 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1471 1980 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 2068 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -631 2245 N M 619 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1250 2245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1250 2245 N M 44 -89 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1294 2156 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1294 2156 N M 619 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1913 2156 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1913 2156 N M 44 89 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1957 2245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1957 2245 N M 619 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2576 2245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2576 2245 N M 44 -89 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2620 2156 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2620 2156 N M 398 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3018 2156 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 2068 N M 619 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2134 2068 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2134 2068 N M 44 -88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2178 1980 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2178 1980 N M 619 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2797 1980 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2797 1980 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2841 2068 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2841 2068 N M 177 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3018 2068 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1073 1891 N M 619 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1692 1891 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1692 1891 N M 44 -88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1736 1803 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1736 1803 N M 619 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2355 1803 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2355 1803 N M 44 88 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2399 1891 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2399 1891 N M 619 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3018 1891 N M 0 0 rr : 0 0 0 sco O ; -LH -pagesave restore -%%PageTrailer - -%%Trailer -%%DocumentNeededFonts: -%%DocumentSuppliedFonts: -/Pscript_Win_Driver /ProcSet findresource dup /terminate get exec -Pscript_Win_Compat dup /terminate get exec -%%EOF diff --git a/docs/src/hal/images/stepgen-type2-4.png b/docs/src/hal/images/stepgen-type2-4.png deleted file mode 100644 index 92956abadcd..00000000000 Binary files a/docs/src/hal/images/stepgen-type2-4.png and /dev/null differ diff --git a/docs/src/hal/images/stepgen-type2-4.svg b/docs/src/hal/images/stepgen-type2-4.svg deleted file mode 100755 index 9374f2995d2..00000000000 --- a/docs/src/hal/images/stepgen-type2-4.svg +++ /dev/null @@ -1,1040 +0,0 @@ - - - -stepgen-type2.4image/svg+xmlstepgen-type2.423.11.2011linuxcnc.orgStepgenCopyright 2011 linuxcnc.org0 - - - - - -1 - - - - - -2 - - - - - -3 - - - - - - - - -0 - - - - - -1 - - - - - -2 - - - - - -3 - - - - - - - - -0 - - - - - -phase-A - - - - - -phase-B - - - - - - - - - - - - - - -STEP TYPE 2 - - - - - -STEP TYPE 3 - - - - - -STEP TYPE 4 - - - - - - - - -0 - - - - - -1 - - - - - -2 - - - - - -0 - - - - - -1 - - - - - -2 - - - - - -0 - - - - - -1 - - - - - -2 - - - - - -0 - - - - - - - - - - - -0 - - - - - -1 - - - - - -2 - - - - - -3 - - - - - -4 - - - - - -5 - - - - - -0 - - - - - -1 - - - - - -2 - - - - - -3 - - - - - -4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -phase-A - - - - - -phase-B - - - - - -phase-C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -phase-A - - -phase-B - - -phase-C - - - diff --git a/docs/src/hal/images/stepgen-type5-10.eps b/docs/src/hal/images/stepgen-type5-10.eps deleted file mode 100644 index 6d3d8e19d65..00000000000 --- a/docs/src/hal/images/stepgen-type5-10.eps +++ /dev/null @@ -1,3250 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Title: D:\JMK\Drawings\hal-stepgen-type5-10.FC7 -%%BoundingBox: 19 9 784 593 -%%Creator: PSCRIPT.DRV Version 4.0 -%%CreationDate: 06/04/04 23:28:12 -%%Pages: 1 -%%Requirements: None -%%DocumentNeededFonts: (atend) -%%DocumentSuppliedFonts: (atend) -%%LanguageLevel: 1 -%%EndComments - -%%BeginProlog -%%BeginProcSet: Pscript_Res_Emul 1.0 0 -/defineresource where{pop}{userdict begin/defineresource{userdict/Resources 2 -copy known{get begin}{15 dict dup begin put}ifelse exch readonly exch -currentdict 1 index known not{dup 30 dict def}if load 3 -1 roll 2 index put -end}bind readonly def/findresource{userdict/Resources get exch get exch get} -bind readonly def/resourceforall{pop pop pop pop}bind readonly def -/resourcestatus{userdict/Resources 2 copy known{get exch 2 copy known{get exch -known{0 -1 true}{pop pop false}ifelse}{pop pop pop false}ifelse}{pop pop false -}ifelse}bind readonly def end}ifelse -%%EndProcSet -%%BeginResource: procset Pscript_Win_Driver 2.0 0 -/Pscript_Win_Driver 200 dict dup begin -%%BeginResource: file Pscript_FatalError 2.0 0 -/FatalErrorIf{{initgraphics findfont exch scalefont setfont counttomark 3 div -cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def -%%EndResource -/VM? {vmstatus exch sub exch pop gt { [ -(This job requires more memory than is available in this printer.) 100 500 -(Try one or more of the following, and then print again:) 100 485 -(In the PostScript dialog box, click Optimize For Portability.) 115 470 -(In the Device Options dialog box, make sure the Available Printer Memory is accurate.) 115 455 -(Reduce the number of fonts in the document.) 115 440 -(Print the document in parts.) 115 425 -12 /Times-Roman showpage -(%%[ PrinterError: Low Printer VM ]%%) = -true FatalErrorIf}if} bind def -%%BeginResource: file Pscript_Win_Utils 2.0 0 -/|/def load def/,/load load |/~/exch , |/?/ifelse , |/!/pop , |/`/begin , |/^ -/index , |/@/dup , |/+/translate , |/$/roll , |/U/userdict , |/M/moveto , |/- -/rlineto , |/&/currentdict , |/:/gsave , |/;/grestore , |/F/false , |/T/true , -|/N/newpath , |/E/end , |/Ac/arc , |/An/arcn , |/A/ashow , |/D/awidthshow , | -/C/closepath , |/V/div , |/O/eofill , |/L/fill , |/I/lineto , |/-C/rcurveto , -|/-M/rmoveto , |/+S/scale , |/Ji/setfont , |/Lc/setlinecap , |/Lj/setlinejoin -, |/Lw/setlinewidth , |/S/show , |/LH/showpage , |/K/stroke , |/W/widthshow , -|/R/rotate , |/b{bind |}bind |/bd{bind |}bind |/xd{~ |}bd/ld{, |}bd/lw/Lw ld -/lc/Lc ld/lj/Lj ld/sg/setgray ld/L2? F/languagelevel where{! languagelevel 2 -ge{! T}if}if |/g{@ not{U/DefIf_save save put}if U/DefIf_bool 2 ^ put}b -/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e{DefIf_El ! -}b/self & |/reinitialize{[/TextInit/GraphInit/UtilsInit counttomark{@ where{ -self eq}{F}?{cvx exec}{!}?}repeat cleartomark}b/initialize{`{/ADO_mxRot ~ | -/TextInitialised? F | reinitialize E}{U/Pscript_Win_Data 200 dict @ ` put -/ADO_mxRot ~ |/TextInitialised? F | reinitialize}?}b/terminate{!{& self eq{ -exit}{E}?}loop E}b/suspend/terminate , |/resume{` Pscript_Win_Data `}b/snap{ -transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~ itransform}b -/dsnap{dtransform round ~ round ~ idtransform}b<04>cvn{}|/setjn{{statusdict -/jobname known{statusdict/jobname 3 -1 $ put}if}stopped cleartomark}b/solid{[] -0 setdash}b/setdsh{0 setdash}b/colspRefresh{}b/rp{4 2 $ M 1 ^ 0 - 0 ~ - neg 0 --}b/rr{1 ^ 0 - 0 ~ - neg 0 - C}b -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L1 2.0 0 -L2? not g{/rf{N rp L}b/fx{1 1 dtransform @ 0 ge{1 sub 1}{1 add -0.25}? 3 -1 $ -@ 0 ge{1 sub 1}{1 add -0.25}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{ -4 -2 $ snap + +S fx rf}b/rs{N rp C K}b/rc{N rp clip N}b/sg{setgray}b/sco{ -setrgbcolor}b/sgco{{sg}{sco}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Utils_L2 2.0 0 -L2? g{/colspA/DeviceGray |/colspABC/DeviceRGB |/setAorABC{{colspA}{colspABC}? -setcolorspace}b/rf/rectfill , |/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5 -}? 3 -1 $ @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ -idtransform}b/BZ{4 -2 $ snap + +S fx rf}b/rs/rectstroke , |/rc/rectclip , |/sg -{@ @ setcolor}b/sco{setcolor}b/colspRefresh{colspABC setcolorspace}b/sgco{{sg -}{sco}?}b/UtilsInit{F setglobal}b/definecolorrendering{/ColorRendering -defineresource !}b/findcolorrendering{@/ColorRendering resourcestatus{! ! -/ColorRendering findresource T}{! F}?}b/selectcolorrendering{@/ColorRendering -resourcestatus{! !/ColorRendering}{!/DefaultColorRendering/ColorRendering}? -findresource setcolorrendering}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Encoding 2.0 0 -/bullets{{/bullet}repeat}b/ANSIEncoding[/grave/acute/circumflex/tilde/macron -/breve/dotaccent/dieresis/ring/cedilla/hungarumlaut/ogonek/caron/dotlessi 18 -bullets StandardEncoding 32 95 getinterval aload ! 3 bullets/quotesinglbase -/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron -/guilsinglleft/OE 4 bullets/quoteleft/quoteright/quotedblleft/quotedblright -/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe 2 bullets -/Ydieresis/space/exclamdown/cent/sterling/currency/yen/brokenbar/section -/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered -/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph -/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter -/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis -/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute -/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls -/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute -/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve -/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex -/udieresis/yacute/thorn/ydieresis]| ANSIEncoding @ 39/quotesingle put 96/grave -put/ANSIEncodingOld ANSIEncoding 256 array copy | ANSIEncodingOld @[138 153 -154 169 172 174 177 178 179 181 185 188 189 190 208 215 221 222 240 247 253 -254]{/bullet put @}forall 166/bar put 176/ring put -%%EndResource -%%BeginResource: file Pscript_Win_Text 2.0 0 -/TextInit{TextInitialised? not{/Pscript_Windows_Font & |/TextInitialised? T | -/fM[1 0 0 -1 0 0]|/mFM matrix |/iMat[1 0 0.212557 neg 1 0 0]|}if}b/xUP null | -/yUP null |/uW null |/xSP null |/ySP null |/sW null |/copyfont{1 ^ length add -dict `{1 ^/FID ne{|}{! !}?}forall & E}b/rF{3 copyfont @ `/Encoding -ANSIEncoding &/CharStrings known{CharStrings/Eth known not{! ANSIEncodingOld} -if}if | E}b/mF{findfont ~{@/Encoding get @ StandardEncoding eq{! T}{{ -ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get -StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{rF}{3 copyfont}? ` -/OrigFontType ~ |/OrigFontName ~ | & E 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 -put fM makefont Pscript_Windows_Font 3 1 $ put}b/xF{scalefont -Pscript_Windows_Font 3 1 $ put}b/xMF{mFM astore makefont Pscript_Windows_Font -3 1 $ put}b/xF2/scalefont , |/xMF2{mFM astore makefont}b/sLT{: Lw -M -currentpoint snap M 0 - 0 Lc K ;}b/sSU{N/uW ~ |/yUP ~ |/xUP ~ |}b/sU{xUP yUP -uW sLT}b/sST{N/sW ~ |/ySP ~ |/xSP ~ |}b/sT{xSP ySP sW sLT}b/sR{: + R 0 0 M}b -/sRxy{: matrix astore concat 0 0 M}b/eR/; , | -%%EndResource -%%BeginResource: file Pscript_Win_Text_Bold 2.0 0 -/mBF{@ 4 copyfont `/FontName ~ |/OrigFontType ~ |/OrigFontName ~ | 0 -FontMatrix idtransform ! &/PaintType known{PaintType 0 eq{/PaintType 2 | -/StrokeWidth ~ |}{PaintType 1 eq PaintType 2 eq or PaintType 3 eq or & -/StrokeWidth known and{StrokeWidth add/StrokeWidth ~ |}{!}?}?}{!}? @ & E -definefont Pscript_Windows_Font 3 1 $ put}b/xBF{Pscript_Windows_Font ` 1 ^ -/FontName get 1 ^ scalefont 3 1 $ scalefont 2 copy ~ | ~ ! | E}b/xMBF{mFM -astore Pscript_Windows_Font ` 1 ^/FontName get 1 ^ makefont 3 1 $ makefont 2 -copy ~ | ~ ! | E}b/xBF2{/sB0 ~ mBF/sB1 sB0 3 -1 $ xBF sB1}b/xMBF2{/sB0 ~ mBF -mFM astore/sB1 sB0 3 -1 $ xMBF sB1}b/sB{: Pscript_Windows_Font currentfont get -Ji @ S ; S}b/asB{: Pscript_Windows_Font currentfont get Ji 3 copy A ; A}b/wsB{ -: Pscript_Windows_Font currentfont get Ji 4 copy W ; W}b/awsB{: -Pscript_Windows_Font currentfont get Ji 6 copy D ; D}b/sBT3{: @ S ; 1 1 -M S}b -/asBT3{: 3 copy A ; 1 1 -M A}b/wsBT3{: 4 copy W ; 1 1 -M W}b/awsBT3{: 6 copy D -; 1 1 -M D}b/mIF{iMat 4 3 -1 $ put 2 copyfont `/OrigFontType ~ |/OrigFontName -~ | @ & E definefont iMat makefont Pscript_Windows_Font 3 1 $ put}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics 2.0 0 -/SavedCTM null |/CTMsave{/SavedCTM SavedCTM currentmatrix |}b/CTMrestore{ -SavedCTM setmatrix}b/mp null |/ADO_mxRot null |/GDIHMatrix null | -/GDIHPatternDict 22 dict | GDIHPatternDict `/PatternType 1 |/PaintType 2 | -/Reps L2?{1}{5}? |/XStep 8 Reps mul |/YStep XStep |/BBox[0 0 XStep YStep]| -/TilingType 1 |/PaintProc{` 1 Lw[]0 setdash PaintData , exec E}b/FGnd null | -/BGnd null |/HS_Horizontal{horiz}b/HS_Vertical{vert}b/HS_FDiagonal{fdiag}b -/HS_BDiagonal{biag}b/HS_Cross{horiz vert}b/HS_DiagCross{fdiag biag}b/MaxXYStep -XStep YStep gt{XStep}{YStep}? |/horiz{Reps{0 4 M XStep 0 - 0 8 +}repeat 0 -8 -Reps mul + K}b/vert{Reps{4 0 M 0 YStep - 8 0 +}repeat 0 -8 Reps mul + K}b/biag -{Reps{0 0 M MaxXYStep @ - 0 YStep neg M MaxXYStep @ - 0 8 +}repeat 0 -8 Reps -mul + 0 YStep M 8 8 - K}b/fdiag{Reps{0 0 M MaxXYStep @ neg - 0 YStep M -MaxXYStep @ neg - 0 8 +}repeat 0 -8 Reps mul + MaxXYStep @ M 8 -8 - K}b E -/makehatch{GDIHPatternDict/PaintData 3 -1 $ put CTMsave GDIHMatrix setmatrix -GDIHPatternDict matrix mp CTMrestore ~ U ~ 2 ^ put}b/h0{/h0/HS_Horizontal -makehatch}b/h1{/h1/HS_Vertical makehatch}b/h2{/h2/HS_FDiagonal makehatch}b/h3{ -/h3/HS_BDiagonal makehatch}b/h4{/h4/HS_Cross makehatch}b/h5{/h5/HS_DiagCross -makehatch}b/GDIBWPatternDict 17 dict @ `/PatternType 1 |/PaintType L2?{1}{2}? -|/RepsV L2?{1}{6}? |/RepsH L2?{1}{5}? |/BBox[0 0 RepsH 1]|/TilingType 1 | -/XStep 1 |/YStep 1 |/Height 8 RepsV mul |/Width 8 |/mx[Width 0 0 Height neg 0 -Height]|/FGnd null |/BGnd null |/SetBGndFGnd L2?{{BGnd null ne{BGnd aload ! -sgco BBox aload ! 2 ^ sub ~ 3 ^ sub ~ rf}if FGnd null ne{FGnd aload ! sgco}if} -}{{}}? b/PaintProc{` SetBGndFGnd RepsH{Width Height F mx PaintData imagemask -Width 0 +}repeat E}b E |/GDIBWPatternMx null |/pfprep{save 4 1 $ -/PatternOfTheDay 4 1 $ GDIBWPatternDict `/PaintData ~ |/BGnd ~ |/FGnd ~ | E -CTMsave GDIBWPatternMx setmatrix GDIBWPatternDict matrix mp CTMrestore ~ !}b -/hrf null |/prf{pfprep ~ 6 1 $ 5 hrf restore}b/GraphInit{GDIHMatrix null eq{ -/SavedCTM matrix | : ADO_mxRot concat 0 0 snap + : 0.48 @ GDIHPatternDict ` -YStep mul ~ XStep mul ~ dsnap YStep V ~ XStep V ~ E +S/GDIHMatrix matrix -currentmatrix readonly | ; : 0.24 -0.24 +S GDIBWPatternDict ` Width Height E -dsnap +S/GDIBWPatternMx matrix currentmatrix readonly | ; ;}if}b/cirp{360 0 An -C}b/ellp{CTMsave + +S 0.5 0 M 0 0 0.5 360 0 An C CTMrestore}b/rrp{/rad ~ |/y2 -~ |/x2 ~ |/y1 ~ |/x1 ~ | x2 x1 add 2 V y1 M x1 y1 x1 y2 rad arct x1 y2 x2 y2 -rad arct x2 y2 x2 y1 rad arct x2 y1 x1 y1 rad arct C}b/RRp{CTMsave + +S/dyS ~ -|/dxS ~ | dxS 2 V 0 M 0 0 0 dyS 0.5 arct 0 dyS dxS dyS 0.5 arct dxS dyS dxS 0 -0.5 arct dxS 0 0 0 0.5 arct C CTMrestore}b -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L1 2.0 0 -L2? not g{/arct{arcto ! ! ! !}b/GDIpattfill{@ ` BGnd null ne PaintType 2 eq -and{: BGnd aload ! sgco fEOFill{O}{L}? ; FGnd aload ! U/fGray 2 ^ put{2}{4}? --1 $}if E @ patterncalc : 4 ^/PaintType get 2 eq{fGray{6 -1 $ sg}{8 -3 $ sco}? -}if fEOFill{eoclip}{clip}? N patternfill ; N}b/hrf{/fGray 1 ^ 6 eq | -4 $ N rp -C/fEOFill F | GDIpattfill}b/hfMain{/fEOFill ~ |/fGray ~ | GDIpattfill}b/hf{T -hfMain}b/hfW{F hfMain}b/hs{currentpoint strokepath M hfW}b/pfMain{/fEOFill ~ | -pfprep GDIpattfill restore N}b/pf{T pfMain}b/pfW{F pfMain}b/ps{currentpoint -strokepath M pfW}b/mpstr 1 string |/mp{~ @ length 12 add dict copy ` -/PatternCTM matrix currentmatrix |/PatternMatrix ~ |/PatWidth XStep mpstr -length mul |/PatHeight YStep |/FontType 3 |/Encoding 256 array | 3 string 0 1 -255{Encoding ~ @ 3 ^ cvs cvn put}for !/FontMatrix matrix |/FontBBox BBox | -/BuildChar{! @ ` XStep 0 FontBBox aload ! setcachedevice/PaintProc , E : exec -;}b & E ~ @ 3 -1 $ definefont}b/patterncalc{` : PatternCTM setmatrix -PatternMatrix concat BBox aload ! ! ! + pathbbox ; PatHeight V ceiling 4 1 $ -PatWidth V ceiling 4 1 $ PatHeight V floor 4 1 $ PatWidth V floor 4 1 $ 2 ^ -sub cvi abs ~ 3 ^ sub cvi abs ~ 4 2 $ PatHeight mul ~ PatWidth mul ~ E}b -/patternfill{5 -1 $ @ ` Ji PatternCTM setmatrix PatternMatrix concat 0 2 ^ 2 ^ -M 0 1 mpstr length 1 sub{1 ^ mpstr 3 1 $ put}for ! 2 ^{currentpoint 5 ^{mpstr -S}repeat YStep add M}repeat ! ! ! ! E}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Graphics_L2 2.0 0 -L2? g{/mp/makepattern , |/hrf{6 eq setAorABC setpattern rectfill}b/hf{ -setAorABC setpattern O}b/hfW{setAorABC setpattern L}b/hs{setAorABC setpattern -K}b/pf{pfprep setpattern O restore N}b/pfW{pfprep setpattern L restore N}b/ps{ -pfprep setpattern K restore N}b}e -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images 2.0 0 -/iw 0 |/ih 0 |/im_save 0 |/s 0 |/polarity 0 |/smoothflag 0 |/mystring 0 |/bpc -0 |/setup1asciiproc{[currentfile mystring/readhexstring cvx/! cvx]cvx bind}b -/setup1binaryproc{[currentfile mystring/readstring cvx/! cvx]cvx bind}b -/setup2asciiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}b -/setup2binaryproc{currentfile/RunLengthDecode filter}b/mycolorspace{colspABC}| -/myimagedict{/myimagedict 10 dict | myimagedict @ `/ImageType 1 | -/MultipleDataSource F | E}b/imageprocarray[/setup1binaryproc/setup1asciiproc -/setup2binaryproc/setup2asciiproc/setup1binarydecodeproc/setup1asciidecodeproc -]|/L2Polarity{{[1 0]}{[0 1]}?}b/Q{/im_save save | imageprocarray ~ get/s ~ , | -L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring ~ -string |/bpc ~ |/ih ~ |/iw ~ |}b/X{/im_save save | imageprocarray ~ get/s ~ , -| L2Polarity/polarity ~ |/smoothflag ~ | snap +/dx 2 ^ |/dy 1 ^ | +S/mystring -~ string |/bpc ~ |/ih ~ |/iw ~ |}b/Z{im_save restore}b/Y{sgco myimagedict @ ` -/Width iw |/Height ih |/Decode polarity |/ImageMatrix[iw 0 0 ih 0 0]| -/DataSource s |/BitsPerComponent 1 |/Interpolate smoothflag | E imagemask}b -%%EndResource -%%BeginResource: file Pscript_Win_BW_Images_L1 2.0 0 -L2? not g{/setup2asciiproc{[/Level2ImagesError , aload ! T FatalErrorIf}b -/setup2binaryproc/setup2asciiproc , |/L2Polarity{}|/Y{sgco iw ih polarity[iw 0 -0 ih 0 0]s imagemask}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L1 2.0 0 -L2? not g{/testsystemdict{where{systemdict eq{T}{F}?}{F}?}b/c 1 |/colorimage -where{! T}{F}?{/c 0 statusdict `/processcolors where{! ! processcolors}{ -/deviceinfo where{! deviceinfo/Colors known{!{deviceinfo/Colors get}}if}if}? E -| c 0 ne{/colorimage testsystemdict/setcolortransfer testsystemdict -/currentcolortransfer testsystemdict/currentcmykcolor testsystemdict and and -and not{/c 0 |}if}if}if c @ 1 ne ~ @ 3 ne ~ 4 ne and and{/c 0 |}if c 1 eq g{ -/expandbw{expandfactor mul round cvi bwclut ~ get 255 V}b/doclutimage{!/bwclut -~ | bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/expandfactor ~ |[/expandbw ,/exec , @ -currenttransfer ~]cvx bind settransfer iw ih bpc[iw 0 0 ih 0 0]s image}b}e c @ -3 eq ~ 4 eq or g{/nullproc{{}}|/concatutil{/exec , 7 -1 $/exec ,}b/defsubclut{ -1 add getinterval |}b/spconcattransfer{/Dclut ~ |/Cclut ~ |/Bclut ~ |/Aclut ~ -|/ncompute ~ , | currentcolortransfer[{Aclut ncompute}concatutil]cvx[{Bclut -ncompute}concatutil]cvx[{Cclut ncompute}concatutil]cvx[{Dclut ncompute} -concatutil]cvx setcolortransfer}b/setuprgbcluts{/bit3x rgbclut length 3 sub | -/bit1x bit3x 3 idiv |/rclut rgbclut |/gclut rclut 1 bit3x defsubclut/bclut -rclut 2 bit3x defsubclut}b}e c 3 eq g{/3compute{~ bit3x mul round cvi get 255 -V}b/doclutimage{/rgbclut ~ | ! setuprgbcluts/3compute rclut gclut bclut @ -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @]cvx nullproc nullproc -T 3 colorimage}b}e c 4 eq g{/ftoint{1 ~ sub 255 mul round cvi}b/stuffclut{ -cmykindex 3 -1 $ put}b/4compute{~ bit4x mul round cvi get 255 V}b -/invalidcolortable? T |/computecmykclut{setuprgbcluts/bit4x rgbclut length 3 -idiv 4 mul 4 sub |/cmykclut bit4x 4 add string |/cclut cmykclut |/mclut cclut -1 bit4x defsubclut/yclut cclut 2 bit4x defsubclut/kclut cclut 3 bit4x -defsubclut/cmykindex 0 | 0 1 bit1x{@/cmykindex ~ bit1x ~ sub 4 mul | 3 mul @ -rclut ~ get 255 V ~ @ gclut ~ get 255 V ~ bclut ~ get 255 V setrgbcolor -currentcmykcolor ftoint kclut stuffclut ftoint yclut stuffclut ftoint mclut -stuffclut ftoint cclut stuffclut}for}b/doclutimage{/rgbclut ~ | ! -invalidcolortable?{computecmykclut}if/4compute cclut mclut yclut kclut -spconcattransfer iw ih bpc[iw 0 0 ih 0 0][s/exec ,/@ , @ @]cvx nullproc -nullproc nullproc T 4 colorimage}b}e c 0 eq g{/a{3 mul 3 getinterval -putinterval ~ 3 add ~ 3 copy}b/8lookup/a , |/4lookup{/byte 1 ^ | -4 bitshift a -byte 15 and a}b/2lookup{/byte 1 ^ | -6 bitshift a byte -4 bitshift 3 and a -byte -2 bitshift 3 and a byte 3 and a}b/colorexpand{mystringexp 0 rgbclut 3 -copy 7 -1 $/mylookup , forall ! ! ! ! !}b/createexpandstr{/mystringexp ~ -mystring length mul string |}b/doclutimage{/rgbclut ~ | !/mylookup bpc 8 eq{3 -createexpandstr/8lookup}{bpc 4 eq{6 createexpandstr/4lookup}{12 -createexpandstr/2lookup}?}? , | iw ih bpc[iw 0 0 ih 0 0][s/exec ,/colorexpand -,/exec ,]cvx F 3 colorimage}b}e/colorimage where{! T}{F}? g{/do24image{iw ih 8 -[iw 0 0 ih 0 0]s F 3 colorimage}b}DefIf_El{/rgbtogray{/str ~ |/len str length -|/smlen len 3 idiv |/rstr str |/gstr str 1 len 1 sub getinterval |/bstr str 2 -len 2 sub getinterval | str @ 0 1 smlen 1 sub{@ 3 mul rstr 1 ^ get 0.3 mul -gstr 2 ^ get 0.59 mul add bstr 3 -1 $ get 0.11 mul add round cvi put @}for ! 0 -smlen getinterval}b/do24image{iw ih 8[iw 0 0 ih 0 0][s/exec ,/rgbtogray ,/exec -,]cvx bind image}b}e/doNimage{bpc 24 eq{do24image}{iw ih bpc[iw 0 0 ih 0 0]s -image}?}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Co_Images_L2 2.0 0 -L2? g{/doclutimage{/rgbclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[ -/Indexed colspABC hival rgbclut]setcolorspace myimagedict @ `/Width iw | -/Height ih |/Decode[0 hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s | -/BitsPerComponent bpc |/Interpolate smoothflag | E image}b/doCMYKclutimage{ -/CMYKclut ~ | ! bpc @ 8 eq{! 255}{4 eq{15}{3}?}?/hival ~ |[/Indexed/DeviceCMYK -hival CMYKclut]setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 -hival]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent bpc | -/Interpolate smoothflag | E image}b/doNimage{bpc 24 eq{colspABC}{colspA}? -setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode bpc 24 eq{[0 1 0 1 -0 1]}{[0 1]}? |/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent -bpc 24 eq{8}{bpc}? |/Interpolate smoothflag | E image}b/doCMYKimage{ -/DeviceCMYK setcolorspace myimagedict @ `/Width iw |/Height ih |/Decode[0 1 0 -1 0 1 0 1]|/ImageMatrix[iw 0 0 ih 0 0]|/DataSource s |/BitsPerComponent 8 | -/Interpolate smoothflag | E image}b}e -%%EndResource -%%BeginResource: file Pscript_Win_Type3_Hdr 2.0 0 -/GreNewFont{10 dict @ 3 1 $ | @ ` 4 1 $/FontType 3 |/FontMatrix ~ |/FontBBox ~ -|/Encoding 256 array | 0 1 255{Encoding ~/.notdef put}for/CharProcs 257 dict | -CharProcs/.notdef{}put/Metrics 257 dict | Metrics/.notdef 3 -1 $ put/BuildChar -{/char ~ |/fontdict ~ |/charname fontdict/Encoding get char get | fontdict -/Metrics get charname get aload ! setcachedevice fontdict ` Encoding char get -CharProcs ~ get E exec}| E definefont !}|/AddChar{` Encoding 3 1 $ put -CharProcs 3 1 $ put Metrics 3 1 $ put E}| -%%EndResource -%%BeginResource: file Pscript_Win_Type1_Hdr 2.0 0 -/FEbuf 2 string |/FEglyph 3 string |/FE{(G00)FEglyph copy ! 1 ~{@ 16 lt{ -/offset 2 store}{/offset 1 store}? @ 16 FEbuf cvrs FEglyph ~ offset ~ -putinterval 1 ^ ~ FEglyph cvn put}for}bind |/Type1Hdr{11 dict `/FontName ~ | -/PaintType ~ |/FontType 1 |/FontMatrix[1 3 ^ V 0 0 1 6 ^ V 0 0]| !/Encoding -256 array 0 1 255{1 ^ ~/.notdef put}for 3 ^ 3 ^ FE | ! !/FontBBox{0 0 0 0}| & -E currentfile eexec}bind | -%%EndResource -/pp 1 string |/ss 1 string |/rledecodebinary{/DC 0 |/BC 0 |{DC mystring length -ge{exit}if currentfile ss readstring ! 0 get/BC ~ | BC 127 le{/BC BC 1 add | -DC 1 DC BC add 1 sub{mystring ~ currentfile ss readstring ! 0 get put}for}{/BC -257 BC sub | currentfile ss readstring ! 0 get/pp ~ | DC 1 DC BC add 1 sub{ -mystring ~ pp put}for}?/DC DC BC add |}loop mystring}b/rledecodeascii{/DC 0 | -/BC 0 |{DC mystring length ge{exit}if currentfile ss readhexstring ! 0 get/BC -~ | BC 127 le{/BC BC 1 add | DC 1 DC BC add 1 sub{mystring ~ currentfile ss -readhexstring ! 0 get put}for}{/BC 257 BC sub | currentfile ss readhexstring ! -0 get/pp ~ | DC 1 DC BC add 1 sub{mystring ~ pp put}for}?/DC DC BC add |}loop -mystring}b/setup1asciidecodeproc{[/rledecodeascii cvx]cvx bind}b -/setup1binarydecodeproc{[/rledecodebinary cvx]cvx bind}b -%%BeginResource: file Pscript_Win_Compat 2.0 0 -userdict/Pscript_Win_Compat 13 dict dup begin/bd{bind def}bind def/ld{load def -}bd/CB{pop pop pop pop}bind def/B{pop pop pop pop}bind def/$x matrix def/SS{ -/pagesave save def}bind def/RS{/pagesave where{pop pagesave restore}{$x matrix -invertmatrix concat}ifelse}bind def/ANSIVec[0/grave 1/acute 2/circumflex 3 -/tilde 4/macron 5/breve 6/dotaccent 7/dieresis 8/ring 9/cedilla 10 -/hungarumlaut 11/ogonek 12/caron 13/dotlessi 39/quotesingle 96/grave 124/bar -130/quotesinglbase 131/florin 132/quotedblbase 133/ellipsis 134/dagger 135 -/daggerdbl 136/circumflex 137/perthousand 138/Scaron 139/guilsinglleft 140/OE -145/quoteleft 146/quoteright 147/quotedblleft 148/quotedblright 149/bullet 150 -/endash 151/emdash 152/tilde 153/trademark 154/scaron 155/guilsinglright 156 -/oe 159/Ydieresis 160/space 161/exclamdown 164/currency 165/yen 166/brokenbar -167/section 168/dieresis 169/copyright 170/ordfeminine 171/guillemotleft 172 -/logicalnot 173/hyphen 174/registered 175/macron 176/degree 177/plusminus 178 -/twosuperior 179/threesuperior 180/acute 181/mu 182/paragraph 183 -/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 187 -/guillemotright 188/onequarter 189/onehalf 190/threequarters 191/questiondown -192/Agrave 193/Aacute 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198 -/AE 199/Ccedilla 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204 -/Igrave 205/Iacute 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve -211/Oacute 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash -217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 223 -/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 229 -/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 235/edieresis -236/igrave 237/iacute 238/icircumflex 239/idieresis 240/eth 241/ntilde 242 -/ograve 243/oacute 244/ocircumflex 245/otilde 246/odieresis 247/divide 248 -/oslash 249/ugrave 250/uacute 251/ucircumflex 252/udieresis 253/yacute 254 -/thorn 255/ydieresis]def currentdict{dup type/operatortype eq{[exch]cvx def}{ -pop pop}ifelse}forall/initialize{currentdict exch begin begin}bind def -/terminate{/@FL where not{pop end end}{pop}ifelse}bind def/suspend/terminate -load def/resume/initialize load def/M/moveto load def end put/Courier findfont -10 scalefont setfont -%%EndResource -end /ProcSet defineresource pop -%%EndResource -%%EndProlog - -%%BeginSetup -Pscript_Win_Compat dup /initialize get exec -[ 0 1.000 -1.000 0 0 0 ] false /Pscript_Win_Driver /ProcSet findresource dup /initialize get exec - - -/mysetup [ 0.240 0 0 -0.240 8.880 592.800 ] | -%%EndSetup - -%%Page: 1 1 -%%BeginPageSetup -userdict begin /pagesave save def end mysetup concat colspRefresh : 1.000 1.000 1.000 sco 0 0 2550 3300 rf ; -%%EndPageSetup - -: 351 959 102 39 rc 0 0 0 sco %%IncludeFont: Helvetica -(F0) cvn -0.914 - (Helvetica) cvn /Type1 -T -(Helvetica) cvn -mF -(F0_26_35) cvn -F0 -26 0 0 35 0 0 -xMF -F0_26_35 -Ji -385 959 M -3.544 0 (0)A -; : 351 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -385 1539 M -3.544 0 (0)A -; : 1987 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -2021 378 M -3.544 0 (0)A -; : 351 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -385 378 M -3.544 0 (0)A -; : 1987 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -2021 959 M -3.544 0 (0)A -; : 1987 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -2021 1539 M -3.544 0 (0)A -; : 483 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -517 959 M -3.544 0 (1)A -; : 483 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -517 1539 M -3.544 0 (1)A -; : 2119 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -2153 378 M -3.544 0 (1)A -; : 483 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -517 378 M -3.544 0 (1)A -; : 2119 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -2153 959 M -3.544 0 (1)A -; : 2119 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -2153 1539 M -3.544 0 (1)A -; : 615 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -649 959 M -3.544 0 (2)A -; : 615 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -649 1539 M -3.544 0 (2)A -; : 2251 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -2285 378 M -3.544 0 (2)A -; : 615 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -649 378 M -3.544 0 (2)A -; : 2251 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -2285 959 M -3.544 0 (2)A -; : 2251 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -2285 1539 M -3.544 0 (2)A -; : 879 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -913 959 M -3.544 0 (0)A -; : 879 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -913 1539 M -3.544 0 (0)A -; : 2514 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -2548 378 M -3.544 0 (0)A -; : 879 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -913 378 M -3.544 0 (0)A -; : 2514 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -2548 959 M -3.544 0 (4)A -; : 2514 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -2548 1539 M -3.544 0 (4)A -; : 747 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -781 959 M -3.544 0 (3)A -; : 747 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -781 1539 M -3.544 0 (3)A -; : 2383 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -2417 378 M -3.544 0 (3)A -; : 747 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -781 378 M -3.544 0 (3)A -; : 2383 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -2417 959 M -3.544 0 (3)A -; : 2383 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -2417 1539 M -3.544 0 (3)A -; : 1011 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -1045 959 M -3.544 0 (1)A -; : 1011 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -1045 1539 M -3.544 0 (1)A -; : 2646 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -2680 378 M -3.544 0 (1)A -; : 1011 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -1045 378 M -3.544 0 (1)A -; : 2646 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -2680 959 M -3.544 0 (5)A -; : 2646 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -2680 1539 M -3.544 0 (5)A -; : 1143 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -1177 959 M -3.544 0 (2)A -; : 1143 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -1177 1539 M -3.544 0 (2)A -; : 2778 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -2812 378 M -3.544 0 (2)A -; : 1143 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -1177 378 M -3.544 0 (2)A -; : 2778 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -2812 959 M -3.544 0 (6)A -; : 2778 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -2812 1539 M -3.544 0 (6)A -; : 1275 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -1309 959 M -3.544 0 (3)A -; : 1275 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -1309 1539 M -3.544 0 (3)A -; : 2910 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -2944 378 M -3.544 0 (3)A -; : 1275 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -1309 378 M -3.544 0 (3)A -; : 2910 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -2944 959 M -3.544 0 (7)A -; : 2910 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -2944 1539 M -3.544 0 (7)A -; : 1406 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -1440 959 M -3.544 0 (0)A -; : 1406 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -1440 1539 M -3.544 0 (0)A -; : 3042 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -3076 378 M -3.544 0 (0)A -; : 1406 378 102 39 rc 0 0 0 sco F0_26_35 -Ji -1440 378 M -3.544 0 (0)A -; : 3042 959 102 39 rc 0 0 0 sco F0_26_35 -Ji -3076 959 M -3.544 0 (0)A -; : 3042 1539 102 39 rc 0 0 0 sco F0_26_35 -Ji -3076 1539 M -3.544 0 (0)A -; : 23 378 442 39 rc 0 0 0 sco F0_26_35 -Ji -57 378 M -3.206 0 (STEP TYPE 5)A -; : 23 959 442 39 rc 0 0 0 sco F0_26_35 -Ji -57 959 M -3.206 0 (STEP TYPE 6)A -; : 23 1539 442 39 rc 0 0 0 sco F0_26_35 -Ji -57 1539 M -3.206 0 (STEP TYPE 7)A -; : 1658 378 442 39 rc 0 0 0 sco F0_26_35 -Ji -1692 378 M -3.206 0 (STEP TYPE 8)A -; : 1658 959 442 39 rc 0 0 0 sco F0_26_35 -Ji -1692 959 M -3.206 0 (STEP TYPE 9)A -; : 1649 1539 476 39 rc 0 0 0 sco F0_26_35 -Ji -1683 1539 M -3.234 0 (STEP TYPE 10)A -; : 70 484 306 39 rc 0 0 0 sco F0_26_35 -Ji -104 484 M -2.882 0 (phase-A)A -; : 70 1064 306 39 rc 0 0 0 sco F0_26_35 -Ji -104 1064 M -2.882 0 (phase-A)A -; : 70 1644 306 39 rc 0 0 0 sco F0_26_35 -Ji -104 1644 M -2.882 0 (phase-A)A -; : 1706 484 306 39 rc 0 0 0 sco F0_26_35 -Ji -1740 484 M -2.882 0 (phase-A)A -; : 1706 1064 306 39 rc 0 0 0 sco F0_26_35 -Ji -1740 1064 M -2.882 0 (phase-A)A -; : 1706 1644 306 39 rc 0 0 0 sco F0_26_35 -Ji -1740 1644 M -2.882 0 (phase-A)A -; : 70 589 306 39 rc 0 0 0 sco F0_26_35 -Ji -104 589 M -2.882 0 (phase-B)A -; : 70 1170 306 39 rc 0 0 0 sco F0_26_35 -Ji -104 1170 M -2.882 0 (phase-B)A -; : 70 1750 306 39 rc 0 0 0 sco F0_26_35 -Ji -104 1750 M -2.882 0 (phase-B)A -; : 1706 589 306 39 rc 0 0 0 sco F0_26_35 -Ji -1740 589 M -2.882 0 (phase-B)A -; : 1706 1170 306 39 rc 0 0 0 sco F0_26_35 -Ji -1740 1170 M -2.882 0 (phase-B)A -; : 1706 1750 306 39 rc 0 0 0 sco F0_26_35 -Ji -1740 1750 M -2.882 0 (phase-B)A -; : 70 695 306 39 rc 0 0 0 sco F0_26_35 -Ji -104 695 M -2.964 0 (phase-C)A -; : 70 1275 306 39 rc 0 0 0 sco F0_26_35 -Ji -104 1275 M -2.964 0 (phase-C)A -; : 70 1855 306 39 rc 0 0 0 sco F0_26_35 -Ji -104 1855 M -2.964 0 (phase-C)A -; : 1706 695 306 39 rc 0 0 0 sco F0_26_35 -Ji -1740 695 M -2.964 0 (phase-C)A -; : 1706 1275 306 39 rc 0 0 0 sco F0_26_35 -Ji -1740 1275 M -2.964 0 (phase-C)A -; : 1706 1855 306 39 rc 0 0 0 sco F0_26_35 -Ji -1740 1855 M -2.964 0 (phase-C)A -; : 70 800 306 39 rc 0 0 0 sco F0_26_35 -Ji -104 800 M -2.964 0 (phase-D)A -; : 70 1381 306 39 rc 0 0 0 sco F0_26_35 -Ji -104 1381 M -2.964 0 (phase-D)A -; : 70 1961 306 39 rc 0 0 0 sco F0_26_35 -Ji -104 1961 M -2.964 0 (phase-D)A -; : 1706 800 306 39 rc 0 0 0 sco F0_26_35 -Ji -1740 800 M -2.964 0 (phase-D)A -; : 1706 1381 306 39 rc 0 0 0 sco F0_26_35 -Ji -1740 1381 M -2.964 0 (phase-D)A -; : 1706 1961 306 39 rc 0 0 0 sco F0_26_35 -Ji -1740 1961 M -2.964 0 (phase-D)A -; : 0 0 3229 2391 rc -592 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2228 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2228 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -592 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -592 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2360 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2360 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -724 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -724 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2491 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2491 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -856 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -856 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2623 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2623 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -988 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -988 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2755 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2755 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1120 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1120 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2887 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2887 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1252 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1252 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3019 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3019 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1384 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1384 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3151 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3151 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1515 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1515 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1964 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1964 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -328 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -328 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 938 N M 0 7 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 945 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 960 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 975 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 990 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1005 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1020 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1035 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1050 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1065 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1080 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1095 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1110 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1125 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1140 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1155 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1170 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1185 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1200 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1230 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1245 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1260 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1275 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1290 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1305 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1320 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1335 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1350 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1440 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1452 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1518 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1526 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1541 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1556 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1571 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1586 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1601 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1616 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1631 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1646 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1661 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1676 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1691 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1706 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1721 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1736 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1751 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1766 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1781 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1796 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1811 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1826 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1841 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1856 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1871 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1886 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1901 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1916 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1931 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1946 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1961 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 1976 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 1991 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 2021 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 2033 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2096 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2096 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 357 N M 0 8 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 365 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 380 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 395 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 410 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 425 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 440 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 455 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 470 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 485 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 500 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 515 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 530 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 545 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 560 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 575 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 590 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 605 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 620 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 635 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 650 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 665 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 680 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 695 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 710 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 725 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 740 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 755 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 770 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 785 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 800 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 815 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 830 N M 0 15 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -460 860 N M 0 12 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -460 872 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -341 476 N M 106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -447 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -447 476 N M 26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -473 529 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -473 529 N M 370 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -843 529 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -843 529 N M 26 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -869 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -869 476 N M 106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -975 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -975 476 N M 26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1001 529 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1001 529 N M 369 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1370 529 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1370 529 N M 27 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1397 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1397 476 N M 105 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1502 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -341 740 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -579 740 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -341 845 N M 370 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -711 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -341 634 N M 106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -447 634 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -579 740 N M 26 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -605 687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -711 845 N M 26 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -737 793 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -447 634 N M 26 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -473 582 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -605 687 N M 106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -711 687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -737 793 N M 106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -843 793 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -473 582 N M 106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -579 582 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -711 687 N M 26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -737 740 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -843 793 N M 26 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -869 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -579 582 N M 26 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -605 634 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -737 740 N M 370 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1107 740 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -869 845 N M 369 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1238 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -605 634 N M 370 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -975 634 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1107 740 N M 26 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1133 687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1238 845 N M 27 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1265 793 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -975 634 N M 26 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1001 582 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1133 687 N M 105 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1238 687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1265 793 N M 105 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1370 793 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1001 582 N M 106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1107 582 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1238 687 N M 27 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1265 740 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1370 793 N M 27 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1397 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1107 582 N M 26 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1133 634 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1265 740 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1502 740 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1397 845 N M 105 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1502 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1133 634 N M 369 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1502 634 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2109 529 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2346 529 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2109 582 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2346 582 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -473 1742 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -711 1742 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -473 1848 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -711 1848 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -473 1268 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -711 1268 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -605 1953 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -843 1953 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -605 1373 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -843 1373 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1977 845 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2214 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1977 687 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2214 687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -341 1637 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -579 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -341 1162 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -579 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -341 1057 N M 106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -447 1057 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2346 529 N M 27 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2373 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2346 582 N M 27 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2373 634 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -711 1742 N M 26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -737 1795 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -711 1848 N M 26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -737 1901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -711 1268 N M 26 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -737 1320 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -843 1953 N M 26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -869 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -843 1373 N M 26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -869 1426 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2214 845 N M 27 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2241 793 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2214 687 N M 27 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2241 740 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -579 1637 N M 26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -605 1690 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -579 1162 N M 26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -605 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -447 1057 N M 26 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -473 1109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2373 476 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2610 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2373 634 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2610 634 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -737 1795 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -975 1795 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -737 1901 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -975 1901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -737 1320 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -975 1320 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -869 2006 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1107 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -869 1426 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1107 1426 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2241 793 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2478 793 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2241 740 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2478 740 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -605 1690 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -843 1690 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -605 1215 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -843 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -473 1109 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -711 1109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2610 476 N M 27 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2637 529 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2610 634 N M 27 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2637 582 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -975 1795 N M 26 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1001 1742 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -975 1901 N M 26 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1001 1848 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -975 1320 N M 26 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1001 1268 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1107 2006 N M 26 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1133 1953 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1107 1426 N M 26 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1133 1373 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2478 793 N M 27 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2505 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2478 740 N M 27 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2505 687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -843 1690 N M 26 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -869 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -843 1215 N M 26 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -869 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -711 1109 N M 26 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -737 1057 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2637 529 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2874 529 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2637 582 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2874 582 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1001 1742 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1238 1742 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1001 1848 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1238 1848 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1001 1268 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1238 1268 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1133 1953 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1370 1953 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1133 1373 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1370 1373 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2505 845 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2742 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2505 687 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2742 687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -869 1637 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1107 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -869 1162 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1107 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -737 1057 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -975 1057 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2874 529 N M 26 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2900 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2874 582 N M 26 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2900 634 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1238 1742 N M 27 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1265 1795 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1238 1848 N M 27 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1265 1901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1238 1268 N M 27 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1265 1320 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1370 1953 N M 27 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1397 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1370 1373 N M 27 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1397 1426 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2742 845 N M 26 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2768 793 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2742 687 N M 26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2768 740 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1107 1637 N M 26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1133 1690 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1107 1162 N M 26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1133 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -975 1057 N M 26 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1001 1109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2900 476 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3138 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2900 634 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3138 634 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1265 1795 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1502 1795 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1265 1901 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1502 1901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1265 1320 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1502 1320 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1397 2006 N M 105 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1502 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1397 1426 N M 105 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1502 1426 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2768 793 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3006 793 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2768 740 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3006 740 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1133 1690 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1370 1690 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1133 1215 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1370 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1001 1109 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1238 1109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3006 793 N M 26 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3032 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3006 740 N M 26 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3032 687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1370 1690 N M 27 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1397 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1370 1215 N M 27 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1397 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1238 1109 N M 27 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1265 1057 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3032 845 N M 106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3138 845 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3032 687 N M 106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3138 687 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1397 1637 N M 105 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1502 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1397 1162 N M 105 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1502 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1265 1057 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1502 1057 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2109 529 N M -26 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2083 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2109 582 N M -26 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2083 634 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -473 1742 N M -26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -447 1795 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -473 1848 N M -26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -447 1901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -473 1268 N M -26 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -447 1320 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2083 476 N M -106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1977 476 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2083 634 N M -106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -1977 634 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -447 1795 N M -106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -341 1795 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -447 1901 N M -106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -341 1901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -447 1320 N M -106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -341 1320 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -605 1953 N M -26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -579 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -605 1373 N M -26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -579 1426 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -579 2006 N M -238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -341 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -579 1426 N M -238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -341 1426 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1977 1320 N M 369 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2346 1320 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1977 1426 N M 633 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2610 1426 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1977 1215 N M 106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2083 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2346 1320 N M 27 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2373 1268 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2610 1426 N M 27 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2637 1373 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2083 1215 N M 26 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2109 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1977 1057 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2214 1057 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2373 1268 N M 369 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2742 1268 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2637 1373 N M 369 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3006 1373 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2109 1162 N M 369 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2478 1162 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2214 1057 N M 27 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2241 1109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2742 1268 N M 26 52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2768 1320 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3006 1373 N M 26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3032 1426 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2478 1162 N M 27 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2505 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2241 1109 N M 633 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2874 1109 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2768 1320 N M 370 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3138 1320 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3032 1426 N M 106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3138 1426 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2505 1215 N M 633 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3138 1215 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2874 1109 N M 26 -52 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2900 1057 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2900 1057 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3138 1057 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1977 1637 N M 369 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2346 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2346 1637 N M 27 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2373 1690 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2373 1690 N M 501 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2874 1690 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2874 1690 N M 26 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2900 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2900 1637 N M 238 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3138 1637 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1977 1795 N M 237 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2214 1795 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2214 1795 N M 27 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2241 1742 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2241 1742 N M 501 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2742 1742 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2742 1742 N M 26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2768 1795 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2768 1795 N M 370 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3138 1795 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1977 1901 N M 106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2083 1901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2083 1901 N M 26 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2109 1848 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2109 1848 N M 501 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2610 1848 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2610 1848 N M 27 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2637 1901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2637 1901 N M 501 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3138 1901 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -1977 2006 N M 501 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2478 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2478 2006 N M 27 -53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -2505 1953 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -2505 1953 N M 501 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3006 1953 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3006 1953 N M 26 53 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3032 2006 N M 0 0 rr : 0 0 0 sco O ; : 0 0 3229 2391 rc -3032 2006 N M 106 0 - 1 Lw 1 Lc 1 Lj 0 0 0 sco K ; -3138 2006 N M 0 0 rr : 0 0 0 sco O ; -LH -pagesave restore -%%PageTrailer - -%%Trailer -%%DocumentNeededFonts: -%%DocumentSuppliedFonts: -/Pscript_Win_Driver /ProcSet findresource dup /terminate get exec -Pscript_Win_Compat dup /terminate get exec -%%EOF diff --git a/docs/src/hal/images/stepgen-type5-10.png b/docs/src/hal/images/stepgen-type5-10.png deleted file mode 100644 index d189d765095..00000000000 Binary files a/docs/src/hal/images/stepgen-type5-10.png and /dev/null differ diff --git a/docs/src/hal/images/stepgen-type5-10.svg b/docs/src/hal/images/stepgen-type5-10.svg deleted file mode 100755 index fa6e3b2f959..00000000000 --- a/docs/src/hal/images/stepgen-type5-10.svg +++ /dev/null @@ -1,1707 +0,0 @@ - - - -stepgen-type5-10image/svg+xmlstepgen-type5-1023.11.2011linuxcnc.orgStepgenCopyright 2011 linuxcnc.org - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -STEP TYPE 5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -0 - - -1 - - -2 - - -3 - - -0 - - -1 - - -2 - - -3 - - -0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -phase-C - - - - -phase-D - - - - - - - - - - - - - - - - - - - - - - - - - - -phase-A - - -phase-B - - -STEP TYPE 6 - - -0 - - -1 - - -2 - - -3 - - -0 - - -1 - - -2 - - -3 - - -0 - - -phase-C - - -phase-D - - -phase-A - - -phase-B - - -STEP TYPE 7 - - -0 - - -1 - - -2 - - -3 - - -0 - - -1 - - -2 - - -3 - - -0 - - -phase-C - - -phase-D - - -phase-A - - -phase-B - - -STEP TYPE 8 - - -0 - - -1 - - -2 - - -3 - - -0 - - -1 - - -2 - - -3 - - -0 - - -phase-C - - -phase-D - - -phase-A - - -phase-B - - -STEP TYPE 9 - - -0 - - -1 - - -2 - - -3 - - -4 - - -5 - - -6 - - -7 - - -0 - - -phase-C - - -phase-D - - -phase-A - - -phase-B - - -STEP TYPE 10 - - -0 - - -1 - - -2 - - -3 - - -4 - - -5 - - -6 - - -7 - - -0 - - -phase-C - - -phase-D - - -phase-A - - -phase-B - - - diff --git a/docs/src/hal/images/velocity-01.png b/docs/src/hal/images/velocity-01.png deleted file mode 100644 index f6f41bda2dd..00000000000 Binary files a/docs/src/hal/images/velocity-01.png and /dev/null differ diff --git a/docs/src/hal/images/xyz_ACO.png b/docs/src/hal/images/xyz_ACO.png deleted file mode 100644 index 93ce3d7b392..00000000000 Binary files a/docs/src/hal/images/xyz_ACO.png and /dev/null differ diff --git a/docs/src/hal/images/xyz_buttons.png b/docs/src/hal/images/xyz_buttons.png deleted file mode 100644 index 08e9c370028..00000000000 Binary files a/docs/src/hal/images/xyz_buttons.png and /dev/null differ diff --git a/docs/src/hal/intro.txt b/docs/src/hal/intro.txt deleted file mode 100644 index e3478feb730..00000000000 --- a/docs/src/hal/intro.txt +++ /dev/null @@ -1,373 +0,0 @@ -= HAL Introduction - -[[cha:hal-introduction]] (((HAL Introduction))) - -HAL(((HAL))) stands for Hardware Abstraction Layer. At the highest -level, it is simply a way to allow a number of 'building blocks' to be -loaded and interconnected to assemble a complex system. The 'Hardware' -part is because HAL was originally designed to make it easier to -configure LinuxCNC for a wide variety of hardware devices. Many of the -building blocks are drivers for hardware devices. However, HAL can do -more than just configure hardware drivers. - -== HAL is based on traditional system design techniques - -HAL is based on the same principles that are used to design hardware -circuits and systems, so it is useful to examine those principles -first. - -Any system (including a CNC(((CNC))) machine), consists of -interconnected components. For the CNC machine, those components might -be the main controller, servo amps or stepper drives, motors, encoders, -limit switches, pushbutton pendants, perhaps a VFD for the spindle -drive, a PLC to run a toolchanger, etc. The machine builder must -select, mount and wire these pieces together to make a complete system. - -=== Part Selection - -The machine builder does not need to worry about how each individual -part works. He treats them as black boxes. During the design stage, he -decides which parts he is going to use - steppers or servos, which -brand of servo amp, what kind of limit switches and how many, etc. The -integrator's decisions about which specific components to use is based -on what that component does and the specifications supplied by the -manufacturer of the device. The size of a motor and the load it must -drive will affect the choice of amplifier needed to run it. The choice -of amplifier may affect the kinds of feedback needed by the amp and the -velocity or position signals that must be sent to the amp from a -control. - -In the HAL world, the integrator must decide what HAL components are -needed. Usually every interface card will require a driver. Additional -components may be needed for software generation of step pulses, PLC -functionality, and a wide variety of other tasks. - -=== Interconnection Design - -The designer of a hardware system not only selects the parts, he also -decides how those parts will be interconnected. Each black box has -terminals, perhaps only two for a simple switch, or dozens for a servo -drive or PLC. They need to be wired together. The motors connect to the -servo amps, the limit switches connect to the controller, and so on. As -the machine builder works on the design, he creates a large wiring -diagram that shows how all the parts should be interconnected. - -When using HAL, components are interconnected by signals. The designer -must decide which signals are needed, and what they should connect. - -=== Implementation - -Once the wiring diagram is complete it is time to build the machine. -The pieces need to be acquired and mounted, and then they are -interconnected according to the wiring diagram. In a physical system, -each interconnection is a piece of wire that needs to be cut and -connected to the appropriate terminals. - -HAL provides a number of tools to help 'build' a HAL system. Some of -the tools allow you to 'connect' (or disconnect) a single 'wire'. Other -tools allow you to save a complete list of all the parts, wires, and -other information about the system, so that it can be 'rebuilt' with a -single command. - -=== Testing - -Very few machines work right the first time. While testing, the -builder may use a meter to see whether a limit switch is working or to -measure the DC voltage going to a servo motor. He may hook up an -oscilloscope to check the tuning of a drive, or to look for electrical -noise. He may find a problem that requires the wiring diagram to be -changed; perhaps a part needs to be connected differently or replaced -with something completely different. - -HAL provides the software equivalents of a voltmeter, oscilloscope, -signal generator, and other tools needed for testing and tuning a -system. The same commands used to build the system can be used to make -changes as needed. - -=== Summary - -This document is aimed at people who already know how to do this kind -of hardware system integration, but who do not know how to connect the -hardware to LinuxCNC. See the <> section in the HAL UI Examples documentation. - -image::images/remote-start.png[] - -The traditional hardware design as described above ends at the edge of -the main control. Outside the control are a bunch of relatively simple -boxes, connected together to do whatever is needed. Inside, the control -is a big mystery -- one huge black box that we hope works. - -HAL extends this traditional hardware design method to the inside of -the big black box. It makes device drivers and even some internal parts -of the controller into smaller black boxes that can be interconnected -and even replaced just like the external hardware. It allows the -'system wiring diagram' to show part of the internal controller, rather -than just a big black box. And most importantly, it allows the -integrator to test and modify the controller using the same methods he -would use on the rest of the hardware. - -Terms like motors, amps, and encoders are familiar to most machine -integrators. When we talk about using extra flexible eight conductor -shielded cable to connect an encoder to the servo input board in the -computer, the reader immediately understands what it is and is led to -the question, 'what kinds of connectors will I need to make up each -end.' The same sort of thinking is essential for the HAL but the -specific train of thought may take a bit to get on track. Using HAL -words may seem a bit strange at first, but the concept of working from -one connection to the next is the same. - -This idea of extending the wiring diagram to the inside of the -controller is what HAL is all about. If you are comfortable with the -idea of interconnecting hardware black boxes, you will probably have -little trouble using HAL to interconnect software black boxes. - -== HAL Concepts[[sec:HAL-Concepts]] - -This section is a glossary that defines key HAL terms but it is a bit -different than a traditional glossary because these terms are not -arranged in alphabetical order. They are arranged by their relationship -or flow in the HAL way of things. - -Component:: - (((HAL Component)))When we talked about hardware design, we referred - to the individual pieces as 'parts', 'building blocks', 'black boxes', - etc. The HAL equivalent is a 'component' or 'HAL component'. (This - document uses 'HAL component' when there is likely to be confusion with - other kinds of components, but normally just uses 'component'.) A HAL - component is a piece of software with well-defined inputs, outputs, and - behavior, that can be installed and interconnected as needed. - -Parameter:: - (((HAL Parameter)))Many hardware components have adjustments that - are not connected to any other components but still need to be - accessed. For example, servo amps often have trim pots to allow for - tuning adjustments, and test points where a meter or scope can be - attached to view the tuning results. HAL components also can have such - items, which are referred to as 'parameters'. There are two types of - parameters: Input parameters are equivalent to trim pots - they are - values that can be adjusted by the user, and remain fixed once they are - set. Output parameters cannot be adjusted by the user - they are - equivalent to test points that allow internal signals to be monitored. - -Pin:: - (((HAL Pin)))Hardware components have terminals which are used to - interconnect them. The HAL equivalent is a 'pin' or 'HAL pin'. ('HAL - pin' is used when needed to avoid confusion.) All HAL pins are named, - and the pin names are used when interconnecting them. HAL pins are - software entities that exist only inside the computer. - -Physical_Pin:: - (((HAL Physical-Pin)))Many I/O devices have real physical pins or - terminals that connect to external hardware, for example the pins of a - parallel port connector. To avoid confusion, these are referred to as - 'physical pins'. These are the things that 'stick out' into the real - world. - -Signal:: - (((HAL Signal)))In a physical machine, the terminals of real - hardware components are interconnected by wires. The HAL equivalent of - a wire is a 'signal' or 'HAL signal'. HAL signals connect HAL pins - together as required by the machine builder. HAL signals can be - disconnected and reconnected at will (even while the machine is - running). - -Type:: - (((HAL Type)))When using real hardware, you would not connect a 24 - volt relay output to the +/-10V analog input of a servo amp. HAL pins - have the same restrictions, which are based upon their type. Both pins - and signals have types, and signals can only be connected to pins of - the same type. Currently there are 4 types, as follows: - - - bit - a single TRUE/FALSE or ON/OFF value - - float - a 64 bit floating point value, with approximately 53 bits of - resolution and over 1000 bits of dynamic range. - - u32 - a 32 bit unsigned integer, legal values are 0 to 4,294,967,295 - - s32 - a 32 bit signed integer, legal values are -2,147,483,647 to - +2,147,483,647 - -Function:: - Real hardware components tend to - act immediately on their inputs. For example, if the input voltage to a - servo amp changes, the output also changes automatically. However - software components cannot act 'automatically'. Each component has - specific code that must be executed to do whatever that component is - supposed to do. In some cases, that code simply runs as part of the - component. However in most cases, especially in realtime components, - the code must run in a specific sequence and at specific intervals. For - example, inputs should be read before calculations are performed on the - input data, and outputs should not be written until the calculations - are done. In these cases, the code is made available to the system in - the form of one or more 'functions'. Each function is a block of code - that performs a specific action. The system integrator can use - 'threads' to schedule a series of functions to be executed in a - particular order and at specific time intervals. - -Thread:: - A 'thread' is a list of functions that - runs at specific intervals as part of a realtime task. When a thread is - first created, it has a specific time interval (period), but no - functions. Functions can be added to the thread, and will be executed - in order every time the thread runs. - -As an example, suppose we have a parport component named hal_parport. -That component defines one or more HAL pins for each physical pin. The -pins are described in that component's doc section: their names, how -each pin relates to the physical pin, are they inverted, can you change -polarity, etc. But that alone doesn't get the data from the HAL pins to -the physical pins. It takes code to do that, and that is where -functions come into the picture. The parport component needs at least -two functions: one to read the physical input pins and update the HAL -pins, the other to take data from the HAL pins and write it to the -physical output pins. Both of these functions are part of the parport -driver. - -== HAL components[[sec:Intro-HAL-components]] - -Each HAL component is a piece of software with well-defined inputs, -outputs, and behavior, that can be installed and interconnected as -needed. This section lists some of the available components and a brief -description of what each does. Complete details for each component are -available later in this document. - -=== External Programs with HAL hooks[[sub:ExternalPrograms]] - -motion:: - (((motion))) A realtime module that accepts NML - footnote:[Neutral Message Language provides a mechanism for handling - multiple types of messages in the same buffer as well as simplifying - the interface for encoding and decoding buffers in neutral format and - the configuration mechanism.] motion commands and interacts with HAL - -iocontrol:: - (((iocontrol))) A user space module that accepts NML I/O commands and - interacts with HAL - -classicladder:: - (((ClassicLadder))) A PLC using HAL for all I/O - -halui:: - (((halui))) A user space program that interacts with HAL and sends NML - commands, it is intended to work as a full User Interface using - external knobs & switches - -=== Internal Components[[sub:InternalComponents]] - -stepgen:: - Software step pulse generator with position loop. See section <>(((stepgen))) - -encoder:: - Software based encoder counter. See section <>(((encoder))) - -pid:: - Proportional/Integral/Derivative control loops. See section <>(((pid))) - -siggen:: - A sine/cosine/triangle/square wave generator for testing. - See section <>(((siggen))) - -supply:: - a simple source for testing(((supply))) - -blocks:: - assorted useful components (mux, demux, or, and, integ, - ddt, limit, wcomp, etc.)(((blocks))) - -=== Hardware Drivers[[sub:HardwareDrivers]](((Hardware Drivers))) - -hal_ax5214h:: - (((hal-ax5214h))) A driver for the Axiom Measurement & Control AX5241H - digital I/O board - -hal_gm:: - (((hal-gm))) General Mechatronics GM6-PCI board - -hal_m5i20:: - (((hal-m5i20))) Mesa Electronics 5i20 board - -hal_motenc:: - (((hal-motenc))) Vital Systems MOTENC-100 board - -hal_parport:: - (((hal-parport))) PC parallel port. - -hal_ppmc:: - (((hal-ppmc))) Pico Systems family of controllers (PPMC, USC and UPC) - -hal_stg:: - (((hal-stg))) Servo To Go card (version 1 & 2) - -hal_vti:: - (((hal-vti))) Vigilant Technologies PCI ENCDAC-4 controller - -=== Tools and Utilities[[sub:ToolsUtilities]] - -halcmd:: - (((halcmd))) Command line tool for configuration and tuning. See - section <> - -halgui:: - GUI tool for configuration and tuning (not implemented yet). - -halmeter:: - (((halmeter))) A handy multimeter for HAL signals. See section <>. - -halscope:: - (((halscope))) A full featured digital storage oscilloscope for HAL - signals. See section <>. - -Each of these building blocks is described in detail in later chapters. - -== Timing Issues In HAL[[sec:Timing-Issues]] - -Unlike the physical wiring models between black boxes that we have -said that HAL is based upon, simply connecting two pins with a -hal-signal falls far short of the action of the physical case. - -True relay logic consists of relays connected together, and when a -contact opens or closes, current flows (or stops) immediately. Other -coils may change state, etc, and it all just 'happens'. But in PLC -style ladder logic, it doesn't work that way. Usually in a single pass -through the ladder, each rung is evaluated in the order in which it -appears, and only once per pass. A perfect example is a single rung -ladder, with a NC contact in series with a coil. The contact and coil -belong to the same relay. - -If this were a conventional relay, as soon as the coil is energized, -the contacts begin to open and de-energize it. That means the contacts -close again, etc, etc. The relay becomes a buzzer. - -With a PLC, if the coil is OFF and the contact is closed when the PLC -begins to evaluate the rung, then when it finishes that pass, the coil -is ON. The fact that turning on the coil opens the contact feeding it -is ignored until the next pass. On the next pass, the PLC sees that the -contact is open, and de-energizes the coil. So the relay still switches -rapidly between on and off, but at a rate determined by how often the -PLC evaluates the rung. - -In HAL, the function is the code that evaluates the rung(s). In fact, -the HAL-aware realtime version of ClassicLadder exports a function to -do exactly that. Meanwhile, a thread is the thing that runs the -function at specific time intervals. Just like you can choose to have a -PLC evaluate all its rungs every 10 ms, or every second, you can define -HAL threads with different periods. - -What distinguishes one thread from another is 'not' what the thread -does - that is determined by which functions are -connected to it. The real distinction is simply how often a thread -runs. - -In LinuxCNC you might have a 50 us thread and a 1 ms thread. -These would be created based on BASE_PERIOD and SERVO_PERIOD, the -actual times depend on the values in your ini file. - -The next step is to decide what each thread needs to do. Some of those -decisions are the same in (nearly) any LinuxCNC system--For instance, -motion-command-handler is always added to servo-thread. - -Other connections would be made by the integrator. These might include -hooking the STG driver's encoder read and DAC write functions to the -servo thread, or hooking stepgen's function to the base-thread, along -with the parport function(s) to write the steps to the port. - - diff --git a/docs/src/hal/intro_es.txt b/docs/src/hal/intro_es.txt deleted file mode 100644 index 288952f2b3c..00000000000 --- a/docs/src/hal/intro_es.txt +++ /dev/null @@ -1,384 +0,0 @@ -= HAL Introduction - -[[cha:hal-introduction]] (((HAL Introduction))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -HAL(((HAL))) stands for Hardware Abstraction Layer. At the highest -level, it is simply a way to allow a number of 'building blocks' to be -loaded and interconnected to assemble a complex system. The 'Hardware' -part is because HAL was originally designed to make it easier to -configure LinuxCNC for a wide variety of hardware devices. Many of the -building blocks are drivers for hardware devices. However, HAL can do -more than just configure hardware drivers. - -== HAL is based on traditional system design techniques - -HAL is based on the same principles that are used to design hardware -circuits and systems, so it is useful to examine those principles -first. - -Any system (including a CNC(((CNC))) machine), consists of -interconnected components. For the CNC machine, those components might -be the main controller, servo amps or stepper drives, motors, encoders, -limit switches, pushbutton pendants, perhaps a VFD for the spindle -drive, a PLC to run a toolchanger, etc. The machine builder must -select, mount and wire these pieces together to make a complete system. - -=== Part Selection - -The machine builder does not need to worry about how each individual -part works. He treats them as black boxes. During the design stage, he -decides which parts he is going to use - steppers or servos, which -brand of servo amp, what kind of limit switches and how many, etc. The -integrator's decisions about which specific components to use is based -on what that component does and the specifications supplied by the -manufacturer of the device. The size of a motor and the load it must -drive will affect the choice of amplifier needed to run it. The choice -of amplifier may affect the kinds of feedback needed by the amp and the -velocity or position signals that must be sent to the amp from a -control. - -In the HAL world, the integrator must decide what HAL components are -needed. Usually every interface card will require a driver. Additional -components may be needed for software generation of step pulses, PLC -functionality, and a wide variety of other tasks. - -=== Interconnection Design - -The designer of a hardware system not only selects the parts, he also -decides how those parts will be interconnected. Each black box has -terminals, perhaps only two for a simple switch, or dozens for a servo -drive or PLC. They need to be wired together. The motors connect to the -servo amps, the limit switches connect to the controller, and so on. As -the machine builder works on the design, he creates a large wiring -diagram that shows how all the parts should be interconnected. - -When using HAL, components are interconnected by signals. The designer -must decide which signals are needed, and what they should connect. - -=== Implementation - -Once the wiring diagram is complete it is time to build the machine. -The pieces need to be acquired and mounted, and then they are -interconnected according to the wiring diagram. In a physical system, -each interconnection is a piece of wire that needs to be cut and -connected to the appropriate terminals. - -HAL provides a number of tools to help 'build' a HAL system. Some of -the tools allow you to 'connect' (or disconnect) a single 'wire'. Other -tools allow you to save a complete list of all the parts, wires, and -other information about the system, so that it can be 'rebuilt' with a -single command. - -=== Testing - -Very few machines work right the first time. While testing, the -builder may use a meter to see whether a limit switch is working or to -measure the DC voltage going to a servo motor. He may hook up an -oscilloscope to check the tuning of a drive, or to look for electrical -noise. He may find a problem that requires the wiring diagram to be -changed; perhaps a part needs to be connected differently or replaced -with something completely different. - -HAL provides the software equivalents of a voltmeter, oscilloscope, -signal generator, and other tools needed for testing and tuning a -system. The same commands used to build the system can be used to make -changes as needed. - -=== Summary - -This document is aimed at people who already know how to do this kind -of hardware system integration, but who do not know how to connect the -hardware to LinuxCNC. - -Remote Start Example: - -image::images/remote-start.png[] - -The traditional hardware design as described above ends at the edge of -the main control. Outside the control are a bunch of relatively simple -boxes, connected together to do whatever is needed. Inside, the control -is a big mystery -- one huge black box that we hope works. - -HAL extends this traditional hardware design method to the inside of -the big black box. It makes device drivers and even some internal parts -of the controller into smaller black boxes that can be interconnected -and even replaced just like the external hardware. It allows the -'system wiring diagram' to show part of the internal controller, rather -than just a big black box. And most importantly, it allows the -integrator to test and modify the controller using the same methods he -would use on the rest of the hardware. - -Terms like motors, amps, and encoders are familiar to most machine -integrators. When we talk about using extra flexible eight conductor -shielded cable to connect an encoder to the servo input board in the -computer, the reader immediately understands what it is and is led to -the question, 'what kinds of connectors will I need to make up each -end.' The same sort of thinking is essential for the HAL but the -specific train of thought may take a bit to get on track. Using HAL -words may seem a bit strange at first, but the concept of working from -one connection to the next is the same. - -This idea of extending the wiring diagram to the inside of the -controller is what HAL is all about. If you are comfortable with the -idea of interconnecting hardware black boxes, you will probably have -little trouble using HAL to interconnect software black boxes. - -== HAL Concepts[[sec:HAL-Concepts]] - -This section is a glossary that defines key HAL terms but it is a bit -different than a traditional glossary because these terms are not -arranged in alphabetical order. They are arranged by their relationship -or flow in the HAL way of things. - -Component:: - (((HAL Component)))When we talked about hardware design, we referred - to the individual pieces as 'parts', 'building blocks', 'black boxes', - etc. The HAL equivalent is a 'component' or 'HAL component'. (This - document uses 'HAL component' when there is likely to be confusion with - other kinds of components, but normally just uses 'component'.) A HAL - component is a piece of software with well-defined inputs, outputs, and - behavior, that can be installed and interconnected as needed. - -Parameter:: - (((HAL Parameter)))Many hardware components have adjustments that - are not connected to any other components but still need to be - accessed. For example, servo amps often have trim pots to allow for - tuning adjustments, and test points where a meter or scope can be - attached to view the tuning results. HAL components also can have such - items, which are referred to as 'parameters'. There are two types of - parameters: Input parameters are equivalent to trim pots - they are - values that can be adjusted by the user, and remain fixed once they are - set. Output parameters cannot be adjusted by the user - they are - equivalent to test points that allow internal signals to be monitored. - -Pin:: - (((HAL Pin)))Hardware components have terminals which are used to - interconnect them. The HAL equivalent is a 'pin' or 'HAL pin'. ('HAL - pin' is used when needed to avoid confusion.) All HAL pins are named, - and the pin names are used when interconnecting them. HAL pins are - software entities that exist only inside the computer. - -Physical_Pin:: - (((HAL Physical-Pin)))Many I/O devices have real physical pins or - terminals that connect to external hardware, for example the pins of a - parallel port connector. To avoid confusion, these are referred to as - 'physical pins'. These are the things that 'stick out' into the real - world. - -Signal:: - (((HAL Signal)))In a physical machine, the terminals of real - hardware components are interconnected by wires. The HAL equivalent of - a wire is a 'signal' or 'HAL signal'. HAL signals connect HAL pins - together as required by the machine builder. HAL signals can be - disconnected and reconnected at will (even while the machine is - running). - -Type:: - (((HAL Type)))When using real hardware, you would not connect a 24 - volt relay output to the +/-10V analog input of a servo amp. HAL pins - have the same restrictions, which are based upon their type. Both pins - and signals have types, and signals can only be connected to pins of - the same type. Currently there are 4 types, as follows: - - - bit - a single TRUE/FALSE or ON/OFF value - - float - a 64 bit floating point value, with approximately 53 bits of - resolution and over 1000 bits of dynamic range. - - u32 - a 32 bit unsigned integer, legal values are 0 to 4,294,967,295 - - s32 - a 32 bit signed integer, legal values are -2,147,483,647 to - +2,147,483,647 - -Function:: - Real hardware components tend to - act immediately on their inputs. For example, if the input voltage to a - servo amp changes, the output also changes automatically. However - software components cannot act 'automatically'. Each component has - specific code that must be executed to do whatever that component is - supposed to do. In some cases, that code simply runs as part of the - component. However in most cases, especially in realtime components, - the code must run in a specific sequence and at specific intervals. For - example, inputs should be read before calculations are performed on the - input data, and outputs should not be written until the calculations - are done. In these cases, the code is made available to the system in - the form of one or more 'functions'. Each function is a block of code - that performs a specific action. The system integrator can use - 'threads' to schedule a series of functions to be executed in a - particular order and at specific time intervals. - -Thread:: - A 'thread' is a list of functions that - runs at specific intervals as part of a realtime task. When a thread is - first created, it has a specific time interval (period), but no - functions. Functions can be added to the thread, and will be executed - in order every time the thread runs. - -As an example, suppose we have a parport component named hal_parport. -That component defines one or more HAL pins for each physical pin. The -pins are described in that component's doc section: their names, how -each pin relates to the physical pin, are they inverted, can you change -polarity, etc. But that alone doesn't get the data from the HAL pins to -the physical pins. It takes code to do that, and that is where -functions come into the picture. The parport component needs at least -two functions: one to read the physical input pins and update the HAL -pins, the other to take data from the HAL pins and write it to the -physical output pins. Both of these functions are part of the parport -driver. - -== HAL components[[sec:Intro-HAL-components]] - -Each HAL component is a piece of software with well-defined inputs, -outputs, and behavior, that can be installed and interconnected as -needed. This section lists some of the available components and a brief -description of what each does. Complete details for each component are -available later in this document. - -=== External Programs with HAL hooks[[sub:ExternalPrograms]] - -motion:: - (((motion))) A realtime module that accepts NML - footnote:[Neutral Message Language provides a mechanism for handling - multiple types of messages in the same buffer as well as simplifying - the interface for encoding and decoding buffers in neutral format and - the configuration mechanism.] motion commands and interacts with HAL - -iocontrol:: - (((iocontrol))) A user space module that accepts NML I/O commands and - interacts with HAL - -classicladder:: - (((ClassicLadder))) A PLC using HAL for all I/O - -halui:: - (((halui))) A user space program that interacts with HAL and sends NML - commands, it is intended to work as a full User Interface using - external knobs & switches - -=== Internal Components[[sub:InternalComponents]] - -stepgen:: - Software step pulse generator with position loop. See section <>(((stepgen))) - -encoder:: - Software based encoder counter. See section <>(((encoder))) - -pid:: - Proportional/Integral/Derivative control loops. See section <>(((pid))) - -siggen:: - A sine/cosine/triangle/square wave generator for testing. - See section <>(((siggen))) - -supply:: - a simple source for testing(((supply))) - -blocks:: - assorted useful components (mux, demux, or, and, integ, - ddt, limit, wcomp, etc.)(((blocks))) - -=== Hardware Drivers[[sub:HardwareDrivers]](((Hardware Drivers))) - -hal_ax5214h:: - (((hal-ax5214h))) A driver for the Axiom Measurement & Control AX5241H - digital I/O board - -hal_m5i20:: - (((hal-m5i20))) Mesa Electronics 5i20 board - -hal_motenc:: - (((hal-motenc))) Vital Systems MOTENC-100 board - -hal_parport:: - (((hal-parport))) PC parallel port. - -hal_ppmc:: - (((hal-ppmc))) Pico Systems family of controllers (PPMC, USC and UPC) - -hal_stg:: - (((hal-stg))) Servo To Go card (version 1 & 2) - -hal_vti:: - (((hal-vti))) Vigilant Technologies PCI ENCDAC-4 controller - -=== Tools and Utilities[[sub:ToolsUtilities]] - -halcmd:: - (((halcmd))) Command line tool for configuration and tuning. See - section <> - -halgui:: - GUI tool for configuration and tuning (not implemented yet). - -halmeter:: - (((halmeter))) A handy multimeter for HAL signals. See section <>. - -halscope:: - (((halscope))) A full featured digital storage oscilloscope for HAL - signals. See section <>. - -Each of these building blocks is described in detail in later chapters. - -== Timing Issues In HAL[[sec:Timing-Issues]] - -Unlike the physical wiring models between black boxes that we have -said that HAL is based upon, simply connecting two pins with a -hal-signal falls far short of the action of the physical case. - -True relay logic consists of relays connected together, and when a -contact opens or closes, current flows (or stops) immediately. Other -coils may change state, etc, and it all just 'happens'. But in PLC -style ladder logic, it doesn't work that way. Usually in a single pass -through the ladder, each rung is evaluated in the order in which it -appears, and only once per pass. A perfect example is a single rung -ladder, with a NC contact in series with a coil. The contact and coil -belong to the same relay. - -If this were a conventional relay, as soon as the coil is energized, -the contacts begin to open and de-energize it. That means the contacts -close again, etc, etc. The relay becomes a buzzer. - -With a PLC, if the coil is OFF and the contact is closed when the PLC -begins to evaluate the rung, then when it finishes that pass, the coil -is ON. The fact that turning on the coil opens the contact feeding it -is ignored until the next pass. On the next pass, the PLC sees that the -contact is open, and de-energizes the coil. So the relay still switches -rapidly between on and off, but at a rate determined by how often the -PLC evaluates the rung. - -In HAL, the function is the code that evaluates the rung(s). In fact, -the HAL-aware realtime version of ClassicLadder exports a function to -do exactly that. Meanwhile, a thread is the thing that runs the -function at specific time intervals. Just like you can choose to have a -PLC evaluate all its rungs every 10 ms, or every second, you can define -HAL threads with different periods. - -What distinguishes one thread from another is 'not' what the thread -does - that is determined by which functions are -connected to it. The real distinction is simply how often a thread -runs. - -In LinuxCNC you might have a 50 us thread and a 1 ms thread. -These would be created based on BASE_PERIOD and SERVO_PERIOD, the -actual times depend on the values in your ini file. - -The next step is to decide what each thread needs to do. Some of those -decisions are the same in (nearly) any LinuxCNC system--For instance, -motion-command-handler is always added to servo-thread. - -Other connections would be made by the integrator. These might include -hooking the STG driver's encoder read and DAC write functions to the -servo thread, or hooking stepgen's function to the base-thread, along -with the parport function(s) to write the steps to the port. - - diff --git a/docs/src/hal/intro_fr.txt b/docs/src/hal/intro_fr.txt deleted file mode 100644 index 2bde6511d1c..00000000000 --- a/docs/src/hal/intro_fr.txt +++ /dev/null @@ -1,572 +0,0 @@ -:lang: fr -:toc: - -= Introduction à HAL - -[[cha:HAL-Introduction]] (((Introduction à HAL))) - -HAL(((HAL))) est le sigle de Hardware Abstraction Layer, le terme -Anglais pour Couche d'Abstraction Matériel.footnote:[Note du -traducteur: nous garderons le sigle HAL dans toute la -documentation.] -Au plus haut niveau, il s'agit simplement d'une méthode pour -permettre à un grand nombre de _modules_ d'être chargés et -interconnectés pour assembler un système complexe. La partie _matériel_ -devient abstraite parce que HAL a été conçu à l'origine pour faciliter -la configuration de LinuxCNC pour une large gamme de matériels. Bon nombre de -ces modules sont des pilotes de périphériques. Cependant, HAL peut -faire beaucoup plus que configurer les pilotes du matériel. - -== HAL est basé sur le système d'étude des projets techniques(((Les bases de HAL))) - -HAL est basé sur le même principe que celui utilisé pour l'étude des -circuits et des systèmes techniques, il va donc être utile d'examiner -d'abord ces principes. - -N'importe quel système, y compris les machines CNC(((CNC))), est fait -de composants interconnectés. Pour les machines CNC, ces composants -pourraient être le contrôleur principal, les amplis de servomoteurs, -les amplis ou les commandes de puissance des moteurs pas à pas, les -moteurs, les codeurs, les contacts de fin de course, les panneaux -de boutons de commande, les manivelles électroniques, peut être aussi un variateur de -fréquence pour le moteur de broche, un automate programmable pour gérer -le changeur d'outils, etc. Le constructeur de machine doit choisir les -éléments, les monter et les câbler entre eux pour obtenir un système -complet et fonctionnel. - -=== Choix des organes(((Choix des organes))) - -Il ne sera pas nécessaire au constructeur de machine de se soucier du -fonctionnement de chacun des organes, il les traitera comme des boîtes -noires. Durant la phase de conception, il décide des éléments qu'il va -utiliser, par exemple, moteurs pas à pas ou servomoteurs, quelle marque -pour les amplis de puissance, quels types d'interrupteurs de fin de -course et combien il en faudra, etc. La décision d'intégrer tel ou tel -élément spécifique plutôt qu'un autre, repose sur ce que doit faire cet -élément et sur ses caractéristiques fournies par le fabricant. La -taille des moteurs et la charge qu'ils doivent supporter affectera le -choix des interfaces de puissance nécessaires pour les piloter. Le -choix de l'ampli affectera le type des signaux de retour demandés ainsi -que le type des signaux de vitesse et de position qui doivent lui être -transmis. - -Dans le monde de HAL, l'intégrateur doit décider quels composants de -HAL sont nécessaires. Habituellement, chaque carte d'interface -nécessite un pilote. Des composants supplémentaires peuvent être -demandés, par exemple, pour la génération logicielle des impulsions -d'avance, les fonctionnalités des automates programmables, ainsi qu'une -grande variété d'autres tâches. - -=== Étude des interconnections(((Étude des interconnexions))) - -Le créateur d'un système matériel, ne sélectionnera pas seulement les -éléments, il devra aussi étudier comment ils doivent être -interconnectés. Chaque boîte noire dispose de bornes, deux seulement -pour un simple contact, ou plusieurs douzaines pour un pilote de -servomoteur ou un automate. Elles doivent être câblées entre elles. Les -moteurs câblés à leurs interfaces de puissance, les fins de course -câblés au contrôleur et ainsi de suite. Quand le constructeur de -machine commence à travailler sur le câblage, il crée un grand plan de -câblage représentant tous les éléments de la machine ainsi que les -connections qui les relient entre eux. - -En utilisant HAL, les _composants_ sont interconnectés par des -_signaux_ . Le concepteur peut décider quels signaux sont nécessaires -et à quoi -ils doivent être connectés. - -=== Implémentation(((Implémentation))) - -Une fois que le plan de câblage est complet, il est possible de -construire la machine. Les pièces sont achetées et montées, elles -peuvent alors être câblées et interconnectées selon le plan de câblage. -Dans un système physique, chaque interconnexion est un morceau de fil -qui doit être coupé et raccordé aux bornes appropriées. - -HAL fournit un bon nombre d'outils d'aide à la _construction_ d'un -système HAL. Certains de ces outils permettent de _connecter_ (ou -déconnecter) un simple _fil_. D'autres permettent d'enregistrer une -liste complète des organes, du câblage et d'autres informations à -propos du système, de sorte qu'il puisse être _reconstruit_ d'une -simple commande. - -=== Mise au point(((Mise au point))) - -Très peu de machines marchent bien dès la première fois. Lors des -tests, le technicien peut utiliser un appareil de mesure pour voir si -un fin de course fonctionne correctement ou pour mesurer la tension -fournie aux servomoteurs. Il peut aussi brancher un oscilloscope pour -examiner le réglage d'une interface ou pour rechercher des -interférences électriques et déterminer leurs sources. En cas de -problème, il peut s'avérer indispensable de modifier le plan de -câblage, peut être que certaines pièces devront être re-câblées -différemment, voir même remplacées par quelque chose de totalement -différent. - -HAL fournit les équivalents logiciels du voltmètre, de l'oscilloscope, -du générateur de signaux et les autres outils nécessaires à la mise au -point et aux réglages d'un système. Les même commandes utilisées pour -construire le système, seront utilisées pour faire les changements -indispensables. - -=== En résumé(((En résumé))) - -Ce document est destiné aux personnes déjà capables de concevoir ce -type de réalisation matérielle, mais qui ne savent pas comment -connecter le matériel à LinuxCNC, par exemple pour une -<> telle que décrite -dans la documentation de Halui. - -La conception de matériel, telle que décrite précédemment, s'arrête à -l'interface de contrôle. Au delà, il y a un tas de boîtes noires, -relativement simples, reliées entre elles pour faire ce qui est -demandé. À l'intérieur, un grand mystère, c'est juste une grande boîte -noire qui fonctionne, nous osons l'espérer. - -HAL étend cette méthode traditionnelle de conception de matériel à -l'intérieur de la grande boîte noire. Il transforme les pilotes de -matériels et même certaines parties internes du matériel, en petites -boîtes noires pouvant être interconnectées, elles peuvent alors -remplacer le matériel externe. Il permet au _plan de câblage_ de faire -voir une partie du contrôleur interne et non plus, juste une grosse -boîte noire. Plus important encore, il permet à l'intégrateur de tester -et de modifier le contrôleur en utilisant les mêmes méthodes que celles -utilisées pour le reste du matériel. - -Les termes tels que moteurs, amplis et codeurs sont familiers aux -intégrateurs de machines. Quand nous parlons d'utiliser un câble extra -souple à huit conducteurs blindés pour raccorder un codeur de position -à sa carte d'entrées placée dans l'ordinateur. Le lecteur comprend -immédiatement de quoi il s'agit et se pose la question, _quel type de -connecteurs vais-je devoir monter de chaque côté de ce câble ?_ Le même -genre de réflexion est indispensable pour HAL mais le cheminement de la -pensée est différent. Au début les mots utilisés par HAL pourront -sembler un peu étranges, mais ils sont identiques au concept de travail -évoluant d'une connexion à la suivante. - -HAL repose sur une seule idée, l'idée d'étendre le plan de câblage à -l'intérieur du contrôleur. Si vous êtes à l'aise avec l'idée -d'interconnecter des boîtes noires matérielles, vous n'aurez sans doute -aucune difficulté à utiliser HAL pour interconnecter des boites noires -logicielles. - -[[sec:Concept-de-HAL]] -== Concept de HAL -(((Concept de HAL))) - -Cette section est un glossaire qui définit les termes clés de HAL mais -il est différent d'un glossaire traditionnel en ce sens que les termes -ne sont pas classés par ordre alphabétique. Ils sont classés par leur -relation ou par le sens du flux à l'intérieur de HAL. - - -Component:: (((HAL Composant))) - (Composant) Lorsque nous avons parlé de la - conception du matériel, nous avons évoqué les différents éléments - individuels comme _pièces_, _modules_, _boîtes noires_, etc. - L'équivalent HAL est un _component_ ou _HAL component_. (ce document - utilisera: _HAL component_ quand la confusion avec un autre type de - composant est possible, mais normalement, utilisez juste: _component_.) - Un HAL component est une pièce logicielle avec, bien définis, des - entrées, des sorties, un comportement, qui peuvent éventuellement être - interconnectés. - -Parameter:: (((HAL Paramètre))) - (Paramètre) De nombreux composants matériels ont - des réglages qui ne sont raccordés à aucun autre composant mais qui - sont accessibles. Par exemple, un ampli de servomoteur a souvent des - potentiomètres de réglage et des points tests sur lesquels on peut - poser une pointe de touche de voltmètre ou une sonde d'oscilloscope - pour visualiser le résultat des réglages. Les HAL components aussi - peuvent avoir de tels éléments, ils sont appelés _parameters_. Il y a - deux types de paramètres: _Input parameters_ qui sont des équivalents - des potentiomètres. Ce sont des valeurs qui peuvent être réglées par - l'utilisateur, elles gardent leur valeur jusqu'à un nouveau réglage. - _Output parameters_ qui ne sont pas ajustables. Ils sont équivalents - aux points tests qui permettent de mesurer la valeur d'un signal - interne. - -Pin:: (((HAL pin))) - (Broche) Les composants matériels ont des broches - qui peuvent être interconnectées entre elles. L'équivalent HAL est une - _pin_ ou _HAL pin_. (_HAL pin_ est utilisé quand c'est nécessaire pour - éviter la confusion.) Toutes les HAL pins sont nommées et les noms des - pins sont utilisés lors des interconnexions entre elles. Les HAL pins - sont des entités logicielles qui n'existent qu'à l'intérieur de - l'ordinateur. - -Physical_Pin:: (((HAL: Broche physique))) - (Broche physique) La plupart des - interfaces d'entrées/sorties ont des broches physiques réelles pour - leur connexion avec l'extérieur, par exemple, les broches du port - parallèle. Pour éviter la confusion, elles sont appelées - _physical_pins_. Ce sont des repères pour faire penser au monde - physique réel. - Vous vous demandez peut être quelle relation il y a entre les - HAL_pins, les Physical_pins et les éléments extérieurs comme les - codeurs ou une carte stg. Nous avons ici, affaire à des interfaces de - type translation/conversion de données. - -Signal:: (((HAL Signal))) - Dans une machine physique réelle, les terminaisons - des différents organes sont reliées par des fils. L'équivalent HAL d'un - fil est un _signal_ ou _HAL signal_. Ces signaux connectent les - _HAL pins_ entre elles comme le requiert le concepteur de la machine. - Les _HAL signals_ peuvent être connectés et déconnectés à volonté - (même avec la machine en marche). - -Type:: (((HAL Type))) - Quand on utilise un matériel réel, il ne viendrait pas - à l'idée de connecter la sortie 24V d'un relais à l'entrée analogique - +/-10V de l'ampli d'un servomoteur. Les _HAL pins_ ont les même - restrictions, qui sont fondées sur leur type. Les _pins_ et les - _signals_ ont tous un type, un _signals_ ne peux être connecté qu'à une - _pins_ de même type. Il y a actuellement les 4 types suivants: - -- bit - une simple valeur vraie ou fausse TRUE/FALSE ou ON/OFF -- float - un flottant de 32 bits, avec approximativement 24 bits de - résolution et plus de 200 bits d'échelle dynamique. -- u32 - un entier non signé de 32 bits, les valeurs légales vont - de 0 à +4,294,967,295 -- s32 - un entier signé de 32 bits, les valeurs légales vont - de -2,147,483,648 à +2,147,483,647 - -[[sec:Function]] -Function:: (((HAL Fonction))) - (Fonction) Les composants - matériels réels ont tendance à réagir immédiatement à leurs signaux - d'entrée. Par exemple, si la tension d'entrée d'un ampli de servo - varie, la sortie varie aussi automatiquement. Les composants logiciels - ne peuvent pas réagir immédiatement. Chaque composant a du code - spécifique qui doit être exécuté pour faire ce que le composant est - sensé faire. Dans certains cas, ce code tourne simplement comme une - partie du composant. Cependant dans la plupart des cas, notamment dans - les composants temps réel, le code doit être exécuté selon un ordre - bien précis et à des intervalles très précis. Par exemple, les données - en entrée doivent d'abord être lues avant qu'un calcul ne puisse être - effectué sur elles et les données en sortie ne peuvent pas être écrites - tant que le calcul sur les données d'entrée n'est pas terminé. Dans ces - cas, le code est confié au système sous forme de _functions_. Chaque - _function_ est un bloc de code qui effectue une action spécifique. - L'intégrateur peut utiliser des _threads_ pour combiner des séries de - _functions_ qui seront exécutées dans un ordre particulier et selon des - intervalles de temps spécifiques. - -[[sec:Thread]] -Thread:: (((HAL Fil))) - (Fil) Un _thread_ est une liste de _functions_ qui sont - lancées à intervalles spécifiques par une tâche - temps réel. Quand un _thread_ est créé pour la première fois, il a son - cadencement spécifique (période), mais pas de _functions_. Les - _functions_ seront ajoutées au _thread_ et elle seront exécutées dans - le même ordre, chaque fois que le _tread_ tournera. - -Prenons un exemple, supposons que nous avons un composant de port -parallèle nommé _hal_parport_. Ce composant défini une ou plusieurs -_HAL pins_ pour chaque _physical pin_. Les _pins_ sont décrites dans ce -composant, comme expliqué dans la section _component_ de cette doc, par: -leurs noms, comment chaque _pin_ est en relation avec la _physical -pin_, est-elle inversée, peut-on changer sa polarité, etc. Mais ça ne -permet pas d'obtenir les données des _HAL pins_ aux _physical pins_. Le -code est utilisé pour faire ça, et c'est la où les _functions_ entrent -en œuvre. Le composant parport nécessite deux _functions_: une pour -lire les broches d'entrée et mettre à jour les _HAL pins_, l'autre pour -prendre les données des _HAL pins_ et les écrire sur les broches de -sortie _physical pins_. Ce deux fonctions font partie du pilote -_hal_parport_. - -[[sec:Intro-Composants-HAL]] -== Composants HAL(((Composants HAL))) - -Chaque composant HAL est un morceau de logiciel avec, bien définis, -des entrées, des sorties et un comportement. Ils peuvent être installés -et interconnectés selon les besoins. Cette section liste certains des -composants actuellement disponibles et décrit brièvement ce que chacun -fait. Les détails complets sur chacun seront donnés plus loin dans ce -document. - -[[sec:Programmes-externes]] -== Programmes externes attachés à HAL - -motion:: (((motion))) - Un module temps réel qui accepte les commandes de - mouvement en NML et inter-agit avec HAL - -iocontrol:: (((iocontrol))) - Un module d'espace utilisateur qui accepte les - commandes d'entrée/sortie (I/O) en NML et inter-agit avec HAL - -classicladder:: (((ClassicLadder))) - Un automate programmable en langage à contacts - utilisant HAL pour les entrées/sorties (I/O) - -halui:: (((halui))) - Un espace de utilisateur de programmation qui inter-agit - avec HAL et envoie des commandes NML, Il est destiné à fonctionner - comme une interface utilisateur en utilisant les boutons et - interrupteurs externes. - -[[sec:Composants-internes]] -== Composants internes -(((Composants externes))) - -stepgen:: - Générateur d'impulsions de pas avec boucle de position. Plus de détails -<>.(((stepgen))) - -encoder:: - Codeur/compteur logiciel. Plus de détails <>. -(((Codeur))) - -pid:: - Boucle de contrôle Proportionnelle/Intégrale/Dérivée. Plus de détails -<>.(((pid))) - -siggen:: (((siggen))) - Générateur d'ondes: sinusoïdale/cosinusoïdale/triangle/carrée, - pour la mise au point. Plus de détails <>. - -supply:: (((supply))) - Une simple alimentation, pour la mise au point - -blocks:: (((blocks))) - Un assortiment de composants (mux, demux, or, and, integ, - ddt, limit, wcomp, etc.) - -[[sec:Pilotes-de-materiels]] -== Pilotes de matériels -(((Pilotes de matériel))) - -hal_ax5214h:: (((hal-ax5214h))) - Un pilote pour la carte d'entrées/sorties Axiom Measurement & Control AX5241H - -hal_m5i20:: (((hal-m5i20))) - Un pilote pour la carte Mesa Electronics 5i20 - -hal_motenc:: (((hal-motenc))) - Un pilote pour la carte Vital Systems MOTENC-100 - -hal_parport:: (((hal-parport))) - Pilote pour le(ou les) port(s) parallèle(s). Plus de détails sur les - <>. - -hal_ppmc:: (((hal-ppmc))) - Un pilote pour la famille de contrôleurs Pico Systems - (PPMC, USC et UPC) - -hal_stg:: (((hal-stg))) - Un pilote pour la carte Servo To Go (versions 1 & 2) - -hal_vti:: (((hal-vti))) - Un pilote pour le contrôleur Vigilant Technologies PCI ENCDAC-4 - -[[sec:Outils-Utilitaires]] -== Outils-Utilitaires -(((Outils et utilitaires))) - -halcmd:: (((halcmd))) - Ligne de commande pour la configuration et les réglages. - -halgui:: (((halgui))) - Outil graphique pour la configuration et les réglages. (pas encore - implémenté). - -halmeter:: (((halmeter))) - Un multimètre pour les signaux HAL. Plus de détails pour utiliser -<>. - -halscope:: (((halscope))) - Un oscilloscope digital à mémoire, complétement - fonctionnel pour les signaux HAL. - -Chacun de ces modules est décrit en détail dans les chapitres suivants. - -[[sec:Legos]] -== Les réflexions qui ont abouti à la création de HAL -(((Les origines de HAL))) - -Cette première introduction au concept de HAL peut être un peu -déconcertante pour l'esprit. Construire quelque chose avec des blocs -peut être un défi, pourtant certains jeux de construction avec lesquels -nous avons joué étant enfants peuvent nous aider à construire un -système HAL. - -=== Une tour - -- Je regardais mon fils et sa petite fille de six ans construire une - tour à partir d'une boîte pleine de blocs de différentes tailles, de - barres et de pièces rondes, des sortes de couvercles. L'objectif était - de voir jusqu'où la tour pouvait monter. Plus la base était étroite - plus il restait de pièces pour monter. Mais plus la base était étroite, - moins la tour était stable. Je les voyais étudier combien de blocs ils - pouvaient poser et où ils devaient les poser pour conserver l'équilibre - avec le reste de la tour. - -- La notion d'empilage de cartes pour voir jusqu'où on peut monter est -une très vieille et honorable manière de passer le temps. En première -lecture, l'intégrateur pourra avoir l'impression que construire un HAL -est un peu comme ça. C'est possible avec une bonne planification, mais -l'intégrateur peut avoir à construire un système stable aussi complexe -qu'une machine actuelle l'exige. - -=== Erector Sets footnote:[Le jeu Erector Set est une invention de AC Gilbert (Meccano en France)] - -C'était une grande série de boites de construction en métal, des tôles -perforées, plates ou en cornières, toutes avaient des trous -régulièrement espacés. Vous pouviez concevoir des tas de choses et les -monter avec ces éléments maintenus entre eux par des petits boulons. - -J'ai eu ma première boîte Erector pour mon quatrième anniversaire. Je -sais que la boîte était prévue pour des enfants beaucoup plus âgés que -moi. Peut être que mon père se faisait vraiment un cadeau à lui même. -J'ai eu une période difficile avec les petites vis et les petits -écrous. J'ai vraiment eu envie d'avoir quatre bras, un pour visser avec -le tournevis, un pour tenir la vis, les pièces et l'écrou. En -persévérant, de même qu'en agaçant mon père, j'ai fini par avoir fait -tous les montages du livret. Bientôt, je lorgnais vers les plus grandes -boîtes qui étaient imprimées sur ce livret. Travailler avec ces pièces -de taille standard m'a ouvert le monde de la construction et j'ai -bientôt été au delà des projets illustrés. - -Les composants Hal ne sont pas tous de même taille ni de même forme -mais ils permettent d'être regroupés en larges unités qui feront bien -du travail. C'est dans ce sens qu'ils sont comme les pièces d'un jeu -Erector. Certains composants sont longs et minces. Ils connectent -essentiellement les commandes de niveau supérieur aux _physical pins_. -D'autres composants sont plus comme les plateformes rectangulaires sur -lesquelles des machines entières pourraient être construites. Un -intégrateur parviendra rapidement au delà des brefs exemples et -commencera à assembler des composants entre eux d'une manière qui lui -sera propre. - -=== Tinkertoys footnote:[Tinkertoy est maintenant registered trademark of the Hasbro company.] - -Le jouet en bois Tinkertoys est plus humain que l'acier froid de -l'Erector. Le cœur de la construction avec TinkerToys est un -connecteur rond avec huit trous équidistants sur la circonférence. Il a -aussi un trou au centre, perpendiculaire aux autres trous répartis -autour du moyeu. - -Les moyeux pouvaient être connectés avec des tiges rondes de -différentes longueurs. Le constructeur pouvait faire une grosse roue à -l'aide de rayons qui partaient du centre. - -Mon projet favori était une station spatiale rotative. De courtes -tiges rayonnaient depuis les trous du moyeu central et étaient -connectées avec d'autres moyeux aux extrémités des rayons. Ces moyeux -extérieurs étaient raccordés entre eux avec d'autres rayons. Je passais -des heures à rêver de vivre dans un tel dispositif, marchant de moyeu -en moyeu et sur la passerelle extérieure qui tournait lentement à cause -de la gravité dans l'espace en état d'apesanteur. Les provisions -circulaient par les rayons et les ascenseur qui les transféraient dans -la fusée arrimée sur le rayon central pendant qu'on déchargeait sa -précieuse cargaison. - -L'idée qu'une _pin_ ou qu'un _component_ est la plaque centrale pour -de nombreuses connections est aussi une notion facile avec le HAL. Les -exemples deux à quatre connectent le multimètre et l'oscilloscope aux -signaux qui sont prévus pour aller ailleurs. -Moins facile, la notion d'un moyeu pour plusieurs signaux -entrants. Mais, c'est également possible avec l'utilisation appropriée -des fonctions dans ce composant de moyeu qui manipulent les signaux -quand ils arrivent, venant d'autres composants. - -Tous les détails dans le <>. - -Une autre réflexion qui vient à partir de ce jouet mécanique est une -représentation de _HAL threads_. Un _thread_ pourrait ressembler un peu -à un chilopode, une chenille, ou un perce-oreille. Une épine dorsale, -des _HAL components_, raccordés entre eux par des tiges, les _HAL -signals_. Chaque composant prend dans ses propres paramètres et selon -l'état de ses broches d'entrée, les passe sur ses broches de sortie à -l'intention du composant suivant. Les signaux voyagent ainsi de bout en -bout, le long de l'épine dorsale où ils sont ajoutés ou modifiés par -chaque composant son tour venu. - -Les _Threads_ sont tous synchronisés et exécutent une série de tâches -de bout en bout. Une représentation mécanique est possible avec -Thinkertoys si on pense à la longueur du jouet comme étant la mesure du -temps mis pour aller d'un bout à l'autre. Un thread, ou épine dorsale, -très différent est créé en connectant le même ensemble de modules avec -des tiges de longueur différente. La longueur totale de l'épine dorsale -peut aussi être changée en jouant sur la longueur des tiges pour -connecter les modules. L'ordre des opérations est le même mais le temps -mis pour aller d'un bout à l'autre est très différent. - -[[sec:Un-Exemple-en-Lego]] -== Un exemple en Lego footnote:[The Lego name is a trademark of the Lego company.] - -Lorsque les blocs de Lego sont arrivés dans nos magasins, ils étaient -à peu près tous de la même taille et de la même forme. Bien sûr il y -avait les demi taille et quelques uns en quart de taille mais tous -rectangulaires. Les blocs de Lego se relient ensembles en enfonçant les -broches mâles d'une pièce dans les trous femelles de l'autre. En -superposant les couches, les jonctions peuvent être rendues très -solides, même aux coins et aux tés. - -J'ai vu mes enfants et mes petits-enfants construire avec des pièces -Lego (les mêmes Lego). Il y en a encore quelques milliers dans une -vieille et lourde boîte en carton qui dort dans un coin de la salle de -jeux. Ils sont stockés dans cette boîte car c'était trop long de les -ranger et de les ressortir à chacune de leur visite et ils étaient -utilisés à chaque fois. Il doit bien y avoir les pièces de deux -douzaines de boîtes différentes de Lego. Les petits livrets qui les -accompagnaient ont été perdus depuis longtemps, mais la magie de la -construction avec l'imbrication de ces pièces toutes de la même taille -est quelque chose à observer. - -[[sec:Problemes-de-Timing-dans-HAL]] -== Problèmes de timming dans HAL - -Contrairement aux modèles physiques du câblage entre les boîtes noires -sur lequel, nous l'avons dit, HAL est basé, il suffit de relier deux -broches avec un signal hal, on est loin de l'action physique. - -La vraie logique à relais consiste en relais connectés ensembles, -quand un relais s'ouvre ou se ferme, le courant passe (ou s'arrête) -immédiatement. D'autres bobines peuvent changer d'état etc. Dans le -style langage à contacts d'automate comme le Ladder ça ne marche pas de -cette façon. Habituellement dans un Ladder simple passe, chaque barreau -de l'échelle est évalué dans l'ordre où il se présente et seulement une -fois par passe. Un exemple parfait est un simple Ladder avec un contact -en série avec une bobine. Le contact et la bobine actionnent le même -relais. - -Si c'était un relais conventionnel, dès que la bobine est sous -tension, le contact s'ouvre et coupe la bobine, le relais retombe etc. -Le relais devient un buzzer. - -Avec un automate programmable, si la bobine est OFF et que le contact -est fermé quand l'automate commence à évaluer le programme, alors à la -fin de la passe, la bobine sera ON. Le fait que la bobine ouvre le -contact qui la prive de courant est ignoré jusqu'à la prochaine passe. -À la passe suivante, l'automate voit que le contact est ouvert et -désactive la bobine. Donc, le relais va battre rapidement entre on et -off à la vitesse à laquelle l'automate évalue le programme. - -Dans HAL, c'est le code qui évalue. En fait, la version Ladder HAL -temps réel de Classic Ladder exporte une fonction pour faire exactement -cela. Pendant ce temps, un thread exécute les fonctions spécifiques à -intervalle régulier. Juste comme on peut choisir de régler la durée de -la boucle de programme d'un automate programmable à 10ms, ou à 1 -seconde, on peut définir des _HAL threads_ avec des périodes -différentes. - -Ce qui distingue un thread d'un autre n'est pas ce qu'il fait mais -quelles fonctions lui sont attachées. La vraie distinction est -simplement combien de fois un thread tourne. - -Dans LinuxCNC on peut avoir un thread à 50μs et un thread à -1ms. En se basant sur les valeurs de BASE_PERIOD et de SERVO_PERIOD. -Valeurs fixées dans le fichier ini. - -La prochaine étape consiste à décider de ce que chaque thread doit -faire. Certaines de ces décisions sont les mêmes dans (presque) tous -les systèmes LinuxCNC. Par exemple, le gestionnaire de mouvement est -toujours ajouté au servo-thread. - -D'autres connections seront faites par l'intégrateur. Il pourrait -s'agir de brancher la lecture d'un codeur par une carte STG à un DAC -pour écrire les valeurs dans le servo thread, ou de brancher une -fonction stepgen au base-thread avec la fonction parport pour écrire -les valeurs sur le port. diff --git a/docs/src/hal/out8.comp b/docs/src/hal/out8.comp deleted file mode 100644 index 9ee84651b26..00000000000 --- a/docs/src/hal/out8.comp +++ /dev/null @@ -1,44 +0,0 @@ -component out8; -pin out unsigned out_ "Output value; only low 8 bits are used"; -param r unsigned ioaddr; - -function _; - -option count_function; -option extra_setup; -option extra_cleanup; -option constructable no; - -license "GPL"; -;; -#include - -#define MAX 8 -int io[MAX] = {0,}; -RTAPI_MP_ARRAY_INT(io, MAX, "I/O addresses of out8 boards"); - -int get_count(void) { - int i = 0; - for(i=0; i> shows two block diagrams, -one showing the driver when the data group is configured for output, and one -showing it configured for input. For 'x' mode, refer to the pin listing of -'halcmd show pin' for pin direction assignment. - -The parport driver can control up to 8 ports (defined by MAX_PORTS in -hal_parport.c). The ports are numbered starting at zero. - -=== Installing - ----- -loadrt hal_parport cfg="" ----- - -.Using the Port Index - -I/O addresses below 16 are treated as port indexes. This is the -simplest way to install the parport driver and cooperates with the -Linux parport_pc driver if it is loaded. This will use the address -Linux has detected for parport 0. - ----- -loadrt hal_parport cfg="0" ----- - -.Using the Port Address - -The configure string consists of a hex port address, followed by an -optional direction, repeated for each port. The direction is 'in', -'out', or 'x' and determines the direction of the physical pins 2 -through 9, and whether to create input HAL pins for the physical -control pins. If the direction is not specified, the data group -defaults to output. For example: - ----- -loadrt hal_parport cfg="0x278 0x378 in 0x20A0 out" ----- - -This example installs drivers for one port at 0x0278, with pins 2-9 as -outputs (by default, since neither 'in' nor 'out' was specified), one -at 0x0378, with pins 2-9 as inputs, and one at 0x20A0, with pins 2-9 -explicitly specified as outputs. Note that you must know the base -address of the parallel port to properly configure the driver. For ISA -bus ports, this is usually not a problem, since the port is almost -always at a 'well known' address, like 0278 or 0378 which is typically -configured in the system BIOS. The address for a PCI card is usually -shown in 'lspci -v' in an 'I/O ports' line, or in the kernel message -log after executing 'sudo modprobe -a parport_pc'. There is no -default address; if '' does not contain at least one -address, it is an error. - -[[fig:Parport-block-diag]] - -.Parport Block Diagram - -image::images/parport-block-diag.png[align="center"] - -=== Pins - -* 'parport.

    .pin--out' (bit) Drives a physical output pin. - -* 'parport.

    .pin--in' (bit) Tracks a physical input pin. - -* 'parport.

    .pin--in-not' (bit) Tracks a physical input pin, but inverted. - -For each pin, '

    ' is the port number, and '' is the -physical pin number in the 25 pin D-shell connector. - -For each physical output pin, the driver creates a single HAL pin, for example: -'parport.0.pin-14-out'. - -Pins 2 through 9 are part of the data group and are output pins if -the port is defined as an output port. (Output is the default.) Pins 1, -14, 16, and 17 are outputs in all modes. These HAL pins control the -state of the corresponding physical pins. - -For each physical input pin, the driver creates two HAL pins, for example: -'parport.0.pin-12-in' and 'parport.0.pin-12-in-not'. - -Pins 10, 11, 12, 13, and 15 are always input pins. Pins 2 through 9 -are input pins only if the port is defined as an input port. The '-in' -HAL pin is TRUE if the physical pin is high, and FALSE if the -physical pin is low. The '-in-not' HAL pin is inverted -- it is FALSE -if the physical pin is high. By -connecting a signal to one or the other, the user can determine the -state of the input. In 'x' mode, pins 1, 14, 16, and 17 are also input -pins. - -=== Parameters - -* 'parport.

    .pin--out-invert' (bit) Inverts an output pin. - -* 'parport.

    .pin--out-reset' (bit) (only for 'out' pins) TRUE if this -pin should be reset when the '-reset' function is executed. - -* parport.

    .reset-time' (U32) The time (in nanoseconds) -between a pin is set by 'write' and reset by the 'reset' function if it -is enabled. - -The '-invert' parameter determines whether an output pin is active -high or active -low. If '-invert' is FALSE, setting the HAL '-out' pin TRUE drives the -physical pin high, and FALSE drives it low. If '-invert' is TRUE, then -setting the HAL '-out' pin TRUE will drive the physical pin low. - -=== Functions[[sub:parport-functions]] - -* 'parport.

    .read' (funct) Reads physical input pins of port - '' and updates HAL '-in' and '-in-not' pins. - -* 'parport.read-all' (funct) Reads physical input pins of all ports - and updates HAL '-in' and '-in-not' pins. - -* 'parport.

    .write' (funct) Reads HAL '-out' pins of port - '

    ' and updates that port's physical output pins. - -* 'parport.write-all' (funct) Reads HAL '-out' pins of all ports - and updates all physical output pins. - -* 'parport.

    .reset' (funct) Waits until 'reset-time' has - elapsed since the associated 'write', then resets pins to values - indicated by '-out-invert' and '-out-invert' settings. 'reset' must be - later in the same thread as 'write. 'If '-reset' is TRUE, then the - 'reset' function will set the pin to the value of '-out-invert'. This - can be used in conjunction with stepgen's 'doublefreq' to produce one - step per period. The <> for that pin - must be set to 0 to enable doublefreq. - -The individual functions are provided for situations where one port -needs to be updated in a very fast thread, but other ports can be -updated in a slower thread to save CPU time. It is probably not a good -idea to use both an '-all' function and an individual function at the -same time. - -=== Common problems - -If loading the module reports - ----- -insmod: error inserting '/home/jepler/emc2/rtlib/hal_parport.ko': --1 Device or resource busy ----- - -then ensure that the standard kernel module 'parport_pc' is not -loadedfootnote:[In the LinuxCNC packages for Ubuntu, the file -/etc/modprobe.d/emc2 -generally prevents 'parport_pc' from being automatically loaded.] -and that no other device in the system has claimed the I/O ports. - -If the module loads but does not appear to function, then the port -address is incorrect or the 'probe_parport' module is required. - -=== Using DoubleStep - -To setup DoubleStep on the parallel port you must add the function -parport.n.reset after parport.n.write and configure stepspace to 0 and -the reset time wanted. So that step can be asserted on every period in -HAL and then toggled off by parport after being asserted for time -specificed by parport.n.reset-time. - -For example: - ----- -loadrt hal_parport cfg="0x378 out" -setp parport.0.reset-time 5000 -loadrt stepgen step_type=0,0,0 -addf parport.0.read base-thread -addf stepgen.make-pulses base-thread -addf parport.0.write base-thread -addf parport.0.reset base-thread -addf stepgen.capture-position servo-thread -... -setp stepgen.0.steplen 1 -setp stepgen.0.stepspace 0 ----- - -More information on DoubleStep can be found on the -http://wiki.linuxcnc.org/cgi-bin/wiki.pl?TweakingSoftwareStepGeneration[wiki]. - -[[sec:probe_parport]] -== probe_parport - -In modern PCs, the parallel port may require plug and play (PNP) -configuration before it can be used. The 'probe_parport' module -performs configuration of any PNP ports present, and should be -loaded before 'hal_parport'. On machines without PNP ports, it may be -loaded but has no effect. - -=== Installing - ----- -loadrt probe_parport - -loadrt hal_parport ... ----- - -If the Linux kernel prints a message similar to - ----- -parport: PnPBIOS parport detected. ----- - -when the parport_pc module is loaded ('sudo modprobe -a parport_pc; -sudo rmmod parport_pc)' then use of this module is probably required. - - diff --git a/docs/src/hal/parallel_port_es.txt b/docs/src/hal/parallel_port_es.txt deleted file mode 100644 index 3b86e95b780..00000000000 --- a/docs/src/hal/parallel_port_es.txt +++ /dev/null @@ -1,271 +0,0 @@ -= Parallel Port Driver - -[[cha:Parport]] (((Parallel Port Driver))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Parport - -Parport is a driver for the traditional PC parallel port. The port has -a total of 17 physical pins. The original parallel port divided those -pins into three groups: data, control, and status. The data group -consists of 8 output pins, the control group consists of 4 pins, and -the status group consists of 5 input pins. - -In the early 1990's, the bidirectional parallel port was introduced, -which allows the data group to be used for output or input. The HAL -driver supports the bidirectional port, and allows the user to set the -data group as either input or output. If configured as output, a port -provides a total of 12 outputs and 5 inputs. If configured as input, it -provides 4 outputs and 13 inputs. - -In some parallel ports, the control group pins are open collectors, -which may also be driven low by an external gate. On a board with open -collector control pins, the 'x' mode allows a more flexible mode with 8 -outputs, and 9 inputs. In other parallel ports, the control group has -push-pull drivers and cannot be used as an input. - -.HAL and Open Collectors -[NOTE] -=========================================================== -HAL cannot automatically determine if the 'x' mode bidirectional pins -are actually open collectors (OC). If they are not, they cannot be used -as inputs, and attempting to drive them LOW from an external source can -damage the hardware. - -To determine whether your port has 'open collector' pins, load -hal_parport in 'x' mode. With no device attached, HAL should read the -pin as TRUE. Next, insert a 470 ohm resistor from one of the -control pins to GND. If the resulting voltage on the control pin is -close to 0V, and HAL now reads the pin as FALSE, then you have an OC -port. If the resulting voltage is far from 0V, or HAL does not read the -pin as FALSE, then your port cannot be used in 'x' mode. - -The external hardware that drives the control pins should also use -open collector gates (e.g., 74LS05). - -On some machines, BIOS settings may affect whether 'x' mode can be -used. 'SPP' mode is most likely to work. -=========================================================== - -No other combinations are supported, and a port cannot be changed from -input to output once the driver is installed. The -<> shows two block diagrams, -one showing the driver when the data group is configured for output, and one -showing it configured for input. For 'x' mode, refer to the pin listing of -'halcmd show pin' for pin direction assignment. - -The parport driver can control up to 8 ports (defined by MAX_PORTS in -hal_parport.c). The ports are numbered starting at zero. - -=== Installing - ----- -loadrt hal_parport cfg="" ----- - -.Using the Port Index - -I/O addresses below 16 are treated as port indexes. This is the -simplest way to install the parport driver and cooperates with the -Linux parport_pc driver if it is loaded. This will use the address -Linux has detected for parport 0. - ----- -loadrt hal_parport cfg="0" ----- - -.Using the Port Address - -The configure string consists of a hex port address, followed by an -optional direction, repeated for each port. The direction is 'in', -'out', or 'x' and determines the direction of the physical pins 2 -through 9, and whether to create input HAL pins for the physical -control pins. If the direction is not specified, the data group -defaults to output. For example: - ----- -loadrt hal_parport cfg="0x278 0x378 in 0x20A0 out" ----- - -This example installs drivers for one port at 0x0278, with pins 2-9 as -outputs (by default, since neither 'in' nor 'out' was specified), one -at 0x0378, with pins 2-9 as inputs, and one at 0x20A0, with pins 2-9 -explicitly specified as outputs. Note that you must know the base -address of the parallel port to properly configure the driver. For ISA -bus ports, this is usually not a problem, since the port is almost -always at a 'well known' address, like 0278 or 0378 which is typically -configured in the system BIOS. The address for a PCI card is usually -shown in 'lspci -v' in an 'I/O ports' line, or in the kernel message -log after executing 'sudo modprobe -a parport_pc'. There is no -default address; if '' does not contain at least one -address, it is an error. - -[[fig:Parport-block-diag]] - -.Parport Block Diagram - -image::images/parport-block-diag.png[align="center"] - -=== Pins - -* 'parport.

    .pin--out' (bit) Drives a physical output pin. - -* 'parport.

    .pin--in' (bit) Tracks a physical input pin. - -* 'parport.

    .pin--in-not' (bit) Tracks a physical input pin, but inverted. - -For each pin, '

    ' is the port number, and '' is the -physical pin number in the 25 pin D-shell connector. - -For each physical output pin, the driver creates a single HAL pin, for example: -'parport.0.pin-14-out'. - -Pins 2 through 9 are part of the data group and are output pins if -the port is defined as an output port. (Output is the default.) Pins 1, -14, 16, and 17 are outputs in all modes. These HAL pins control the -state of the corresponding physical pins. - -For each physical input pin, the driver creates two HAL pins, for example: -'parport.0.pin-12-in' and 'parport.0.pin-12-in-not'. - -Pins 10, 11, 12, 13, and 15 are always input pins. Pins 2 through 9 -are input pins only if the port is defined as an input port. The '-in' -HAL pin is TRUE if the physical pin is high, and FALSE if the -physical pin is low. The '-in-not' HAL pin is inverted -- it is FALSE -if the physical pin is high. By -connecting a signal to one or the other, the user can determine the -state of the input. In 'x' mode, pins 1, 14, 16, and 17 are also input -pins. - -=== Parameters - -* 'parport.

    .pin--out-invert' (bit) Inverts an output pin. - -* 'parport.

    .pin--out-reset' (bit) (only for 'out' pins) TRUE if this -pin should be reset when the '-reset' function is executed. - -* parport.

    .reset-time' (U32) The time (in nanoseconds) -between a pin is set by 'write' and reset by the 'reset' function if it -is enabled. - -The '-invert' parameter determines whether an output pin is active -high or active -low. If '-invert' is FALSE, setting the HAL '-out' pin TRUE drives the -physical pin high, and FALSE drives it low. If '-invert' is TRUE, then -setting the HAL '-out' pin TRUE will drive the physical pin low. - -[[sub:parport-functions]] -== Functions -(((Parport Functions))) - -* 'parport.

    .read' (funct) Reads physical input pins of port - '' and updates HAL '-in' and '-in-not' pins. - -* 'parport.read-all' (funct) Reads physical input pins of all ports - and updates HAL '-in' and '-in-not' pins. - -* 'parport.

    .write' (funct) Reads HAL '-out' pins of port - '

    ' and updates that port's physical output pins. - -* 'parport.write-all' (funct) Reads HAL '-out' pins of all ports - and updates all physical output pins. - -* 'parport.

    .reset' (funct) Waits until 'reset-time' has - elapsed since the associated 'write', then resets pins to values - indicated by '-out-invert' and '-out-invert' settings. 'reset' must be - later in the same thread as 'write. 'If '-reset' is TRUE, then the - 'reset' function will set the pin to the value of '-out-invert'. This - can be used in conjunction with stepgen's 'doublefreq' to produce one - step per period. The stepgen stepspace for that pin - must be set to 0 to enable doublefreq. - -The individual functions are provided for situations where one port -needs to be updated in a very fast thread, but other ports can be -updated in a slower thread to save CPU time. It is probably not a good -idea to use both an '-all' function and an individual function at the -same time. - -=== Common problems - -If loading the module reports - ----- -insmod: error inserting '/home/jepler/emc2/rtlib/hal_parport.ko': --1 Device or resource busy ----- - -then ensure that the standard kernel module 'parport_pc' is not -loadedfootnote:[In the LinuxCNC packages for Ubuntu, the file -/etc/modprobe.d/emc2 -generally prevents 'parport_pc' from being automatically loaded.] -and that no other device in the system has claimed the I/O ports. - -If the module loads but does not appear to function, then the port -address is incorrect or the 'probe_parport' module is required. - -=== Using DoubleStep - -To setup DoubleStep on the parallel port you must add the function -parport.n.reset after parport.n.write and configure stepspace to 0 and -the reset time wanted. So that step can be asserted on every period in -HAL and then toggled off by parport after being asserted for time -specificed by parport.n.reset-time. - -For example: - ----- -loadrt hal_parport cfg="0x378 out" -setp parport.0.reset-time 5000 -loadrt stepgen step_type=0,0,0 -addf parport.0.read base-thread -addf stepgen.make-pulses base-thread -addf parport.0.write base-thread -addf parport.0.reset base-thread -addf stepgen.capture-position servo-thread -... -setp stepgen.0.steplen 1 -setp stepgen.0.stepspace 0 ----- - -More information on DoubleStep can be found on the -http://wiki.linuxcnc.org/cgi-bin/wiki.pl?TweakingSoftwareStepGeneration[wiki]. - -[[sec:probe_parport]] -== probe_parport - -In modern PCs, the parallel port may require plug and play (PNP) -configuration before it can be used. The 'probe_parport' module -performs configuration of any PNP ports present, and should be -loaded before 'hal_parport'. On machines without PNP ports, it may be -loaded but has no effect. - -=== Installing - ----- -loadrt probe_parport - -loadrt hal_parport ... ----- - -If the Linux kernel prints a message similar to - ----- -parport: PnPBIOS parport detected. ----- - -when the parport_pc module is loaded ('sudo modprobe -a parport_pc; -sudo rmmod parport_pc)' then use of this module is probably required. - - diff --git a/docs/src/hal/parallel_port_fr.txt b/docs/src/hal/parallel_port_fr.txt deleted file mode 100644 index e678482ab62..00000000000 --- a/docs/src/hal/parallel_port_fr.txt +++ /dev/null @@ -1,245 +0,0 @@ -:lang: fr -:toc: - -= Port parallèle - -[[cha:Parport]] (((Pilote parport))) - -== Parport - -Parport est un pilote pour le port parallèle traditionnel des PC. Le port -dispose d'un total de 17 broches physiques. Le port parallèle originel a -divisé ces broches en trois groupes: données, contrôles et états. Le groupe -_données_ consiste en 8 broches de sortie, le groupe _contrôles_ consiste en -4 broches et le groupe _états_ consiste en 5 broches d'entrée. - -Au début des années 1990, le port parallèle bidirectionnel est arrivé, -ce qui a permis à l'utilisateur d'ajuster le groupe des données comme étant -des sorties ou comme étant des entrées. Le pilote de HAL supporte le port -bidirectionnel et permet à l'utilisateur de configurer le groupe des données -en entrées ou en sorties. Si il est configuré en sorties, un port fournit -un total de 12 sorties et 5 entrées. Si il est configuré en entrées, il -fournit 4 sorties et 13 entrées. - -Dans certains ports parallèles, les broches du groupe contrôle sont des -collecteurs ouverts, ils peuvent aussi être mis à l'état bas par une porte -extérieure. Sur une carte avec les broches de contrôle en collecteurs ouverts, -le mode _x_ de HAL permet un usage plus flexible avec 8 sorties dédiées, -5 entrées dédiées et 4 broches en collecteurs ouverts. Dans d'autres ports -parallèles, les broches du groupe contrôles sont en push-pull et ne peuvent -pas être utilisées comme des entrées. - -.HAL et les collecteurs ouverts -[NOTE] -==== -HAL ne peut pas déterminer automatiquement si les broches en mode -bidirectionnel _x_ sont effectivement en collecteurs ouverts. Si elles n'y -sont pas, elles ne peuvent pas être utilisées comme des entrées. Essayer de -les passer à l'état BAS par une source extérieure peut détériorer le matériel. - -Pour déterminer si un port a des broches de contrôle en _collecteur ouvert_, -charger hal_parport en mode _x_, positionner les broches de contrôle à une -valeur HAUTE. HAL doit lire des pins à l'état VRAI. Ensuite, insérer une -résistance de 470Ω entre une des broches de contrôle et GND du port parallèle. -Si la tension de cette broche de contrôle est maintenant proche de 0V et -que HAL la lit comme une pin FAUSSE, alors vous avez un port OC. Si la -tension résultante est loin de 0V ou que HAL ne la lit pas comme étant FAUSSE, -votre port ne ne peut pas être utilisé en mode _x_. - -Le matériel extérieur qui pilote les broches de contrôle devrait également -utiliser des portes en collecteur ouvert (ex: 74LS05...). Généralement, -une pin de HAL -out devrait être VRAIE quand la pin physique est utilisée -comme une entrée. - -Sur certaines machines, les paramètres du BIOS peuvent affecter la -possibilité d'utiliser le mode _x_. Le mode _SPP_ est le mode qui -fonctionne le plus fréquemment. -==== - -Aucune autre combinaison n'est supportée. Un port ne peut plus être -modifié pour passer d'entrées en sorties une fois le pilote installé. -La figure <> affiche deux -diagrammes, un montre le pilote quand le groupe de données est configuré -en sorties et le second le montre configuré en entrées. - -Le pilote _parport_ peut contrôler au maximum 8 ports (définis par MAX_PORTS -dans le fichier hal_parport.c). Les ports sont numérotés à partir de zéro. - -=== Chargement de hal_parport ----- -loadrt hal_parport cfg="" ----- - -=== Utiliser l'index du port - -Les adresses d'E/S inférieures à 16 sont traitées comme les index de port. -C'est la manière la plus simple d'installer le pilote _parport_ en -coopération avec le pilote de Linux parport_pc si il est chargé. ----- -loadrt hal_parport cfg="0" ----- - -Utilisera l'adresse que Linux a détecté pour parport0. - -=== Utiliser l'adresse du port - -La chaine config-string représente l'adresse hexadécimale du port, -suivie optionnellement par une direction, le tout répété pour chaque port. -Les directions sont _in_, _out_, ou _x_, elles déterminent la direction des -broches physiques 2 à 9 et s'il y a lieu de créer des pins d'entrée de HAL -pour les broches de contrôle physiques. Si la direction n'est pas précisée, -le groupe données sera par défaut configuré en sorties. Par exemple: ----- -loadrt hal_parport cfg="0x278 0x378 in 0x20A0 out" ----- - -Cet exemple installe les pilotes pour un port 0x0278, avec les broches 2 à 9 -en sorties (par défaut, puisque ni _in_, ni _out_ n'est spécifié), un port -0x0378, avec les broches 2 à 9 en entrées et un port 0x20A0, avec les -broches 2 à 9 explicitement spécifiées en sorties. Notez que vous devez -connaître l'adresse de base des ports parallèles pour configurer -correctement les pilotes. Pour les ports sur bus ISA, ce n'est généralement -pas un problème, étant donné que les ports sont presque toujours à une -adresse _bien connue_, comme 0x278 ou 0x378 qui sont typiquement -configurées dans le BIOS. Les adresses des cartes sur bus PCI sont -habituellement trouvées avec _lspci -v_ dans une ligne _I/O ports_, -ou dans un message du noayau après l'exécution de _sudo modprobe -a parport_pc_. -Il n'y a pas d'adresse par défaut, si ne contient pas au -moins une adresse, c'est une erreur. - -[[fig:Parport-block-diag]] -(((Diagramme de parport))) - -.Diagrammes blocs de parport - -image::images/parport-block-diag.png[] - -=== Pins - -* _(bit) parport..pin--out_ -- Pilote une broche de -sortie physique. output pin. -* _(bit) parport..pin--in_ -- Suit une broche d'entrée -physique. pin. -* _(bit) parport..pin--in-not_ -- Suit une pin d'entrée -physique, mais inversée. -Pour chaque pin, __ est le numéro du port et __ est le -numéro de la broche physique du connecteur DB-25. - -Pour chaque broche de sortie physique, le pilote crée une simple pin de HAL, -par exemple parport.0.pin-14-out. Les pins 2 jusqu'à 9 font partie du -groupe _données_, elles sont des pins de sortie si le port est défini -comme un port de sortie (par défaut, port de sortie). Les broches 1, 14, -16 et 17 sont des sorties dans tous les modes. Ces pins de HAL contrôlent -l'état des pins physiques correspondantes. - -Pour chaque pin d'entrée physique, le pilote crée deux pins de HAL, par -exemple: parport.0.pin-12-in et parport.0.pin-12-in-not. Les pins -10, 11, 12, 13 et 15 sont toujours des sorties. Les pins 2 jusqu'à 9 sont -des pins d'entrée seulement si le port est défini comme un port d'entrée. -Une pin de HAL -in est VRAIE si la pin physique est haute et FAUSSE si la -pin physique est basse. Une pin de HAL -in-not est inversée, elle est FAUSSE -si la pin physique est haute. En connectant un signal à l'une ou à l'autre, -l'utilisateur peut décider de la logique de l'entrée. En mode _x_, les pins -1, 14, 16 et 17 sont également des pins d'entrée. - -=== Paramètres - -* _(bit) parport..pin--out-invert_ -- Inverse une pin de - sortie. -* _(bit) parport..pin--out-reset_ -- (seulement pour les - pins 2..9) VRAIE si cette pin doit être réinitialisée quand la fonction - de réinitialisation est exécutée. -* _(U32) parport..reset-time_ -- Le temps (en nanosecondes) entre le - moment ou la broche est écrite et le moment ou elle est réinitialisée - par les fonctions de réinitialisation de HAL. - -Le paramètre _-invert_ détermine si une pin de sortie est active haute ou -active basse. Si _-invert_ est FAUX, mettre la pin HAL -out VRAIE, placera -la pin physique à l'état haut et mettre la pin HAL FAUSSE, placera la pin -physique à l'état bas. Si _-invert_ est VRAI, mettre la pin HAL -out VRAIE, -va mettre la pin physique à l'état bas. Si _-reset_ est VRAI, la fonction -de réinitialisation va passer la pin à la valeur de _-out-invert_. Ceci -peut être utilisé en conjonction avec _stepgen doublefreq_ pour produire -un pas par période. - -=== Fonctions - -* _(funct) parport..read_-- Lit les pins physiques du port - et met à jour les pins de HAL -in et -in-not. -* _(funct) parport.read-all_ -- Lit les pins physiques de tous les ports et met - à jour les pins de HAL -in et -in-not. -* _(funct) parport..write_ -- Lit les pins de HAL -out du port - et met à jour les pins de sortie physiques correspondantes. -* _(funct) parport.write-all_ -- Lit les pins de HAL -out de tous les ports et - met à jour toutes les pins de sortie physiques. -* _(funct) parport..reset_ -- Attends que le délai de mise à jour _reset-time_ - soit écoulé depuis la dernière écriture associée _write_ puis remet à jour les - pins aux valeurs indiquées par _-out-invert_ et les paramètres de _-out-invert_. - La réinitialisation doit être plus tard dans le même thread que l'écriture. - -Les différentes fonctions individuelles sont prévues pour les situations où un -port doit être mis à jour dans un thread très rapide, mais d'autres ports peuvent -être mis à jour dans un thread plus lent pour gagner du temps CPU. Ce n'est -probablement pas une bonne idée d'utiliser en même temps, les fonctions -all et -une fonction individuelle. - -=== Problème courant - -Si, au chargement du module un message du genre suivant apparait: - - insmod: error inserting '/home/jepler/linuxcnc/rtlib/hal_parport.ko': - -1 Device or resource busy - -s'assurer que le module du kernel standard, parport_pc, n'est pas chargé et qu'aucun -périphérique dans le système ne revendique les ports concernés. footnote:[Dans le -paquetage LinuxCNC pour Ubuntu, le fichier /etc/modprobe.d/linuxcnc empêche normalement que -_parport_pc_ soit chargé automatiquement.] - -Si le module est chargé mais ne semble pas fonctionner, l'adresse du port est -incorrecte ou le module _probe_parport_ est revendiqué par un autre périphérique. - -=== Utiliser DoubleStep - -Pour activer DoubleStep sur un port parallèle, il faut ajouter la fonction -_parport.n.reset_ après _parport.n.write_ et configurer _stepspace_ à _0_ ainsi -que le _reset-time_ souhaité. Alors ce pas pourra être positionné à chaque période -dans HAL, puis voir son état basculé par _parport_ après été positionné pendant -le temps spécifié par parport.n.reset-time. - -Par exemple: ----- -loadrt hal_parport cfg="0x378 out" -setp parport.0.reset-time 5000 -loadrt stepgen step_type=0,0,0 -addf parport.0.read base-thread -addf stepgen.make-pulses base-thread -addf parport.0.write base-thread -addf parport.0.reset base-thread -addf stepgen.capture-position servo-thread -... -setp stepgen.0.steplen 1 -setp stepgen.0.stepspace 0 ----- - -== probe_parport[[sec:probe_parport]] - -Dans les PC actuels, les ports parallèles peuvent requérir une configuration -plug and play (PNP) avant qu'ils ne puissent être utilisés. Le module de noyau -_probe_parport_ effectue la configuration de tous les port PNP présents. Il doit -être chargé avant _hal_parport_. Sur les machines sans port PNP, il peut être chargé mais restera sans effet. - -=== Installer probe_parport - ----- -loadrt probe_parport -loadrt hal_parport ... ----- - -Si le kernel Linux affiche un message similaire à: - -+parport: PnPBIOS parport detected.+ - -Quand le module parport_pc est chargé, avec la commande: _sudo modprobe -a parport_pc; -sudo rmmod parport_pc_, l'utilisation de ce module sera probablement nécessaire. - - diff --git a/docs/src/hal/pyvcp.txt b/docs/src/hal/pyvcp.txt deleted file mode 100644 index 54d81b8dbdf..00000000000 --- a/docs/src/hal/pyvcp.txt +++ /dev/null @@ -1,1003 +0,0 @@ -= Python Virtual Control Panel - -[[cha:pyvcp]] (((Python Virtual Control Panel))) - -== Introduction - -.Python Virtual Control Panel - -The PyVCP (Python Virtual Control Panel) is designed to give the -integrator the ability to customize the AXIS interface with buttons and -indicators to do special tasks. - -Hardware machine control panels can use up a lot of I/O pins and can -be expensive. That is where Virtual Control Panels have the advantage -as well as it cost nothing to build a PyVCP. - -Virtual Control Panels can be used for testing or monitoring things to -temporarily replace real I/O devices while debugging ladder logic, or -to simulate a physical panel before you build it and wire it to an I/O -board. - -The following graphic displays many of the PyVCP widgets. - -image::images/pyvcp_group.png[] - -== Panel Construction - -The layout of a PyVCP panel is specified with an XML file that -contains widget tags between and . For example: - -[source,xml] -------------------------------------------------- - - -------------------------------------------------- - -image::images/pyvcp_mypanel.png[] - -If you place this text in a file called tiny.xml, and run - ----------------------------------------------- -halrun -I loadusr pyvcp -c mypanel tiny.xml ----------------------------------------------- - -PyVCP will create the panel for you, which includes two widgets, a -Label with the text 'This is a LED indicator', and a LED, used for -displaying the state of a HAL BIT signal. It will also create a HAL -component named 'mypanel' (all widgets in this panel are connected to -pins that start with 'mypanel.'). Since no tag was present -inside the tag, PyVCP will automatically name the HAL pin for the -LED widget mypanel.led.0 - -For a list of widgets and their tags and options, see the widget -reference below. - -Once you have created your panel, connecting HAL signals to and from -the PyVCP pins is done with the halcmd: - ------------------------------------------------------------------------ -net signal-name ------------------------------------------------------------------------ - -If you are new to HAL, the HAL basics chapter in the Integrator -Manual is a good place to start. - -== Security - -Parts of PyVCP files are evaluated as Python code, and can take any -action available to Python programs. Only use PyVCP .xml files from a -source that you trust. - -[[sec:pyvcp-with-axis]] -== AXIS - -Since AXIS uses the same GUI toolkit (Tkinter) as PyVCP, it is -possible to include a PyVCP panel on the right side of the normal AXIS -user interface. A typical example is explained below. - -Place your PyVCP XML file describing the panel in the same directory -where your .ini file is. Say we we want to display the current spindle -speed using a Bar widget. Place the following in a file called -spindle.xml: - -[source,xml] -------------------------------------------------- - - - - "spindle-speed" - 5000 - - -------------------------------------------------- - -Here we've made a panel with a Label and a Bar widget, specified that -the HAL pin connected to the Bar should be named 'spindle-speed', and -set the maximum value of the bar to 5000 (see widget reference below -for all options). To make AXIS aware of this file, and call it at start -up, we need to specify the following in the [DISPLAY] section of the -.ini file: - ------------------------------ -PYVCP = spindle.xml ------------------------------ - -To make our widget actually display the spindle-speed it needs to be -hooked up to the appropriate HAL signal. A .hal file that will be run -once AXIS and PyVCP have started can be specified in the [HAL] section -of the .ini file: - ---------------------------------------- -POSTGUI_HALFILE = spindle_to_pyvcp.hal ---------------------------------------- - -This change will run the HAL commands specified in -'spindle_to_pyvcp.hal'. In our example the contents could look like -this: - -------------------------------------------------- -net spindle-rpm-filtered => pyvcp.spindle-speed -------------------------------------------------- - -assuming that a signal called 'spindle-rpm-filtered' already exists. -Note that when running together with AXIS, all PyVCP widget HAL pins -have names that start with 'pyvcp.'. - -image::images/pyvcp_axis_lathe.png[] - -This is what the newly created PyVCP panel should look like in AXIS. -The 'sim/lathe' configuration is already configured this way. - -== Stand Alone - -This section describes how PyVCP panels can be displayed on their own -with or without LinuxCNC's machine controller. - -To load a stand alone PyVCP panel with LinuxCNC use these commands: - ------------------------------------------------------------------------ -loadusr -Wn mypanel pyvcp -g WxH+X+Y -c mypanel panel_file.xml ------------------------------------------------------------------------ - -You would use this if you wanted a floating panel or a panel with a -GUI other than AXIS. - -* '-Wn panelname' - - makes HAL wait for the component 'panelname' to finish loading - ('become ready' in HAL speak) before processing more HAL commands. This - is important because PyVCP panels export HAL pins, and other HAL - components will need them present to connect to them. Note the capital - W and lowercase n. If you use the -Wn option you must use the -c option - to name the panel. - -* 'pyvcp < -g> < -c> panel.xml' - - builds the panel with the optional geometry and/or panelname from the - xml panel file. The panel.xml can be any name that ends in .xml. The - .xml file is the file that describes how to build the panel. You must - add the path name if the panel is not in the directory that the HAL - script is in. - -* '-g <+X+Y>' - - specifies the geometry to be used when constructing the panel. The - syntax is 'Width x Height + X Anchor + Y Anchor'. You can set the size - or position or both. The anchor point is the upper left corner of the - panel. An example is -g 250x500+800+0 This sets the panel at 250 pixels - wide, 500 pixels tall, and anchors it at X800 Y0. - -* '-c panelname' - - tells PyVCP what to call the component and also the title of the - window. The panelname can be any name without spaces. - -To load a 'stand alone' PyVCP panel without LinuxCNC use this command: - ------------------------------------------------------------------------ -loadusr -Wn mypanel pyvcp -g 250x500+800+0 -c mypanel mypanel.xml ------------------------------------------------------------------------ - -The minimum command to load a pyvcp panel is: - ------------------------------ -loadusr pyvcp mypanel.xml ------------------------------ - -You would use this if you want a panel without LinuxCNC's machine -controller such as for testing or a standalone DRO. - -The loadusr command is used when you also load a component that will -stop HAL from closing until it's done. If you loaded a panel and then -loaded Classic Ladder using 'loadusr -w classicladder', -CL would hold HAL open (and the panel)  until you closed CL. -The '-Wn' above means wait for the component '-Wn "name"' to become ready. -('name' can be any name. Note the capital W and lowercase n.) -The -c tells PyVCP to build a panel with the -name 'panelname' using the info in 'panel_file_name.xml'. -The name 'panel_file_name.xml' can be any name but must end in .xml - it is the -file that describes how to build the panel. You must add the path name -if the panel is not in the directory that the HAL script is in. - -An optional command to use if you want the panel to stop HAL from -continuing commands / shutting down. After loading any other components -you want the last HAL command to be: - ------------------------------ -waituser panelname ------------------------------ - -This tells HAL to wait for component 'panelname' to close before -continuing HAL commands. This is usually set as the last command so that -HAL shuts down when the panel is closed. - -== Widgets - -HAL signals come in two variants, bits and numbers. Bits are off/on -signals. Numbers can be 'float', 's32' or 'u32'. For more information -on HAL data types see the HAL manual. The PyVCP widget -can either display the value of the signal with an indicator widget, or -modify the signal value with a control widget. Thus there are four -classes of PyVCP widgets that you can connect to a HAL signal. A fifth -class of helper widgets allow you to organize and label your panel. - - . Widgets for indicating 'bit' signals: led, rectled - . Widgets for controlling 'bit' signals: button, checkbutton, radiobutton - . Widgets for indicating 'number' signals: number, s32, u32, bar, meter - . Widgets for controlling 'number' signals: spinbox, scale, jogwheel - . Helper widgets: hbox, vbox, table, label, labelframe - -=== Syntax - -Each widget is described briefly, followed by the markup used, and a -screen shot. All tags inside the main widget tag are optional. - -=== General Notes - -At the present time, both a tag-based and an attribute-based syntax -are supported. For instance, the following XML fragments are treated -identically: - -[source,xml] ---------------------------------------- - ---------------------------------------- - -and - -[source,xml] ---------------------------------------- -"my-led" ---------------------------------------- - -When the attribute-based syntax is used, the following rules are used -to turn the attributes value into a Python value: - - . If the first character of the attribute is one of the following, it is - evaluated as a Python expression: '{(["'' - . If the string is accepted by int(), the value is treated as an integer - . If the string is accepted by float(), the value is treated as - floating-point - . Otherwise, the string is accepted as a string. - -When the tag-based syntax is used, the text within the tag is always -evaluated as a Python expression. - -The examples below show a mix of formats. - -==== Comments - -To add a comment use the xml syntax for a comment. - -[source,xml] ------------------------------ - ------------------------------ - -==== Editing the XML file - -Edit the XML file with a text editor. In most cases you can right -click on the file and select 'open with text editor' or similar. - -==== Colors - -Colors can be specified using the X11 rgb colors by name 'gray75' or -hex '#0000ff'. A complete list is located here -http://sedition.com/perl/rgb.html[http://sedition.com/perl/rgb.html]. - -Common Colors (colors with numbers indicate shades of that color) - - - white - - black - - blue and blue1 - 4 - - cyan and cyan1 - 4 - - green and green1 - 4 - - yellow and yellow1 - 4 - - red and red1 - 4 - - purple and purple1 - 4 - - gray and gray0 - 100 - -==== HAL Pins - -HAL pins provide a means to 'connect' the widget to something. Once -you create a HAL pin for your widget you can 'connect' it to another -HAL pin with a 'net' command in a .hal file. For more information on -the 'net' command see the HAL Commands section of the HAL manual. - -=== Label - -A label is a piece of text on your panel. - -The label has an optional disable pin that is created when you add -'True'. - -[source,xml] -------------------------------------------------- - -------------------------------------------------- - -The above code produced this example. - -image::images/pyvcp_label.png[] - -=== Multi_Label - -An extention of the text label. - -Selectable text label, can display up to 6 label legends when associated bit pin is activated - -Attach each legend pin to a signal and get a descriptive label when the signal is TRUE. - -If more than one legend pin is TRUE, the highest numbered 'TRUE' legend will be displayed. - -[source,xml] -------------------------------------------------- - - ["Label1" "Label2" "Label3" "Label4" "Label5" "Label6"] - ("Helvetica",20) - False - -------------------------------------------------- - -=== LEDs - -A LED is used to indicate the status of a 'bit' halpin. The LED color -will be on_color when the halpin is true, and off_color otherwise. - -* '' - - sets the name of the pin, default is 'led.n', where n is an integer - -* '' - - sets the size of the led, default is 20 - -* '' - - sets the color of the LED when the pin is true. default is 'green' - -* '' - - sets the color of the LED when the pin is false. default is 'red' - -* '' - - when true adds a disable pin to the led. - -* '' - - sets the color of the LED when the pin is disabled. - -==== Round LED - -[source,xml] ---------------------------------------- - - "my-led" - 50 - "green" - "red" - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_led.png[] - -==== Rectangle LED - -This is a variant of the 'led' widget. - -[source,xml] -------------------------------------------------- - - RIDGE - 6 - - "my-led" - "50" - "100" - "green" - "red" - - -------------------------------------------------- - -The above code produced this example. -Also showing a vertical box with relief. - -image::images/pyvcp_rectled.png[] - -=== Buttons - -A button is used to control a BIT pin. The pin will be set True when -the button is pressed and held down, and will be set False when the -button is released. Buttons can use the following formatting options - -* 'n' - - where 'n' is the amount of extra horizontal extra space - -* 'n' - - where 'n' is the amount of extra vertical extra space - -* '"color"' - - the cursor over color - -* '"color"' - - the color of the button - -==== Text Button - -A text button controls a 'bit' halpin. The halpin is false until the -button is pressed then it is true. The button is a momentary button. - -The text button has an optional disable pin that is created when you -add True. - -[source,xml] ---------------------------------------- - - - "coolant-chkbtn" - "Coolant" - "1" - - - "chip-chkbtn" - "Chips " - "0" - ---------------------------------------- - -The above code produced this example. -The coolant checkbutton is checked. -Notice the extra spaces in the Chips text -to keep the checkbuttons aligned. - -image::images/pyvcp_checkbutton.png[] - -==== Radiobutton - -A radiobutton will set one of the halpins true. The other pins are set -false. -The initval field may be set to choose the default selection when the panel displays. -Only one radio button may be set to TRUE (1) or only the highest number pin set TRUE will have that value. - -[source,xml] -------------------------------------------------- - - ["one","two","three"] - "my-radio" - "0" - -------------------------------------------------- - -The above code produced this example. - -image::images/pyvcp_radiobutton.png[] - -Note that the HAL pins in the example above will me named -my-radio.one, my-radio.two, and my-radio.three. In the image above, -'one' is the selected value. - -=== Number Displays - -Number displays can use the following formatting options - -* ("Font Name",n) where 'n' is the font size -* n where 'n' is the overall width of the space used -* pos where 'pos' is LEFT, CENTER, or RIGHT (doesn't work) -* n where 'n' is the amount of extra horizontal extra space -* n where 'n' is the amount of extra vertical extra space - -==== Number - -The number widget displays the value of a float signal. - -[source,xml] ---------------------------------------- - - "my-number" - ("Helvetica",24) - "+4.4f" - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_number.png[] - -* '' - is a Tkinter font type and size specification. One font that -will show up to at least size 200 is 'courier 10 pitch', so for a -really big Number widget you could specify: - -[source,xml] -------------------------------------------------- -("courier 10 pitch",100) -------------------------------------------------- - -* '' - is a 'C-style' format specified that determines how -the number is displayed. - -==== s32 Number - -The s32 number widget displays the value of a s32 number. The syntax -is the same as 'number' except the name which is . Make sure the -width is wide enough to cover the largest number you expect to use. - -[source,xml] -------------------------------------------------- - - "my-number" - ("Helvetica",24) - "6d" - 6 - -------------------------------------------------- - -The above code produced this example. - -image::images/pyvcp_s32.png[] - -==== u32 Number - -The u32 number widget displays the value of a u32 number. The syntax -is the same as 'number' except the name which is . - -==== Bar - -A bar widget displays the value of a FLOAT signal both graphically -using a bar display and numerically. -The colour of the bar can be set as one colour throughout its range (default using fillcolor) -or set to change colour dependent upon the value of the halpin (range1, range2 range3 must all be set, -if you only want 2 ranges, set 2 of them to the same colour) - -[source,xml] ---------------------------------------- - - "my-bar" - 0 - 150 - "grey" - "red" - 0,100,"green" - 101,135,"orange" - 136, 150,"red" - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_bar.png[] - -==== Meter - -Meter displays the value of a FLOAT signal using a traditional dial -indicator. - -[source,xml] -------------------------------------------------- - - "mymeter" - "Battery" - "Volts" - 250 - 0 - 15.5 - 1 - 0.2 - (14.5,15.5,"yellow") - (12,14.5,"green") - (0,12,"red") - -------------------------------------------------- - -The above code produced this example. - -image::images/pyvcp_meter.png[] - -=== Number Inputs - -==== Spinbox - -Spinbox controls a FLOAT pin. You increase or decrease the value of -the pin by either pressing on the arrows, or pointing at the spinbox -and rolling your mouse-wheel. -If the param_pin field is set TRUE(1), a pin will be created that can be used to set the spinbox to -an initial value and to remotely alter its value without HID input - -[source,xml] ---------------------------------------- - - "my-spinbox" - -12 - 33 - 0 - 0.1 - "2.3f" - ("Arial",30) - 1 - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_spinbox.png[] - -==== Scale - -Scale controls a float or a s32 pin. You increase or decrease the -value of the pin be either dragging the slider, or pointing at the -scale and rolling your mouse-wheel. The 'halpin' will have both '-f' -and '-i' added to it to form the float and s32 pins. Width is the width -of the slider in vertical and the height of the slider in horizontal -orientation. -If the param_pin field is set TRUE(1), a pin will be created that can be used to set the spinbox to -an initial value and to remotely alter its value without HID input - - -[source,xml] ---------------------------------------- - - ("Helvetica",16) - "25" - "my-hscale" - 0.1 - HORIZONTAL - -15 - -33 - 26 - 1 - - - ("Helvetica",16) - "50" - "my-vscale" - 1 - VERTICAL - 100 - 0 - 1 - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_scale.png[] - -==== Dial - -The Dial outputs a HAL float and reacts to both mouse wheel and -dragging. Double left click to increase the resolution and double right -click to reduce the resolution by one digit. The output is capped by -the min and max values. The is how many tick marks are on the -outside of the ring (beware of high numbers). -If the param_pin field is set TRUE(1), a pin will be created that can be used to set the spinbox to -an initial value and to remotely alter its value without HID input -[source,xml] ---------------------------------------- - - 200 - 100 - -15 - 15 - "Dial" - 0 - 0.001 - "anaout" - "yellow" - "green" - "black" - 1 - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_dial.png[] - -==== Jogwheel - -Jogwheel mimics a real jogwheel by outputting a FLOAT pin which counts -up or down as the wheel is turned, either by dragging in a circular -motion, or by rolling the mouse-wheel. - -[source,xml] ---------------------------------------- - - "my-wheel" - 45 - 250 - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_jogwheel.png[] - -=== Images - -Image displays use only .gif image format. All of the images must be -the same size. The images must be in the same directory as your ini -file (or in the current directory if running from the command line with -halrun/halcmd). - -==== Image Bit - -The 'image_bit' toggles between two images by setting the halpin to -true or false. - -[source,xml] ------------------------------------------------------------ - - - - - ------------------------------------------------------------ - -This example was produced from the above code. -Using the two image files fwd.gif and rev.gif. -FWD is displayed when 'selectimage' is false -and REV is displayed when 'selectimage' is true. - -image:images/pyvcp_image01.png[] image:images/pyvcp_image02.png[] - -==== Image u32 - -The 'image_u32' is the same as 'image_bit' except you have essentially -an unlimited number of images and you 'select' the image by setting the -halpin to a integer value with 0 for the first image in the images list -and 1 for the second image etc. - -[source,xml] ---------------------------------------------------------------------- - - - - - - ---------------------------------------------------------------------- - -The above code produced the following example -by adding the stb.gif image. - -image:images/pyvcp_image_u32_01.png[] image:images/pyvcp_image01.png[] image:images/pyvcp_image02.png[] - -Notice that the default is the min even though it is set higher than -max unless there is a negative min. - -=== Containers - -Containers are widgets that contain other widgets. Containers are used -to group other widgets. - -==== Borders - -Container borders are specified with two tags used together. The - tag specifies the type of border and the specifies the -width of the border. - -* 'type' - - Where 'type' is FLAT, SUNKEN, RAISED, GROOVE, or RIDGE - -* 'n' - - Where 'n' is the width of the border. - -[source,xml] ---------------------------------------- - - - - - - - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_borders.png[] - -==== Hbox - -Use an Hbox when you want to stack widgets horizontally -next to each other. - -[source,xml] -------------------------------------------------- - - RIDGE - 6 - - - - - -------------------------------------------------- - -The above code produced this example. - -image::images/pyvcp_hbox.png[] - -Inside an Hbox, you can use the '', '', and '' tags to choose how items in -the box behave when the window is re-sized. -For details of how fill, anchor, and expand behave, refer to -the Tk 'pack' manual page, 'pack(3tk)'. By default, 'fill="y"', -'anchor="center"', 'expand="yes"'. - -==== Vbox - -Use a Vbox when you want to stack widgets vertically on top of each -other. - -[source,xml] -------------------------------------------------- - - RIDGE - 6 - - - - - -------------------------------------------------- - -The above code produced this example. - -image::images/pyvcp_vbox.png[] - -Inside a Hbox, you can use the '', '', and '' tags to choose how items in -the box behave when the window is -re-sized. For details of how fill, anchor, and expand behave, refer to -the Tk 'pack' manual page, 'pack(3tk)'. By default, 'fill="x"', -'anchor="center"', 'expand="yes"'. - -==== Labelframe - -A labelframe is a frame with a groove and a label at the upper-left -corner. - -[source,xml] ---------------------------------------- - - ("Helvetica",16) - - - - - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_labelframe.png[] - -==== Table - -A table is a container that allows layout in a grid of rows and -columns. Each row is started by a '' tag. A contained -widget may span rows or columns through the use of -the '' tag. The sides of the cells to which -the contained widgets “stick†-may be set through the use of the '' tag. A -table expands on its flexible rows and columns. - -Example: -[source,xml] ------------------------------------------------------------ - - - - -
    ------------------------------------------------------------ - -The above code produced this example. - -image::images/pyvcp_table.png[] - -==== Tabs - -A tabbed interface can save quite a bit of space. - -[source,xml] ------------------------------------------------------------ - - ["spindle","green eggs"] - - - ["Spindle", "Green Eggs", "Ham"] - - - - "spindle-speed" - 5000 - - - - - - - - - ------------------------------------------------------------ - -The above code produced this example showing each tab selected. - -image::images/pyvcp_tabs1.png[] - -image::images/pyvcp_tabs2.png[] - -image::images/pyvcp_tabs3.png[] - - diff --git a/docs/src/hal/pyvcp_es.txt b/docs/src/hal/pyvcp_es.txt deleted file mode 100644 index 40a6f126293..00000000000 --- a/docs/src/hal/pyvcp_es.txt +++ /dev/null @@ -1,975 +0,0 @@ -= Python Virtual Control Panel - -[[cha:pyvcp]] (((Python Virtual Control Panel))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Introduction - -.Python Virtual Control Panel - -The PyVCP (Python Virtual Control Panel) is designed to give the -integrator the ability to customize the AXIS interface with buttons and -indicators to do special tasks. - -Hardware machine control panels can use up a lot of I/O pins and can -be expensive. That is where Virtual Control Panels have the advantage -as well as it cost nothing to build a PyVCP. - -Virtual Control Panels can be used for testing or monitoring things to -temporarily replace real I/O devices while debugging ladder logic, or -to simulate a physical panel before you build it and wire it to an I/O -board. - -The following graphic displays many of the PyVCP widgets. - -image::images/pyvcp_group.png[] - -== Panel Construction - -The layout of a PyVCP panel is specified with an XML file that -contains widget tags between and . For example: - -[source,xml] -------------------------------------------------- - - -------------------------------------------------- - -image::images/pyvcp_mypanel.png[] - -If you place this text in a file called tiny.xml, and run - ----------------------------------------------- -halrun -I loadusr pyvcp -c mypanel tiny.xml ----------------------------------------------- - -PyVCP will create the panel for you, which includes two widgets, a -Label with the text 'This is a LED indicator', and a LED, used for -displaying the state of a HAL BIT signal. It will also create a HAL -component named 'mypanel' (all widgets in this panel are connected to -pins that start with 'mypanel.'). Since no tag was present -inside the tag, PyVCP will automatically name the HAL pin for the -LED widget mypanel.led.0 - -For a list of widgets and their tags and options, see the widget -reference below. - -Once you have created your panel, connecting HAL signals to and from -the PyVCP pins is done with the halcmd: - ------------------------------------------------------------------------ -net signal-name ------------------------------------------------------------------------ - -If you are new to HAL, the HAL basics chapter in the Integrator -Manual is a good place to start. - -== Security - -Parts of PyVCP files are evaluated as Python code, and can take any -action available to Python programs. Only use PyVCP .xml files from a -source that you trust. - -[[sec:pyvcp-with-axis]] -== AXIS - -Since AXIS uses the same GUI toolkit (Tkinter) as PyVCP, it is -possible to include a PyVCP panel on the right side of the normal AXIS -user interface. A typical example is explained below. - -Place your PyVCP XML file describing the panel in the same directory -where your .ini file is. Say we we want to display the current spindle -speed using a Bar widget. Place the following in a file called -spindle.xml: - -[source,xml] -------------------------------------------------- - - - - "spindle-speed" - 5000 - - -------------------------------------------------- - -Here we've made a panel with a Label and a Bar widget, specified that -the HAL pin connected to the Bar should be named 'spindle-speed', and -set the maximum value of the bar to 5000 (see widget reference below -for all options). To make AXIS aware of this file, and call it at start -up, we need to specify the following in the [DISPLAY] section of the -.ini file: - ------------------------------ -PYVCP = spindle.xml ------------------------------ - -To make our widget actually display the spindle-speed it needs to be -hooked up to the appropriate HAL signal. A .hal file that will be run -once AXIS and PyVCP have started can be specified in the [HAL] section -of the .ini file: - ---------------------------------------- -POSTGUI_HALFILE = spindle_to_pyvcp.hal ---------------------------------------- - -This change will run the HAL commands specified in -'spindle_to_pyvcp.hal'. In our example the contents could look like -this: - -------------------------------------------------- -net spindle-rpm-filtered => pyvcp.spindle-speed -------------------------------------------------- - -assuming that a signal called 'spindle-rpm-filtered' already exists. -Note that when running together with AXIS, all PyVCP widget HAL pins -have names that start with 'pyvcp.'. - -image::images/pyvcp_axis_lathe.png[] - -This is what the newly created PyVCP panel should look like in AXIS. -The 'sim/lathe' configuration is already configured this way. - -== Stand Alone - -This section describes how PyVCP panels can be displayed on their own -with or without LinuxCNC's machine controller. - -To load a stand alone PyVCP panel with LinuxCNC use these commands: - ------------------------------------------------------------------------ -loadusr -Wn mypanel pyvcp -g WxH+X+Y -c mypanel panel_file.xml ------------------------------------------------------------------------ - -You would use this if you wanted a floating panel or a panel with a -GUI other than AXIS. - -* '-Wn panelname' - - makes HAL wait for the component 'panelname' to finish loading - ('become ready' in HAL speak) before processing more HAL commands. This - is important because PyVCP panels export HAL pins, and other HAL - components will need them present to connect to them. Note the capital - W and lowercase n. If you use the -Wn option you must use the -c option - to name the panel. - -* 'pyvcp < -g> < -c> panel.xml' - - builds the panel with the optional geometry and/or panelname from the - xml panel file. The panel.xml can be any name that ends in .xml. The - .xml file is the file that describes how to build the panel. You must - add the path name if the panel is not in the directory that the HAL - script is in. - -* '-g <+X+Y>' - - specifies the geometry to be used when constructing the panel. The - syntax is 'Width x Height + X Anchor + Y Anchor'. You can set the size - or position or both. The anchor point is the upper left corner of the - panel. An example is -g 250x500+800+0 This sets the panel at 250 pixels - wide, 500 pixels tall, and anchors it at X800 Y0. - -* '-c panelname' - - tells PyVCP what to call the component and also the title of the - window. The panelname can be any name without spaces. - -To load a 'stand alone' PyVCP panel without LinuxCNC use this command: - ------------------------------------------------------------------------ -loadusr -Wn mypanel pyvcp -g 250x500+800+0 -c mypanel mypanel.xml ------------------------------------------------------------------------ - -The minimum command to load a pyvcp panel is: - ------------------------------ -loadusr pyvcp mypanel.xml ------------------------------ - -You would use this if you want a panel without LinuxCNC's machine -controller such as for testing or a standalone DRO. - -The loadusr command is used when you also load a component that will -stop HAL from closing until it's done. If you loaded a panel and then -loaded Classic Ladder using 'loadusr -w classicladder', -CL would hold HAL open (and the panel) until you closed CL. -The '-Wn' above means wait for the component '-Wn "name"' to become ready. -('name' can be any name. Note the capital W and lowercase n.) -The -c tells PyVCP to build a panel with the -name 'panelname' using the info in 'panel_file_name.xml'. -The name 'panel_file_name.xml' can be any name but must end in .xml - it is the -file that describes how to build the panel. You must add the path name -if the panel is not in the directory that the HAL script is in. - -An optional command to use if you want the panel to stop HAL from -continuing commands / shutting down. After loading any other components -you want the last HAL command to be: - ------------------------------ -waituser panelname ------------------------------ - -This tells HAL to wait for component 'panelname' to close before -continuing HAL commands. This is usually set as the last command so that -HAL shuts down when the panel is closed. - -== Widgets - -HAL signals come in two variants, bits and numbers. Bits are off/on -signals. Numbers can be 'float', 's32' or 'u32'. For more information -on HAL data types see the HAL manual. The PyVCP widget -can either display the value of the signal with an indicator widget, or -modify the signal value with a control widget. Thus there are four -classes of PyVCP widgets that you can connect to a HAL signal. A fifth -class of helper widgets allow you to organize and label your panel. - - . Widgets for indicating 'bit' signals: led, rectled - . Widgets for controlling 'bit' signals: button, checkbutton, radiobutton - . Widgets for indicating 'number' signals: number, s32, u32, bar, meter - . Widgets for controlling 'number' signals: spinbox, scale, jogwheel - . Helper widgets: hbox, vbox, table, label, labelframe - -=== Syntax - -Each widget is described briefly, followed by the markup used, and a -screen shot. All tags inside the main widget tag are optional. - -=== General Notes - -At the present time, both a tag-based and an attribute-based syntax -are supported. For instance, the following XML fragments are treated -identically: - -[source,xml] ---------------------------------------- - ---------------------------------------- - -and - -[source,xml] ---------------------------------------- -"my-led" ---------------------------------------- - -When the attribute-based syntax is used, the following rules are used -to turn the attributes value into a Python value: - - . If the first character of the attribute is one of the following, it is - evaluated as a Python expression: '{(["'' - . If the string is accepted by int(), the value is treated as an integer - . If the string is accepted by float(), the value is treated as - floating-point - . Otherwise, the string is accepted as a string. - -When the tag-based syntax is used, the text within the tag is always -evaluated as a Python expression. - -The examples below show a mix of formats. - -==== Comments - -To add a comment use the xml syntax for a comment. - -[source,xml] ------------------------------ - ------------------------------ - -==== Editing the XML file - -Edit the XML file with a text editor. In most cases you can right -click on the file and select 'open with text editor' or similar. - -==== Colors - -Colors can be specified using the X11 rgb colors by name 'gray75' or -hex '#0000ff'. A complete list is located here -http://sedition.com/perl/rgb.html[http://sedition.com/perl/rgb.html]. - -Common Colors (colors with numbers indicate shades of that color) - - - white - - black - - blue and blue1 - 4 - - cyan and cyan1 - 4 - - green and green1 - 4 - - yellow and yellow1 - 4 - - red and red1 - 4 - - purple and purple1 - 4 - - gray and gray0 - 100 - -==== HAL Pins - -HAL pins provide a means to 'connect' the widget to something. Once -you create a HAL pin for your widget you can 'connect' it to another -HAL pin with a 'net' command in a .hal file. For more information on -the 'net' command see the HAL Commands section of the HAL manual. - -=== Label - -A label is a piece of text on your panel. - -The label has an optional disable pin that is created when you add -'True'. - -[source,xml] -------------------------------------------------- - -------------------------------------------------- - -The above code produced this example. - -image::images/pyvcp_label.png[] - -=== LEDs - -A LED is used to indicate the status of a 'bit' halpin. The LED color -will be on_color when the halpin is true, and off_color otherwise. - -* '' - - sets the name of the pin, default is 'led.n', where n is an integer - -* '' - - sets the size of the led, default is 20 - -* '' - - sets the color of the LED when the pin is true. default is 'green' - -* '' - - sets the color of the LED when the pin is false. default is 'red' - -* '' - - when true adds a disable pin to the led. - -* '' - - sets the color of the LED when the pin is disabled. - -==== Round LED - -[source,xml] ---------------------------------------- - - "my-led" - 50 - "green" - "red" - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_led.png[] - -==== Rectangle LED - -This is a variant of the 'led' widget. - -[source,xml] -------------------------------------------------- - - RIDGE - 6 - - "my-led" - "50" - "100" - "green" - "red" - - -------------------------------------------------- - -The above code produced this example. -Also showing a vertical box with relief. - -image::images/pyvcp_rectled.png[] - -=== Buttons - -A button is used to control a BIT pin. The pin will be set True when -the button is pressed and held down, and will be set False when the -button is released. Buttons can use the following formatting options - -* 'n' - - where 'n' is the amount of extra horizontal extra space - -* 'n' - - where 'n' is the amount of extra vertical extra space - -* '"color"' - - the cursor over color - -* '"color"' - - the color of the button - -==== Text Button - -A text button controls a 'bit' halpin. The halpin is false until the -button is pressed then it is true. The button is a momentary button. - -The text button has an optional disable pin that is created when you -add True. - -[source,xml] ---------------------------------------- - - - "coolant-chkbtn" - "Coolant" - - - "chip-chkbtn" - "Chips " - ---------------------------------------- - -The above code produced this example. -The coolant checkbutton is checked. -Notice the extra spaces in the Chips text -to keep the checkbuttons aligned. - -image::images/pyvcp_checkbutton.png[] - -==== Radiobutton - -A radiobutton will set one of the halpins true. The other pins are set -false. - -[source,xml] -------------------------------------------------- - - ["one","two","three"] - "my-radio" - -------------------------------------------------- - -The above code produced this example. - -image::images/pyvcp_radiobutton.png[] - -Note that the HAL pins in the example above will me named -my-radio.one, my-radio.two, and my-radio.three. In the image above, -'one' is the selected value. - -=== Number Displays - -Number displays can use the following formatting options - -* ("Font Name",n) where 'n' is the font size -* n where 'n' is the overall width of the space used -* pos where 'pos' is LEFT, CENTER, or RIGHT (doesn't work) -* n where 'n' is the amount of extra horizontal extra space -* n where 'n' is the amount of extra vertical extra space - -==== Number - -The number widget displays the value of a float signal. - -[source,xml] ---------------------------------------- - - "my-number" - ("Helvetica",24) - "+4.4f" - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_number.png[] - -* '' - is a Tkinter font type and size specification. One font that -will show up to at least size 200 is 'courier 10 pitch', so for a -really big Number widget you could specify: - -[source,xml] -------------------------------------------------- -("courier 10 pitch",100) -------------------------------------------------- - -* '' - is a 'C-style' format specified that determines how -the number is displayed. - -==== s32 Number - -The s32 number widget displays the value of a s32 number. The syntax -is the same as 'number' except the name which is . Make sure the -width is wide enough to cover the largest number you expect to use. - -[source,xml] -------------------------------------------------- - - "my-number" - ("Helvetica",24) - "6d" - 6 - -------------------------------------------------- - -The above code produced this example. - -image::images/pyvcp_s32.png[] - -==== u32 Number - -The u32 number widget displays the value of a u32 number. The syntax -is the same as 'number' except the name which is . - -==== Bar - -A bar widget displays the value of a FLOAT signal both graphically -using a bar display and numerically. - -[source,xml] ---------------------------------------- - - "my-bar" - 0 - 123 - "grey" - "red" - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_bar.png[] - -==== Meter - -Meter displays the value of a FLOAT signal using a traditional dial -indicator. - -[source,xml] -------------------------------------------------- - - "mymeter" - "Battery" - "Volts" - 250 - 0 - 15.5 - 1 - 0.2 - (14.5,15.5,"yellow") - (12,14.5,"green") - (0,12,"red") - -------------------------------------------------- - -The above code produced this example. - -image::images/pyvcp_meter.png[] - -=== Number Inputs - -==== Spinbox - -Spinbox controls a FLOAT pin. You increase or decrease the value of -the pin by either pressing on the arrows, or pointing at the spinbox -and rolling your mouse-wheel. - -[source,xml] ---------------------------------------- - - "my-spinbox" - -12 - 33 - 0 - 0.1 - "2.3f" - ("Arial",30) - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_spinbox.png[] - -==== Scale - -Scale controls a float or a s32 pin. You increase or decrease the -value of the pin be either dragging the slider, or pointing at the -scale and rolling your mouse-wheel. The 'halpin' will have both '-f' -and '-i' added to it to form the float and s32 pins. Width is the width -of the slider in vertical and the height of the slider in horizontal -orientation. - -[source,xml] ---------------------------------------- - - ("Helvetica",16) - "25" - "my-hscale" - 0.1 - HORIZONTAL - -15 - -33 - 26 - - - ("Helvetica",16) - "50" - "my-vscale" - 1 - VERTICAL - 100 - 0 - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_scale.png[] - -==== Dial - -The Dial outputs a HAL float and reacts to both mouse wheel and -dragging. Double left click to increase the resolution and double right -click to reduce the resolution by one digit. The output is capped by -the min and max values. The is how many tick marks are on the -outside of the ring (beware of high numbers). - -[source,xml] ---------------------------------------- - - 200 - 100 - -15 - 15 - "Dial" - 0 - 0.001 - "anaout" - "yellow" - "green" - "black" - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_dial.png[] - -==== Jogwheel - -Jogwheel mimics a real jogwheel by outputting a FLOAT pin which counts -up or down as the wheel is turned, either by dragging in a circular -motion, or by rolling the mouse-wheel. - -[source,xml] ---------------------------------------- - - "my-wheel" - 45 - 250 - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_jogwheel.png[] - -=== Images - -Image displays use only .gif image format. All of the images must be -the same size. The images must be in the same directory as your ini -file (or in the current directory if running from the command line with -halrun/halcmd). - -==== Image Bit - -The 'image_bit' toggles between two images by setting the halpin to -true or false. - -[source,xml] ------------------------------------------------------------ - - - - - ------------------------------------------------------------ - -This example was produced from the above code. -Using the two image files fwd.gif and rev.gif. -FWD is displayed when 'selectimage' is false -and REV is displayed when 'selectimage' is true. - -image:images/pyvcp_image01.png[] image:images/pyvcp_image02.png[] - -==== Image u32 - -The 'image_u32' is the same as 'image_bit' except you have essentially -an unlimited number of images and you 'select' the image by setting the -halpin to a integer value with 0 for the first image in the images list -and 1 for the second image etc. - -[source,xml] ---------------------------------------------------------------------- - - - - - - ---------------------------------------------------------------------- - -The above code produced the following example -by adding the stb.gif image. - -image:images/pyvcp_image_u32_01.png[] image:images/pyvcp_image01.png[] image:images/pyvcp_image02.png[] - -Notice that the default is the min even though it is set higher than -max unless there is a negative min. - -=== Containers - -Containers are widgets that contain other widgets. Containers are used -to group other widgets. - -==== Borders - -Container borders are specified with two tags used together. The - tag specifies the type of border and the specifies the -width of the border. - -* 'type' - - Where 'type' is FLAT, SUNKEN, RAISED, GROOVE, or RIDGE - -* 'n' - - Where 'n' is the width of the border. - -[source,xml] ---------------------------------------- - - - - - - - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_borders.png[] - -==== Hbox - -Use an Hbox when you want to stack widgets horizontally -next to each other. - -[source,xml] -------------------------------------------------- - - RIDGE - 6 - - - - - -------------------------------------------------- - -The above code produced this example. - -image::images/pyvcp_hbox.png[] - -Inside an Hbox, you can use the '', '', and '' tags to choose how items in -the box behave when the window is re-sized. -For details of how fill, anchor, and expand behave, refer to -the Tk 'pack' manual page, 'pack(3tk)'. By default, 'fill="y"', -'anchor="center"', 'expand="yes"'. - -==== Vbox - -Use a Vbox when you want to stack widgets vertically on top of each -other. - -[source,xml] -------------------------------------------------- - - RIDGE - 6 - - - - - -------------------------------------------------- - -The above code produced this example. - -image::images/pyvcp_vbox.png[] - -Inside a Hbox, you can use the '', '', and '' tags to choose how items in -the box behave when the window is -re-sized. For details of how fill, anchor, and expand behave, refer to -the Tk 'pack' manual page, 'pack(3tk)'. By default, 'fill="x"', -'anchor="center"', 'expand="yes"'. - -==== Labelframe - -A labelframe is a frame with a groove and a label at the upper-left -corner. - -[source,xml] ---------------------------------------- - - ("Helvetica",16) - - - - - ---------------------------------------- - -The above code produced this example. - -image::images/pyvcp_labelframe.png[] - -==== Table - -A table is a container that allows layout in a grid of rows and -columns. Each row is started by a '' tag. A contained -widget may span rows or columns through the use of -the '' tag. The sides of the cells to which -the contained widgets “stick†-may be set through the use of the '' tag. A -table expands on its flexible rows and columns. - -Example: -[source,xml] ------------------------------------------------------------ - - - - -
    ------------------------------------------------------------ - -The above code produced this example. - -image::images/pyvcp_table.png[] - -==== Tabs - -A tabbed interface can save quite a bit of space. - -[source,xml] ------------------------------------------------------------ - - ["spindle","green eggs"] - - - ["Spindle", "Green Eggs", "Ham"] - - - - "spindle-speed" - 5000 - - - - - - - - - ------------------------------------------------------------ - -The above code produced this example showing each tab selected. - -image::images/pyvcp_tabs1.png[] - -image::images/pyvcp_tabs2.png[] - -image::images/pyvcp_tabs3.png[] - - diff --git a/docs/src/hal/pyvcp_examples.txt b/docs/src/hal/pyvcp_examples.txt deleted file mode 100644 index 50469ba3192..00000000000 --- a/docs/src/hal/pyvcp_examples.txt +++ /dev/null @@ -1,480 +0,0 @@ -= PyVCP Examples - -== AXIS - -To create a PyVCP panel to use with the AXIS interface that is -attached to the right of AXIS you need to do the following basic -things. - -* Create an .xml file that contains your panel description and put it in - your config directory. -* Add the PyVCP entry to the [DISPLAY] section of the ini file with your - .xml file name. -* Add the POSTGUI_HALFILE entry to the [HAL] section of the ini file - with the name of your postgui HAL file name. -* Add the links to HAL pins for your panel in the postgui.hal file to - 'connect' your PyVCP panel to LinuxCNC. - -== Floating - -To create floating PyVCP panels that can be used with any interface -you need to do the following basic things. - -* Create an .xml file that contains your panel description and put it in - your config directory. -* Add a loadusr line to your .hal file to load each panel. -* Add the links to HAL pins for your panel in the postgui.hal file to - 'connect' your PyVCP panel to LinuxCNC. - -The following is an example of a loadusr command to load two PyVCP -panels and name each one so the connection names in HAL will be known. - -[source,c] ----- -loadusr -Wn btnpanel pyvcp -c btnpanel panel1.xml -loadusr -Wn sppanel pyvcp -c sppanel panel2.xml ----- - -The -Wn makes HAL 'Wait for name' to be loaded before proceeding. The -pyvcp -c makes PyVCP name the panel. - -The HAL pins from panel1.xml will be named btnpanel. - -The HAL pins from panel2.xml will be named sppanel. - -Make sure the loadusr line is before any nets that make use of the -PyVCP pins. - -== Jog Buttons - -In this example we will create a PyVCP panel with jog buttons for X, -Y, and Z. This configuration will be built upon a Stepconf Wizard -generated configuration. First we run the Stepconf Wizard and configure -our machine, then on the Advanced Configuration Options page we make a -couple of selections to add a blank PyVCP panel as shown in the -following figure. For this example we named the configuration -'pyvcp_xyz' on the Basic Machine Information page of the Stepconf -Wizard. - -.XYZ Wizard Configuration[[cap:XYZ-Wizard-Configuration]] - -image::images/xyz_ACO.png[] - -The Stepconf Wizard will create several files and place them in the -linuxcnc/configs/pyvcp_xyz directory. If you left the create link checked -you will have a link to those files on your desktop. - -=== Create the Widgets - -Open up the custompanel.xml file by right clicking on it and selecting -'open with text editor'. Between the tags we will add -the widgets for our panel. - -Look in the PyVCP Widgets Reference section of the manual for more -detailed information on each widget. - -In your custompanel.xml file we will add the description of the -widgets. - -[source,xml] ----- - - - ("Helvetica",16) - - - - RAISED - 3 - - - - - - - RAISED - 3 - - - - - - - RAISED - 3 - - - - - - - RAISED - 3 - - - ("Helvetica",14) - "jog-speed" - 1 - HORIZONTAL - 0 - 80 - - - - ----- - -After adding the above you now will have a PyVCP panel that looks like -the following attached to the right side of AXIS. It looks nice but it -does not do anything until you 'connect' the buttons to halui. If you -get an error when you try and run scroll down to the bottom of the pop -up window and usually the error is a spelling or syntax error and it -will be there. - -.Jog Buttons[[cap:Jog-Buttons]] - -image::images/xyz_buttons.png[] - -=== Make Connections - -To make the connections needed open up your custom_postgui.hal file -and add the following. - ----- -# connect the X PyVCP buttons -net my-jogxminus halui.jog.0.minus <= pyvcp.x-minus -net my-jogxplus halui.jog.0.plus <= pyvcp.x-plus - -# connect the Y PyVCP buttons -net my-jogyminus halui.jog.1.minus <= pyvcp.y-minus -net my-jogyplus halui.jog.1.plus <= pyvcp.y-plus - -# connect the Z PyVCP buttons -net my-jogzminus halui.jog.2.minus <= pyvcp.z-minus -net my-jogzplus halui.jog.2.plus <= pyvcp.z-plus - -# connect the PyVCP jog speed slider - net my-jogspeed halui.jog-speed <= pyvcp.jog-speed-f ----- - -After resetting the E-Stop and putting it into jog mode and moving the -jog speed slider in the PyVCP panel to a value greater than zero the -PyVCP jog buttons should work. You can not jog when running a g code -file or while paused or while the MDI tab is selected. - -== Port Tester - -This example shows you how to make a simple parallel port tester using -PyVCP and HAL. - -First create the ptest.xml file with the following code to create the -panel description. - -[source,xml] ----- - - - - RIDGE - 2 - - - "led-01" - 25 - "green" - "red" - - - - RIDGE - 2 - - - "led-02" - 25 - "green" - "red" - - - - RIDGE - 2 - - - "led-10" - 25 - "green" - "red" - - - - RIDGE - 2 - - - "led-11" - 25 - "green" - "red" - - - ----- - -This will create the following floating panel which contains a couple -of in pins and a couple of out pins. - -.Port Tester Panel[[cap:Port-Tester-Panel]] - -image::images/ptest.png[] - -To run the HAL commands that we need to get everything up and running -we put the following in our ptest.hal file. - -[source,c] ----- -loadrt hal_parport cfg="0x378 out" -loadusr -Wn ptest pyvcp -c ptest ptest.xml -loadrt threads name1=porttest period1=1000000 -addf parport.0.read porttest -addf parport.0.write porttest -net pin01 ptest.btn01 parport.0.pin-01-out ptest.led-01 -net pin02 ptest.btn02 parport.0.pin-02-out ptest.led-02 -net pin10 parport.0.pin-10-in ptest.led-10 -net pin11 parport.0.pin-11-in ptest.led-11 -start ----- - -To run the HAL file we use the following command from a terminal window. - ----- -~$ halrun -I -f ptest.hal ----- - -The following figure shows what a complete panel might look like. - -.Port Tester Complete[[cap:Port-Tester-Complete]] - -image::images/ptest-final.png[] - -To add the rest of the parallel port pins just modify the .xml and -.hal files. - -To show the pins after running the HAL script use the following -command at the halcmd prompt: - ----- -halcmd: show pin -Component Pins: -Owner Type Dir Value Name - 2 bit IN FALSE parport.0.pin-01-out <== pin01 - 2 bit IN FALSE parport.0.pin-02-out <== pin02 - 2 bit IN FALSE parport.0.pin-03-out - 2 bit IN FALSE parport.0.pin-04-out - 2 bit IN FALSE parport.0.pin-05-out - 2 bit IN FALSE parport.0.pin-06-out - 2 bit IN FALSE parport.0.pin-07-out - 2 bit IN FALSE parport.0.pin-08-out - 2 bit IN FALSE parport.0.pin-09-out - 2 bit OUT TRUE parport.0.pin-10-in ==> pin10 - 2 bit OUT FALSE parport.0.pin-10-in-not - 2 bit OUT TRUE parport.0.pin-11-in ==> pin11 - 2 bit OUT FALSE parport.0.pin-11-in-not - 2 bit OUT TRUE parport.0.pin-12-in - 2 bit OUT FALSE parport.0.pin-12-in-not - 2 bit OUT TRUE parport.0.pin-13-in - 2 bit OUT FALSE parport.0.pin-13-in-not - 2 bit IN FALSE parport.0.pin-14-out - 2 bit OUT TRUE parport.0.pin-15-in - 2 bit OUT FALSE parport.0.pin-15-in-not - 2 bit IN FALSE parport.0.pin-16-out - 2 bit IN FALSE parport.0.pin-17-out - 4 bit OUT FALSE ptest.btn01 ==> pin01 - 4 bit OUT FALSE ptest.btn02 ==> pin02 - 4 bit IN FALSE ptest.led-01 <== pin01 - 4 bit IN FALSE ptest.led-02 <== pin02 - 4 bit IN TRUE ptest.led-10 <== pin10 - 4 bit IN TRUE ptest.led-11 <== pin11 ----- - -This will show you what pins are IN and what pins are OUT as well as -any connections. - - -== GS2 RPM Meter[[gs2-rpm-meter]] - -The following example uses the Automation Direct GS2 VDF driver and -displays the RPM and other info in a PyVCP panel. This example is based -on the GS2 example in the Hardware Examples section this manual. - -=== The Panel - -To create the panel we add the following to the .xml file. - -[source,xml] ----- - - - - - RAISED - 3 - - "spindle_rpm" - "Spindle" - "RPM" - 200 - 0 - 3000 - 500 - 100 - 0,10,"yellow" - - - - - - RAISED - 3 - - RAISED - 2 - - 5 - - - - - - - RAISED - 2 - - - - - - RAISED - 2 - - - - ----- - -The above gives us a PyVCP panel that looks like the following. - -.GS2 Panel[[cap:GS2-Panel]] - -image::images/gs2_panel.png[] - -=== The Connections - -To make it work we add the following code to the custom_postgui.hal -file. - ----- -# display the rpm based on freq * rpm per hz -loadrt mult2 -addf mult2.0 servo-thread -setp mult2.0.in1 28.75 -net cypher_speed mult2.0.in0 <= spindle-vfd.frequency-out -net speed_out pyvcp.spindle_rpm <= mult2.0.out - -# run led -net gs2-run => pyvcp.on-led - -# fwd led -net gs2-fwd => pyvcp.fwd-led - -# rev led -net running-rev spindle-vfd.spindle-rev => pyvcp.rev-led ----- - -Some of the lines might need some explanations. The fwd led line uses -the signal created in the custom.hal file whereas the rev led needs to -use the spindle-rev bit. You can't link the spindle-fwd bit twice so -you use the signal that it was linked to. - - - diff --git a/docs/src/hal/pyvcp_examples_es.txt b/docs/src/hal/pyvcp_examples_es.txt deleted file mode 100644 index 627c41d6afa..00000000000 --- a/docs/src/hal/pyvcp_examples_es.txt +++ /dev/null @@ -1,492 +0,0 @@ -= PyVCP Examples - -== AXIS - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -To create a PyVCP panel to use with the AXIS interface that is -attached to the right of AXIS you need to do the following basic -things. - -* Create an .xml file that contains your panel description and put it in - your config directory. -* Add the PyVCP entry to the [DISPLAY] section of the ini file with your - .xml file name. -* Add the POSTGUI_HALFILE entry to the [HAL] section of the ini file - with the name of your postgui HAL file name. -* Add the links to HAL pins for your panel in the postgui.hal file to - 'connect' your PyVCP panel to EMC. - -== Floating - -To create floating PyVCP panels that can be used with any interface -you need to do the following basic things. - -* Create an .xml file that contains your panel description and put it in - your config directory. -* Add a loadusr line to your .hal file to load each panel. -* Add the links to HAL pins for your panel in the postgui.hal file to - 'connect' your PyVCP panel to EMC. - -The following is an example of a loadusr command to load two PyVCP -panels and name each one so the connection names in HAL will be known. - -[source,c] ----- -loadusr -Wn btnpanel pyvcp -c btnpanel panel1.xml -loadusr -Wn sppanel pyvcp -c sppanel panel2.xml ----- - -The -Wn makes HAL 'Wait for name' to be loaded before proceeding. The -pyvcp -c makes PyVCP name the panel. - -The HAL pins from panel1.xml will be named btnpanel. - -The HAL pins from panel2.xml will be named sppanel. - -Make sure the loadusr line is before any nets that make use of the -PyVCP pins. - -== Jog Buttons - -In this example we will create a PyVCP panel with jog buttons for X, -Y, and Z. This configuration will be built upon a Stepconf Wizard -generated configuration. First we run the Stepconf Wizard and configure -our machine, then on the Advanced Configuration Options page we make a -couple of selections to add a blank PyVCP panel as shown in the -following figure. For this example we named the configuration -'pyvcp_xyz' on the Basic Machine Information page of the Stepconf -Wizard. - -.XYZ Wizard Configuration[[cap:XYZ-Wizard-Configuration]] - -image::images/xyz_ACO.png[] - -The Stepconf Wizard will create several files and place them in the -/emc/configs/pyvcp_xyz directory. If you left the create link checked -you will have a link to those files on your desktop. - -=== Create the Widgets - -Open up the custompanel.xml file by right clicking on it and selecting -'open with text editor'. Between the tags we will add -the widgets for our panel. - -Look in the PyVCP Widgets Reference section of the manual for more -detailed information on each widget. - -In your custompanel.xml file we will add the description of the -widgets. - -[source,xml] ----- - - - ("Helvetica",16) - - - - RAISED - 3 - - - - - - - RAISED - 3 - - - - - - - RAISED - 3 - - - - - - - RAISED - 3 - - - ("Helvetica",14) - "jog-speed" - 1 - HORIZONTAL - 0 - 80 - - - - ----- - -After adding the above you now will have a PyVCP panel that looks like -the following attached to the right side of AXIS. It looks nice but it -does not do anything until you 'connect' the buttons to halui. If you -get an error when you try and run scroll down to the bottom of the pop -up window and usually the error is a spelling or syntax error and it -will be there. - -.Jog Buttons[[cap:Jog-Buttons]] - -image::images/xyz_buttons.png[] - -=== Make Connections - -To make the connections needed open up your custom_postgui.hal file -and add the following. - ----- -# connect the X PyVCP buttons -net my-jogxminus halui.jog.0.minus <= pyvcp.x-minus -net my-jogxplus halui.jog.0.plus <= pyvcp.x-plus - -# connect the Y PyVCP buttons -net my-jogyminus halui.jog.1.minus <= pyvcp.y-minus -net my-jogyplus halui.jog.1.plus <= pyvcp.y-plus - -# connect the Z PyVCP buttons -net my-jogzminus halui.jog.2.minus <= pyvcp.z-minus -net my-jogzplus halui.jog.2.plus <= pyvcp.z-plus - -# connect the PyVCP jog speed slider - net my-jogspeed halui.jog-speed <= pyvcp.jog-speed-f ----- - -After resetting the E-Stop and putting it into jog mode and moving the -jog speed slider in the PyVCP panel to a value greater than zero the -PyVCP jog buttons should work. You can not jog when running a g code -file or while paused or while the MDI tab is selected. - -== Port Tester - -This example shows you how to make a simple parallel port tester using -PyVCP and HAL. - -First create the ptest.xml file with the following code to create the -panel description. - -[source,xml] ----- - - - - RIDGE - 2 - - - "led-01" - 25 - "green" - "red" - - - - RIDGE - 2 - - - "led-02" - 25 - "green" - "red" - - - - RIDGE - 2 - - - "led-10" - 25 - "green" - "red" - - - - RIDGE - 2 - - - "led-11" - 25 - "green" - "red" - - - ----- - -This will create the following floating panel which contains a couple -of in pins and a couple of out pins. - -.Port Tester Panel[[cap:Port-Tester-Panel]] - -image::images/ptest.png[] - -To run the HAL commands that we need to get everything up and running -we put the following in our ptest.hal file. - -[source,c] ----- -loadrt hal_parport cfg="0x378 out" -loadusr -Wn ptest pyvcp -c ptest ptest.xml -loadrt threads name1=porttest period1=1000000 -addf parport.0.read porttest -addf parport.0.write porttest -net pin01 ptest.btn01 parport.0.pin-01-out ptest.led-01 -net pin02 ptest.btn02 parport.0.pin-02-out ptest.led-02 -net pin10 parport.0.pin-10-in ptest.led-10 -net pin11 parport.0.pin-11-in ptest.led-11 -start ----- - -To run the HAL file we use the following command from a terminal window. - ----- -~$ halrun -I -f ptest.hal ----- - -The following figure shows what a complete panel might look like. - -.Port Tester Complete[[cap:Port-Tester-Complete]] - -image::images/ptest-final.png[] - -To add the rest of the parallel port pins just modify the .xml and -.hal files. - -To show the pins after running the HAL script use the following -command at the halcmd prompt: - ----- -halcmd: show pin -Component Pins: -Owner Type Dir Value Name - 2 bit IN FALSE parport.0.pin-01-out <== pin01 - 2 bit IN FALSE parport.0.pin-02-out <== pin02 - 2 bit IN FALSE parport.0.pin-03-out - 2 bit IN FALSE parport.0.pin-04-out - 2 bit IN FALSE parport.0.pin-05-out - 2 bit IN FALSE parport.0.pin-06-out - 2 bit IN FALSE parport.0.pin-07-out - 2 bit IN FALSE parport.0.pin-08-out - 2 bit IN FALSE parport.0.pin-09-out - 2 bit OUT TRUE parport.0.pin-10-in ==> pin10 - 2 bit OUT FALSE parport.0.pin-10-in-not - 2 bit OUT TRUE parport.0.pin-11-in ==> pin11 - 2 bit OUT FALSE parport.0.pin-11-in-not - 2 bit OUT TRUE parport.0.pin-12-in - 2 bit OUT FALSE parport.0.pin-12-in-not - 2 bit OUT TRUE parport.0.pin-13-in - 2 bit OUT FALSE parport.0.pin-13-in-not - 2 bit IN FALSE parport.0.pin-14-out - 2 bit OUT TRUE parport.0.pin-15-in - 2 bit OUT FALSE parport.0.pin-15-in-not - 2 bit IN FALSE parport.0.pin-16-out - 2 bit IN FALSE parport.0.pin-17-out - 4 bit OUT FALSE ptest.btn01 ==> pin01 - 4 bit OUT FALSE ptest.btn02 ==> pin02 - 4 bit IN FALSE ptest.led-01 <== pin01 - 4 bit IN FALSE ptest.led-02 <== pin02 - 4 bit IN TRUE ptest.led-10 <== pin10 - 4 bit IN TRUE ptest.led-11 <== pin11 ----- - -This will show you what pins are IN and what pins are OUT as well as -any connections. - -== GS2 RPM Meter[[gs2-rpm-meter]] - -The following example uses the Automation Direct GS2 VDF driver and -displays the RPM and other info in a PyVCP panel. This example is based -on the GS2 example in the Hardware Examples section this manual. - -=== The Panel - -To create the panel we add the following to the .xml file. - -[source,xml] ----- - - - - - RAISED - 3 - - "spindle_rpm" - "Spindle" - "RPM" - 200 - 0 - 3000 - 500 - 100 - 0,10,"yellow" - - - - - - RAISED - 3 - - RAISED - 2 - - 5 - - - - - - - RAISED - 2 - - - - - - RAISED - 2 - - - - ----- - -The above gives us a PyVCP panel that looks like the following. - -.GS2 Panel[[cap:GS2-Panel]] - -image::images/gs2_panel.png[] - -=== The Connections - -To make it work we add the following code to the custom_postgui.hal -file. - ----- -# display the rpm based on freq * rpm per hz -loadrt mult2 -addf mult2.0 servo-thread -setp mult2.0.in1 28.75 -net cypher_speed mult2.0.in0 <= spindle-vfd.frequency-out -net speed_out pyvcp.spindle_rpm <= mult2.0.out - -# run led -net gs2-run => pyvcp.on-led - -# fwd led -net gs2-fwd => pyvcp.fwd-led - -# rev led -net running-rev spindle-vfd.spindle-rev => pyvcp.rev-led ----- - -Some of the lines might need some explanations. The fwd led line uses -the signal created in the custom.hal file whereas the rev led needs to -use the spindle-rev bit. You can't link the spindle-fwd bit twice so -you use the signal that it was linked to. - - - diff --git a/docs/src/hal/pyvcp_examples_fr.txt b/docs/src/hal/pyvcp_examples_fr.txt deleted file mode 100644 index 62d74d0699f..00000000000 --- a/docs/src/hal/pyvcp_examples_fr.txt +++ /dev/null @@ -1,489 +0,0 @@ -:lang: fr -:toc: - -= Exemples d'utilisation de PyVCP - -== Panneau PyVCP dans AXIS - -Procédure pour créer un panneau PyVCP et l'utiliser, attaché dans la partie -droite de l'interface AXIS. - - - Créer un fichier .xml contenant la description du panneau et le placer dans - le répertoire de la configuration. - - Ajouter une entrée, avec le nom du fichier .xml, dans la section [DISPLAY] - du fichier ini. - - Ajouter une entrée POSTGUI_HALFILE, avec le nom du fichier postgui HAL. - - Ajouter les liens vers les pins de HAL pour le panneau dans le fichier - postgui.hal pour "connecter" le panneau PyVCP avec LinuxCNC. - -== Panneaux flottants - -Pour créer des panneaux flottants PyVCP pouvant être utilisés avec -n'importe quelle interface, suivre les points suivants: - - - Créer un fichier .xml contenant la description du panneau et le placer dans - le répertoire de configuration. - - Ajouter les lignes _loadusr_ dans le fichier.hal pour charger chaque panneau. - - Ajouter les liens vers les pins de HAl du panneau dans le fichier postgui.hal, - pour "connecter" les panneaux PyVCP à LinuxCNC. - -L'exemple suivant montre le chargement de deux panneaux PyVCP. ----- -loadusr -Wn btnpanel pyvcp -c btnpanel panel1.xml -loadusr -Wn sppanel pyvcp -c sppanel panel2.xml ----- - -Les paramètres -Wn font que HAL **W**ait for **n**ame, attends le composant -nommé _btnpanel_. - -Les paramètres pyvcp -c font que PyVCP nomme le panneau. - -Les pins de HAL de panel1.xml seront nommées _btnpanel._ - -Les pins de HAL de panel2.xml seront nommées _sppanel._ - -Bien s'assurer qu'aucune ligne _loadusr_ ne fasse déjà appel à une de ces pins -PyVCP. - -== Boutons de Jog - -Dans cet exemple nous allons créer un panneau PyVCP avec 3 boutons utilisables -pour déplacer en manuel les axes X, Y et Z. Cette configuration sera réalisée -avec l'assistant Stepconf qui générera la configuration de la machine. -Premièrement, nous lançons l'assistant Stepconf et le configurons pour la -machine, ensuite dans la page _Advanced Configuration Options_ nous effectuons -les sélections pour ajouter un panneau PyVCP vierge, comme indiqué sur l'image -suivante. Pour cet exemple nous avons nommé la configuration _pyvcp_xyz_ sur la -page _Basic Machine Information_ de l'assistant Stepconf. - -.Assistant de configuration XYZ[[cap:XYZ-Wizard-Configuration]] - -image::images/xyz_ACO.png[] - -L'assistant Stepconf Wizard va créer plusieurs fichiers et les placer dans le -répertoire _/emc/configs/pyvcp_xyz_. Si la case _Créer un lien_ est cochée, -un lien vers ces fichiers sera créé sur le bureau. - -=== Créer les Widgets - -Ouvrir le fichier custompanel.xml par un clic droit sur son nom, puis en -sélectionnant _Ouvrir avec l'éditeur de texte_. Entre les balises -__ et __ nous ajouterons les widgets pour le panneau. - -Tous les détails sur chacun des Widgets de PyVCP sont donnés dans la -<>. - -Dans le fichier custompanel.xml nous ajoutons la description des widgets. - -[source,xml] ----- - - - - ("Helvetica",16) - - - - RAISED - 3 - - - - - - - RAISED - 3 - - - - - - - RAISED - 3 - - - - - - - RAISED - 3 - - - ("Helvetica",14) - "jog-speed" - 1 - HORIZONTAL - 0 - 80 - - - - ----- - -Après les ajouts précédents, nous avons un panneau PyVCP tel que celui -de l'image suivante, attaché à droite d'Axis. Il est beau mais ne fait rien tant -que les boutons ne sont pas "connectés" à halui. Si, à ce stade, une erreur se -produit lors du déplacement de la fenêtre vers le bas, c'est généralement dû à -une erreur de syntaxe ou d'écriture, elle est donc dans cette partie qu'il -conviendra tout d'abord de vérifier soigneusement. - -.Boutons de Jog[[cap:Jog-Buttons]] - -image::images/xyz_buttons.png[] - -=== Effectuer les connections - -Pour effectuer les connections nécessaires, ouvrir le fichier custom_postgui.hal -et y ajouter le code suivant: - -[source,c] ----- -# connecte les boutons PyVCP pour X -net my-jogxmoins halui.jog.0.minus <= pyvcp.x-moins -net my-jogxplus halui.jog.0.plus <= pyvcp.x-plus - -# connecte les boutons PyVCP pour Y -net my-jogymoins halui.jog.1.minus <= pyvcp.y-moins -net my-jogyplus halui.jog.1.plus <= pyvcp.y-plus - -# connecte les boutons PyVCP pour Z -net my-jogzmoins halui.jog.2.minus <= pyvcp.z-moins -net my-jogzplus halui.jog.2.plus <= pyvcp.z-plus - -# connecte le curseur de vitesse de jog PyVCP -net my-jogspeed halui.jog-speed <= pyvcp.jog-speed-f ----- - -Après avoir désactivé l'A/U (E-Stop) et activé la marche machine en mode Jog, -le déplacement du curseur du panneau PyVCP devrait agir dès qu'il est placé au -delà de zéro et les boutons de jog devraient fonctionner. Il est impossible de -jogger alors qu'un fichier G-code s'exécute ou pendant qu'il est en pause ni -quand l'onglet _Données manuelles [F5]_ du (MDI), est ouvert. - -== Testeur de port - -Cet exemple montre comment faire un simple testeur de port parallèle en utilisant -PyVCP et HAL. - -Premièrement, créer le fichier ptest.xml qui contiendra le code suivant pour créer -la description du panneau. - -[source,xml] ----- - - - - RIDGE - 2 - - - "led-01" - 25 - "green" - "red" - - - - RIDGE - 2 - - - "led-02" - 25 - "green" - "red" - - - - RIDGE - 2 - - - "led-10" - 25 - "green" - "red" - - - - RIDGE - 2 - - - "led-11" - 25 - "green" - "red" - - - ----- - -Le panneau flottant contenant deux pins de HAL d'entrée et deux pins de -HAL de sortie. - -.Panneau flottant testeur de port parallèle[[cap:Port-Tester-Panel]] - -image::images/ptest.png[] - -Pour lancer les commandes de HAL dont nous avons besoin et démarrer tout ce -qi'il nous faut, nous avons mis le code suivant dans notre fichier ptest.hal. - -[source,c] ----- -loadrt hal_parport cfg="0x378 out" -loadusr -Wn ptest pyvcp -c ptest ptest.xml -loadrt threads name1=porttest period1=1000000 -addf parport.0.read porttest -addf parport.0.write porttest -net pin01 ptest.btn01 parport.0.pin-01-out ptest.led-01 -net pin02 ptest.btn02 parport.0.pin-02-out ptest.led-02 -net pin10 parport.0.pin-10-in ptest.led-10 -net pin11 parport.0.pin-11-in ptest.led-11 -start ----- - -Pour lancer le fichier HAL, nous utilisons, dans un terminal, les commandes -suivantes: ----- -~$ halrun -I -f ptest.hal ----- - -La figure suivante montre à quoi ressemble le panneau complet. - -.Testeur de port parallèle, complet[[cap:Port-Tester-Complete]] - -image::images/ptest-final.png[] - -Pour ajouter le reste des pins du port parallèle, il suffi de modifier les -fichiers .xml et .hal. - -Pour visualiser les pins après avoir lancé le script HAL, utiliser la -commande suivante au prompt _halcmd:_ - ----- -halcmd: show pin -Component Pins: -Owner Type Dir Value Name - 2 bit IN FALSE parport.0.pin-01-out <== pin01 - 2 bit IN FALSE parport.0.pin-02-out <== pin02 - 2 bit IN FALSE parport.0.pin-03-out - 2 bit IN FALSE parport.0.pin-04-out - 2 bit IN FALSE parport.0.pin-05-out - 2 bit IN FALSE parport.0.pin-06-out - 2 bit IN FALSE parport.0.pin-07-out - 2 bit IN FALSE parport.0.pin-08-out - 2 bit IN FALSE parport.0.pin-09-out - 2 bit OUT TRUE parport.0.pin-10-in ==> pin10 - 2 bit OUT FALSE parport.0.pin-10-in-not - 2 bit OUT TRUE parport.0.pin-11-in ==> pin11 - 2 bit OUT FALSE parport.0.pin-11-in-not - 2 bit OUT TRUE parport.0.pin-12-in - 2 bit OUT FALSE parport.0.pin-12-in-not - 2 bit OUT TRUE parport.0.pin-13-in - 2 bit OUT FALSE parport.0.pin-13-in-not - 2 bit IN FALSE parport.0.pin-14-out - 2 bit OUT TRUE parport.0.pin-15-in - 2 bit OUT FALSE parport.0.pin-15-in-not - 2 bit IN FALSE parport.0.pin-16-out - 2 bit IN FALSE parport.0.pin-17-out - 4 bit OUT FALSE ptest.btn01 ==> pin01 - 4 bit OUT FALSE ptest.btn02 ==> pin02 - 4 bit IN FALSE ptest.led-01 <== pin01 - 4 bit IN FALSE ptest.led-02 <== pin02 - 4 bit IN TRUE ptest.led-10 <== pin10 - 4 bit IN TRUE ptest.led-11 <== pin11 ------- - -Cela montre quelles pins sont IN est lesquelles sont OUT, ainsi que toutes les -connections. - -== Compte tours pour GS2[[sec:Exemple-Compte-Tours-GS2]] - -L'exemple suivant utilise un variateur de fréquence GS2 de la société Automation -Direct. footnote:[ En Europe on trouve ce type de variateur sous la marque Omron.] - Il permet le pilotage du moteur, la visualisation de la vitesse ainsi que -d'autres informations dans un panneau PyVCP. Cet exemple est basé sur un autre, -relatif au variateur GS2 et se trouvant dans la section des exemples matériels -de ce manuel. -Ce dernier exemple s'appuie lui même sur la description du composant de -HAL gs2_vfd. - -=== Le panneau - -Pour créer le panneau nous ajoutons ce code au fichier .xml. - -[source,xml] ----- - - - - - RAISED - 3 - - "spindle_rpm" - "Broche" - "tr/mn" - 200 - 0 - 3000 - 500 - 100 - 0,10,"yellow" - - - - - - RAISED - 3 - - RAISED - 2 - - 5 - - - - - - - RAISED - 2 - - - - - - RAISED - 2 - - - - ----- - -L'image ci-dessous montre notre panneau PyVCP en fonctionnement. - -.Panneau pour GS2[[cap:Panneau-GS2]] - -image::images/gs2_panel.png[] - -=== Les connections - -Pour qu'il fonctionne, il est nécessaire d'ajouter le code suivant au fichier -custom_postgui.hal, il réalise les connections entre PyVCP et LinuxCNC. - -[source,c] ----- -# affiche le compte tours, calcul basé sur freq * rpm par hz -loadrt mult2 -addf mult2.0 servo-thread -setp mult2.0.in1 28.75 -net cypher_speed mult2.0.in0 <= spindle-vfd.frequency-out -net speed_out pyvcp.spindle_rpm <= mult2.0.out - -# la led On -net gs2-run => pyvcp.on-led - -# la led Sens horaire -net gs2-fwd => pyvcp.fwd-led - -# la led Sens anti-horaire -net running-rev spindle-vfd.spindle-rev => pyvcp.rev-led ----- - -Certaines lignes demandent quelques explications. - - - La ligne de la led Sens horaire utilise le signal créé dans le fichier - custom.hal dans lequel la led Sens inverse doit utiliser le bit _spindle-rev_. - - On ne _peut pas_ lier deux fois le bit _spindle-fwd_ pour utiliser le signal - auquel il est déjà lié. - - - diff --git a/docs/src/hal/pyvcp_fr.txt b/docs/src/hal/pyvcp_fr.txt deleted file mode 100644 index 5730ff55b49..00000000000 --- a/docs/src/hal/pyvcp_fr.txt +++ /dev/null @@ -1,991 +0,0 @@ -:lang: fr -:toc: - -= PyVCP - -[[cha:Panneau-Virtuel-Control]] (((Panneau de Contrôle Virtuel))) - -== Introduction - -Panneau virtuel de contrôle en python (**Py**thon **V**irtual **C**ontrol -**P**anel) - -Le panneau de contrôle virtuel pyVCP a été créé pour donner à -l'intégrateur la possibilité de personnaliser l'interface graphique d'AXIS avec -des boutons et des indicateurs destinés aux tâches spéciales. - -Le coût d'un panneau de contrôle physique est très élevé et il peut -utiliser un grand nombre de broches d'entrées/sorties. C'est là que le -panneau virtuel prends l'avantage car il ne coûte rien d'utiliser pyVCP. - -Les panneaux de contrôle virtuels peuvent être utilisés pour tester ou -monitorer le matériel, les entrées/sorties, remplacer temporairement -d'autres matériels d'entrées/sorties pendant le déboguage d'une logique -ladder ou pour simuler un panneau physique, avant de le construire et -de le câbler vers les cartes électroniques. - -L'image suivante montre quelques widgets pyVCP. - -image::images/pyvcp_group.png[] - -== Construction d'un panneau pyVCP - -La disposition d'un panneau pyVCP est spécifiée dans un fichier XML -qui contient les balises des widgets entre et . Par -exemple: - ----- - - ----- - -image::images/pyvcp_mypanel_fr.png[] - -Si vous placez ce texte dans un fichier nommé tiny.xml et que vous le -lancez avec: - ----- -pyvcp -c panneau tiny.xml ----- - -pyVCP va créer le panneau pour vous, il y inclut deux widgets, un -Label avec le texte _Ceci est un indicateur à LED_ et une LED rouge, -utilisée pour afficher l'état d'un signal HAL de type BIT. Il va aussi -créer un composant HAL nommé _panneau_ (tous les widgets dans ce -panneau sont connectés aux pins qui démarrent avec _panneau_). Comme -aucune balise n'était présente à l'intérieur de la balise -, pyVCP nomme automatiquement la pin HAL pour le widget LED -panneau.led.0 - -Pour obtenir la liste des widgets, leurs balises et options, consultez -<>. - -Un fois que vous avez créé votre panneau, connectez lui les signaux HAL, vers -et à partir des pins pyVCP et avec la commande habituelle: - ----- -net signal-name ----- - -Si vous débutez avec HAL, <> est -vivement recommandé. - -== Sécurité avec pyVCP - -Certaines parties de pyVCP sont évaluées comme du code Python, elles -peuvent donc exécuter n'importe quelle action disponible dans les -programmes Python. N'utilisez que des fichiers pyVCP en .xml à partir -d'une source de confiance.tag - -[[sec:pyvcp-avec-axis]] -== Utiliser pyVCP avec AXIS -(((PyVCP avec Axis))) - -Puisque AXIS utilise le même environnement graphique et les même -outils (Tkinter) que pyVCP, il est possible d'inclure un panneau pyVCP -sur le côté droit de l'interface utilisateur normale d'AXIS. Un exemple -typique est présenté ci-dessous. - -Placer le fichier pyVCP XML décrivant le panneau dans le même -répertoire que le fichier .ini. Nous voulons afficher la vitesse -courante de la broche sur un widget barre de progression. Copier le -code XML suivant dans un fichier appelé broche.xml: - -[source,xml] ----- - - - - "spindle-speed" - 5000 - - ----- - -Ici nous avons fait un panneau avec un label _Vitesse broche:_ et un -widget barre de progression. Nous avons spécifié que la pin HAL -connectée à la barre de progression devait s'appeler _spindle-speed_ et -régler la valeur maximum de la barre à 5000 (se reporter à la -<>, pour toutes -les options disponibles). Pour faire connaître ce fichier à AXIS et qu'il -l'appelle au démarrage, nous devons préciser ce qui suit dans la section -[DISPLAY] du fichier .ini: - ----- -PYVCP = broche.xml ----- - -Pour que notre widget affiche réellement la vitesse de la broche -_spindle-speed_, il doit être raccordé au signal approprié de HAL. Le -fichier .hal qui sera exécuté quand AXIS et pyVCP démarreront doit être -spécifié, de la manière suivante, dans la section [HAL] du fichier .ini: - ----- -POSTGUI_HALFILE = broche_vers_pyvcp.hal ----- - -Ce changement lancera la commande HAL spécifiée dans -_broche_vers_pyvcp.hal_. Dans notre exemple, ce fichier contiendra -juste la commande suivante: - ----- -net spindle-rpm-filtered => pyvcp.spindle-speed ----- - -ce qui suppose que le signal appelé _spindle-rpm-filtered_ existe -aussi. Noter que lors de l'exécution avec AXIS, toutes les pins des -widgets de pyVCP ont des noms commençant par _pyvcp._. - -image::images/pyvcp_AXIS_fr.png[] - -Voila à quoi ressemble le panneau pyVCP que nous venons de créer, -incorporé à AXIS. La configuration _sim/lathe_ fournie en exemple, est -configurée de cette manière. - -== Panneaux PyVCP autonomes - -Cette section va décrire comment les panneaux PyVCP peuvent être -affichés par eux même, par l'intermédiaire ou non des contrôleurs -machine de LinuxCNC. - -Pour charger un panneau PyVCP autonome avec LinuxCNC utiliser cette -commande: - ----- -loadusr -Wn monpanneau pyvcp -g WxH+X+Y -c monpanneau fichier_panneau.xml ----- - -Vous l'utiliserez pour avoir un panneau flottant ou un panneau avec -une interface graphique autre que Axis. - -* '-Wn monpanneau' - - Fait attendre à HAL que le composant _monpanneau_ soit chargé - (devienne _ready_ en langage HAL), avant d'exécuter d'autres commandes HAL. - C'est important parce-que les panneaux PyVCP exportent des pins de HAL - ainsi que d'autres composants de HAL qui doivent être présents pour pouvoir - se connecter à eux. Noter la lettre *W* en majuscule et la lettre *n* en - minuscule. Si vous utilisez l'option -Wn vous devez également utiliser - l'option -c pour nommer le panneau. - -* 'pyvcp < -g> < -c> panneau.xml' - - Construit le panneau avec la géométrie optionnelle et/ou le nom de panneau - depuis le fichier panneau.xml. Le fichier panneau.xml peut avoir n'importe - quel nom avec l'extension .xml. Le fichier .xml décrit comment construire - le panneau. Il est nécessaire d'ajouter le nom du chemin si le panneau - n'est pas dans le répertoire dans lequel se trouve le script HAL. - -* '-g <+X+Y>' - - Spécifie la géométrie à utiliser quand le panneau est construit. La - syntaxe est _Largeur x Hauteur + Ancrage X + Ancrage Y_. La taille ou la - position, ou les deux peuvent être fixés. Le point d'ancrage est le coin - supérieur gauche du panneau. Par exemple; -g 250x500+800+0 fixe le - panneau à 250 pixels de large, 500 pixels de haut avec le point d'ancrage - placé en X800 Y0. - -* '-c nompanneau' - - Indique à PyVCP quel composant appeler et le titre de la fenêtre. - Le nom du fichier _nompanneau_ peut être n'importe quel nom sans espace. - -Pour charger un panneau PyVCP autonome, sans LinuxCNC utiliser cette commande: - ----- -loadusr -Wn monpanneau pyvcp -g 250x500+800+0 -c monpanneau monpanneau.xml ----- - -La commande minimale pour charger un panneau pyvcp est la suivante: - ----- -loadusr pyvcp monpanneau.xml ----- - -Vous pourrez utiliser cette commande si vous voulez un panneau sans passer -par un des contrôleurs machine de LinuxCNC, par exemple pour des tests ou -une visu autonome. - -La commande loadusr est utilisée quand vous chargez aussi un composant qui -stoppera HAL depuis la fermeture jusqu'à ce qu'il soit prêt. Si vous avez -chargé un panneau puis chargé Classic Ladder en utilisant la commande -_loadusr -w classicladder_, CL maintiendra HAL et le panneau ouverts jusqu'à -ce que vous fermiez Classic Ladder. Le '-Wn' signifie d'attendre que le -composant '-Wn "nom"' devienne prêt. ('nom' peut être n'importe quel nom. -Noter la lettre *W* en majuscule et le *n* en minuscule.) -Le -c indique à PyVCP de construire un panneau avec le nom 'monpanneau' en -utilisant les infos contenues dans le fichier 'monpanneau.xml'. -Le nom du fichier 'monpanneau.xml' est sans importante mais doit porter -l'extension .xml. C'est le fichier qui décrit comment construire le panneau. -Il est nécessaire d'ajouter le nom du chemin si le panneau n'est pas dans -le répertoire dans lequel se trouve le script HAL. - -Une commande optionnelle à utiliser si vous voulez que le panneau stoppe HAL -depuis les commandes _Continuer_ / _Quitter_. Après avoir chargé n'importe -quelles autres composants la dernière commande HAL sera: - ----- -waituser nompanneau ----- - -Cette commande indique à HAL d'attendre que le composant _nompanneau_ soit -fermé avant de continuer avec d'autres commandes. C'est généralement défini -comme étant la dernière commande, de sorte que HAL s'arrêtera si le panneau -est fermé. - -[[sec:Documentation-des-widgets]] -== Documentation des widgets de pyVCP -(((Documentation des widgets))) - -Les signaux de HAL existent en deux variantes, BIT et FLOAT. pyVCP -peut afficher la valeur d'un signal avec un widget indicateur, ou -modifier la valeur d'un signal avec un widget de contrôle. Ainsi, il y -a quatre classes de widgets pyVCP connectables aux signaux de HAL. Une -cinquième classe de widgets d'aide permet d'organiser et d'appliquer -des labels aux panneaux. - -- Widgets de signalisation, signaux de type bit: led, rectled -- Widgets de contrôle, signaux de type bit: button, checkbutton, radiobutton -- Widgets de signalisation de type nombre: number, s32, u32, bar, meter -- Widgets de contrôle de type nombre: spinbox, scale, jogwheel -- Widgets d'aide: hbox, vbox, table, label, labelframe - -=== Syntaxe - -Chaque widget sera décrit brièvement, suivi par la forme d'écriture -utilisée et d'une capture d'écran. Toutes les balises contenues dans la -balise du widget principal, sont optionnelles. - -=== Notes générales - -à l'heure actuelle, les deux syntaxes, basée sur les balises et basée -sur les attributs, sont supportées. Par exemple, les deux fragments de -code XML suivants sont traités de manière identique: - ----- - ----- - -et - ----- -"ma-led" ----- - -Quand la syntaxe basée sur les attributs est utilisée, les règles -suivantes sont utilisées pour convertir les valeurs des attributs en -valeurs Python: - - . Si le premier caractère de l'attribut est un des suivants: _{(["'_ , - il est évalué comme une expression Python. - . Si la chaine est acceptée par int(), la valeur est traitée comme un - entier. - . Si la chaine est acceptée par float(), la valeur est traitée comme un - flottant. - . Autrement, la chaine est acceptée comme une chaine. - -Quand la syntaxe basée sur les balises est utilisée, le texte entre -les balises est toujours évalué comme un expression Python. - -Les exemples ci-dessous montrent un mélange des deux formats. - -=== Commentaires - -Pour ajouter un commentaire utiliser la syntaxe de xml. - ----- - ----- - -=== Editer un fichier XML - -Editer le fichier XML avec un éditeur de texte. La plupart du temps un -double click sur le nom de fichier permet de choisir -_ouvrir avec l'editeur de texte_ ou similaire. - -=== Couleurs - -Les couleurs peuvent être spécifiées en utilisant les couleurs RGB de -X11 soit par le nom, par exemple: _gray75_ ou soit en hexa décimal, par -exemple: _#0000ff_. Une liste complète est consultable ici: -http://sedition.com/perl/rgb.html[http://sedition.com/perl/rgb.html]. - -Couleurs les plus courantes (les numéros suivant la couleur indiquent -la nuance de la couleur) - -- white (blanc) -- black (noir) -- blue et blue1 - blue4 (bleu) -- cyan et cyan1 - cyan4 (cyan) -- green et green1 - green4 (vert) -- yellow et yellow1 - yellow4 (jaune) -- red et red1 - red4 (rouge) -- purple et purple1 - purple4 (violet/pourpre) -- gray et gray0 - gray100 (gris) - -=== Pins de HAL - -Les pins de HAL fournisse le moyen de connecter les widgets aux autres éléments. -Quand une pin de HAL est créée pour un widget, il est possible de la _connecter_ -à une autre pin de HAL avec une commande _net_ dans un fichier .hal. Pour plus -de détails, voir la commande _net_ dans le manuel de HAL. - -=== Label - -Un label est un texte qui s'affiche sur le panneau. - -Le label a une pin optionnelle de désactivation en ajoutant: -_True_. - -[source,xml] ----- - ----- - -Ce code produira: - -image::images/pyvcp_label_fr.png[] - -=== Les leds - -Une led est utilisée pour indiquer l'état d'une pin de HAL de type bit. La -couleur de la led sera on_color quand le signal est vrai et off_color -autrement. -* __ définit le nom de la pin, par défaut: _led.n_, où n est un entier. -* __ définit la taille de la led, par défaut: 20. -* __ définit la couleur de la led led quand la pin est vraie, -par défaut: _green_ -* __ définit la couleur de la led quand la pin est fausse, -par défaut: _ref_ - -=== La led ronde - -[source,xml] ----- - - "ma-led" - 50 - "verte" - "rouge" - ----- - -Le résultat du code ci-dessus. - -image::images/pyvcp_led.png[] - -=== La led rectangulaire - -C'est une variante du widget _led_. - -[source,xml] ----- - - RIDGE - 6 - - "ma-led-rect" - "50" - "100" - "green" - "red" - - ----- - -Le code ci-dessus produit cette led, entourée d'un relief. - -image::images/pyvcp_rectled.png[] - -=== Le bouton (button) - -Un bouton permet de contrôler une pin de type bit. La pin sera mise vraie -quand le bouton sera pressé et maintenu enfoncé, elle sera mise fausse -quand le bouton sera relâché. - -Les boutons peuvent suivre les options de formatage suivantes: - - - n où _n_ est le nombre d'espaces horizontaux supplémentaires - - n où _n_ est le nombre d'espaces verticaux supplémentaires - - "color" Couleur au survol du curseur - - "color" Couleur du bouton - -==== Bouton avec texte (Text Button) - -[source,xml] ----- - - - "coolant-chkbtn" - "Coolant" - - - "chip-chkbtn" - "Chips " - ----- - -Le code ci-dessus produit: - -image::images/pyvcp_checkbutton.png[] - -==== Bouton radio (radiobutton) - -Un bouton radio placera une seule des pins vraie. Les autres -seront mises fausses. - -[source,xml] -------------------------------------------------- - - ["un","deux","trois"] - "mon-radiobtn" - -------------------------------------------------- - -Le code ci-dessus donne ce résultat: - -image::images/pyvcp_radiobutton_fr.png[] - -Noter que dans l'exemple ci-dessus, les pins de HAL seront nommées -mon-radiobtn.un, mon-radiobtn.deux et mon-radiobtn.trois. Dans l'image -précédente, 'trois' est la valeur sélectionnée courante. - -=== Affichage d'un nombre (number) - -L'affichage d'un nombre peux recevoir les options de formatage suivantes: - - - ("Font Name",n) où _n_ est la taille de la police - - n où _n_ est la largeur totale utilisée - - pos où "pos" peut être LEFT, CENTER ou RIGHT - (devrait marcher) - - n où "n" est le nombre d'espaces horizontaux supplémentaires - - n où "n" est le nombre d'espaces verticaux supplémentaires - -==== Number - -Le widget _number_ affiche la valeur d'un signal de type flottant. - ----- - - "number" - ("Helvetica",24) - "+4.4f" - ----- - -Le code ci-dessus donne ce résultat: - -image::images/pyvcp_number.png[] - -==== Flottant - -Le widget number affiche la valeur d'un signal de type flottant. - -[source,xml] ----- - - "my-number" - ("Helvetica",24) - "+4.4f" - ----- - -image::images/pyvcp_number.png[] - - est une police de caractères de type Tkinter avec la -spécification de sa taille. Une police qui peut être agrandie jusqu'à la -taille 200 est la police _courier 10 pitch_, que vous pouvez spécifier de la -manière suivante, pour afficher des chiffres réellement grands: - ----- -('courier 10 pitch',100) ----- - - est un format _style C_, spécifié pour définir le format -d'affichage du nombre. - -==== Nombre s32 - -Le widget s32 affiche la valeur d'un nombre s32. La syntaxe est la -même que celle de _number_ excepté le nom qui est . Il faut -prévoir une largeur suffisante pour afficher le nombre dans sa -totalité. - ----- - - "simple-number" - ("Helvetica",24) - "6d" - 6 - ----- - -image::images/pyvcp_s32.png[] - -==== Nombre u32 - -Le widget u32 affiche la valeur d'un nombre u32. La syntaxe est la -même que celle de _number_ excepté le nom qui est . - -=== Affichage d'images - -Seul l'affichage d'images au format gif est possible. Toutes les -images doivent avoir la même taille. Les images doivent être toutes -dans le même répertoire que le fichier ini (ou dans le répertoire -courant pour un fonctionnement en ligne de commande avec -halrun/halcmd). - -==== Image Bit - -La bascule _image_bit_ bascule entre deux images selon la position -vraie ou fausse de halpin. - ----- - - - - - - - ----- - -En utilisant les deux images fwd.gif et rev.gif. -FWD est affiché quand _selectimage_ est fausse -et REV est affiché quand _selectimage_ est vraie. - -.selectimage fausse -image::images/pyvcp_image01.png[] - -.selectimage vraie -image::images/pyvcp_image02.png[] - - -==== Image u32 - -La bascule _image_u32_ est la même que _image_bit_ excepté que le -nombre d'images n'est pratiquement plus limité, il suffit de -_selectionner_ l'image en ajustant halpin à une valeur entière -commençant à 0 pour la première image de la liste, à 1 pour la seconde -image etc. - ----- - - - - - - - - ----- - -Même résultat mais en ajoutant l'image stb.gif. - -.Halpin = 0 -image::images/pyvcp_image_u32_01.png[] - -.Halpin = 1 -image::images/pyvcp_image01.png[] - -.Halpin = 2 -image::images/pyvcp_image02.png[] - -=== Barre de progression (bar) - -Le widget barre de progression affiche la valeur d'un signal FLOAT, -graphiquement dans une barre de progression et simultanément, en -numérique. - -[source,xml] ----- - - "bar" - 0 - 123 - "grey" - "red" - ----- - -Le code ci-dessus donne ce résultat: - -image::images/pyvcp_bar.png[] - -=== Galvanomètre (meter) - -Le galvanomètre affiche la valeur d'un signal FLOAT dans un affichage -à aiguille _à l'ancienne_. - -[source,xml] ----- - - "mymeter" - "Battery" - "Volts" - 250 - 0 - 15.5 - 1 - 0.2 - (14.5,15.5,"yellow") - (12,14.5,"green") - (0,12,"red") - ----- - -Le code ci-dessus donne ce résultat: - -image::images/pyvcp_meter.png[] - -=== Boîte d'incrément (spinbox) - -La boîte d'incrément contrôle une pin FLOAT. La valeur de la pin est -augmentée ou diminuée de la valeur de _resolution_, à chaque pression -sur une flèche, ou en positionnant la souris sur le nombre puis en -tournant la molette de la souris. - -[source,xml] ----- - - "my-spinbox" - -12 - 33 - 0 - 0.1 - "2.3f" - ("Arial",30) - ----- - -Le code ci-dessus donne ce résultat: - -image::images/pyvcp_spinbox.png[] - -=== Curseur (scale) - -Le curseur contrôle une pin FLOAT. La valeur de la pin est augmentée -ou diminuée en déplaçant le curseur, ou en positionnant la souris sur -le curseur puis en tournant la molette de la souris. - -[source,xml] ----- - - ("Helvetica",16) - "25" - "my-hscale" - 0.1 - HORIZONTAL - -15 - -33 - 26 - - - ("Helvetica",16) - "50" - "my-vscale" - 1 - VERTICAL - 100 - 0 - ----- - -Le code ci-dessus donne ce résultat: - -image::images/pyvcp_scale.png[] - -Noter que par défaut c'est min qui est affiché même si il est -supérieur à max, à moins que min ne soit négatif. - -=== Bouton tournant (dial) - -Le bouton tournant imite le fonctionnement d'un vrai bouton tournant, -en sortant sur un FLOAT HAL la valeur sur laquelle est positionné le -curseur, que ce soit en le faisant tourner avec un mouvement -circulaire, ou en tournant la molette de la souris. Un double click -gauche augmente la résolution et un double click droit la diminue d'un -digit. La sortie est limitée par les valeurs min et max. La variable -cpr fixe le nombre de graduations sur le pourtour du cadran (prudence -avec les grands nombres). - -[source,xml] ----- - - 200 - 100 - -15 - 15 - "Dial" - 0 - 0.001 - "anaout" - "yellow" - "green" - "black" - ----- - -Le code ci-dessus donne ce résultat: - -image::images/pyvcp_dial.png[] - -=== Manivelle (jogwheel) - -La manivelle imite le fonctionnement d'une vraie manivelle, -en sortant sur une pin FLOAT la valeur sur laquelle est positionné le -curseur, que ce soit en le faisant tourner avec un mouvement -circulaire, ou en tournant la molette de la souris. - -[source,xml] ----- - - "my-wheel" - 45 - 250 - ----- - -Le code ci-dessus donne ce résultat: - -image::images/pyvcp_jogwheel.png[] - -== Documentation des containers de pyVCP - -Les containers sont des widgets qui contiennent d'autres widgets. - -=== Bordures - -Le container bordure est spécifié avec deux balises utilisées ensembles. -La balise spécifie le type de bordure et la balise spécifie la -largeur de la bordure. - -type:: - La valeur de _type_ peut être: FLAT, SUNKEN, RAISED, GROOVE, ou RIDGE - -n:: - La valeur de *n* fixe la largeur de la bordure. - ----- - - - - - - - - - - - ----- - -image::images/pyvcp_borders.png[] - -=== Hbox - -Utilisez une Hbox lorsque vous voulez aligner les widgets, -horizontalement, les uns à côtés des autres. - -[source,xml] ----- - - RIDGE - 6 - - - - - ----- - -image::images/pyvcp_hbox.png[] - -à l'intérieur d'une Hbox, il est possible d'utiliser les balises -__, __ et __ pour -choisir le comportement des éléments contenus dans la boîte, -lors d'un redimensionnement de la fenêtre. Pour des détails sur le -comportement de fill, anchor, et expand, référez vous au manuel du pack - Tk, _pack(3tk)_. Valeurs par défaut, _fill='y'_, _anchor='center'_, -_expand='yes'_. - -=== Vbox - -Utilisez une Vbox lorsque vous voulez aligner les widgets -verticalement, les uns au dessus des autres. - -[source,xml] ----- - - RIDGE - 6 - - - - - ----- - - -image::images/pyvcp_vbox.png[] - -à l'intérieur d'une Vbox, vous pouvez utiliser les balises -__, __ et __ pour -choisir le comportement des éléments contenus dans la boîte, -lors d'un redimensionnement de la fenêtre. Pour des détails sur le -comportement de fill, anchor, et expand, référez vous au manuel du pack - Tk, _pack(3tk)_. Valeurs par défaut, _fill='y'_, _anchor='center'_, -_expand='yes'_. - -=== Labelframe - -Un labelframe est un cadre entouré d'un sillon et un label en haut à -gauche. - ----- - ----- - -[source,xml] ----- - - ("Helvetica",16) - - - - - - ----- - -image::images/pyvcp_labelframe_fr1.png[] - -=== Table - -Une table est un container qui permet d'écrire dans une grille de -lignes et de colonnes. Chaque ligne débute avec la balise __ -. Un widget contenu peut être en lignes ou en colonnes par - l'utilisation de la balise __. Les bordures -des cellules contenant les widgets _sticky_ peuvent - être réglées grâce à l'utilisation de la balise __. -Une table flexible peut s'étirer sur ses lignes et ses colonnes (sticky). - -Exemple: -[source,xml] ----- - - - - -
    ----- - -image::images/pyvcp_table.png[] - -=== Onglets (Tabs) - -Une interface à onglets permet d'économiser l'espace en créant un container pour -chaque nom d'onglet (tabs). Une seule section _tabs_ peut exister, les _tabs_ ne -peuvent pas être imbriqués ni empilés. La largeur de l'onglet le plus large, -determine la largeur des onglets. - -[source,xml] ----- - - ["Spindle", "Green Eggs", "Ham"] - - - - "spindle-speed" - 5000 - - - - - - - - - ----- - -image::images/pyvcp_tabs1.png[] image::images/pyvcp_tabs2.png[] image::images/pyvcp_tabs3.png[] - diff --git a/docs/src/hal/rtcomps.txt b/docs/src/hal/rtcomps.txt deleted file mode 100644 index fe7454f95eb..00000000000 --- a/docs/src/hal/rtcomps.txt +++ /dev/null @@ -1,874 +0,0 @@ -= HAL Component Descriptions - -[[cha:realtime-components]] (((Realtime Components))) - -[[sec:Stepgen]] -== Stepgen(((stepgen))) - -This component provides software based generation of step pulses in -response to position or velocity commands. In position mode, it has a -built in pre-tuned position loop, so PID tuning is not required. In -velocity mode, it drives a motor at the commanded speed, while obeying -velocity and acceleration limits. It is a realtime component only, and -depending on CPU speed, etc, is capable of maximum step rates of 10kHz -to perhaps 50kHz. Figure <> -shows three block diagrams, each is a single step pulse generator. -The first diagram is for step type '0', (step and direction). The second is -for step type '1' (up/down, or pseudo-PWM), and the third is for step types 2 -through 14 (various stepping patterns). The first two diagrams show position -mode control, and the third one shows velocity mode. Control mode and -step type are set independently, and any combination can be selected. - -[[fig:Stepgen-Block-Diag]] -.Step Pulse Generator Block Diagram position mode -(((Stepgen Block Diagram))) - -image::images/stepgen-block-diag.png[align="center"] - -.Installing - ----- -halcmd: loadrt stepgen step_type= [ctrl_type=] ----- - -'' is a series of comma separated decimal integers. Each -number causes a -single step pulse generator to be loaded, the value of the number - determines the stepping type. '' is a comma separated -series of 'p' or 'v' characters, to specify position or velocity -mode. 'ctrl_type' is optional, if ommitted, all of the step generators -will be position -mode. - -For example: ----- -halcmd: loadrt stepgen step_type=0,0,2 ctrl_type=p,p,v ----- - -will install three step generators. The first two use step type '0' -(step and direction) and run in position mode. The last one uses step -type '2' (quadrature) and runs in velocity mode. The default value for -'' is '0,0,0' which will install three type '0' -(step/dir) generators. The maximum -number of step generators is 8 (as defined by MAX_CHAN in stepgen.c). -Each generator is independent, but all are updated by the same - function(s) at the same time. In the following descriptions, '' -is the number of a specific generator. The first generator is number 0. -(((Stepgen Block Diagram))) -.Removing - ----- -halcmd: unloadrt stepgen ----- - -.Pins - -Each step pulse generator will have only some of these pins, depending -on the step type and control type selected. - -* '(float) stepgen..position-cmd' - Desired motor position, in - position units (position mode only). -* '(float) stepgen..velocity-cmd' - Desired motor velocity, in - position units per second (velocity mode only). -* '(s32) stepgen..counts' - Feedback position in counts, - updated by 'capture_position()'. -* '(float) stepgen..position-fb' - Feedback position in - position units, updated by 'capture_position()'. -* '(bit) stepgen..enable' - Enables output steps - when false, - no steps are generated. -* '(bit) stepgen..step' - Step pulse output (step type 0 only). -* '(bit) stepgen..dir' - Direction output (step type 0 only). -* '(bit) stepgen..up' - UP pseudo-PWM output (step type 1 only). -* '(bit) stepgen..down' - DOWN pseudo-PWM output (step type 1 only). -* '(bit) stepgen..phase-A' - Phase A output (step types 2-14 only). -* '(bit) stepgen..phase-B' - Phase B output (step types 2-14 only). -* '(bit) stepgen..phase-C' - Phase C output (step types 3-14 only). -* '(bit) stepgen..phase-D' - Phase D output (step types 5-14 only). -* '(bit) stepgen..phase-E' - Phase E output (step types 11-14 only). - -.Parameters[[sub:stepgen-parameters]] - -* '(float) stepgen..position-scale' - Steps per position unit. - This parameter is used for both output and feedback. -* '(float) stepgen..maxvel' - Maximum velocity, in position - units per second. If 0.0, has no effect. -* '(float) stepgen..maxaccel' - Maximum accel/decel rate, in - positions units per second squared. - If 0.0, has no effect. -* '(float) stepgen..frequency' - The current step rate, in - steps per second. -* '(float) stepgen..steplen' - Length of a step pulse (step - type 0 and 1) or minimum time in a - given state (step types 2-14), in nano-seconds. -* '(float) stepgen..stepspace' - Minimum spacing between two - step pulses (step types 0 and 1 only), in nano-seconds. Set to 0 to - enable the stepgen 'doublefreq' function. To use 'doublefreq' the - <> must be enabled. -* '(float) stepgen..dirsetup' - Minimum time from a direction - change to the beginning of the next - step pulse (step type 0 only), in nanoseconds. -* '(float) stepgen..dirhold' - Minmum time from the end of a - step pulse to a direction change - (step type 0 only), in nanoseconds. -* '(float) stepgen..dirdelay' - Minmum time any step to a step - in the opposite direction (step - types 1-14 only), in nano-seconds. -* '(s32) stepgen..rawcounts' - The raw feedback count, updated - by 'make_pulses()'. - -In position mode, the values of maxvel and maxaccel are used by the -internal position loop to avoid generating step pulse trains that the -motor cannot follow. When set to values that are appropriate for the -motor, even a large instantaneous change in commanded position will -result in a smooth trapezoidal move to the new location. The algorithm -works by measuring both position error and velocity error, and -calculating an acceleration that attempts to reduce both to zero at the -same time. For more details, including the contents of the 'control -equation' box, consult the code. - -In velocity mode, maxvel is a simple limit that is applied to the -commanded velocity, and maxaccel is used to ramp the actual frequency -if the commanded velocity changes abruptly. As in position mode, proper -values for these parameters ensure that the motor can follow the -generated pulse train. - -[[sub:Stepgen-Step-Types]] -.Step Types - -.Step Type 0 -Step type 0 is the standard step and direction type. When configured for -step type 0, there are four extra parameters that determine the exact -timing of the step and direction signals. In the following figure -the meaning of these parameters is shown. The -parameters are in nanoseconds, but will be rounded up to an integer -multiple of the thread period for the threaed that calls -'make_pulses()'. For example, if 'make_pulses()' is called every 16 us, -and steplen is 20000, then the step pulses will -be 2 x 16 = 32 us long. The default value for all four of the parameters -is 1ns, but the automatic rounding takes effect the first time the code - runs. Since one step requires 'steplen' ns high and 'stepspace' ns -low, the maximum frequency is 1,000,000,000 divided by -'(steplen+stepspace)'. If 'maxfreq' is set higher than that limit, it -will be lowered automatically. If -maxfreq is zero, it will remain zero, but the output frequency will -still be limited. - -When using the parallel port driver the step frequency can be doubled using -the <> function together with stepgen's -'doublefreq' setting. - -[[fig:StepDir-timing]] -.Step and Direction Timing - -image::images/stepgen-type0.png[align="center"] - -.Step Type 1 -Step type 1 has two outputs, up and down. Pulses appear on one or the -other, depending on the direction of travel. Each pulse is 'steplen' ns -long, and the pulses are separated by at least 'stepspace' ns. The -maximum frequency is the same as for step type 0. If 'maxfreq' is set -higher than the limit it will be lowered. If 'maxfreq' is zero, it -will remain zero but the output frequency will still be -limited. - -[WARNING] -Do not use the parport reset function with step types 2 - 14. Unexpected -results can happen. - -.Step Type 2 - 14 -Step types 2 through 14 are state based, and have from two to five -outputs. On each step, a state counter is incremented or decremented. -Figures <>, <>, and -<> show the output patterns as a function of the state -counter. The maximum frequency is 1,000,000,000 divided by 'steplen', -and as in the other modes, 'maxfreq' will be lowered if it is above the -limit. - -[[fig:Two-and-Three-Phase]] -.Two-and-Three-Phase Step Types -(((Two and Three Phase))) - -image::images/stepgen-type2-4.png[align="center"] - -[[fig:Four-Phase]] -.Four-Phase Step Types -(((Four Phase))) - -image::images/stepgen-type5-10.png[align="center", width=800] - -[[fig:Five-Phase]] -.Five-Phase Step Types -(((Five Phase))) - -image::images/stepgen-type11-14.png[align="center"] - -.Functions - -The component exports three functions. Each function acts on all of -the step pulse generators - running different generators in different -threads is not supported. - -* '(funct) stepgen.make-pulses' - High speed function to generate - and count pulses (no floating point). -* '(funct) stepgen.update-freq' - Low speed function does position - to velocity conversion, scaling and limiting. -* '(funct) stepgen.capture-position' - Low speed function for - feedback, updates latches and scales position. - -The high speed function 'stepgen.make-pulses' should be run in a very -fast thread, from 10 to 50 us depending on the -capabilities of the computer. That thread's period determines the - maximum step frequency, since 'steplen', 'stepspace', 'dirsetup', -'dirhold', and 'dirdelay' are all rounded up to a integer multiple of -the thread periond in -nanoseconds. The other two functions can be called at a much lower -rate. - -[[sec:PWMgen]] -== PWMgen(((pwmgen))) - -This component provides software based generation of PWM (Pulse Width -Modulation) and PDM (Pulse Density Modulation) waveforms. It is a -realtime component only, and depending on CPU speed, etc, is capable of -PWM frequencies from a few hundred Hertz at pretty good resolution, to -perhaps 10KHz with limited resolution. - -.Installing - ----- -loadrt pwmgen output_type= ----- - -The '' is a series of comma separated decimal integers. Each -number causes a single PWM generator to be loaded, the value of the number -determines the output type. The following example will install three PWM -generators. There is no default value, if '' is not specified, -no PWM generators will be installed. The maximum number of frequency generators -is 8 (as defined by MAX_CHAN in pwmgen.c). Each generator is independent, -but all are updated by the same function(s) at the same time. In the following -descriptions, '' is the number of a specific generator. The first -generator is number 0. - -.Example ----- -loadrt pwmgen output_type=0,1,2 ----- - -.Removing - ----- -unloadrt pwmgen ----- - -.Output Types - -The PWM generator supports three different 'output types'. - -* 'Output type 0' - PWM output pin only. Only positive commands are accepted, - negative values are treated as zero (and will be affected by the parameter - 'min-dc' if it is non-zero). - -* 'Output type 1' - PWM/PDM and direction pins. Positive and negative inputs - will be output as positive and negative PWM. The direction pin is false - for positive commands, and true for negative commands. If your control - needs positive PWM for both CW and CCW use the <> component - to convert your PWM signal to positive value when a negative input is input. - -* 'Output type 2' - UP and DOWN pins. For positive commands, the PWM signal - appears on the up output, and the down output remains false. For negative - commands, the PWM signal appears on the down output, and the up output - remains false. Output type 2 is suitable for driving most H-bridges. - -.Pins - -Each PWM generator will have the following pins: - -* '(float) pwmgen..value' - Command value, in arbitrary units. - Will be scaled by the 'scale' parameter (see below). -* '(bit) pwmgen..enable' - Enables or disables the PWM - generator outputs. - -Each PWM generator will also have some of these pins, depending on the -output type selected: - -* '(bit) pwmgen..pwm' - PWM (or PDM) output, (output types 0 - and 1 only). -* '(bit) pwmgen..dir' - Direction output (output type 1 only). -* '(bit) pwmgen..up' - PWM/PDM output for positive input value - (output type 2 only). -* '(bit) pwmgen..down' - PWM/PDM output for negative input - value (output type 2 only). - -.Parameters - -* '(float) pwmgen..scale' - Scaling factor to convert 'value' - from arbitrary units to duty cycle. -* '(float) pwmgen..pwm-freq' - Desired PWM frequency, in Hz. - If 0.0, generates PDM instead of - PWM. If set higher than internal limits, next call of 'update_freq()' - will set it to the internal limit. If non-zero, and 'dither' is false, - next call of 'update_freq()' will set it to the nearest integer - multiple of the 'make_pulses()' function period. -* '(bit) pwmgen..dither-pwm' - If true, enables dithering to - achieve average PWM frequencies or - duty cycles that are unobtainable with pure PWM. If false, both the PWM - frequency and the duty cycle will be rounded to values that can be - achieved exactly. -* '(float) pwmgen..min-dc' - Minimum duty cycle, between 0.0 - and 1.0 (duty cycle will go to - zero when disabled, regardless of this setting). -* '(float) pwmgen..max-dc' - Maximum duty cycle, between 0.0 - and 1.0. -* '(float) pwmgen..curr-dc' - Current duty cycle - after all - limiting and rounding (read only). - -.Functions - -The component exports two functions. Each function acts on all of the -PWM generators - running different generators in different threads is -not supported. - -* '(funct) pwmgen.make-pulses' - High speed function to generate PWM - waveforms (no floating point). -* '(funct) pwmgen.update' - Low speed function to scale and limit - value and handle other parameters. - -The high speed function 'pwmgen.make-pulses' should be run in a very -fast thread, from 10 to 50 us depending on the -capabilities of the computer. That thread's period determines the -maximum PWM carrier frequency, as well as the resolution of the PWM or -PDM signals. The other function can be called at a much lower rate. - -[[sec:Encoder]] -== Encoder(((encoder))) - -This component provides software based counting of signals from -quadrature encoders. It is a realtime component only, and depending on -CPU speed, latency, etc, is capable of maximum count rates of 10kHz to -perhaps up to 50kHz. - -The base thread should be 1/2 count speed to allow for noise and timing -variation. For example if you have a 100 pulse per revolution encoder on the -spindle and your maximnum RPM is 3000 the maximum base thread should be 25 us. -A 100 pulse per revolution encoder will have 400 counts. The spindle speed -of 3000 RPM = 50 RPS (revolutions per second). 400 * 50 = 20,000 counts per -second or 50 us between counts. - -Figure <> is a block -diagram of one channel of encoder counter. - -[[fig:Encoder-Block-Diag]] -.Encoder Counter Block Diagram -(((Encoder Block Diagram))) - -image::images/encoder-block-diag.png[align="center"] - -.Installing - ----- -halcmd: loadrt encoder [num_chan=] ----- - -'' is the number of encoder counters that you want to -install. If 'numchan' is not specified, three counters will be -installed. The maximum -number of counters is 8 (as defined by MAX_CHAN in encoder.c). Each -counter is independent, but all are updated by the same function(s) at - the same time. In the following descriptions, '' is the number -of a specific counter. The first counter is number 0. - -.Removing - ----- -halcmd: unloadrt encoder ----- - -.Pins - -* 'encoder..counter-mode' (bit, I/O) (default: FALSE) - Enables - counter mode. When true, the - counter counts each rising edge of the phase-A input, ignoring the - value on phase-B. This is useful for counting the output of a single - channel (non-quadrature) sensor. When false, it counts in quadrature - mode. -* 'encoder..counts' (s32, Out) - Position in encoder counts. -* 'encoder..counts-latched' (s32, Out) - Not used at this time. -* 'encoder..index-enable' (bit, I/O) - When True, 'counts' and - 'position are' reset to zero on next rising edge of Phase Z. At the - same time, 'index-enable' is reset to zero to indicate that the rising - edge has occoured. The 'index-enable' pin is bi-directional. If - 'index-enable' is False, the Phase Z channel of the encoder will be - ignored, and the - counter will count normally. The encoder driver will never set - 'index-enable' True. However, some other component may do so. -* 'encoder..latch-falling' (bit, In) (default: TRUE) - Not used - at this time. -* 'encoder..latch-input' (bit, In) (default: TRUE) - Not used at - this time. -* 'encoder..latch-rising' (bit, In) - Not used at this time. -* 'encoder..min-speed-estimate' (float, in) - Determine the - minimum true velocity magnitude at which - velocity will be estimated as nonzero and postition-interpolated will - be interpolated. The units of 'min-speed-estimate' are the same as the - units of 'velocity' . Scale factor, in counts per length unit. Setting - this parameter too - low will cause it to take a long time for velocity to go to 0 after - encoder pulses have stopped arriving. -* 'encoder..phase-A' (bit, In) - Phase A of the quadrature encoder signal. -* 'encoder..phase-B' (bit, In) - Phase B of the quadrature encoder signal. -* 'encoder..phase-Z' (bit, In) - Phase Z (index pulse) of the quadrature encoder signal. -* 'encoder..position' (float, Out) - Position in scaled units (see 'position-scale'). -* 'encoder..position-interpolated' (float, Out) - Position in - scaled units, interpolated between - encoder counts. The 'position-interpolated' attempts to interpolate - between encoder counts, based on the most - recently measured velocity. Only valid when velocity is approximately - constant and above 'min-speed-estimate'. Do not use for position - control, since its value is incorrect at - low speeds, during direction reversals, and during speed changes. - However, it allows a low ppr encoder (including a one pulse per - revolution 'encoder') to be used for lathe threading, and may have - other uses as well. -* 'encoder..position-latched (float, Out)' - Not used at this time. -* 'encoder..position-scale (float, I/O)' - Scale factor, in - counts per length unit. For example, if - position-scale is 500, then 1000 counts of the encoder will be reported - as a position of 2.0 units. -* 'encoder..rawcounts (s32, In)' - The raw count, as determined - by update-counters. This value is - updated more frequently than counts and position. It is also unaffected - by reset or the index pulse. -* 'encoder..reset' (bit, In) - When True, force 'counts' and - 'position' to zero immediately. -* 'encoder..velocity' (float, Out) - Velocity in scaled units per - second. 'encoder' uses an algorithm that greatly reduces quantization - noise as compared - to simply differentiating the 'position' output. When the magnitude - of the true velocity is below - min-velocity-estimate, the velocity output is 0. -* 'encoder..x4-mode (bit, I/O) (default: TRUE)' - Enables - times-4 mode. When true, the counter counts each edge of - the quadrature waveform (four counts per full cycle). When false, it - only counts once per full cycle. In counter-mode, this parameter is - ignored. The 1x mode is useful for some jogwheels. - -.Parameters - -* 'encoder..capture-position.time (s32, RO)' -* 'encoder..capture-position.tmax (s32, RW)' -* 'encoder..update-counters.time (s32, RO)' -* 'encoder..update-counter.tmax (s32, RW)' - -.Functions - -The component exports two functions. Each function acts on all of the -encoder counters - running different counters in different threads is -not supported. - -* '(funct) encoder.update-counters' - High speed function to count - pulses (no floating point). -* '(funct) encoder.capture-position' - Low speed function to update - latches and scale position. - -[[sec:PID]] -== PID(((pid))) - -This component provides Proportional/Integral/Derivative control -loops. It is a realtime component only. For simplicity, this discussion -assumes that we are talking about position loops, however this -component can be used to implement other feedback loops such as speed, -torch height, temperature, etc. Figure <> is a -block diagram of a single PID loop. - -[[fig:PID-block-diag]] -.PID Loop Block Diagram -(((PID Block Diagram))) - -image::images/pid-block-diag.png[align="center"] - -.Installing - ----- -halcmd: loadrt pid [num_chan=] [debug=1] ----- - -'' is the number of PID loops that you want to install. If -'numchan' is not specified, one loop will be installed. The maximum -number of -loops is 16 (as defined by MAX_CHAN in pid.c). Each loop is completely - independent. In the following descriptions, '' is the loop -number of a specific loop. The first loop is number 0. - -If 'debug=1' is specified, the component will export a few extra -parameters that -may be useful during debugging and tuning. By default, the extra -parameters are not exported, to save shared memory space and avoid -cluttering the parameter list. - -.Removing - ----- -halcmd: unloadrt pid ----- - -.Pins - -The three most important pins are - -* '(float) pid..command' - The desired position, as - commanded by another system component. -* '(float) pid..feedback' - The present position, as - measured by a feedback device such as an encoder. -* '(float) pid..output' - A velocity command that attempts - to move from the present position to the desired position. - -For a position loop, 'command' and 'feedback' are in position units. -For a linear axis, this could be inches, mm, meters, or whatever is -relevant. Likewise, for an angular axis, it could be degrees, radians, -etc. The units of the 'output' pin represent the change needed to make -the feedback match the command. As such, for a position loop 'Output' -is a velocity, in inches/sec, mm/sec, degrees/sec, etc. Time units are -always seconds, and the velocity units match the position units. If -command and feedback are in meters, then output is in meters per -second. - -Each loop has two pins which are used to monitor or control the -general operation of the component. - -* '(float) pid..error' - Equals '.command' minus '.feedback'. -* '(bit) pid..enable' - A bit that enables the loop. If - '.enable' is false, all integrators are reset, and the output is - forced to zero. If '.enable' is true, the loop operates normally. - -Pins used to report saturation. Saturation occurs when the output of -the PID block is at its maximum or minimum limit. - -* '(bit) pid..saturated' - True when output is saturated. -* '(float) pid..saturated_s' - The time the output has been saturated. -* '(s32) pid..saturated_count' - The time the output has been saturated. - -.Parameters - -The PID gains, limits, and other 'tunable' features of the loop are -implemented as parameters. - -* '(float) pid..Pgain' - Proportional gain -* '(float) pid..Igain' - Integral gain -* '(float) pid..Dgain' - Derivative gain -* '(float) pid..bias' - Constant offset on output -* '(float) pid..FF0' - Zeroth order feedforward - output - proportional to command (position). -* '(float) pid..FF1' - First order feedforward - output - proportional to derivative of command (velocity). -* '(float) pid..FF2' - Second order feedforward - output - proportional to 2nd derivative - of command (acceleration)footnote:[FF2 is not currently implemented, - but it will be added. Consider this note a “FIXME†for the code]. -* '(float) pid..deadband' - Amount of error that will be ignored -* '(float) pid..maxerror' - Limit on error -* '(float) pid..maxerrorI' - Limit on error integrator -* '(float) pid..maxerrorD' - Limit on error derivative -* '(float) pid..maxcmdD' - Limit on command derivative -* '(float) pid..maxcmdDD' - Limit on command 2nd derivative -* '(float) pid..maxoutput' - Limit on output value - -All of the 'max' limits are implemented such that if the parameter -value is zero, there is no limit. - -If 'debug=1' was specified when the component was installed, four -additional parameters will be exported: - -* '(float) pid..errorI' - Integral of error. -* '(float) pid..errorD' - Derivative of error. -* '(float) pid..commandD' - Derivative of the command. -* '(float) pid..commandDD' - 2nd derivative of the command. - -.Functions - -The component exports one function for each PID loop. This function -performs all the calculations needed for the loop. Since each loop has -its own function, individual loops can be included in different threads -and execute at different rates. - -* '(funct) pid..do_pid_calcs' - Performs all calculations - for a single PID loop. - -If you want to understand the exact algorithm used to compute the -output of the PID loop, refer to figure <>, the -comments at the beginning of 'emc2/src/hal/components/pid.c' , and of -course to the code itself. The loop calculations are in the C -function 'calc_pid()'. - -== Simulated Encoder[[sec:Simulated-Encoder]](((sim-encoder))) - -The simulated encoder is exactly that. It produces quadrature pulses -with an index pulse, at a speed controlled by a HAL pin. Mostly useful -for testing. - -.Installing - ----- -halcmd: loadrt sim-encoder num_chan= ----- - -'' is the number of encoders that you want to simulate. If not -specified, one encoder will be installed. The maximum number is 8 (as -defined by MAX_CHAN in sim_encoder.c). - -.Removing - ----- -halcmd: unloadrt sim-encoder ----- - -.Pins - -* '(float) sim-encoder..speed' - The speed command for the - simulated shaft. -* '(bit) sim-encoder..phase-A' - Quadrature output. -* '(bit) sim-encoder..phase-B' - Quadrature output. -* '(bit) sim-encoder..phase-Z' - Index pulse output. - -When '.speed' is positive, '.phase-A' leads '.phase-B'. - -.Parameters - -* '(u32) sim-encoder..ppr' - Pulses Per Revolution. -* '(float) sim-encoder..scale' - Scale Factor for 'speed'. - The default is 1.0, which means that 'speed' is in revolutions per - second. Change to 60 for RPM, to 360 for - degrees per second, 6.283185 for radians per seconed, etc. - -Note that pulses per revolution is not the same as counts per -revolution. A pulse is a complete quadrature cycle. Most encoder -counters will count four times during one complete cycle. - -.Functions - -The component exports two functions. Each function affects all -simulated encoders. - -* '(funct) sim-encoder.make-pulses' - High speed function to - generate quadrature pulses (no floating point). -* '(funct) sim-encoder.update-speed' - Low speed function to read - 'speed', do scaling, and set up 'make-pulses'. - -[[sec:Debounce]] -== Debounce(((debounce))) - -Debounce is a realtime component that can filter the glitches created -by mechanical switch contacts. It may also be useful in other -applications where short pulses are to be rejected. - -.Installing - ----- -halcmd: loadrt debounce cfg= ----- - -'' is a series of comma separated decimal integers. -Each number installs -a group of identical debounce filters, the number determines how many -filters are in the group. - -For example: - ----- -halcmd: loadrt debounce cfg=1,4,2 ----- - -will install three groups of filters. Group 0 contains one filter, -group 1 contains four, and group 2 contains two filters. The default -value for '' is '"1"' which will install a single group -containing a single filter. The -maximum number of groups 8 (as defined by MAX_GROUPS in debounce.c). -The maximum number of filters in a group is limited only by shared -memory space. Each group is completely independent. All filters in a -single group are identical, and they are all updated by the same -function at the same time. In the following descriptions, '' is the -group number and '' is the filter number within the group. The -first filter is group 0, -filter 0. - -.Removing - ----- -halcmd: unloadrt debounce ----- - -.Pins - -Each individual filter has two pins. - -* '(bit) debounce...in' - Input of filter '' in group ''. -* '(bit) debounce...out' - Output of filter '' in group ''. - -.Parameters - -Each group of filters has one parameterfootnote:[Each individual -filter also has an internal state variable. There is a -compile time switch that can export that variable as a parameter. This -is intended for testing, and simply wastes shared memory under normal -circumstances.]. - -* '(s32) debounce..delay' - Filter delay for all filters in group ''. - -The filter delay is in units of thread periods. The minimum delay is -zero. The output of a zero delay filter exactly follows its input - it -doesn't filter anything. As 'delay' increases, longer and longer -glitches are rejected. If 'delay' is 4, all glitches less than or -equal to four thread periods will be rejected. - -.Functions - -Each group of filters has one function, which updates all the filters -in that group 'simultaneously'. Different groups of filters can be -updated from different threads at different periods. - -* '(funct) debounce.' - Updates all filters in group ''. - -== Siggen[[sec:Siggen]](((siggen))) - -Siggen is a realtime component that generates square, triangle, and -sine waves. It is primarily used for testing. - -.Installing - ----- -halcmd: loadrt siggen [num_chan=] ----- - -'' is the number of signal generators that you want to install. -If 'numchan' is not specified, one signal generator will be installed. -The maximum -number of generators is 16 (as defined by MAX_CHAN in siggen.c). Each - generator is completely independent. In the following descriptions, -'' is the number of a specific signal generator (the numbers -start at 0). - -.Removing - ----- -halcmd: unloadrt siggen ----- - -.Pins - -Each generator has five output pins. - -* '(float) siggen..sine' - Sine wave output. -* '(float) siggen..cosine' - Cosine output. -* '(float) siggen..sawtooth' - Sawtooth output. -* '(float) siggen..triangle' - Triangle wave output. -* '(float) siggen..square' - Square wave output. - -All five outputs have the same frequency, amplitude, and offset. - -In addition to the output pins, there are three control pins: - -* '(float) siggen..frequency' - Sets the frequency in Hertz, - default value is 1 Hz. -* '(float) siggen..amplitude' - Sets the peak amplitude of the - output waveforms, default is 1. -* '(float) siggen..offset' - Sets DC offset of the output - waveforms, default is 0. - -For example, if 'siggen.0.amplitude' is 1.0 and 'siggen.0.offset' is -0.0, the outputs will swing from -1.0 to +1.0. If 'siggen.0.amplitude' -is 2.5 and 'siggen.0.offset' is 10.0, then the outputs will swing from -7.5 to 12.5. - -.Parameters - -None. footnote:[Prior to version 2.1, frequency, amplitude, and offset -were parameters. They were changed to pins to allow control by other -components.] - -.Functions - -* '(funct) siggen..update' - Calculates new values for all five outputs. - -[[sec:lut5]] -== lut5(((lut5))) - -The lut5 component is a 5 input logic component based on a look up table. - -* 'lut5' does not require a floating point thread. - -.Installing - ----- -loadrt lut5 [count=N|names=name1[,name2...]] -addf lut5.N servo-thread | base-thread -setp lut5.N.function 0xN ----- - -.Computing Function - -To compute the hexadecimal number for the function starting from the top put -a 1 or 0 to indicate if that row would be true or false. Next write down every -number in the output column starting from the top and writing them from right -to left. This will be the binary number. Using a calculator with a program -view like the one in Ubuntu enter the binary number and then convert it to -hexadecimal and that will be the value for function. - -.Look Up Table -[width="50%",cols="6*^",options="header"] -|==================================== -|Bit 4|Bit 3|Bit 2|Bit 1|Bit 0|Output -|0|0|0|0|0| -|0|0|0|0|1| -|0|0|0|1|0| -|0|0|0|1|1| -|0|0|1|0|0| -|0|0|1|0|1| -|0|0|1|1|0| -|0|0|1|1|1| -|0|1|0|0|0| -|0|1|0|0|1| -|0|1|0|1|0| -|0|1|0|1|1| -|0|1|1|0|0| -|0|1|1|0|1| -|0|1|1|1|0| -|0|1|1|1|1| -|1|0|0|0|0| -|1|0|0|0|1| -|1|0|0|1|0| -|1|0|0|1|1| -|1|0|1|0|0| -|1|0|1|0|1| -|1|0|1|1|0| -|1|0|1|1|1| -|1|1|0|0|0| -|1|1|0|0|1| -|1|1|0|1|0| -|1|1|0|1|1| -|1|1|1|0|0| -|1|1|1|0|1| -|1|1|1|1|0| -|1|1|1|1|1| -|==================================== - -.Two Input Example - -In the following table we have selected the output state for each line -that we wish to be true. - -.Look Up Table -[width="50%",cols="6*^",options="header"] -|==================================== -|Bit 4|Bit 3|Bit 2|Bit 1|Bit 0|Output -|0|0|0|0|0|0 -|0|0|0|0|1|1 -|0|0|0|1|0|0 -|0|0|0|1|1|1 -|==================================== - -Looking at the output column of our example we want the output to be on -when Bit 0 or Bit 0 and Bit1 is on and nothing else. The binary number is -'b1010' (rotate the output 90 degrees CW). Enter this number into the -calculator then change the display to hexadecimal and the number needed for -function is '0xa'. The hexadecimal prefix is '0x'. - - diff --git a/docs/src/hal/rtcomps_es.txt b/docs/src/hal/rtcomps_es.txt deleted file mode 100644 index b911bf7827d..00000000000 --- a/docs/src/hal/rtcomps_es.txt +++ /dev/null @@ -1,889 +0,0 @@ -= HAL Component Descriptions - -[[cha:realtime-components]] -(((Realtime Components))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - - -[[sec:Stepgen]] -== Stepgen(((stepgen))) - -This component provides software based generation of step pulses in -response to position or velocity commands. In position mode, it has a -built in pre-tuned position loop, so PID tuning is not required. In -velocity mode, it drives a motor at the commanded speed, while obeying -velocity and acceleration limits. It is a realtime component only, and -depending on CPU speed, etc, is capable of maximum step rates of 10kHz -to perhaps 50kHz. The following figure shows three block diagrams, each is a -single step pulse generator. -The first diagram is for step type '0', (step and direction). The second is -for step type '1' (up/down, or pseudo-PWM), and the third is for step types 2 -through 14 (various stepping patterns). The first two diagrams show position -mode control, and the third one shows velocity mode. Control mode and -step type are set independently, and any combination can be selected. - -.Step Pulse Generator Block Diagram position mode -(((Stepgen Block Diagram))) - -image::images/stepgen-block-diag.png[align="center"] - -.Installing - ----- -halcmd: loadrt stepgen step_type= [ctrl_type=] ----- - -'' is a series of comma separated decimal integers. Each -number causes a -single step pulse generator to be loaded, the value of the number - determines the stepping type. '' is a comma separated -series of 'p' or 'v' characters, to specify position or velocity -mode. 'ctrl_type' is optional, if ommitted, all of the step generators -will be position -mode. - -For example: ----- -halcmd: loadrt stepgen step_type=0,0,2 ctrl_type=p,p,v ----- - -will install three step generators. The first two use step type '0' -(step and direction) and run in position mode. The last one uses step -type '2' (quadrature) and runs in velocity mode. The default value for -'' is '0,0,0' which will install three type '0' -(step/dir) generators. The maximum -number of step generators is 8 (as defined by MAX_CHAN in stepgen.c). -Each generator is independent, but all are updated by the same - function(s) at the same time. In the following descriptions, '' -is the number of a specific generator. The first generator is number 0. -(((Stepgen Block Diagram))) -.Removing - ----- -halcmd: unloadrt stepgen ----- - -.Pins - -Each step pulse generator will have only some of these pins, depending -on the step type and control type selected. - -* '(float) stepgen..position-cmd' - Desired motor position, in - position units (position mode only). -* '(float) stepgen..velocity-cmd' - Desired motor velocity, in - position units per second (velocity mode only). -* '(s32) stepgen..counts' - Feedback position in counts, - updated by 'capture_position()'. -* '(float) stepgen..position-fb' - Feedback position in - position units, updated by 'capture_position()'. -* '(bit) stepgen..enable' - Enables output steps - when false, - no steps are generated. -* '(bit) stepgen..step' - Step pulse output (step type 0 only). -* '(bit) stepgen..dir' - Direction output (step type 0 only). -* '(bit) stepgen..up' - UP pseudo-PWM output (step type 1 only). -* '(bit) stepgen..down' - DOWN pseudo-PWM output (step type 1 only). -* '(bit) stepgen..phase-A' - Phase A output (step types 2-14 only). -* '(bit) stepgen..phase-B' - Phase B output (step types 2-14 only). -* '(bit) stepgen..phase-C' - Phase C output (step types 3-14 only). -* '(bit) stepgen..phase-D' - Phase D output (step types 5-14 only). -* '(bit) stepgen..phase-E' - Phase E output (step types 11-14 only). - -[[sub:stepgen-parameters]] -.Parameters - -* '(float) stepgen..position-scale' - Steps per position unit. - This parameter is used for both output and feedback. -* '(float) stepgen..maxvel' - Maximum velocity, in position - units per second. If 0.0, has no effect. -* '(float) stepgen..maxaccel' - Maximum accel/decel rate, in - positions units per second squared. - If 0.0, has no effect. -* '(float) stepgen..frequency' - The current step rate, in - steps per second. -* '(float) stepgen..steplen' - Length of a step pulse (step - type 0 and 1) or minimum time in a - given state (step types 2-14), in nano-seconds. -* '(float) stepgen..stepspace' - Minimum spacing between two - step pulses (step types 0 and 1 only), in nano-seconds. Set to 0 to - enable the stepgen 'doublefreq' function. To use 'doublefreq' the - <> must be enabled. -* '(float) stepgen..dirsetup' - Minimum time from a direction - change to the beginning of the next - step pulse (step type 0 only), in nanoseconds. -* '(float) stepgen..dirhold' - Minmum time from the end of a - step pulse to a direction change - (step type 0 only), in nanoseconds. -* '(float) stepgen..dirdelay' - Minmum time any step to a step - in the opposite direction (step - types 1-14 only), in nano-seconds. -* '(s32) stepgen..rawcounts' - The raw feedback count, updated - by 'make_pulses()'. - -In position mode, the values of maxvel and maxaccel are used by the -internal position loop to avoid generating step pulse trains that the -motor cannot follow. When set to values that are appropriate for the -motor, even a large instantaneous change in commanded position will -result in a smooth trapezoidal move to the new location. The algorithm -works by measuring both position error and velocity error, and -calculating an acceleration that attempts to reduce both to zero at the -same time. For more details, including the contents of the 'control -equation' box, consult the code. - -In velocity mode, maxvel is a simple limit that is applied to the -commanded velocity, and maxaccel is used to ramp the actual frequency -if the commanded velocity changes abruptly. As in position mode, proper -values for these parameters ensure that the motor can follow the -generated pulse train. - -[[sub:Stepgen-Step-Types]] -.Step Types - -.Step Type 0 -Step type 0 is the standard step and direction type. When configured for -step type 0, there are four extra parameters that determine the exact -timing of the step and direction signals. In the following figure -the meaning of these parameters is shown. The -parameters are in nanoseconds, but will be rounded up to an integer -multiple of the thread period for the threaed that calls -'make_pulses()'. For example, if 'make_pulses()' is called every 16 us, -and steplen is 20000, then the step pulses will -be 2 x 16 = 32 us long. The default value for all four of the parameters -is 1ns, but the automatic rounding takes effect the first time the code - runs. Since one step requires 'steplen' ns high and 'stepspace' ns -low, the maximum frequency is 1,000,000,000 divided by -'(steplen+stepspace)'. If 'maxfreq' is set higher than that limit, it -will be lowered automatically. If -maxfreq is zero, it will remain zero, but the output frequency will -still be limited. - -When using the parallel port driver the step frequency can be doubled using -the <> function together with stepgen's -'doublefreq' setting. - -[[fig:StepDir-timing]] -.Step and Direction Timing - -image::images/stepgen-type0.png[align="center"] - -.Step Type 1 -Step type 1 has two outputs, up and down. Pulses appear on one or the -other, depending on the direction of travel. Each pulse is 'steplen' ns -long, and the pulses are separated by at least 'stepspace' ns. The -maximum frequency is the same as for step type 0. If 'maxfreq' is set -higher than the limit it will be lowered. If 'maxfreq' is zero, it -will remain zero but the output frequency will still be -limited. - -[WARNING] -Do not use the parport reset function with step types 2 - 14. Unexpected -results can happen. - -.Step Type 2 - 14 -Step types 2 through 14 are state based, and have from two to five -outputs. On each step, a state counter is incremented or decremented. -Figures <>, <>, and -<> show the output patterns as a function of the state -counter. The maximum frequency is 1,000,000,000 divided by 'steplen', -and as in the other modes, 'maxfreq' will be lowered if it is above the -limit. - -[[fig:Two-and-Three-Phase]] -.Two-and-Three-Phase Step Types -(((Two and Three Phase))) - -image::images/stepgen-type2-4.png[align="center"] - -[[fig:Four-Phase]] -.Four-Phase Step Types -(((Four Phase))) - -image::images/stepgen-type5-10.png[align="center", width=800] - -[[fig:Five-Phase]] -.Five-Phase Step Types -(((Five Phase))) - -image::images/stepgen-type11-14.png[align="center"] - -.Functions - -The component exports three functions. Each function acts on all of -the step pulse generators - running different generators in different -threads is not supported. - -* '(funct) stepgen.make-pulses' - High speed function to generate - and count pulses (no floating point). -* '(funct) stepgen.update-freq' - Low speed function does position - to velocity conversion, scaling and limiting. -* '(funct) stepgen.capture-position' - Low speed function for - feedback, updates latches and scales position. - -The high speed function 'stepgen.make-pulses' should be run in a very -fast thread, from 10 to 50 us depending on the -capabilities of the computer. That thread's period determines the - maximum step frequency, since 'steplen', 'stepspace', 'dirsetup', -'dirhold', and 'dirdelay' are all rounded up to a integer multiple of -the thread periond in -nanoseconds. The other two functions can be called at a much lower -rate. - -[[sec:PWMgen]] -== PWMgen(((pwmgen))) - -This component provides software based generation of PWM (Pulse Width -Modulation) and PDM (Pulse Density Modulation) waveforms. It is a -realtime component only, and depending on CPU speed, etc, is capable of -PWM frequencies from a few hundred Hertz at pretty good resolution, to -perhaps 10KHz with limited resolution. - -.Installing - ----- -loadrt pwmgen output_type= ----- - -The '' is a series of comma separated decimal integers. Each -number causes a single PWM generator to be loaded, the value of the number -determines the output type. The following example will install three PWM -generators. There is no default value, if '' is not specified, -no PWM generators will be installed. The maximum number of frequency generators -is 8 (as defined by MAX_CHAN in pwmgen.c). Each generator is independent, -but all are updated by the same function(s) at the same time. In the following -descriptions, '' is the number of a specific generator. The first -generator is number 0. - -.Example ----- -loadrt pwmgen output_type=0,1,2 ----- - -.Removing - ----- -unloadrt pwmgen ----- - -.Output Types - -The PWM generator supports three different 'output types'. - -* 'Output type 0' - PWM output pin only. Only positive commands are accepted, - negative values are treated as zero (and will be affected by the parameter - 'min-dc' if it is non-zero). - -* 'Output type 1' - PWM/PDM and direction pins. Positive and negative inputs - will be output as positive and negative PWM. The direction pin is false - for positive commands, and true for negative commands. If your control - needs positive PWM for both CW and CCW use the <> component - to convert your PWM signal to positive value when a negative input is input. - -* 'Output type 2' - UP and DOWN pins. For positive commands, the PWM signal - appears on the up output, and the down output remains false. For negative - commands, the PWM signal appears on the down output, and the up output - remains false. Output type 2 is suitable for driving most H-bridges. - -.Pins - -Each PWM generator will have the following pins: - -* '(float) pwmgen..value' - Command value, in arbitrary units. - Will be scaled by the 'scale' parameter (see below). -* '(bit) pwmgen..enable' - Enables or disables the PWM - generator outputs. - -Each PWM generator will also have some of these pins, depending on the -output type selected: - -* '(bit) pwmgen..pwm' - PWM (or PDM) output, (output types 0 - and 1 only). -* '(bit) pwmgen..dir' - Direction output (output type 1 only). -* '(bit) pwmgen..up' - PWM/PDM output for positive input value - (output type 2 only). -* '(bit) pwmgen..down' - PWM/PDM output for negative input - value (output type 2 only). - -.Parameters - -* '(float) pwmgen..scale' - Scaling factor to convert 'value' - from arbitrary units to duty cycle. -* '(float) pwmgen..pwm-freq' - Desired PWM frequency, in Hz. - If 0.0, generates PDM instead of - PWM. If set higher than internal limits, next call of 'update_freq()' - will set it to the internal limit. If non-zero, and 'dither' is false, - next call of 'update_freq()' will set it to the nearest integer - multiple of the 'make_pulses()' function period. -* '(bit) pwmgen..dither-pwm' - If true, enables dithering to - achieve average PWM frequencies or - duty cycles that are unobtainable with pure PWM. If false, both the PWM - frequency and the duty cycle will be rounded to values that can be - achieved exactly. -* '(float) pwmgen..min-dc' - Minimum duty cycle, between 0.0 - and 1.0 (duty cycle will go to - zero when disabled, regardless of this setting). -* '(float) pwmgen..max-dc' - Maximum duty cycle, between 0.0 - and 1.0. -* '(float) pwmgen..curr-dc' - Current duty cycle - after all - limiting and rounding (read only). - -.Functions - -The component exports two functions. Each function acts on all of the -PWM generators - running different generators in different threads is -not supported. - -* '(funct) pwmgen.make-pulses' - High speed function to generate PWM - waveforms (no floating point). -* '(funct) pwmgen.update' - Low speed function to scale and limit - value and handle other parameters. - -The high speed function 'pwmgen.make-pulses' should be run in a very -fast thread, from 10 to 50 us depending on the -capabilities of the computer. That thread's period determines the -maximum PWM carrier frequency, as well as the resolution of the PWM or -PDM signals. The other function can be called at a much lower rate. - -[[sec:Encoder]] -== Encoder(((encoder))) - -This component provides software based counting of signals from -quadrature encoders. It is a realtime component only, and depending on -CPU speed, latency, etc, is capable of maximum count rates of 10kHz to -perhaps up to 50kHz. - -The base thread should be 1/2 count speed to allow for noise and timing -variation. For example if you have a 100 pulse per revolution encoder on the -spindle and your maximnum RPM is 3000 the maximum base thread should be 25 us. -A 100 pulse per revolution encoder will have 400 counts. The spindle speed -of 3000 RPM = 50 RPS (revolutions per second). 400 * 50 = 20,000 counts per -second or 50 us between counts. - -Figure <> is a block -diagram of one channel of encoder counter. - -[[fig:Encoder-Block-Diag]] -.Encoder Counter Block Diagram -(((Encoder Block Diagram))) - -image::images/encoder-block-diag.png[align="center"] - -.Installing - ----- -halcmd: loadrt encoder [num_chan=] ----- - -'' is the number of encoder counters that you want to -install. If 'numchan' is not specified, three counters will be -installed. The maximum -number of counters is 8 (as defined by MAX_CHAN in encoder.c). Each -counter is independent, but all are updated by the same function(s) at - the same time. In the following descriptions, '' is the number -of a specific counter. The first counter is number 0. - -.Removing - ----- -halcmd: unloadrt encoder ----- - -.Pins - -* 'encoder..counter-mode' (bit, I/O) (default: FALSE) - Enables - counter mode. When true, the - counter counts each rising edge of the phase-A input, ignoring the - value on phase-B. This is useful for counting the output of a single - channel (non-quadrature) sensor. When false, it counts in quadrature - mode. -* 'encoder..counts' (s32, Out) - Position in encoder counts. -* 'encoder..counts-latched' (s32, Out) - Not used at this time. -* 'encoder..index-enable' (bit, I/O) - When True, 'counts' and - 'position are' reset to zero on next rising edge of Phase Z. At the - same time, 'index-enable' is reset to zero to indicate that the rising - edge has occoured. The 'index-enable' pin is bi-directional. If - 'index-enable' is False, the Phase Z channel of the encoder will be - ignored, and the - counter will count normally. The encoder driver will never set - 'index-enable' True. However, some other component may do so. -* 'encoder..latch-falling' (bit, In) (default: TRUE) - Not used - at this time. -* 'encoder..latch-input' (bit, In) (default: TRUE) - Not used at - this time. -* 'encoder..latch-rising' (bit, In) - Not used at this time. -* 'encoder..min-speed-estimate' (float, in) - Determine the - minimum true velocity magnitude at which - velocity will be estimated as nonzero and postition-interpolated will - be interpolated. The units of 'min-speed-estimate' are the same as the - units of 'velocity' . Scale factor, in counts per length unit. Setting - this parameter too - low will cause it to take a long time for velocity to go to 0 after - encoder pulses have stopped arriving. -* 'encoder..phase-A' (bit, In) - Phase A of the quadrature encoder signal. -* 'encoder..phase-B' (bit, In) - Phase B of the quadrature encoder signal. -* 'encoder..phase-Z' (bit, In) - Phase Z (index pulse) of the quadrature encoder signal. -* 'encoder..position' (float, Out) - Position in scaled units (see 'position-scale'). -* 'encoder..position-interpolated' (float, Out) - Position in - scaled units, interpolated between - encoder counts. The 'position-interpolated' attempts to interpolate - between encoder counts, based on the most - recently measured velocity. Only valid when velocity is approximately - constant and above 'min-speed-estimate'. Do not use for position - control, since its value is incorrect at - low speeds, during direction reversals, and during speed changes. - However, it allows a low ppr encoder (including a one pulse per - revolution 'encoder') to be used for lathe threading, and may have - other uses as well. -* 'encoder..position-latched (float, Out)' - Not used at this time. -* 'encoder..position-scale (float, I/O)' - Scale factor, in - counts per length unit. For example, if - position-scale is 500, then 1000 counts of the encoder will be reported - as a position of 2.0 units. -* 'encoder..rawcounts (s32, In)' - The raw count, as determined - by update-counters. This value is - updated more frequently than counts and position. It is also unaffected - by reset or the index pulse. -* 'encoder..reset' (bit, In) - When True, force 'counts' and - 'position' to zero immediately. -* 'encoder..velocity' (float, Out) - Velocity in scaled units per - second. 'encoder' uses an algorithm that greatly reduces quantization - noise as compared - to simply differentiating the 'position' output. When the magnitude - of the true velocity is below - min-velocity-estimate, the velocity output is 0. -* 'encoder..x4-mode (bit, I/O) (default: TRUE)' - Enables - times-4 mode. When true, the counter counts each edge of - the quadrature waveform (four counts per full cycle). When false, it - only counts once per full cycle. In counter-mode, this parameter is - ignored. The 1x mode is useful for some jogwheels. - -.Parameters - -* 'encoder..capture-position.time (s32, RO)' -* 'encoder..capture-position.tmax (s32, RW)' -* 'encoder..update-counters.time (s32, RO)' -* 'encoder..update-counter.tmax (s32, RW)' - -.Functions - -The component exports two functions. Each function acts on all of the -encoder counters - running different counters in different threads is -not supported. - -* '(funct) encoder.update-counters' - High speed function to count - pulses (no floating point). -* '(funct) encoder.capture-position' - Low speed function to update - latches and scale position. - -[[sec:PID]] -== PID(((pid))) - -This component provides Proportional/Integral/Derivative control -loops. It is a realtime component only. For simplicity, this discussion -assumes that we are talking about position loops, however this -component can be used to implement other feedback loops such as speed, -torch height, temperature, etc. Figure <> is a -block diagram of a single PID loop. - -[[fig:PID-block-diag]] -.PID Loop Block Diagram -(((PID Block Diagram))) - -image::images/pid-block-diag.png[align="center"] - -.Installing - ----- -halcmd: loadrt pid [num_chan=] [debug=1] ----- - -'' is the number of PID loops that you want to install. If -'numchan' is not specified, one loop will be installed. The maximum -number of -loops is 16 (as defined by MAX_CHAN in pid.c). Each loop is completely - independent. In the following descriptions, '' is the loop -number of a specific loop. The first loop is number 0. - -If 'debug=1' is specified, the component will export a few extra -parameters that -may be useful during debugging and tuning. By default, the extra -parameters are not exported, to save shared memory space and avoid -cluttering the parameter list. - -.Removing - ----- -halcmd: unloadrt pid ----- - -.Pins - -The three most important pins are - -* '(float) pid..command' - The desired position, as - commanded by another system component. -* '(float) pid..feedback' - The present position, as - measured by a feedback device such as an encoder. -* '(float) pid..output' - A velocity command that attempts - to move from the present position to the desired position. - -For a position loop, 'command' and 'feedback' are in position units. -For a linear axis, this could be inches, mm, meters, or whatever is -relevant. Likewise, for an angular axis, it could be degrees, radians, -etc. The units of the 'output' pin represent the change needed to make -the feedback match the command. As such, for a position loop 'Output' -is a velocity, in inches/sec, mm/sec, degrees/sec, etc. Time units are -always seconds, and the velocity units match the position units. If -command and feedback are in meters, then output is in meters per -second. - -Each loop has two pins which are used to monitor or control the -general operation of the component. - -* '(float) pid..error' - Equals '.command' minus '.feedback'. -* '(bit) pid..enable' - A bit that enables the loop. If - '.enable' is false, all integrators are reset, and the output is - forced to zero. If '.enable' is true, the loop operates normally. - -Pins used to report saturation. Saturation occurs when the output of -the PID block is at its maximum or minimum limit. - -* '(bit) pid..saturated' - True when output is saturated. -* '(float) pid..saturated_s' - The time the output has been saturated. -* '(s32) pid..saturated_count' - The time the output has been saturated. - -.Parameters - -The PID gains, limits, and other 'tunable' features of the loop are -implemented as parameters. - -* '(float) pid..Pgain' - Proportional gain -* '(float) pid..Igain' - Integral gain -* '(float) pid..Dgain' - Derivative gain -* '(float) pid..bias' - Constant offset on output -* '(float) pid..FF0' - Zeroth order feedforward - output - proportional to command (position). -* '(float) pid..FF1' - First order feedforward - output - proportional to derivative of command (velocity). -* '(float) pid..FF2' - Second order feedforward - output - proportional to 2nd derivative - of command (acceleration)footnote:[FF2 is not currently implemented, - but it will be added. Consider this note a “FIXME†for the code]. -* '(float) pid..deadband' - Amount of error that will be ignored -* '(float) pid..maxerror' - Limit on error -* '(float) pid..maxerrorI' - Limit on error integrator -* '(float) pid..maxerrorD' - Limit on error derivative -* '(float) pid..maxcmdD' - Limit on command derivative -* '(float) pid..maxcmdDD' - Limit on command 2nd derivative -* '(float) pid..maxoutput' - Limit on output value - -All of the 'max' limits are implemented such that if the parameter -value is zero, there is no limit. - -If 'debug=1' was specified when the component was installed, four -additional parameters will be exported: - -* '(float) pid..errorI' - Integral of error. -* '(float) pid..errorD' - Derivative of error. -* '(float) pid..commandD' - Derivative of the command. -* '(float) pid..commandDD' - 2nd derivative of the command. - -.Functions - -The component exports one function for each PID loop. This function -performs all the calculations needed for the loop. Since each loop has -its own function, individual loops can be included in different threads -and execute at different rates. - -* '(funct) pid..do_pid_calcs' - Performs all calculations - for a single PID loop. - -If you want to understand the exact algorithm used to compute the -output of the PID loop, refer to figure <>, the -comments at the beginning of 'emc2/src/hal/components/pid.c' , and of -course to the code itself. The loop calculations are in the C -function 'calc_pid()'. - -== Simulated Encoder[[sec:Simulated-Encoder]](((sim-encoder))) - -The simulated encoder is exactly that. It produces quadrature pulses -with an index pulse, at a speed controlled by a HAL pin. Mostly useful -for testing. - -.Installing - ----- -halcmd: loadrt sim-encoder num_chan= ----- - -'' is the number of encoders that you want to simulate. If not -specified, one encoder will be installed. The maximum number is 8 (as -defined by MAX_CHAN in sim_encoder.c). - -.Removing - ----- -halcmd: unloadrt sim-encoder ----- - -.Pins - -* '(float) sim-encoder..speed' - The speed command for the - simulated shaft. -* '(bit) sim-encoder..phase-A' - Quadrature output. -* '(bit) sim-encoder..phase-B' - Quadrature output. -* '(bit) sim-encoder..phase-Z' - Index pulse output. - -When '.speed' is positive, '.phase-A' leads '.phase-B'. - -.Parameters - -* '(u32) sim-encoder..ppr' - Pulses Per Revolution. -* '(float) sim-encoder..scale' - Scale Factor for 'speed'. - The default is 1.0, which means that 'speed' is in revolutions per - second. Change to 60 for RPM, to 360 for - degrees per second, 6.283185 for radians per seconed, etc. - -Note that pulses per revolution is not the same as counts per -revolution. A pulse is a complete quadrature cycle. Most encoder -counters will count four times during one complete cycle. - -.Functions - -The component exports two functions. Each function affects all -simulated encoders. - -* '(funct) sim-encoder.make-pulses' - High speed function to - generate quadrature pulses (no floating point). -* '(funct) sim-encoder.update-speed' - Low speed function to read - 'speed', do scaling, and set up 'make-pulses'. - -[[sec:Debounce]] -== Debounce(((debounce))) - -Debounce is a realtime component that can filter the glitches created -by mechanical switch contacts. It may also be useful in other -applications where short pulses are to be rejected. - -.Installing - ----- -halcmd: loadrt debounce cfg= ----- - -'' is a series of comma separated decimal integers. -Each number installs -a group of identical debounce filters, the number determines how many -filters are in the group. - -For example: - ----- -halcmd: loadrt debounce cfg=1,4,2 ----- - -will install three groups of filters. Group 0 contains one filter, -group 1 contains four, and group 2 contains two filters. The default -value for '' is '"1"' which will install a single group -containing a single filter. The -maximum number of groups 8 (as defined by MAX_GROUPS in debounce.c). -The maximum number of filters in a group is limited only by shared -memory space. Each group is completely independent. All filters in a -single group are identical, and they are all updated by the same -function at the same time. In the following descriptions, '' is the -group number and '' is the filter number within the group. The -first filter is group 0, -filter 0. - -.Removing - ----- -halcmd: unloadrt debounce ----- - -.Pins - -Each individual filter has two pins. - -* '(bit) debounce...in' - Input of filter '' in group ''. -* '(bit) debounce...out' - Output of filter '' in group ''. - -.Parameters - -Each group of filters has one parameterfootnote:[Each individual -filter also has an internal state variable. There is a -compile time switch that can export that variable as a parameter. This -is intended for testing, and simply wastes shared memory under normal -circumstances.]. - -* '(s32) debounce..delay' - Filter delay for all filters in group ''. - -The filter delay is in units of thread periods. The minimum delay is -zero. The output of a zero delay filter exactly follows its input - it -doesn't filter anything. As 'delay' increases, longer and longer -glitches are rejected. If 'delay' is 4, all glitches less than or -equal to four thread periods will be rejected. - -.Functions - -Each group of filters has one function, which updates all the filters -in that group 'simultaneously'. Different groups of filters can be -updated from different threads at different periods. - -* '(funct) debounce.' - Updates all filters in group ''. - -== Siggen[[sec:Siggen]](((siggen))) - -Siggen is a realtime component that generates square, triangle, and -sine waves. It is primarily used for testing. - -.Installing - ----- -halcmd: loadrt siggen [num_chan=] ----- - -'' is the number of signal generators that you want to install. -If 'numchan' is not specified, one signal generator will be installed. -The maximum -number of generators is 16 (as defined by MAX_CHAN in siggen.c). Each - generator is completely independent. In the following descriptions, -'' is the number of a specific signal generator (the numbers -start at 0). - -.Removing - ----- -halcmd: unloadrt siggen ----- - -.Pins - -Each generator has five output pins. - -* '(float) siggen..sine' - Sine wave output. -* '(float) siggen..cosine' - Cosine output. -* '(float) siggen..sawtooth' - Sawtooth output. -* '(float) siggen..triangle' - Triangle wave output. -* '(float) siggen..square' - Square wave output. - -All five outputs have the same frequency, amplitude, and offset. - -In addition to the output pins, there are three control pins: - -* '(float) siggen..frequency' - Sets the frequency in Hertz, - default value is 1 Hz. -* '(float) siggen..amplitude' - Sets the peak amplitude of the - output waveforms, default is 1. -* '(float) siggen..offset' - Sets DC offset of the output - waveforms, default is 0. - -For example, if 'siggen.0.amplitude' is 1.0 and 'siggen.0.offset' is -0.0, the outputs will swing from -1.0 to +1.0. If 'siggen.0.amplitude' -is 2.5 and 'siggen.0.offset' is 10.0, then the outputs will swing from -7.5 to 12.5. - -.Parameters - -None. footnote:[Prior to version 2.1, frequency, amplitude, and offset -were parameters. They were changed to pins to allow control by other -components.] - -.Functions - -* '(funct) siggen..update' - Calculates new values for all five outputs. - -[[sec:lut5]] -== lut5(((lut5))) - -The lut5 component is a 5 input logic component based on a look up table. - -* 'lut5' does not require a floating point thread. - -.Installing - ----- -loadrt lut5 [count=N|names=name1[,name2...]] -addf lut5.N servo-thread | base-thread -setp lut5.N.function 0xN ----- - -.Computing Function - -To compute the hexadecimal number for the function starting from the top put -a 1 or 0 to indicate if that row would be true or false. Next write down every -number in the output column starting from the top and writing them from right -to left. This will be the binary number. Using a calculator with a program -view like the one in Ubuntu enter the binary number and then convert it to -hexadecimal and that will be the value for function. - -.Look Up Table -[width="50%",cols="6*^",options="header"] -|==================================== -|Bit 4|Bit 3|Bit 2|Bit 1|Bit 0|Output -|0|0|0|0|0| -|0|0|0|0|1| -|0|0|0|1|0| -|0|0|0|1|1| -|0|0|1|0|0| -|0|0|1|0|1| -|0|0|1|1|0| -|0|0|1|1|1| -|0|1|0|0|0| -|0|1|0|0|1| -|0|1|0|1|0| -|0|1|0|1|1| -|0|1|1|0|0| -|0|1|1|0|1| -|0|1|1|1|0| -|0|1|1|1|1| -|1|0|0|0|0| -|1|0|0|0|1| -|1|0|0|1|0| -|1|0|0|1|1| -|1|0|1|0|0| -|1|0|1|0|1| -|1|0|1|1|0| -|1|0|1|1|1| -|1|1|0|0|0| -|1|1|0|0|1| -|1|1|0|1|0| -|1|1|0|1|1| -|1|1|1|0|0| -|1|1|1|0|1| -|1|1|1|1|0| -|1|1|1|1|1| -|==================================== - -.Two Input Example - -In the following table we have selected the output state for each line -that we wish to be true. - -.Look Up Table -[width="50%",cols="6*^",options="header"] -|==================================== -|Bit 4|Bit 3|Bit 2|Bit 1|Bit 0|Output -|0|0|0|0|0|0 -|0|0|0|0|1|1 -|0|0|0|1|0|0 -|0|0|0|1|1|1 -|==================================== - -Looking at the output column of our example we want the output to be on -when Bit 0 or Bit 0 and Bit1 is on and nothing else. The binary number is -'b1010' (rotate the output 90 degrees CW). Enter this number into the -calculator then change the display to hexadecimal and the number needed for -function is '0xa'. The hexadecimal prefix is '0x'. - - diff --git a/docs/src/hal/rtcomps_fr.txt b/docs/src/hal/rtcomps_fr.txt deleted file mode 100644 index 6b3c420bf87..00000000000 --- a/docs/src/hal/rtcomps_fr.txt +++ /dev/null @@ -1,902 +0,0 @@ -:lang: fr -:toc: - -= Les composants temps réel - -[[cha:Composants-temps-reel]] (((composants-temps-reel))) - - -[[sec:Stepgen]] -== Stepgen -(((stepgen))) - -Ce composant fournit un générateur logiciel d'impulsions de pas -répondant aux commandes de position ou de vitesse. En mode position, il -contient une boucle de position pré-réglée, de sorte que les réglages -de PID ne sont pas nécessaires. En mode vitesse, il pilote un moteur à -la vitesse commandée, tout en obéissant aux limites de vitesse et -d'accélération. C'est un composant uniquement temps réel, dépendant de -plusieurs facteurs comme la vitesse du CPU, etc, il est capable de -fournir des fréquences de pas maximum comprise entre 10kHz et 50kHz. -La figure <> montre trois schémas -fonctionnels, chacun est un simple générateur d'impulsions de pas. Le -premier diagramme est pour le type _0_, (pas et direction). Le second -est pour le type _1_ (up/down, ou pseudo-PWM) et le troisième est pour -les types 2 jusqu'à 14 (les différentes séquences de pas). Les deux -premiers diagrammes montrent le mode de commande _position_ et le -troisième montre le mode _vitesse_. Le mode de commande et le type de -pas, se règlent indépendamment et n'importe quelle combinaison peut -être choisie. - -[[fig:Diagramme-bloc-stepgen]] -.Diagramme bloc du générateur de pas stepgen -(((Diagramme bloc stepgen))) - -image::images/stepgen-block-diag.png[] - - -=== L'installer ----- -halcmd: loadrt stepgen step_type= [ctrl_type=] ----- - -__ est une série d'entiers décimaux séparés par des -virgules. Chaque -chiffre provoquera le chargement d'un simple générateur d'impulsions de - pas, la valeur de ce chiffre déterminera le type de pas. -__ est une série de lettres _p_ ou _v_ séparées par -des virgules, qui spécifient le mode pas ou le mode vitesse. -_ctrl_type_ est optionnel, si il est omis, tous les générateurs de pas -seront en mode position. Par exemple, la commande: ----- -halcmd: loadrt stepgen step_type=0,0,2 ctrl_type=p,p,v ----- - -va installer trois générateurs de pas. Les deux premiers utilisent le -type de pas _0_ (pas et direction) et fonctionnent en mode position. Le -dernier utilise le type de pas _2_ (quadrature) et fonctionne en mode -vitesse. La valeur par défaut de __ est _0,0,0_ qui va -installer trois générateurs de type _0_ (step/dir). Le nombre -maximum de générateurs de pas est de 8 (comme définit par MAX_CHAN dans -stepgen.c). Chaque générateur est indépendant, mais tous sont -actualisés par la même fonction(s), au même instant. Dans les -descriptions qui suivent, __ est le nombre de générateurs -spécifiques. La numérotation des -générateurs commence à 0. - -=== Le désinstaller ----- -halcmd: unloadrt stepgen ----- - -=== Pins - -Chaque générateur d'impulsions de pas n'aura que certaines de ces -pins, selon le type de pas et le mode de contrôle sélectionné. - - - _(float) stepgen..position-cmd_ -- Position désirée du - moteur, en unités de longueur (mode position seulement). - - _(float) stepgen..velocity-cmd_ -- Vitesse désirée du moteur, - en unités de longueur par seconde (mode vitesse seulement). - - _(s32) stepgen..counts_ -- Rétroaction de la position en - unités de comptage, actualisée par la fonction _capture_position()_. - - _(float) stepgen..position-fb_ -- Rétroaction de la position - en unités de longueur, actualisée par la fonction _capture_position()_. - - _(bit) stepgen..step_ -- Sortie des impulsions de pas -(type de pas 0 seulement). - - _(bit) stepgen..dir_ -- Sortie direction (type de pas 0 seulement). - - _(bit) stepgen..up_ -- Sortie UP en pseudo-PWM -(type de pas 1 seulement). - - _(bit) stepgen..down_ -- Sortie DOWN en pseudo-PWM -(type de pas 1 seulement). - - _(bit) stepgen..phase-A_ -- Sortie phase A -(séquences de pas 2 à 14 seulement). - - _(bit) stepgen..phase-B_ -- Sortie phase B -(séquences de pas 2 à 14 seulement). - - _(bit) stepgen..phase-C_ -- Sortie phase C -(séquences de pas 3 à 14 seulement). - - _(bit) stepgen..phase-D_ -- Sortie phase D -(séquences de pas 5 à 14 seulement). - - _(bit) stepgen..phase-E_ -- Sortie phase E -(séquences de pas 11 à 14 seulement). - -=== Paramètres - - - _(float) stepgen..position-scale_ -- Pas par unité de longueur. - Ce paramètre est utilisé pour les sorties et les rétroactions. - - _(float) stepgen..maxvel_ -- Vitesse maximale, en unités de - longueur par seconde. Si égal à 0.0, n'a aucun effet. - - _(float) stepgen..maxaccel_ -- Valeur maximale - d'accélération, en unités de longueur par seconde - au carré. Si égal à 0.0, n'a aucun effet. - - _(float) stepgen..frequency_ -- Fréquence des pas, en pas par seconde. - - _(float) stepgen..steplen_ -- Durée de l'impulsion de pas - (types de pas 0 et 1) ou durée minimum - dans un état donné (séquences de pas 2 à 14), en nanosecondes. - - _(float) stepgen..stepspace_ -- Espace minimum entre deux - impulsions de pas (types de pas 0 et 1 seulement), en nanosecondes. - - _(float) stepgen..dirsetup_ -- Durée minimale entre un - changement de direction et le début de la - prochaine impulsion de pas (type de pas 0 seulement), en nanosecondes. - - _(float) stepgen..dirhold_ -- Durée minimale entre la fin - d'une impulsion de pas et un - changement de direction (type de pas 0 seulement), en nanosecondes. - - _(float) stepgen..dirdelay_ -- Durée minimale entre un pas - dans une direction et un pas dans la - direction opposée (séquences de pas 1 à 14 seulement), en nanosecondes. - - _(s32) stepgen..rawcounts_ -- Valeur de comptage brute - (count) de la rétroaction, réactualisée par la fonction _make_pulses()_. - -En mode position, les valeurs de maxvel et de maxaccel sont utilisées -par la boucle de position interne pour éviter de générer des trains -d'impulsions de pas que le moteur ne peut pas suivre. Lorsqu'elles sont -réglées sur des valeurs appropriées pour le moteur, même un grand -changement instantané dans la position commandée produira un mouvement -trapézoïdal en douceur vers la nouvelle position. L'algorithme -fonctionne en mesurant à la fois, l'erreur de position et l'erreur de -vitesse, puis en calculant une accélération qui tende à réduire vers -zéro, les deux en même temps. Pour plus de détails, y compris les -contenus de la boîte _d'équation de contrôle_, consulter le code -source. - -En mode vitesse, maxvel est une simple limite qui est appliquée à la -vitesse commandée, maxaccel est utilisé pour créer une rampe avec la -fréquence actuelle, si la vitesse commandée change brutalement. Comme -dans le mode position, des valeurs appropriées de ces paramètres -assurent que le moteur pourra suivre le train d'impulsions généré. -[[sub:Stepgen-sequences-de-pas]] - -=== Séquences de pas - -Le générateur de pas supporte 15 différentes _séquences de pas_. Le -type de pas 0 est le plus familier, c'est le standard pas et direction -(step/dir). Quand stepgen est configuré pour le type 0, il y a quatre -paramètres supplémentaires qui déterminent le timing exact des signaux -de pas et de direction. Voir la figure <> -pour la signification de ces paramètres. Les paramètres sont en nanosecondes, -mais ils doivent être arrondis à un entier, multiple de la période du -thread qui appelle _make_pulses()_. Par exemple, si _make_pulses()_ -est appelée toutes les 16µs et que _steplen_ est à 20000, alors -l'impulsion de pas aura une durée de 2 x 16 = 32µs. La valeur par -défaut de ces quatre paramètres est de 1ns, mais l'arrondi automatique -prendra effet au premier lancement du code. Puisqu'un pas exige d'être - haut pendant _steplen_ ns et bas pendant _stepspace_ ns, la -fréquence maximale est 1.000.000.000 divisé par _(steplen+stepspace)_. -Si _maxfreq_ est réglé plus haut que cette limite, il sera abaissé -automatiquement. Si _maxfreq_ est à zéro, il restera à zéro, mais la -fréquence de sortie sera toujours limitée. - -[[fig:StepDir-timing]] -.Timing pas et direction - -(((Timing pas et direction))) - -image::images/stepgen-type0.png[] - -Le type de pas 1 a deux sorties, up et down. Les impulsions -apparaissent sur l'une ou l'autre, selon la direction du déplacement. -Chaque impulsion a une durée de _steplen_ ns et les impulsions sont -séparées de _stepspace_ ns. La fréquence maximale est la même que pour -le type 0. Si _maxfreq_ est réglé plus haut que cette limite il sera -abaissé automatiquement. -Si _maxfreq_ est à zéro, il restera à zéro, mais la fréquence de sortie -sera toujours limitée. - -Les séquences 2 jusqu'à 14 sont basées sur les états et ont entre deux -et cinq sorties. Pour chaque pas, un compteur d'état est incrémenté ou -décrémenté. Les figures suivantes: - - - <>, - - <>, - - <> - -montrent les différentes séquences des sorties en fonction de l'état du -compteur. La fréquence maximale est 1.000.000.000 (1*10^9^) divisé par -_steplen_ et comme dans les autres séquences, _maxfreq_ sera abaissé si -il est au dessus de cette limite. - -[[fig:Trois-phases-quadrature]] -.Séquences de pas à trois phases -(((Trois phases))) - -image::images/stepgen-type2-4.png[] - -[[fig:Quatre-phases]] -.Séquences de pas à quatre phases -(((Quatre phases))) - -image::images/stepgen-type5-10.png[] - -[[fig:Cinq-phases]] -.Séquence de pas à cinq phases -(((Cinq phases))) - -image::images/stepgen-type11-14.png[] - -=== Fonctions - -Le composant exporte trois fonctions. Chaque fonction agit sur tous -les générateurs d'impulsions de pas. Lancer différents générateurs dans -différents threads n'est pas supporté. - - - _(funct) stepgen.make-pulses_ -- Fonction haute vitesse de - génération et de comptage des impulsions (non flottant). - - _(funct) stepgen.update-freq_ -- Fonction basse vitesse de - conversion de position en vitesse, mise - à l'échelle et traitement des limitations. - - _(funct) stepgen.capture-position_ -- Fonction basse vitesse pour - la rétroaction, met à jour les latches et les mesures de position. - -La fonction à grande vitesse _stepgen.make-pulses_ devrait être -lancée dans un thread très rapide, entre 10 et 50us -selon les capacités de l'ordinateur. C'est la période de ce thread qui - détermine la fréquence maximale des pas, de _steplen_, _stepspace_, -_dirsetup_, _dirhold_ et _dirdelay_, tous sont arrondis au multiple -entier de la période du thread en nanosecondes. Les deux -autres fonctions peuvent être appelées beaucoup plus lentement. - -[[sec:PWMgen]] -== PWMgen -(((pwmgen))) - -Ce composant fournit un générateur logiciel de PWM (modulation de -largeur d'impulsions) et PDM (modulation de densité d'impulsions). -C'est un composant temps réel uniquement, dépendant de plusieurs -facteurs comme la vitesse du CPU, etc, Il est capable de générer des -fréquences PWM de quelques centaines de Hertz en assez bonne -résolution, à peut-être 10kHz avec une résolution limitée. - -=== L'installer ----- -halcmd: loadrt pwmgen output_type= ----- - -__ est une série d'entiers décimaux séparés par des -virgules. Chaque -chiffre provoquera le chargement d'un simple générateur de PWM, la -valeur de ce chiffre determinera le type de sortie. - -.Exemple avec pwmgen ----- -halcmd: loadrt pwmgen output_type=0,1,2 ----- - -va installer trois générateurs de PWM. Le premier utilisera une sortie -de type _0_ (PWM seule), le suivant utilisera une sortie de type 1 (PWM -et direction) et le troisième utilisera une sortie de type 2 (UP et -DOWN). Il n'y a pas de valeur par défaut, si __ n'est -pas spécifié, aucun générateur de PWM ne sera installé. Le -nombre maximum de générateurs de fréquences est de 8 (comme définit par -MAX_CHAN dans pwmgen.c). Chaque générateur est indépendant, mais tous -sont mis à jour par la même fonction(s), au même instant. Dans les - descriptions qui suivent, __ est le nombre de générateurs -spécifiques. La numérotation des -générateurs de PWM commence à 0. - -=== Le désinstaller ----- -halcmd: unloadrt pwmgen ----- - -=== Pins - -Chaque générateur de PWM aura les pins suivantes: - - - _(float) pwmgen..value_ -- Valeur commandée, en unités - arbitraires. Sera mise à l'échelle par - le paramètre d'échelle (voir ci-dessous). - - _(bit) pwmgen..enable_ -- Active ou désactive les sorties du - générateur de PWM. - -Chaque générateur de PWM aura également certaines de ces pins, selon -le type de sortie choisi: - - - _(bit) pwmgen..pwm_ -- Sortie PWM (ou PDM), (types de sortie 0 - et 1 seulement). - - _(bit) pwmgen..dir_ -- Sortie direction (type de sortie 1 seulement). - - _(bit) pwmgen..up_ -- Sortie PWM/PDM pour une valeur positive - en entrée (type de sortie 2 seulement). - - _(bit) pwmgen..down_ -- Sortie PWM/PDM pour une valeur - négative en entrée (type de sortie 2 seulement). - -=== Paramètres - - - _(float) pwmgen..scale_ -- Facteur d'échelle pour convertir - les valeurs en unités - arbitraires, en coefficients de facteur cyclique. - - _(float) pwmgen..pwm-freq_ -- Fréquence de PWM désirée, en - Hz. Si égale à 0.0, la modulation - sera PDM au lieu de PWM. Si elle est réglée plus haute que les limites - internes, au prochain appel de la fonction _update_freq()_ elle sera - ramenée aux limites internes. Si elle est différente de - zéro et si _le lissage_ est faux, au prochain appel de la fonction - _update_freq()_ elle sera réglée au plus proche entier multiple de la - période de la fonction _make_pulses()_. - - _(bit) pwmgen..dither-pwm_ -- Si vrai, active le lissage pour - affiner la fréquence PWM ou le - rapport cyclique qui ne pourraient pas être obtenus avec une pure PWM. - Si faux, la fréquence PWM et le rapport cyclique seront tous les deux - arrondis aux valeurs pouvant être atteintes exactement. - - _(float) pwmgen..min-dc_ -- Rapport cyclique minimum compris - entre 0.0 et 1.0 (Le rapport - cyclique sera à zéro quand il est désactivé, indépendamment de ce - paramètre). - - _(float) pwmgen..max-dc_ -- Rapport cyclique maximum compris - entre 0.0 et 1.0. - - _(float) pwmgen..curr-dc_ -- Rapport cyclique courant, après - toutes les limitations et les - arrondis (lecture seule). - -=== Types de sortie - -Le générateur de PWM supporte trois _types de sortie_. - -* Le _type 0_ - A une seule pin de sortie. Seules, les commandes positives sont -acceptées, les valeurs négatives sont traitées comme zéro (elle seront affectées -par le paramètre _min-dc_ si il est différent de zéro). -* Le _type 1_ - A deux pins de sortie, une pour le signal PWM/PDM et une pour -la direction. Le rapport cyclique d'une pin PWM est basé sur la valeur absolue -de la commande, de sorte que les valeurs négatives sont acceptables. La pin de -direction est fausse pour les commandes positives et vraie pour les -commandes négatives. -* Le _type 2_ - A également deux sorties, appelées _up_ et _down_. Pour -les commandes positives, le signal PWM apparaît sur la sortie _up_ et la sortie -_down_ reste fausse. Pour les commandes négatives, le signal PWM apparaît sur -la sortie _down_ et la sortie _up_ reste fausse. Les sorties de type 2 sont -appropriées pour piloter la plupart des ponts en H. - -=== Fonctions - -Le composant exporte deux fonctions. Chaque fonction agit sur tous les -générateurs de PWM, lancer différents générateurs dans différents -threads n'est pas supporté. - - - _(funct) pwmgen.make-pulses_ -- Fonction haute vitesse de - génération de fréquences PWM (non flottant). - - _(funct) pwmgen.update_ -- Fonction basse vitesse de mise à - l'échelle, limitation des valeurs et traitement d'autres paramètres. - -La fonction haute vitesse _pwmgen.make-pulses_ devrait être lancée -dans un thread très rapide, entre 10 et 50 us -selon les capacités de l'ordinateur. C'est la période de ce thread qui -détermine la fréquence maximale de la porteuse PWM, ainsi que la -résolution des signaux PWM ou PDM. L'autre fonction peut être appelée -beaucoup plus lentement. - -[[sec:Codeur]] -== Codeur -(((Codeur))) - -Ce composant fournit, en logiciel, le comptage des signaux provenant -d'encodeurs en quadrature. Il s'agit d'un composant temps réel -uniquement, il est dépendant de divers facteurs comme la vitesse du -CPU, etc, il est capable de compter des signaux de fréquences comprises -entre 10kHz à peut être 50kHz. La figure ci-dessous représente le diagramme bloc -d'une voie de comptage de codeur. - -[[fig:Diagramme-bloc-du-codeur]] -.Diagramme bloc du codeur -(((Diagramme bloc du codeur))) - -image::images/encoder-block-diag.png[] - -=== L'installer ----- -halcmd: loadrt encoder [num_chan=] ----- - -__ est le nombre de compteurs de codeur à installer. Si -_numchan_ n'est pas spécifié, trois compteurs seront installés. Le nombre -maximum de compteurs est de 8 (comme définit par MAX_CHAN dans encoder.c). -Chaque compteur est indépendant, mais tous sont mis à jour -par la même fonction(s) au même instant. Dans les descriptions qui -suivent, __ est le nombre de compteurs spécifiques. La -numérotation des compteurs commence à 0. - -=== Le désinstaller ----- -halcmd: unloadrt encoder ----- - -=== Pins - - - _Encodeur counter-mode_ (bit, I/O) (par défaut: FALSE) -- Permet le - mode compteur. Lorsque TRUE, le compteur compte chaque front montant de - l'entrée phase-A, ignorant la valeur de la phase-B. Ceci est utile pour - compter la sortie d'un capteur simple canal (pas de quadrature). Si FALSE, - il compte en mode quadrature. - - _encoder..counts_ (s32, Out) -- Position en comptage du codeur. - - _encoder..counts-latched_ (s32, Out) -- Non utilisé à ce moment. - - _encoder. index-enable_ (bit, I/O) -- Si TRUE, _counts_ et - _position_ sont remis à zéro au prochain front montant de la phase Z. - En même temps, _index-enable_ est remis à zéro pour indiquer que le front - montant est survenu. La broche _index-enable_ est bi-directionnelle. Si - _index-enable_ est FALSE, la phase Z du codeur sera ignorée et le - compteur comptera normalement. Le pilote du codeur ne doit jamais mettre - _index-enable_ TRUE. Cependant, d'autres composants peuvent le faire. - - _encoder..latch-falling_ (bit, In) (par défaut: TRUE) -- Non utilisé - à ce moment. - - _encoder..latch-input_ (bit, In) (par défaut: TRUE) -- Non utilisé à - ce moment. - - _encoder..latch-rising_ (bit, In) -- Non utilisé à ce moment. - - _encoder..min-speed-estimate_ (Float, In) -- Effectue une estimation - de la vitesse minimale réelle, à partir de laquelle, la vitesse sera estimée - comme non nulle et la position interpolées, comme étant interpolée. Les - unités de vitesse _min-speed-estimate_ sont les mêmes que les unités - de _velocity_. Le facteur d'échelle, en compte par unité de longueur. - Régler ce paramètre trop bas, fera prendre beaucoup de temps pour que la - vitesse arrive à 0 après que les impulsions du codeur aient cessé d'arriver. - - _encoder..phase-A_ (bit, In) -- Signal de la phase A du codeur en -quadrature. - - _encoder..phase-B_ (bit, In) -- Signal de la phase B du codeur en -quadrature. - - _encoder..phase-Z_ (bit, In) -- Signal de la phase Z (impulsion d'index) - du codeur en quadrature. - - _encoder..position_ (float, Out) - Position en unités mises à l'échelle - (voir _position_ échelle). - - _encoder..position-interpolated_ (float, Out) - Position en unités mises - à l'échelle, interpolées entre les comptes du codeur. _position-interpolated_ - tente d'interpoler entre les comptes du codeur, basée sur la mesure de vitesse - la plus récente. Valable uniquement lorsque la vitesse est approximativement - constante et supérieure à _min-speed-estimate_. Ne pas utiliser pour le - contrôle de position, puisque sa valeur est incorrecte en basse vitesse, lors - des inversions de direction et pendant les changements de vitesse. - Toutefois, il permet à un codeur à PPR faible (y compris les codeur à une - impulsion par tour) d'être utilisé pour du filetage sur tour et peut aussi - avoir d'autres usages. - - _encoder..position-latched_ (float, Out) -- Non utilisé à ce moment. - - _encoder..position-scale_ (float, I/O) -- Le facteur d'échelle, en - comptes par unité de longueur. Par exemple, si _position-scale_ est à 500, - alors à 1000 comptes codeur, la position sera donnée à 2,0 unités. - - _encoder..rawcounts_ (s32, In) -- Le compte brut, tel que déterminé par - _update-counters. Cette valeur est mise à jour plus fréquemment que compte et - position. Il n'est également pas affecté par le reset ou l'impulsion d'index. - - _encoder..reset_ (bit, In) -- Si TRUE, force _counts_ et _position_ - immédiatement à zéro. - - _encoder..velocity_ (float, Out) -- Vitesse en unités mises à l'échelle - par secondes. _encoder_ utilise un algorithme qui réduit considérablement la - quantification du bruit comparé à simplement différencier la sortie _position_. - Lorsque la magnitude de la vitesse réelle est inférieure à - _min-speed-estimate_, la sortie _velocity_ est à 0. - - _encoder..x4-mode_ (bit, I/O) (par défaut: TRUE) -- Permet le mode - x4. Lorsqu'il est TRUE, le compteur compte chaque front de l'onde en - quadrature (quatre compte par cycle complet). Si FALSE, il ne compte qu'une - seule fois par cycle complet. En mode compteur, ce paramètre est ignoré. - Le mode 1x est utile pour certaines manivelles électroniques. - -=== Paramètres - - - _encoder..capture-position.time (s32, RO)_ - - _encoder..capture-position.tmax (s32, RW)_ - - _encoder..update-counters.time (s32, RO)_ - - _encoder..update-counter.tmax (s32, RW)_ - -=== Fonctions - -Le composant exporte deux fonctions. Chaque fonction agit sur tous les -compteurs de codeur, lancer différents compteurs de codeur dans -différents threads n'est pas supporté. - - - _(funct) encoder.update-counters_ -- Fonction haute vitesse de - comptage d'impulsions (non flottant). - - _(funct) encoder.capture-position_ -- Fonction basse vitesse - d'actualisation des latches et mise à l'échelle de la position. - -[[sec:PID]] -== PID -(((pid))) - -Ce composant fournit une boucle de contrôle Proportionnelle/Intégrale/Dérivée. -C'est un composant temps réel uniquement. Par souci de simplicité, cette -discussion suppose que nous parlons de boucles de position, mais ce composant -peut aussi être utilisé pour implémenter d'autres boucles de rétroaction -telles que vitesse, hauteur de torche, température, etc. La figure -<> est le schéma fonctionnel d'une simple -boucle PID. - -[[fig:Diagramme-bloc-PID]] -.Diagramme bloc d'une boucle PID -(((Diagramme bloc PID))) - -image::images/pid-block-diag.png[] - -=== L'installer ----- -halcmd: loadrt pid [num_chan=] [debug=1] ----- - -__ est le nombre de boucles PID à installer. Si _numchan_ -n'est pas spécifié, une seule boucle sera installée. Le nombre -maximum de boucles est de 16 (comme définit par MAX_CHAN dans pid.c). -Chaque boucle est complétement indépendante. Dans les descriptions qui - suivent, __ est le nombre de boucles spécifiques. La -numérotation des boucle PID -commence à 0. - -Si _debug=1_ est spécifié, le composant exporte quelques paramètres -destinés au débogage et aux réglages. Par défaut, ces paramètres ne sont pas -exportés, pour économiser la mémoire partagée et éviter d'encombrer la -liste des paramètres. - -=== Le désinstaller ----- -halcmd: unloadrt pid ----- - -=== Pins - -Les trois principales pins sont: - - - _(float) pid..command_ -- La position désirée (consigne), - telle que commandée par un autre composant système. - - _(float) pid..feedback_ -- La position actuelle (mesure), - telle que mesurée par un organe de rétroaction comme un codeur de position. - - _(float) pid..output_ -- Une commande de vitesse qui tend - à aller de la position actuelle à la position désirée. - -Pour une boucle de position, _command_ et _feedback_ sont en unités de -longueur. Pour un axe linéaire, cela pourrait être des pouces, mm, -mètres, ou tout autre unité pertinente. De même pour un axe angulaire, -ils pourraient être des degrés, radians, etc. Les unités sur la pin -_output_ représentent l'écart nécessaire pour que la rétroaction -coïncide avec la commande. Pour une boucle de position, _output_ est -une vitesse exprimée en pouces/seconde, mm/seconde, degrés/seconde, -etc. Les unités de temps sont toujours des secondes et les unités de -vitesses restent cohérentes avec les unités de longueur. Si la commande -et la rétroaction sont en mètres, la sortie sera en mètres par seconde. - -Chaque boucle PID a deux autres pins qui sont utilisées pour -surveiller ou contrôler le fonctionnement général du composant. - - - _(float) pid..error_ -- Egal à _.command_ moins - _.feedback_. (consigne - mesure) - - _(bit) pid..enable_ -- Un bit qui active la boucle. Si - _.enable_ est faux, tous les intégrateurs sont remis à zéro et les - sorties sont forcées à zéro. Si _.enable_ est vrai, la boucle opère -normalement. - -Pins utilisé pour signaler la saturation. La saturation se produit lorsque -la sortie de le bloc PID est à son maximum ou limiter au minimum. - - - _(bit) pid..saturated_ -- True lorsque la sortie est saturée. - - _(float) pid..saturated_s_ -- Le temps de la sortie a été saturé. - - _(s32) pid..saturated_count_ -- Le temps de la sortie a été saturé. - -=== Paramètres - -Le gain PID, les limites et autres caractéristiques _accordables_ de -la boucle sont implémentés comme des paramètres. - - - _(float) pid..Pgain_ -- Gain de la composante proportionnelle. - - _(float) pid..Igain_ -- Gain de la composante intégrale. - - _(float) pid..Dgain_ -- Gain de la composante dérivée. - - _(float) pid..bias_ -- Constante du décalage de sortie. - - _(float) pid..FF0_ -- Correcteur prédictif d'ordre zéro -(retour vitesse) sortie proportionnelle à la commande (position). - - _(float) pid..FF1_ -- Correcteur prédictif de premier ordre -(retour vitesse) sortie proportionnelle à la dérivée de la commande (vitesse). - - _(float) pid..FF2_ -- Correcteur prédictif de second ordre -(retour vitesse) sortie proportionnelle à la dérivée seconde de la -commande (accélération). -footnote:[FF2 n'est actuellement pas implémenté, mais il pourrait l'être. -Considérez cette note comme un “FIXME†dans le code.] - - _(float) pid..deadband_ -- Définit la bande morte tolérable. - - _(float) pid..maxerror_ -- Limite d'erreur. - - _(float) pid..maxerrorI_ -- Limite d'erreur intégrale. - - _(float) pid..maxerrorD_ -- Limite d'erreur dérivée. - - _(float) pid..maxcmdD_ -- Limite de la commande dérivée. - - _(float) pid..maxcmdDD_ -- Limite de la commande dérivée seconde. - - _(float) pid..maxoutput_ -- Limite de la valeur de sortie. - -Toutes les limites _max???,_ sont implémentées de sorte que si la -valeur de ce paramètre est à -zéro, il n'y a pas de limite. - -Si _debug=1_ est spécifié quand le composant est installé, quatre -paramètres supplémentaires seront exportés: - - - _(float) pid..errorI_ -- Intégrale de l'erreur. - - _(float) pid..errorD_ -- Dérivée de l'erreur. - - _(float) pid..commandD_ -- Dérivée de la commande. - - _(float) pid..commandDD_ -- Dérivée seconde de la commande. - -=== Fonctions - -Le composant exporte une fonction pour chaque boucle PID. Cette -fonction exécute tous les calculs nécessaires à la boucle. Puisque -chaque boucle a sa propre fonction, les différentes boucles peuvent -être incluses dans les différents threads et exécutées à différents -rythmes. - - - _(funct) pid..do_pid_calcs_ -- Exécute tous les calculs - d'une seule boucle PID. - -Si vous voulez comprendre exactement l'algorithme utilisé pour -calculer la sortie d'une boucle PID, référez vous à la figure -<>, les commentaires au début du source -_linuxcnc/src/hal/components/pid.c_ et bien sûr, au code lui même. Les -calculs de boucle sont dans la fonction C _calc_pid()_. - -[[sec:Codeur-simul]] -== Codeur simulé -(((sim-encoder))) - -Le codeur simulé est exactement la même chose qu'un codeur. Il produit -des impulsions en quadrature avec une impulsion d'index, à une vitesse -contrôlée par une pin de HAL. Surtout utile pour les essais. - -=== L'installer ----- -halcmd: loadrt sim-encoder num_chan= ----- - -__ est le nombre de canaux à simuler. Si rien n'est spécifié, un seul -canal sera installé. Le nombre maximum de canaux est de 8 (comme -défini par MAX_CHAN dans sim_encoder.c). - -=== Le désinstaller ----- -halcmd: unloadrt sim-encoder ----- - -=== Pins - - - _(float) sim-encoder..speed_ -- La vitesse commandée pour - l'arbre simulé. - - _(bit) sim-encoder..phase-A_ -- Sortie en quadrature. - - _(bit) sim-encoder..phase-B_ -- Sortie en quadrature. - - _(bit) sim-encoder..phase-Z_ -- Sortie de l'impulsion d'index. - -Quand _.speed_ est positive, _.phase-A_ mène _.phase-B_. - -=== Paramètres - - - _(u32) sim-encoder..ppr_ -- Impulsions par tour d'arbre. - - _(float) sim-encoder..scale_ -- Facteur d'échelle pour - _speed_. Par défaut est de 1.0, ce qui signifie que _speed_ est en - tours par seconde. Passer l'échelle à 60 pour des tours par - minute, la passer à 360 pour des degrés par seconde, à 6.283185 pour - des radians par seconde, etc. - -Noter que les impulsions par tour ne sont pas identiques aux valeurs -de comptage par tour (counts). Une impulsion est un cycle complet de -quadrature. La plupart des codeurs comptent quatre fois pendant un -cycle complet. - -=== Fonctions - -Le composant exporte deux fonctions. Chaque fonction affecte tous les -codeurs simulés. - - - _(funct) sim-encoder.make-pulses_ -- Fonction haute vitesse de - génération d'impulsions en quadrature - (non flottant). - - _(funct) sim-encoder.update-speed_ -- Fonction basse vitesse de - lecture de _speed_, de mise à l'échelle et d'activation de - _make-pulses_. - -[[sec:Anti-rebond]] -== Anti-rebond -(((Anti-rebond))) - -L'anti-rebond est un composant temps réel capable de filtrer les -rebonds créés par les contacts mécaniques. Il est également très utile -dans d'autres applications, où des impulsions très courtes doivent être -supprimées. - -=== L'installer ----- -halcmd: loadrt debounce cfg= ----- - -__ est une série d'entiers décimaux séparés par des -espaces. Chaque -chiffre installe un groupe de filtres anti-rebond identiques, le -chiffre détermine le nombre de filtres dans le groupe. Par exemple: ----- -halcmd: loadrt debounce cfg=1,4,2 ----- - -va installer trois groupes de filtres. Le groupe 0 contient un filtre, -le groupe 1 en contient quatre et le groupe 2 en contient deux. La -valeur par défaut de __ est _1_ qui installe un seul -groupe contenant un seul filtre. Le nombre -maximum de groupes est de 8 (comme définit par MAX_GROUPS dans -debounce.c). Le nombre maximum de filtres dans un groupe est limité -seulement par l'espace de la mémoire partagée. Chaque groupe est -complétement indépendant. Tous les filtres dans un même groupe sont -identiques et ils sont tous mis à jour par la même fonction, au même - instant. Dans les descriptions qui suivent, __ est le numéro du -groupe et __ est le numéro du filtre dans le groupe. Le premier -filtre est le -filtre 0 dans le groupe 0. - -=== Le désinstaller ----- -halcmd: unloadrt debounce ----- - -=== Pins - -Chaque filtre individuel a deux pins. - - - _(bit) debounce...in_ -- Entrée du filtre __ du groupe __. - - _(bit) debounce...out_ -- Sortie du filtre __ du groupe __. - -=== Paramètres - -Chaque groupe de filtre a un paramètre. footnote:[Chaque filtre -individuel a également une variable d'état interne. -C'est un switch du compilateur qui peut exporter cette variable comme -un paramètre. Ceci est prévu pour des essais et devrait juste être un -gaspillage de mémoire partagée dans des circonstances normales.] - - - _(s32) debounce..delay_ -- Délai de filtrage pour tous les filtres du -groupe __. - -Le délai du filtre est dans l'unité de la période du thread. Le délai -minimum est de zéro. La sortie d'un filtre avec un délai de zéro, suit -exactement son entrée, il ne filtre rien. Plus le délai augmente, plus -larges seront les impulsions rejetées. Si le délai est de 4, toutes les -impulsions égales ou inférieures à quatre périodes du thread, seront -rejetées. - -=== Fonctions - -Chaque groupe de filtres exporte une fonction qui met à jour tous les -filtres de ce groupe _simultanément_. Différents groupes de filtres -peuvent être mis à jour dans différents threads et à différentes -périodes. - - - _(funct) debounce._ -- Met à jour tous les filtres du groupe __. - -[[sec:Siggen]] -== Siggen -(((siggen))) - -Siggen est un composant temps réel qui génère des signaux carrés, -triangulaires et sinusoïdaux. Il est principalement utilisé pour les -essais. - -=== L'installer ----- -halcmd: loadrt siggen [num_chan=] ----- - -__ est le nombre de générateurs de signaux à installer. Si -_numchan_ n'est pas spécifié, un seul générateur de signaux sera -installé. Le -nombre maximum de générateurs est de 16 (comme définit par MAX_CHAN -dans siggen.c). Chaque générateur est complétement indépendant. Dans -les descriptions qui suivent, __ est le numéro d'un générateur -spécifique. Les numéros de générateur -commencent à 0. - -=== Le désinstaller ----- -halcmd: unloadrt siggen ----- - -=== Pins - -Chaque générateur a cinq pins de sortie. - - - _(float) siggen..sine_ -- Sortie de l'onde sinusoïdale. - - _(float) siggen..cosine_ -- Sortie de l'onde cosinusoïdale. - - _(float) siggen..sawtooth_ -- Sortie de l'onde en dents de scie. - - _(float) siggen..triangle_ -- Sortie de l'onde triangulaire. - - _(float) siggen..square_ -- Sortie de l'onde carrée. - -Les cinq sorties ont les mêmes fréquence, amplitude et offset. - -Trois pins de contrôle s'ajoutent aux pins de sortie: - - - _(float) siggen..frequency_ -- Réglage de la fréquence en - Hertz, par défaut la valeur est de 1 Hz. - - _(float) siggen..amplitude_ -- Réglage de l'amplitude de pic - des signaux de sortie, par défaut, est à 1. - - _(float) siggen..offset_ -- Réglage de la composante continue - des signaux de sortie, par défaut, est à 0. - -Par exemple, si _siggen.0.amplitude_ est à 1.0 et _siggen.0.offset_ -est à 0.0, les sorties oscilleront entre -1.0 et +1.0. Si -_siggen.0.amplitude_ est à 2.5 et _siggen.0.offset_ est à 10.0, les -sorties oscilleront entre 7.5 et 12.5. - -=== Paramètres - -Aucun. footnote:[Dans les versions antérieures à la 2.1, fréquence, -amplitude et offset -étaient des paramètres. Ils ont été modifiés en pins pour permettre le -contrôle par d'autres composants.] - -=== Fonctions - - - _(funct) siggen..update_ -- Calcule les nouvelles valeurs pour - les cinq sorties. - -[[sec:lut5]] -== lut5(((lut5))) - -Le composant lut5 est un composant de logique à 5 entrées basé sur une table -de vérité. - -* 'lut5' ne requiert pas un thread à virgule flottante. - -.Installation - ----- -loadrt lut5 [count=N|names=name1[,name2...]] -addf lut5.N servo-thread | base-thread -setp lut5.N.function 0xN ----- - -.Calcul de la valeur de la fonction - -Pour calculer la valeur hexadécimale de la fonction, démarrer par le haut et -entrer un 1 où un 0 pour indiquer si cette colonne devra être vraie où fausse. -Ensuite écrire les valeurs en dessous, d'abord dans la colonne de sortie en -commençant par le haut puis en écrivant les valeurs correspondantes de la droite -vers la gauche. Le nombre binaire sera celui contenu dans la colonne de sortie. -Utiliser une calculette comme celle fournie sous Ubuntu, entrer ce nombre -binaire et le convertir en hexadécimal pour obtenir la valeur pour la fonction. - -.Table de vérité -[width="50%",cols="6*^",options="header"] -|==================================== -|Bit 4|Bit 3|Bit 2|Bit 1|Bit 0|Output -|0|0|0|0|0| -|0|0|0|0|1| -|0|0|0|1|0| -|0|0|0|1|1| -|0|0|1|0|0| -|0|0|1|0|1| -|0|0|1|1|0| -|0|0|1|1|1| -|0|1|0|0|0| -|0|1|0|0|1| -|0|1|0|1|0| -|0|1|0|1|1| -|0|1|1|0|0| -|0|1|1|0|1| -|0|1|1|1|0| -|0|1|1|1|1| -|1|0|0|0|0| -|1|0|0|0|1| -|1|0|0|1|0| -|1|0|0|1|1| -|1|0|1|0|0| -|1|0|1|0|1| -|1|0|1|1|0| -|1|0|1|1|1| -|1|1|0|0|0| -|1|1|0|0|1| -|1|1|0|1|0| -|1|1|0|1|1| -|1|1|1|0|0| -|1|1|1|0|1| -|1|1|1|1|0| -|1|1|1|1|1| -|==================================== - -.Un exemple de fonction. - -Dans la table suivante nous avons sélectionné l'état de sortie pour chaque ligne -que nous souhaitons vraie. - -.Table de vérité -[width="50%",cols="6*^",options="header"] -|==================================== -|Bit 4|Bit 3|Bit 2|Bit 1|Bit 0|Output -|0|0|0|0|0|0 -|0|0|0|0|1|1 -|0|0|0|1|0|0 -|0|0|0|1|1|1 -|==================================== - -En regardant la colonne de sortie de notre exemple, nous voulons que la sortie -soit active quand le bit 0 OU le bit 0 ET le bit 1 soient actifs et rien d'autre. -Le nombre binaire est 'b1010' (rotation de la sortie de 90° en sens horaire). -Entrer ce nombre dans une calculette, le convertir en hexadécimal et le nombre -demandé pour cette fonction est '0xa'. Le préfixe '0x' étant celui des nombres -hexadécimaux. diff --git a/docs/src/hal/tools.txt b/docs/src/hal/tools.txt deleted file mode 100644 index d70c94c17f6..00000000000 --- a/docs/src/hal/tools.txt +++ /dev/null @@ -1,82 +0,0 @@ -= HAL Tools - -[[cha:hal-tools]] (((HAL Tools))) - -== Halcmd[[sec:Halcmd]] - -Halcmd is a command line tool for manipulating the HAL. There is a -rather complete man page for halcmd, which will be installed if you -have installed LinuxCNC from either source or a package. If you have -compiled LinuxCNC for “run-in-placeâ€, the man page is not installed, but it -is accessible. From the main LinuxCNC directory, do: - ----- -man -M docs/man halcmd ----- - -The <> has a number of examples of halcmd -usage, and is a good tutorial for halcmd. - -== Halmeter[[sec:Halmeter]](((halmeter))) - -Halmeter is a 'voltmeter' for the HAL. It lets you look at a pin, -signal, or parameter, and displays the current value of that item. It -is pretty simple to use. Start it by typing *halmeter* in an X -windows shell. Halmeter is a GUI application. It will pop up -a small window, with two buttons labeled 'Select' and 'Exit'. Exit is -easy - it shuts down the program. Select pops up a larger window, with -three tabs. One tab lists all the pins currently defined in the HAL. -The next lists all the signals, and the last tab lists all the -parameters. Click on a tab, then click on a pin/signal/parameter. Then -click on 'OK'. The lists will disappear, and the small window will -display the name and value of the selected item. The display is updated -approximately 10 times per second. If you click 'Accept' instead of -'OK', the small window will display the name and value of the selected -item, but the large window will remain on the screen. This is -convenient if you want to look at a number of different items quickly. - -You can have many halmeters running at the same time, if you want to -monitor several items. If you want to launch a halmeter without tying -up a shell window, type 'halmeter &' to run it in the background. -You can also make halmeter start -displaying a specific item immediately, by adding 'pin|sig|par[am] -' to the command line. It will display the pin, signal, or -parameter - as soon as it starts. (If there is no such item, it will simply -start normally.) And finally, if you specify an item to display, you -can add '-s' before the pin|sig|param to tell halmeter to use a small -window. The item name will be displayed in the title bar instead of -under the value, and there will be no buttons. Useful when you want a -lot of meters in a small amount of screen space. - -Refer to <> section for more -information. - -Halmeter can be loaded from a terminal or from Axis. Halmeter is -faster than Halshow at displaying values. Halmeter has two windows, one -to pick the pin, signal, or parameter to monitor and one that displays -the value. Multiple Halmeters can be open at the same time. If you use -a script to open multiple Halmeters you can set the position of each -one with -g X Y relative to the upper left corner of your screen. -For example: - ----- -loadusr halmeter pin hm2.0.stepgen.00.velocity-fb -g 0 500 ----- - -See the man page for more options. See section <>. - -.Halmeter - -image::images/hal-meter01.png[] - -image::images/hal-meter02.png[] - -== Halscope[[sec:Halscope]] - -Halscope is an 'oscilloscope' for the HAL. It lets you capture the -value of pins, signals, and parameters as a function of time. Complete -operating instructions should be located here eventually. For now, -refer to section <> in the tutorial chapter, -which explains the basics. - diff --git a/docs/src/hal/tools_es.txt b/docs/src/hal/tools_es.txt deleted file mode 100644 index f6ea2cafc66..00000000000 --- a/docs/src/hal/tools_es.txt +++ /dev/null @@ -1,95 +0,0 @@ -= HAL Tools - -[[cha:hal-tools]] (((HAL Tools))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Halcmd[[sec:Halcmd]] - -Halcmd is a command line tool for manipulating the HAL. There is a -rather complete man page for halcmd, which will be installed if you -have installed LinuxCNC from either source or a package. If you have -compiled LinuxCNC for “run-in-placeâ€, the man page is not installed, but it -is accessible. From the main LinuxCNC directory, do: - ----- -man -M docs/man halcmd ----- - -The <> has a number of examples of halcmd -usage, and is a good tutorial for halcmd. - -== Halmeter[[sec:Halmeter]](((halmeter))) - -Halmeter is a 'voltmeter' for the HAL. It lets you look at a pin, -signal, or parameter, and displays the current value of that item. It -is pretty simple to use. Start it by typing *halmeter* in an X -windows shell. Halmeter is a GUI application. It will pop up -a small window, with two buttons labeled 'Select' and 'Exit'. Exit is -easy - it shuts down the program. Select pops up a larger window, with -three tabs. One tab lists all the pins currently defined in the HAL. -The next lists all the signals, and the last tab lists all the -parameters. Click on a tab, then click on a pin/signal/parameter. Then -click on 'OK'. The lists will disappear, and the small window will -display the name and value of the selected item. The display is updated -approximately 10 times per second. If you click 'Accept' instead of -'OK', the small window will display the name and value of the selected -item, but the large window will remain on the screen. This is -convenient if you want to look at a number of different items quickly. - -You can have many halmeters running at the same time, if you want to -monitor several items. If you want to launch a halmeter without tying -up a shell window, type 'halmeter &' to run it in the background. -You can also make halmeter start -displaying a specific item immediately, by adding 'pin|sig|par[am] -' to the command line. It will display the pin, signal, or -parameter - as soon as it starts. (If there is no such item, it will simply -start normally.) And finally, if you specify an item to display, you -can add '-s' before the pin|sig|param to tell halmeter to use a small -window. The item name will be displayed in the title bar instead of -under the value, and there will be no buttons. Useful when you want a -lot of meters in a small amount of screen space. - -Refer to <> section for more -information. - -Halmeter can be loaded from a terminal or from Axis. Halmeter is -faster than Halshow at displaying values. Halmeter has two windows, one -to pick the pin, signal, or parameter to monitor and one that displays -the value. Multiple Halmeters can be open at the same time. If you use -a script to open multiple Halmeters you can set the position of each -one with -g X Y relative to the upper left corner of your screen. -For example: - ----- -loadusr halmeter pin hm2.0.stepgen.00.velocity-fb -g 0 500 ----- - -See the man page for more options. See section <>. - -.Halmeter - -image::images/hal-meter01.png[] - -image::images/hal-meter02.png[] - -== Halscope[[sec:Halscope]] - -Halscope is an 'oscilloscope' for the HAL. It lets you capture the -value of pins, signals, and parameters as a function of time. Complete -operating instructions should be located here eventually. For now, -refer to section <> in the tutorial chapter, -which explains the basics. - diff --git a/docs/src/hal/tutorial.txt b/docs/src/hal/tutorial.txt deleted file mode 100644 index 8b66b62cd89..00000000000 --- a/docs/src/hal/tutorial.txt +++ /dev/null @@ -1,1010 +0,0 @@ -= Advanced HAL Tutorial - -[[cha:HAL-tutorial]] (((HAL Tutorial))) - -== Introduction[[sec:Tutorial-Intro]] - -Configuration moves from theory to device -- HAL device that is. For -those who have had just a bit of computer programming, this section is -the 'Hello World' of the HAL. Halrun can be used to create a working -system. It is a command line or text file tool for configuration and -tuning. The following examples illustrate its setup and operation. - -=== Notation - -Terminal commands are shown without the system prompt unless you are -running 'HAL'. The terminal window is in 'Applications/Accessories' -from the main Ubuntu menu bar. - -.Terminal Command Example ----- -me@computer:~linuxcnc$ halrun -(will be shown like the following line) -halrun - -(the halcmd: prompt will be shown when running HAL) -halcmd: loadrt debounce -halcmd: show pin ----- - -=== Tab-completion - -Your version of halcmd may include tab-completion. Instead of -completing file names as a shell does, it completes commands with HAL -identifiers. You will have to type enough letters for a unique match. -Try pressing tab after starting a HAL command: - -.Tab Completion ----- -halcmd: loa -halcmd: load -halcmd: loadrt -halcmd: loadrt deb -halcmd: loadrt debounce ----- - -=== The RTAPI environment - -RTAPI stands for Real Time Application Programming Interface. Many HAL -components work in realtime, and all HAL components store data in -shared memory so realtime components can access it. Normal Linux does -not support realtime programming or the type of shared memory that HAL -needs. Fortunately there are realtime operating systems (RTOS's) that -provide the necessary extensions to Linux. Unfortunately, each RTOS -does things a little differently. - -To address these differences, the LinuxCNC team came up with RTAPI, which -provides a consistent way for programs to talk to the RTOS. If you are -a programmer who wants to work on the internals of LinuxCNC, you may want to -study 'linuxcnc/src/rtapi/rtapi.h' to understand the API. But if you are a -normal person all you need to -know about RTAPI is that it (and the RTOS) needs to be loaded into the -memory of your computer before you do anything with HAL. - -== A Simple Example[[sec:Tutorial-Simple-Example]] - -=== Loading a component - -For this tutorial, we are going to assume that you have successfully -installed the Live CD and, if using a RIP footnote:[Run In Place, when the -source files have been downloaded to a user directory.], invoked the -'rip-environment' script to prepare your shell. -In that case, all you need to do is -load the required RTOS and RTAPI modules into memory. Just run the -following command from a terminal window: - -// NOTE! add link to rip-environment explanation - -.Loading HAL ----- -cd linuxcnc -halrun -halcmd: ----- - -With the realtime OS and RTAPI loaded, we can move into the first -example. Notice that the prompt is now shown as 'halcmd:'. -This is because subsequent commands will be interpreted as HAL commands, -not shell commands. - -For the first example, we will use a HAL component called 'siggen', -which is a simple signal generator. A complete description of the -'siggen' component can be found in the <> section of -this Manual. -It is a realtime component, implemented as a Linux kernel module. To -load 'siggen' use the HAL command 'loadrt'. - -.Loading siggen ----- -halcmd: loadrt siggen ----- - -=== Examining the HAL - -Now that the module is loaded, it is time to introduce 'halcmd' , the -command line tool used to configure the HAL. This tutorial will -introduce some halcmd features, for a more complete description try -'man halcmd', or see the reference in <> -section of this document. The first -halcmd feature is the 'show' command. This command displays information -about the current state of the HAL. To show all installed components: - -.Show Components ----- -halcmd: show comp - -Loaded HAL Components: -ID Type Name PID State - 3 RT siggen ready - 2 User halcmd2177 2177 ready ----- - -Since 'halcmd' itself is a HAL component, it will always show up in -the list. The number after halcmd in the component list is the process ID. -It is possible to run more than one copy of halcmd at the same time (in -different windows for example), so the PID is added to the end of the -name to make it unique. The list also shows the 'siggen' component -that we installed in the previous step. The 'RT' under 'Type' indicates -that 'siggen' is a realtime component. The 'User' under 'Type' indicates -it is a user space component. - -Next, let's see what pins 'siggen' makes available: - -.Show Pins ----- -halcmd: show pin - -Component Pins: -Owner Type Dir Value Name - 3 float IN 1 siggen.0.amplitude - 3 bit OUT FALSE siggen.0.clock - 3 float OUT 0 siggen.0.cosine - 3 float IN 1 siggen.0.frequency - 3 float IN 0 siggen.0.offset - 3 float OUT 0 siggen.0.sawtooth - 3 float OUT 0 siggen.0.sine - 3 float OUT 0 siggen.0.square - 3 float OUT 0 siggen.0.triangle ----- - -This command displays all of the pins in the current HAL. A complex system -could have dozens or hundreds of pins. But right now there are only -nine pins. All eight of these pins are floating point, and carry data -out of the 'siggen' component. Since we have not yet executed the code -contained within the component, some the pins have a value of zero. - -The next step is to look at parameters: - -.Show Parameters ----- -halcmd: show param - -Parameters: -Owner Type Dir Value Name - 3 s32 RO 0 siggen.0.update.time - 3 s32 RW 0 siggen.0.update.tmax ----- - -The 'show param' command shows all the parameters in the HAL. Right now -each parameter has the default value it was given when the component -was loaded. Note the column labeled 'Dir'. The parameters labeled '-W' -are writable ones that are never changed by the component itself, -instead they are meant to be changed by the user to control the - component. We will see how to do this later. Parameters labeled 'R-' -are read only parameters. They can be changed only by the component. - Finally, parameter labeled 'RW' are read-write parameters. That means -that they are changed by the - component, but can also be changed by the user. Note: the parameters -'siggen.0.update.time' and 'siggen.0.update.tmax' are for debugging -purposes, and won't be covered in this section. - -Most realtime components export one or more functions to actually run -the realtime code they contain. Let's see what function(s) 'siggen' -exported: - -.Show Functions ----- -halcmd: show funct - -Exported Functions: -Owner CodeAddr Arg FP Users Name - 00003 f801b000 fae820b8 YES 0 siggen.0.update ----- - -The siggen component exported a single function. It requires floating -point. It is not currently linked to any threads, so 'users' is -zero. - -=== Making realtime code run - -To actually run the code contained in the function 'siggen.0.update', -we need a realtime thread. The component called 'threads' that is used -to create a new thread. Lets create a thread called 'test-thread' with -a period of 1 ms (1,000 us or 1,000,000 ns): - ----- -halcmd: loadrt threads name1=test-thread period1=1000000 ----- - -Let's see if that worked: - -.Show Threads ----- -halcmd: show thread - -Realtime Threads: - Period FP Name ( Time, Max-Time ) - 999855 YES test-thread ( 0, 0 ) ----- - -It did. The period is not exactly 1,000,000 ns because of hardware -limitations, but we have a thread that runs at approximately the -correct rate, and which can handle floating point functions. The next -step is to connect the function to the thread: - -.Add Function ----- -halcmd: addf siggen.0.update test-thread ----- - -Up till now, we've been using 'halcmd' only to look at the HAL. -However, this time we used the 'addf' (add function) command to -actually change something in the HAL. We -told 'halcmd' to add the function 'siggen.0.update' to the thread -'test-thread', and if we look at the thread list again, we see that it -succeeded: - ----- -halcmd: show thread - -Realtime Threads: - Period FP Name ( Time, Max-Time ) - 999855 YES test-thread ( 0, 0 ) - 1 siggen.0.update ----- - -There is one more step needed before the 'siggen' component starts -generating signals. When the HAL is first started, -the thread(s) are not actually running. This is to allow you to -completely configure the system before the realtime code starts. Once -you are happy with the configuration, you can start the realtime code -like this: - ----- -halcmd: start ----- - -Now the signal generator is running. Let's look at its output pins: - ----- -halcmd: show pin - -Component Pins: -Owner Type Dir Value Name - 3 float IN 1 siggen.0.amplitude - 3 bit OUT FALSE siggen.0.clock - 3 float OUT -0.1640929 siggen.0.cosine - 3 float IN 1 siggen.0.frequency - 3 float IN 0 siggen.0.offset - 3 float OUT -0.4475303 siggen.0.sawtooth - 3 float OUT 0.9864449 siggen.0.sine - 3 float OUT -1 siggen.0.square - 3 float OUT -0.1049393 siggen.0.triangle ----- - -And let's look again: - ----- -halcmd: show pin - -Component Pins: -Owner Type Dir Value Name - 3 float IN 1 siggen.0.amplitude - 3 bit OUT FALSE siggen.0.clock - 3 float OUT 0.0507619 siggen.0.cosine - 3 float IN 1 siggen.0.frequency - 3 float IN 0 siggen.0.offset - 3 float OUT -0.516165 siggen.0.sawtooth - 3 float OUT 0.9987108 siggen.0.sine - 3 float OUT -1 siggen.0.square - 3 float OUT 0.03232994 siggen.0.triangle ----- - -We did two 'show pin' commands in quick succession, and you can see -that the outputs are no longer zero. -The sine, cosine, sawtooth, and triangle outputs are -changing constantly. The square output is also working, however it -simply switches from +1.0 to -1.0 every cycle. - -=== Changing Parameters - -The real power of HAL is that you can change things. For example, we -can use the 'setp' command to set the value of a parameter. Let's -change the amplitude -of the signal generator from 1.0 to 5.0: - -.Set Pin ----- -halcmd: setp siggen.0.amplitude 5 ----- - -.Check the parameters and pins again ----- -halcmd: show param - -Parameters: -Owner Type Dir Value Name - 3 s32 RO 1754 siggen.0.update.time - 3 s32 RW 16997 siggen.0.update.tmax - -halcmd: show pin - -Component Pins: -Owner Type Dir Value Name - 3 float IN 5 siggen.0.amplitude - 3 bit OUT FALSE siggen.0.clock - 3 float OUT 0.8515425 siggen.0.cosine - 3 float IN 1 siggen.0.frequency - 3 float IN 0 siggen.0.offset - 3 float OUT 2.772382 siggen.0.sawtooth - 3 float OUT -4.926954 siggen.0.sine - 3 float OUT 5 siggen.0.square - 3 float OUT 0.544764 siggen.0.triangle ----- - -Note that the value of parameter 'siggen.0.amplitude' has changed to -5, and that the pins now have larger values. - -=== Saving the HAL configuration - -Most of what we have done with 'halcmd' so far has simply been viewing -things with the 'show' command. However two of the commands actually -changed things. As we -design more complex systems with HAL, we will use many commands to -configure things just the way we want them. HAL has the memory of an -elephant, and will retain that configuration until we shut it down. But -what about next time? We don't want to manually enter a bunch of -commands every time we want to use the system. We can save the -configuration of the entire HAL with a single command: - -.Save ----- -halcmd: save -# components -loadrt threads name1=test-thread period1=1000000 -loadrt siggen -# pin aliases -# signals -# nets -# parameter values -setp siggen.0.update.tmax 14687 -# realtime thread/function links -addf siggen.0.update test-thread ----- - -The output of the 'save' command is a sequence of HAL commands. If -you start with an 'empty' -HAL and run all these commands, you will get the configuration that -existed when the 'save' command was issued. To save these commands -for later use, we simply -redirect the output to a file: - -.Save to a file ----- -halcmd: save all saved.hal ----- - -=== Exiting halrun - -When you're finished with your HAL session type 'exit' at the 'halcmd:' -prompt. This will return you to the system prompt and close down the HAL -session. Do not simply close the terminal window without shutting down -the HAL session. - -.Exit HAL ----- -halcmd: exit ----- - -=== Restoring the HAL configuration - -To restore the HAL configuration stored in 'saved.hal', we need to -execute all of those HAL commands. To do that, we use '-f ' -which reads commands from a file, and '-I' (upper case i) which shows -the halcmd prompt after executing the commands: - -.Run a Saved File ----- -halrun -I -f saved.hal ----- - -Notice that there is not a 'start' command in saved.hal. It's -necessary to issue it again (or edit saved.hal to add it there). - -=== Removing HAL from memory - -If an unexpected shut down of a HAL session occurs you might have to -unload HAL before another session can begin. To do this type the -following command in a terminal window. - -.Removing HAL ----- -halrun -U ----- - -== Halmeter[[sec:Tutorial-Halmeter]](((Halmeter,Tutorial-Halmeter))) - -You can build very complex HAL systems without ever using a graphical -interface. However there is something satisfying about seeing the -result of your work. The first and simplest GUI tool for the HAL is -halmeter. It is a very simple program that is the HAL equivalent of the -handy Fluke multimeter (or Simpson analog meter for the old timers). - -We will use the siggen component again to check out halmeter. If you -just finished the previous example, then you can load siggen using the -saved file. If not, we can load it just like we did before: - ----- -halrun -halcmd: loadrt siggen -halcmd: loadrt threads name1=test-thread period1=1000000 -halcmd: addf siggen.0.update test-thread -halcmd: start -halcmd: setp siggen.0.amplitude 5 ----- - -At this point we have the siggen component loaded and running. It's -time to start halmeter. - -.Starting Halmeter ----- -halcmd: loadusr halmeter ----- - -The first window you will see is the 'Select Item to Probe' window. - -.Halmeter Select Window[[cap:HAL-Meter-Select-Window]] - -image::images/halmeter-select.png[align="center"] - -This dialog has three tabs. The first tab displays all of the HAL pins -in the system. The second one displays all the signals, and the third -displays all the parameters. We would like to look at the pin -'siggen.0.cosine' first, so click on it then click the 'Close' button. -The probe -selection dialog will close, and the meter looks something like the -following figure. - -.Halmeter[[cap:Halmeter]] - -image::images/halmeter-1.png[align="center"] - -To change what the meter displays press the 'Select' button which -brings back the 'Select Item to Probe' window. - -You should see the value changing as siggen generates its cosine wave. -Halmeter refreshes its display about 5 times per second. - -To shut down halmeter, just click the exit button. - -If you want to look at more than one pin, signal, or parameter at a -time, you can just start more halmeters. The halmeter window was -intentionally made very small so you could have a lot of them on the -screen at once. - -== Stepgen Example(((stepgen))) - -Up till now we have only loaded one HAL component. But the whole idea -behind the HAL is to allow you to load and connect a number of simple -components to make up a complex system. The next example will use two -components. - -Before we can begin building this new example, we want to start with a -clean slate. If you just finished one of the previous examples, we need -to remove the all components and reload the RTAPI and HAL libraries. - ----- -halcmd: exit ----- - -=== Installing the components - -Now we are going to load the step pulse generator component. For a -detailed description of this component refer to the stepgen section of the -Integrator Manual. In this example we will use the 'velocity' control -type of stepgen. For now, we can skip the details, and just run the -following commands. - ----- -halrun -halcmd: loadrt stepgen step_type=0,0 ctrl_type=v,v -halcmd: loadrt siggen -halcmd: loadrt threads name1=fast fp1=0 period1=50000 name2=slow period2=1000000 ----- - -The first command loads two step generators, both configured to -generate stepping type 0. The second command loads our old friend -siggen, and the third one creates two threads, a fast one with a period -of 50 microseconds and a slow one with a period of 1 millisecond. The fast -thread doesn't support floating point functions. - -As before, we can use 'halcmd show' to take a look at the HAL. This -time we have a lot more pins and parameters than before: - ----- -halcmd: show pin - -Component Pins: -Owner Type Dir Value Name - 4 float IN 1 siggen.0.amplitude - 4 bit OUT FALSE siggen.0.clock - 4 float OUT 0 siggen.0.cosine - 4 float IN 1 siggen.0.frequency - 4 float IN 0 siggen.0.offset - 4 float OUT 0 siggen.0.sawtooth - 4 float OUT 0 siggen.0.sine - 4 float OUT 0 siggen.0.square - 4 float OUT 0 siggen.0.triangle - 3 s32 OUT 0 stepgen.0.counts - 3 bit OUT FALSE stepgen.0.dir - 3 bit IN FALSE stepgen.0.enable - 3 float OUT 0 stepgen.0.position-fb - 3 bit OUT FALSE stepgen.0.step - 3 float IN 0 stepgen.0.velocity-cmd - 3 s32 OUT 0 stepgen.1.counts - 3 bit OUT FALSE stepgen.1.dir - 3 bit IN FALSE stepgen.1.enable - 3 float OUT 0 stepgen.1.position-fb - 3 bit OUT FALSE stepgen.1.step - 3 float IN 0 stepgen.1.velocity-cmd - -halcmd: show param - -Parameters: -Owner Type Dir Value Name - 4 s32 RO 0 siggen.0.update.time - 4 s32 RW 0 siggen.0.update.tmax - 3 u32 RW 0x00000001 stepgen.0.dirhold - 3 u32 RW 0x00000001 stepgen.0.dirsetup - 3 float RO 0 stepgen.0.frequency - 3 float RW 0 stepgen.0.maxaccel - 3 float RW 0 stepgen.0.maxvel - 3 float RW 1 stepgen.0.position-scale - 3 s32 RO 0 stepgen.0.rawcounts - 3 u32 RW 0x00000001 stepgen.0.steplen - 3 u32 RW 0x00000001 stepgen.0.stepspace - 3 u32 RW 0x00000001 stepgen.1.dirhold - 3 u32 RW 0x00000001 stepgen.1.dirsetup - 3 float RO 0 stepgen.1.frequency - 3 float RW 0 stepgen.1.maxaccel - 3 float RW 0 stepgen.1.maxvel - 3 float RW 1 stepgen.1.position-scale - 3 s32 RO 0 stepgen.1.rawcounts - 3 u32 RW 0x00000001 stepgen.1.steplen - 3 u32 RW 0x00000001 stepgen.1.stepspace - 3 s32 RO 0 stepgen.capture-position.time - 3 s32 RW 0 stepgen.capture-position.tmax - 3 s32 RO 0 stepgen.make-pulses.time - 3 s32 RW 0 stepgen.make-pulses.tmax - 3 s32 RO 0 stepgen.update-freq.time - 3 s32 RW 0 stepgen.update-freq.tmax ----- - -=== Connecting pins with signals - -What we have is two step pulse generators, and a signal generator. Now -it is time to create some HAL signals to connect the two components. We -are going to pretend that the two step pulse generators are driving the -X and Y axis of a machine. We want to move the table in circles. To do -this, we will send a cosine signal to the X axis, and a sine signal to -the Y axis. The siggen module creates the sine and cosine, but we need -'wires' to connect the modules together. In the HAL, 'wires' are called -signals. We need to create two of them. We can call them anything we -want, for this example they will be 'X-vel' and 'Y-vel'. The signal -'X-vel' is intended to run from the cosine output of the signal -generator to the velocity input of the first step pulse generator. -The first step is to connect the signal to the signal generator output. -To connect a signal to a pin we use the net command. - -.net command ----- -halcmd: net X-vel <= siggen.0.cosine ----- - -To see the effect of the 'net' command, we show the signals again. - ----- -halcmd: show sig - -Signals: -Type Value Name (linked to) -float 0 X-vel <== siggen.0.cosine ----- - -When a signal is connected to one or more pins, the show command lists -the pins immediately following the signal name. The 'arrow' shows the -direction of data flow - in this case, data flows from pin -'siggen.0.cosine' to signal 'X-vel'. Now let's connect the 'X-vel' to -the velocity input of a step pulse generator. - ----- -halcmd: net X-vel => stepgen.0.velocity-cmd ----- - -We can also connect up the Y axis signal 'Y-vel'. It is intended to -run from the sine output of the signal generator -to the input of the second step pulse generator. The following command -accomplishes in one line what two 'net' commands accomplished for -'X-vel'. - ----- -halcmd: net Y-vel siggen.0.sine => stepgen.1.velocity-cmd ----- - -Now let's take a final look at the signals and the pins connected to -them. - ----- -halcmd: show sig - -Signals: -Type Value Name (linked to) -float 0 X-vel <== siggen.0.cosine - ==> stepgen.0.velocity-cmd -float 0 Y-vel <== siggen.0.sine - ==> stepgen.1.velocity-cmd ----- - -The 'show sig' command makes it clear exactly how data flows through -the HAL. For example, the 'X-vel' signal comes from pin -'siggen.0.cosine', and goes to pin 'stepgen.0.velocity-cmd'. - -=== Setting up realtime execution - threads and functions - -Thinking about data flowing through 'wires' makes pins and signals -fairly easy to understand. Threads and functions are a little more -difficult. Functions contain the computer instructions that actually -get things done. Thread are the method used to make those instructions -run when they are needed. First let's look at the functions available -to us. - ----- -halcmd: show funct - -Exported Functions: -Owner CodeAddr Arg FP Users Name - 00004 f9992000 fc731278 YES 0 siggen.0.update - 00003 f998b20f fc7310b8 YES 0 stepgen.capture-position - 00003 f998b000 fc7310b8 NO 0 stepgen.make-pulses - 00003 f998b307 fc7310b8 YES 0 stepgen.update-freq ----- - -In general, you will have to refer to the documentation for each -component to see what its functions do. In this case, the function -'siggen.0.update' is used to update the outputs of the signal -generator. Every time it is executed, it calculates the values of -the sine, cosine, triangle, and square outputs. To make smooth -signals, it needs to run at specific intervals. - -The other three functions are related to the step pulse generators. - -The first one, 'stepgen.capture_position', is used for position -feedback. It captures the value of an internal -counter that counts the step pulses as they are generated. Assuming no -missed steps, this counter indicates the position of the motor. - -The main function for the step pulse generator is -'stepgen.make_pulses'. Every time 'make_pulses' runs it decides if it -is time to take a step, and if so sets the -outputs accordingly. For smooth step pulses, it should run as -frequently as possible. Because it needs to run so fast, 'make_pulses' -is highly optimized and performs only a few calculations. Unlike the -others, it does not need floating point math. - -The last function, 'stepgen.update-freq', is responsible for doing -scaling and some other calculations that need to be performed -only when the frequency command changes. - -What this means for our example is that we want to run -'siggen.0.update' at a moderate rate to calculate the sine and cosine -values. Immediately after we run 'siggen.0.update', we want to run -'stepgen.update_freq' to load the new values into the step pulse -generator. Finally we need - to run 'stepgen.make_pulses' as fast as possible for smooth pulses. -Because we don't use position -feedback, we don't need to run 'stepgen.capture_position' at all. - -We run functions by adding them to threads. Each thread runs at a -specific rate. Let's see what threads we have available. - ----- -halcmd: show thread - -Realtime Threads: - Period FP Name ( Time, Max-Time ) - 996980 YES slow ( 0, 0 ) - 49849 NO fast ( 0, 0 ) ----- - -The two threads were created when we loaded 'threads'. The first one, -'slow', runs every millisecond, and is capable of running floating -point functions. We will use it for 'siggen.0.update' and -'stepgen.update_freq'. The second thread is 'fast', which runs every -50 microseconds, and does not support floating point. -We will use it for 'stepgen.make_pulses'. To connect the -functions to the proper thread, we use the 'addf' command. -We specify the function first, followed by the thread. - ----- -halcmd: addf siggen.0.update slow -halcmd: addf stepgen.update-freq slow -halcmd: addf stepgen.make-pulses fast ----- - -After we give these commands, we can run the 'show thread' command -again to see what happened. - ----- -halcmd: show thread - -Realtime Threads: - Period FP Name ( Time, Max-Time ) - 996980 YES slow ( 0, 0 ) - 1 siggen.0.update - 2 stepgen.update-freq - 49849 NO fast ( 0, 0 ) - 1 stepgen.make-pulses ----- - -Now each thread is followed by the names of the functions, in the -order in which the functions will run. - -=== Setting parameters - -We are almost ready to start our HAL system. However we still need to -adjust a few parameters. By default, the siggen component generates -signals that swing from +1 to -1. For our example that is fine, we want -the table speed to vary from +1 to -1 inches per second. However the -scaling of the step pulse generator isn't quite right. By default, it -generates an output frequency of 1 step per second with an input of -1.000. It is unlikely that one step per second will give us one inch -per second of table movement. Let's assume instead that we have a 5 -turn per inch leadscrew, connected to a 200 step per rev stepper with -10x microstepping. So it takes 2000 steps for one revolution of the -screw, and 5 revolutions to travel one inch. that means the overall -scaling is 10000 steps per inch. We need to multiply the velocity input -to the step pulse generator by 10000 to get the proper output. That is -exactly what the parameter 'stepgen.n.velocity-scale' is for. In this -case, both the X and Y axis have the same scaling, so -we set the scaling parameters for both to 10000. - ----- -halcmd: setp stepgen.0.position-scale 10000 -halcmd: setp stepgen.1.position-scale 10000 -halcmd: setp stepgen.0.enable 1 -halcmd: setp stepgen.1.enable 1 ----- - -This velocity scaling means that when the pin 'stepgen.0.velocity-cmd' -is 1.000, the step generator will generate 10000 pulses per second -(10KHz). With the motor and leadscrew described above, that will result -in the axis moving at exactly 1.000 inches per second. This illustrates -a key HAL concept - things like scaling are done at the lowest possible -level, in this case in the step pulse generator. The internal signal -'X-vel' is the velocity of the table in inches per second, and other -components such as 'siggen' don't know (or care) about the scaling at -all. If we changed the leadscrew, or motor, we would change only the -scaling parameter of the step pulse generator. - -=== Run it! - -We now have everything configured and are ready to start it up. Just -like in the first example, we use the 'start' command. - ----- -halcmd: start ----- - -Although nothing appears to happen, inside the computer the step pulse -generator is cranking out step pulses, varying from 10KHz forward to -10KHz reverse and back again every second. Later in this tutorial we'll -see how to bring those internal signals out to run motors in the real -world, but first we want to look at them and see what is happening. - -== Halscope[[sec:Tutorial-Halscope]] - -The previous example generates some very interesting signals. But much -of what happens is far too fast to see with halmeter. To take a closer -look at what is going on inside the HAL, we want an oscilloscope. -Fortunately HAL has one, called halscope. - -Halscope has two parts - a realtime part that is loaded as a kernel -module, and a user part that supplies the GUI and display. However, you -don't need to worry about this, because the userspace portion will -automatically request that the realtime part be loaded. Also notice -the first time you run halscope in a directory it gives a benign -message that the file 'autosave.halscope' could not be opened. - -.Starting Halscope ----- -halcmd: loadusr halscope -halcmd: halscope: config file 'autosave.halscope' could not be opened ----- - -The scope GUI window will open, immediately followed by a -'Realtime function not linked' dialog that looks like the following -figure. - -.Realtime function not linked dialog[[cap:Realtime-function-not-linked]] - -image::images/halscope-01.png[align="center"] - -This dialog is where you set the sampling rate for the oscilloscope. -For now we want to sample once per millisecond, so click on the 989 us -thread 'slow' and leave the multiplier at 1. We will also leave the -record length at 4000 samples, so that we can use up to four channels -at one time. When you select a thread and then click 'OK', the dialog -disappears, and the scope window looks something like the following -figure. - -.Initial scope window[[cap:Initial-scope-window]] - -image::images/halscope-02.png[align="center"] - -=== Hooking up the scope probes - -At this point, Halscope is ready to use. We have already selected a -sample rate and record length, so the next step is to decide what to -look at. This is equivalent to hooking 'virtual scope probes' to the -HAL. Halscope has 16 channels, but the number you can use at any one -time depends on the record length - more channels means shorter -records, since the memory available for the record is fixed at -approximately 16,000 samples. - -The channel buttons run across the bottom of the halscope screen. -Click button '1', and you will see the 'Select Channel Source' dialog -as shown in the following figure. This dialog is very similar to the -one used by Halmeter. We would like to look at the signals we defined -earlier, so we click on the 'Signals' tab, and the dialog displays all -of the signals in the HAL (only two for this example). - -.Select Channel Source[[cap:Select-Channel-Source]] - -image::images/halscope-03.png[align="center"] - -To choose a signal, just click on it. In this case, we want channel 1 -to display the signal 'X-vel'. Click on the Signals tab then click on -'X-vel' and the dialog closes and the channel is now selected. - -.Select Signal[[cap:Select-Signal]] - -image::images/halscope-04.png[align="center"] - -The channel 1 button is pressed in, and channel number 1 and the name -'X-vel' appear below the row of buttons. That display always indicates -the selected channel - you can have many channels on the screen, but -the selected one is highlighted, and the various controls like vertical -position and scale always work on the selected one. - -.Halscope[[cap:HALScope]] - -image::images/halscope-05.png[align="center"] - -To add a signal to channel 2, click the '2' button. When the dialog -pops up, click the 'Signals' tab, then click on 'Y-vel'. We also want -to look at the square and triangle wave outputs. There are no signals -connected to those pins, so we use the 'Pins' tab instead. For channel -3, select 'siggen.0.triangle' and for channel 4, select -'siggen.0.square'. - -=== Capturing our first waveforms - -Now that we have several probes hooked to the HAL, it's time to -capture some waveforms. To start the scope, click the 'Normal' button -in the 'Run Mode' section of the screen (upper right). Since we have a -4000 sample record length, and are acquiring 1000 samples per second, -it will take halscope about 2 seconds to fill half of its buffer. -During that time a progress bar just above the main screen will show -the buffer filling. Once the buffer is half full, the scope waits for a -trigger. Since we haven't configured one yet, it will wait forever. To -manually trigger it, click the 'Force' button in the 'Trigger' section -at the top right. You should see the remainder of the buffer fill, then -the screen will display the captured waveforms. The result will look -something like the following figure. - -.Captured Waveforms[[cap:Captured-Waveforms]] - -image::images/halscope-06.png[align="center"] - -The 'Selected Channel' box at the bottom tells you that the purple -trace is the currently selected one, channel 4, which is displaying the -value of the pin 'siggen.0.square'. Try clicking channel buttons 1 -through 3 to highlight the other three traces. - -=== Vertical Adjustments - -The traces are rather hard to distinguish since all four are on top of -each other. To fix this, we use the 'Vertical' controls in the box to -the right of the screen. These controls act on the currently selected -channel. When adjusting the gain, notice that it covers a huge range - -unlike a real scope, this one can display signals ranging from very -tiny (pico-units) to very large (Tera-units). The position control -moves the displayed trace up and down over the height of the screen -only. For larger adjustments the offset button should be used. - -.Vertical Adjustment[[cap:Vertical-Adjustment]] - -image::images/halscope-07.png[align="center"] - -=== Triggering - -Using the 'Force' button is a rather unsatisfying way to trigger the -scope. To set up real triggering, click on the 'Source' button at the -bottom right. It will pop up the 'Trigger Source' dialog, which is -simply a list of all the probes that are currently connected. Select a -probe to use for triggering by clicking on it. For this example we will -use channel 3, the triangle wave as shown in the following figure. - -.Trigger Source Dialog[[cap:Trigger-Source-Dialog]] - -image::images/halscope-08.png[align="center"] - -After setting the trigger source, you can adjust the trigger level and -trigger position using the sliders in the 'Trigger' box along the right -edge. The level can be adjusted from the top to the bottom of the -screen, and is displayed below the sliders. The position is the -location of the trigger point within the overall record. With the -slider all the way down, the trigger point is at the end of the record, -and halscope displays what happened before the trigger point. When the -slider is all the way up, the trigger point is at the beginning of the -record, displaying what happened after it was triggered. The trigger -point is visible as a vertical line in the progress box above the -screen. The trigger polarity can be changed by clicking the button just -below the trigger level display. - -Now that we have adjusted the vertical controls and triggering, the -scope display looks something like the following figure. - -.Waveforms with Triggering[[cap:Waveforms-with-Triggering]] - -image::images/halscope-09.png[align="center"] - -=== Horizontal Adjustments - -To look closely at part of a waveform, you can use the zoom slider at -the top of the screen to expand the waveforms horizontally, and the -position slider to determine which part of the zoomed waveform is -visible. However, sometimes simply expanding the waveforms isn't enough -and you need to increase the sampling rate. For example, we would like -to look at the actual step pulses that are being generated in our -example. Since the step pulses may be only 50 us long, sampling at 1KHz -isn't fast enough. To change the sample rate, click on the button that -displays the number of samples and sample rate to bring up the 'Select -Sample Rate' dialog, figure . For this example, we will click on the -50 us thread, 'fast', which gives us a sample rate of about 20KHz. Now -instead of displaying about 4 seconds worth of data, one record is 4000 -samples at 20KHz, or about 0.20 seconds. - -.Sample Rate Dialog[[cap:Sample-Rate-Dialog]] - -image::images/halscope-10.png[align="center"] - -=== More Channels - -Now let's look at the step pulses. Halscope has 16 channels, but for -this example we are using only 4 at a time. Before we select any more -channels, we need to turn off a couple. Click on the channel 2 button, -then click the 'Chan Off' button at the bottom of the 'Vertical' box. -Then click on channel 3, turn if off, and do the same for channel 4. -Even though the channels are turned off, they still remember what they -are connected to, and in fact we will continue to use channel 3 as the -trigger source. To add new channels, select channel 5, and choose pin -'stepgen.0.dir', then channel 6, and select 'stepgen.0.step'. Then -click run mode 'Normal' to start the scope, and adjust the horizontal -zoom to 5 ms per division. You should see the step pulses slow down as -the velocity command (channel 1) approaches zero, then the direction -pin changes state and the step pulses speed up again. You might want to -increase the gain on channel 1 to about 20 milli per division to better see -the change in the velocity command. The result should look like the -following figure. - -.Step Pulses[[cap:Step-Pulses]] - -image::images/halscope-11.png[align="center"] - -=== More samples - -If you want to record more samples at once, restart realtime and load -halscope with a numeric argument which indicates the number of samples -you want to capture. - ----- -halcmd: loadusr halscope 80000 ----- - -If the 'scope_rt' component was not already loaded, halscope will -load it and request 80000 total samples, so that when sampling -4 channels at a time there will be 20000 samples per channel. -(If 'scope_rt' was already loaded, the numeric argument to -halscope will have no effect). - diff --git a/docs/src/hal/tutorial_es.txt b/docs/src/hal/tutorial_es.txt deleted file mode 100644 index 26fbd774d36..00000000000 --- a/docs/src/hal/tutorial_es.txt +++ /dev/null @@ -1,1023 +0,0 @@ -= Advanced HAL Tutorial - -[[cha:HAL-tutorial]] (((HAL Tutorial))) - -//// -ATTENTION TRANSLATORS before translating this document copy the base document -into this copy to get the latest version. Untranslated documents are not kept -up to date with the English documents. - -Do not translate anchors or links, translate only the text of a link after the -comma. -Anchor [[anchor-name]] -Link <> - -Make sure the documents build after translating. -//// - -== Introduction[[sec:Tutorial-Intro]] - -Configuration moves from theory to device -- HAL device that is. For -those who have had just a bit of computer programming, this section is -the 'Hello World' of the HAL. Halrun can be used to create a working -system. It is a command line or text file tool for configuration and -tuning. The following examples illustrate its setup and operation. - -=== Notation - -Terminal commands are shown without the system prompt unless you are -running 'HAL'. The terminal window is in 'Applications/Accessories' -from the main Ubuntu menu bar. - -.Terminal Command Example ----- -me@computer:~linuxcnc$ halrun -(will be shown like the following line) -halrun - -(the halcmd: prompt will be shown when running HAL) -halcmd: loadrt debounce -halcmd: show pin ----- - -=== Tab-completion - -Your version of halcmd may include tab-completion. Instead of -completing file names as a shell does, it completes commands with HAL -identifiers. You will have to type enough letters for a unique match. -Try pressing tab after starting a HAL command: - -.Tab Completion ----- -halcmd: loa -halcmd: load -halcmd: loadrt -halcmd: loadrt deb -halcmd: loadrt debounce ----- - -=== The RTAPI environment - -RTAPI stands for Real Time Application Programming Interface. Many HAL -components work in realtime, and all HAL components store data in -shared memory so realtime components can access it. Normal Linux does -not support realtime programming or the type of shared memory that HAL -needs. Fortunately there are realtime operating systems (RTOS's) that -provide the necessary extensions to Linux. Unfortunately, each RTOS -does things a little differently. - -To address these differences, the LinuxCNC team came up with RTAPI, which -provides a consistent way for programs to talk to the RTOS. If you are -a programmer who wants to work on the internals of LinuxCNC, you may want to -study 'emc2/src/rtapi/rtapi.h' to understand the API. But if you are a -normal person all you need to -know about RTAPI is that it (and the RTOS) needs to be loaded into the -memory of your computer before you do anything with HAL. - -== A Simple Example[[sec:Tutorial-Simple-Example]] - -=== Loading a component - -For this tutorial, we are going to assume that you have successfully -installed the Live CD and, if using a RIP footnote:[Run In Place, when the -source files have been downloaded to a user directory.], invoked the -'rip-environment' script to prepare your shell. -In that case, all you need to do is -load the required RTOS and RTAPI modules into memory. Just run the -following command from a terminal window: - -// NOTE! add link to rip-environment explanation - -.Loading HAL ----- -cd emc2 -halrun -halcmd: ----- - -With the realtime OS and RTAPI loaded, we can move into the first -example. Notice that the prompt is now shown as 'halcmd:'. -This is because subsequent commands will be interpreted as HAL commands, -not shell commands. - -For the first example, we will use a HAL component called 'siggen', -which is a simple signal generator. A complete description of the -'siggen' component can be found in the <> section of -this Manual. -It is a realtime component, implemented as a Linux kernel module. To -load 'siggen' use the HAL command 'loadrt'. - -.Loading siggen ----- -halcmd: loadrt siggen ----- - -=== Examining the HAL - -Now that the module is loaded, it is time to introduce 'halcmd' , the -command line tool used to configure the HAL. This tutorial will -introduce some halcmd features, for a more complete description try -'man halcmd', or see the reference in <> -section of this document. The first -halcmd feature is the 'show' command. This command displays information -about the current state of the HAL. To show all installed components: - -.Show Components ----- -halcmd: show comp - -Loaded HAL Components: -ID Type Name PID State - 3 RT siggen ready - 2 User halcmd2177 2177 ready ----- - -Since 'halcmd' itself is a HAL component, it will always show up in -the list. The number after halcmd in the component list is the process ID. -It is possible to run more than one copy of halcmd at the same time (in -different windows for example), so the PID is added to the end of the -name to make it unique. The list also shows the 'siggen' component -that we installed in the previous step. The 'RT' under 'Type' indicates -that 'siggen' is a realtime component. The 'User' under 'Type' indicates -it is a user space component. - -Next, let's see what pins 'siggen' makes available: - -.Show Pins ----- -halcmd: show pin - -Component Pins: -Owner Type Dir Value Name - 3 float IN 1 siggen.0.amplitude - 3 bit OUT FALSE siggen.0.clock - 3 float OUT 0 siggen.0.cosine - 3 float IN 1 siggen.0.frequency - 3 float IN 0 siggen.0.offset - 3 float OUT 0 siggen.0.sawtooth - 3 float OUT 0 siggen.0.sine - 3 float OUT 0 siggen.0.square - 3 float OUT 0 siggen.0.triangle ----- - -This command displays all of the pins in the current HAL. A complex system -could have dozens or hundreds of pins. But right now there are only -nine pins. All eight of these pins are floating point, and carry data -out of the 'siggen' component. Since we have not yet executed the code -contained within the component, some the pins have a value of zero. - -The next step is to look at parameters: - -.Show Parameters ----- -halcmd: show param - -Parameters: -Owner Type Dir Value Name - 3 s32 RO 0 siggen.0.update.time - 3 s32 RW 0 siggen.0.update.tmax ----- - -The 'show param' command shows all the parameters in the HAL. Right now -each parameter has the default value it was given when the component -was loaded. Note the column labeled 'Dir'. The parameters labeled '-W' -are writable ones that are never changed by the component itself, -instead they are meant to be changed by the user to control the - component. We will see how to do this later. Parameters labeled 'R-' -are read only parameters. They can be changed only by the component. - Finally, parameter labeled 'RW' are read-write parameters. That means -that they are changed by the - component, but can also be changed by the user. Note: the parameters -'siggen.0.update.time' and 'siggen.0.update.tmax' are for debugging -purposes, and won't be covered in this section. - -Most realtime components export one or more functions to actually run -the realtime code they contain. Let's see what function(s) 'siggen' -exported: - -.Show Functions ----- -halcmd: show funct - -Exported Functions: -Owner CodeAddr Arg FP Users Name - 00003 f801b000 fae820b8 YES 0 siggen.0.update ----- - -The siggen component exported a single function. It requires floating -point. It is not currently linked to any threads, so 'users' is -zero. - -=== Making realtime code run - -To actually run the code contained in the function 'siggen.0.update', -we need a realtime thread. The component called 'threads' that is used -to create a new thread. Lets create a thread called 'test-thread' with -a period of 1 ms (1,000 us or 1,000,000 ns): - ----- -halcmd: loadrt threads name1=test-thread period1=1000000 ----- - -Let's see if that worked: - -.Show Threads ----- -halcmd: show thread - -Realtime Threads: - Period FP Name ( Time, Max-Time ) - 999855 YES test-thread ( 0, 0 ) ----- - -It did. The period is not exactly 1,000,000 ns because of hardware -limitations, but we have a thread that runs at approximately the -correct rate, and which can handle floating point functions. The next -step is to connect the function to the thread: - -.Add Function ----- -halcmd: addf siggen.0.update test-thread ----- - -Up till now, we've been using 'halcmd' only to look at the HAL. -However, this time we used the 'addf' (add function) command to -actually change something in the HAL. We -told 'halcmd' to add the function 'siggen.0.update' to the thread -'test-thread', and if we look at the thread list again, we see that it -succeeded: - ----- -halcmd: show thread - -Realtime Threads: - Period FP Name ( Time, Max-Time ) - 999855 YES test-thread ( 0, 0 ) - 1 siggen.0.update ----- - -There is one more step needed before the 'siggen' component starts -generating signals. When the HAL is first started, -the thread(s) are not actually running. This is to allow you to -completely configure the system before the realtime code starts. Once -you are happy with the configuration, you can start the realtime code -like this: - ----- -halcmd: start ----- - -Now the signal generator is running. Let's look at its output pins: - ----- -halcmd: show pin - -Component Pins: -Owner Type Dir Value Name - 3 float IN 1 siggen.0.amplitude - 3 bit OUT FALSE siggen.0.clock - 3 float OUT -0.1640929 siggen.0.cosine - 3 float IN 1 siggen.0.frequency - 3 float IN 0 siggen.0.offset - 3 float OUT -0.4475303 siggen.0.sawtooth - 3 float OUT 0.9864449 siggen.0.sine - 3 float OUT -1 siggen.0.square - 3 float OUT -0.1049393 siggen.0.triangle ----- - -And let's look again: - ----- -halcmd: show pin - -Component Pins: -Owner Type Dir Value Name - 3 float IN 1 siggen.0.amplitude - 3 bit OUT FALSE siggen.0.clock - 3 float OUT 0.0507619 siggen.0.cosine - 3 float IN 1 siggen.0.frequency - 3 float IN 0 siggen.0.offset - 3 float OUT -0.516165 siggen.0.sawtooth - 3 float OUT 0.9987108 siggen.0.sine - 3 float OUT -1 siggen.0.square - 3 float OUT 0.03232994 siggen.0.triangle ----- - -We did two 'show pin' commands in quick succession, and you can see -that the outputs are no longer zero. -The sine, cosine, sawtooth, and triangle outputs are -changing constantly. The square output is also working, however it -simply switches from +1.0 to -1.0 every cycle. - -=== Changing Parameters - -The real power of HAL is that you can change things. For example, we -can use the 'setp' command to set the value of a parameter. Let's -change the amplitude -of the signal generator from 1.0 to 5.0: - -.Set Pin ----- -halcmd: setp siggen.0.amplitude 5 ----- - -.Check the parameters and pins again ----- -halcmd: show param - -Parameters: -Owner Type Dir Value Name - 3 s32 RO 1754 siggen.0.update.time - 3 s32 RW 16997 siggen.0.update.tmax - -halcmd: show pin - -Component Pins: -Owner Type Dir Value Name - 3 float IN 5 siggen.0.amplitude - 3 bit OUT FALSE siggen.0.clock - 3 float OUT 0.8515425 siggen.0.cosine - 3 float IN 1 siggen.0.frequency - 3 float IN 0 siggen.0.offset - 3 float OUT 2.772382 siggen.0.sawtooth - 3 float OUT -4.926954 siggen.0.sine - 3 float OUT 5 siggen.0.square - 3 float OUT 0.544764 siggen.0.triangle ----- - -Note that the value of parameter 'siggen.0.amplitude' has changed to -5, and that the pins now have larger values. - -=== Saving the HAL configuration - -Most of what we have done with 'halcmd' so far has simply been viewing -things with the 'show' command. However two of the commands actually -changed things. As we -design more complex systems with HAL, we will use many commands to -configure things just the way we want them. HAL has the memory of an -elephant, and will retain that configuration until we shut it down. But -what about next time? We don't want to manually enter a bunch of -commands every time we want to use the system. We can save the -configuration of the entire HAL with a single command: - -.Save ----- -halcmd: save -# components -loadrt threads name1=test-thread period1=1000000 -loadrt siggen -# pin aliases -# signals -# nets -# parameter values -setp siggen.0.update.tmax 14687 -# realtime thread/function links -addf siggen.0.update test-thread ----- - -The output of the 'save' command is a sequence of HAL commands. If -you start with an 'empty' -HAL and run all these commands, you will get the configuration that -existed when the 'save' command was issued. To save these commands -for later use, we simply -redirect the output to a file: - -.Save to a file ----- -halcmd: save all saved.hal ----- - -=== Exiting halrun - -When you're finished with your HAL session type 'exit' at the 'halcmd:' -prompt. This will return you to the system prompt and close down the HAL -session. Do not simply close the terminal window without shutting down -the HAL session. - -.Exit HAL ----- -halcmd: exit ----- - -=== Restoring the HAL configuration - -To restore the HAL configuration stored in 'saved.hal', we need to -execute all of those HAL commands. To do that, we use '-f ' -which reads commands from a file, and '-I' (upper case i) which shows -the halcmd prompt after executing the commands: - -.Run a Saved File ----- -halrun -I -f saved.hal ----- - -Notice that there is not a 'start' command in saved.hal. It's -necessary to issue it again (or edit saved.hal to add it there). - -=== Removing HAL from memory - -If an unexpected shut down of a HAL session occurs you might have to -unload HAL before another session can begin. To do this type the -following command in a terminal window. - -.Removing HAL ----- -halrun -U ----- - -== Halmeter[[sec:Tutorial-Halmeter]](((Halmeter,Tutorial-Halmeter))) - -You can build very complex HAL systems without ever using a graphical -interface. However there is something satisfying about seeing the -result of your work. The first and simplest GUI tool for the HAL is -halmeter. It is a very simple program that is the HAL equivalent of the -handy Fluke multimeter (or Simpson analog meter for the old timers). - -We will use the siggen component again to check out halmeter. If you -just finished the previous example, then you can load siggen using the -saved file. If not, we can load it just like we did before: - ----- -halrun -halcmd: loadrt siggen -halcmd: loadrt threads name1=test-thread period1=1000000 -halcmd: addf siggen.0.update test-thread -halcmd: start -halcmd: setp siggen.0.amplitude 5 ----- - -At this point we have the siggen component loaded and running. It's -time to start halmeter. - -.Starting Halmeter ----- -halcmd: loadusr halmeter ----- - -The first window you will see is the 'Select Item to Probe' window. - -.Halmeter Select Window[[cap:HAL-Meter-Select-Window]] - -image::images/halmeter-select.png[align="center"] - -This dialog has three tabs. The first tab displays all of the HAL pins -in the system. The second one displays all the signals, and the third -displays all the parameters. We would like to look at the pin -'siggen.0.cosine' first, so click on it then click the 'Close' button. -The probe -selection dialog will close, and the meter looks something like the -following figure. - -.Halmeter[[cap:Halmeter]] - -image::images/halmeter-1.png[align="center"] - -To change what the meter displays press the 'Select' button which -brings back the 'Select Item to Probe' window. - -You should see the value changing as siggen generates its cosine wave. -Halmeter refreshes its display about 5 times per second. - -To shut down halmeter, just click the exit button. - -If you want to look at more than one pin, signal, or parameter at a -time, you can just start more halmeters. The halmeter window was -intentionally made very small so you could have a lot of them on the -screen at once. - -== Stepgen Example(((stepgen))) - -Up till now we have only loaded one HAL component. But the whole idea -behind the HAL is to allow you to load and connect a number of simple -components to make up a complex system. The next example will use two -components. - -Before we can begin building this new example, we want to start with a -clean slate. If you just finished one of the previous examples, we need -to remove the all components and reload the RTAPI and HAL libraries. - ----- -halcmd: exit ----- - -=== Installing the components - -Now we are going to load the step pulse generator component. For a -detailed description of this component refer to the stepgen section of the -Integrator Manual. In this example we will use the 'velocity' control -type of stepgen. For now, we can skip the details, and just run the -following commands. - ----- -halrun -halcmd: loadrt stepgen step_type=0,0 ctrl_type=v,v -halcmd: loadrt siggen -halcmd: loadrt threads name1=fast fp1=0 period1=50000 name2=slow period2=1000000 ----- - -The first command loads two step generators, both configured to -generate stepping type 0. The second command loads our old friend -siggen, and the third one creates two threads, a fast one with a period -of 50 microseconds and a slow one with a period of 1 millisecond. The fast -thread doesn't support floating point functions. - -As before, we can use 'halcmd show' to take a look at the HAL. This -time we have a lot more pins and parameters than before: - ----- -halcmd: show pin - -Component Pins: -Owner Type Dir Value Name - 4 float IN 1 siggen.0.amplitude - 4 bit OUT FALSE siggen.0.clock - 4 float OUT 0 siggen.0.cosine - 4 float IN 1 siggen.0.frequency - 4 float IN 0 siggen.0.offset - 4 float OUT 0 siggen.0.sawtooth - 4 float OUT 0 siggen.0.sine - 4 float OUT 0 siggen.0.square - 4 float OUT 0 siggen.0.triangle - 3 s32 OUT 0 stepgen.0.counts - 3 bit OUT FALSE stepgen.0.dir - 3 bit IN FALSE stepgen.0.enable - 3 float OUT 0 stepgen.0.position-fb - 3 bit OUT FALSE stepgen.0.step - 3 float IN 0 stepgen.0.velocity-cmd - 3 s32 OUT 0 stepgen.1.counts - 3 bit OUT FALSE stepgen.1.dir - 3 bit IN FALSE stepgen.1.enable - 3 float OUT 0 stepgen.1.position-fb - 3 bit OUT FALSE stepgen.1.step - 3 float IN 0 stepgen.1.velocity-cmd - -halcmd: show param - -Parameters: -Owner Type Dir Value Name - 4 s32 RO 0 siggen.0.update.time - 4 s32 RW 0 siggen.0.update.tmax - 3 u32 RW 0x00000001 stepgen.0.dirhold - 3 u32 RW 0x00000001 stepgen.0.dirsetup - 3 float RO 0 stepgen.0.frequency - 3 float RW 0 stepgen.0.maxaccel - 3 float RW 0 stepgen.0.maxvel - 3 float RW 1 stepgen.0.position-scale - 3 s32 RO 0 stepgen.0.rawcounts - 3 u32 RW 0x00000001 stepgen.0.steplen - 3 u32 RW 0x00000001 stepgen.0.stepspace - 3 u32 RW 0x00000001 stepgen.1.dirhold - 3 u32 RW 0x00000001 stepgen.1.dirsetup - 3 float RO 0 stepgen.1.frequency - 3 float RW 0 stepgen.1.maxaccel - 3 float RW 0 stepgen.1.maxvel - 3 float RW 1 stepgen.1.position-scale - 3 s32 RO 0 stepgen.1.rawcounts - 3 u32 RW 0x00000001 stepgen.1.steplen - 3 u32 RW 0x00000001 stepgen.1.stepspace - 3 s32 RO 0 stepgen.capture-position.time - 3 s32 RW 0 stepgen.capture-position.tmax - 3 s32 RO 0 stepgen.make-pulses.time - 3 s32 RW 0 stepgen.make-pulses.tmax - 3 s32 RO 0 stepgen.update-freq.time - 3 s32 RW 0 stepgen.update-freq.tmax ----- - -=== Connecting pins with signals - -What we have is two step pulse generators, and a signal generator. Now -it is time to create some HAL signals to connect the two components. We -are going to pretend that the two step pulse generators are driving the -X and Y axis of a machine. We want to move the table in circles. To do -this, we will send a cosine signal to the X axis, and a sine signal to -the Y axis. The siggen module creates the sine and cosine, but we need -'wires' to connect the modules together. In the HAL, 'wires' are called -signals. We need to create two of them. We can call them anything we -want, for this example they will be 'X-vel' and 'Y-vel'. The signal -'X-vel' is intended to run from the cosine output of the signal -generator to the velocity input of the first step pulse generator. -The first step is to connect the signal to the signal generator output. -To connect a signal to a pin we use the net command. - -.net command ----- -halcmd: net X-vel <= siggen.0.cosine ----- - -To see the effect of the 'net' command, we show the signals again. - ----- -halcmd: show sig - -Signals: -Type Value Name (linked to) -float 0 X-vel <== siggen.0.cosine ----- - -When a signal is connected to one or more pins, the show command lists -the pins immediately following the signal name. The 'arrow' shows the -direction of data flow - in this case, data flows from pin -'siggen.0.cosine' to signal 'X-vel'. Now let's connect the 'X-vel' to -the velocity input of a step pulse generator. - ----- -halcmd: net X-vel => stepgen.0.velocity-cmd ----- - -We can also connect up the Y axis signal 'Y-vel'. It is intended to -run from the sine output of the signal generator -to the input of the second step pulse generator. The following command -accomplishes in one line what two 'net' commands accomplished for -'X-vel'. - ----- -halcmd: net Y-vel siggen.0.sine => stepgen.1.velocity-cmd ----- - -Now let's take a final look at the signals and the pins connected to -them. - ----- -halcmd: show sig - -Signals: -Type Value Name (linked to) -float 0 X-vel <== siggen.0.cosine - ==> stepgen.0.velocity-cmd -float 0 Y-vel <== siggen.0.sine - ==> stepgen.1.velocity-cmd ----- - -The 'show sig' command makes it clear exactly how data flows through -the HAL. For example, the 'X-vel' signal comes from pin -'siggen.0.cosine', and goes to pin 'stepgen.0.velocity-cmd'. - -=== Setting up realtime execution - threads and functions - -Thinking about data flowing through 'wires' makes pins and signals -fairly easy to understand. Threads and functions are a little more -difficult. Functions contain the computer instructions that actually -get things done. Thread are the method used to make those instructions -run when they are needed. First let's look at the functions available -to us. - ----- -halcmd: show funct - -Exported Functions: -Owner CodeAddr Arg FP Users Name - 00004 f9992000 fc731278 YES 0 siggen.0.update - 00003 f998b20f fc7310b8 YES 0 stepgen.capture-position - 00003 f998b000 fc7310b8 NO 0 stepgen.make-pulses - 00003 f998b307 fc7310b8 YES 0 stepgen.update-freq ----- - -In general, you will have to refer to the documentation for each -component to see what its functions do. In this case, the function -'siggen.0.update' is used to update the outputs of the signal -generator. Every time it is executed, it calculates the values of -the sine, cosine, triangle, and square outputs. To make smooth -signals, it needs to run at specific intervals. - -The other three functions are related to the step pulse generators. - -The first one, 'stepgen.capture_position', is used for position -feedback. It captures the value of an internal -counter that counts the step pulses as they are generated. Assuming no -missed steps, this counter indicates the position of the motor. - -The main function for the step pulse generator is -'stepgen.make_pulses'. Every time 'make_pulses' runs it decides if it -is time to take a step, and if so sets the -outputs accordingly. For smooth step pulses, it should run as -frequently as possible. Because it needs to run so fast, 'make_pulses' -is highly optimized and performs only a few calculations. Unlike the -others, it does not need floating point math. - -The last function, 'stepgen.update-freq', is responsible for doing -scaling and some other calculations that need to be performed -only when the frequency command changes. - -What this means for our example is that we want to run -'siggen.0.update' at a moderate rate to calculate the sine and cosine -values. Immediately after we run 'siggen.0.update', we want to run -'stepgen.update_freq' to load the new values into the step pulse -generator. Finally we need - to run 'stepgen.make_pulses' as fast as possible for smooth pulses. -Because we don't use position -feedback, we don't need to run 'stepgen.capture_position' at all. - -We run functions by adding them to threads. Each thread runs at a -specific rate. Let's see what threads we have available. - ----- -halcmd: show thread - -Realtime Threads: - Period FP Name ( Time, Max-Time ) - 996980 YES slow ( 0, 0 ) - 49849 NO fast ( 0, 0 ) ----- - -The two threads were created when we loaded 'threads'. The first one, -'slow', runs every millisecond, and is capable of running floating -point functions. We will use it for 'siggen.0.update' and -'stepgen.update_freq'. The second thread is 'fast', which runs every -50 microseconds, and does not support floating point. -We will use it for 'stepgen.make_pulses'. To connect the -functions to the proper thread, we use the 'addf' command. -We specify the function first, followed by the thread. - ----- -halcmd: addf siggen.0.update slow -halcmd: addf stepgen.update-freq slow -halcmd: addf stepgen.make-pulses fast ----- - -After we give these commands, we can run the 'show thread' command -again to see what happened. - ----- -halcmd: show thread - -Realtime Threads: - Period FP Name ( Time, Max-Time ) - 996980 YES slow ( 0, 0 ) - 1 siggen.0.update - 2 stepgen.update-freq - 49849 NO fast ( 0, 0 ) - 1 stepgen.make-pulses ----- - -Now each thread is followed by the names of the functions, in the -order in which the functions will run. - -=== Setting parameters - -We are almost ready to start our HAL system. However we still need to -adjust a few parameters. By default, the siggen component generates -signals that swing from +1 to -1. For our example that is fine, we want -the table speed to vary from +1 to -1 inches per second. However the -scaling of the step pulse generator isn't quite right. By default, it -generates an output frequency of 1 step per second with an input of -1.000. It is unlikely that one step per second will give us one inch -per second of table movement. Let's assume instead that we have a 5 -turn per inch leadscrew, connected to a 200 step per rev stepper with -10x microstepping. So it takes 2000 steps for one revolution of the -screw, and 5 revolutions to travel one inch. that means the overall -scaling is 10000 steps per inch. We need to multiply the velocity input -to the step pulse generator by 10000 to get the proper output. That is -exactly what the parameter 'stepgen.n.velocity-scale' is for. In this -case, both the X and Y axis have the same scaling, so -we set the scaling parameters for both to 10000. - ----- -halcmd: setp stepgen.0.position-scale 10000 -halcmd: setp stepgen.1.position-scale 10000 -halcmd: setp stepgen.0.enable 1 -halcmd: setp stepgen.1.enable 1 ----- - -This velocity scaling means that when the pin 'stepgen.0.velocity-cmd' -is 1.000, the step generator will generate 10000 pulses per second -(10KHz). With the motor and leadscrew described above, that will result -in the axis moving at exactly 1.000 inches per second. This illustrates -a key HAL concept - things like scaling are done at the lowest possible -level, in this case in the step pulse generator. The internal signal -'X-vel' is the velocity of the table in inches per second, and other -components such as 'siggen' don't know (or care) about the scaling at -all. If we changed the leadscrew, or motor, we would change only the -scaling parameter of the step pulse generator. - -=== Run it! - -We now have everything configured and are ready to start it up. Just -like in the first example, we use the 'start' command. - ----- -halcmd: start ----- - -Although nothing appears to happen, inside the computer the step pulse -generator is cranking out step pulses, varying from 10KHz forward to -10KHz reverse and back again every second. Later in this tutorial we'll -see how to bring those internal signals out to run motors in the real -world, but first we want to look at them and see what is happening. - -== Halscope[[sec:Tutorial-Halscope]] - -The previous example generates some very interesting signals. But much -of what happens is far too fast to see with halmeter. To take a closer -look at what is going on inside the HAL, we want an oscilloscope. -Fortunately HAL has one, called halscope. - -Halscope has two parts - a realtime part that is loaded as a kernel -module, and a user part that supplies the GUI and display. However, you -don't need to worry about this, because the userspace portion will -automatically request that the realtime part be loaded. Also notice -the first time you run halscope in a directory it gives a benign -message that the file 'autosave.halscope' could not be opened. - -.Starting Halscope ----- -halcmd: loadusr halscope -halcmd: halscope: config file 'autosave.halscope' could not be opened ----- - -The scope GUI window will open, immediately followed by a -'Realtime function not linked' dialog that looks like the following -figure. - -.Realtime function not linked dialog[[cap:Realtime-function-not-linked]] - -image::images/halscope-01.png[align="center"] - -This dialog is where you set the sampling rate for the oscilloscope. -For now we want to sample once per millisecond, so click on the 989 us -thread 'slow' and leave the multiplier at 1. We will also leave the -record length at 4000 samples, so that we can use up to four channels -at one time. When you select a thread and then click 'OK', the dialog -disappears, and the scope window looks something like the following -figure. - -.Initial scope window[[cap:Initial-scope-window]] - -image::images/halscope-02.png[align="center"] - -=== Hooking up the scope probes - -At this point, Halscope is ready to use. We have already selected a -sample rate and record length, so the next step is to decide what to -look at. This is equivalent to hooking 'virtual scope probes' to the -HAL. Halscope has 16 channels, but the number you can use at any one -time depends on the record length - more channels means shorter -records, since the memory available for the record is fixed at -approximately 16,000 samples. - -The channel buttons run across the bottom of the halscope screen. -Click button '1', and you will see the 'Select Channel Source' dialog -as shown in the following figure. This dialog is very similar to the -one used by Halmeter. We would like to look at the signals we defined -earlier, so we click on the 'Signals' tab, and the dialog displays all -of the signals in the HAL (only two for this example). - -.Select Channel Source[[cap:Select-Channel-Source]] - -image::images/halscope-03.png[align="center"] - -To choose a signal, just click on it. In this case, we want channel 1 -to display the signal 'X-vel'. Click on the Signals tab then click on -'X-vel' and the dialog closes and the channel is now selected. - -.Select Signal[[cap:Select-Signal]] - -image::images/halscope-04.png[align="center"] - -The channel 1 button is pressed in, and channel number 1 and the name -'X-vel' appear below the row of buttons. That display always indicates -the selected channel - you can have many channels on the screen, but -the selected one is highlighted, and the various controls like vertical -position and scale always work on the selected one. - -.Halscope[[cap:HALScope]] - -image::images/halscope-05.png[align="center"] - -To add a signal to channel 2, click the '2' button. When the dialog -pops up, click the 'Signals' tab, then click on 'Y-vel'. We also want -to look at the square and triangle wave outputs. There are no signals -connected to those pins, so we use the 'Pins' tab instead. For channel -3, select 'siggen.0.triangle' and for channel 4, select -'siggen.0.square'. - -=== Capturing our first waveforms - -Now that we have several probes hooked to the HAL, it's time to -capture some waveforms. To start the scope, click the 'Normal' button -in the 'Run Mode' section of the screen (upper right). Since we have a -4000 sample record length, and are acquiring 1000 samples per second, -it will take halscope about 2 seconds to fill half of its buffer. -During that time a progress bar just above the main screen will show -the buffer filling. Once the buffer is half full, the scope waits for a -trigger. Since we haven't configured one yet, it will wait forever. To -manually trigger it, click the 'Force' button in the 'Trigger' section -at the top right. You should see the remainder of the buffer fill, then -the screen will display the captured waveforms. The result will look -something like the following figure. - -.Captured Waveforms[[cap:Captured-Waveforms]] - -image::images/halscope-06.png[align="center"] - -The 'Selected Channel' box at the bottom tells you that the purple -trace is the currently selected one, channel 4, which is displaying the -value of the pin 'siggen.0.square'. Try clicking channel buttons 1 -through 3 to highlight the other three traces. - -=== Vertical Adjustments - -The traces are rather hard to distinguish since all four are on top of -each other. To fix this, we use the 'Vertical' controls in the box to -the right of the screen. These controls act on the currently selected -channel. When adjusting the gain, notice that it covers a huge range - -unlike a real scope, this one can display signals ranging from very -tiny (pico-units) to very large (Tera-units). The position control -moves the displayed trace up and down over the height of the screen -only. For larger adjustments the offset button should be used. - -.Vertical Adjustment[[cap:Vertical-Adjustment]] - -image::images/halscope-07.png[align="center"] - -=== Triggering - -Using the 'Force' button is a rather unsatisfying way to trigger the -scope. To set up real triggering, click on the 'Source' button at the -bottom right. It will pop up the 'Trigger Source' dialog, which is -simply a list of all the probes that are currently connected. Select a -probe to use for triggering by clicking on it. For this example we will -use channel 3, the triangle wave as shown in the following figure. - -.Trigger Source Dialog[[cap:Trigger-Source-Dialog]] - -image::images/halscope-08.png[align="center"] - -After setting the trigger source, you can adjust the trigger level and -trigger position using the sliders in the 'Trigger' box along the right -edge. The level can be adjusted from the top to the bottom of the -screen, and is displayed below the sliders. The position is the -location of the trigger point within the overall record. With the -slider all the way down, the trigger point is at the end of the record, -and halscope displays what happened before the trigger point. When the -slider is all the way up, the trigger point is at the beginning of the -record, displaying what happened after it was triggered. The trigger -point is visible as a vertical line in the progress box above the -screen. The trigger polarity can be changed by clicking the button just -below the trigger level display. - -Now that we have adjusted the vertical controls and triggering, the -scope display looks something like the following figure. - -.Waveforms with Triggering[[cap:Waveforms-with-Triggering]] - -image::images/halscope-09.png[align="center"] - -=== Horizontal Adjustments - -To look closely at part of a waveform, you can use the zoom slider at -the top of the screen to expand the waveforms horizontally, and the -position slider to determine which part of the zoomed waveform is -visible. However, sometimes simply expanding the waveforms isn't enough -and you need to increase the sampling rate. For example, we would like -to look at the actual step pulses that are being generated in our -example. Since the step pulses may be only 50 us long, sampling at 1KHz -isn't fast enough. To change the sample rate, click on the button that -displays the number of samples and sample rate to bring up the 'Select -Sample Rate' dialog, figure . For this example, we will click on the -50 us thread, 'fast', which gives us a sample rate of about 20KHz. Now -instead of displaying about 4 seconds worth of data, one record is 4000 -samples at 20KHz, or about 0.20 seconds. - -.Sample Rate Dialog[[cap:Sample-Rate-Dialog]] - -image::images/halscope-10.png[align="center"] - -=== More Channels - -Now let's look at the step pulses. Halscope has 16 channels, but for -this example we are using only 4 at a time. Before we select any more -channels, we need to turn off a couple. Click on the channel 2 button, -then click the 'Chan Off' button at the bottom of the 'Vertical' box. -Then click on channel 3, turn if off, and do the same for channel 4. -Even though the channels are turned off, they still remember what they -are connected to, and in fact we will continue to use channel 3 as the -trigger source. To add new channels, select channel 5, and choose pin -'stepgen.0.dir', then channel 6, and select 'stepgen.0.step'. Then -click run mode 'Normal' to start the scope, and adjust the horizontal -zoom to 5 ms per division. You should see the step pulses slow down as -the velocity command (channel 1) approaches zero, then the direction -pin changes state and the step pulses speed up again. You might want to -increase the gain on channel 1 to about 20 milli per division to better see -the change in the velocity command. The result should look like the -following figure. - -.Step Pulses[[cap:Step-Pulses]] - -image::images/halscope-11.png[align="center"] - -=== More samples - -If you want to record more samples at once, restart realtime and load -halscope with a numeric argument which indicates the number of samples -you want to capture. - ----- -halcmd: loadusr halscope 80000 ----- - -If the 'scope_rt' component was not already loaded, halscope will -load it and request 80000 total samples, so that when sampling -4 channels at a time there will be 20000 samples per channel. -(If 'scope_rt' was already loaded, the numeric argument to -halscope will have no effect). - diff --git a/docs/src/hal/tutorial_fr.txt b/docs/src/hal/tutorial_fr.txt deleted file mode 100644 index 6c37797200c..00000000000 --- a/docs/src/hal/tutorial_fr.txt +++ /dev/null @@ -1,1117 +0,0 @@ -:lang: fr -:toc: - -= Le tutoriel de HAL - -[[cha:Tutoriel-HAL]] (((Tutoriel de HAL))) - -[[sec:Intro-tutoriel]] -== Introduction -(((Introduction))) - -Halrun peut être utilisé pour créer un système complet et fonctionnel. -Il s'agit d'un outil de configuration et de mise au point très puissant, en -ligne de commande ou en fichier texte. Les exemples suivants illustrent son -installation et son fonctionnement. - -[[sec:Tutoriel-Halcmd]] -== Halcmd -(((Tutoriel Halcmd))) - -Halcmd est un outil en ligne de commande pour manipuler HAL. Il existe -une man page plus complète pour halcmd, elle sera installée en même -temps qu' LinuxCNC depuis ses sources ou depuis un paquet. Si LinuxCNC a été -compilé en _run-in-place_, la man page n'est pas installée, mais elle -est accessible, dans le répertoire principal de LinuxCNC, taper: ----- -$ man -M docs/man halcmd ----- - -=== Tab-complétion - -Votre version de halcmd peut inclure la complétion avec la touche tab. -Au lieu de compléter les noms de fichiers comme le fait un shell, il -complète les commandes avec les identifiants HAL. Essayez de presser la -touche tab après le début d'une commande HAL: ----- -halcmd: loa - -halcmd: load - -halcmd: loadrt - -halcmd: loadrt deb - -halcmd: loadrt debounce ----- - -=== L'environnement RTAPI - -RTAPI est le sigle de Real Time Application Programming Interface. De -nombreux composants HAL travaillent en temps réel et tous les -composants de HAL stockent leurs données dans la mémoire partagée, de -sorte que les composants temps réel puissent y accéder. Normalement, -Linux ne prend pas en charge les programmes temps réel ni le type de -mémoire partagée dont HAL a besoin. Heureusement, il existe des -systèmes d'exploitation temps réel RTOS qui fournissent les extensions -nécessaires à Linux. Malheureusement, chaque RTOS fait les choses -différemment des autres. - -Pour remédier à ces différences, l'équipe de LinuxCNC a proposé RTAPI, qui -fournit une manière cohérente aux programmes de parler au RTOS. Si vous -êtes un programmeur qui veut travailler à l'intérieur de LinuxCNC, vous -pouvez étudier _linuxcnc/src/rtapi/rtapi.h_ pour comprendre l'API. Mais si -vous êtes une personne normale, tout -ce que vous avez besoin de savoir à propos de RTAPI est qu'il doit être -(avec le RTOS) chargé dans la mémoire de votre ordinateur avant de -pouvoir faire n'importe quoi avec HAL. - -[[sec:Tutoriel-Exemple-Simple]] -== Tutoriel simple -(((Tutoriel simple))) - -=== Charger un composant temps réel - -Pour ce tutoriel, nous allons supposer que vous avez installé avec -succès le CD-Live ou que vous avez compilé correctement l'arborescence -linuxcnc/src. Si nécessaire, invoquez le script _rip-environment_ pour -préparer votre shell. Dans ce cas, tout ce que vous avez à faire -est de charger le RTOS requis et les modules RTAPI dans la mémoire. -Tapez juste les commandes suivantes dans une console: ----- -$cd linuxcnc - -$linuxcnc halrun - -$halcmd: ----- - -Avec l'OS temps réel et RTAPI chargés, vous pouvez passer au premier -exemple. Notez que le prompt a changé, il est passé de _+$+_ à _halcmd:_. -La raison en est que les commandes ultérieures seront interprétées -comme des commandes HAL et non plus comme des commandes shell. - -Pour le premier exemple, nous allons utiliser un composant HAL appelé -_siggen_, qui est un simple générateur de signaux. Une description -complète de ce composant est disponible à la <> -de ce document. -Il s'agit d'un composant temps réel, mis en Å“uvre comme un module du -noyau Linux. Pour charger siggen utiliser la commande de HAL, _loadrt_: ----- -halcmd: loadrt siggen ----- - -=== Examiner HAL - -Maintenant que le module est chargé, il faut introduire _halcmd_, -l'outil en ligne de commande utilisé pour configurer HAL. Pour une description -plus complète essayez: _man halcmd_, ou consultez la -section <>. La -première commande de halcmd et _show_, qui affichera les informations -concernant l'état actuel de HAL. Pour afficher tout ce qui est -installé tapez: ----- -halcmd: show comp - - Loaded HAL Components: - ID Type Name PID State - 3 RT siggen ready - 2 User halcmd2177 2177 ready ----- - -Puisque halcmd lui même est un composant HAL, il sera toujours -présent dans la liste. -Le nombre après halcmd dans la liste des composants est le -Process ID. Il est toujours possible de lancer plus d'une instance de -halcmd en même temps (dans différentes fenêtres par exemple), le numéro -PID est ajouté à la fin du nom pour rendre celui-ci unique. La liste - montre aussi le composant _siggen_ que nous avions installé à l'étape -précédente. Le _RT_ sous _Type_ indique que siggen est un composant temps réel. - -Ensuite, voyons quelles pins siggen rend disponibles: ----- -halcmd: show pin - - Component Pins: - Owner Type Dir Value Name - 3 float IN 1 siggen.0.amplitude - 3 float OUT 0 siggen.0.cosine - 3 float IN 1 siggen.0.frequency - 3 float IN 0 siggen.0.offset - 3 float OUT 0 siggen.0.sawtooth - 3 float OUT 0 siggen.0.sine - 3 float OUT 0 siggen.0.square - 3 float OUT 0 siggen.0.triangle ----- - -Cette commande affiche toutes les pins présentes dans HAL. Un -système complexe peut avoir plusieurs dizaines ou centaines de pins. -Mais pour le moment il y a seulement huit pins. Toutes ces huit pins -sont des flottants, elles transportent toutes des données en provenance -du composant siggen. Puisque nous n'avons pas encore exécuté le code -contenu dans le composant, certaines pins ont une valeur de zéro. - -L'étape suivante consiste à examiner les paramètres: ----- -halcmd: show param - - Parameters: - Owner Type Dir Value Name - 3 s32 RO 0 siggen.0.update.time - 3 s32 RW 0 siggen.0.update.tmax ----- - -La commande _show param_ affiche tous les paramètres de HAL. Pour le -moment chaque paramètre à la valeur par défaut attribuée quand le -composant a été chargé. Notez dans la colonne _Dir_, les paramètres -marqués _-W_ sont en écriture possible, pour ceux qui ne sont jamais -modifiés par -le composant lui-même, mais qui sont modifiables par l'utilisateur pour -contrôler le composant. Nous verrons comment plus tard. Les paramètres - marqués _R-_ sont en lecture seule. Il ne peuvent être modifiés que -par le composant. Finalement, les paramètres marqués _RW_ sont en -lecture/écriture. Ils peuvent être modifiés par le composant - et aussi par l'utilisateur. Nota: les paramètres -_siggen.0.update.time_ et _siggen.0.update.tmax_ existent dans un but -de débogage, ils ne sont pas couverts par cette documentation. -Les paramètres thread.time et thread.tmax sont associés avec le thread -créé quand le composant a été chargé. Quand la réécriture de HAL sera -terminée, le thread ne sera plus créé à ce stade, de sorte que ces -paramètres ne seront plus visibles. - -Il n'y a pas de thread créé ici, mais il y a quand même les paramètres -_siggen.0.update.time_ et _siggen.0.update.tmax_. - -Les paramètres de thread sont ceux du composant 02, le module siggen. -C'est incorrect, ils devraient être ceux du module hal_lib, parce que -le thread lui même n'est plus la propriété de siggen, et si -siggen est retiré, les paramètres devraient rester. - -Et bien finalement, _fixer_ les paramètres de thread aura pris plus de -temps que je ne pensais. Donc, je les ai éliminés pour l'instant. Quand -la réécriture de HAL sera terminée, je les remettrai. - -La plupart des composants temps réel exportent une ou plusieurs -fonctions pour que le code qu'elles contiennent soit exécuté en temps -réel. Voyons ce que la fonction siggen exporte: ----- -halcmd: show funct - - Exported Functions: - Owner CodeAddr Arg FP Users Name - 00003 f801b000 fae820b8 YES 0 siggen.0.update ----- - -Le composant siggen exporte une seule fonction. Il nécessite un -flottant (Floating Point). Il n'est lié à aucun thread, puisque _users_ -est à zéro. footnote:[Les champs CodeAddr et Arg ont été utilisés -pendant le développement et devraient probablement disparaître.] - -=== Exécuter le code temps réel - -Pour faire tourner le code actuellement contenu dans la fonction -_siggen.0.update_, nous avons besoin d'un thread temps réel. C'est le -composant appelé _threads_ qui est utilisé pour créer le nouveau -thread. Créons un thread appelé _test-thread_ avec une période de 1 ms -(1000 µs ou 1000000 ns): ----- -halcmd: loadrt threads name1=test-thread period1=1000000 ----- - -Voyons si il fonctionne: ----- -halcmd: show thread - - Realtime Threads: - Period FP Name ( Time, Max-Time ) - 999855 YES test-thread ( 0, 0 ) ----- - -Il fonctionne. La période n'est pas exactement de 1000000 ns à cause -des limitations dues au matériel, mais nous avons bien un thread qui -tourne à une période approximativement correcte et qui peut manipuler -des fonctions en virgule flottante. La prochaine étape sera de -connecter la fonction au thread: ----- -halcmd: addf siggen.0.update test-thread ----- - -Pour le moment nous avions utilisé halcmd seulement pour regarder -HAL. Mais cette fois-ci, nous avons - utilisé la commande _addf_ (add function) pour changer quelque chose -dans HAL. Nous avons dit - à halcmd d'ajouter la fonction _siggen.0.update_ au thread -_test-thread_ et la commande suivante indique qu'il a réussi: ----- -halcmd: show thread - - Realtime Threads: - Period FP Name ( Time, Max-Time ) - 999855 YES test-thread ( 0, 0 ) - 1 siggen.0.update ----- - -Il y a une étape de plus avant que le composant siggen ne commence -à générer des signaux. Quand HAL est démarré pour la -première fois, les threads ne sont pas en marche. C'est pour vous -permettre de compléter la configuration du système avant que le code -temps réel ne démarre. Une fois que vous êtes satisfait de la -configuration, vous pouvez lancer le code temps réel comme ceci: ----- -halcmd: start ----- - -Maintenant le générateur de signal est en marche. Regardons ses pins -de sortie: ----- -halcmd: show pin - - Component Pins: - Owner Type Dir Value Name - 3 float IN 1 siggen.0.amplitude - 3 float OUT -0.1640929 siggen.0.cosine - 3 float IN 1 siggen.0.frequency - 3 float IN 0 siggen.0.offset - 3 float OUT -0.4475303 siggen.0.sawtooth - 3 float OUT 0.9864449 siggen.0.sine - 3 float OUT -1 siggen.0.square - 3 float OUT -0.1049393 siggen.0.triangle ----- - -Regardons encore une fois: ----- -halcmd: show pin - - Component Pins: - Owner Type Dir Value Name - 3 float IN 1 siggen.0.amplitude - 3 float OUT 0.0507619 siggen.0.cosine - 3 float IN 1 siggen.0.frequency - 3 float IN 0 siggen.0.offset - 3 float OUT -0.516165 siggen.0.sawtooth - 3 float OUT 0.9987108 siggen.0.sine - 3 float OUT -1 siggen.0.square - 3 float OUT 0.03232994 siggen.0.triangle ----- - -Nous avons fait, très rapidement, deux commandes _show pin_ et vous -pouvez voir que les sorties ne sont plus à zéro. Les sorties -sinus, cosinus, dents de scie et triangle changent constamment. La -sortie carrée fonctionne également, mais elle passe simplement de +1.0 -à -1.0 à chaque cycle. - -=== Modifier des paramètres - -La réelle puissance de HAL est de permettre de modifier les choses. -Par exemple, on peut utiliser la commande _setp_ pour ajuster la -valeur d'un paramètre. Modifions l'amplitude du -signal de sortie du générateur de 1.0 à 5.0: ----- -halcmd: setp siggen.0.amplitude 5 ----- - -Voyons encore une fois les paramètres et les pins: ----- -halcmd: show param - - Parameters: - Owner Type Dir Value Name - 3 s32 RO 1754 siggen.0.update.time - 3 s32 RW 16997 siggen.0.update.tmax - -halcmd: show pin - - Component Pins: - Owner Type Dir Value Name - 3 float IN 5 siggen.0.amplitude - 3 float OUT 0.8515425 siggen.0.cosine - 3 float IN 1 siggen.0.frequency - 3 float IN 0 siggen.0.offset - 3 float OUT 2.772382 siggen.0.sawtooth - 3 float OUT -4.926954 siggen.0.sine - 3 float OUT 5 siggen.0.square - 3 float OUT 0.544764 siggen.0.triangle - ----- - -Notez que la valeur du paramètre _siggen.0.amplitude_ est bien passée -à 5.000 et que les pins ont maintenant des valeurs -plus grandes. - -=== Enregistrer la configuration de HAL - -La plupart de ce que nous avons fait jusqu'ici avec halcmd a été de -simplement regarder les choses avec la commande show . Toutefois, -deux commandes ont réellement modifié des valeurs. Au fur -et à mesure que nous concevons des systèmes plus complexes avec HAL, -nous allons utiliser de nombreuses commandes pour le configurer comme -nous le souhaitons. HAL a une mémoire d'éléphant et peut retenir sa -configuration jusqu'à ce qu'il s'arrête. Mais qu'en est-il de la -prochaine fois ? Nous ne voulons pas entrer une série de commande à -chaque fois que l'on veut utiliser le système. Nous pouvons enregistrer -la configuration de l'ensemble de HAL en une seule commande: ----- -halcmd: save - - # components - loadrt threads name1=test-thread period1=1000000 - loadrt siggen - # pin aliases - # signals - # nets - # parameter values - setp siggen.0.update.tmax 14687 - # realtime thread/function links - addf siggen.0.update test-thread ----- - -La sortie de la commande _save_ est une séquence de commandes HAL. Si -vous commencez par un HAL _vide_ et que vous tapez toute la séquence de -commandes HAL, vous aurez la configuration qui existait lors de l'exécution de -la commande save. Pour sauver ces commandes pour une utilisation ultérieure, -nous allons simplement rediriger la sortie vers un fichier: ----- -halcmd: save all saved.hal ----- - -=== Quitter halrun - -Pour quitter halrun, ne pas fermez simplement la fenêtre de terminal sans avoir -arrêté la session de HAL, pour l'arrêter correctement tapez: ----- -halcmd: exit - -~/linuxcnc$ ----- - -=== Restaurer la configuration de HAL - -Pour restaurer la configuration de HAL enregistrée dans _saved.hal_, nous -avons besoin d'exécuter toutes les commandes enregistrées. Pour ce -faire, nous utiliserons la commande _-f _ qui lit les -commandes à partir d'un fichier, le _-I_ affichera le prompt halcmd -après l'exécution des commandes: ----- -~/linuxcnc$ halrun -I -f saved.hal ----- - -Noter qu'il n'y a pas de commande _start_ dans le fichier saved.hal. -Il est nécessaire de la retaper (ou d'éditer saved.hal pour l'ajouter): ----- -halcmd: start - -halcmd: exit - -~/linuxcnc$ ----- - -=== Suppression de la mémoire de HAL - -Si un arrêt inattendu d'une session de HAL survient, il sera peut être -nécessaire de décharger HAL de la mémoire avant de pouvoir lancer une autre -session. Pour cela, taper la commande suivante dans une fenêtre de terminal: ----- -~/linuxcnc$ halrun -U ----- - -[[sec:Tutoriel-halmeter]] -== Visualiser HAL avec halmeter -(((Tutoriel halmeter))) - -Il est possible de construire des systèmes HAL vraiment complexes sans -utiliser d'interface graphique. Mais il y a quelque chose de rassurant -à visualiser le résultat du travail. Le premier et le plus simple des -outils graphiques pour HAL, est _halmeter_. C'est un programme très -simple qui s'utilise comme un multimètre. Il permet d'observer les pins, -signaux ou paramètres en affichant la valeur courante de ces items. Il -est très simple à utiliser. Dans une console taper _halmeter_. -halmeter est une application pour environnement graphique. Deux -fenêtres vont apparaître, la fenêtre de sélection est la plus grande. -Elle comprend trois onglets. Un onglet liste toutes les pins -actuellement définies dans HAL. Le suivant, liste tous les signaux et -le dernier onglet, liste tous les paramètres. Cliquer sur un onglet, -puis cliquer sur un des items pour le sélectionner. La petite fenêtre affichera -le nom et la valeur de l'item sélectionné. -L'affichage est mis à jour environ 10 fois par seconde. Pour libérer de -la place sur l'écran, la fenêtre de sélection peut être fermée avec le -bouton _Fermer_. Sur la petite fenêtre, cachée sous la grande à -l'ouverture, le bouton _Sélectionner_, ré-ouvre la fenêtre de sélection et le -bouton _Quitter_ arrête le programme et ferme les fenêtres. - -Il est possible d'ouvrir et de faire fonctionner simultanément -plusieurs halmeter, ce qui permet de visualiser plusieurs items en -même temps. Pour ouvrir un halmeter en libérant la console, taper -_halmeter &_ pour le lancer en tâche de fond. Il est possible de -lancer halmeter en lui faisant afficher immédiatement un item, pour cela, -ajouter les arguments sur la ligne de commande _pin|sig|par[am] nom_. Il -affichera le signal, la pin, ou le paramètre _nom_ dès qu'il -démarrera. Si l'item indiqué n'existe pas, il démarrera normalement. -Finalement, si un item est spécifié pour l'affichage, il est possible -d'ajouter _-s_ devant pin|sig|param pour indiquer à halmeter d'utiliser -une fenêtre encore plus réduite. Le nom de l'item sera affiché dans la -barre de titre au lieu de sous la valeur et il n'y aura pas de bouton. -Utile pour afficher beaucoup de halmeter dans un petit espace de -l'écran. - -Nous allons utiliser de nouveaux éléments du composant siggen pour -vérifier halmeter. Si vous avez fini l'exemple précédent, alors siggen -est déjà chargé. Sinon, on peut charger tout comme nous l'avons fait -précédemment: ----- -~/linuxcnc$ halrun - -halcmd: loadrt siggen - -halcmd: loadrt threads name1=test-thread period1=1000000 - -halcmd: addf siggen.0.update test-thread - -halcmd: start - -halcmd: setp siggen.0.amplitude 5 ----- - -=== Lancement de halmeter - -À ce stade, nous avons chargé le composant siggen, il est en cours -d'exécution. Nous pouvons lancer halmeter. Puisque halmeter est une -application graphique, X doit être actif. ----- -halcmd: loadusr halmeter ----- - -Dans le même temps, une fenêtre s'ouvre sur votre écran, demandant de -sélectionner l'item à observer. - -[[cap:halmeter-Fenetre-selection]] -.Fenêtre de sélection de halmeter -(((Fenêtre de sélection))) - -image::images/halmeter-select_fr.png[] - -Ce dialogue contient trois onglets. Le premier onglet affiche toutes -les HAL pins du système. La seconde affiche tous les signaux et le -troisième affiche tous les paramètres. Si nous voulons analyser la pin -_siggen.0.cosine_ en premier, il suffit de cliquer sur elle puis sur -le bouton _Fermer_. Le dialogue de sélection se ferme et la mesure s'affiche -dans une fenêtre semblable à la figure ci-dessous. - -[[sec:halmeter-valeur]] -.Affichage de la valeur -(((Affichage de la valeur))) - -image::images/halmeter-1_fr.png[] - -Pour modifier ce qui est affiché sur halmeter pressez le bouton -_Sélectionner_ qui vous ramènera à la fenêtre de sélection précédente. - -Vous devriez voir la valeur évoluer puisque siggen génère une onde -cosinusoïdale. halmeter rafraîchi son affichage environ 5 fois par -seconde. - -Pour éteindre halmeter, cliquer sur le bouton _Quitter_. - -Pour visualiser plusieurs pins, signaux ou paramètres en même temps, -il est possible d'ouvrir plusieurs halmeter. La fenêtre de halmeter -est intentionnellement petite justement pour permettre d'en ouvrir un -grand nombre sur le même écran.[[sec:Tutoriel-Plus-Complexe]] - -== Tutoriel plus complexe avec stepgen - -Jusqu'à maintenant, nous avons chargé un composant HAL. Mais l'idée -générale de HAL est de vous permettre de charger et de relier un grand -nombre de composants pour en faire un système complexe. L'exemple suivant -va utiliser deux composants. - -Avant de mettre en place ce nouvel exemple, nous allons commencer par -un petit nettoyage. Si vous avez fini l'un des exemples précédents, il -faut supprimer tous les composants et ensuite recharger la RTAPI et les -librairies de HAL en faisant: ----- -halcmd: exit - -~/linuxcnc$ halrun ----- - -=== Installation des composants - -Maintenant, nous allons charger le composant générateur d'impulsions. -Pour l'instant, nous pouvons nous passer des détails et exécuter les -commandes suivantes:footnote:[Le signe _\_ à la fin d'une longue ligne -indique que la ligne est tronquée (c'est nécessaire pour formater ce document). -Quand vous entrez la commande en ligne dans la console, sautez simplement le _\_ -(ne pressez pas Entrée) et continuez à taper la ligne suivante.] - -Dans cet exemple nous utiliserons le type de contrôle _velocity_ du -composant stepgen. ----- -halrun: loadrt stepgen step_type=0,0 ctrl_type=v,v - -halcmd: loadrt siggen - -halcmd: loadrt threads name1=fast fp1=0 period1=50000 name2=slow period2=1000000 ----- - -La première commande charge deux générateurs d'impulsions, configurés -pour générer des impulsions de type 0. La seconde commande charge notre -vieil ami siggen et la troisième crée deux threads, un rapide (fast) -avec une période de 50 µs et un lent avec une période de 1ms. Le thread -rapide ne prend pas en charge les fonctions à virgule flottante -(fp1=0). - -Comme précédemment, on peut utiliser _halcmd show_ pour jeter un coup -d'oeil à HAL. Cette fois, nous aurons beaucoup -plus de pins et de paramètres que précédemment: ----- -halcmd: show pin - - Component Pins: - Owner Type Dir Value Name - 4 float IN 1 siggen.0.amplitude - 4 float OUT 0 siggen.0.cosine - 4 float IN 1 siggen.0.frequency - 4 float IN 0 siggen.0.offset - 4 float OUT 0 siggen.0.sawtooth - 4 float OUT 0 siggen.0.sine - 4 float OUT 0 siggen.0.square - 4 float OUT 0 siggen.0.triangle - 3 s32 OUT 0 stepgen.0.counts - 3 bit OUT FALSE stepgen.0.dir - 3 bit IN FALSE stepgen.0.enable - 3 float OUT 0 stepgen.0.position-fb - 3 bit OUT FALSE stepgen.0.step - 3 float IN 0 stepgen.0.velocity-cmd - 3 s32 OUT 0 stepgen.1.counts - 3 bit OUT FALSE stepgen.1.dir - 3 bit IN FALSE stepgen.1.enable - 3 float OUT 0 stepgen.1.position-fb - 3 bit OUT FALSE stepgen.1.step - 3 float IN 0 stepgen.1.velocity-cmd - - -halcmd: show param - - Parameters: - Owner Type Dir Value Name - 4 s32 RO 0 siggen.0.update.time - 4 s32 RW 0 siggen.0.update.tmax - 3 u32 RW 0x00000001 stepgen.0.dirhold - 3 u32 RW 0x00000001 stepgen.0.dirsetup - 3 float RO 0 stepgen.0.frequency - 3 float RW 0 stepgen.0.maxaccel - 3 float RW 0 stepgen.0.maxvel - 3 float RW 1 stepgen.0.position-scale - 3 s32 RO 0 stepgen.0.rawcounts - 3 u32 RW 0x00000001 stepgen.0.steplen - 3 u32 RW 0x00000001 stepgen.0.stepspace - 3 u32 RW 0x00000001 stepgen.1.dirhold - 3 u32 RW 0x00000001 stepgen.1.dirsetup - 3 float RO 0 stepgen.1.frequency - 3 float RW 0 stepgen.1.maxaccel - 3 float RW 0 stepgen.1.maxvel - 3 float RW 1 stepgen.1.position-scale - 3 s32 RO 0 stepgen.1.rawcounts - 3 u32 RW 0x00000001 stepgen.1.steplen - 3 u32 RW 0x00000001 stepgen.1.stepspace - 3 s32 RO 0 stepgen.capture-position.time - 3 s32 RW 0 stepgen.capture-position.tmax - 3 s32 RO 0 stepgen.make-pulses.time - 3 s32 RW 0 stepgen.make-pulses.tmax - 3 s32 RO 0 stepgen.update-freq.time - 3 s32 RW 0 stepgen.update-freq.tmax ----- - -=== Connexion des pins avec les signaux - -Nous avons donc deux générateurs d'impulsions de pas et un générateur -de signaux. Maintenant, nous allons créer des signaux HAL pour -connecter ces trois composants. Nous allons faire comme si nous -pilotions les axes X et Y d'une machine avec nos générateurs -d'impulsions de pas. Nous voulons déplacer la table en ronds. Pour ce -faire, nous allons envoyer un signal cosinusoïdal à l'axe des X et un -signal sinusoïdal à l'axe des Y. Le module siggen créera le sinus et le -cosinus, mais nous aurons besoin de _fils_ pour connecter les modules -ensemble. Dans HAL, les _fils_ sont appelés signaux. Nous devons en -créer deux. Nous pouvons les appeler comme on veut, dans cet exemple il -y aura _X-vel_ et _Y-vel_. Le signal _X-vel_ partira de la sortie -cosinus du générateur de signaux et arrivera sur -l'entrée _velocity_ du premier générateur d'impulsions de pas. La -première étape consiste à connecter le signal à la sortie du générateur -de signaux. Pour connecter un signal à une pin, nous utilisons la -commande _net_: ----- -halcmd: net X-vel <= siggen.0.cosine ----- - -Pour voir l'effet de la commande _net_, regardons les signaux: ----- -halcmd: show sig - - Signals: - Type Value Name (linked to) - float 0 X-vel <== siggen.0.cosine ----- - -Quand un signal est connecté à une ou plusieurs pins, la commande -_show_ liste les pins immédiatement suivies par le nom du signal. -Les flèches donnent la direction du flux de données, dans ce cas, le flux - va de la pin _siggen.0.cosine_ vers le signal _X-vel_. Maintenant, -connectons _X-vel_ à l'entrée _velocity_ du générateur d'impulsions de -pas: ----- -halcmd: net X-vel => stepgen.0.velocity-cmd ----- - -Nous pouvons aussi connecter l'axe Y au signal _Y-vel_. Il doit partir de -la sortie sinus du générateur de signaux pour arriver sur l'entrée du second -générateur d'impulsions de pas. La commande suivante fait, en une ligne, la -même chose que les deux commandes _net_ précédentes ont fait pour _X-vel_: ----- -halcmd: net Y-vel siggen.0.sine => stepgen.1.velocity-cmd ----- - -Pour voir l'effet de la commande net, regardons encore les signaux et -les pins: ----- -halcmd: show sig - - Signals: - Type Value Name (linked to) - float 0 X-vel <== siggen.0.cosine - ==> stepgen.0.velocity-cmd - float 0 Y-vel <== siggen.0.sine - ==> stepgen.1.velocity-cmd ----- - -La commande _show sig_ montre clairement comment les flux de -données circulent dans HAL. Par exemple, le signal _X-vel_ -provient de la pin _siggen.0.cosine_ et va vers la pin -_stepgen.0.velocity-cmd_. - -=== Exécuter les réglages du temps réel - threads et functions - -Penser à ce qui circule dans les _fils_ rend les pins et les signaux -assez faciles à comprendre. Les threads et les fonctions sont un peu -plus délicates à appréhender. Les fonctions contiennent des instructions pour -l'ordinateur. Les threads sont les méthodes utilisées pour faire -exécuter ces instructions quand c'est nécessaire. Premièrement, -regardons les fonctions dont nous disposons: ----- -halcmd: show funct - - Exported Functions: - Owner CodeAddr Arg FP Users Name - 00004 f9992000 fc731278 YES 0 siggen.0.update - 00003 f998b20f fc7310b8 YES 0 stepgen.capture-position - 00003 f998b000 fc7310b8 NO 0 stepgen.make-pulses - 00003 f998b307 fc7310b8 YES 0 stepgen.update-freq ----- - -En règle générale, vous devez vous référer à la documentation de -chaque composant pour voir ce que font ses fonctions. Dans notre -exemple, la fonction _siggen.0.update_ est utilisée pour mettre à jour -les sorties du générateur de signaux. -Chaque fois qu'elle est exécutée, le générateur recalcule les valeurs -de ses sorties sinus, cosinus, dent de scie, triangle, carrée. Pour générer -un signal régulier, il doit fonctionner à des intervalles très précis. - -Les trois autres fonctions sont relatives au générateur d'impulsions de pas: - -La première, _stepgen.capture-position_, est utilisée pour un retour -de position. Elle capture la valeur d'un -compteur interne comptant les impulsions qui sont générées. S'il n'y -a pas de perte de pas, ce compteur indique la position du moteur. - -La fonction principale du générateur d'impulsions est -_stepgen.make-pulses_. Chaque fois que _make-pulses_ démarre, elle -décide qu'il est temps de faire un pas, si oui elle fixe -les sorties en conséquence. Pour des pas plus doux, elle doit fonctionner -le plus souvent possible. Parce qu'elle a besoin de fonctionner de - manière rapide, _make-pulses_ est hautement optimisée et n'effectue -que quelques calculs. -Contrairement aux autres, elle n'a pas besoin de virgule flottante pour -ses calculs. - -La dernière fonction, _stepgen.update-freq_, est responsable de -l'échelle et de quelques autres calculs qui ne doivent être effectués -que lors d'une commande de changement de fréquence. - -Pour notre exemple nous allons faire tourner _siggen.0.update_ à une -vitesse modérée pour le calcul des valeurs sinus et cosinus. - Immédiatement après avoir lancé siggen.0.update, nous lançons -_stepgen.0.update_freq_ pour charger les nouvelles valeurs dans le générateur -d'impulsions. Finalement nous lancerons _stepgen.make_pulses_ aussi vite que -possible pour des pas plus doux. -Comme nous n'utilisons pas de retour de position, nous n'avons pas besoin de -lancer _stepgen.capture_position_. - -Nous lançons les fonctions en les ajoutant aux threads. Chaque thread -va à une vitesse précise. Regardons de quels threads nous disposons: ----- -halcmd: show thread - - Realtime Threads: - Period FP Name ( Time, Max-Time ) - 996980 YES slow ( 0, 0 ) - 49849 NO fast ( 0, 0 ) ----- - -Les deux _threads_ ont été créés lorsque nous les avons chargés. Le -premier, _slow_ , tourne toutes les millisecondes, il est capable -d'exécuter des fonctions en virgule flottante (FP). Nous l'utilisons pour -_siggen.0.update_ et _stepgen.update_freq_. Le deuxième thread est -_fast_, il tourne toutes les 50 microsecondes, il ne prend pas en -charge les calculs en virgule flottante. Nous l'utilisons pour -_stepgen.make_pulses_. Pour connecter des fonctions au bon thread, -nous utilisons la commande _addf_. Nous spécifions la fonction en -premier, suivie par le thread: ----- -halcmd: addf siggen.0.update slow - -halcmd: addf stepgen.update-freq slow - -halcmd: addf stepgen.make-pulses fast ----- - -Après avoir lancé ces commandes, nous pouvons exécuter la commande _show -thread_ une nouvelle fois pour voir ce qui ce passe: ----- -halcmd: show thread - - Realtime Threads: - Period FP Name ( Time, Max-Time ) - 996980 YES slow ( 0, 0 ) - 1 siggen.0.update - 2 stepgen.update-freq - 49849 NO fast ( 0, 0 ) - 1 stepgen.make-pulses ----- - -Maintenant, chaque thread est suivi par les noms des fonctions, dans -l'ordre dans lequel les fonctions seront exécutées. - -=== Réglage des paramètres - -Nous sommes presque prêts à démarrer notre système HAL. Mais il faut -auparavant régler quelques paramètres. Par défaut le composant siggen -génère des signaux qui varient entre +1 et -1. Pour notre exemple, -c'est très bien, nous voulons que la vitesse de la table varie de +1 à --1 pouce par seconde. Toutefois, l'échelle du générateur d'impulsions -de pas n'est pas bonne. Par défaut, il génère une fréquence de sortie -de 1 pas par seconde avec une capacité de 1000. Il est fort improbable -qu'un pas par seconde nous donne une vitesse de déplacement de la table -d'un pouce par seconde. Supposons que notre vis fasse 5 tours par -pouce, couplée à un moteur pas à pas de 200 pas par tour et une -interface qui fournit 10 micropas par pas. Il faut donc 2000 pas pour -faire un tour de vis et 5 tours pour faire un pouce. Ce qui signifie -que notre montage utilisera 10000 pas par pouce. Nous avons besoin de -multiplier la vitesse d'entrée à l'étape générateur d'impulsions par -10000 pour obtenir la bonne valeur. C'est exactement pour cela -qu'existe le paramètre _stepgen.n.velocity-scale_ . Dans notre cas, les -axes X et Y ont la même échelle et nous pouvons -passer les deux paramètres à 10000: ----- -halcmd: setp stepgen.0.position-scale 10000 - -halcmd: setp stepgen.1.position-scale 10000 - -halcmd: setp stepgen.0.enable 1 - -halcmd: setp stepgen.1.enable 1 ----- - -Cela signifie que, avec la pin _stepgen.0.velocity-cmd_ à 1.000 et le -générateur réglé pour 10000 impulsions par seconde -(10kHz), avec le moteur et la vis décrits précédemment, nos axes auront -une vitesse de déplacement de exactement 1.000 pouce par seconde. Cela -illustre une notion clé du concept de HAL, des éléments comme les -échelles étant au plus bas niveau possible, dans notre exemple le - générateur d'impulsions de pas, le signal interne _X-vel_ est celui -de la vitesse de déplacement de la table en pouces par - seconde. Les autres composants comme _siggen_ ne savent rien du tout -à propos de l'échelle des autres. Si on change -de vis, ou de moteur, il n'y a qu'un seul paramètre à changer, -l'échelle du générateur d'impulsions de pas. - -=== Lançons le! - -Nous avons maintenant tout configuré et sommes prêts à démarrer. Tout -comme dans le premier exemple, nous utilisons la commande _start_: ----- -halcmd: start ----- - -Bien que rien ne semble se produire, à l'intérieur de l'ordinateur les -impulsions de pas sont présentes sur la sortie du générateur, variant -entre 10kHz dans un sens et 10kHz dans l'autre à chaque seconde. Dans -la suite de ce tutoriel, nous allons voir comment convertir ces signaux -internes des moteurs dans le monde réel, mais nous allons d'abord les -examiner pour voir ce qui se passe. - -[[sec:Tutoriel-halscope]] -== Voyons-y de plus près avec halscope -(((Tutoriel halscope))) - -L'exemple précédent génère certains signaux très intéressants. Mais -beaucoup de ce qui se passe est beaucoup trop rapide pour être vu avec -halmeter. Pour examiner de plus près ce qui se passe à l'intérieur de -HAL, il faudrait un oscilloscope. Heureusement HAL en offre un, appelé -_halscope_. Il permet de capturer la valeur des pins, des signaux et des -paramètres en fonction du temps. - -=== Démarrer halscope - -halscope comporte deux parties, une partie en temps réel qui est -chargée comme un module de noyau et une partie utilisateur qui fournit -l'interface graphique et l'affichage. Cependant, vous n'avez pas à vous -inquiéter à ce sujet car l'interface demandera automatiquement que la -partie temps réel soit chargée: ----- -halcmd: loadusr halscope ----- - -La fenêtre graphique du scope s'ouvre, immédiatement suivie par un -dialogue _Fonction temps réel non liée_ visible sur la figure ci-dessous: - -[[fig:fonction-non-liee]] -.Dialogue _Fonction temps réel non liée_ -(((Fonction non liée))) - -image::images/halscope-01_fr.png[] - -C'est dans ce dialogue que vous définissez le taux d'échantillonnage -de l'oscilloscope. Pour le moment nous voulons un échantillon par -milliseconde, alors cliquez sur le thread _slow_ et laissez le -multiplicateur à 1. Nous allons aussi passer la longueur -d'enregistrement à 4000 échantillons, de sorte que nous -puissions utiliser jusqu'à 4 canaux simultanément. Quand vous -sélectionnez un thread puis que vous cliquez sur le bouton _OK_, le -dialogue disparaît et la fenêtre initiale du scope s'ouvre, comme ci-dessous. - -[[fig:Fenetre-initiale-halscope]] -.Fenêtre initiale du scope -(((Fenêtre initiale))) - -image::images/halscope-02_fr.png[] - -=== Branchement des sondes du scope - -À ce stade, halscope est prêt à l'emploi. Nous avons déjà choisi le -taux d'échantillonnage et la longueur d'enregistrement, de sorte que la -prochaine étape consiste à décider de ce qu'il faut mesurer. C'est -équivalent à brancher les _sondes virtuelles du scope_ à HAL. halscope -dispose de 16 canaux, mais le nombre de canaux utilisables à un moment -donné dépend de la longueur d'enregistrement, plus il y a de canaux, -plus les enregistrements seront courts, car la mémoire disponible -pour l'enregistrement est fixée à environ 16000 échantillons. - -Les boutons des canaux se situent en dessous de l'écran du scope. -Cliquez le bouton _1_ et vous verrez apparaître le dialogue de -sélection des sources dans lequel vous devrez choisir _la source qui -devra s'afficher sur le canal 1, comme sur la figure ci-dessous. -Ce dialogue est très similaire à celui utilisé par halmeter. - -[[fig:Selection-sources-halscope]] -.Dialogue de sélection des sources -(((Sélection de la source))) - -image::images/halscope-03_fr.png[] - -Nous aimerions bien regarder les signaux que nous avons défini -précédemment, pour cela, cliquons sur l'onglet _Signaux_ et le dialogue -affichera tous les signaux existants dans HAL, dans notre exemple nous -avons seulement les deux signaux X-vel et Y-vel, comme ci-dessous. - -Pour choisir un signal, il suffit de cliquer dessus. Dans notre cas, -nous voulons utiliser le canal 1 pour afficher le signal _X-vel_. -Lorsque l'on clique sur _X-vel_, la fenêtre se ferme et le canal a -été sélectionné. - -[[cap:Select-Signal]] -.Sélection du signal -(((Sélection du signal))) - -image::images/halscope-04_fr.png[] - -Le bouton du canal _1_ est pressé, le numéro du canal 1 et le nom -_X-vel_ apparaissent sous la rangée de boutons. L'affichage indique -toujours le canal sélectionné, vous pouvez avoir beaucoup de canaux sur -l'écran, mais celui qui est actif sera en surbrillance. - -[[cap:halscope]] -.halscope -(((halscope))) - -image::images/halscope-05_fr.png[] - -Les différents contrôles comme la position verticale et l'amplitude -sont toujours relatifs au canal 1. Pour ajouter un signal sur le canal -2, cliquer sur le bouton _2_. Dans la fenêtre de dialogue, cliquer sur -l'onglet _Signaux_, puis cliquer sur _Y-vel_. - -Nous voulons aussi voir les signaux carrés et triangles produits. Il -n'existe pas de signaux connectés à ces pins, nous utilisons donc -l'onglet _Pins_. Pour le canal _3_, sélectionnez _siggen.0.triangle_ -et pour le canal _4_, choisissez _siggen.0.square_. - -=== Capturer notre première forme d'onde - -Maintenant que nous avons plusieurs sondes branchées sur HAL, nous -pouvons capturer quelques formes d'ondes. Pour démarrer le scope, -cochez la case _Normal_ du groupe _Mode "Run"_ (en haut à droite). -Puisque nous avons une longueur d'enregistrement de 4000 échantillons -et une acquisition de 1000 échantillons par seconde, il faudra à -halscope environ 2 secondes pour remplir la moitié de son tampon. -Pendant ce temps, une barre de progression juste au-dessus de l'écran -principal affichera le remplissage du tampon. Une fois que le tampon -est à moitié plein, scope attend un déclencheur (Trigger). Puisque nous n'en -avons pas encore configuré, il attendra toujours. Pour déclencher -manuellement, cliquez sur le bouton _Forcer_ du groupe _Trigger_ en -haut à droite. Vous devriez voir le reste de la zone tampon se remplir, -puis l'écran afficher les ondes capturées. Le résultat ressemble à la -figure ci-dessous. - -[[fig:Capture-onde-halscope]] -.Capture d'ondes -(((Capture d'onde))) - -image::images/halscope-06_fr.png[] - -=== Ajustement vertical - -Les traces sont assez difficiles à distinguer car toutes les quatre -sont les unes sur les autres. Pour résoudre ce problème, nous utilisons -les curseurs du groupe _Vertical_ situé à droite de l'écran. -Ces deux curseurs agissent sur le canal actuellement sélectionné. En ajustant -le _Gain_, notez qu'il couvre une large échelle (contrairement aux -oscilloscopes réels), celle-ci permet d'afficher des signaux très petits -(pico unités) à très grands (Tera - unités). Le curseur _Pos_ déplace la -trace affichée de haut en bas sur toute la hauteur de l'écran. Pour de plus -grands ajustements le bouton _Offset_ peut être utilisé. - -[[cap:Ajustement-vertical-halscope]] -.Ajustement vertical -(((Ajustement vertical))) - -image::images/halscope-07_fr.png[] - -Le grand bouton _Canal sélectionné_ en bas, indique que le canal 1 est -actuellement le canal sélectionné et qu'il correspond au signal -_X-vel_. Essayez de cliquer sur les autres canaux pour mettre -leurs traces en évidence et pouvoir les déplacer avec le curseur _Pos_. - -=== Déclenchement (Triggering) - -L'utilisation du bouton _Forcer_ n'est parfois pas satisfaisante pour -déclencher le scope. Pour régler un déclenchement réel, -cliquer sur le bouton _Source_ situé en bas à droite. Il ouvre alors le -dialogue _Trigger Source_, qui est simplement la liste de toutes les -sondes actuellement branchées, voir la figure ci-dessous. -Sélectionner la sonde à utiliser pour déclencher en cliquant dessus. -Pour notre exemple nous utilisons 3 canaux, essayons l'onde triangle. -Quand le dialogue ce referme, après le choix, le bouton affiche _Source Canal n_ -où n est le numéro du canal venant d'être choisi comme déclencheur. - -[[fig:halscope-demo-5]] -.Dialogue des sources de déclenchement -(((Dialogue des sources de déclenchement))) - -image::images/halscope-08_fr.png[] - -Après avoir défini la source de déclenchement, il est possible -d'ajuster le niveau de déclenchement avec les curseurs du groupe -_Trigger_ le long du bord droit. Le niveau peut être modifié à partir -du haut vers le bas de l'écran, il est affiché sous les curseurs. La -position est l'emplacement du point de déclenchement dans -l'enregistrement complet. Avec le curseur tout en bas, le point de -déclenchement est à la fin de l'enregistrement et halscope affiche ce -qui s'est passé avant le déclenchement. Lorsque le curseur est -tout en haut, le point de déclenchement est au début de -l'enregistrement, l'affichage représente ce qui s'est passé après le -déclenchement. Le point de déclenchement est visible comme une petite -ligne verticale dans la barre de progression située juste au dessus de -l'écran. La polarité du signal de déclenchement peut être inversée en -cliquant sur le bouton _Montant_ situé juste sous l'affichage du niveau de -déclenchement, il deviendra alors _descendant_. Notez que la modification -de la position de déclenchement arrête le scope une fois la position ajustée, -vous relancez le scope en cliquant sur le bouton _Normal_ du groupe -_Mode "Run"_. - -Maintenant que nous avons réglé la position verticale et le -déclenchement, l'écran doit ressembler à la figure ci-dessous. - -[[fig:halscope-demo-6]] -.Formes d'ondes avec déclenchement -(((Formes d'onde))) - -image::images/halscope-09_fr.png[] - -=== Ajustement horizontal - -Pour examiner de près une partie d'une forme d'onde, vous pouvez -utiliser le _zoom_ au dessus de l'écran pour étendre la trace -horizontalement et le curseur de position horizontale, _Pos_ du -groupe _Horizontal_, pour déterminer quelle partie de l'onde zoomée est visible. -Parfois simplement élargir l'onde n'est pas suffisant et il faut augmenter -la fréquence d'échantillonnage. Par exemple, nous aimerions voir les impulsions -de pas qui sont générés dans notre exemple. Mais les impulsions de pas font -seulement 50 us de long, l'échantillonnage à 1kHz n'est pas assez rapide. -Pour changer le taux d'échantillonnage, cliquer sur le bouton qui affiche le -nombre d'échantillons pour avoir le dialogue _Sélectionner un taux -d'échantillonnage_, figure ci-dessous. -Pour notre exemple, nous cliquerons sur le thread _fast_, qui fournira un -échantillonnage à environ 20kHz. Maintenant au lieu d'afficher environ 4 -secondes de données, un enregistrement sera de 4000 échantillons à 20kHz, soit -environ 0.20 seconde. - -[[fig:halscope-demo-7]] -.Dialogue de choix d'échantillonnage -(((Choix d'échantillonnage))) - -image::images/halscope-10_fr.png[] - -=== Plus de canaux - -Maintenant regardons les impulsions de pas. halscope dispose de 16 -canaux, mais pour cet exemple, nous en utilisons seulement 4 à la fois. -Avant de sélectionner tout autre canal, nous avons besoin d'en éteindre -certains. Cliquer sur le canal _2_, puis sur le bouton _Canal Off_ sous le -groupe _vertical_. Ensuite, cliquez sur le canal 3, le mettre Off et -faire de même pour le canal 4. Même si les circuits sont éteints, ils -sont encore en mémoire et restent connectés, en fait, nous -continuerons a utiliser le canal 3 comme source de déclenchement. Pour -ajouter de nouveaux canaux, sélectionner le canal _5_, choisir la pin -_stepgen.0.dir_, puis le canal _6_ et sélectionner _stepgen.0.step_. -Ensuite, cliquer sur _mode Normal_ pour lancer le scope, ajustez le -zoom horizontal à 10 ms par division. Vous devriez voir les impulsions de -pas ralentir à la vitesse commandée approcher de zéro, puis la -pin de direction changer d'état et les impulsions de pas se resserrer de -nouveau en même temps que la vitesse augmente. Vous aurez peut être besoin -d'ajuster le gain sur le canal 1 afin de mieux voir l'action de la vitesse sur -l'évolution des impulsions de pas. Le résultat devrait être proche de celui de -la figure ci-dessous. Ce type de mesure est délicate car il y a un énorme écart -d'échelle entre la fréquence des pas et l'action sur la vitesse, d'ou la courbe -X-vel assez plate et les impulsions de pas très resserrées. - -[[fig:halscope-demo-8]] -.Observer les impulsions de pas -(((Observer les impulsions))) - -image::images/halscope-11_fr.png[] - -=== Plus d'échantillons - -Si vous souhaitez enregistrer plus d'échantillons à la fois, -redémarrez le temps réel et chargez halscope avec un argument numérique -qui indique le nombre d'échantillons que vous voulez capturer, comme: ----- -halcmd: loadusr halscope 80000 ----- - -Si le composant _scope_rt_ n'est pas déjà chargé, halscope va le -charger et lui demander un total de 80000 échantillons, de sorte -que lorsque l'échantillonnage se fera sur 4 canaux à la fois, -il y aura 20000 échantillons par canal. (Si _scope_rt_ est déjà -chargé, l'argument numérique passé à halscope sera sans effet) - - diff --git a/docs/src/html-images.xslt b/docs/src/html-images.xslt deleted file mode 100644 index 29b0e1a1e3a..00000000000 --- a/docs/src/html-images.xslt +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - diff --git a/docs/src/html-latex-images b/docs/src/html-latex-images deleted file mode 100755 index 5e71c3f0334..00000000000 --- a/docs/src/html-latex-images +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/env python -# vim: sts=4 sw=4 et - -import os, shutil, sys, subprocess -import tempfile, hashlib -import lxml.etree as ET - -tmpdir = None - -cachedir = os.environ.get('HTML_LATEX_CACHE', './cache') - -nsmap = {'xhtml':"http://www.w3.org/1999/xhtml"} - -latex_header = r""" -\documentclass{article} -\usepackage[mathletters]{ucs} -\usepackage[utf8x]{inputenc} -%\usepackage[T2A]{fontenc} -%\usepackage[english,russian]{babel} -\usepackage{euscript} -\usepackage{type1cm} -\usepackage{amssymb} -\usepackage{amsmath} -\usepackage{ulem} -\usepackage{mathrsfs} -\begin{document} -\thispagestyle{empty} -""" - -latex_footer = r""" -\end{document} -""" - -latex_cmd = "latex -interaction nonstopmode ./file.tex".split() -dvipng_cmd = "dvipng -q -D 148 -T tight -pp 1 --noghostscript file.dvi -o file.png".split() - -def build_img(fn, e, block=False): - txt = e.text.strip() - txt = txt.replace('>', '>').replace('<', '<').replace('&', '&') # XML escapes - txt = txt.replace('\\[', '[').replace('\\]', ']') # Asciidoc escapes - md5 = hashlib.md5(txt.encode('utf-8')).hexdigest() - img = md5 + ".png" - fullimg = os.path.join(cachedir, img) - if not os.path.exists(fullimg): - latex(txt, block) - os.rename(os.path.join(tmpdir, 'file.png'), fullimg) - shutil.copy2(fullimg, os.path.join(os.path.dirname(fn), img)) - node = ET.Element('img', attrib={'class':'latexmath'}, id=md5, src=img, title=txt) - e.getparent().replace(e, node) - return 1 - -def latex(txt, block=False): - if block: - if not txt.startswith('$$'): txt = '$$' + txt - if not txt.endswith('$$'): txt = txt + '$$' - else: - if txt[0] != '$': txt = '$' + txt - if txt[-1] != '$': txt = txt + '$' - - fp = open(os.path.join(tmpdir, 'file.tex'), 'w') - fp.write(latex_header) - fp.write(txt.encode('utf-8') + '\n') - fp.write(latex_footer) - fp.close() - r = subprocess.call(latex_cmd, cwd=tmpdir) - if r: raise RuntimeError("Compilation failed") - r = subprocess.call(dvipng_cmd, cwd=tmpdir) - if r: raise RuntimeError("Compilation failed") - -def substitute(f): - xml = ET.parse(open(f), ET.HTMLParser()) - images = 0 - for e in xml.xpath('//span[@class="latexmath"]', namespaces=nsmap): - images += build_img(f, e, block=False) - for e in xml.xpath('//div[@class="latexmath"]', namespaces=nsmap): - images += build_img(f, e, block=True) - if not images: return - print "Added %d images" % images - fp = open(f + ".math", 'w') - fp.write(ET.tostring(xml, pretty_print=True, xml_declaration=False, encoding="utf-8")) - fp.close() - os.unlink(f) - #os.rename(f, f + ".pre-math") - os.rename(f + ".math", f) - -tmpdir = tempfile.mkdtemp(dir=cachedir) -try: - for f in sys.argv[1:]: - substitute(f) -finally: - shutil.rmtree(tmpdir) diff --git a/docs/src/image-wildcard b/docs/src/image-wildcard deleted file mode 100755 index 5002e5d8240..00000000000 --- a/docs/src/image-wildcard +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env python - -import os, sys, glob - -try: - from os.path import relpath -except: - def relpath(path, start=os.path.curdir): - """Return a relative version of a path""" - - if not path: - raise ValueError("no path specified") - - start_list = os.path.abspath(start).split(os.path.sep) - path_list = os.path.abspath(path).split(os.path.sep) - - # Work out how much of the filepath is shared by start and path. - i = len(os.path.commonprefix([start_list, path_list])) - - rel_list = [os.path.pardir] * (len(start_list)-i) + path_list[i:] - if not rel_list: - return os.path.curdir - return os.path.join(*rel_list) - -if len(sys.argv) > 1: - image = sys.argv[1] - -if len(sys.argv) > 2: - docpath = sys.argv[2] #os.path.dirname(sys.argv[2]) -else: - docpath = '.' - -if len(sys.argv) > 3 and str.strip(sys.argv[3]): - exts = map(str.strip, sys.argv[3].split(',')) -else: - # Standard images for web - exts = ['png', 'svg', 'jpg', 'jpeg'] - -exts = map(lambda e: '.' + e, exts) - -def lookup(image): - images = glob.glob(os.path.join(docpath, image)) - if not images: - return - elif len(images) == 1: - return images[0] - - found = map(lambda s: os.path.splitext(s)[1], images) - for e in exts: - if e not in found: - continue - return images[found.index(e)] - else: - return images[0] -i = lookup(image) -if not i: - i = image -print relpath(i, docpath) diff --git a/docs/src/index.foot b/docs/src/index.foot deleted file mode 100644 index f5ae2e2b67e..00000000000 --- a/docs/src/index.foot +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/docs/src/index.tmpl b/docs/src/index.tmpl deleted file mode 100644 index 68e19d77d17..00000000000 --- a/docs/src/index.tmpl +++ /dev/null @@ -1,168 +0,0 @@ - - - - - LinuxCNC Documentation - HTML version - - - - - -

    This documentation refers to LinuxCNC version @VERSION@.

    -